]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2, UNSPEC_SCATTER.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
ab931c71
AI
12013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
2 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3 Sergey Lega <sergey.s.lega@intel.com>
4 Anna Tikhonova <anna.tikhonova@intel.com>
5 Ilya Tocar <ilya.tocar@intel.com>
6 Andrey Turetskiy <andrey.turetskiy@intel.com>
7 Ilya Verbin <ilya.verbin@intel.com>
8 Kirill Yukhin <kirill.yukhin@intel.com>
9 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
10
11 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
12 UNSPEC_SCATTER.
13 (VI48F_512): New.
14 (avx512fmaskmode): Ditto.
15 (bcstscalarsuff): Ditto.
16 (avx512f_blendm<mode>): Ditto.
17 (cmp_imm_predicate): Ditto.
18 (avx512f_cmp<mode>3): Ditto.
19 (avx512f_vec_dup<mode>): Ditto.
20 (avx512f_vec_dup_mem<mode>): Ditto.
21 (avx512f_vpermi2var<mode>3): Ditto.
22 (avx512f_vpermt2var<mode>3): Ditto.
23 (vec_init<mode>): Ditto.
24 (avx512f_gathersi<mode>): Ditto.
25 (*avx512f_gathersi<mode>): Ditto.
26 (*avx512f_gathersi<mode>_2): Ditto.
27 (avx512f_gatherdi<mode>): Ditto.
28 (*avx512f_gatherdi<mode>): Ditto.
29 (*avx512f_gatherdi<mode>_2): Ditto.
30 (avx512f_scattersi<mode>): Ditto.
31 (*avx512f_scattersi<mode>): Ditto.
32 (avx512f_scatterdi<mode>): Ditto.
33 (*avx512f_scatterdi<mode>): Ditto.
34 (sseintprefix): Extened with wider modes.
35 (VEC_GATHER_IDXSI): Ditto.
36 (VEC_GATHER_IDXDI): Ditto.
37 (VEC_GATHER_SRCDI): Ditto.
38
c9acb877
MGD
392013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
40 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
41
42 * config/arm/t-aprofile: New file.
43 * config.gcc: Handle --with-multilib-list option.
44
ecbda484
BS
452013-10-15 Bernd Schmidt <bernds@codesourcery.com>
46
47 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
48 r2.
49
24f161fd
RB
502013-10-15 Richard Biener <rguenther@suse.de>
51
52 * tree-loop-distribution.c (build_empty_rdg): Inline into
53 single user.
54 (rdg_flag_vertex): Inline into single user.
55 (rdg_flag_vertex_and_dependent): Likewise.
56 (build_rdg_partition_for_vertex): Remove processed bitmap.
57 (rdg_build_partitions): Simplify.
58
5de989ed
RB
592013-10-15 Richard Biener <rguenther@suse.de>
60
61 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
62 Restructure forwarding through conversions and copies to
63 avoid performing copy-propagation the wrong way. Adjust
64 recursion invocations.
65 (forward_propagate_addr_expr): Add argument stating if we
66 are recursing from a single-use.
67 (ssa_forward_propagate_and_combine): Adjust.
68
47e0da37
DM
692013-10-14 David Malcolm <dmalcolm@redhat.com>
70
71 * dumpfile.h (gcc::dump_manager): New class, to hold state
72 relating to dumpfile management.
73 (get_dump_file_name): Remove in favor of method of dump_manager.
74 (dump_initialized_p): Likewise.
75 (dump_start): Likewise.
76 (dump_finish): Likewise.
77 (dump_switch_p): Likewise.
78 (dump_register): Likewise.
79 (get_dump_file_info): Likewise.
80 * context.c (gcc::context::context): Construct the dump_manager
81 instance.
82 * context.h (gcc::context::get_dumps): New.
83 (gcc::context::m_dumps): New.
84 * coverage.c (coverage_init): Port to dump_manager API.
85 * dumpfile.c (extra_dump_files): Convert to field of
86 gcc::dump_manager.
87 (extra_dump_files_in_use): Likewise.
88 (extra_dump_files_alloced): Likewise.
89 (gcc::dump_manager::dump_manager): New.
90 (dump_register): Convert to...
91 (gcc::dump_manager::dump_register): ...method, replacing
92 function-static next_dump with m_next_dump field.
93 (get_dump_file_info): Convert to...
94 (gcc::dump_manager::get_dump_file_info): ...method.
95 (get_dump_file_name): Convert to...
96 (gcc::dump_manager::get_dump_file_name): ...method.
97 (dump_start): Convert to...
98 (gcc::dump_manager::dump_start): ...method.
99 (dump_finish): Convert to...
100 (gcc::dump_manager::dump_finish): ...method.
101 (dump_begin): Replace body with...
102 (gcc::dump_manager::dump_begin): ...new method.
103 (dump_phase_enabled_p): Convert to...
104 (gcc::dump_manager::dump_phase_enabled_p): ...method.
105 (dump_phase_enabled_p): Convert to...
106 (gcc::dump_manager::dump_phase_enabled_p): ...method.
107 (dump_initialized_p): Convert to...
108 (gcc::dump_manager::dump_initialized_p): ...method.
109 (dump_flag_name): Replace body with...
110 (gcc::dump_manager::dump_flag_name): ...new method.
111 (dump_enable_all): Convert to...
112 (gcc::dump_manager::dump_enable_all): ...new method.
113 (opt_info_enable_passes): Convert to...
114 (gcc::dump_manager::opt_info_enable_passes): ...new method.
115 (dump_switch_p_1): Convert to...
116 (gcc::dump_manager::dump_switch_p_1): ...new method.
117 (dump_switch_p): Convert to...
118 (gcc::dump_manager::dump_switch_p): ...new method.
119 (opt_info_switch_p): Port to dump_manager API.
120 (enable_rtl_dump_file): Likewise.
121 * opts-global.c (handle_common_deferred_options): Port to new
122 dump_manager API.
123 * passes.c (pass_manager::finish_optimization_passes): Likewise.
124 (pass_manager::register_one_dump_file): Likewise.
125 (pass_manager::register_pass): Likewise.
126 (pass_init_dump_file): Likewise.
127 (pass_fini_dump_file): Likewise.
128 * statistics.c (statistics_early_init): Likewise.
129
83fd5d11
RB
1302013-10-14 Richard Biener <rguenther@suse.de>
131
132 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
133 iterative_hash_canonical_type, gimple_canonical_type_hash,
134 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
135 gimple_register_canonical_type, print_gimple_types_stats,
136 free_gimple_type_tables): Move to lto/lto.c
137 (gt-gimple.h): Do not include.
138 * gimple.h (gimple_register_canonical_type,
139 print_gimple_types_stats, free_gimple_type_tables): Remove.
140 * Makefile.in (GTFILES): Remove gimple.c.
141
a6dbd0f7
TS
1422013-10-14 Travis Snoozy <quandary@remstate.com>
143
144 PR target/58716
145 * config/msp430/msp430.c (msp430_option_override): Correct thinko
146 scanning for msp430x targets.
147
b5ccb9ed
EB
1482013-10-14 Eric Botcazou <ebotcazou@adacore.com>
149
150 PR bootstrap/58509
151 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
152 (registers_ok_for_ldd_peep): Move around.
153 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
154 * config/sparc/sparc.md (widening peepholes): Use it.
155
fd7e5084
RB
1562013-10-14 Richard Biener <rguenther@suse.de>
157
158 PR middle-end/58712
159 PR middle-end/55358
160 * gimple.c (iterative_hash_canonical_type): Make sure to
161 record the hash into the correct hashtable slot.
162
3246afaa
EB
1632013-10-13 Eric Botcazou <ebotcazou@adacore.com>
164
165 PR rtl-optimization/58662
166 * combine.c (try_combine): Take into account death nodes on I2 when
167 splitting a PARALLEL of two independent SETs. Fix dump message.
168
5d30dc5b
OE
1692013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
170
171 PR target/51244
172 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
173 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
174 * config/sh/t-sh (sh_treg_combine.o): New entry.
175 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
176 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
177 (register_sh_passes): New function. Register sh_treg_combine pass.
178 (sh_option_override): Invoke it.
179 (sh_canonicalize_comparison): Handle op0_preserve_value.
180 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
181 opportunities. Canonicalize branch condition.
182 (nott): Allow only if pseudos can be created for non-SH2A.
183
37d1c5db
L
1842013-10-12 H.J. Lu <hongjiu.lu@intel.com>
185
186 PR target/58690
187 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
188 (ix86_expand_movmem): Replace copy_addr_to_reg with
189 ix86_copy_addr_to_reg.
190 (ix86_expand_setmem): Likewise.
191
b86a70ff
AM
1922013-10-12 Alexander Monakov <amonakov@ispras.ru>
193
194 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
195 provided by ix86_fp_compare_mode instead of CCFPUmode.
196
6e1d5961
JG
1972013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
198
199 * config/aarch64/arm_neon.h
200 (vtbx<1,3>_<psu>8): Fix register constriants.
201
ef3cfba2
JL
2022013-10-11 Jeff Law <law@redhat.com>
203
204 PR tree-optimization/58640
adcfd489
UB
205 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
206 threading paths that cross over two loop entry points.
ef3cfba2 207
6e8b7d9c
BS
2082013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
209
210 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
211 handle vector float as well.
212 (*vsx_le_perm_load_v4si): Likewise.
213 (*vsx_le_perm_store_v2di): Likewise.
214 (*vsx_le_perm_store_v4si): Likewise.
215
f200869a
BS
2162013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
217
218 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
219 directly to circumvent subtract from splat{31} workaround.
220 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
221 prototype.
222 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
223 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
224 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
225 (altivec_vperm_<mode>): Convert to define_insn_and_split to
226 separate big and little endian logic.
227 (*altivec_vperm_<mode>_internal): New define_insn.
228 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
229 separate big and little endian logic.
230 (*altivec_vperm_<mode>_uns_internal): New define_insn.
231 (vec_permv16qi): Add little endian logic.
232
8d28e3fc
MG
2332013-10-11 Marc Glisse <marc.glisse@inria.fr>
234
235 * doc/extend.texi (returns_nonnull): Remove arguments.
236
3c87b77b
AI
2372013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
238 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
239 Sergey Lega <sergey.s.lega@intel.com>
240 Anna Tikhonova <anna.tikhonova@intel.com>
241 Ilya Tocar <ilya.tocar@intel.com>
242 Andrey Turetskiy <andrey.turetskiy@intel.com>
243 Ilya Verbin <ilya.verbin@intel.com>
244 Kirill Yukhin <kirill.yukhin@intel.com>
245 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
246
247 * config/i386/sse.md (VI48F_256_512): New.
248 (avx2_permvar<mode>): Change to ...
249 (<avx2_avx512f>_permvar<mode>): This.
250
50e60d7d
AI
2512013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
252 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
253 Sergey Lega <sergey.s.lega@intel.com>
254 Anna Tikhonova <anna.tikhonova@intel.com>
255 Ilya Tocar <ilya.tocar@intel.com>
256 Andrey Turetskiy <andrey.turetskiy@intel.com>
257 Ilya Verbin <ilya.verbin@intel.com>
258 Kirill Yukhin <kirill.yukhin@intel.com>
259 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
260
261 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
262 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
263 * config/i386/sse.md (VI4_AVX): New.
264 (sf2simodelower): Ditto.
265 (sse2_cvtps2dq): Change to ...
266 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
267
f62ce24f
AI
2682013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
269 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
270 Sergey Lega <sergey.s.lega@intel.com>
271 Anna Tikhonova <anna.tikhonova@intel.com>
272 Ilya Tocar <ilya.tocar@intel.com>
273 Andrey Turetskiy <andrey.turetskiy@intel.com>
274 Ilya Verbin <ilya.verbin@intel.com>
275 Kirill Yukhin <kirill.yukhin@intel.com>
276 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
277
278 * config/i386/sse.md (V_512): New.
279 (VI_512): Ditto.
280 (vcond<V_512:mode><VF_512:mode>): Ditto.
281 (vcond<V_512:mode><VI_512:mode>): Ditto.
282 (vcondu<V_512:mode><VI_512:mode>): Ditto.
283
558d9f79
AI
2842013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
285 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
286 Sergey Lega <sergey.s.lega@intel.com>
287 Anna Tikhonova <anna.tikhonova@intel.com>
288 Ilya Tocar <ilya.tocar@intel.com>
289 Andrey Turetskiy <andrey.turetskiy@intel.com>
290 Ilya Verbin <ilya.verbin@intel.com>
291 Kirill Yukhin <kirill.yukhin@intel.com>
292 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
293
294 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
295 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
296 (FMAMODE): Ditto.
297 (fma<mode>4): Removed condition.
298 (fms<mode>4): Ditto.
299 (fnma<mode>4): Ditto.
300 (fnms<mode>4): Ditto.
301 (fma4i_fmadd_<mode>): Ditto.
302 (*fma_fmadd_<mode>): Ditto.
303 (*fma_fmsub_<mode>): Ditto.
304 (*fma_fnmadd_<mode>): Ditto.
305 (*fma_fnmsub_<mode>): Ditto.
306 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
307 (*fma_fmaddsub_<mode>): Ditto.
308 (*fma_fmsubadd_<mode>): Ditto.
309 (*fmai_fmadd_<mode>): Ditto.
310 (*fmai_fmsub_<mode>): Ditto.
311 (*fmai_fnmadd_<mode>): Ditto.
312 (*fmai_fnmsub_<mode>): Ditto.
313
e8d08206
AI
3142013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
315 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
316 Sergey Lega <sergey.s.lega@intel.com>
317 Anna Tikhonova <anna.tikhonova@intel.com>
318 Ilya Tocar <ilya.tocar@intel.com>
319 Andrey Turetskiy <andrey.turetskiy@intel.com>
320 Ilya Verbin <ilya.verbin@intel.com>
321 Kirill Yukhin <kirill.yukhin@intel.com>
322 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
323
324 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
325 (VI124_256): Changed to ...
326 (VI124_256_48_512): This.
327 (ssepackmode): Extended with wider modes.
328 (<code><mode>3): Changed iterator.
329 (*avx2_<code><mode>3): Ditto.
330 (vec_pack_trunc_<mode>): Ditto.
331
16821545
AI
3322013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
333 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
334 Sergey Lega <sergey.s.lega@intel.com>
335 Anna Tikhonova <anna.tikhonova@intel.com>
336 Ilya Tocar <ilya.tocar@intel.com>
337 Andrey Turetskiy <andrey.turetskiy@intel.com>
338 Ilya Verbin <ilya.verbin@intel.com>
339 Kirill Yukhin <kirill.yukhin@intel.com>
340 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
341
342 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
343 (VI8F_256_512): Ditto.
344 (abs<mode>2): Changed iterator.
345 (avx2_perm<mode>): Changed to ...
346 (<avx2_avx512f>_perm<mode>): This.
347 (avx2_perm<mode>_1): Changed to ...
348 (<avx2_avx512f>_perm<mode>_1): This.
349
5348cff8
AI
3502013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
351 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
352 Sergey Lega <sergey.s.lega@intel.com>
353 Anna Tikhonova <anna.tikhonova@intel.com>
354 Ilya Tocar <ilya.tocar@intel.com>
355 Andrey Turetskiy <andrey.turetskiy@intel.com>
356 Ilya Verbin <ilya.verbin@intel.com>
357 Kirill Yukhin <kirill.yukhin@intel.com>
358 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
359
360 * config/i386/sse.md (VI48_AVX512F): New.
361 (VI48_AVX2): Changed to ...
362 (VI48_AVX2_48_AVX512F): This.
363 (avx2_ashrv<mode>): Changed to ...
364 (<avx2_avx512f>_ashrv<mode>): This.
365 (avx2_<shift_insn>v<mode>): Changed to ...
366 (<avx2_avx512f>_<shift_insn>v<mode>): This.
367
f5f41d88
AI
3682013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
369 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
370 Sergey Lega <sergey.s.lega@intel.com>
371 Anna Tikhonova <anna.tikhonova@intel.com>
372 Ilya Tocar <ilya.tocar@intel.com>
373 Andrey Turetskiy <andrey.turetskiy@intel.com>
374 Ilya Verbin <ilya.verbin@intel.com>
375 Kirill Yukhin <kirill.yukhin@intel.com>
376 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
377
378 * config/i386/sse.md (VI4_AVX512F): New.
379 (VI8_AVX2_AVX512F): Ditto.
380 (mul<mode>3): Extended with wider modes.
381 (*<sse4_1_avx2>_mul<mode>3): Ditto.
382 (mul<mode>3): Ditto.
383 (vec_widen_<s>mult_odd_<mode>): Ditto.
384
3bdf6340
AI
3852013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
386 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
387 Sergey Lega <sergey.s.lega@intel.com>
388 Anna Tikhonova <anna.tikhonova@intel.com>
389 Ilya Tocar <ilya.tocar@intel.com>
390 Andrey Turetskiy <andrey.turetskiy@intel.com>
391 Ilya Verbin <ilya.verbin@intel.com>
392 Kirill Yukhin <kirill.yukhin@intel.com>
393 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
394
395 * config/i386/sse.md (VI2_AVX512F): New.
396 (VI124_AVX512F): Ditto.
397 (sseunpackmode): Extended with wider modes.
398 (sseunpackfltmode): Ditto.
399 (vec_unpacks_float_hi_<mode>): Ditto.
400 (vec_unpacks_float_lo_<mode>): Ditto.
401 (vec_unpacku_float_hi_<mode>): Ditto.
402 (vec_unpacku_float_lo_<mode>): Ditto.
403 (vec_unpacks_lo_<mode>): Ditto.
404 (vec_unpacks_hi_<mode>): Ditto.
405 (vec_unpacku_lo_<mode>): Ditto.
406 (vec_unpacku_hi_<mode>): Ditto.
407
67f783cb
AI
4082013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
409 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
410 Sergey Lega <sergey.s.lega@intel.com>
411 Anna Tikhonova <anna.tikhonova@intel.com>
412 Ilya Tocar <ilya.tocar@intel.com>
413 Andrey Turetskiy <andrey.turetskiy@intel.com>
414 Ilya Verbin <ilya.verbin@intel.com>
415 Kirill Yukhin <kirill.yukhin@intel.com>
416 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
417
418 * config/i386/i386.md (multdiv): New.
419 (multdiv_mnemonic): Ditto.
420 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
421 (<sse>_vm<multdiv_mnemonic><mode>3): This.
422 (<sse>_vmdiv<mode>3): Removed.
423
ec5e777c
AI
4242013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
425 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
426 Sergey Lega <sergey.s.lega@intel.com>
427 Anna Tikhonova <anna.tikhonova@intel.com>
428 Ilya Tocar <ilya.tocar@intel.com>
429 Andrey Turetskiy <andrey.turetskiy@intel.com>
430 Ilya Verbin <ilya.verbin@intel.com>
431 Kirill Yukhin <kirill.yukhin@intel.com>
432 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
433
434 * config/i386/sse.md (V): Extended with wider modes.
435 (VF2): Ditto.
436 (ssehalfvecmode): Ditto.
437 (i128): Ditto.
438 (ssepackfltmode): Ditto.
439 (avx_vec_concat<mode>): Ditto.
440 (V_256_512): New iterator.
441 (VF2_512_256): Ditto.
442 (si2dfmode): New attribute.
443 (si2dfmodelower): Ditto.
444 (sf2dfmode): Ditto.
445 (concat_tg_mode): Ditto.
446 (floatv4siv4df2): Changed to ...
447 (float<si2dfmodelower><mode>2): This.
448 (avx_cvtps2pd256): Changed to ...
449 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
450 (vec_pack_trunc_v4df): Changed to ...
451 (vec_pack_trunc_<mode>): This.
452 (avx_vpermil<mode>): Changed to ...
453 (<sse2_avx_avx512f>_vpermil<mode>): This.
454 (<fixsuffix>fix_truncv8dfv8si2): New.
455 (vec_pack_sfix_trunc_v8df): Ditto.
456 (avx512f_rndscale<mode>): Ditto.
457 (avx512f_roundpd512): Ditto.
458 (vec_pack_ufix_trunc_<mode>): Updated iterator.
459
a9ccbba2
AI
4602013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
461 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
462 Sergey Lega <sergey.s.lega@intel.com>
463 Anna Tikhonova <anna.tikhonova@intel.com>
464 Ilya Tocar <ilya.tocar@intel.com>
465 Andrey Turetskiy <andrey.turetskiy@intel.com>
466 Ilya Verbin <ilya.verbin@intel.com>
467 Kirill Yukhin <kirill.yukhin@intel.com>
468 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
469
470 * config/i386/i386.md (any_fix): New iterator.
471 (fixsuffix): New attribute.
472 * config/i386/sse.md (VF1): Extened with wider modes.
473 (VI): Ditto.
474 (VI_AVX2): Ditto.
475 (VI8): Ditto.
476 (sseintvecmodelower): Ditto.
477 (ssescalarmode): Ditto.
478 (ssescalarnum): Ditto.
479 (VF1_128_256): New.
480 (ssexmmmode): Ditto.
481 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
482 (<sse>_rcp<mode>2): Change iterator.
483 (rsqrt<mode>2): Ditto.
484 (<sse>_rsqrt<mode>2): Ditto.
485 (avx2_vec_dup<mode>): Ditto.
486 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
487 (round<mode>2_sfix): Ditto.
488 (avx2_pbroadcast<mode>): Ditto.
489 (*andnot<mode>3): Handle XI mode.
490 (*<code><mode>3): Ditto.
491 (AVXTOSSEMODE): Removed.
492 (avx_vpermil<mode>): Changed to ...
493 (<sse2_avx_avx512f>_vpermil<mode>): This.
494
2b1ebb0c
AI
4952013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
496 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
497 Sergey Lega <sergey.s.lega@intel.com>
498 Anna Tikhonova <anna.tikhonova@intel.com>
499 Ilya Tocar <ilya.tocar@intel.com>
500 Andrey Turetskiy <andrey.turetskiy@intel.com>
501 Ilya Verbin <ilya.verbin@intel.com>
502 Kirill Yukhin <kirill.yukhin@intel.com>
503 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
504
505 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
506 (<sse>_comi): Ditto.
507 (<sse>_ucomi): Ditto.
508 (sse_cvtss2siq_2): Ditto.
509 (sse2_cvtsd2si): Ditto.
510 (sse2_cvtsd2siq): Ditto.
511 (sse2_cvttsd2si): Ditto.
512 (sse2_cvttsd2siq): Ditto.
513 (<shift_insn><mode>3): Ditto.
514 (sse2_cvtsi2sdq): Update constraint and prefix.
515 (sse_cvtsi2ss): Update prefix.
516 (sse_cvtsi2ssq): Ditto.
517
d89124ed
JJ
5182013-10-11 Jakub Jelinek <jakub@redhat.com>
519
520 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
521 ignore internal calls.
522
e6ad28c3
RB
5232013-10-11 Richard Biener <rguenther@suse.de>
524
525 * tree-pretty-print.c (dump_generic_node): Allow to dump
526 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
527 (OVF) if TREE_OVERFLOW is set.
528
d1227447
TS
5292013-10-11 Thomas Schwinge <thomas@codesourcery.com>
530
1ac4b8e4
TS
531 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
532
7d05cebb
TS
533 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
534 * gimple.h: Likewise.
535
adcfd489 536 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 537
1a79fb8a
TS
538 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
539 macros.
540
3afd2873
TS
541 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
542
adcfd489 543 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
544 * configure: Regenerate.
545
acf0174b
JJ
5462013-10-11 Jakub Jelinek <jakub@redhat.com>
547
548 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
549 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
550 formatting fixes, use pp_colon instead of pp_character (..., ':'),
551 similarly pp_right_paren.
552 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
553 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
554 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
555 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
556 clauses.
557 (omp_declare_simd_clauses_equal,
558 omp_remove_redundant_declare_simd_attrs): New functions.
559 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
560 (walk_tree_1): Handle new OpenMP 4.0 clauses.
561 * tree.h (OMP_LOOP_CHECK): Define.
562 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
563 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
564 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
565 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
566 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
567 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
568 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
569 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
570 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
571 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
572 OMP_CLAUSE_SIMDLEN_EXPR): Define.
573 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
574 (omp_remove_redundant_declare_simd_attrs): New prototype.
575 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
576 GIMPLE_OMP_TEAMS): New codes.
577 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
578 * omp-low.c (struct omp_context): Add cancel_label and cancellable
579 fields.
580 (target_nesting_level): New variable.
581 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
582 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
583 for collapse > 1 static schedule unless ordered.
584 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
585 (determine_parallel_type): Adjust get_ws_args_for caller.
586 (install_var_field): Handle mask & 4 for double indirection.
587 (scan_sharing_clauses): Ignore shared clause on teams construct.
588 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
589 (create_omp_child_function): If inside target or declare target
adcfd489 590 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
591 (find_combined_for): New function.
592 (scan_omp_parallel): Handle combined loops.
593 (scan_omp_target, scan_omp_teams): New functions.
594 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
595 restrictions and set ctx->cancellable for cancellable constructs.
596 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
597 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
598 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 599 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b
JJ
600 (omp_clause_aligned_alignment): New function.
601 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
602 on decls.
603 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
604 on teams constructs. Handle user defined reductions and new
605 OpenMP 4.0 clauses.
606 (lower_reduction_clauses): Don't set placeholder to address of ref
607 if it has already the right type.
608 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
609 (expand_parallel_call): Use the new non-_start suffixed builtins,
610 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
611 and GOMP_parallel_end after the call.
612 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
613 (expand_omp_for_init_counts): Handle combined loops.
614 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
615 loops.
616 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
617 end of cancellable loops.
618 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
619 Likewise. Handle collapse > 1 loops.
620 (expand_omp_simd): Handle combined loops.
621 (expand_omp_for): Add inner_stmt argument, adjust callers of
622 expand_omp_for* functions, use expand_omp_for_static*chunk even
623 for collapse > 1 unless ordered.
624 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
625 of cancellable sections.
626 (expand_omp_single): Remove need_barrier variable, just rely on
627 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
628 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
629 (expand_omp_atomic_load, expand_omp_atomic_store,
630 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
631 (expand_omp_target): New function.
632 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
633 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
634 (build_omp_regions_1): Immediately close region for
635 GF_OMP_TARGET_KIND_UPDATE.
636 (maybe_add_implicit_barrier_cancel): New function.
637 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
638 cancellation.
639 (lower_omp_single): Likewise. Add clobber after the barrier.
640 (lower_omp_taskgroup): New function.
641 (lower_omp_for): Handle combined loops. Adjust
642 lower_rec_input_clauses caller. Handle cancellation.
643 (lower_depend_clauses): New function.
644 (lower_omp_taskreg): Lower depend clauses. Adjust
645 lower_rec_input_clauses caller. Add clobber after the call. Handle
646 cancellation.
647 (lower_omp_target, lower_omp_teams): New functions.
648 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
649 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
650 and GOMP_cancellation_point calls.
651 (lower_omp): Fold stmts inside of target region.
652 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
653 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
654 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
655 (BT_FN_VOID_OMPFN_PTR_UINT,
656 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
657 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
658 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
659 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
660 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
661 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
662 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
663 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
664 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
665 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
666 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
667 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
668 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
669 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
670 BUILT_IN_GOMP_PARALLEL_END.
671 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
672 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
673 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
674 GF_OMP_FOR_KIND_DISTRIBUTE.
675 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
676 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
677 (dump_gimple_omp_return): Print lhs if it has any.
678 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
679 gimple_omp_atomic_seq_cst_p.
680 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
681 and GIMPLE_OMP_TEAMS.
682 * langhooks.c (lhd_omp_mappable_type): New function.
683 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
684 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
685 hook.
686 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
687 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
688 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
689 ORT_TARGET.
690 (struct gimplify_omp_ctx): Add combined_loop field.
691 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
692 on stmts inside of target region.
693 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
694 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
695 ORT_TARGET and ORT_TARGET_DATA.
696 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
697 Handle GOVD_MAP.
698 (omp_notice_threadprivate_variable): Complain about threadprivate
699 variables in target region.
700 (omp_notice_variable): Complain about vars with non-mappable type
701 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
702 (omp_check_private): Ignore ORT_TARGET* regions.
703 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
704 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
705 (find_combined_omp_for): New function.
706 (gimplify_omp_for): Handle gimplification of combined loops.
707 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
708 OMP_TEAMS.
709 (gimplify_omp_target_update): New function.
710 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
711 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
712 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
713 (gimplify_body): If fndecl has "omp declare target" attribute, add
714 implicit ORT_TARGET context around it.
715 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
716 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
717 * tree-nested.c (convert_nonlocal_reference_stmt,
718 convert_local_reference_stmt, convert_gimple_call): Handle
719 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
720 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
721 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
722 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
723 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
724 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
725 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
726 BUILT_IN_GOMP_LOOP_END_CANCEL,
727 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
728 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
729 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
730 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
731 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
732 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
733 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
734 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
735 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
736 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
737 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
738 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
739 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
740 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
741 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
742 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
743 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
744 gimple_build_omp_teams): New functions.
745 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
746 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
747 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
748 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
749 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
750 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
751 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
752 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
753 GF_OMP_ATOMIC_SEQ_CST): New.
754 (gimple_build_omp_taskgroup, gimple_build_omp_target,
755 gimple_build_omp_teams): New prototypes.
756 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
757 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
758 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
759 GIMPLE_OMP_SINGLE as end of range.
760 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
761 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
762 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
763 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
764 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
765 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
766 gimple_omp_target_kind, gimple_omp_target_set_kind,
767 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
768 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
769 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
770 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
771 gimple_omp_teams_set_clauses): New inlines.
772 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
773 and GIMPLE_OMP_TASKGROUP.
adcfd489 774 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
775 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
776 enum omp_clause_proc_bind_kind): New.
777 (union omp_clause_subcode): Add depend_kind, map_kind and
778 proc_bind_kind fields.
779 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
780 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
781 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
782 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
783 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
784
67fa7880
TJ
7852013-10-10 Teresa Johnson <tejohnson@google.com>
786
787 * predict.c (tree_estimate_probability): Add new parameter
788 for estimate_bb_frequencies.
789 (estimate_bb_frequencies): Add new parameter to force estimation.
790 (rebuild_frequencies): When max frequency in function is small,
791 recompute counts from frequencies.
792 * predict.h (estimate_bb_frequencies): New parameter.
793
b591a8b7
DM
7942013-10-10 David Malcolm <dmalcolm@redhat.com>
795
796 * ipa-inline.c (ipa_inline): Fix leak of "order" when
797 optimizations are disabled.
798
782f0db2
DM
7992013-10-10 David Malcolm <dmalcolm@redhat.com>
800
801 * coverage.c (coverage_finish): Fix leak of da_file_name.
802
13ef00fa
JH
8032013-10-10 Jan Hubicka <jh@suse.cz>
804
805 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
806 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
807 Bobcat and generic.
808
a1d50386
JJ
8092013-10-10 Jakub Jelinek <jakub@redhat.com>
810
811 PR middle-end/58670
812 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
813 if any labels are in FALLTHRU_BB, use a special label emitted
814 immediately after the asm goto insn rather than label_rtx
815 of the LABEL_DECL.
816 (expand_asm_stmt): Adjust caller.
817 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
818 edge if the last insn in predecessor is a jump with single successor,
819 but it isn't simplejump_p.
820
e2c2fde2
RB
8212013-10-10 Richard Biener <rguenther@suse.de>
822
823 PR tree-optimization/58656
824 * tree-ssa-pre.c (phi_translate): Do not cache failed
825 translations.
826
de6a5608
AM
8272013-10-10 Andrew MacLeod <amacleod@redhat.com>
828
adcfd489
UB
829 * gimplify.c: Include expr.h and tm_p.h for targets with special
830 va-arg padding requirements.
de6a5608 831
b184c8f1
AM
8322013-10-10 Andrew MacLeod <amacleod@redhat.com>
833
834 * tree-flow.h: Move some prototypes to gimple.h.
835 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
836 * gimple.h: Relocate some prototypes from tree-flow.h
837 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
838 Move to gimplify.c.
839 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
840 (build_va_arg_indirect_ref): Relocate and make static.
841 (std_gimplify_va_arg_expr): Relocate here.
842 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
843 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
844
13b72c22
AK
8452013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
846
847 * doc/md.texi: Document the mnemonic attribute.
848
5db40447
AK
8492013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
850
851 PR target/57377
852 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
853 (set_attr_alternative x ...) when searching for user defined
854 mnemonic attribute.
855
ed018d4b
AM
8562013-10-10 Andrew MacLeod <amacleod@redhat.com>
857
858 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
859
4d5b5e9f
ER
8602013-10-09 Easwaran Raman <eraman@google.com>
861
862 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
863 * cfgexpand.c (defer_stack_allocation): ...use here
864 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
865
c9ef86a1
ZC
8662013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
867
868 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
869 (operand_equal_for_value_replacement): New function, extracted from
870 value_replacement and enhanced to catch more cases.
871 (value_replacement): Use operand_equal_for_value_replacement.
872
2431114f
AM
8732013-10-09 Andrew MacLeod <amacleod@redhat.com>
874
adcfd489 875 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
876 get_max_loop_iterations.
877
1dd2a9a0
KT
8782013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
879
880 * config/arm/aarch-common.c (arm_early_load_addr_dep):
881 Place comment above function.
882
c1bf2a39
AM
8832013-10-09 Andrew MacLeod <amacleod@redhat.com>
884
885 * tree-flow.h: Remove all remaining prototypes, enums and structs that
886 are not related to tree-cfg.c.
887 * tree-ssa-address.h: New file. Relocate prototypes.
888 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
889 (addr_for_mem_ref): New. Combine call to get_address_description and
890 return addr_for_mem_ref.
891 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
892 * tree-ssa-live.h: Adjust prototypes.
893 * passes.c: Include tree-ssa-live.h.
894 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
895 * graphite.c (graphite_transform_loops): Make static.
896 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 897 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
898 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
899 * ipa-pure-const.c (warn_function_noreturn): Make static.
900 (execute_warn_function_noreturn, gate_warn_function_noreturn,
901 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
902 Relocate from tree-cfg.c
903 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
904 static.
905 (execute_warn_function_noreturn, gate_warn_function_noreturn,
906 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
907 Move to ipa-pure-const.c.
adcfd489
UB
908 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
909 Relocate from tree-optimize.c.
c1bf2a39
AM
910 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
911 make_pass_fixup_cfg): Move to tree-cfg.c.
912 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
913 Relocate some prototypes.
914 * tree-data-ref.h (tree_check_data_deps) Add prototype.
915 * tree-dump.c (dump_function_to_file): Remove prototype.
916 Add tree-flow.h to the include file.
917 * tree-dump.h: Remove prototype.
918 * tree-parloops.h: New File. Add prototypes.
919 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
920 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
921 from tree-ssa-loop.c.
922 * tree-predcom.c (run_tree_predictive_commoning,
923 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
924 Relocate here from tree-ssa-loop.c.
adcfd489 925 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
926 ssa_name_values.release ().
927 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
928 (ssa_name_values): Relocate from tree-flow.h.
929 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
930 * tree-ssa-loop.c (run_tree_predictive_commoning,
931 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
932 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
933 make_pass_graphite, pass_data_graphite_transforms,
934 make_pass_graphite_transforms, gate_tree_parallelize_loops,
935 tree_parallelize_loops, pass_data_parallelize_loops,
936 make_pass_parallelize_loops): Move to other files.
937 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
938 moved here.
939 * tree.h: Remove prototypes from tree-address.c.
940
cc524fc7
AM
9412013-10-09 Andrew MacLeod <amacleod@redhat.com>
942
943 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
944 (struct int_tree_map): Move to tree-hasher.h
945 (SCALE, LABEL, PERCENT): Move to gimple.h
946 * tree-flow-inline.h: Delete. Move functions to other files.
947 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
948 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
949 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
950 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
951 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
952 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
953 * tree-hasher.h: Don't include tree-flow.h.
954 (struct int_tree_map): Relocate from tree-flow.h.
955 * tree-sra.c (contains_view_convert_expr_p): Relocate from
956 tree-flow-inline.h and make static.
adcfd489
UB
957 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
958 tree-flow-inline.h.
cc524fc7
AM
959 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
960 tree-flow-inline.h and make static.
961 * tree.h (is_global_var, may_be_aliased): Relocate from
962 tree-flow-inline.h.
963 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
964 * value-prof.c: No longer include tree-flow-inline.h.
965 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
966
71343877
AM
9672013-10-09 Andrew MacLeod <amacleod@redhat.com>
968
969 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
970 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
971 (enum move_pos): Move to tree-ssa-loop-im.h
972 * cfgloop.h: Move some prototypes.
973 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
974 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
975 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
976 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
977 (loop_containing_stmt): Relocate from tree-flow-inline.h.
978 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
979 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
980 (enum move_pos): Relocate here.
981 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
982 tree-ssa-loop.c.
983 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
984 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
985 make_pass_lim): Relocate here from tree-ssa-loop.c.
986 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
987 tree-ssa-loop.c.
988 (loop_edge_to_cancel, unloop_loops): Make static.
989 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
990 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
991 (tree_complete_unroll, gate_tree_complete_unroll,
992 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
993 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
994 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
995 * tree-ssa-loop-ivopts.c: Remove local prototypes.
996 (stmt_invariant_in_loop_p): Remove unused function.
997 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
998 * tree-ssa-loop-manip.h: New file. Add prototypes.
999 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
1000 (gcov_type_to_double_int): Move to cfgloop.h.
1001 (double_int_cmp, bound_index,
1002 estimate_numbers_of_iterations_loop): Make static.
1003 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
1004 (max_loop_iterations): Factor out get_max_loop_iterations.
1005 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
1006 cfgloop.c.
1007 * tree-ssa-loop-niter.h: New file. Add prototypes.
1008 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
1009 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
1010 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
1011 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
1012 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
1013 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
1014 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
1015 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
1016 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
1017 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
1018 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
1019 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
1020 pass_data_complete_unroll, make_pass_complete_unroll,
1021 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
1022 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
1023 tree-ssa-loop-ivcanon.c.
1024 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
1025 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
1026 tree-ssa-loop-prefetch.c.
1027 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
1028 tree-ssa-loop-im.c.
1029 (get_lsm_tmp_name): Relocate and add suffix parameter.
1030 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
1031 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
1032 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
1033 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 1034 (get_estimated_loop_iterations): Factor out accessor from
71343877 1035 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
1036 (get_max_loop_iterations): Factor out accessor from
1037 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
1038 * loop-unroll.c (decide_unroll_constant_iterations,
1039 decide_unroll_runtime_iterations, decide_peel_simple,
1040 decide_unroll_stupid): Use new get_* accessors.
1041
826cacfe
MG
10422013-10-09 Marc Glisse <marc.glisse@inria.fr>
1043
1044 PR tree-optimization/20318
1045 * doc/extend.texi (returns_nonnull): New function attribute.
1046 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
1047 attribute.
1048 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
1049 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
1050
378f8976
EB
10512013-10-09 Eric Botcazou <ebotcazou@adacore.com>
1052
1053 PR middle-end/58570
1054 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
1055 false if both components are bitfields.
1056
0fe04f5c
AV
10572013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1058
1059 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
1060 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
1061 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
1062 * config/aarch64/aarch64.h
1063 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
1064 * config/aarch64/aarch64-simd-builtins.def
1065 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
1066
bed9bae4
AV
10672013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1068
1069 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
1070
7f3d8b19
AV
10712013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1072
1073 * config/aarch64/arm_neon.h (vdiv_f64): Added.
1074
7df625a6
AV
10752013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1076
1077 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
1078 (vneg_f64): New intrinsic.
1079 (vneg_s8): Asm replaced with C.
1080 (vneg_s16): Likewise.
1081 (vneg_s32): Likewise.
1082 (vneg_s64): New intrinsic.
1083 (vnegq_f32): Asm replaced with C.
1084 (vnegq_f64): Likewise.
1085 (vnegq_s8): Likewise.
1086 (vnegq_s16): Likewise.
1087 (vnegq_s32): Likewise.
1088 (vnegq_s64): Likewise.
1089
2b86fca7
RL
10902013-10-09 Renlin Li <Renlin.Li@arm.com>
1091
1092 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
1093
e179df83
AK
10942013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1095
1096 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
1097 packed stack special handling.
1098 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
1099 back to fixed stack slots for FPRs saved due to stdarg.
1100
74129172
AK
11012013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1102
1103 * config/s390/s390.c (s390_frame_info): Restructure function.
1104
6455a49e
AK
11052013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1106
1107 * config/s390/s390.c (struct s390_frame_layout): New field
1108 gpr_save_slots.
1109 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
1110 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
1111 regs_ever_clobbered to char*.
adcfd489
UB
1112 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
1113 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
1114 (s390_register_info): Enable FPR save slots. Move/Copy some
1115 functionality into ...
1116 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
1117 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
1118 function.
1119 (s390_frame_info): Do gpr slot allocation here now. stdarg does
1120 not imply a stack frame.
1121 (s390_init_frame_layout): Remove variable clobbered_regs.
1122 (s390_update_register_info): Remove function.
1123 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
1124 cannot be used for register renaming.
1125 (s390_hard_regno_scratch_ok): New function.
1126 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
1127 (s390_initial_elimination_offset): Change offset calculation of
1128 the return address pointer.
adcfd489 1129 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 1130 (restore_gprs): Set frame related flag.
adcfd489 1131 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
1132 (s390_emit_prologue): Call s390_register_info instead of
1133 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
1134 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
1135 (s390_optimize_prologue): Call s390_optimize_register_info.
1136 Try to remove also FPR slot save/restore INSNs. Remove frame
1137 related flags from restore INSNs.
1138
59d96342
DD
11392013-10-08 DJ Delorie <dj@redhat.com>
1140
0dc7adad
DD
1141 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
1142 (movhi): Likewise.
1143
59d96342
DD
1144 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
1145 avoid conflict with the MI use of %c.
1146 * config/rl78/rl78-real.md: change %c to %C throughout.
1147 * config/rl78/rl78-virt.md: Likewise.
1148
a81169d8
JH
11492013-10-08 Jan Hubicka <jh@suse.cz>
1150
1151 * config/i386/i386.c (ix86_option_override_internal): Switch
1152 to SSE math for -ffast-math when target ISA supports SSE2.
1153
481d1b81
AM
11542013-10-08 Andrew MacLeod <amacleod@redhat.com>
1155
1156 * tree-flow.h: Remove some prototypes.
1157 * tree.h: Remove some protypes, add a couple.
1158 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
1159 using_eh_for_cleanups_p): Add interface routines for front ends.
1160 * tree-eh.h: New file. Add protoptyes.
1161 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
1162 (add_stmt_to_eh_lp_fn): Make static.
1163 (lower_try_finally): Use new using_eh_for_cleanups_p.
1164 * emit-rtl.c: Include tree-eh.h.
1165 * gimple.h: Include tree-eh.h.
1166
0e6a0e48
MG
11672013-10-08 Marc Glisse <marc.glisse@inria.fr>
1168
1169 PR tree-optimization/58480
1170 * tree-vrp.c (infer_nonnull_range): New function.
1171 (infer_value_range): Call infer_nonnull_range.
1172
ef6179d1
DC
11732013-10-08 Dehao Chen <dehao@google.com>
1174
1175 PR tree-optimization/58619
1176 * tree-inline.c (copy_phis_for_bb): Combine location data
1177 only if non-null.
1178
07d964d5
ZC
11792013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1180
1181 PR target/58423
1182 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
1183 RTX_FRAME_RELATED_P on INSN.
1184
19e9b2a3
BS
11852013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1186
1187 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
1188 (altivec_expand_vec_perm_const): Call it.
1189
0cf68694
BS
11902013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1191
1192 * config/rs6000/vector.md (mov<mode>): Emit permuted move
1193 sequences for LE VSX loads and stores at expand time.
1194 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
1195 prototype.
1196 * config/rs6000/rs6000.c (rs6000_const_vec): New.
1197 (rs6000_gen_le_vsx_permute): New.
1198 (rs6000_gen_le_vsx_load): New.
1199 (rs6000_gen_le_vsx_store): New.
1200 (rs6000_gen_le_vsx_move): New.
1201 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
1202 (*vsx_le_perm_load_v4si): New.
1203 (*vsx_le_perm_load_v8hi): New.
1204 (*vsx_le_perm_load_v16qi): New.
1205 (*vsx_le_perm_store_v2di): New.
1206 (*vsx_le_perm_store_v4si): New.
1207 (*vsx_le_perm_store_v8hi): New.
1208 (*vsx_le_perm_store_v16qi): New.
1209 (*vsx_xxpermdi2_le_<mode>): New.
1210 (*vsx_xxpermdi4_le_<mode>): New.
1211 (*vsx_xxpermdi8_le_V8HI): New.
1212 (*vsx_xxpermdi16_le_V16QI): New.
1213 (*vsx_lxvd2x2_le_<mode>): New.
1214 (*vsx_lxvd2x4_le_<mode>): New.
1215 (*vsx_lxvd2x8_le_V8HI): New.
1216 (*vsx_lxvd2x16_le_V16QI): New.
1217 (*vsx_stxvd2x2_le_<mode>): New.
1218 (*vsx_stxvd2x4_le_<mode>): New.
1219 (*vsx_stxvd2x8_le_V8HI): New.
1220 (*vsx_stxvd2x16_le_V16QI): New.
1221
9520e1eb
RL
12222013-10-07 Renlin Li <Renlin.Li@arm.com>
1223
1224 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
1225
36c0bd4f
AK
12262013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1227
1228 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
1229 loop to work also for 31bit ABI.
1230 Save the stack pointer for frame_size > 0.
1231
ee163e72
AK
12322013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1233
1234 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
1235 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
1236 constraint letters from expanders.
1237 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
1238 retry count to general_operand.
1239 ("tabort"): Give operand 0 a mode.
1240 ("tabort_1"): Add mode and constraint letter for operand 0.
1241 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
1242
45d99234
JL
12432013-10-04 Jeff Law <law@redhat.com>
1244
1245 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
1246
adcfd489
UB
1247 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
1248 out of ...
45d99234
JL
1249 (thread_across_edge): Here. Call it.
1250
7c327f7b
CC
12512013-10-04 Cary Coutant <ccoutant@google.com>
1252
1253 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 1254 discarding a location list expression (or a piece of one).
7c327f7b 1255
6867e128
JH
12562013-10-03 Jan Hubicka <jh@suse.cz>
1257
65efa7e7
UB
1258 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
1259 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 1260 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 1261
c7f36d55
JH
12622013-10-03 Jan Hubicka <jh@suse.cz>
1263
65efa7e7 1264 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
1265 accumulate-outgoing-args when producing unwind info.
1266
4f0bee4c
WM
12672013-10-03 Wei Mi <wmi@google.com>
1268
1269 * lra-constraints.c (insert_move_for_subreg): New function
1270 extracted from simplify_operand_subreg.
1271 (simplify_operand_subreg): Add reload for paradoxical subreg.
1272
111c3f39
RX
12732013-10-03 Rong Xu <xur@google.com>
1274
65efa7e7
UB
1275 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
1276 the candidate of builtin_expect such that we should fix the
1277 size/time estimation.
1278 (estimate_function_body_sizes): Do the acutally size/time fix-up
1279 for builtin_expect.
111c3f39 1280
942df739
RX
12812013-10-03 Rong Xu <xur@google.com>
1282
65efa7e7
UB
1283 * predict.c (tree_predict_by_opcode): Get the probability
1284 for builtin_expect from param builtin_expect_probability.
1285 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
1286 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
1287 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 1288
2284b034
MG
12892013-10-03 Marc Glisse <marc.glisse@inria.fr>
1290
1291 PR c++/19476
1292 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
1293 * calls.c (alloca_call_p): Use get_callee_fndecl.
1294 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
1295 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
1296 Likewise.
1297 (vrp_visit_stmt): Remove duplicated code.
1298
0609bdf2
MM
12992013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1300
1301 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
1302 ceildf2, btruncdf2, instead of vsx_* name.
1303
1304 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
1305 iterators to only do V2DF and V4SF here. Move the DF code to
1306 rs6000.md where it is combined with SF mode. Replace <VSv> with
1307 just 'v' since only vector operations are handled with these insns
1308 after moving the DF support to rs6000.md.
1309 (vsx_sub<mode>3): Likewise.
1310 (vsx_mul<mode>3): Likewise.
1311 (vsx_div<mode>3): Likewise.
1312 (vsx_fre<mode>2): Likewise.
1313 (vsx_neg<mode>2): Likewise.
1314 (vsx_abs<mode>2): Likewise.
1315 (vsx_nabs<mode>2): Likewise.
1316 (vsx_smax<mode>3): Likewise.
1317 (vsx_smin<mode>3): Likewise.
1318 (vsx_sqrt<mode>2): Likewise.
1319 (vsx_rsqrte<mode>2): Likewise.
1320 (vsx_fms<mode>4): Likewise.
1321 (vsx_nfma<mode>4): Likewise.
1322 (vsx_copysign<mode>3): Likewise.
1323 (vsx_btrunc<mode>2): Likewise.
1324 (vsx_floor<mode>2): Likewise.
1325 (vsx_ceil<mode>2): Likewise.
1326 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
1327 (vsx_sminsf3): Likewise.
1328 (vsx_fmadf4): Likewise.
1329 (vsx_fmsdf4): Likewise.
1330 (vsx_nfmadf4): Likewise.
1331 (vsx_nfmsdf4): Likewise.
1332 (vsx_cmpdf_internal1): Likewise.
1333
1334 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
1335 simpler to select whether a target has SPE or traditional floating
1336 point support in iterators.
1337 (TARGET_DF_SPE): Likewise.
1338 (TARGET_SF_FPR): Likewise.
1339 (TARGET_DF_FPR): Likewise.
1340 (TARGET_SF_INSN): Macros to say whether floating point support
1341 exists for a given operation for expanders.
1342 (TARGET_DF_INSN): Likewise.
1343
1344 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
1345 combining of SF/DF mode operations, using both traditional and VSX
1346 registers.
1347 (Fvsx): Likewise.
1348 (Ff): Likewise.
1349 (Fv): Likewise.
1350 (Fs): Likewise.
1351 (Ffre): Likewise.
1352 (FFRE): Likewise.
1353 (abs<mode>2): Combine SF/DF modes using traditional floating point
1354 instructions. Add support for using the upper DF registers with
1355 VSX support, and SF registers with power8-vector support. Update
1356 expanders for operations supported by both the SPE and traditional
1357 floating point units.
1358 (abs<mode>2_fpr): Likewise.
1359 (nabs<mode>2): Likewise.
1360 (nabs<mode>2_fpr): Likewise.
1361 (neg<mode>2): Likewise.
1362 (neg<mode>2_fpr): Likewise.
1363 (add<mode>3): Likewise.
1364 (add<mode>3_fpr): Likewise.
1365 (sub<mode>3): Likewise.
1366 (sub<mode>3_fpr): Likewise.
1367 (mul<mode>3): Likewise.
1368 (mul<mode>3_fpr): Likewise.
1369 (div<mode>3): Likewise.
1370 (div<mode>3_fpr): Likewise.
1371 (sqrt<mode>3): Likewise.
1372 (sqrt<mode>3_fpr): Likewise.
1373 (fre<Fs>): Likewise.
1374 (rsqrt<mode>2): Likewise.
1375 (cmp<mode>_fpr): Likewise.
1376 (smax<mode>3): Likewise.
1377 (smin<mode>3): Likewise.
1378 (smax<mode>3_vsx): Likewise.
1379 (smin<mode>3_vsx): Likewise.
1380 (negsf2): Delete SF operations that are merged with DF.
1381 (abssf2): Likewise.
1382 (addsf3): Likewise.
1383 (subsf3): Likewise.
1384 (mulsf3): Likewise.
1385 (divsf3): Likewise.
1386 (fres): Likewise.
1387 (fmasf4_fpr): Likewise.
1388 (fmssf4_fpr): Likewise.
1389 (nfmasf4_fpr): Likewise.
1390 (nfmssf4_fpr): Likewise.
1391 (sqrtsf2): Likewise.
1392 (rsqrtsf_internal1): Likewise.
1393 (smaxsf3): Likewise.
1394 (sminsf3): Likewise.
1395 (cmpsf_internal1): Likewise.
1396 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
1397 (negdf2): Delete DF operations that are merged with SF.
1398 (absdf2): Likewise.
1399 (nabsdf2): Likewise.
1400 (adddf3): Likewise.
1401 (subdf3): Likewise.
1402 (muldf3): Likewise.
1403 (divdf3): Likewise.
1404 (fred): Likewise.
1405 (rsqrtdf_internal1): Likewise.
1406 (fmadf4_fpr): Likewise.
1407 (fmsdf4_fpr): Likewise.
1408 (nfmadf4_fpr): Likewise.
1409 (nfmsdf4_fpr): Likewise.
1410 (sqrtdf2): Likewise.
1411 (smaxdf3): Likewise.
1412 (smindf3): Likewise.
1413 (cmpdf_internal1): Likewise.
1414 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
1415 (btrunc<mode>2): Delete separate expander, and combine with the
1416 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
1417 (btrunc<mode>2_fpr): Likewise.
1418 (ceil<mode>2): Likewise.
1419 (ceil<mode>2_fpr): Likewise.
1420 (floor<mode>2): Likewise.
1421 (floor<mode>2_fpr): Likewise.
1422 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
1423 Add support for using the upper registers with VSX and
1424 power8-vector. Move insns to be closer to the define_expands. On
1425 VSX systems, prefer the traditional form of FMA over the VSX
1426 version, since the traditional form allows the target not to
1427 overlap with the inputs.
1428 (fms<mode>4_fpr): Likewise.
1429 (nfma<mode>4_fpr): Likewise.
1430 (nfms<mode>4_fpr): Likewise.
1431
5bea0c6c 14322013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 1433 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
1434
1435 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
1436 (struct mult_cost_table): Likewise.
1437 (struct mem_cost_table): Likewise.
1438 (struct fp_cost_table): Likewise.
1439 (struct vector_cost_table): Likewise.
1440 (cpu_cost_table): Likewise.
1441 * config/arm/arm.opt (mold-rts-costs): New option.
1442 (mnew-generic-costs): Likewise.
1443 * config/arm/arm.c (generic_extra_costs): New table.
1444 (cortexa15_extra_costs): Likewise.
1445 (arm_slowmul_tune): Use NULL as new costs.
1446 (arm_fastmul_tune): Likewise.
1447 (arm_strongarm_tune): Likewise.
1448 (arm_xscale_tune): Likewise.
1449 (arm_9e_tune): Likewise.
1450 (arm_v6t2_tune): Likewise.
1451 (arm_cortex_a5_tune): Likewise.
1452 (arm_cortex_a9_tune): Likewise.
1453 (arm_v6m_tune): Likewise.
1454 (arm_fa726te_tune): Likewise.
1455 (arm_cortex_a15_tune): Use cortex15_extra_costs.
1456 (arm_cortex_tune): Use generict_extra_costs.
1457 (shifter_op_p): New function.
1458 (arm_unspec_cost): Likewise.
1459 (LIBCALL_COST): Define.
1460 (arm_new_rtx_costs): New function.
1461 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
1462 table is available. Use old costs otherwise unless mnew-generic-costs
1463 is specified.
1464 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
1465 (cpu_cost_table): Declare.
1466
24c56925
MS
14672013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
1468
1469 PR target/58460
1470 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
1471 (*subs_mul_imm_<mode>)
1472 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
1473 (*sub_<shift>_<mode>)
1474 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
1475 Remove k constraint.
1476
2ab8f063
IB
14772013-10-03 Ian Bolton <ian.bolton@arm.com>
1478
1479 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
1480 code.
1481 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
1482
79221839
TJ
14832013-10-02 Teresa Johnson <tejohnson@google.com>
1484
1485 * predict.c (probably_never_executed): New function.
1486 (probably_never_executed_bb_p): Invoke probably_never_executed.
1487 (probably_never_executed_edge_p): Ditto.
1488 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1489 Treat profile insanities conservatively.
1490
d441afe0
JDA
14912013-10-02 John David Anglin <danglin@gcc.gnu.org>
1492
1493 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
1494
80f466c4
VM
14952013-10-02 Vladimir Makarov <vmakarov@redhat.com>
1496
1497 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
1498 use it. Use smaller increase for scratch. Don't increase reject
1499 for early clobber scratch.
1500 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
1501 setting eliminated regs except setting fp from hfp.
1502 (lra_eliminate): Check lra_insn_recog_data on NULL.
1503
6e228b4b
MM
15042013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1505
1506 PR target/58587
1507 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 1508 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
1509 (RS6000_CPU, power7 defaults): Likewise.
1510
11b54a5a
UB
15112013-10-02 Uros Bizjak <ubizjak@gmail.com>
1512
1513 * config/x-linux (host-linux.o): Remove header dependencies.
1514 Use $(COMPILE) and $(POSTCOMPILE).
1515 * config/t-linux-android (linux-android.o): Ditto.
1516
bbc02b69
UB
15172013-10-02 Uros Bizjak <ubizjak@gmail.com>
1518
1519 * Makefile.in (expmed.o-warn): Remove.
1520
440917de
AM
15212013-10-02 Andrew MacLeod <amacleod@redhat.com>
1522
1523 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
1524 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
1525
99206ca9
TJ
15262013-10-02 Teresa Johnson <tejohnson@google.com>
1527
1528 * dojump.c (do_jump_1): Divide probability between
1529 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
1530
56e82b14
TT
15312013-10-02 Tom Tromey <tromey@redhat.com>
1532
1533 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
1534
3d9c733e
AM
15352013-10-02 Andrew MacLeod <amacleod@redhat.com>
1536
1537 * tree-flow.h: Remove some prototypes.
1538 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
1539 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
1540 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
1541 mark_virtual_phi_result_for_renaming): Relocate here.
1542 * tree-into-ssa.h: Add prototypes.
bbc02b69 1543 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
1544 single_pred_before_succ_order.
1545 (blocks_in_phiopt_order): Rename and move to cfganal.c.
1546 (nonfreeing_call_p) Move to gimple.c.
1547 * cfganal.c (single_pred_before_succ_order): Move and renamed from
1548 tree-ssa-phiopt.c.
1549 * basic-block.h (single_pred_before_succ_order): Add prototype.
1550 * gimple.c (nonfreeing_call_p): Relocate here.
1551 * gimple.h: Add prototype.
1552 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
1553 * tree-ssa-dom.h: New file. Relocate prototypes here.
1554 * tree-ssa.h: Include tree-ssa-dom.h.
1555
78cedfb1
UB
15562013-10-02 Uros Bizjak <ubizjak@gmail.com>
1557
1558 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
1559 Use $(COMPILE) and $(POSTCOMPILE).
1560
1561 * config/alpha/x-alpha (driver-alpha.o): Ditto.
1562
744730a4
AM
15632013-10-02 Andrew MacLeod <amacleod@redhat.com>
1564
1565 * tree-flow.h: Remove some prototypes.
1566 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
1567 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1568 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
1569 propagate_tree_value*): Move from here to...
1570 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
1571 propagate_tree_value*): Relocate here.
1572 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1573 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
1574 * gimple-fold.c: Remove gimple-fold.h from include list.
1575 * tree-vrp.c: Remove gimple-fold.h from include list.
1576 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
1577 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
1578 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
1579 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
1580 * sese.c: Add tree-ssa-propagate.h to include list.
1581
826a536d
RB
15822013-10-02 Richard Biener <rguenther@suse.de>
1583
1584 * tree-loop-distribution.c: Include tree-vectorizer.h for
1585 find_loop_location.
1586 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 1587 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
1588 (partition_alloc): Adjust.
1589 (partition_builtin_p): Likewise.
1590 (partition_has_writes): Remove.
1591 (partition_reduction_p): New function.
1592 (partition_merge_into): Likewise.
1593 (generate_code_for_partition): Commonize builtin partition
1594 handling tail.
1595 (rdg_cannot_recompute_vertex_p): Remove.
1596 (already_processed_vertex_p): Likewise.
1597 (rdg_flag_vertex): Do not set has_writes.
1598 (classify_partition): Adjust.
1599 (rdg_build_partitions): Do not set has_writes, treat all
1600 partitions as useful.
78cedfb1 1601 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
1602 (tree_loop_distribution): Report number of loops and library
1603 calls generated as opt-info.
1604
4b403ece
AM
16052013-10-02 Andrew MacLeod <amacleod@redhat.com>
1606
1607 * tree-flow.h: Include new .h files. Move prototypes.
1608 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
1609 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
1610 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
1611 * tree-pretty-print.h: Add prototypes from tree-flow.h.
1612 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
1613 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
1614 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
1615 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 1616 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
1617 tree-dfa.h.
1618 * gimple-low.h: New File. Add prototypes from tree-flow.h.
1619 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
1620 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
1621 * tree-scalar-evolution.c: Include tree.h.
1622 * sese.c: Include tree.h.
1623 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
1624 * dwarf2out.c: Include tree-dfa.h.
1625 * tree-chrec.c: Include tree.h.
1626 * tree-data-ref.c: Include tree.h.
1627
1d2151c6
YZ
16282013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
1629
1630 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
1631 Fix whitespace.
1632
441ad147
RO
16332013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1634
1635 * config/t-sol2 (sol2-c.o): Remove header dependencies.
1636 Use $(COMPILE) and $(POSTCOMPILE).
1637 (sol2-cxx.o): Likewise.
1638 (sol2-stubs.o): Likewise.
1639 (sol2.o): Likewise.
1640 * config/x-solaris (host-solaris.o): Likewise.
1641
1642 * config/sparc/t-sparc (sparc.o): Remove.
1643 (sparc-c.o): Remove header dependencies.
1644 Use $(COMPILE) and $(POSTCOMPILE).
1645 * config/sparc/x-sparc: Likewise.
1646
2deaf8b0
JR
16472013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
1648
1649 * config/arc/arc-opts.h: Add 2013 to Copyright years.
1650 * config/arc/arc700.md: Likewise.
1651 * config/arc/arc-modes.def: Likewise.
1652 * config/arc/arc-simd.h: Likewise.
1653 * config/arc/t-arc-uClibc: Likewise.
1654 * config/arc/t-arc-newlib: Likewise.
1655
f6fe771a
RL
16562013-10-02 Renlin Li <renlin.li@arm.com>
1657
78cedfb1
UB
1658 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
1659 plus_constant.
f6fe771a
RL
1660 (aarch64_expand_epilogue): Likewise.
1661
0916f876
YZ
16622013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1663 Yufeng Zhang <yufeng.zhang@arm.com>
1664
1665 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
1666 declaration.
1667 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
1668 'base_in' represent a conversion and legal_cast_p_1 holds; set
1669 'base_in' with the returned value from get_unwidened.
1670
ebfcd719
KT
16712013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1672
1673 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
1674 plus_constant is not used.
1675
157ca3e9
WM
16762013-10-01 Wei Mi <wmi@google.com>
1677
78cedfb1 1678 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
1679 * config/i386/i386.md: Add define_peephole2 to
1680 break partial reg stall for cvtss2sd/cvtsd2ss.
1681
cd4dd8f0
JR
16822013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1683
1684 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 1685 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 1686
1465e5cf
JL
16872013-10-01 Jeff Law <law@redhat.com>
1688
1689 * tree-ssa-threadupdate.c (struct redirection_data): Delete
1690 outgoing_edge and intermediate_edge fields. Instead store the path.
1691 (redirection_data::hash): Hash on the last edge's destination index.
1692 (redirection_data::equal): Check the entire thread path.
1693 (lookup_redirectio_data): Corresponding changes.
1694 (create_edge_and_update_destination_phis): Likewise.
1695 (thread_single_edge): Likewise.
1696
25c606cb 16972013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 1698 Diego Novillo <dnovillo@google.com>
25c606cb
JR
1699
1700 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
1701 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
1702 (vld32wh_insn, vld32wl_insn): Delete commented-out old
1703 versions of these patterns.
1704
0ccbc132
JR
1705 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
1706 (__builtin_arc_aligned): Likewise.
1707
f55d4a20
JR
1708 * config/arc/arc.md: Expand adc_0 comment stating the intended
1709 purpose and why it isn't ready.
1710 Replace commented out call_value_via_label_mixed with a
1711 plain comment about bl_s.
1712
5719867d 1713 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
1714 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
1715 Remove if (1) condition.
1716 (arc_encode_section_info): Fix comment.
1717
6462fab0
JR
17182013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1719
1720 * config/arc/arc.c (arc_conditional_register_usage):
1721 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
1722 Also set reg_alloc_order for DMA config regs.
1723
5d5f6720
JR
17242013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1725 Jeremy Bennett <jeremy.bennett@embecosm.com>
1726
1727 * doc/install.texi (--with-cpu): Mention ARC.
1728 (arc-*-elf32): New paragraph.
1729 (arc-linux-uclibc): Likewise.
1730 * doc/md.texi (Machine Constraints): Add ARC part.
1731 * doc/invoke.texi: (menu): Add ARC Options.
1732 (Machine Dependent Options) <ARC Options>: Add synopsis.
1733 (node ARC Options): Add.
1734 * doc/extend.texi (long_call / short_call attribute): Add ARC.
1735 (ARC Built-in Functions): New section defining
1736 generic ARC built-in functions.
1737 (ARC SIMD Built-in Functions): New section defining SIMD specific
1738 built-in functions.
1739 (Declaring Attributes of Functions): Extended
1740 description of short_call and long_call attributes for ARC and
1741 added index entries.
1742
526b7aee
SV
17432013-10-01 Saurabh Verma <saurabh.verma@codito.com>
1744 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
1745 Joern Rennecke <joern.rennecke@embecosm.com>
1746 Muhammad Khurram Riaz <khurram.riaz@arc.com>
1747 Brendan Kehoe <brendan@zen.org>
1748 Michael Eager <eager@eagercon.com>
1749 Simon Cook <simon.cook@embecosm.com>
1750 Jeremy Bennett <jeremy.bennett@embecosm.com>
1751
1752 * config/arc, common/config/arc: New directories.
1753
53426f6c
JR
17542013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1755 Brendan Kehoe <brendan@zen.org>
1756 Simon Cook <simon.cook@embecosm.com>
1757
1758 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
1759
1df9f5a9
AM
17602013-10-01 Andrew MacLeod <amacleod@redhat.com>
1761
1762 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
1763 * tree-ssa-coalesce.h: New. Move prototype to here.
1764 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
1765 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
1766 (gimple_can_coalesce_p): Move to...
1767 * gimple.c (gimple_can_coalesce_p): Here.
1768
80560f95
AM
17692013-10-01 Andrew MacLeod <amacleod@redhat.com>
1770
1771 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
1772 (dump_decl_set): Move to gimple.c.
1773 * gimple.h: Don't include tree-ssa-operands.h.
1774 (dump_decl_set): Add prototype.
1775 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
1776 Move to gimple-ssa.h.
1777 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
1778 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
1779 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
1780 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
1781 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
1782 than PHI_ARG_DEF.
1783 (dump_decl_set): Relocate here.
1784 * gimple-ssa.h: New file.
1785 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
1786 Relocate from gimple.h.
1787 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
1788 * tree-ssa-operands.c (swap_ssa_operands): Rename from
1789 swap_tree_operands and remove non-ssa path.
1790 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
1791 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
1792 swap_ssa_operands.
1793 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
1794 vect_is_simple_reduction_1): Use swap_ssa_operands.
1795 * tree-flow.h: Move various prototypes to tree-phinodes.h.
1796 (enum need_phi_state): Move to tree-into-ssa.c.
1797 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
1798 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
1799 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
1800 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
1801 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
1802 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
1803 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
1804 num_imm_uses): Move to ssa-iterators.h.
1805 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
1806 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
1807 tree-phinodes.h.
1808 (op_iter_done, op_iter_next_def, op_iter_next_tree,
1809 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
1810 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
1811 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
1812 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
1813 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
1814 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
1815 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
1816 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
1817 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
1818 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
1819 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
1820 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
1821 (set_phi_nodes): Move to tree-phinodes.h.
1822 * tree-ssa-operands.h (enum ssa_op_iter_type,
1823 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
1824 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
1825 (dump_decl_set): Remove prototype.
1826 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
1827 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
1828 (set_phi_nodes): Relocate from tree-flow-inline.h.
1829 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
1830 tree-flow-inline.h
1831 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
1832 include list. Temporarily add gimple.h to include list.
1833 * ssa-iterators.h: New file.
1834 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
1835 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
1836 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
1837 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
1838 Relocate from tree-ssa-operands.h.
1839 (delink_imm_use, link_imm_use_to_list, link_imm_use,
1840 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
1841 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
1842 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
1843 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
1844 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
1845 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
1846 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
1847 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
1848 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
1849 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
1850 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
1851 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
1852 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
1853 Relocate from tree-flow-inline.h.
1854 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
1855
8da00d65
VP
18562013-10-01 Vidya Praveen <vidyapraveen@arm.com>
1857
1858 * aarch64-simd.md
1859 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
1860 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
1861 Insert '\t' to output template.
1862 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
1863 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
1864 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
1865 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
1866
e2ebe1c2
UB
18672013-10-01 Uros Bizjak <ubizjak@gmail.com>
1868
1869 * doc/install.texi (Host/target specific installation notes for GCC):
1870 Put @anchor before @heading.
1871 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
1872 Use @email for email addresses.
1873
aee2d611
JL
18742013-10-01 Jeff Law <law@redhat.com>
1875
1876 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
1877 a vec. Only delete the path if we create one without successfully
1878 registering a jump thread.
1879 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
1880 as a pointer.
1881 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
1882 (paths): New vector of jump threading paths.
1883 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
1884 (THREAD_PATH): New accessor macro for the entire thread path.
1885 (lookup_redirection_data): Get intermediate and final outgoing edge
1886 from the thread path.
1887 (create_edge_and_update_destination_phis): Copy the threading path.
1888 (ssa_fix_duplicate_block_edges): Get edges and block types from the
1889 jump threading path.
1890 (ssa_redirect_edges): Get edges and block types from the jump threading
1891 path. Free the path vector.
1892 (thread_block): Get edges from the jump threading path. Look at the
1893 entire path to see if we thread to a loop exit. If we cancel a jump
1894 thread request, then free the path vector.
1895 (thread_single_edge): Get edges and block types from the jump threading
1896 path. Free the path vector.
1897 (thread_through_loop_header): Get edges and block types from the jump
1898 threading path. Free the path vector.
1899 (mark_threaded_blocks): Iterate over the vector of paths and store
1900 the path on the appropriate edge. Get edges and block types from the
1901 jump threading path.
1902 (mark_threaded_blocks): Get edges and block types from the jump
1903 threading path. Free the path vector.
1904 (thread_through_all_blocks): Use the vector of paths rather than
1905 a vector of 3-edge sets.
1906 (register_jump_thread): Accept pointer to a path vector rather
1907 than the path vector itself. Store the path vector for later use.
1908 Simplify.
1909
966f97ac 19102013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 1911 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
1912
1913 PR target/58574
1914 * config/s390/s390.c (s390_split_branches): Modify check for table
1915 jump insns.
1916 (s390_chunkify_start): Rearrange table jump insn check in order to
1917 deal with compare and branch insns correctly.
1918
3a323a38
KV
19192013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
1920
1921 PR target/58578
1922 Revert
1923 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
1924 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
1925 define_insn_and_split.
1926 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
1927 (shiftsi3_compare): New pattern.
1928 (rrx): New pattern.
1929 * config/arm/unspecs.md (UNSPEC_RRX): New.
1930
90444831
AM
19312013-10-01 Alan Modra <amodra@gmail.com>
1932
1933 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
1934 casing inout operands.
1935
818625cf
RB
19362013-10-01 Richard Biener <rguenther@suse.de>
1937
1938 PR tree-optimization/58553
1939 * tree-loop-distribution.c (struct partition_s): Add niter member.
1940 (classify_partition): Populate niter member for the partition
1941 and properly identify whether the relevant store happens before
1942 or after the loop exit.
1943 (generate_memset_builtin): Use niter member from the partition.
1944 (generate_memcpy_builtin): Likewise.
1945
30f641cd
RS
19462013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
1947
1948 * vec.h (vec_prefix, vec): Prefix member names with "m_".
1949 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
1950
65d3284b
RS
19512013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
1952
1953 * basic-block.h (edge_list): Prefix member names with "m_".
1954 * context.h (context): Likewise.
1955 * domwalk.h (dom_walker): Likewise.
1956 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
1957 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
1958 * hash-table.h (hash_table): Likewise.
1959 * machmode.h (bit_field_mode_iterator): Likewise.
1960 * pass_manager.h (pass_list): Likewise.
1961 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
1962 * tree-pass.h (pass_data): Likewise.
1963 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
1964 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
1965 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
1966 * asan.c (pass_data_asan): Update accordingly.
1967 * cfganal.c (control_dependences::find_control_dependence): Likewise.
1968 (control_dependences::control_dependences): Likewise.
1969 (control_dependences::~control_dependences): Likewise.
1970 (control_dependences::~control_dependences): Likewise.
1971 (control_dependences::get_edges_dependent_on): Likewise.
1972 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
1973 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
1974 * context.c (gcc::context::context): Likewise.
1975 * cprop.c (pass_rtl_cprop::clone): Likewise.
1976 * domwalk.c (dom_walker::walk): Likewise.
1977 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
1978 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
1979 * mode-switching.c (pass_mode_switching::clone): Likewise.
1980 * passes.c (opt_pass::opt_pass): Likewise.
1981 (pass_manager::pass_manager): Likewise.
1982 * predict.c (pass_strip_predict_hints::clone): Likewise.
1983 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
1984 (pass_split_all_insns::clone): Likewise.
1985 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1986 Likewise.
1987 (bit_field_mode_iterator::next_mode): Likewise.
1988 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
1989 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
1990 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
1991 * tree-complex.c (pass_lower_complex::clone): Likewise.
1992 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
1993 * tree-object-size.c (pass_object_sizes::clone): Likewise.
1994 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
1995 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
1996 (pass_fold_builtins::clone): Likewise.
1997 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
1998 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
1999 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
2000 (pass_cd_dce::clone): Likewise.
2001 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
2002 (pass_phi_only_cprop::clone): Likewise.
2003 * tree-ssa-dse.c (pass_dse::clone): Likewise.
2004 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
2005 * tree-ssa-loop.c (pass_lim::clone): Likewise.
2006 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
2007 * tree-ssa-pre.c (pass_fre::clone): Likewise.
2008 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
2009 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
2010 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
2011 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
2012 * tree-vrp.c (pass_vrp::clone): Likewise.
2013 * tsan.c (pass_tsan::clone): Likewise.
2014
f66d0891
JJ
20152013-09-30 Jakub Jelinek <jakub@redhat.com>
2016
d2a365a8
JJ
2017 PR middle-end/58564
2018 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
2019 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
2020
f66d0891
JJ
2021 PR middle-end/58564
2022 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
2023 optimization, punt if sign_bit_p looked through any zero extension.
2024
05357ac3
TJ
20252013-09-30 Teresa Johnson <tejohnson@google.com>
2026
2027 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
2028 Update redirected out edge count in joiner case.
2029 (ssa_redirect_edges): Common the joiner and non-joiner cases
2030 so that joiner case gets profile updates.
2031
ca406576
RB
20322013-09-30 Richard Biener <rguenther@suse.de>
2033
2034 PR tree-optimization/58554
e2ebe1c2
UB
2035 * tree-loop-distribution.c (classify_partition): Require
2036 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
2037 (tree_loop_distribution): Calculate dominance info.
2038
92d649c4
VK
20392013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2040
2041 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
2042 (NO_PROFILE_COUNTERS): Likewise.
2043 (PROFILE_HOOK): Likewise.
2044 (FUNCTION_PROFILER): Likewise.
2045 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
2046
bd9534e2
IS
20472013-09-30 Iain Sandoe <iain@codesourcery.com>
2048
2049 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
2050 calls and defines in TARGET_MACHO conditional.
2051 (load_macho_picbase_di): Likewise.
2052 (reload_macho_picbase): Likewise.
2053 (reload_macho_picbase_si): Likewise.
2054 (reload_macho_picbase_di): Likewise.
2055 (nonlocal_goto_receiver): Likewise.
2056
4494fbc9
NC
20572013-09-30 Nick Clifton <nickc@redhat.com>
2058
2059 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
2060 that use the MSP430X ISA.
2061 (msp430_option_override): Scan -mmcu command line option for any
2062 MCU name that supports the MSP430X ISA.
2063 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
2064 -mmcu options which enable the MSP430X ISA.
2065
791d9044
RB
20662013-09-30 Richard Biener <rguenther@suse.de>
2067
2068 PR middle-end/58532
2069 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
2070 before looking for setjmp-like calls.
2071
e1c5c877
IS
20722013-09-29 Iain Sandoe <iain@codesourcery.com>
2073
2074 PR target/10901
2075 * config/darwin-protos.h (machopic_get_function_picbase): New.
2076 * config/darwin.c (machopic_get_function_picbase): New.
2077 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
2078 label for a new func. (load_macho_picbase_di): Likewise.
2079 (reload_macho_picbase): New expand.
2080 (reload_macho_picbase_si): New insn.
2081 (reload_macho_picbase_di): New insn.
2082 (nonlocal_goto_receiver): New define and split.
2083 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
2084 (unspecv enum): Add UNSPECV_NLGR.
2085
749278c5
IS
20862013-09-29 Iain Sandoe <iain@codesourcery.com>
2087
2088 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
2089 that altivec registers are correctly sized on Darwin.
2090
2c43a51c
IS
20912013-09-29 Iain Sandoe <iain@codesourcery.com>
2092
2093 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
2094 darwin-driver.o): Use COMPILE and POSTCOMPILE.
2095 * config/x-darwin (host-darwin.o): Likewise.
2096 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2097 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2098 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2099
7a5911d3
UB
21002013-09-29 Uros Bizjak <ubizjak@gmail.com>
2101
2102 * doc/invoke.texi: Fix usage of @tie{} command.
2103
3f67a73d
EB
21042013-09-29 Eric Botcazou <ebotcazou@adacore.com>
2105
2106 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
2107
9ac2f538
JH
21082013-09-28 Jan Hubicka <jh@suse.cz>
2109
2110 * config/i386/x86-tune.def: Add documentation for each of the options;
2111 add whitespace.
2112
b0ff06da
JH
21132013-09-28 Jan Hubicka <jh@suse.cz>
2114
7a5911d3
UB
2115 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
2116 generic.
b0ff06da
JH
2117 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
2118 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
2119 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
2120 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
2121 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
2122
c3284718
RS
21232013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
2124
2125 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
2126 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
2127 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
2128 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
2129 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
2130 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
2131 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
2132 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
2133 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
2134 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
2135 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
2136 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
2137 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
2138 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
2139 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
2140 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
2141 gimple.h, godump.c, graphite-clast-to-gimple.c,
2142 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
2143 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
2144 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
2145 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
2146 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
2147 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
2148 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
2149 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
2150 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
2151 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
2152 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
2153 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
2154 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
2155 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
2156 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
2157 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
2158 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
2159 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
2160 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
2161 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
2162 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
2163 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
2164 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
2165 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
2166 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
2167 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
2168 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
2169 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
2170 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2171 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
2172 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
2173 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
2174 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
2175 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
2176 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
2177 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
2178 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
2179 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
2180 whitespace before "(".
2181
c6285bd7
SL
21822013-09-28 Sandra Loosemore <sandra@codesourcery.com>
2183
2184 * expr.h (extract_bit_field): Remove packedp parameter.
2185 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
2186 from forward declaration.
2187 (store_split_bit_field): Remove packedp arg from calls to
2188 extract_fixed_bit_field.
2189 (extract_bit_field_1): Remove packedp parameter and packedp
2190 argument from recursive calls and calls to extract_fixed_bit_field.
2191 (extract_bit_field): Remove packedp parameter and corresponding
2192 arg to extract_bit_field_1.
2193 (extract_fixed_bit_field): Remove packedp parameter. Remove code
2194 to issue warnings.
2195 (extract_split_bit_field): Remove packedp arg from call to
2196 extract_fixed_bit_field.
2197 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
2198 (copy_blkmode_from_reg): Likewise.
2199 (copy_blkmode_to_reg): Likewise.
2200 (read_complex_part): Likewise.
2201 (store_field): Likewise.
2202 (expand_expr_real_1): Likewise.
2203 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
2204 to extract_bit_field.
2205 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
2206 call to extract_bit_field.
2207 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
2208 call to extract_bit_field.
2209 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
2210 and special packedp behavior from -fstrict-volatile-bitfields
2211 documentation.
2212
522d4efc
JBG
22132013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2214
2215 * lra-eliminations.c (init_elim_table): Guard value_p.
2216
19cdb489
MM
22172013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2218
2219 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
2220 DFmode, DImode, and SFmode in the upper VSX registers based on the
2221 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
2222 if -mpower8-vector. Combine -mvsx-timode handling with the rest
2223 of the VSX register handling.
2224
2225 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
2226 (f32_sv): Likewise.
2227 (zero_extendsidi2_lfiwzx): Add support for loading into the
2228 Altivec registers with -mpower8-vector. Use wu/wv constraints to
2229 only do VSX memory options on Altivec registers.
2230 (extendsidi2_lfiwax): Likewise.
2231 (extendsfdf2_fpr): Likewise.
2232 (mov<mode>_hardfloat, SF/SD modes): Likewise.
2233 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
2234 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
2235 (movdi_internal64): Likewise.
2236
d6d11272
XDL
22372013-09-27 Xinliang David Li <davidxl@google.com>
2238
2239 * opts.c (finish_options): Adjust parameters
2240 according to vect cost model.
2241 (common_handle_option): Set dynamic vect cost
2242 model for FDO.
2243 targhooks.c (default_add_stmt_cost): Compute stmt cost
2244 unconditionally.
2245 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
2246 Use helper function.
2247 * tree-vectorizer.h (unlimited_cost_model): New function.
2248 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
2249 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
2250 function.
2251 (vect_enhance_data_refs_alignment): Ditto.
2252 * flag-types.h: New enum.
2253 * common/config/i386/i386-common.c (ix86_option_init_struct):
2254 No need to initialize vect_cost_model flag.
2255 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
2256 unconditionally.
2257
ac1857a3
DN
22582013-09-27 Diego Novillo <dnovillo@google.com>
2259
2260 * gimple.h (enum ssa_mode): Remove.
2261
3c468b4c
PM
22622013-09-27 Paulo Matos <pmatos@broadcom.com>
2263
2264 PR middle-end/58463
2265 * gcc.dg/pr58463.c: New test.
2266
0d0e2af6
PM
22672013-09-27 Paulo Matos <pmatos@broadcom.com>
2268
2269 * cfgloop.h (number_of_loops): Fix typo in check for null.
2270
09dc585e
JJ
22712013-09-27 Jakub Jelinek <jakub@redhat.com>
2272
2273 PR middle-end/58551
2274 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
2275 are children of outermost saved_cfun's loop, and set it up to
2276 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
2277 if loop != loop0 and SESE region contains bbs that belong to loop0.
2278
ec5a3504
RS
22792013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2280
2281 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
2282 (binary_scale_code_p, get_base_term, get_index_term): New functions.
2283 (set_address_segment, set_address_base, set_address_index)
2284 (set_address_disp): Accept the argument unconditionally.
2285 (baseness): Remove must_be_base_p and must_be_index_p checks.
2286 (decompose_normal_address): Classify as much as possible in the
2287 main loop.
2288
f91aec98
RS
22892013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2290
2291 * cse.c (count_reg_usage): Handle INT_LIST.
2292 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
2293 * reginfo.c (reg_scan_mark_refs): Likewise.
2294 * reload1.c (eliminate_regs_1): Likewise.
2295
a9195970
IS
22962013-09-27 Iain Sandoe <iain@codesourcery.com>
2297
2298 PR middle-end/58547
2299 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
2300 signed.
2301
e6f1c509
RB
23022013-09-27 Richard Biener <rguenther@suse.de>
2303
2304 PR tree-optimization/58459
2305 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
2306 restriction not propagating into loops.
2307
84f48495
FW
23082013-09-26 Florian Weimer <fw@deneb.enyo.de>
2309
2310 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
2311 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
2312 * doc/tree-ssa.texi (Walking use-def chains): Delete.
2313
74fc8b8a
RB
23142013-09-26 Richard Biener <rguenther@suse.de>
2315
7a5911d3 2316 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 2317
b4ada065
RB
23182013-09-26 Richard Biener <rguenther@suse.de>
2319
2320 * alias.h (component_uses_parent_alias_set): Rename to ...
2321 (component_uses_parent_alias_set_from): ... this.
2322 * alias.c (component_uses_parent_alias_set): Rename to ...
2323 (component_uses_parent_alias_set_from): ... this and return
2324 the desired parent.
2325 (reference_alias_ptr_type_1): Use the result from
2326 component_uses_parent_alias_set_from instead of stripping
2327 components one at a time.
2328 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
2329
78bca40d
AM
23302013-09-26 Andrew MacLeod <amacleod@redhat.com>
2331
7a5911d3
UB
2332 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
2333 Move prototypes to...
78bca40d
AM
2334 * tree-ssa-ter.h: New File. Move prototypes here.
2335 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
2336 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
2337 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 2338 from is_replaceable_p.
78bca40d
AM
2339 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
2340 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
2341 (process_replaceable): Use ter_is_replaceable_p.
2342 (find_replaceable_in_bb): Use ter_is_replaceable_p.
2343 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
2344 newly refactored ssa_is_replaceable_p.
2345 * cfgexpand.c: Include tree-outof-ssa.h.
2346 * ssaexpand.h: Delete.
2347
ff2a63a7
AM
23482013-09-26 Andrew MacLeod <amacleod@redhat.com>
2349
2350 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
2351 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
2352 tree-ssa.c
2353 (create_gimple_tmp): Delete.
2354 (get_expr_type, build_assign, build_type_cast): Move to...
2355 * gimple-builder.c: New File.
2356 (get_expr_type): Relocate from gimple.c.
2357 (build_assign, build_type_cast): Change to only create ssanames.
2358 * gimple.h: Move prototypes to...
2359 * gimple-builder.h: New File. Here.
2360 * tree-ssa.h: And here.
2361 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
2362 count_uses_and_derefs): Relocate from gimple.c.
2363 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
2364 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
2365 * tree-ssa-math-opts (execute_cse_reciprocals): Use
2366 gimple_replace_ssa_lhs.
2367 * asan.c: Include gimple-builder.h.
2368 * Makefile.in: Add gimple-builder.o.
2369
a2544177
RB
23702013-09-26 Richard Biener <rguenther@suse.de>
2371
2372 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
2373 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
2374 (loe_visit_block): Use gcc_checking_assert.
2375 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
2376 gimple_assign_ssa_name_copy_p.
2377 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
2378 change.
2379
6d1ca9a0
DE
23802013-09-26 David Edelsohn <dje.gcc@gmail.com>
2381
2382 * config/rs6000/t-rs6000 (rs6000.o): Remove.
2383 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
2384
46e950db
RB
23852013-09-26 Richard Biener <rguenther@suse.de>
2386
2387 PR tree-optimization/58539
2388 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
2389 the fact that debug statements are not taking part in loop-closed
2390 SSA construction.
2391
40ada30a
NC
23922013-09-26 Nick Clifton <nickc@redhat.com>
2393
2394 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
2395 time warning message.
2396 (msp430_print_operand_raw): Delete unused letter parameter.
2397 (TARGET_PRINT_OPERAND_ADDRESS): Define.
2398 (msp430_print_operand_address): New function.
2399 (msp430_print_operand): Move address printing code from here to
2400 new function.
2401 * config/msp430/msp430.md (movsipsi2): Add comment in generated
2402 assembler.
2403 (zero_extendpsisi2): Likewise.
2404 (extendpsisi2): New pattern.
2405 (andneghi3): New pattern.
2406
38e8f663
YR
24072013-09-26 Yvan Roux <yvan.roux@linaro.org>
2408
2409 * config/aarch64/aarch64.opt (mlra): New option.
2410 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
2411 (TARGET_LRA_P): Define.
2412
4167e8d4
EB
24132013-09-26 Eric Botcazou <ebotcazou@adacore.com>
2414
2415 * expr.c (expand_assignment): Remove obsolete comment.
2416
5254eac4
JL
24172013-09-25 Jeff Law <law@redhat.com>
2418
2419 * tree-flow.h (thread_through_all_blocks): Prototype moved into
2420 tree-ssa-threadupdate.h.
2421 (register_jump_thread): Similarly.
2422 * tree-ssa-threadupdate.h: New header file.
2423 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
2424 * tree-vrp.c: Likewise.
2425 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
2426 (thread_around_empty_blocks): Change type of path vector argument to
2427 an edge,type pair from just an edge. Initialize both elements when
2428 appending to a jump threading path. Tweak references to elements
2429 appropriately.
2430 (thread_across_edge): Similarly. Release memory for the elements
2431 as needed.
2432 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
2433 (dump_jump_thread_path): New function broken out from
2434 register_jump_thread.
2435 (register_jump_thread): Use dump_jump_thread_path. Change type of
2436 path vector entries. Search the path for NULL edges and dump
2437 the path if one is found. Tweak the conversion of path to 3-edge
2438 form to use the block copy type information embedded in the path.
2439
20f114a3
YR
24402013-09-25 Yvan Roux <yvan.roux@linaro.org>
2441
2442 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
2443
3936bafc
YR
24442013-09-25 Yvan Roux <yvan.roux@linaro.org>
2445 Vladimir Makarov <vmakarov@redhat.com>
2446
2447 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
2448 from the least significant bit.
2449 (strip_address_mutations): Add bitfield operations handling.
2450 (must_be_index_p): Add shifting and rotate operations handling.
2451 (set_address_base): Use must_be_base_p predicate.
4167e8d4 2452 (set_address_index): Use must_be_index_p predicate.
3936bafc 2453
b86f6e9e
AI
24542013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
2455 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2456 Sergey Lega <sergey.s.lega@intel.com>
2457 Anna Tikhonova <anna.tikhonova@intel.com>
2458 Ilya Tocar <ilya.tocar@intel.com>
2459 Andrey Turetskiy <andrey.turetskiy@intel.com>
2460 Ilya Verbin <ilya.verbin@intel.com>
2461 Kirill Yukhin <kirill.yukhin@intel.com>
2462 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2463
2464 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2465 Use new names.
2466 (ix86_expand_vector_move_misalign): Support new unaligned load and
2467 stores and use new names.
2468 (CODE_FOR_sse2_storedqu): Rename to ...
2469 (CODE_FOR_sse2_storedquv16qi): ... this.
2470 (CODE_FOR_sse2_loaddqu): Rename to ...
2471 (CODE_FOR_sse2_loaddquv16qi): ... this.
2472 (CODE_FOR_avx_loaddqu256): Rename to ...
2473 (CODE_FOR_avx_loaddquv32qi): ... this.
2474 (CODE_FOR_avx_storedqu256): Rename to ...
2475 (CODE_FOR_avx_storedquv32qi): ... this.
2476 * config/i386/i386.md (fpint_logic): New.
2477 * config/i386/sse.md (VMOVE): Extend for AVX512.
2478 (VF): Ditto.
2479 (VF_128_256): New.
2480 (VF_512): Ditto.
2481 (VI_UNALIGNED_LOADSTORE): Ditto.
2482 (sse2_avx_avx512f): Ditto.
2483 (sse2_avx2): Extend for AVX512.
2484 (sse4_1_avx2): Ditto.
2485 (avx2_avx512f): New.
2486 (sse): Extend for AVX512.
2487 (sse2): Ditto.
2488 (sse4_1): Ditto.
2489 (avxsizesuffix): Ditto.
2490 (sseintvecmode): Ditto.
2491 (ssePSmode): Ditto.
2492 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
2493 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
2494 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2495 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
2496 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2497 (<sse2_avx_avx512f>_storedqu<mode): ... this.
2498 (<sse>_movnt<mode>): Replace constraint "x" with "v".
2499 (STORENT_MODE): Extend for AVX512.
2500 (*absneg<mode>2): Replace constraint "x" with "v".
2501 (*mul<mode>3): Ditto.
2502 (*ieee_smin<mode>3): Ditto.
2503 (*ieee_smax<mode>3): Ditto.
2504 (avx_cmp<mode>3): Replace VF with VF_128_256.
2505 (*<sse>_maskcmp<mode>3_comm): Ditto.
2506 (<sse>_maskcmp<mode>3): Ditto.
2507 (<sse>_andnot<mode>3): Extend for AVX512.
2508 (<code><mode>3, anylogic): Replace VF with VF_128_256.
2509 (<code><mode>3, fpint_logic): New.
2510 (*<code><mode>3): Extend for AVX512.
2511 (avx512flogicsuff): New.
2512 (avx512f_<logic><mode>): Ditto.
2513 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
2514 VF_128_256.
2515 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
2516 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
2517 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
2518 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
2519 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
2520 (xop_vpermil2<mode>3): Ditto.
2521 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
2522 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
2523 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
2524 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
2525
4d44d03c
TT
25262013-09-25 Tom Tromey <tromey@redhat.com>
2527
2528 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
2529 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
2530 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
2531 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
2532 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
2533 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
2534 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
2535 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
2536 (GRAPHITE_HTAB_H): Remove.
2537
86aaf68d
TT
25382013-09-25 Tom Tromey <tromey@redhat.com>
2539
2540 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
2541
c987deb8
TT
25422013-09-25 Tom Tromey <tromey@redhat.com>
2543
2544 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
2545
9439747e
TT
25462013-09-25 Tom Tromey <tromey@redhat.com>
2547
2548 * config/i386/t-i386 (i386.o): Remove.
2549 (i386-c.o): Use COMPILE and POSTCOMPILE.
2550
aefc31a1
TT
25512013-09-25 Tom Tromey <tromey@redhat.com>
2552
2553 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
2554
b6541edc
TT
25552013-09-25 Tom Tromey <tromey@redhat.com>
2556
2557 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
2558 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
2559 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
2560 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
2561 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
2562 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
2563 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
2564 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
2565 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
2566 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
2567 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
2568 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
2569 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
2570 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
2571 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
2572 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
2573 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
2574 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
2575 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
2576 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
2577 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
2578 (tree-ssa-pre.o, tree-ssa-sccvn.o)
2579 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
2580 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
2581 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
2582 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
2583 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
2584 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
2585 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
2586 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
2587 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
2588 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
2589 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
2590 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
2591 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
2592 (graphite-clast-to-gimple.o, graphite-dependences.o)
2593 (graphite-interchange.o, graphite-poly.o)
2594 (graphite-scop-detection.o, graphite-sese-to-poly.o)
2595 (graphite-optimize-isl.o, tree-vect-loop.o)
2596 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
2597 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
2598 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
2599 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
2600 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
2601 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
2602 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
2603 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
2604 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
2605 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
2606 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
2607 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
2608 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
2609 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
2610 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
2611 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
2612 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
2613 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
2614 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
2615 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
2616 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
2617 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
2618 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
2619 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
2620 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
2621 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
2622 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
2623 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
2624 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
2625 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
2626 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
2627 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
2628 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
2629 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
2630 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
2631 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
2632 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
2633 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
2634 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
2635 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
2636 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
2637 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
2638 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
2639 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
2640 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
2641 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
2642 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
2643 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
2644 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
2645 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
2646 (gcov-dump.o): Remove.
2647 (default-c.o): Use COMPILE and POSTCOMPILE.
2648 (CFLAGS-gcc.o): New variable.
2649 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
2650
8c796d19
TT
26512013-09-25 Tom Tromey <tromey@redhat.com>
2652
2653 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
2654 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
2655 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
2656 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
2657 (c-family/c-pragma.o, c-family/c-pretty-print.o)
2658 (c-family/c-semantics.o, c-family/c-ada-spec.o)
2659 (c-family/array-notation-common.o, c-family/stub-objc.o)
2660 (c-family/c-ubsan.o): Remove.
2661
0a6c2227
TT
26622013-09-25 Tom Tromey <tromey@redhat.com>
2663
2664 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
2665
f3bc55f0
TT
26662013-09-25 Tom Tromey <tromey@redhat.com>
2667
2668 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
2669 to add -DENABLE_SHARED_LIBGCC.
2670 (gcc.o): Don't use subshell.
2671
c11c795e
TT
26722013-09-25 Tom Tromey <tromey@redhat.com>
2673
2674 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
2675 * configure.ac: Don't invoke AM_PROG_CC_C_O.
2676 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
2677 * configure, config.in: Rebuild.
2678
043378c3
TT
26792013-09-25 Tom Tromey <tromey@redhat.com>
2680
2681 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
2682 (COMPILE, POSTCOMPILE): New variables.
2683 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
2684 (DEPFILES): New variable.
2685 Include ".Po" files.
2686 * configure.ac: Add checks for dependency checking.
2687 * configure, aclocal.m4: Regenerate.
2688
eab34643
TT
26892013-09-25 Tom Tromey <tromey@redhat.com>
2690
2691 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 2692 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 2693
d2db5e91
TT
26942013-09-25 Tom Tromey <tromey@redhat.com>
2695
2696 * Makefile.in (generated_files): Add options.h,
2697 target-hooks-def.h, insn-opinit.h,
2698 common/common-target-hooks-def.h, pass-instances.def,
2699 c-family/c-target-hooks-def.h.
2700
af33629e
JL
27012013-09-25 Jeff Law <law@redhat.com>
2702
2703 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
2704 than foo[foo.length () - 1] to access last member in a vec.
2705 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
2706
ed0d3051
RB
27072013-09-25 Richard Biener <rguenther@suse.de>
2708
2709 PR middle-end/58521
2710 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
2711
123485ca
JH
27122013-09-25 Jan Hubicka <jh@suse.cz>
2713
2714 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
2715 test.
2716
d70b0f1f
MP
27172013-09-25 Marek Polacek <polacek@redhat.com>
2718
2719 PR sanitizer/58420
2720 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
2721 when determining the type name.
2722
e3f02798
OE
27232013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
2724
2725 * config/sh/sh.md: Fix formatting.
2726
7a5911d3 27272013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 2728
7a5911d3
UB
2729 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
2730 max peel iterations parameter.
4f17aa0b
XDL
2731 * param.def: New parameter.
2732 * doc/invoke.texi: Document New parameter.
2733
0498471b
CL
27342013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
2735
2736 * gimple-pretty-print.c: Various whitespace tweaks.
2737 * tree-core.h: Likewise.
2738 * tree-pretty-print.c: Likewise.
2739 * tree-ssa-alias.c: Likewise.
2740 * tree-ssa-copy.c: Likewise.
2741 * tree-ssanames.c: Likewise.
2742 * tree-ssanames.h: Likewise.
2743 * tree-vrp.c: Likewise.
2744
5a8c2b57
AM
27452013-09-24 Alan Modra <amodra@gmail.com>
2746
2747 PR middle-end/57134
2748 PR middle-end/57586
7a5911d3
UB
2749 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
2750 for output operands that disallow regs. Don't use EXPAND_WRITE on
2751 inout operands.
5a8c2b57 2752
f40333af
RB
27532013-09-24 Richard Biener <rguenther@suse.de>
2754
2755 PR middle-end/58513
2756 * tree.c (reference_alias_ptr_type): Move ...
2757 * alias.c (reference_alias_ptr_type): ... here and implement
2758 in terms of the new reference_alias_ptr_type_1.
2759 (ref_all_alias_ptr_type_p): New helper.
2760 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
2761 use ref_all_alias_ptr_type_p.
2762 (get_deref_alias_set): Add flag_strict_aliasing check here.
2763 (reference_alias_ptr_type_1): New function, split out from ...
2764 (get_alias_set): ... here.
2765 (alias_ptr_types_compatible_p): New function.
2766 * alias.h (reference_alias_ptr_type): Declare.
2767 (alias_ptr_types_compatible_p): Likewise.
2768 * tree.h (reference_alias_ptr_type): Remove.
2769 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
2770 to compare MEM_REF alias types.
2771
583e8bf5
RB
27722013-09-24 Richard Biener <rguenther@suse.de>
2773
2774 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
2775
5e8586d7
MM
27762013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2777
19c3e797
MM
2778 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
2779 reload helper function arrays into a single array reg_addr.
2780 (reload_fpr_gpr): Likewise.
2781 (reload_gpr_vsx): Likewise.
2782 (reload_vsx_gpr): Likewise.
2783 (struct rs6000_reg_addr): Likewise.
2784 (reg_addr): Likewise.
2785 (rs6000_debug_reg_global): Change rs6000_vector_reload,
2786 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
2787 (rs6000_init_hard_regno_mode_ok): Likewise.
2788 (rs6000_secondary_reload_direct_move): Likewise.
2789 (rs6000_secondary_reload): Likewise.
2790
5e8586d7
MM
2791 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
2792 constraints: wu, ww, and wy. Repurpose wv constraint added during
2793 power8 changes. Put wg constraint in alphabetical order.
2794
2795 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
2796 for future work to add ISA 2.07 VSX single precision support.
2797 (-mvsx-scalar-double): Change default from -1 to 1, update
2798 documentation comment.
2799 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
2800 (-mupper-regs-df): New debug switch to control whether DF values
2801 can go in the traditional Altivec registers.
2802 (-mupper-regs-sf): New debug switch to control whether SF values
2803 can go in the traditional Altivec registers.
2804
2805 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
2806 and wy constraints.
2807 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
2808 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
2809 Add new constraints, wu/ww/wy. Repurpose wv constraint.
2810 (rs6000_debug_legitimate_address_p): Print if we are running
2811 before, during, or after reload.
2812 (rs6000_secondary_reload): Add a comment.
2813 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
2814
2815 * config/rs6000/constraints.md (wa constraint): Sort w<x>
2816 constraints. Update documentation string.
2817 (wd constraint): Likewise.
2818 (wf constraint): Likewise.
2819 (wg constraint): Likewise.
2820 (wn constraint): Likewise.
2821 (ws constraint): Likewise.
2822 (wt constraint): Likewise.
2823 (wx constraint): Likewise.
2824 (wz constraint): Likewise.
2825 (wu constraint): New constraint for ISA 2.07 SFmode scalar
2826 instructions.
2827 (ww constraint): Likewise.
2828 (wy constraint): Likewise.
2829 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
2830 the previous submissions.
2831 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
2832
e5af9ddd
RS
28332013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2834
2835 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
2836 (REG_BR_PROB): Say that the probability is stored in an int_list.
2837 * reg-notes.def: Update commentary to mention INT_LIST.
2838 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
2839 (INT_LIST): New rtx.
2840 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
2841 * rtlanal.c (int_reg_note_p): New function.
2842 (alloc_reg_note): Assert that the note does not have an int argument.
2843 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
2844 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
2845 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
2846 rather than an INSN_LIST. Handle INT_LIST.
2847 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
2848 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
2849 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
2850 Manipulate them as ints rather than rtxes.
2851 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
2852 * regmove.c (copy_src_to_dest): Likewise.
2853 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
2854
2855 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
2856 into the cases that need it.
2857 * config/arm/arm.c (arm_unwind_emit): Likewise.
2858
2859 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
2860 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
2861 * loop-doloop.c (add_test, doloop_modify): Likewise.
2862 * loop-unswitch.c (compare_and_jump_seq): Likewise.
2863 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
2864 * predict.c (combine_predictions_for_insn): Likewise.
2865 * print-rtl.c (print_rtx): Handle INT_LIST.
2866 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
2867 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
2868 * config/arm/arm.c (emit_unlikely_jump): Likewise.
2869 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
2870 (ix86_split_fp_branch, predict_jump): Likewise.
2871 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
2872 * config/sh/sh.c (expand_cbranchsi4): Likewise.
2873 * config/spu/spu.c (ea_load_store_inline): Likewise.
2874
2875 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
2876 value of a REG_BR_PROB note.
2877 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2878 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
2879 * emit-rtl.c (try_split): Likewise.
2880 * predict.c (br_prob_note_reliable_p): Likewise.
2881 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
2882 * reorg.c (mostly_true_jump): Likewise.
2883 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
2884 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
2885 * config/i386/i386.c (ix86_print_operand): Likewise.
2886 * config/ia64/ia64.c (ia64_print_operand): Likewise.
2887 * config/mmix/mmix.c (mmix_print_operand): Likewise.
2888 * config/rs6000/rs6000.c (output_cbranch): Likewise.
2889 * config/s390/s390.c (s390_expand_tbegin): Likewise.
2890 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
2891 * config/sparc/sparc.c (output_cbranch): Likewise.
2892 * config/spu/spu.c (get_branch_target): Likewise.
2893 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
2894 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
2895
450ad0cd
JH
28962013-09-23 Jan Hubicka <jh@suse.cz>
2897
2898 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
2899 for ipa-devirt.
2900 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
2901 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
2902 of external calls
2903 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
2904 (gimple_fold_call): Dump inconsistent devirtualizations; add
2905 sanity check for type based devirtualizations.
2906 * ipa-prop.c: Include ipa-utils.h
2907 (ipa_intraprocedural_devirtualization): Add sanity check.
2908 (try_make_edge_direct_virtual_call): Likewise.
2909
cefce769
EB
29102013-09-23 Eric Botcazou <ebotcazou@adacore.com>
2911
2912 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
2913 assignment statements.
2914
a895a2b8
KV
29152013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2916
2917 * gimple-pretty-print.c (dump_ssaname_info): New function.
2918 (dump_gimple_phi): Call it.
2919 (pp_gimple_stmt_1): Likewise.
2920 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
2921 (range_info_def): Declare.
2922 * tree-pretty-print.c (pp_double_int): New function.
2923 (dump_generic_node): Call it.
2924 * tree-pretty-print.h (pp_double_int): Declare.
2925 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
2926 * tree-ssanames.h (range_info_def): New structure.
2927 (value_range_type): Move definition here.
2928 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
2929 Declare.
2930 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
2931 initialization.
2932 (set_range_info): New function.
2933 (get_range_info): Likewise.
2934 (duplicate_ssa_name_range_info): Likewise.
2935 (duplicate_ssa_name_fn): Check pointer type and call
2936 duplicate_ssa_name_range_info.
2937 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2938 * tree-vrp.c (value_range_type): Remove definition, now in
2939 tree-ssanames.h.
7a5911d3 2940 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
2941 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
2942 (SSA_NAME_RANGE_INFO): New macro.
2943
984af6ac
RB
29442013-09-23 Richard Biener <rguenther@suse.de>
2945
2946 PR tree-optimization/58464
2947 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 2948 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
2949 (phi_translate_1): Remove recursion detection here.
2950 (phi_translate): Pre-seed the cache with NULL to catch
2951 recursion here in a more generic way.
2952 (bitmap_find_leader): Adjust comment.
2953 (get_representative_for): Dump value-numbers.
2954 (create_expression_by_pieces): Likewise.
2955 (insert_into_preds_of_block): Likewise.
2956
0e26cf79
CB
29572013-09-23 Christian Bruel <christian.bruel@st.com>
2958
2959 PR target/58475
2960 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
2961 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
2962
4d0e5b54
JG
29632013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
2964
2965 Revert r202780:
2966 2013-09-20 Renlin Li <renlin.li@arm.com>
2967
7a5911d3
UB
2968 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
2969 plus_constant.
4d0e5b54
JG
2970 (aarch64_expand_epilogue): Likewise.
2971 (aarch64_legitimize_reload_address): Likewise.
2972
ca081cc8
EB
29732013-09-22 Eric Botcazou <ebotcazou@adacore.com>
2974
2975 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
2976 NULL_TREE before pushing them onto the vector. Likewise for labels.
2977
8fc53a5f
EB
29782013-09-21 Eric Botcazou <ebotcazou@adacore.com>
2979
2980 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
2981 comparison operators when -fno-trapping-math is in effect.
2982 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
2983 comparison operators in TFmode and assert that unsupported operators
2984 cannot reach here.
2985 (ia64_print_operand): Likewise.
2986
29872013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
2988
2989 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
2990 (sse_typeless_stores): Enable for core
2991 (sse_load0_by_pxor): Likewise.
2992 (four_jump_limit): Disable for core.
2993 (pad_returns): Likewise.
2994 (avoid_vector_decode): Likewise.
2995 (fuse_cmp_and_branch): Enable for cores.
2996 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
2997
578e51e6
JDA
29982013-09-20 John David Anglin <danglin@gcc.gnu.org>
2999
96ce28a3
JDA
3000 PR middle-end/56791
3001 * config/pa/pa.c (pa_option_override): Disable auto increment and
3002 decrement instructions until reload is completed.
3003
578e51e6
JDA
3004 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
3005 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
3006 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
3007
6fcd3a13 30082013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 3009 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
3010
3011 * config/rl78/rl78.c: Various whitespace and comment tweaks.
3012 (need_to_save): Save bank 0 on interrupts.
3013 (characterize_address): Strip far address wrappers.
3014 (rl78_as_legitimate_address): Likewise.
3015 (transcode_memory_rtx): Likewise.
3016 (rl78_peep_movhi_p): Disable this peephole after devirt.
3017 (rl78_propogate_register_origins): Forget all origins when a
3018 CLOBBER is seen.
3019 * config/rl78/rl78-virt.md: Various whitespace tweaks.
3020 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
3021 peephole2's.
3022 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
3023 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
3024 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
3025 relocating.
3026 * config/rl78/constraints.md: Various whitespace and paren tweaks.
3027
4a08db33
JDA
30282013-09-20 John David Anglin <danglin@gcc.gnu.org>
3029
3030 * config/pa/pa.md: In "scc" insn patterns, change output template to
3031 handle const0_rtx in reg_or_0_operand operands.
3032
7691132c
JBG
30332013-09-20 Martin Husemann <martin@NetBSD.org>
3034
3035 PR target/56875
3036 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
3037 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
3038
a3cc13cc
RB
30392013-09-20 Richard Biener <rguenther@suse.de>
3040
3041 PR middle-end/58484
3042 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
3043 remembering SSA name version and block index.
3044 (new_scev_info_str): Adjust.
3045 (hash_scev_info): Likewise. Also hash the block index.
3046 (eq_scev_info): Adjust.
3047 (find_var_scev_info): Likewise.
3048 (struct instantiate_cache_entry): Remove.
3049 (struct instantiate_cache_type): Use a htab to map name, block
3050 to chrec.
3051 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3052 (get_instantiated_value_entry): Likewise.
3053 (hash_idx_scev_info, eq_idx_scev_info): New functions.
3054 (instantiate_scev_name): Adjust.
3055
925f3871
JL
30562013-09-20 Jeff Law <law@redhat.com>
3057
3058 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
3059
2888c331
YZ
30602013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
3061
3062 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
3063 Call aarch64_simd_expand_args to update op[argc].
3064
0a811e96
BS
30652013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3066
7a5911d3
UB
3067 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
3068 plugin argument.
0a811e96 3069
0078f462
BS
30702013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3071
7a5911d3
UB
3072 * gengtype.c (file_rules): Added rule for *.cc files.
3073 (get_output_file_with_visibility): Give fatal message when no
3074 rules found.
0078f462 3075
d20e48b0
RL
30762013-09-20 Renlin Li <renlin.li@arm.com>
3077
3078 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
3079 (aarch64_expand_epilogue): Likewise.
3080 (aarch64_legitimize_reload_address): Likewise.
3081
59bb1544
BE
30822013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3083
3084 PR middle-end/57748
3085 * expr.c (expand_assignment): Remove misalignp code path.
3086
a5430019
MP
30872013-09-20 Marek Polacek <polacek@redhat.com>
3088
3089 PR sanitizer/58413
3090 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
3091 TYPE_PRECISION. Add asserts.
3092
9fed7f3a
RB
30932013-09-20 Richard Biener <rguenther@suse.de>
3094
3095 PR tree-optimization/58453
3096 * tree-loop-distribution.c (distribute_loop): Apply the cost
3097 model for -ftree-loop-distribute-patterns, too.
3098
a820c834
RB
30992013-09-20 Richard Biener <rguenther@suse.de>
3100
3101 PR middle-end/58473
3102 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
3103 make type comparison less strict.
3104
3cbe17f7
AM
31052013-09-20 Alan Modra <amodra@gmail.com>
3106
3107 * configure: Regenerate.
3108 * aclocal.m4: Regenerate.
3109
87fccdbb
MP
31102013-09-20 Marek Polacek <polacek@redhat.com>
3111
3112 PR other/58467
3113 * doc/extend.texi: Document that attribute used is meant to be used
3114 on variables with static storage duration.
3115
8928eff3
JJ
31162013-09-19 Jakub Jelinek <jakub@redhat.com>
3117
3118 PR tree-optimization/58472
3119 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
3120 simd_lane_access set inv_p = false.
3121 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
3122 the simduid magic VAR_DECL.
3123
b7b28c53
JH
31242013-09-19 Jan Hubicka <jh@suse.cz>
3125
3126 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
3127
83ae86f5
JL
31282013-09-17 Jeff Law <law@redhat.com>
3129
3130 * tree-ssa-dom.c (record_temporary_equivalences): New function
3131 split out of dom_opt_dom_walker::after_dom_children.
3132 (dom_opt_dom_walker::thread_across_edge): Move common code
3133 in here from dom_opt_dom_walker::after_dom_children.
3134 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
3135
9d532162
JH
31362013-09-19 Jan Hubicka <jh@suse.cz>
3137
3138 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
3139 (TARGET_GENERIC): Use PROCESOR_GENERIC
3140 (enum processor_type): Unify generic32 and 64.
3141 * i386.md (cpu): Likewise.
3142 * x86-tune.def (use_leave): Enable for generic32.
3143 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
3144 * athlon.md: Change generic64 to generic in all occurences.
3145 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
3146 (ix86_target_macros_internal): Likewise.
3147 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
3148 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
3149 to ..
9d532162
JH
3150 (generic_memcpy, generic_memset, generic_cost): This one.
3151 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
3152 (m_GENERIC32, m_GENERIC64): Remove.
3153 (m_GENERIC): Turn into one flag.
3154 (processor_target): Unify generic tunnings.
3155 (ix86_option_override_internal): Replace generic32/64 by generic.
3156 (ix86_issue_rate): Likewise.
3157 (ix86_adjust_cost): Likewise.
3158
188c7d00
JH
31592013-09-19 Jan Hubicka <jh@suse.cz>
3160
3161 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
3162 of speculative flag.
3163
4befd127
JJ
31642013-09-19 Jakub Jelinek <jakub@redhat.com>
3165
3166 * omp-low.c (expand_omp_sections): Always pass len - 1 to
3167 GOMP_sections_start, even if !exit_reachable.
3168
8a26ad39
VM
31692013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3170
3171 * lra-constraints.c (need_for_all_save_p): Use macro
3172 HARD_REGNO_CALL_PART_CLOBBERED.
3173 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
3174 set up pseudo conflict hard regs.
3175
09487185
MM
31762013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3177
3178 PR target/58452
3179 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
3180 operands.
3181
080cbf9e
VM
31822013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3183
3184 PR rtl-optimization/58438
3185 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
3186 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
3187 from previous subpasses.
3188
a0f70fcb
RE
31892013-09-18 Richard Earnshaw <rearnsha@arm.com>
3190
3191 * arm.c (arm_get_frame_offsets): Validate architecture supports
3192 LDRD/STRD before accepting the tuning preference.
3193 (arm_expand_prologue): Likewise.
3194 (arm_expand_epilogue): Likewise.
3195
0547c9b6
RB
31962013-09-18 Richard Biener <rguenther@suse.de>
3197
3198 PR tree-optimization/58417
3199 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
3200 have chrecs with symbols defined in the loop as operands.
3201 (chrec_fold_multiply): Likewise.
3202 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
3203 parameters before folding binary operations.
3204 (struct instantiate_cache_entry_hasher): Remove.
3205 (struct instantiate_cache_type): Use a pointer-map.
3206 (instantiate_cache_type::instantiate_cache_type): New function.
3207 (instantiate_cache_type::get): Likewise.
3208 (instantiate_cache_type::set): Likewise.
3209 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3210 (get_instantiated_value_entry): Likewise.
3211 (global_cache): New global.
3212 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
3213 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
3214 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
3215 (instantiate_scev_name): Adjust.
3216 (instantiate_scev): Construct global instead of local cache.
3217 (resolve_mixers): Likewise.
3218
309dc1aa
DM
32192013-09-18 Daniel Morris <danielm@ecoscentric.com>
3220 Paolo Carlini <paolo.carlini@oracle.com>
3221
3222 PR c++/58458
3223 * doc/implement-cxx.texi: Fix references to the C++ standards.
3224
995a1b4a
JJ
32252013-09-18 Jakub Jelinek <jakub@redhat.com>
3226
3227 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
3228 * tree-vect-data-refs.c (vect_analyze_data_refs): For
3229 simd_lane_access drs, update also DR_ALIGNED_TO.
3230
ce6923c5
MP
32312013-09-18 Marek Polacek <polacek@redhat.com>
3232
3233 PR sanitizer/58411
3234 * doc/extend.texi: Document no_sanitize_undefined attribute.
3235 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
3236 no_sanitize_undefined attribute.
3237
d30d00a2
NC
32382013-09-18 Nick Clifton <nickc@redhat.com>
3239
3240 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
3241 (ASM_DECLARE_FUNCTION_NAME): Define.
3242
4d9192b5
TS
32432013-09-17 Trevor Saunders <tsaunders@mozilla.com>
3244
3245 * compare-elim.c (find_comparison_dom_walker): New class
3246 (find_comparisons_in_bb): Rename to
3247 find_comparison_dom_walker::before_dom_children
3248 (find_comparisons): Adjust
3249 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
3250 adjust.
3251 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
3252 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
3253 (init_walk_dominator_tree): Remove declaration.
3254 (fini_walk_dominator_tree): Remove declaration.
3255 * fwprop.c (single_def_use_dom_walker): New class
3256 (single_def_use_enter_block): Convert to
3257 single_def_use_dom_walker::before_dom_children.
3258 (single_def_use_leave_block): Convert to
3259 single_def_use_dom_walker::after_dom_children.
3260 (build_single_def_use_links): Adjust.
3261 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
3262 class.
3263 (find_candidates_in_block): Convert to
3264 find_candidates_dom_walker::before_dom_children.
3265 (execute_strength_reduction): Adjust.
3266 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
3267 (sese_dom_walker): New class.
3268 (sese_dom_walker::sese_dom_walker): New constructor.
3269 (sese_dom_walker::~sese_dom_walker): New destructor.
3270 (build_sese_conditions_before): Convert to
3271 sese_dom_walker::before_dom_children.
3272 (build_sese_conditions_after): Convert to
3273 sese_dom_walker::after_dom_children.
3274 (build_poly_scop): Adjust
3275 * tree-into-ssa.c (rewrite_dom_walker): New class
3276 (rewrite_enter_block): Convert to
3277 rewrite_dom_walker::before_dom_children.
3278 (rewrite_leave_block): Convert to
3279 rewrite_dom_walker::after_dom_children.
3280 (rewrite_update_dom_walker): New class.
3281 (rewrite_update_enter_block): Convert to
3282 rewrite_update_dom_walker::before_dom_children.
3283 (rewrite_update_leave_block): Convert to
3284 rewrite_update_dom_walker::after_dom_children.
3285 (rewrite_blocks, rewrite_into_ssa): Adjust.
3286 (mark_def_dom_walker): New class.
3287 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
3288 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
3289 (mark_def_sites_blocks): Convert to
3290 mark_def_dom_walker::before_dom_children.
3291 (mark_def_site_blocks): Remove.
3292 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
3293 (tree_ssa_dominator_optimize): Adjust.
3294 (dom_thread_across_edge): Convert to method
3295 dom_opt_dom_walker::thread_across_edge.
3296 (dom_opt_enter_block): Convert to member function
3297 dom_opt_dom_walker::before_dom_children.
3298 (dom_opt_leave_block): Convert to member function
3299 dom_opt_dom_walker::after_dom_children.
3300 * tree-ssa-dse.c (dse_dom_walker): New class.
3301 (dse_enter_block): Convert to member function
3302 dse_dom_walker::before_dom_children.
3303 (tree_ssa_dse): Adjust.
3304 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
3305 (determine_invariantness_stmt): Convert to method
3306 invariantness_dom_walker::before_dom_children.
3307 (determine_invariantness): Remove
3308 (move_computations_dom_walker): New class.
3309 (move_computations_stmt): Convert to method
3310 move_computations_dom_walker::before_dom_children.
3311 (move_computations, tree_ssa_lim): Adjust.
3312 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
3313 (nt_init_block): Make method
3314 notrappping_dom_walker::before_dom_children.
3315 (nt_fini_block): Make
3316 method nontrapping_dom_walker::after_dom_children.
3317 (get_non_trapping): Adjust.
3318 * tree-ssa-pre.c (eliminate_dom_walker): New class.
3319 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
3320 (eliminate_leave_block): Make method.
3321 eliminate_dom_walker::after_dom_children.
3322 (eliminate): Adjust
3323 * tree-ssa-strlen.c (strlen_dom_walker): New class.
3324 (strlen_enter_block): Make method
3325 strlen_dom_walker::before_dom_children.
3326 (strlen_leave_block): Make
3327 method strlen_dom_walker::after_dom_children.
3328 (tree_ssa_strlen): Adjust.
3329 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
3330 (tree_ssa_uncprop): Adjust.
3331 (uncprop_leave_block): Make method
3332 uncprop_dom_walker::after_dom_children.
3333 (uncprop_leave_block): Make method
3334 uncprop_dom_walker::before_dom_children.
3335
3b3cc26b
BC
33362013-09-18 Bin Cheng <bin.cheng@arm.com>
3337
7a5911d3
UB
3338 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
3339 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 3340
b5ba3a9b
NC
33412013-09-17 Nick Clifton <nickc@redhat.com>
3342
3343 * config/rl78/rl78-real.md (bf): New pattern.
3344 (bt): New pattern.
3345 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
3346 (rl78_print_operand): Do not put a # before a %B.
3347 * config/rl78/rl78.opt: Tweak doc strings.
3348
09d5094b
DD
33492013-09-17 DJ Delorie <dj@redhat.com>
3350
3351 * config/rl78/constraints.md (Wcv): Allow up to $r31.
3352 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
3353 (rl78_option_override): Likewise, if -mallregs.
3354 (is_virtual_register): Likewise.
3355 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
3356 (REGNO_OK_FOR_BASE_P): Likewise.
3357 * config/rl78/rl78.opt (-mallregs): New.
3358
2ba1dca1
NC
33592013-09-17 Nick Clifton <nickc@redhat.com>
3360
3361 * config/rl78/rl78.c (need_to_save): Change return type to bool.
3362 For interrupt functions: save all call clobbered registers if the
3363 interrupt handler is not a leaf function.
3364 (rl78_expand_prologue): Always recompute the frame information.
3365 For interrupt functions: only select bank 0 if one of the bank 0
3366 registers is going to be psuhed.
3367
2e7c3f21
DD
33682013-09-17 DJ Delorie <dj@redhat.com>
3369
3370 * config/rl78/constraints.md: For each W* constraint, rename to C*
3371 and create a W* constraint that checks for an optional ES: prefix
3372 pattern also.
3373 * config/rl78/rl78.md (UNS_ES_ADDR): New.
3374 (es_addr): New. Used to wrap far addresses.
3375 * config/rl78/rl78-protos.h (rl78_es_addr): New.
3376 (rl78_es_base): New.
3377 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
3378 wrapped far addresses.
3379 (rl78_print_operand_1): Unwrap far addresses before processing.
3380 (rl78_lo16): Wrap far addresses in unspecs.
3381 (rl78_es_addr): New.
3382 (rl78_es_base): New.
3383 (insn_ok_now): Check for not-yet-wrapped far addresses.
3384 (transcode_memory_rtx): Properly re-wrap far addresses.
3385
5c26a69a
SH
33862013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
3387
3388 * config/sparc/t-rtems: Add leon3 multilibs.
3389
181f5f3e
CH
33902013-09-17 Cong Hou <congh@google.com>
3391
3392 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
3393 when checking the dot production pattern. The type of rhs operand
3394 of multiply is now checked correctly.
3395
8d34e421
JL
33962013-09-17 Jeff Law <law@redhat.com>
3397
3398 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3399 edge implied equivalences into successor phis.
3400 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
3401 here from tree-ssa-threadedge.c.
3402 (mark_threaded_blocks): When threading through a joiner, if both
3403 successors of the joiner's clone reach the same block, verify the
3404 PHI arguments are equal. If not, cancel the jump threading request.
3405 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
3406 tree-ssa-threadupdate.c
3407 (thread_across_edge): Don't check PHI argument equality when
3408 threading through joiner block here.
7a5911d3 3409
c152901f
AM
34102013-09-17 Andrew MacLeod <amacleod@redhat.com>
3411
3412 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
3413 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
3414 (warn_uninit, warn_uninitialized_vars,
3415 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3416 Move to tree-ssa-uninit.c.
78cedfb1 3417 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 3418 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
3419 ssa_undefined_value_p.
3420 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
3421 (warn_uninit, warn_uninitialized_vars,
3422 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3423 Move from tree-ssa.c.
3424 * tree-ssa.h: Adjust prototypes.
c152901f 3425
b631d45a
JH
34262013-09-17 Jan Hubicka <jh@suse.cz>
3427
3428 PR middle-end/58332
3429 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
3430 * ipa-inline.c (can_inline_edge_p): Do not downgrade
3431 FUNCTION_NOT_OPTIMIZED.
3432 * ipa-inline-analysis.c (compute_inline_parameters): Function
3433 not optimized is not inlinable unless it is alwaysinline.
3434 (inline_analyze_function): Force calls in not optimized
3435 function not inlinable.
3436
5b79657a
JH
34372013-09-17 Jan Hubicka <jh@suse.cz>
3438
3439 PR middle-end/58329
3440 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
3441 to return NULL.
3442 * ipa.c (function_and_variable_visibility): Likewise.
3443 * ipa-profile.c (ipa_profile): Likewise.
3444
27442c24
BE
34452013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
3446
3447 PR ipa/58398
3448 * cgraph.c (cgraph_function_body_availability): Check for ifunc
3449 attribute, and don't inline the resolver in this case.
3450
753b9bc3
TJ
34512013-09-17 Teresa Johnson <tejohnson@google.com>
3452
3453 * coverage.c (get_coverage_counts): Add missing newline.
3454
e3d3cfb4
KT
34552013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3456
3457 PR tree-optimization/58088
3458 * fold-const.c (mask_with_trailing_zeros): New function.
3459 (fold_binary_loc): Make sure we don't recurse infinitely
3460 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
3461 Use mask_with_trailing_zeros where appropriate.
3462
9a0ac98f
YR
34632013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
3464
3465 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
3466 of 'prev' var to get better distance estimation.
3467
78bbd765
EB
34682013-09-17 Eric Botcazou <ebotcazou@adacore.com>
3469
3470 * tree-inline.h (struct copy_body_data): Add transform_parameter.
3471 * tree-inline.c (is_parameter_of): New predicate.
3472 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
3473 a parameter has been remapped.
3474 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
3475 (optimize_inline_calls): Initialize transform_parameter.
3476 (copy_gimple_seq_and_replace_locals): Likewise.
3477 (tree_function_versioning): Likewise.
3478 (maybe_inline_call_in_expr): Likewise.
3479
cad055a4
NC
34802013-09-17 Nick Clifton <nickc@redhat.com>
3481
3482 * config/msp430/msp430-protos.h: Add prototypes for new functions.
3483 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
3484 interrupt handlers.
3485 (is_attr_func): New function.
3486 (msp430_is_interrupt_func): New function.
3487 (is_naked_func): New function.
3488 (is_reentrant_func): New function.
3489 (is_critical_func): New function.
3490 (msp430_start_function): Add annotations for function attributes.
3491 (msp430_attr): New function.
3492 (msp430_attribute_table): New.
3493 (msp430_function_section): New function.
3494 (TARGET_ASM_FUNCTION_SECTION): Define.
3495 (msp430_builtin): New enum.
3496 (msp430_init_builtins): New function.
3497 (msp430_builtin_devl): New function.
3498 (msp430_expand_builtin): New function.
3499 (TARGET_INIT_BUILTINS): Define.
3500 (TARGET_EXPAND_BUILTINS): Define.
3501 (TARGET_BUILTIN_DECL): Define.
3502 (msp430_expand_prologue): Add support for naked, interrupt,
3503 critical and reentrant functions.
3504 (msp430_expand_epilogue): Likewise.
3505 (msp430_print_operand): Handle 'O' character.
3506 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
3507 NO_TRAMPOLINES.
3508 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
3509 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
3510 (pushm): Use a 'n' rather than an 'i' constraint.
3511 (msp_return): Add generation of the interrupt return instruction.
3512 (disable_interrupts): New pattern.
3513 (enable_interrupts): New pattern.
3514 (push_intr_state): New pattern.
3515 (pop_intr_state): New pattern.
3516 (bic_SR): New pattern.
3517 (bis_SR): New pattern.
3518 * doc/extend.texi: Document MSP430 function attributes and builtin
3519 functions.
3520
deb6c11a
RB
35212013-09-17 Richard Biener <rguenther@suse.de>
3522
3523 PR tree-optimization/58432
3524 * tree-loop-distribution.c (tree_loop_distribution): Also
3525 scan PHIs for outside loop uses and seed a partition from them.
3526
c068654b
BC
35272013-09-17 Bin Cheng <bin.cheng@arm.com>
3528
3529 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
3530 (restructure_reference): Call backtrace_base_for_ref.
3531
567969e4
AM
35322013-09-17 Alan Modra <amodra@gmail.com>
3533
3534 PR target/57589
7a5911d3
UB
3535 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
3536 patch.
567969e4 3537
5c0029de
DD
35382013-09-16 DJ Delorie <dj@redhat.com>
3539
3540 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
3541 vregs location for RL78/G10.
3542 (rl78_expand_prologue): Avoid SEL on G10.
3543 (rl78_expand_epilogue): Likewise.
3544 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
3545 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
3546 __RL78_G10__ when appropriate.
3547 (ASM_SPEC): Pass -mg10 along to the assembler.
3548 * config/rl78/rl78.md (sel_rb): Disable for G10.
3549 * config/rl78/rl78.opt: Add -mg10 option.
3550 * config/rl78/t-rl78: Add -mg10 multilib.
3551
ea0f3e87
XDL
35522013-09-16 Xinliang David Li <davidxl@google.com>
3553
3554 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
3555 * omp-low.c (omp_max_vf): Ditto.
3556 (expand_omp_simd): Ditto.
3557 * tree-vectorizer.c (vectorize_loops): Ditto.
3558 (gate_vect_slp): Ditto.
3559 (gate_increase_alignment): Ditto.
3560 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
3561 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
3562 (gate_tree_vectorize): Name change.
3563 (tree_vectorize): Ditto.
3564 (pass_vectorize::gate): Call new function.
3565 (pass_vectorize::execute): Ditto.
7a5911d3 3566 * opts.c: O3 default setting change.
ea0f3e87
XDL
3567 (finish_options): Check new flag.
3568 * doc/invoke.texi: Document new flags.
3569 * common.opt: New flags.
3570
4f3da2e5
AS
35712013-09-16 Andreas Schwab <schwab@linux-m68k.org>
3572
3573 * doc/tm.texi.in (Cond Exec Macros): Remove node.
3574 (Condition Code): Don't reference it.
3575 * doc/tm.texi: Regenerate.
3576
aa940f7c
VM
35772013-09-16 Vladimir Makarov <vmakarov@redhat.com>
3578
3579 PR middle-end/58418
3580 * lra-constraints.c (undo_optional_reloads): Consider all optional
3581 reload even if it did not get a hard reg.
3582
e645e942
TJ
35832013-09-16 Teresa Johnson <tejohnson@google.com>
3584
3585 * dumpfile.c (dump_loc): Remove newline emission.
3586 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
3587 emission to dump_printf_loc calls where missing.
3588 (vect_mark_for_runtime_alias_test): Ditto.
3589 (vect_analyze_data_ref_dependence): Ditto.
3590 (vect_analyze_data_ref_dependences): Ditto.
3591 (vect_slp_analyze_data_ref_dependence): Ditto.
3592 (vect_slp_analyze_data_ref_dependences): Ditto.
3593 (vect_compute_data_ref_alignment): Ditto.
3594 (vect_update_misalignment_for_peel): Ditto.
3595 (vect_verify_datarefs_alignment): Ditto.
3596 (vector_alignment_reachable_p): Ditto.
3597 (vect_get_data_access_cost): Ditto.
3598 (vect_enhance_data_refs_alignment): Ditto.
3599 (vect_find_same_alignment_drs): Ditto.
3600 (vect_analyze_data_refs_alignment): Ditto.
3601 (vect_analyze_group_access): Ditto.
3602 (vect_analyze_data_ref_access): Ditto.
3603 (vect_analyze_data_ref_accesses): Ditto.
3604 (vect_prune_runtime_alias_test_list): Ditto.
3605 (vect_analyze_data_refs): Ditto.
3606 (vect_create_addr_base_for_vector_ref): Ditto.
3607 (vect_create_data_ref_ptr): Ditto.
3608 (vect_grouped_store_supported): Ditto.
3609 (vect_grouped_load_supported): Ditto.
3610 * value-prof.c (check_counter): Ditto.
3611 (check_ic_target): Ditto.
3612 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
3613 (vect_recog_widen_mult_pattern): Ditto.
3614 (vect_recog_widen_sum_pattern): Ditto.
3615 (vect_recog_over_widening_pattern): Ditto.
3616 (vect_recog_widen_shift_pattern): Ditto.
3617 (vect_recog_rotate_pattern): Ditto.
3618 (vect_recog_vector_vector_shift_pattern): Ditto.
3619 (vect_recog_divmod_pattern): Ditto.
3620 (vect_recog_mixed_size_cond_pattern): Ditto.
3621 (vect_recog_bool_pattern): Ditto.
3622 (vect_pattern_recog_1): Ditto.
3623 (vect_pattern_recog): Ditto.
3624 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
3625 (vect_is_simple_iv_evolution): Ditto.
3626 (vect_analyze_scalar_cycles_1): Ditto.
3627 (vect_get_loop_niters): Ditto.
3628 (vect_analyze_loop_1): Ditto.
3629 (vect_analyze_loop_form): Ditto.
3630 (vect_analyze_loop_operations): Ditto.
3631 (vect_analyze_loop_2): Ditto.
3632 (vect_analyze_loop): Ditto.
3633 (report_vect_op): Ditto.
3634 (vect_is_slp_reduction): Ditto.
3635 (vect_is_simple_reduction_1): Ditto.
3636 (vect_get_known_peeling_cost): Ditto.
3637 (vect_estimate_min_profitable_iters): Ditto.
3638 (vect_model_reduction_cost): Ditto.
3639 (vect_model_induction_cost): Ditto.
3640 (get_initial_def_for_induction): Ditto.
3641 (vect_create_epilog_for_reduction): Ditto.
3642 (vectorizable_reduction): Ditto.
3643 (vectorizable_induction): Ditto.
3644 (vectorizable_live_operation): Ditto.
3645 (vect_loop_kill_debug_uses): Ditto.
3646 (vect_transform_loop): Ditto.
3647 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
3648 (vect_stmt_relevant_p): Ditto.
3649 (process_use): Ditto.
3650 (vect_mark_stmts_to_be_vectorized): Ditto.
3651 (vect_model_simple_cost): Ditto.
3652 (vect_model_promotion_demotion_cost): Ditto.
3653 (vect_model_store_cost): Ditto.
3654 (vect_get_store_cost): Ditto.
3655 (vect_model_load_cost): Ditto.
3656 (vect_get_load_cost): Ditto.
3657 (vect_init_vector_1): Ditto.
3658 (vect_get_vec_def_for_operand): Ditto.
3659 (vect_finish_stmt_generation): Ditto.
3660 (vectorizable_call): Ditto.
3661 (vectorizable_conversion): Ditto.
3662 (vectorizable_assignment): Ditto.
3663 (vectorizable_shift): Ditto.
3664 (vectorizable_operation): Ditto.
3665 (vectorizable_store): Ditto.
3666 (vectorizable_load): Ditto.
3667 (vectorizable_condition): Ditto.
3668 (vect_analyze_stmt): Ditto.
3669 (vect_transform_stmt): Ditto.
3670 (vect_is_simple_use): Ditto.
3671 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
3672 (vect_can_advance_ivs_p): Ditto.
3673 (vect_update_ivs_after_vectorizer): Ditto.
3674 (vect_do_peeling_for_loop_bound): Ditto.
3675 (vect_gen_niters_for_prolog_loop): Ditto.
3676 (vect_update_inits_of_drs): Ditto.
3677 (vect_create_cond_for_alias_checks): Ditto.
3678 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
3679 (vect_build_slp_tree_1): Ditto.
3680 (vect_supported_load_permutation_p): Ditto.
3681 (vect_analyze_slp_instance): Ditto.
3682 (vect_analyze_slp): Ditto.
3683 (vect_make_slp_decision): Ditto.
3684 (vect_detect_hybrid_slp): Ditto.
3685 (vect_bb_vectorization_profitable_p): Ditto.
3686 (vect_slp_analyze_bb_1): Ditto.
3687 (vect_update_slp_costs_according_to_vf): Ditto.
3688 (vect_get_mask_element): Ditto.
3689 (vect_transform_slp_perm_load): Ditto.
3690 (vect_schedule_slp_instance): Ditto.
3691 (vect_schedule_slp): Ditto.
3692 (vect_slp_transform_bb): Ditto.
3693 * profile.c (read_profile_edge_counts): Ditto.
3694 (compute_branch_probabilities): Ditto.
3695 * coverage.c (get_coverage_counts): Ditto.
3696
46f851f3
DN
36972013-09-16 Diego Novillo <dnovillo@google.com>
3698
7a5911d3 3699 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 3700
1632a686
JH
37012013-09-16 Jan Hubicka <jh@suse.cz>
3702
3703 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 3704 abstract functions; for static functions check the presence of body.
1632a686 3705
828e70c1
JG
37062013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3707
3708 * config/aarch64/aarch64-simd-builtins.def (fma): New.
3709 * config/aarch64/aarch64-simd.md
3710 (aarch64_mla_elt<mode>): New.
3711 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
3712 (aarch64_mls_elt<mode>): Likewise.
3713 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
3714 (aarch64_fma4_elt<mode>): Likewise.
3715 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
3716 (aarch64_fma4_elt_to_128v2df): Likewise.
3717 (aarch64_fma4_elt_to_64df): Likewise.
3718 (fnma<mode>4): Likewise.
3719 (aarch64_fnma4_elt<mode>): Likewise.
3720 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
3721 (aarch64_fnma4_elt_to_128v2df): Likewise.
3722 (aarch64_fnma4_elt_to_64df): Likewise.
3723 * config/aarch64/iterators.md (VDQSF): New.
3724 * config/aarch64/arm_neon.h
3725 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
3726 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
3727
779aea46
JG
37282013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3729
3730 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
3731 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
3732 (aarch64_mul3_elt_to_128df): Likewise.
3733 (aarch64_mul3_elt_to_64v2df): Likewise.
3734 * config/aarch64/iterators.md (VEL): Also handle DFmode.
3735 (VMUL): New.
3736 (VMUL_CHANGE_NLANES) Likewise.
3737 (h_con): Likewise.
3738 (f): Likewise.
3739 * config/aarch64/arm_neon.h
3740 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
3741
a407a750
JG
37422013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3743
3744 * config/aarch64/arm_neon.h
3745 (vcvtx_high_f32_f64): Fix parameters.
3746
f77e2d2d 37472013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 3748 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 3749
a5bd71fa 3750 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 3751
36875e8f
RB
37522013-09-16 Richard Biener <rguenther@suse.de>
3753
3754 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
3755 (dot_rdg_1): Handle control_dd.
3756 (create_edge_for_control_dependence): New function.
3757 (create_rdg_edges): Add control dependences if asked for.
3758 (build_rdg): Likewise.
3759 (generate_loops_for_partition): If there are not necessary
3760 control stmts remove all their dependencies.
3761 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
3762 (distribute_loop): Pass on control dependences.
3763 (tree_loop_distribution): Compute control dependences and remove
3764 restriction on number of loop nodes.
3765
96e24d49
JJ
37662013-09-16 Jakub Jelinek <jakub@redhat.com>
3767
3768 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
3769 for internal calls.
3770
40dbb05c
RS
37712013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
3772
3773 * cse.c (try_const_anchors): Punt on CC modes.
3774
97191ad0
JBG
37752013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3776
3777 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
3778
403a3fb7
JDA
37792013-09-14 John David Anglin <danglin@gcc.gnu.org>
3780
3781 PR target/58382
3782 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
3783 calls to word_mode.
3784
fb5610fb
IS
37852013-09-14 Iain Sandoe <iain@codesourcery.com>
3786
3787 PR target/48094
3788 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
3789 seen.
3790 (darwin_objc1_section): Likewise.
fb5610fb
IS
3791 (darwin_file_end): Emit Image Info section when required.
3792
afdec9bd
JH
37932013-09-14 Jan Hubicka <jh@suse.cz>
3794
3795 * tree-into-ssa.c (gate_into_ssa): New.
3796 (pass_data_build_ssa): Use it.
3797 * cgraph.h (expand_thunk): Update prototype.
3798 * cgraphunit.c (analyze_function): Expand thunks early.
3799 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
3800 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
3801 set lowered flag; do not add new function.
3802 (assemble_thunks_and_aliases): Update.
3803 * tree-ssa.c (gate_init_datastructures): New gate.
3804 (pass_data_init_datastructures): Use it.
3805
492d1e0a
IS
38062013-09-14 Iain Sandoe <iain@codesourcery.com>
3807
3808 PR target/58269
f77e2d2d 3809 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
3810 xmm register set described in the psABI.
3811
d13c6b70
EG
38122013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
3813
f77e2d2d
JBG
3814 * dwarf2out.c (should_emit_struct_debug): Add check
3815 for type_decl variable is not NULL.
d13c6b70 3816
88b0e79e
JC
38172013-09-13 Jacek Caban <jacek@codeweavers.com>
3818
3819 * config.gcc: Use new winnt-c.c target hooks
3820 * config/t-winnt: New file
3821 * config/winnt-c.c: New file
3822 * doc/tm.texi.in: Document new hook
3823 * doc/tm.texi: Regenerated
3824
19ba6aab
JH
38252013-09-13 Jan Hubicka <jh@suse.cz>
3826
3827 PR middle-end/58094
3828 * ipa-inline.c (check_callers): New function.
3829 (check_caller_edge): Remove.
3830 (want_inline_function_to_all_callers_p): Also permit alises that are
3831 called dirrectly.
3832 (inline_to_all_callers): Terminate the walk when devirtualization
3833 introduce new calls.
3834
a93c18c8
JH
38352013-09-13 Jan Hubicka <jh@suse.cz>
3836
3837 * ipa-inline-analysis.c (struct growth_data): Add node.
3838 (do_estimate_growth_1): Fix detection of recursion.
3839
f3b331d1
JJ
38402013-09-13 Jakub Jelinek <jakub@redhat.com>
3841
3842 PR tree-optimization/58392
3843 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
3844 to avoid shadowing of outer loop variable. If
3845 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
3846 replace_by_duplicate_decl simduid of loops that have it set and
3847 set dest_cfun->has_simduid_loops and/or
3848 dest_cfun->has_force_vect_loops.
3849 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
3850 instead of maybe_lookup_decl.
3851 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
3852 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
3853 call. Copy over force_vect and copy and remap simduid. Set
3854 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
3855 (copy_cfg_body): Remove blocks_to_copy argument. Use
3856 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
3857 caller. Don't set cfun->has_simduid_loops and/or
3858 cfun->has_force_vect_loops here.
3859 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
3860 caller.
3861 (expand_call_inline, tree_function_versioning): Adjust copy_body
3862 callers.
3863
ae6d0907
MJ
38642013-09-13 Martin Jambor <mjambor@suse.cz>
3865
3866 PR bootstrap/58388
3867 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
3868 the assert if the edge was a speculative one.
3869
2fd5894f
RB
38702013-09-13 Richard Biener <rguenther@suse.de>
3871
3872 * tree-data-ref.h (known_dependences_p): Move here ...
3873 * tree-loop-distribution.c (known_dependences_p): ... from here.
3874 (dump_rdg_component, debug_rdg_component): Remove.
3875 (dump_rdg): Adjust.
3876 (generate_loops_for_partition): Use gimple_uid instead of
3877 relying on matching stmt visit order.
3878 (rdg_build_partitions): Take starting stmt vector.
3879 (ldist_gen): Merge into ...
3880 (distribute_loop): ... this function. Do not compute starting
3881 vertices vector.
3882 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
3883
86eb4bd7
KT
38842013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3885
3886 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
3887 Set type attribute correctly. Set predicable_short_it attribute.
3888 (cmpsi_shiftsi): Remove %? from output template.
3889
83a95546
RB
38902013-09-13 Richard Biener <rguenther@suse.de>
3891
3892 * tree-loop-distribution.c (struct rdg_component,
3893 rdg_defs_used_in_other_loops_p, free_rdg_components,
3894 rdg_build_components): Remove.
3895 (stmts_from_loop): Do not record virtual PHIs.
3896 (generate_loops_for_partition): Skip virtual PHIs.
3897 (build_rdg_partition_for_component): Rename to ...
3898 (build_rdg_partition_for_vertex): ... this and adjust.
3899 (rdg_build_partitions): Take a vector of starting vertices
3900 instead of components. Remove unnecessary leftover handling.
3901 (ldist_gen): Do not build components or record other stores.
3902 (distribute_loop): Do not distribute loops containing stmts
3903 with side-effects.
3904
c0ecf7f1
CB
39052013-09-13 Christian Bruel <christian.bruel@st.com>
3906
3907 PR target/58314
3908 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
3909
34f56efc
KT
39102013-09-13 Kai Tietz <ktietz@redhat.com>
3911
740f2bf3
KT
3912 * config.gcc: Separate cases for mingw and cygwin targets,
3913 and add 64-bit cygwin target case.
3914
34f56efc
KT
3915 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
3916 dll-export inline-functions.
3917 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
3918
3919
39202013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
3921
3922 PR middle-end/58387
3923 Revert:
3924 2013-09-06 Jeff Law <law@redhat.com>
3925
3926 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3927 edge implied equivalences into successor phis.
3928
aadb52ad
DD
39292013-09-12 DJ Delorie <dj@redhat.com>
3930
3931 * config/rl78/rl78-virt.md: Change from | to \; for asm line
3932 separators.
3933
90ae7019
BM
39342013-09-12 Brooks Moses <bmoses@google.com>
3935
3936 PR driver/42955
3937 * Makefile.in: Do not install driver binaries in $(target)/bin.
3938
17b2557c
DD
39392013-09-12 DJ Delorie <dj@redhat.com>
3940
c5215a9b
DD
3941 * config/rl78/rl78.opt (mrelax): New.
3942 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
3943 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
3944
17b2557c
DD
3945 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
3946 between SP and FP.
3947 (rl78_expand_epilogue): Likewise.
3948
ecafcf05
VM
39492013-09-12 Vladimir Makarov <vmakarov@redhat.com>
3950
3951 PR middle-end/58335
84f6d9fa 3952 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
3953 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
3954 pointer elimination with using remove_reg_equal_offset_note.
3955
8369f38a
DD
39562013-09-12 DJ Delorie <dj@redhat.com>
3957
f6a83b4a
DD
3958 * config/msp430/: New port.
3959 * config.gcc (msp430): Added.
3960 * doc/invoke.texi: Document MSP430 options.
3961 * doc/install.texi: Document msp430-elf
3962 * doc/md.texi: Document msp430-elf
3963 * doc/contrib.texi: Document msp430-elf
3964
8369f38a
DD
3965 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
3966 PSImode.
3967
a854f856
MJ
39682013-09-12 Martin Jambor <mjambor@suse.cz>
3969
3970 PR ipa/58389
3971 * ipa-prop.c (remove_described_reference): Give up if the edge in the
3972 reference descriptor is NULL.
3973 (ipa_edge_removal_hook): If owning a reference descriptor, set its
3974 edge to NULL.
3975
b12ebd96
AM
39762013-09-12 Andrew MacLeod <amacleod@redhat.com>
3977
3978 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
3979 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
3980 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
3981 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
3982 make_temp_ssa_name): move to tree-ssanames.h
3983 * tree-ssa-alias.h: Move prototype.
3984 * tree-ssa.h: Include tree-ssanames.h.
3985 * tree-ssanames.c (FREE_SSANAMES): Move to here.
3986 * tree-ssanames.h: New. Move items from tree-flow*.h
3987 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
3988
e1fb4ad3
RB
39892013-09-12 Richard Biener <rguenther@suse.de>
3990
3991 PR tree-optimization/58404
3992 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3993 propagate non-invariant addresses into dereferences wrapped
3994 in component references.
3995
154c9188
RB
39962013-09-12 Richard Biener <rguenther@suse.de>
3997
3998 PR tree-optimization/58402
3999 * passes.def: Move pass_late_warn_uninitialized later.
4000
7a300452
AM
40012013-09-12 Andrew MacLeod <amacleod@redhat.com>
4002
4003 * tree-ssa.h: New. Move content from tree-flow.h and
4004 tree-flow-inline.h.
4005 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
4006 Move prototypes belonging to tree-ssa.c.
f77e2d2d 4007 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
4008 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
4009 tree-ssa.h.
4010 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
4011 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
4012 to...
4013 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
4014 * tree.h: Move prototype to tree-ssa.h.
4015 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
4016 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
4017 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
4018 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
4019 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
4020 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
4021 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
4022 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
4023 graphite-blocking.c, graphite-clast-to-gimple.c,
4024 graphite-dependences.c, graphite-interchange.c,
4025 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
4026 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
4027 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
4028 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
4029 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
4030 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
4031 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
4032 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
4033 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
4034 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
4035 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
4036 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
4037 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
4038 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
4039 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
4040 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
4041 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
4042 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
4043 value-prof.c, var-tracking.c,
4044 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
4045
97463b2b
RB
40462013-09-12 Richard Biener <rguenther@suse.de>
4047
4048 PR tree-optimization/58396
4049 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
4050 (build_rdg): Take a loop-nest parameter, fix memleaks.
4051 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
4052
80ecd89d
YR
40532013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4054
4055 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
4056 for SLM.
4057
893e85fa
CM
40582013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
4059
4060 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
4061 The FMA instruction names should have a 'v' prefix.
4062
174ec470
RB
40632013-09-12 Richard Biener <rguenther@suse.de>
4064
4065 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
4066 (dot_rdg): Use popen instead of system in optional code.
4067 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
4068 (already_processed_vertex_p): Adjust.
4069 (has_anti_or_output_dependence, predecessor_has_mem_write,
4070 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
4071 rdg_flag_uses): Remove.
4072 (rdg_flag_vertex): Simplify.
4073 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
4074 remove recursion.
4075 (build_rdg_partition_for_component): Process the first vertex
4076 of a component only.
4077 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
4078
38c89763
AM
40792013-09-12 Alan Modra <amodra@gmail.com>
4080
4081 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
4082
3e3d9d17
DD
40832013-09-11 DJ Delorie <dj@redhat.com>
4084 Nick Clifton <nickc@redhat.com>
4085
4086 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
4087 (rl78_stack_based_mem): New.
4088 * config/rl78/constraints.md (Iv08): New.
4089 (Iv16): New.
4090 (Iv24): New.
4091 (Is09): New.
4092 (Is17): New.
4093 (Is25): New.
4094 (ISsi): New.
4095 (IShi): New.
4096 (ISqi): New.
4097 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
4098 (movhi): Likewise.
4099 (movsi): Change from expand to insn-and-split.
4100 (ashrsi3): Clobber AX.
4101 (lshrsi3): New.
4102 (ashlsi3): New.
4103 (cbranchsi4): New.
4104 * config/rl78/rl78.md (CC_REG): Fix.
4105 (addsi3): Allow memory and immediate operands.
4106 (addsi3_internal): Split into...
4107 (addsi3_internal_virt): ...new, and ...
4108 (addsi3_internal_real): ...new.
4109 (subsi): New.
4110 (subsi3_internal_virt): New.
4111 (subsi3_internal_real): New.
4112 (mulsi3): Add memory operand.
4113 (mulsi3_rl78): Likewise.
4114 (mulsi3_g13): Likewise.
4115 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
4116 (cbranchqi4_real): Add more constraint options.
4117 (cbranchhi4_real): Expand pattern.
4118 (cbranchhi4_real_signed): New.
4119 (cbranchhi4_real_inverted): New.
4120 (cbranchsi4_real_lt): New.
4121 (cbranchsi4_real_ge): New.
4122 (cbranchsi4_real_signed): New.
4123 (cbranchsi4_real): New.
4124 (peephole2): New.
893e85fa
CM
4125 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
4126 constant shifts.
3e3d9d17
DD
4127 (lshrsi3_virt): Likewise.
4128 (ashlsi3_virt): Likewise.
4129 (cbranchqi4_virt_signed): New.
4130 (cbranchhi4_virt_signed): New.
4131 (cbranchsi4_virt): New.
4132 * config/rl78/rl78.c: Whitespace fixes throughout.
4133 (move_elim_pass): New.
4134 (pass_data_rl78_move_elim): New.
4135 (pass_rl78_move_elim): New.
4136 (make_pass_rl78_move_elim): New.
4137 (rl78_devirt_info): Run devirt earlier.
4138 (rl78_move_elim_info): New.
4139 (rl78_asm_file_start): Register it.
4140 (rl78_split_movsi): New.
4141 (rl78_as_legitimate_address): Allow virtual base registers when
4142 appropriate.
4143 (rl78_addr_space_convert): Remove spurious debug stuff.
4144 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
4145 (rl78_print_operand): More cases for not printing '#'.
4146 (rl78_expand_compare): Remove most of the logic.
4147 (content_memory): New.
4148 (clear_content_memory): New.
4149 (get_content_index): New.
4150 (get_content_name): New.
4151 (display_content_memory): New.
4152 (update_content): New.
4153 (record_content): New.
4154 (already_contains): New.
4155 (insn_ok_now): Re-recog insns with virtual registers.
4156 (add_postponed_content_update): New.
4157 (process_postponed_content_update): New.
4158 (gen_and_emit_move): New.
893e85fa
CM
4159 (transcode_memory_rtx): Record new location content.
4160 Use gen_and_emit_move.
3e3d9d17
DD
4161 (force_into_acc): New.
4162 (move_to_acc): Use gen_and_emit_move.
4163 (move_from_acc): Likewise.
4164 (move_acc_to_reg): Likewise.
4165 (move_to_x): Likewise.
4166 (move_to_hl): Likewise.
4167 (move_to_de): Likewise.
4168 (rl78_alloc_physical_registers_op1): Record location content.
4169 (has_constraint): New.
4170 (rl78_alloc_physical_registers_op2): Record location content.
4171 Optimize use of HL.
4172 (rl78_alloc_physical_registers_ro1): Likewise.
4173 (rl78_alloc_physical_registers_cmp): Likewise.
4174 (rl78_alloc_physical_registers_umul): Likewise.
4175 (rl78_alloc_address_registers_macax): New.
4176 (rl78_alloc_physical_registers): Initialize and set location
4177 content memory as needed.
4178 (rl78_reorg): Make sure split2 is called.
4179 (rl78_rtx_costs): New.
4180
088845a5
RS
41812013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
4182
4183 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
4184 for (not (neg ...)) and (neg (not ...)) cases.
4185
5c2961cf
RB
41862013-09-11 Richard Biener <rguenther@suse.de>
4187
4188 PR middle-end/58377
4189 * passes.def: Split critical edges before late uninit warning passes.
4190 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
4191
427e6a14
JJ
41922013-09-11 Jakub Jelinek <jakub@redhat.com>
4193
4194 PR tree-optimization/58385
4195 * fold-const.c (build_range_check): If both low and high are NULL,
4196 use omit_one_operand_loc to preserve exp side-effects.
4197
df45c0cc
KT
41982013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4199
4200 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
4201
80ab0b19
RB
42022013-09-11 Richard Biener <rguenther@suse.de>
4203
4204 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
4205 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
4206 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
4207 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
4208 stmts_from_loop, known_dependences_p, build_empty_rdg,
4209 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
4210 * tree-loop-distribution.c: ... here.
4211 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
4212 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
4213 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
4214 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
4215 * tree-loop-distribution.c: ... here.
4216 * tree-loop-distribution.c: Include gimple-pretty-print.h.
4217 (struct partition_s): Add loops member.
4218 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
4219 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
4220 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
4221
85a77221
AI
42222013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4223 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4224 Sergey Lega <sergey.s.lega@intel.com>
4225 Anna Tikhonova <anna.tikhonova@intel.com>
4226 Ilya Tocar <ilya.tocar@intel.com>
4227 Andrey Turetskiy <andrey.turetskiy@intel.com>
4228 Ilya Verbin <ilya.verbin@intel.com>
4229 Kirill Yukhin <kirill.yukhin@intel.com>
4230 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4231
4232 * config/i386/constraints.md (k): New.
4233 (Yk): Ditto.
4234 * config/i386/i386.c (const regclass_map): Add new mask registers.
4235 (dbx_register_map): Ditto.
4236 (dbx64_register_map): Ditto.
4237 (svr4_dbx_register_map): Ditto.
4238 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
4239 disabled.
4240 (ix86_preferred_reload_class): Disable constants for mask registers.
4241 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
4242 (ix86_hard_regno_mode_ok): Support new mask registers.
4243 (x86_order_regs_for_local_alloc): Ditto.
4244 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
4245 (FIXED_REGISTERS): Add new mask registers.
4246 (CALL_USED_REGISTERS): Ditto.
4247 (REG_ALLOC_ORDER): Ditto.
4248 (VALID_MASK_REG_MODE): New.
4249 (FIRST_MASK_REG): Ditto.
4250 (LAST_MASK_REG): Ditto.
4251 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
4252 (MAYBE_MASK_CLASS_P): New.
4253 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
4254 (REG_CLASS_CONTENTS): Ditto.
4255 (MASK_REGNO_P): New.
4256 (ANY_MASK_REG_P): Ditto.
4257 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
4258 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
4259 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
4260 mask registers.
85a77221
AI
4261 (attribute "type"): Add mskmov, msklog.
4262 (attribute "length_immediate"): Support them.
4263 (attribute "memory"): Ditto.
4264 (attribute "prefix_0f"): Ditto.
4265 (*movhi_internal): Support new mask registers.
4266 (*movqi_internal): Ditto.
4267 (define_split): Split out clobber pattern is a logic
4268 insn on mask registers.
4269 (*k<logic><mode>): New.
4270 (*andhi_1): Extend to support mask regs.
4271 (*andqi_1): Extend to support mask regs.
4272 (kandn<mode>): New.
4273 (define_split): Split and-not to and and not if operands
4274 are not mask regs.
4275 (*<code><mode>_1): Separate HI mode to new pattern...
4276 (*<code>hi_1): This.
4277 (*<code>qi_1): Extend to support mask regs.
4278 (kxnor<mode>): New.
4279 (kortestzhi): Ditto.
4280 (kortestchi): Ditto.
4281 (kunpckhi): Ditto.
4282 (*one_cmpl<mode>2_1): Remove HImode and handle it...
4283 (*one_cmplhi2_1): ...Here, now with mask registers support.
4284 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
4285 (HI/QImode arithmetics splitter): Don't split if mask registers
4286 are used.
85a77221
AI
4287 (HI/QImode not splitter): Ditto.
4288 * config/i386/predicated.md (mask_reg_operand): New.
4289 (general_reg_operand): Ditto.
4290
7e570821
AI
42912013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4292
4293 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
4294 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
4295
9e1376e9
JL
42962013-09-10 Jeff Law <law@redhat.com>
4297
4298 PR tree-optimization/58380
4299 * tree-ssa-threadupdate.c (thread_block): Recognize another case
4300 of threading through a buried loop header.
4301
4302 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
4303 return value for single successor case.
4304
5bbcb888
JH
43052013-09-10 Jan Hubicka <jh@suse.cz>
4306
4307 * ipa-devirt.c (ipa_devirt): Enable with LTO.
4308
d742ff4b
RE
43092013-09-10 Richard Earnshaw <rearnsha@arm.com>
4310
4311 PR target/58361
4312 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
4313 support conditional execution.
4314 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
4315
b0681c9e
VM
43162013-09-10 Vladimir Makarov <vmakarov@redhat.com>
4317
4318 * lra.c (lra): Clear lra_optional_reload_pseudos before every
4319 constraint pass.
f77e2d2d
JBG
4320 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
4321 Check destination too to check move insn.
b0681c9e 4322 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
4323 changed its allocation and the optional reload was inherited on last
4324 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
4325 (lra_undo_inheritance): Add check that inherited pseudo still in
4326 memory.
4327
c9b1c957
JG
43282013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
4329
4330 * config/aarch64/aarch64.md (generic_sched): New.
4331 * config/aarch64/aarch64-generic.md (load): Make conditional
4332 on generic_sched attribute.
4333 (nonload): Likewise.
4334
82d618d3
JH
43352013-09-10 Jan Hubicka <jh@suse.cz>
4336
4337 * lto-cgraph.c: Include ipa-utils.h.
4338 (compute_ltrans_boundary): Also add possible targets into the boundary.
4339
668b6894
JH
43402013-09-10 Jan Hubicka <jh@suse.cz>
4341
4342 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
4343 VAR_DECL of vtable rather than full expression.
4344
4f90d3e0
JH
43452013-09-10 Jan Hubicka <jh@suse.cz>
4346 Paolo Carlini <paolo.carlini@oracle.com>
4347
4348 * cgraphunit.c (analyze_functions): Save input_location, set it
4349 to UNKNOWN_LOCATION and restore it at the end.
4350
39e87baf
MJ
43512013-09-10 Martin Jambor <mjambor@suse.cz>
4352
4353 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
4354 represented by a thunk.
4355
581aedec
JL
43562013-09-10 Jeff Law <law@redhat.com>
4357
4358 PR tree-optimization/58343
4359 * tree-ssa-threadupdate.c (thread_block): Identify and disable
4360 jump threading requests through loop headers buried in the middle
4361 of a jump threading path.
4362
4363 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
4364 in return value/type.
4365
84cf4ab6
JJ
43662013-09-10 Jakub Jelinek <jakub@redhat.com>
4367
4368 PR rtl-optimization/58365
4369 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
4370 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
4371 it differs.
4372
447dd906
RB
43732013-09-10 Richard Biener <rguenther@suse.de>
4374
4375 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
4376 * tree-data-ref.c (create_rdg_vertices): Collect all data
4377 references, signal failure to the caller, use data-ref API.
893e85fa
CM
4378 (build_rdg): Compute data references only once. Maintain lifetime
4379 of data references and data dependences from within RDG.
447dd906
RB
4380 (free_rdg): Free dependence relations.
4381 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
4382 inventing extra dependences.
4383 (distribute_loop): Update for RDG API changes.
4384
f14a7324
KT
43852013-09-10 Kai Tietz <ktietz@redhat.com>
4386
4387 * doc/invoke.texi (fms-extensions): Document changed
4388 behavior for ms-abi targets.
4389 * config/i386/i386.c (ix86_option_override_internal):
4390 Set default value of option -fms-extension for ms-abi targets.
4391
ff131f26
MZ
43922013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
4393
4394 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
4395
33115a2c
AM
43962013-09-10 Alan Modra <amodra@gmail.com>
4397
4398 PR target/58330
4399 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
4400
b6872a13
AM
44012013-09-10 Alan Modra <amodra@gmail.com>
4402
4403 * config/rs6000/predicates.md (add_cint_operand): New.
4404 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
4405 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
4406 using add_cint_operand.
4407 (largetoc_high_plus_aix): Likewise.
4408
28fd0ba2
JJ
44092013-09-09 Jakub Jelinek <jakub@redhat.com>
4410
4411 PR tree-optimization/58364
4412 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
4413 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
4414 the current range can't be an unconditional true or false.
4415
552d99fe
JG
44162013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
4417
4418 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
4419
f43245d1
UB
44202013-09-09 Uros Bizjak <ubizjak@gmail.com>
4421
4422 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
4423
c9b0866a
PC
44242013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
4425
4426 PR c++/43452
4427 * doc/invoke.texi (-Wdelete-incomplete): Document it.
4428
78d8b9f0
IB
44292013-09-09 Ian Bolton <ian.bolton@arm.com>
4430
4431 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
4432 NO_REGS for immediate that can't be moved directly into FP_REGS.
4433
274b2532
KT
44342013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4435
4436 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
4437 comparison with negated operand.
c9b0866a
PC
4438 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
4439 RTL form.
274b2532 4440
467a3558
RB
44412013-09-09 Richard Biener <rguenther@suse.de>
4442
4443 PR middle-end/58326
4444 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
4445 of a subloop record all its block as affecting loop-closed SSA form.
4446
088c5368
RS
44472013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4448
4449 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
4450 of an rtx/bitpos pair.
4451 (store_fixed_bit_field): Update accordingly.
4452
69db2d57
RS
44532013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4454
4455 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
4456 GEN_INT.
4457 * builtins.c (expand_errno_check): Likewise.
4458 * dwarf2cfi.c (init_return_column_size): Likewise.
4459 * except.c (sjlj_mark_call_sites): Likewise.
4460 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
4461 * lra-constraints.c (emit_inc): Likewise.
4462 * ree.c (combine_set_extension): Likewise.
4463 * regmove.c (fixup_match_2): Likewise.
4464 * reload1.c (inc_for_reload): Likewise.
4465
69a59f0f
RS
44662013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4467
4468 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
4469 (force_to_mode, simplify_shift_const_1, simplify_comparison):
4470 Use gen_int_mode with the mode of the associated simplify_* call.
4471 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
4472 * expmed.c (expand_shift_1): Likewise.
4473 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4474 * loop-iv.c (iv_number_of_iterations): Likewise.
4475 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4476 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4477
2f1cd2eb
RS
44782013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4479
4480 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
4481 of the associated expand_* call.
4482 (asan_emit_stack_protection): Likewise.
4483 * builtins.c (round_trampoline_addr): Likewise.
4484 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
4485 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
4486 (emit_store_flag): Likewise.
4487 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
4488 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
4489 Likewise.
4490 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4491 * ifcvt.c (noce_try_store_flag_constants): Likewise.
4492 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4493 * modulo-sched.c (generate_prolog_epilog): Likewise.
4494 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
4495 (expand_ctz, expand_ffs, expand_unop): Likewise.
4496
4789c0ce
RS
44972013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4498
4499 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
4500 of the associated gen_rtx_* call.
4501 * caller-save.c (init_caller_save): Likewise.
4502 * combine.c (find_split_point, make_extraction): Likewise.
4503 (make_compound_operation): Likewise.
4504 * dwarf2out.c (mem_loc_descriptor): Likewise.
4505 * explow.c (plus_constant, probe_stack_range): Likewise.
4506 * expmed.c (expand_mult_const): Likewise.
4507 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
4508 * reload1.c (init_reload): Likewise.
4509 * valtrack.c (cleanup_auto_inc_dec): Likewise.
4510 * var-tracking.c (adjust_mems): Likewise.
4511 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
4512 rather than gen_rtx_fmt_ee.
4513
a811f7cb
JH
45142013-09-09 Jan Hubicka <jh@suse.cz>
4515
4516 PR middle-end/58294
4517 * value-prof.c (gimple_ic): Copy also abnormal edges.
4518
dcad1dd3
RS
45192013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4520
4521 * asan.c (asan_shadow_cst): Use gen_int_mode.
4522
daf5c770
JH
45232013-09-08 Jan Hubicka <jh@suse.cz>
4524
4525 * ipa-profile.c: Add toplevel comment.
4526 (ipa_propagate_frequency_1): Be more conservative when profile is read.
4527 (contains_hot_call_p): New function.
4528 (ipa_propagate_frequency): Set frequencies based on counts when
4529 profile is read.
4530 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
4531 profile; do not tamper with profile after inlining if it is read.
4532
a12cd2db
JH
45332013-09-08 Jan Hubicka <jh@suse.cz>
4534
4535 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
4536 speculative edges.
4537
856a1588
JH
45382013-09-08 Jan Hubicka <jh@suse.cz>
4539
4540 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
4541 summary generation.
4542
4f4b0b73
JL
45432013-09-08 Jeff Law <law@redhat.com>
4544
4545 PR bootstrap/58340
4546 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
4547 of 'found'.
4548
cc4029ee
AK
45492013-09-08 Andi Kleen <ak@linux.intel.com>
4550
4551 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
4552
7b395ddd
JH
45532013-09-08 Jan Hubicka <jh@suse.cz>
4554
4555 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
4556
c34c46dd
RS
45572013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
4558
4559 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
4560 for non-debug insns.
4561 * lra.c (new_insn_reg): Take the containing insn as a parameter.
4562 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
4563 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
4564 accordingly.
4565
3462aa02
JH
45662013-09-08 Jan Hubicka <jh@suse.cz>
4567
4568 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
4569 targets and devirtualize to BUILT_IN_UNREACHABLE.
4570 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
4571 * ipa.c (walk_polymorphic_call_targets): New function.
4572 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
4573 functions; use the new timevar.
4574 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
4575 was removed from the program.
4576 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
4577 not consider it in the walk when its vtable is dead.
4578 (possible_polymorphic_call_targets_1): Pass anonymous flag to
4579 record_binfo.
4580 (devirt_variable_node_removal_hook): New function.
4581 (possible_polymorphic_call_targets): Also register
4582 devirt_variable_node_removal_hook.
4583 (ipa_devirt): Do not do non-speculative devirtualization.
4584 (gate_ipa_devirt): One execute if devirtualizing speculatively.
4585
26e5b0fd
JH
45862013-09-08 Jan Hubicka <jh@suse.cz>
4587
4588 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
4589 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
4590 varpool_remove_variable_insertion_hook): Declare.
4591 * varpool.c (varpool_node_hook_list): New structure.
4592 (first_varpool_node_removal_hook,
4593 first_varpool_variable_insertion_hook): New variables.
4594 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
4595 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
4596 varpool_remove_variable_insertion_hook,
4597 varpool_call_variable_insertion_hooks): New functions.
4598 (varpool_remove_node): Use it.
4599
97f1f314 46002013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 4601
97f1f314
PC
4602 PR c++/54941
4603 * diagnostic.c (diagnostic_build_prefix): When s.file is
4604 "<built-in>" don't output line and column numbers.
6df2ca09 4605
bcb650cb
JH
46062013-09-06 Jan Hubicka <jh@suse.cz>
4607
4608 * cgraphunit.c (expand_thunk): Get body before touching arguments.
4609 * lto-streamer-out.c: Stream thunks, too.
4610 * lto-streamer-in.c (input_function): Pop cfun here
4611 (lto_read_body): Instead of here.
4612
87f3fea8
CT
46132013-09-06 Caroline Tice <cmtice@google.com>
4614
4615 * doc/install.texi: Add documentation for the --enable-vtable-verify
4616 and the --disable-libvtv configure options.
4617
5e8d9b45
JL
46182013-09-06 Jeff Law <law@redhat.com>
4619
4620 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4621 edge implied equivalences into successor phis.
4622
3a001aff
JR
46232013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
4624
4625 * resource.c (mark_referenced_resources): Handle COND_EXEC.
4626
46272013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
4628
4629 * resource.c (mark_target_live_regs): Compute resources taking
4630 into account if a call is predicated or not.
4631
2c641f8b
EB
46322013-09-06 Eric Botcazou <ebotcazou@adacore.com>
4633
4634 * toplev.c (output_stack_usage): Be prepared for suffixes created by
4635 the compiler in the function names.
4636
a81b0a3d
JH
46372013-09-06 Jan Hubicka <jh@suse.cz>
4638
4639 PR middle-end/58094
4640 * ipa-inline.c (has_caller_p): New function.
4641 (want_inline_function_to_all_callers_p): Use it.
4642 (sum_callers, inline_to_all_callers): Break out from ...
4643 (ipa_inline): ... here.
4644
68e4ca7e
JH
46452013-09-06 Jan Hubicka <jh@suse.cz>
4646
2c641f8b
EB
4647 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
4648 only when AVX is enabled.
68e4ca7e 4649
3c73e2fe
JG
46502013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4651
4652 * config/aarch64/aarch64.md
4653 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
4654 is fpsimd_<load/store>2.
4655 (load_pair<mode>): Likewise.
4656 (store_pair<mode>): Likewise.
4657
8c48eecd
JG
46582013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4659
4660 * config/arm/types.md (type): Add "mrs" type.
4661 * config/aarch64/aarch64.md
4662 (aarch64_load_tp_hard): Make type "mrs".
4663 * config/arm/arm.md
4664 (load_tp_hard): Make type "mrs".
4665 * config/arm/cortex-a15.md: Update with new attributes.
4666 * config/arm/cortex-a5.md: Update with new attributes.
4667 * config/arm/cortex-a53.md: Update with new attributes.
4668 * config/arm/cortex-a7.md: Update with new attributes.
4669 * config/arm/cortex-a8.md: Update with new attributes.
4670 * config/arm/cortex-a9.md: Update with new attributes.
4671 * config/arm/cortex-m4.md: Update with new attributes.
4672 * config/arm/cortex-r4.md: Update with new attributes.
4673 * config/arm/fa526.md: Update with new attributes.
4674 * config/arm/fa606te.md: Update with new attributes.
4675 * config/arm/fa626te.md: Update with new attributes.
4676 * config/arm/fa726te.md: Update with new attributes.
4677
9ea187a5
JG
46782013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4679
4680 * config/aarch64/aarch64.md
4681 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
4682 (*movtf_aarch64): Likewise.
4683 * config/arm/arm.md
4684 (thumb1_movdi_insn): Use "multiple" for type where more than one
4685 instruction is used for a move.
4686 (*arm32_movhf): Likewise.
4687 (*thumb_movdf_insn): Likewise.
4688
292b89b3
JG
46892013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4690
4691 * config/arm/types.md (type): Rename fcpys to fmov.
4692 * config/arm/vfp.md
4693 (*arm_movsi_vfp): Rename type fcpys as fmov.
4694 (*thumb2_movsi_vfp): Likewise
4695 (*movhf_vfp_neon): Likewise
4696 (*movhf_vfp): Likewise
4697 (*movsf_vfp): Likewise
4698 (*thumb2_movsf_vfp): Likewise
4699 (*movsfcc_vfp): Likewise
4700 (*thumb2_movsfcc_vfp): Likewise
4701 * config/aarch64/aarch64-simd.md
4702 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
4703 * config/aarch64/aarch64.md
4704 (*movsi_aarch64): Replace type mov_reg with fmovs.
4705 (*movdi_aarch64): Likewise
4706 (*movsf_aarch64): Likewise
4707 (*movdf_aarch64): Likewise
4708 * config/arm/arm.c
4709 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
4710 * config/arm/iwmmxt.md
4711 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
4712 * config/arm/arm1020e.md: Update with new attributes.
4713 * config/arm/cortex-a15-neon.md: Update with new attributes.
4714 * config/arm/cortex-a5.md: Update with new attributes.
4715 * config/arm/cortex-a53.md: Update with new attributes.
4716 * config/arm/cortex-a7.md: Update with new attributes.
4717 * config/arm/cortex-a8-neon.md: Update with new attributes.
4718 * config/arm/cortex-a9.md: Update with new attributes.
4719 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4720 * config/arm/cortex-r4f.md: Update with new attributes.
4721 * config/arm/marvell-pj4.md: Update with new attributes.
4722 * config/arm/vfp11.md: Update with new attributes.
4723
6a24a83e
JG
47242013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4725
4726 * config/aarch64/aarch64.md
4727 (*madd<mode>): Fix type attribute.
4728 (*maddsi_uxtw): Likewise.
4729 (*msub<mode>): Likewise.
4730 (*msubsi_uxtw): Likewise.
4731 (<su_optab>maddsidi4): Likewise.
4732 (<su_optab>msubsidi4): Likewise.
4733
b86923f0
JG
47342013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4735
4736 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
4737 * config/arm/arm.md (core_cycles): Remove fdiv.
4738 * config/arm/vfp.md:
4739 (*sqrtsf2_vfp): Update for attribute changes.
4740 (*sqrtdf2_vfp): Likewise.
4741 * config/aarch64/aarch64.md:
4742 (sqrt<mode>2): Update for attribute changes.
4743 * config/arm/arm1020e.md: Update with new attributes.
4744 * config/arm/cortex-a15-neon.md: Update with new attributes.
4745 * config/arm/cortex-a5.md: Update with new attributes.
4746 * config/arm/cortex-a53.md: Update with new attributes.
4747 * config/arm/cortex-a7.md: Update with new attributes.
4748 * config/arm/cortex-a8-neon.md: Update with new attributes.
4749 * config/arm/cortex-a9.md: Update with new attributes.
4750 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4751 * config/arm/cortex-r4f.md: Update with new attributes.
4752 * config/arm/marvell-pj4.md: Update with new attributes.
4753 * config/arm/vfp11.md: Update with new attributes.
4754
7b49c9e1
JG
47552013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4756
4757 * config/arm/types.md
4758 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
4759 * config/aarch64/aarch64.md
4760 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
4761 new attributes.
4762 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
4763 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
4764 (float<GPI:mode><GPF:mode>2): Likewise.
4765 * config/arm/vfp.md
4766 (*truncsisf2_vfp): Update with new attributes.
4767 (*truncsidf2_vfp): Likewise.
4768 (fixuns_truncsfsi2): Likewise.
4769 (fixuns_truncdfsi2): Likewise.
4770 (*floatsisf2_vfp): Likewise.
4771 (*floatsidf2_vfp): Likewise.
4772 (floatunssisf2): Likewise.
4773 (floatunssidf2): Likewise.
4774 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
4775 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
4776 * config/arm/arm1020e.md: Update with new attributes.
4777 * config/arm/cortex-a15-neon.md: Update with new attributes.
4778 * config/arm/cortex-a5.md: Update with new attributes.
4779 * config/arm/cortex-a53.md: Update with new attributes.
4780 * config/arm/cortex-a7.md: Update with new attributes.
4781 * config/arm/cortex-a8-neon.md: Update with new attributes.
4782 * config/arm/cortex-a9.md: Update with new attributes.
4783 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4784 * config/arm/cortex-r4f.md: Update with new attributes.
4785 * config/arm/marvell-pj4.md: Update with new attributes.
4786 * config/arm/vfp11.md: Update with new attributes.
4787
e7df8af8
JG
47882013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4789
4790 * config/aarch64/arm_neon.h
4791 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
4792 (vqtbx<1,2,3,4><q>_s8): Likewise.
4793
594726e4
JG
47942013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4795
f43245d1
UB
4796 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
4797 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
4798 (add<mode>3): Add type attribute.
4799 (add<mode>3): Likewise.
4800 (usadd<mode>3): Likewise.
4801 (ssadd<mode>3): Likewise.
4802 (sub<mode>3): Likewise.
4803 (sub<mode>3): Likewise.
4804 (ussub<mode>3): Likewise.
4805 (sssub<mode>3): Likewise.
4806 (ssmulsa3): Likewise.
4807 (usmulusa3): Likewise.
4808 (arm_usatsihi): Likewise.
4809 * config/arm/vfp.md
4810 (*movdi_vfp): Add types for all instructions.
4811 (*movdi_vfp_cortexa8): Likewise.
4812 (*movhf_vfp_neon): Likewise.
4813 (*movhf_vfp): Likewise.
4814 (*movdf_vfp): Likewise.
4815 (*thumb2_movdf_vfp): Likewise.
4816 (*thumb2_movdfcc_vfp): Likewise.
4817 * config/arm/arm.md: Add type attribute to all insn patterns.
4818 (*thumb1_adddi3): Add type attribute.
4819 (*arm_adddi3): Likewise.
4820 (*adddi_sesidi_di): Likewise.
4821 (*adddi_zesidi_di): Likewise.
4822 (*thumb1_addsi3): Likewise.
4823 (addsi3_compare0): Likewise.
4824 (*addsi3_compare0_scratch): Likewise.
4825 (*compare_negsi_si): Likewise.
4826 (cmpsi2_addneg): Likewise.
4827 (*addsi3_carryin_<optab>): Likewise.
4828 (*addsi3_carryin_alt2_<optab>): Likewise.
4829 (*addsi3_carryin_clobercc_<optab>): Likewise.
4830 (*subsi3_carryin): Likewise.
4831 (*subsi3_carryin_const): Likewise.
4832 (*subsi3_carryin_compare): Likewise.
4833 (*subsi3_carryin_compare_const): Likewise.
4834 (*arm_subdi3): Likewise.
4835 (*thumb_subdi3): Likewise.
4836 (*subdi_di_zesidi): Likewise.
4837 (*subdi_di_sesidi): Likewise.
4838 (*subdi_zesidi_di): Likewise.
4839 (*subdi_sesidi_di): Likewise.
4840 (*subdi_zesidi_ze): Likewise.
4841 (thumb1_subsi3_insn): Likewise.
4842 (*arm_subsi3_insn): Likewise.
4843 (*anddi3_insn): Likewise.
4844 (*anddi_zesidi_di): Likewise.
4845 (*anddi_sesdi_di): Likewise.
4846 (*ne_zeroextracts): Likewise.
4847 (*ne_zeroextracts): Likewise.
4848 (*ite_ne_zeroextr): Likewise.
4849 (*ite_ne_zeroextr): Likewise.
4850 (*anddi_notdi_di): Likewise.
4851 (*anddi_notzesidi): Likewise.
4852 (*anddi_notsesidi): Likewise.
4853 (andsi_notsi_si): Likewise.
4854 (thumb1_bicsi3): Likewise.
4855 (*iordi3_insn): Likewise.
4856 (*iordi_zesidi_di): Likewise.
4857 (*iordi_sesidi_di): Likewise.
4858 (*thumb1_iorsi3_insn): Likewise.
4859 (*xordi3_insn): Likewise.
4860 (*xordi_zesidi_di): Likewise.
4861 (*xordi_sesidi_di): Likewise.
4862 (*arm_xorsi3): Likewise.
4863 (*andsi_iorsi3_no): Likewise.
4864 (*smax_0): Likewise.
4865 (*smax_m1): Likewise.
4866 (*arm_smax_insn): Likewise.
4867 (*smin_0): Likewise.
4868 (*arm_smin_insn): Likewise.
4869 (*arm_umaxsi3): Likewise.
4870 (*arm_uminsi3): Likewise.
4871 (*minmax_arithsi): Likewise.
4872 (*minmax_arithsi_): Likewise.
4873 (*satsi_<SAT:code>): Likewise.
4874 (arm_ashldi3_1bit): Likewise.
4875 (arm_ashrdi3_1bit): Likewise.
4876 (arm_lshrdi3_1bit): Likewise.
4877 (*arm_negdi2): Likewise.
4878 (*thumb1_negdi2): Likewise.
4879 (*arm_negsi2): Likewise.
4880 (*thumb1_negsi2): Likewise.
4881 (*negdi_extendsid): Likewise.
4882 (*negdi_zero_extend): Likewise.
4883 (*arm_abssi2): Likewise.
4884 (*thumb1_abssi2): Likewise.
4885 (*arm_neg_abssi2): Likewise.
4886 (*thumb1_neg_abss): Likewise.
4887 (one_cmpldi2): Likewise.
4888 (extend<mode>di2): Likewise.
4889 (*compareqi_eq0): Likewise.
4890 (*arm_extendhisi2addsi): Likewise.
4891 (*arm_movdi): Likewise.
4892 (*thumb1_movdi_insn): Likewise.
4893 (*arm_movt): Likewise.
4894 (*thumb1_movsi_insn): Likewise.
4895 (pic_add_dot_plus_four): Likewise.
4896 (pic_add_dot_plus_eight): Likewise.
4897 (tls_load_dot_plus_eight): Likewise.
4898 (*thumb1_movhi_insn): Likewise.
4899 (*thumb1_movsf_insn): Likewise.
4900 (*movdf_soft_insn): Likewise.
4901 (*thumb_movdf_insn): Likewise.
4902 (cbranchsi4_insn): Likewise.
4903 (cbranchsi4_scratch): Likewise.
4904 (*negated_cbranchsi4): Likewise.
4905 (*tbit_cbranch): Likewise.
4906 (*tlobits_cbranch): Likewise.
4907 (*tstsi3_cbranch): Likewise.
4908 (*cbranchne_decr1): Likewise.
4909 (*addsi3_cbranch): Likewise.
4910 (*addsi3_cbranch_scratch): Likewise.
4911 (*arm_cmpdi_insn): Likewise.
4912 (*arm_cmpdi_unsig): Likewise.
4913 (*arm_cmpdi_zero): Likewise.
4914 (*thumb_cmpdi_zero): Likewise.
4915 (*deleted_compare): Likewise.
4916 (*mov_scc): Likewise.
4917 (*mov_negscc): Likewise.
4918 (*mov_notscc): Likewise.
4919 (*cstoresi_eq0_thumb1_insn): Likewise.
4920 (cstoresi_nltu_thumb1): Likewise.
4921 (cstoresi_ltu_thu): Likewise.
4922 (thumb1_addsi3_addgeu): Likewise.
4923 (*arm_jump): Likewise.
4924 (*thumb_jump): Likewise.
4925 (*check_arch2): Likewise.
4926 (arm_casesi_internal): Likewise.
4927 (thumb1_casesi_dispatch): Likewise.
4928 (*arm_indirect_jump): Likewise.
4929 (*thumb1_indirect_jump): Likewise.
4930 (nop): Likewise.
4931 (*and_scc): Likewise.
4932 (*ior_scc): Likewise.
4933 (*compare_scc): Likewise.
4934 (*cond_move): Likewise.
4935 (*cond_arith): Likewise.
4936 (*cond_sub): Likewise.
4937 (*cmp_ite0): Likewise.
4938 (*cmp_ite1): Likewise.
4939 (*cmp_and): Likewise.
4940 (*cmp_ior): Likewise.
4941 (*ior_scc_scc): Likewise.
4942 (*ior_scc_scc_cmp): Likewise.
4943 (*and_scc_scc): Likewise.
4944 (*and_scc_scc_cmp): Likewise.
4945 (*and_scc_scc_nod): Likewise.
4946 (*negscc): Likewise.
4947 (movcond_addsi): Likewise.
4948 (movcond): Likewise.
4949 (*ifcompare_plus_move): Likewise.
4950 (*if_plus_move): Likewise.
4951 (*ifcompare_move_plus): Likewise.
4952 (*if_move_plus): Likewise.
4953 (*ifcompare_arith_arith): Likewise.
4954 (*if_arith_arith): Likewise.
4955 (*ifcompare_arith_move): Likewise.
4956 (*if_arith_move): Likewise.
4957 (*ifcompare_move_arith): Likewise.
4958 (*if_move_arith): Likewise.
4959 (*ifcompare_move_not): Likewise.
4960 (*if_move_not): Likewise.
4961 (*ifcompare_not_move): Likewise.
4962 (*if_not_move): Likewise.
4963 (*ifcompare_shift_move): Likewise.
4964 (*if_shift_move): Likewise.
4965 (*ifcompare_move_shift): Likewise.
4966 (*if_move_shift): Likewise.
4967 (*ifcompare_shift_shift): Likewise.
4968 (*ifcompare_not_arith): Likewise.
4969 (*ifcompare_arith_not): Likewise.
4970 (*if_arith_not): Likewise.
4971 (*ifcompare_neg_move): Likewise.
4972 (*if_neg_move): Likewise.
4973 (*ifcompare_move_neg): Likewise.
4974 (*if_move_neg): Likewise.
4975 (prologue_thumb1_interwork): Likewise.
4976 (*cond_move_not): Likewise.
4977 (*sign_extract_onebit): Likewise.
4978 (*not_signextract_onebit): Likewise.
4979 (stack_tie): Likewise.
4980 (align_4): Likewise.
4981 (align_8): Likewise.
4982 (consttable_end): Likewise.
4983 (consttable_1): Likewise.
4984 (consttable_2): Likewise.
4985 (consttable_4): Likewise.
4986 (consttable_8): Likewise.
4987 (consttable_16): Likewise.
4988 (*thumb1_tablejump): Likewise.
4989 (prefetch): Likewise.
4990 (force_register_use): Likewise.
4991 (thumb_eh_return): Likewise.
4992 (load_tp_hard): Likewise.
4993 (load_tp_soft): Likewise.
4994 (tlscall): Likewise.
4995 (*arm_movtas_ze): Likewise.
4996 (*arm_rev): Likewise.
4997 (*arm_revsh): Likewise.
4998 (*arm_rev16): Likewise.
4999 * config/arm/thumb2.md
5000 (*thumb2_smaxsi3): Likewise.
5001 (*thumb2_sminsi3): Likewise.
5002 (*thumb32_umaxsi3): Likewise.
5003 (*thumb2_uminsi3): Likewise.
5004 (*thumb2_negdi2): Likewise.
5005 (*thumb2_abssi2): Likewise.
5006 (*thumb2_neg_abss): Likewise.
5007 (*thumb2_movsi_insn): Likewise.
5008 (tls_load_dot_plus_four): Likewise.
5009 (*thumb2_movhi_insn): Likewise.
5010 (*thumb2_mov_scc): Likewise.
5011 (*thumb2_mov_negs): Likewise.
5012 (*thumb2_mov_negs): Likewise.
5013 (*thumb2_mov_nots): Likewise.
5014 (*thumb2_mov_nots): Likewise.
5015 (*thumb2_movsicc_): Likewise.
5016 (*thumb2_movsfcc_soft_insn): Likewise.
5017 (*thumb2_indirect_jump): Likewise.
5018 (*thumb2_and_scc): Likewise.
5019 (*thumb2_ior_scc): Likewise.
5020 (*thumb2_ior_scc_strict_it): Likewise.
5021 (*thumb2_cond_move): Likewise.
5022 (*thumb2_cond_arith): Likewise.
5023 (*thumb2_cond_ari): Likewise.
5024 (*thumb2_cond_sub): Likewise.
5025 (*thumb2_negscc): Likewise.
5026 (*thumb2_movcond): Likewise.
5027 (thumb2_casesi_internal): Likewise.
5028 (thumb2_casesi_internal_pic): Likewise.
5029 (*thumb2_alusi3_short): Likewise.
5030 (*thumb2_mov<mode>_shortim): Likewise.
5031 (*thumb2_addsi_short): Likewise.
5032 (*thumb2_subsi_short): Likewise.
5033 (thumb2_addsi3_compare0): Likewise.
5034 (*thumb2_cbz): Likewise.
5035 (*thumb2_cbnz): Likewise.
5036 (*thumb2_one_cmplsi2_short): Likewise.
5037 (*thumb2_negsi2_short): Likewise.
5038 (*orsi_notsi_si): Likewise.
5039 * config/arm/arm1020e.md: Update with new attributes.
5040 * config/arm/arm1026ejs.md: Update with new attributes.
5041 * config/arm/arm1136jfs.md: Update with new attributes.
5042 * config/arm/arm926ejs.md: Update with new attributes.
5043 * config/arm/cortex-a15.md: Update with new attributes.
5044 * config/arm/cortex-a5.md: Update with new attributes.
5045 * config/arm/cortex-a53.md: Update with new attributes.
5046 * config/arm/cortex-a7.md: Update with new attributes.
5047 * config/arm/cortex-a8.md: Update with new attributes.
5048 * config/arm/cortex-a9.md: Update with new attributes.
5049 * config/arm/cortex-m4.md: Update with new attributes.
5050 * config/arm/cortex-r4.md: Update with new attributes.
5051 * config/arm/fa526.md: Update with new attributes.
5052 * config/arm/fa606te.md: Update with new attributes.
5053 * config/arm/fa626te.md: Update with new attributes.
5054 * config/arm/fa726te.md: Update with new attributes.
5055
1c83b673
JG
50562013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5057
5058 * config/aarch64/aarch64-simd.md
5059 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
5060 <vwx> iterator to ensure correct register choice.
5061 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
5062 (aarch64_sqdmull_n<mode>): Likewise.
5063 (aarch64_sqdmull2_n<mode>_internal): Likewise.
5064 * config/aarch64/arm_neon.h
5065 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
5066 (vml<as><q>_n_<su>16): Likewise.
5067 (vml<as>l_high_lane<q>_<su>16): Likewise.
5068 (vml<as>l_high_n_<su>16): Likewise.
5069 (vml<as>l_lane<q>_<su>16): Likewise.
5070 (vml<as>l_n_<su>16): Likewise.
5071 (vmul<q>_lane<q>_<su>16): Likewise.
5072 (vmul<q>_n_<su>16): Likewise.
5073 (vmull_lane<q>_<su>16): Likewise.
5074 (vmull_n_<su>16): Likewise.
5075 (vmull_high_lane<q>_<su>16): Likewise.
5076 (vmull_high_n_<su>16): Likewise.
5077 (vqrdmulh<q>_n_s16): Likewise.
5078
bb1ae543
TB
50792013-09-06 Tejas Belagod <tejas.belagod@arm.com>
5080
5081 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
5082 have the correct lane parameter.
5083
f23c0742
RB
50842013-09-06 Richard Biener <rguenther@suse.de>
5085
5086 * cfganal.c (control_dependences::~control_dependences):
5087 Properly free all of the vector.
5088
c1d49770
KY
50892013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
5090
5091 PR target/58269
5092 * config/i386/i386.c (ix86_conditional_register_usage):
5093 Proper initialize extended SSE registers.
5094
6da47f52
JH
50952013-09-06 Jan Hubicka <jh@suse.cz>
5096
5097 PR tree-optimization/58311
5098 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
5099
51002013-09-06 Jan Hubicka <jh@suse.cz>
5101
5102 * Makefile.in (tree-sra.o): Update dependencies.
5103 * tree-sra.c: Include ipa-utils.h
5104 (scan_function): Use recursive_call_p.
5105 (has_caller_p): New function.
5106 (cgraph_for_node_and_aliases): Count also callers of aliases.
5107
fc11f321
JH
51082013-09-06 Jan Hubicka <jh@suse.cz>
5109
5110 PR middle-end/58094
5111 * cgraph.h (symtab_semantically_equivalent_p): Declare.
5112 * tree-tailcall.c: Include ipa-utils.h.
5113 (find_tail_calls): Use it.
5114 * ipa-pure-const.c (check_call): Likewise.
5115 * ipa-utils.c (recursive_call_p): New function.
5116 * ipa-utils.h (recursive_call_p): Dclare.
5117 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
5118 (symtab_semantically_equivalent_p): New function.
5119 * Makefile.in (tree-tailcall.o): Update dependencies.
5120
9a6af450
EB
51212013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5122
5123 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
5124 non-inlinable part.
5125
35f32ad4
RB
51262013-09-06 Richard Biener <rguenther@suse.de>
5127
5128 * lto-streamer.h (lto_global_var_decls): Remove.
5129 * Makefile.in (OBJS): Remove lto-symtab.o.
5130 (lto-symtab.o): Remove.
5131 (GTFILES): Remove lto-symtab.c
5132 * lto-symtab.c: Move to lto/
5133
d12a76f3
AK
51342013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5135
5136 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
5137 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
5138 (UNSPEC_FPINT_RINT): New constant definitions.
5139 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
5140 definition with 2 attributes.
5141 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
5142 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
5143 definitions.
5144
51452013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5146
f43245d1 5147 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
5148 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
5149 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
5150 attribute to "z196_alone".
5151 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
5152 "zEC12_simple".
5153
c8e9d8c3
RB
51542013-09-06 Richard Biener <rguenther@suse.de>
5155
5156 * basic-block.h (class control_dependences): New.
5157 * tree-ssa-dce.c (control_dependence_map): Remove.
5158 (cd): New global.
5159 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
5160 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
5161 find_pdom, find_control_dependence, find_all_control_dependences):
5162 Move to cfganal.c.
f43245d1
UB
5163 (mark_control_dependent_edges_necessary,
5164 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
5165 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
5166 * cfganal.c (set_control_dependence_map_bit,
5167 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
5168 find_all_control_dependences): Move from tree-ssa-dce.c and
5169 implement as methods of control_dependences class.
5170 (control_dependences::control_dependences): New.
5171 (control_dependences::~control_dependences): Likewise.
5172 (control_dependences::get_edges_dependent_on): Likewise.
5173 (control_dependences::get_edge): Likewise.
5174
7d2ba471
JH
51752013-09-04 Jan Hubicka <jh@suse.cz>
5176
5177 * tree.c (types_same_for_odr): Drop overactive check.
5178 * ipa-devirt.c (hash_type_name): Likewise.
5179
e18412fc
JH
51802013-09-04 Jan Hubicka <jh@suse.cz>
5181
5182 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
5183 (analyze_functions): ... here.
5184
d352b245
JH
51852013-09-04 Jan Hubicka <jh@suse.cz>
5186
5187 PR middle-end/58201
5188 * cgraphunit.c (analyze_functions): Clear AUX fields
5189 after processing; initialize assembler name has.
5190
770da076
JL
51912013-09-05 Jeff Law <law@redhat.com>
5192
5193 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
5194 from thread_around_empty_block. Record threading path into PATH.
5195 Recurse if threading through the initial block is successful.
5196 (thread_across_edge): Corresponding changes to slightly simplify.
5197
fe6f68e2
JG
51982013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5199
5200 * config/aarch64/aarch64.md
5201 (type): Remove frecpe, frecps, frecpx.
5202 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
5203 fix to be a TARGET_SIMD instruction.
5204 (aarch64_frecps): Remove.
5205 * config/aarch64/aarch64-simd.md
5206 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
5207 (aarch64_frecps<mode>): Handle all float/vector of float modes.
5208
6e4150e1
JG
52092013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5210 Sofiane Naci <sofiane.naci@arm.com>
5211
f43245d1 5212 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 5213 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
5214 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
5215 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
5216 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
5217 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
5218 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
5219 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
5220 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 5221 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 5222 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
5223 shift* types.
5224 * config/arm/arm-fixed.md: Update for attribute changes
5225 all occurrences of arlo_* types.
5226 * config/arm/thumb2.md: Update for attribute changes all occurrences
5227 of arlo_* types.
5228 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
5229 (cortexa7_older_only): Likewise.
5230 (cortexa7_younger): Likewise.
5231 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
5232 (1020alu_shift_op): Likewise.
5233 (1020alu_shift_reg_op): Likewise.
5234 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
5235 (alu_shift_op): Likewise.
5236 (alu_shift_reg_op): Likewise.
f43245d1 5237 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
5238 (11_alu_shift_op): Likewise.
5239 (11_alu_shift_reg_op): Likewise.
5240 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
5241 (9_alu_shift_reg_op): Likewise.
5242 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
5243 attribute changes.
5244 (cortex_a15_alu_shift): Likewise.
5245 (cortex_a15_alu_shift_reg): Likewise.
5246 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
5247 attribute changes.
5248 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
5249 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
5250 attribute changes.
6e4150e1 5251 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
5252 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
5253 attribute changes.
6e4150e1
JG
5254 (cortex_a7_alu_reg): Likewise.
5255 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
5256 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
5257 attribute changes.
6e4150e1
JG
5258 (cortex_a8_alu_shift): Likewise.
5259 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 5260 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 5261 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
5262 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
5263 attribute changes.
6e4150e1
JG
5264 * config/arm/cortex-r4.md
5265 (cortex_r4_alu): Update for attribute changes.
5266 (cortex_r4_mov): Likewise.
5267 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 5268 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 5269 (526_alu_shift_op): Likewise.
f43245d1
UB
5270 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
5271 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 5272 (626te_alu_shift_op): Likewise.
f43245d1 5273 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
5274 (726te_alu_shift_op): Likewise.
5275 (726te_alu_shift_reg_op): Likewise.
5276 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
5277 (mp626_alu_shift_op): Likewise.
5278 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
5279 (pj4_alu_conds): Likewise.
5280 (pj4_shift): Likewise.
5281 (pj4_shift_conds): Likewise.
5282 (pj4_alu_shift): Likewise.
5283 (pj4_alu_shift_conds): Likewise.
5284 * config/aarch64/aarch64.md: Update for attribute change
5285 all occurrences of arlo_* and shift* types.
5286
e6523306
MS
52872013-09-05 Mike Stump <mikestump@comcast.net>
5288
5289 * tree.h: Move documentation for tree_function_decl to tree-core.h
5290 with the declaration.
5291
80a18161
PB
52922013-09-05 Peter Bergner <bergner@vnet.ibm.com>
5293
5294 PR target/58139
5295 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
5296 looking for widest mode.
5297
6994430a
EB
52982013-09-05 Eric Botcazou <ebotcazou@adacore.com>
5299
5300 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
5301
e67f39f7
RB
53022013-09-05 Richard Biener <rguenther@suse.de>
5303
5304 PR tree-optimization/58137
5305 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5306 Do not create vectors of pointers.
5307 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
5308 types for the components of the vector initializer.
5309 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
5310 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
5311
568cda29
MJ
53122013-09-05 Martin Jambor <mjambor@suse.cz>
5313
5314 * ipa-prop.c (remove_described_reference): Accept missing references,
5315 return false if that hppens, otherwise return true.
5316 (cgraph_node_for_jfunc): New function.
5317 (try_decrement_rdesc_refcount): Likewise.
5318 (try_make_edge_direct_simple_call): Use them.
5319 (ipa_edge_removal_hook): Remove references from rdescs.
5320 (ipa_edge_duplication_hook): Clone rdescs and their references
5321 when the new edge has the same caller as the old one.
5322 * cgraph.c (cgraph_resolve_speculation): Remove speculative
5323 reference before removing any edges.
5324
5a200acb
RE
53252013-09-05 Richard Earnshaw <rearnsha@arm.com>
5326
5327 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
5328 initial store.
5329 * thumb2.md (thumb2_storewb_parisi): New pattern.
5330
5922847b
YZ
53312013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
5332
5333 * config/aarch64/aarch64-option-extensions.def: Add
5334 AARCH64_OPT_EXTENSION of 'crc'.
5335 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
5336 (AARCH64_ISA_CRC): Ditto.
5337 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
5338 description of the CRC extension.
5339
996746aa
AI
53402013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
5341
5342 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
5343 * config/rs6000/linux.h: Ditto.
5344 * alpha/linux.h: Ditto.
5345 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
5346 no_c99_libc_has_function.
5347 * config/c6x/uclinux-elf.h: Ditto.
5348 * config/lm32/uclinux-elf.h: Ditto.
5349 * config/m68k/uclinux.h: Ditto.
5350 * config/moxie/uclinux.h: Ditto.
5351 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
5352 (crisv32-*-linux*, cris-*-linux*): Ditto.
5353 * config/bfin/bfin.c: Include "tm_p.h".
5354
c370d99f
RB
53552013-09-05 Richard Biener <rguenther@suse.de>
5356
5357 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
5358 check for a definition without a basic-block.
5359
003bb7f3
JG
53602013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5361 Sofiane Naci <sofiane.naci@arm.com>
5362
5363 * config/aarch64/aarch64.md
5364 (*movti_aarch64): Rename r_2_f and f_2_r.
5365 (*movsf_aarch64): Likewise.
5366 (*movdf_aarch64): Likewise.
5367 (*movtf_aarch64): Likewise.
5368 (aarch64_movdi_<mode>low): Likewise.
5369 (aarch64_movdi_<mode>high): Likewise.
5370 (aarch64_mov<mode>high_di): Likewise.
5371 (aarch64_mov<mode>low_di): Likewise.
5372 (aarch64_movtilow_tilow): Likewise.
5373 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
5374 values to config/arm/types.md
5375 (attribute "conds"): Update for attribute change.
5376 (anddi3_insn): Likewise.
5377 (iordi3_insn): Likewise.
5378 (xordi3_insn): Likewise.
5379 (one_cmpldi2): Likewise.
5380 * config/arm/types.md (type): Add Neon types.
5381 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
5382 use "type" attribute.
5383 (movmisalign<mode>_neon_store): Likewise.
5384 (movmisalign<mode>_neon_load): Likewise.
5385 (vec_set<mode>_internal): Likewise.
5386 (vec_setv2di_internal): Likewise.
5387 (vec_extract<mode>): Likewise.
5388 (vec_extractv2di): Likewise.
5389 (add<mode>3_neon): Likewise.
5390 (adddi3_neon): Likewise.
5391 (sub<mode>3_neon): Likewise.
5392 (subdi3_neon): Likewise.
5393 (mul<mode>3_neon): Likewise.
5394 (mul<mode>3add<mode>_neon): Likewise.
5395 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
5396 (fma<VCVTF:mode>4)): Likewise.
5397 (fma<VCVTF:mode>4_intrinsic): Likewise.
5398 (fmsub<VCVTF:mode>4)): Likewise.
5399 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
5400 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
5401 (ior<mode>3): Likewise.
5402 (and<mode>3): Likewise.
5403 (anddi3_neon): Likewise.
5404 (orn<mode>3_neon): Likewise.
5405 (orndi3_neon): Likewise.
5406 (bic<mode>3_neon): Likewise.
5407 (bicdi3_neon): Likewise.
5408 (xor<mode>3): Likewise.
5409 (one_cmpl<mode>2): Likewise.
5410 (abs<mode>2): Likewise.
5411 (neg<mode>2): Likewise.
5412 (umin<mode>3_neon): Likewise.
5413 (umax<mode>3_neon): Likewise.
5414 (smin<mode>3_neon): Likewise.
5415 (smax<mode>3_neon): Likewise.
5416 (vashl<mode>3): Likewise.
5417 (vashr<mode>3_imm): Likewise.
5418 (vlshr<mode>3_imm): Likewise.
5419 (ashl<mode>3_signed): Likewise.
5420 (ashl<mode>3_unsigned): Likewise.
5421 (neon_load_count): Likewise.
5422 (ashldi3_neon_noclobber): Likewise.
5423 (signed_shift_di3_neon): Likewise.
5424 (unsigned_shift_di3_neon): Likewise.
5425 (ashrdi3_neon_imm_noclobber): Likewise.
5426 (lshrdi3_neon_imm_noclobber): Likewise.
5427 (widen_ssum<mode>3): Likewise.
5428 (widen_usum<mode>3): Likewise.
5429 (quad_halves_<code>v4si): Likewise.
5430 (quad_halves_<code>v4sf): Likewise.
5431 (quad_halves_<code>v8hi): Likewise.
5432 (quad_halves_<code>v16qi): Likewise.
5433 (reduc_splus_v2di): Likewise.
5434 (neon_vpadd_internal<mode>): Likewise.
5435 (neon_vpsmin<mode>): Likewise.
5436 (neon_vpsmax<mode>): Likewise.
5437 (neon_vpumin<mode>): Likewise.
5438 (neon_vpumax<mode>): Likewise.
5439 (ss_add<mode>_neon): Likewise.
5440 (us_add<mode>_neon): Likewise.
5441 (ss_sub<mode>_neon): Likewise.
5442 (us_sub<mode>_neon): Likewise.
5443 (neon_vadd<mode>_unspec): Likewise.
5444 (neon_vaddl<mode>): Likewise.
5445 (neon_vaddw<mode>): Likewise.
5446 (neon_vhadd<mode>): Likewise.
5447 (neon_vqadd<mode>): Likewise.
5448 (neon_vaddhn<mode>): Likewise.
5449 (neon_vmul<mode>): Likewise.
5450 (neon_vmla<mode>): Likewise.
5451 (neon_vmlal<mode>): Likewise.
5452 (neon_vmls<mode>): Likewise.
5453 (neon_vmlsl<mode>): Likewise.
5454 (neon_vqdmulh<mode>): Likewise.
5455 (neon_vqdmlal<mode>): Likewise.
5456 (neon_vqdmlsl<mode>): Likewise.
5457 (neon_vmull<mode>): Likewise.
5458 (neon_vqdmull<mode>): Likewise.
5459 (neon_vsub<mode>_unspec): Likewise.
5460 (neon_vsubl<mode>): Likewise.
5461 (neon_vsubw<mode>): Likewise.
5462 (neon_vqsub<mode>): Likewise.
5463 (neon_vhsub<mode>): Likewise.
5464 (neon_vsubhn<mode>): Likewise.
5465 (neon_vceq<mode>): Likewise.
5466 (neon_vcge<mode>): Likewise.
5467 (neon_vcgeu<mode>): Likewise.
5468 (neon_vcgt<mode>): Likewise.
5469 (neon_vcgtu<mode>): Likewise.
5470 (neon_vcle<mode>): Likewise.
5471 (neon_vclt<mode>): Likewise.
5472 (neon_vcage<mode>): Likewise.
5473 (neon_vcagt<mode>): Likewise.
5474 (neon_vtst<mode>): Likewise.
5475 (neon_vabd<mode>): Likewise.
5476 (neon_vabdl<mode>): Likewise.
5477 (neon_vaba<mode>): Likewise.
5478 (neon_vabal<mode>): Likewise.
5479 (neon_vmax<mode>): Likewise.
5480 (neon_vmin<mode>): Likewise.
5481 (neon_vpaddl<mode>): Likewise.
5482 (neon_vpadal<mode>): Likewise.
5483 (neon_vpmax<mode>): Likewise.
5484 (neon_vpmin<mode>): Likewise.
5485 (neon_vrecps<mode>): Likewise.
5486 (neon_vrsqrts<mode>): Likewise.
5487 (neon_vqabs<mode>): Likewise.
5488 (neon_vqneg<mode>): Likewise.
5489 (neon_vcls<mode>): Likewise.
5490 (clz<mode>2): Likewise.
5491 (popcount<mode>2): Likewise.
5492 (neon_vrecpe): Likewise.
5493 (neon_vrsqrte): Likewise.
5494 (neon_vget_lane<mode>_sext_internal): Likewise.
5495 (neon_vget_lane<mode>_zext_internal): Likewise.
5496 (neon_vdup_n<mode>): Likewise.
5497 (neon_vdup_nv2di): Likewise.
5498 (neon_vdpu_lane<mode>_internal): Likewise.
5499 (neon_vswp<mode>): Likewise.
5500 (float<mode><V_cvtto>2): Likewise.
5501 (floatuns<mode><V_cvtto>2): Likewise.
5502 (fix_trunc<mode><V_cvtto>)2): Likewise
5503 (fixuns_trunc<mode><V_cvtto)2): Likewise.
5504 (neon_vcvt<mode>): Likewise.
5505 (neon_vcvtv4sfv4hf): Likewise.
5506 (neon_vcvtv4hfv4sf): Likewise.
5507 (neon_vcvt_n<mode>): Likewise.
5508 (neon_vmovn<mode>): Likewise.
5509 (neon_vqmovn<mode>): Likewise.
5510 (neon_vqmovun<mode>): Likewise.
5511 (neon_vmovl<mode>): Likewise.
5512 (neon_vmul_lane<mode>): Likewise.
5513 (neon_vmull_lane<mode>): Likewise.
5514 (neon_vqdmull_lane<mode>): Likewise.
5515 (neon_vqdmulh_lane<mode>): Likewise.
5516 (neon_vmla_lane<mode>): Likewise.
5517 (neon_vmlal_lane<mode>): Likewise.
5518 (neon_vqdmlal_lane<mode>): Likewise.
5519 (neon_vmls_lane<mode>): Likewise.
5520 (neon_vmlsl_lane<mode>): Likewise.
5521 (neon_vqdmlsl_lane<mode>): Likewise.
5522 (neon_vext<mode>): Likewise.
5523 (neon_vrev64<mode>): Likewise.
5524 (neon_vrev32<mode>): Likewise.
5525 (neon_vrev16<mode>): Likewise.
5526 (neon_vbsl<mode>_internal): Likewise.
5527 (neon_vshl<mode>): Likewise.
5528 (neon_vqshl<mode>): Likewise.
5529 (neon_vshr_n<mode>): Likewise.
5530 (neon_vshrn_n<mode>): Likewise.
5531 (neon_vqshrn_n<mode>): Likewise.
5532 (neon_vqshrun_n<mode>): Likewise.
5533 (neon_vshl_n<mode>): Likewise.
5534 (neon_vqshl_n<mode>): Likewise.
5535 (neon_vqshlu_n<mode>): Likewise.
5536 (neon_vshll_n<mode>): Likewise.
5537 (neon_vsra_n<mode>): Likewise.
5538 (neon_vsri_n<mode>): Likewise.
5539 (neon_vsli_n<mode>): Likewise.
5540 (neon_vtbl1v8qi): Likewise.
5541 (neon_vtbl2v8qi): Likewise.
5542 (neon_vtbl3v8qi): Likewise.
5543 (neon_vtbl4v8qi): Likewise.
5544 (neon_vtbx1v8qi): Likewise.
5545 (neon_vtbx2v8qi): Likewise.
5546 (neon_vtbx3v8qi): Likewise.
5547 (neon_vtbx4v8qi): Likewise.
5548 (neon_vtrn<mode>_internal): Likewise.
5549 (neon_vzip<mode>_internal): Likewise.
5550 (neon_vuzp<mode>_internal): Likewise.
5551 (neon_vld1<mode>): Likewise.
5552 (neon_vld1_lane<mode>): Likewise.
5553 (neon_vld1_dup<mode>): Likewise.
5554 (neon_vld1_dupv2di): Likewise.
5555 (neon_vst1<mode>): Likewise.
5556 (neon_vst1_lane<mode>): Likewise.
5557 (neon_vld2<mode>): Likewise.
5558 (neon_vld2_lane<mode>): Likewise.
5559 (neon_vld2_dup<mode>): Likewise.
5560 (neon_vst2<mode>): Likewise.
5561 (neon_vst2_lane<mode>): Likewise.
5562 (neon_vld3<mode>): Likewise.
5563 (neon_vld3qa<mode>): Likewise.
5564 (neon_vld3qb<mode>): Likewise.
5565 (neon_vld3_lane<mode>): Likewise.
5566 (neon_vld3_dup<mode>): Likewise.
5567 (neon_vst3<mode>): Likewise.
5568 (neon_vst3qa<mode>): Likewise.
5569 (neon_vst3qb<mode>): Likewise.
5570 (neon_vst3_lane<mode>): Likewise.
5571 (neon_vld4<mode>): Likewise.
5572 (neon_vld4qa<mode>): Likewise.
5573 (neon_vld4qb<mode>): Likewise.
5574 (neon_vld4_lane<mode>): Likewise.
5575 (neon_vld4_dup<mode>): Likewise.
5576 (neon_vst4<mode>): Likewise.
5577 (neon_vst4qa<mode>): Likewise.
5578 (neon_vst4qb<mode>): Likewise.
5579 (neon_vst4_lane<mode>): Likewise.
5580 (neon_vec_unpack<US>_lo_<mode>): Likewise.
5581 (neon_vec_unpack<US>_hi_<mode>): Likewise.
5582 (neon_vec_<US>mult_lo_<mode>): Likewise.
5583 (neon_vec_<US>mult_hi_<mode>): Likewise.
5584 (neon_vec_<US>shiftl_<mode>): Likewise.
5585 (neon_unpack<US>_<mode>): Likewise.
5586 (neon_vec_<US>mult_<mode>): Likewise.
5587 (vec_pack_trunc_<mode>): Likewise.
5588 (neon_vec_pack_trunk_<mode>): Likewise.
5589 (neon_vabd<mode>_2): Likewise.
5590 (neon_vabd<mode>_3): Likewise.
5591 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
5592 (thumb2_movsi_vfp): Likewise.
5593 (movdi_vfp): Likewise.
5594 (movdi_vfp_cortexa8): Likewise.
5595 (movhf_vfp_neon): Likewise.
5596 (movhf_vfp): Likewiwse.
5597 (movsf_vfp): Likewiwse.
5598 (thumb2_movsf_vfp): Likewiwse.
5599 (movdf_vfp): Likewise.
5600 (thumb2_movdf_vfp): Likewise.
5601 (movsfcc_vfp): Likewise.
5602 (thumb2_movsfcc_vfp): Likewise.
5603 (movdfcc_vfp): Likewise.
5604 (thumb2_movdfcc_vfp): Likewise.
5605 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
5606 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
5607 (v10_v2c): Likewise.
5608 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
5609 attribute change.
5610 (cortex_a15_neon_int_2): Likewise.
5611 (cortex_a15_neon_int_3): Likewise.
5612 (cortex_a15_neon_int_4): Likewise.
5613 (cortex_a15_neon_int_5): Likewise.
5614 (cortex_a15_neon_vqneg_vqabs): Likewise.
5615 (cortex_a15_neon_vmov): Likewise.
5616 (cortex_a15_neon_vaba): Likewise.
5617 (cortex_a15_neon_vaba_qqq): Likewise.
5618 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5619 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
5620 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
5621 scalar_64_32_long_scalar): Likewise.
5622 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5623 (cortex_a15_neon_mla_qqq_8_16): Likewise.
5624 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5625 lotype_qdd_64_32_long): Likewise.
5626 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5627 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5628 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
5629 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5630 (cortex_a15_neon_shift_1): Likewise.
5631 (cortex_a15_neon_shift_2): Likewise.
5632 (cortex_a15_neon_shift_3): Likewise.
5633 (cortex_a15_neon_vshl_ddd): Likewise.
5634 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5635 (cortex_a15_neon_vsra_vrsra): Likewise.
5636 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
5637 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
5638 (cortex_a15_neon_fp_vmul_ddd): Likewise.
5639 (cortex_a15_neon_fp_vmul_qqd): Likewise.
5640 (cortex_a15_neon_fp_vmla_ddd): Likewise.
5641 (cortex_a15_neon_fp_vmla_qqq): Likewise.
5642 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
5643 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
5644 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5645 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5646 (cortex_a15_neon_bp_simple): Likewise.
5647 (cortex_a15_neon_bp_2cycle): Likewise.
5648 (cortex_a15_neon_bp_3cycle): Likewise.
5649 (cortex_a15_neon_vld1_1_2_regs): Likewise.
5650 (cortex_a15_neon_vld1_3_4_regs): Likewise.
5651 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5652 (cortex_a15_neon_vld2_4_regs): Likewise.
5653 (cortex_a15_neon_vld3_vld4): Likewise.
5654 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5655 (cortex_a15_neon_vst1_3_4_regs): Likewise.
5656 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
5657 (cortex_a15_neon_vst3_vst4): Likewise.
5658 (cortex_a15_neon_vld1_vld2_lane): Likewise.
5659 (cortex_a15_neon_vld3_vld4_lane" 10
5660 (cortex_a15_neon_vst1_vst2_lane): Likewise.
5661 (cortex_a15_neon_vst3_vst4_lane): Likewise.
5662 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
5663 (cortex_a15_neon_ldm_2): Likewise.0
5664 (cortex_a15_neon_stm_2): Likewise.
5665 (cortex_a15_neon_mcr): Likewise.
5666 (cortex_a15_neon_mcr_2_mcrr): Likewise.
5667 (cortex_a15_neon_mrc): Likewise.
5668 (cortex_a15_neon_mrrc): Likewise.
5669 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
5670 change.
5671 (cortex_a15_alu_shift): Likewise.
5672 (cortex_a15_alu_shift_reg): Likewise.
5673 (cortex_a15_mult32): Likewise.
5674 (cortex_a15_mult64): Likewise.
5675 (cortex_a15_block): Likewise.
5676 (cortex_a15_branch): Likewise.
5677 (cortex_a15_load1): Likewise.
5678 (cortex_a15_load3): Likewise.
5679 (cortex_a15_store1): Likewise.
5680 (cortex_a15_store3): Likewise.
5681 (cortex_a15_call): Likewise.
f43245d1 5682 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
5683 (cortex_a5_f2r): Likewise.
5684 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
5685 change.
5686 (cortex_a53_f2r): Likewise.
5687 * config/arm/cortex-a7.md
5688 (cortex_a7_branch): Update for attribute change.
5689 (cortex_a7_call): Likewise.
5690 (cortex_a7_alu_imm): Likewise.
5691 (cortex_a7_alu_reg): Likewise.
5692 (cortex_a7_alu_shift): Likewise.
5693 (cortex_a7_mul): Likewise.
5694 (cortex_a7_load1): Likewise.
5695 (cortex_a7_store1): Likewise.
5696 (cortex_a7_load2): Likewise.
5697 (cortex_a7_store2): Likewise.
5698 (cortex_a7_load3): Likewise.
5699 (cortex_a7_store3): Likewise.
5700 (cortex_a7_load4): Likewise.
5701 (cortex_a7_store4): Likewise.
5702 (cortex_a7_fpalu): Likewise.
5703 (cortex_a7_fconst): Likewise.
5704 (cortex_a7_fpmuls): Likewise.
5705 (cortex_a7_neon_mul): Likewise.
5706 (cortex_a7_fpmacs): Likewise.
5707 (cortex_a7_neon_mla: Likewise.
5708 (cortex_a7_fpmuld: Likewise.
5709 (cortex_a7_fpmacd: Likewise.
5710 (cortex_a7_fpfmad: Likewise.
5711 (cortex_a7_fdivs: Likewise.
5712 (cortex_a7_fdivd: Likewise.
5713 (cortex_a7_r2f: Likewise.
5714 (cortex_a7_f2r: Likewise.
5715 (cortex_a7_f_flags: Likewise.
5716 (cortex_a7_f_loads: Likewise.
5717 (cortex_a7_f_loadd: Likewise.
5718 (cortex_a7_f_stores: Likewise.
5719 (cortex_a7_f_stored: Likewise.
5720 (cortex_a7_neon): Likewise.
5721 * config/arm/cortex-a8-neon.md
5722 (cortex_a8_neon_mrc): Update for attribute change.
5723 (cortex_a8_neon_mrrc): Likewise.
5724 (cortex_a8_neon_int_1): Likewise.
5725 (cortex_a8_neon_int_2): Likewise.
5726 (cortex_a8_neon_int_3): Likewise.
5727 (cortex_a8_neon_int_4): Likewise.
5728 (cortex_a8_neon_int_5): Likewise.
5729 (cortex_a8_neon_vqneg_vqabs): Likewise.
5730 (cortex_a8_neon_vmov): Likewise.
5731 (cortex_a8_neon_vaba): Likewise.
5732 (cortex_a8_neon_vaba_qqq): Likewise.
5733 (cortex_a8_neon_vsma): Likewise.
5734 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5735 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
5736 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
5737 long_scalar): Likewise.
003bb7f3
JG
5738 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5739 (cortex_a8_neon_mla_qqq_8_16): Likewise.
5740 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5741 long_scalar_qdd_64_32_long): Likewise.
5742 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5743 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5744 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
5745 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5746 (cortex_a8_neon_shift_1): Likewise.
5747 (cortex_a8_neon_shift_2): Likewise.
5748 (cortex_a8_neon_shift_3): Likewise.
5749 (cortex_a8_neon_vshl_ddd): Likewise.
5750 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5751 (cortex_a8_neon_vsra_vrsra): Likewise.
5752 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
5753 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
5754 (cortex_a8_neon_fp_vsum): Likewise.
5755 (cortex_a8_neon_fp_vmul_ddd): Likewise.
5756 (cortex_a8_neon_fp_vmul_qqd): Likewise.
5757 (cortex_a8_neon_fp_vmla_ddd): Likewise.
5758 (cortex_a8_neon_fp_vmla_qqq): Likewise.
5759 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
5760 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
5761 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5762 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5763 (cortex_a8_neon_bp_simple): Likewise.
5764 (cortex_a8_neon_bp_2cycle): Likewise.
5765 (cortex_a8_neon_bp_3cycle): Likewise.
5766 (cortex_a8_neon_ldr): Likewise.
5767 (cortex_a8_neon_str): Likewise.
5768 (cortex_a8_neon_vld1_1_2_regs): Likewise.
5769 (cortex_a8_neon_vld1_3_4_regs): Likewise.
5770 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5771 (cortex_a8_neon_vld2_4_regs): Likewise.
5772 (cortex_a8_neon_vld3_vld4): Likewise.
5773 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5774 (cortex_a8_neon_vst1_3_4_regs): Likewise.
5775 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
5776 (cortex_a8_neon_vst3_vst4): Likewise.
5777 (cortex_a8_neon_vld1_vld2_lane): Likewise.
5778 (cortex_a8_neon_vld3_vld4_lane): Likewise.
5779 (cortex_a8_neon_vst1_vst2_lane): Likewise.
5780 (cortex_a8_neon_vst3_vst4_lane): Likewise.
5781 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
5782 (cortex_a8_neon_mcr): Likewise.
5783 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 5784 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
5785 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
5786 change.
5787 (ca9_neon_mrrc): Likewise.
5788 (cortex_a9_neon_int_1): Likewise.
5789 (cortex_a9_neon_int_2): Likewise.
5790 (cortex_a9_neon_int_3): Likewise.
5791 (cortex_a9_neon_int_4): Likewise.
5792 (cortex_a9_neon_int_5): Likewise.
5793 (cortex_a9_neon_vqneg_vqabs): Likewise.
5794 (cortex_a9_neon_vmov): Likewise.
5795 (cortex_a9_neon_vaba): Likewise.
5796 (cortex_a9_neon_vaba_qqq): Likewise.
5797 (cortex_a9_neon_vsma): Likewise.
5798 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5799 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
5800 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
5801 long_scalar): Likewise.
003bb7f3
JG
5802 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5803 (cortex_a9_neon_mla_qqq_8_16): Likewise.
5804 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5805 long_scalar_qdd_64_32_long): Likewise.
5806 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5807 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5808 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
5809 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5810 (cortex_a9_neon_shift_1): Likewise.
5811 (cortex_a9_neon_shift_2): Likewise.
5812 (cortex_a9_neon_shift_3): Likewise.
5813 (cortex_a9_neon_vshl_ddd): Likewise.
5814 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5815 (cortex_a9_neon_vsra_vrsra): Likewise.
5816 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
5817 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
5818 (cortex_a9_neon_fp_vsum): Likewise.
5819 (cortex_a9_neon_fp_vmul_ddd): Likewise.
5820 (cortex_a9_neon_fp_vmul_qqd): Likewise.
5821 (cortex_a9_neon_fp_vmla_ddd): Likewise.
5822 (cortex_a9_neon_fp_vmla_qqq): Likewise.
5823 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
5824 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
5825 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5826 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5827 (cortex_a9_neon_bp_simple): Likewise.
5828 (cortex_a9_neon_bp_2cycle): Likewise.
5829 (cortex_a9_neon_bp_3cycle): Likewise.
5830 (cortex_a9_neon_ldr): Likewise.
5831 (cortex_a9_neon_str): Likewise.
5832 (cortex_a9_neon_vld1_1_2_regs): Likewise.
5833 (cortex_a9_neon_vld1_3_4_regs): Likewise.
5834 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5835 (cortex_a9_neon_vld2_4_regs): Likewise.
5836 (cortex_a9_neon_vld3_vld4): Likewise.
5837 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5838 (cortex_a9_neon_vst1_3_4_regs): Likewise.
5839 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
5840 (cortex_a9_neon_vst3_vst4): Likewise.
5841 (cortex_a9_neon_vld1_vld2_lane): Likewise.
5842 (cortex_a9_neon_vld3_vld4_lane): Likewise.
5843 (cortex_a9_neon_vst1_vst2_lane): Likewise.
5844 (cortex_a9_neon_vst3_vst4_lane): Likewise.
5845 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
5846 (cortex_a9_neon_mcr): Likewise.
5847 (cortex_a9_neon_mcr_2_mcrr): Likewise.
5848 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
5849 (cortex_a9_fps): Likewise.
5850 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
5851 change.
5852 (cortex_m4_fmuls): Likewise.
5853 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
5854 change.
5855 (cortex_r4_mrc): Likewise.
5856 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 5857 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 5858 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
5859 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
5860 attribute change.
003bb7f3
JG
5861 (pj4_core_to_vfp): Likewise.
5862 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
5863 attribute change.
5864 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
5865 (vfp_fstore): Likewise.
5866 * doc/md.texi: Change references to neon_type to refer to type.
5867
fbe0dc78
DS
58682013-09-04 Dodji Seketeli <dodji@redhat.com>
5869
5870 * tree.h (DECL_BUILT_IN): Fix typo in comment.
5871
c167bc5b
DE
58722013-09-04 David Edelsohn <dje.gcc@gmail.com>
5873
5874 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
5875 lglobl if not weak.
5876
035cb59f
ER
58772013-09-04 Easwaran Raman <eraman@google.com>
5878
5879 PR middle-end/57370
5880 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
5881 (build_and_add_sum): Use it.
5882 (appears_later_in_bb): Simplify code.
5883
71191083
TJ
58842013-09-04 Teresa Johnson <tejohnson@google.com>
5885
5886 * dumpfile.c (dump_finish): Don't close stderr/stdout.
5887
0c488213
JG
58882013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
5889
5890 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
5891
61a74079
JH
58922013-09-04 Jan Hubicka <jh@suse.cz>
5893
5894 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
5895 * ipa-devirt.c: Include diganostic.h
5896 (odr_type_d): Add types and types_set.
5897 (hash_type_name): Work for types with vtables during LTO.
5898 (odr_hasher::remove): Fix comment; destroy types_set.
5899 (add_type_duplicate): New function,
5900 (get_odr_type): Use it.
5901 (dump_type_inheritance_graph): Dump type duplicates.
5902 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
5903 graph.
5904 * tree.c (types_same_for_odr): Give exact answers on types with
5905 virtual tables.
5906
24ba8195
DS
59072013-09-04 Dodji Seketeli <dodji@redhat.com>
5908
5909 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 5910 explaining their differences.
24ba8195 5911
0a04869e
SKS
59122013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
5913
5914 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
5915
3b18bc42
JL
59162013-09-03 Jeff Law <law@redhat.com>
5917
5918 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
5919 when not threading through a joiner block. Pass joiner/no joiner
5920 state to register_jump_thread.
5921 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
5922 state from argument rather than implying on path length.
5923 Dump the entire jump thread path into debugging dump.
5924 * tree-flow.h (register_jump_thread): Update prototype.
5925
ae84e151
XDL
59262013-08-29 Xinliang David Li <davidxl@google.com>
5927
5928 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5929 Remove a trivial gcc_assert.
5930
c716e67f
XDL
59312013-08-29 Xinliang David Li <davidxl@google.com>
5932
5933 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
5934 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
5935 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
5936 Delay base decl alignment adjustment.
5937 * tree-vectorizer.c (vect_destroy_datarefs): New function.
5938 * tree-vectorizer.h: New data structure.
5939 (set_dr_misalignment): New function.
5940 (dr_misalignment): Ditto.
5941 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
5942 (vectorizable_load): Ditto.
5943 (ensure_base_align): New function.
5944 (vectorize_loops): Add dbg_cnt support.
5945 (execute_vect_slp): Ditto.
5946 * dbgcnt.def: New debug counter.
5947 * Makefile: New dependency.
5948
db8800bc
MI
59492013-09-03 Meador Inge <meadori@codesourcery.com>
5950
5951 Revert:
5952
5953 2013-08-30 Meador Inge <meadori@codesourcery.com>
5954
5955 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
5956
0d9b4f5c
DE
59572013-09-03 David Edelsohn <dje.gcc@gmail.com>
5958
5959 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
5960 function descriptor.
5961
29e810b9
RB
59622013-09-03 Richard Biener <rguenther@suse.de>
5963
5964 * tree-affine.c (add_elt_to_tree): Fix association issue,
5965 avoid useless converts and make sure to always return a
5966 properly typed result.
5967
dbfc2894
RB
59682013-09-03 Richard Biener <rguenther@suse.de>
5969
5970 PR middle-end/57656
5971 * fold-const.c (negate_expr_p): Fix division case.
5972 (negate_expr): Likewise.
5973
fa3bf4ce
RB
59742013-09-03 Richard Biener <rguenther@suse.de>
5975
5976 PR lto/58285
5977 * tree-streamer-out.c: Include tm.h.
5978 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
5979
a64bbb3f
JH
59802013-09-03 Jan Hubicka <jh@suse.cz>
5981
5982 * tree-profile.c (tree_profiling): Cleanup CFG when done.
5983
93ed07e2
AM
59842013-09-03 Alan Modra <amodra@gmail.com>
5985
5986 * config.gcc (powerpc*-*-linux*): Add support for little-endian
5987 multilibs to big-endian target and vice versa.
5988 * config/rs6000/t-linux64: Use := assignment on all vars.
5989 (MULTILIB_EXTRA_OPTS): Remove fPIC.
5990 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
5991 * config/rs6000/t-linux64le: New file.
5992 * config/rs6000/t-linux64bele: New file.
5993 * config/rs6000/t-linux64lebe: New file.
5994
07d6cd64
JH
59952013-09-02 Jan Hubicka <jh@suse.cz>
5996
5997 * ipa-inline-transform.c (inline_transform): Do not
5998 optimize_inline_calls when not optimizing.
5999
8e4c9a10
JH
60002013-09-02 Jan Hubicka <jh@suse.cz>
6001
6002 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
6003 duplicated nodes for assembler names.
6004 * symtab.c (symtab_unregister_node): Do not attempt to unlink
6005 hard registers from assembler name hash.
6006
c91061e6
JH
60072013-09-02 Jan Hubicka <jh@suse.cz>
6008
6009 * ipa-split.c (execute_split_functions): Split externally visible
6010 functions called once.
6011
2fd0985c
MJ
60122013-09-02 Martin Jambor <mjambor@suse.cz>
6013
6014 PR ipa/58106
6015 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
6016 linked list. When finding the correct duplicate, also consider also
6017 the caller in additon to its inlined_to node.
6018
91bd4114
JG
60192013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
6020
6021 * config/aarch64/aarch64-simd-builtins.def
6022 (dup_lane_scalar): Remove.
6023 * config/aarch64/aarch64-simd.md
6024 (aarch64_simd_dup): Add 'w->w' alternative.
6025 (aarch64_dup_lane<mode>): Allow for VALL.
6026 (aarch64_dup_lane_scalar<mode>): Remove.
6027 (aarch64_dup_lane_<vswap_width_name><mode>): New.
6028 (aarch64_get_lane_signed<mode>): Add w->w altenative.
6029 (aarch64_get_lane_unsigned<mode>): Likewise.
6030 (aarch64_get_lane<mode>): Likewise.
6031 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
6032 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
6033 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
6034 (VCON): Change container of V2SF.
6035 (vswap_width_name): Likewise.
6036 * config/aarch64/arm_neon.h
6037 (__aarch64_vdup_lane_any): New.
6038 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6039 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
6040 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6041
d617d2d8
EB
60422013-09-02 Eric Botcazou <ebotcazou@adacore.com>
6043
6044 PR middle-end/56382
6045 * expr.c (emit_move_complex): Do not move complex FP values as parts if
6046 the source or the destination is a single hard register.
6047
63fdb7be
RB
60482013-09-02 Richard Biener <rguenther@suse.de>
6049
6050 PR middle-end/57511
6051 * tree-scalar-evolution.c (instantiate_scev_name): Allow
6052 non-linear SCEVs.
6053
78de2333
RB
60542013-09-02 Richard Biener <rguenther@suse.de>
6055
6056 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
6057 arithmetic to sizetype.
6058
85ff4ec6
BC
60592013-09-02 Bin Cheng <bin.cheng@arm.com>
6060
6061 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
6062 Find auto-increment use both before and after candidate.
6063
576016fe
MP
60642013-09-02 Marek Polacek <polacek@redhat.com>
6065
6066 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
6067
08f835dc
JH
60682013-09-01 Jan Hubicka <jh@suse.cz>
6069
6070 * Makefile.in: Add ipa-profile.o
6071 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
6072 * cgraph.c (struct cgraph_propagate_frequency_data,
6073 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
6074 ipa-profile.c; replace cgraph_ by ipa_ prefix.
6075 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
6076 * ipa-inline-analysis.c: Include ipa-utils.h;
6077 drop duplicated cfgloop.h.
08f835dc
JH
6078 (inline_update_callee_summaries): Update.
6079 * ipa-profile.c: New file.
6080 * ipa-utils.h (ipa_propagate_frequency): Declare.
6081 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 6082 data-streamer.h, value-prof.h.
08f835dc
JH
6083 (symtab_remove_unreachable_nodes): Update profile.
6084 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
6085 account_time_size, cmp_counts, dump_histogram,
6086 ipa_profile_generate_summary, ipa_profile_write_summary,
6087 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
6088 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 6089 Move to ipa-profile.c.
08f835dc 6090
cec8583c
JDA
60912013-09-01 John David Anglin <danglin@gcc.gnu.org>
6092
6093 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
6094
bbc9396b
JH
60952013-09-01 Jan Hubicka <jh@suse.cz>
6096
6097 * common.opt (fdevirtualize-speculatively): New function.
6098 * invoke.texi (fdevirtualize-speculatively): Document.
6099 * ipa-devirt.c: Include ipa-inline.h
6100 (likely_target_p): New function.
6101 (ipa_devirt): New function.
6102 (gate_ipa_devirt): New function.
6103 (pass_data_ipa_devirt): New static var.
6104 (pass_ipa_devirt): Likewise.
6105 (make_pass_ipa_devirt): New function.
6106 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
6107 (common_handle_option): Disable devirtualization when
6108 value range profiling is available.
6109 * passes.def (pass_ipa_devirt): Add.
6110 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 6111 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 6112
0cea211e
IS
61132013-09-01 Iain Sandoe <iain@codesourcery.com>
6114
6115 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
6116 include sanitize(undefined).
6117
5e351e96
DN
61182013-08-31 Diego Novillo <dnovillo@google.com>
6119
6120 * Makefile.in (TREE_CORE_H): Define.
6121 (TREE_H): Use.
6122 (GTFILES): Add tree-core.h.
6123 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
6124 size the array.
6125 * tree-core.h: New file.
6126 Move all data structures, enum, typedefs, global
6127 declarations and constants from ...
6128 * tree.h: ... here.
6129
63bf9a90
JH
61302013-08-31 Jan Hubicka <jh@suse.cz>
6131
6132 * bulitins.c (expand_builtin): Do not early exit for gcov
6133 instrumented functions.
6134
5c0abd6a
MP
61352013-08-31 Marek Polacek <polacek@redhat.com>
6136
6137 * ubsan.c: Include tm_p.h.
6138
4843f032
JH
61392013-08-31 Jan Hubicka <jh@suse.cz>
6140
8356c89c
JH
6141 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
6142 warning.
6143
4843f032
JH
6144 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
6145 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 6146 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
6147 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
6148 (ipa_merge_profiles): New function.
6149 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
6150 (lto_input_function_body): Likewise.
5e581212
JH
6151 * ipa-utils.h (ipa_merge_profiles): Declare.
6152 * lto-streamer.h (lto_input_function_body): Update prototype.
6153 (emit_label_in_global_context_p): Remove.
6154 * lto-symtab.c: Include ipa-utils.h
6155 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 6156
57292ce9
JH
61572013-08-31 Jan Hubicka <jh@suse.cz>
6158
6159 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
6160
b9cbfeeb
JH
61612013-08-31 Jan Hubicka <jh@suse.cz>
6162
6163 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
6164
41dedebd
UB
61652013-08-31 Uros Bizjak <ubizjak@gmail.com>
6166
6167 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
6168 "cmp" RTX before signed_comparison_operator check to account
6169 for "code" changes.
6170
06d65050
JH
61712013-08-30 Jan Hubicka <jh@suse.cz>
6172
41dedebd 6173 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
6174 (detect_type_change_1): Rename to ...
6175 (detect_type_change): ... this one; early return on non-polymorphic
6176 types.
41dedebd 6177 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
6178 use of detect_type_change.
6179 (compute_complex_assign_jump_func): Add param_type parameter;
6180 update use of detect_type_change_ssa.
6181 (compute_complex_ancestor_jump_func): Likewise.
6182 (ipa_get_callee_param_type): New function.
6183 (ipa_compute_jump_functions_for_edge): Compute parameter type;
6184 update calls to the jump function computation functions.
6185
600b5b1d
TJ
61862013-08-30 Teresa Johnson <tejohnson@google.com>
6187 Steven Bosscher <steven@gcc.gnu.org>
6188
6189 * cfgrtl.c (fixup_new_cold_bb): New routine.
6190 (commit_edge_insertions): Invoke fixup_partitions.
6191 (find_partition_fixes): New routine.
6192 (fixup_partitions): Ditto.
6193 (verify_hot_cold_block_grouping): Update comments.
6194 (rtl_verify_edges): Invoke find_partition_fixes.
6195 (rtl_verify_bb_pointers): Update comments.
6196 (rtl_verify_bb_layout): Ditto.
6197 * basic-block.h (probably_never_executed_edge_p): Declare.
6198 (fixup_partitions): Ditto.
6199 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
6200 * bb-reorder.c (sanitize_hot_paths): New function.
6201 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
6202 sanitize_hot_paths.
6203 * predict.c (probably_never_executed_edge_p): New routine.
6204 * cfg.c (check_bb_profile): Add partition insanity warnings.
6205
0a6ea5c9
MI
62062013-08-30 Meador Inge <meadori@codesourcery.com>
6207
6208 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
6209
de5a5fa1
MP
62102013-08-30 Marek Polacek <polacek@redhat.com>
6211
6212 * Makefile.in (ubsan.o): Add.
6213 (c-family/c-ubsan.o): Add.
6214 (builtins.o): Add ubsan.h dependency.
6215 * ubsan.h: New file.
6216 * ubsan.c: New file.
6217 * common.opt: Add -fsanitize=undefined option.
6218 (flag_sanitize): Add variable.
6219 (fsanitize=): Add option. Add Driver.
6220 (fsanitize=thread): Remove option.
6221 (fsanitize=address): Likewise.
6222 (static-libubsan): New option.
6223 * doc/invoke.texi: Document the new flag and -static-libubsan.
6224 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
6225 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
6226 * builtin-attrs.def (ATTR_COLD): Define.
6227 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6228 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
6229 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
6230 * flag-types.h (sanitize_code): New enum.
6231 * opts.c (common_handle_option): Parse command line arguments
6232 of -fsanitize=. Add -fsanitize=unreachable option.
6233 * varasm.c (get_variable_section): Adjust.
6234 (assemble_noswitch_variable): Likewise.
6235 (assemble_variable): Likewise.
6236 (output_constant_def_contents): Likewise.
6237 (categorize_decl_for_section): Likewise.
6238 (place_block_symbol): Likewise.
6239 (output_object_block): Likewise.
6240 * builtins.def: Likewise.
6241 * toplev.c (compile_file): Likewise.
6242 (process_options): Likewise.
6243 * cppbuiltin.c: Likewise.
6244 * tsan.c (tsan_pass): Likewise.
6245 (tsan_gate): Likewise.
6246 (tsan_gate_O0): Likewise.
6247 * cfgexpand.c (partition_stack_vars): Likewise.
6248 (expand_stack_vars): Likewise.
6249 (defer_stack_allocation): Likewise.
6250 (expand_used_vars): Likewise.
6251 * cfgcleanup.c (old_insns_match_p): Likewise.
6252 * asan.c (asan_finish_file): Likewise.
6253 (asan_instrument): Likewise.
6254 (gate_asan): Likewise.
6255 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
6256 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6257 (asan_global_struct): Use pointer_sized_int_node instead
6258 calling build_nonstandard_integer_type.
6259 (initialize_sanitizer_builtins): Likewise.
6260 (asan_finish_file): Likewise.
6261 * gcc.c: Document %{%:function(args):X}.
6262 (static_spec_functions): Add sanitize.
6263 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
6264 store funcval != NULL there.
6265 (do_spec_1): Adjust handle_spec_function caller.
6266 (handle_braces): Allow %:function(args) as condition.
6267 (sanitize_spec_function): New function.
6268 (ADD_STATIC_LIBUBSAN_LIBS): Define.
6269 (LIBUBSAN_SPEC): Likewise.
6270 (LIBUBSAN_EARLY_SPEC): Likewise.
6271 (SANITIZER_SPEC): Handle libubsan.
6272 (SANITIZER_EARLY_SPEC): Likewise.
6273 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
6274 instead of fsanitize=address.
6275 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
6276 instead of fsanitize=address*.
6277 * builtins.c: Include ubsan.h.
6278 (fold_builtin_0): Instrument __builtin_unreachable.
6279 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
6280 instead of flag_asan.
6281 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
6282 (pointer_sized_int_node): Define.
41dedebd 6283 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 6284
f07f30cf
MS
62852013-08-30 Mike Stump <mikestump@comcast.net>
6286
6287 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
6288 with RE patterns.
6289
8a41354f
JH
62902013-08-29 Jan Hubicka <jh@suse.cz>
6291
6292 * cgraph.c (cgraph_function_body_availability): Handle weakref
6293 correctly.
6294 * passes.def: Remove pass_fixup_cfg.
6295 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
6296 track when we need to remove functions.
6297 (gate_ipa_inline): Execute inlining always; add comment why.
6298 (pass_data_ipa_inline): Remove TODO_remove_functions.
6299 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
6300 do not produce summaries.
6301 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
6302 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
6303 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
6304 constant pool and vtable.
6305
dc8d7a0f
TB
63062013-08-30 Tejas Belagod <tejas.belagod@arm.com>
6307
41dedebd
UB
6308 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
6309 New arm_neon.h's internal macros to specify 64-bit constants.
6310 Avoid using stdint.h's macros.
dc8d7a0f 6311
ac7eacd2
JR
63122013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
6313
6314 * recog.c (verify_changes): Verify that changes[i].old is non-zero
6315 before applying REG_P.
6316
8b29fd4e
JJ
63172013-08-30 Jakub Jelinek <jakub@redhat.com>
6318
6319 PR tree-optimization/58277
6320 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
6321 after seeing too many stmts with vdef in between dombb and current
6322 bb, invalidate everything.
6323
26d75703
RB
63242013-08-30 Richard Biener <rguenther@suse.de>
6325
6326 * fold-const.c (fold_single_bit_test): Fix overflow test.
6327
f7e088e7
EB
63282013-08-30 Eric Botcazou <ebotcazou@adacore.com>
6329
6330 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
6331 and which can live in a register, always retrieve the value on entry.
6332 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
6333 passed by invisible reference specially.
6334 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
6335 (vt_add_function_parameter): Correctly deal with a parameter passed by
6336 invisible reference.
6337
63382013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
6339
6340 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
6341
6e8dad05
RB
63422013-08-30 Richard Biener <rguenther@suse.de>
6343
6344 PR tree-optimization/58228
6345 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
6346 allow invariant loads in nested loop vectorization.
6347
062ef2c8
RB
63482013-08-30 Richard Biener <rguenther@suse.de>
6349
6350 PR tree-optimization/58223
6351 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
6352 (has_anti_or_output_dependence): ... this and adjust to also
6353 look for output dependences.
6354 (mark_nodes_having_upstream_mem_writes): Adjust.
6355 (rdg_flag_uses): Likewise.
6356
7a764c60
RB
63572013-08-30 Richard Biener <rguenther@suse.de>
6358
6359 PR tree-optimization/58010
6360 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
6361 assert that we have a loop-closed PHI.
6362
82e9d642
JH
63632013-08-29 Jan Hubicka <jh@suse.cz>
6364
6365 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
6366 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
6367 * lto-section-in.c (lto_free_function_in_decl_state): New function.
6368 (lto_free_function_in_decl_state_for_node): New function.
6369
9cc1fb4b
XDL
63702013-08-29 Xinliang David Li <davidxl@google.com>
6371
41dedebd 6372 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
6373 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
6374 Emit alignment peeling message with default -fopt-info.
6375 (vect_loop_versioning): Emit loop version info message.
41dedebd 6376 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
6377 (execute_vect_slp): Ditto.
6378
440a5082
EB
63792013-08-29 Eric Botcazou <ebotcazou@adacore.com>
6380
6381 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
6382 of the clone from the DECL_NAME of the original function.
6383
3fa3690d
OE
63842013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
6385
6386 * passes.c (register_pass): Add overload.
6387 * tree-pass.h (register_pass): Forward declare it. Add comment.
6388
0170f33c
JH
63892013-08-29 Jan Hubicka <jh@suse.cz>
6390
41dedebd
UB
6391 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
6392 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
6393 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
6394 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6395 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
6396 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 6397 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6398 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
6399
103ff0d6
TJ
64002013-08-29 Teresa Johnson <tejohnson@google.com>
6401
6402 * dumpfile.c (dump_loc): Output column number.
6403 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
6404 * doc/invoke.texi: Document optall -fopt-info flag.
6405 * profile.c (read_profile_edge_counts): Use new dump framework.
6406 (compute_branch_probabilities): Ditto.
6407 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
6408 when pass not in any opt group.
6409 * pass_manager.h (pass_manager::get_pass_profile): New method.
6410 * value-prof.c (check_counter): Use new dump framework.
6411 (check_ic_target): Ditto.
6412 * coverage.c (get_coverage_counts): Ditto.
6413 (coverage_init): Setup new dump framework.
6414
301bbc16
RB
64152013-08-29 Richard Biener <rguenther@suse.de>
6416
6417 PR tree-optimization/58246
6418 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
6419 handle the dominance check inside a basic-block.
6420
1b275000
RB
64212013-08-29 Richard Biener <rguenther@suse.de>
6422
6423 PR middle-end/57287
6424 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
6425 of default defs that appear in abnormal PHI nodes.
6426
6b1184ba
RB
64272013-08-29 Richard Biener <rguenther@suse.de>
6428
6429 PR tree-optimization/57685
6430 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
6431 single-use operands to avoid exponential complexity.
6432
1b08b734
DC
64332013-08-28 Dehao Chen <dehao@google.com>
6434
6435 * ipa-inline.c (edge_badness): Fix integer underflow.
6436
48a3fa69
UB
64372013-08-28 Uros Bizjak <ubizjak@gmail.com>
6438
6439 * gtm-builtins.def (_ITM_free): Declare leaf.
6440
215f73e6
JJ
64412013-08-28 Jakub Jelinek <jakub@redhat.com>
6442
6443 PR target/58067
6444 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
6445 (*tls_local_dynamic_base_64_largepic): Likewise.
6446 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
6447 Remove predicate from call operand.
6448 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
6449 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
6450
34554d1a
JL
64512013-08-28 Jeff Law <law@redhat.com>
6452
6453 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
6454 checks for the number of predecessors and successors allowed.
6455 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
6456 which require copying a joiner block if there is a request which
6457 is a subpath that requires no joiner block copying.
6458
c01c111b
JH
64592013-08-28 Jan Hubicka <jh@suse.cz>
6460
6461 * lto-streamer-out.c (DFS_write_tree_body): Drop
6462 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
6463 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
6464 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
6465 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
6466 Do not read DECL_ERROR_ISSUED.
6467 (unpack_ts_decl_with_vis_value_fields): Do not read
6468 DECL_DEFER_OUTPUT.
48a3fa69
UB
6469 (lto_input_ts_binfo_tree_pointers): Do not read
6470 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
6471 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
6472 write DECL_ERROR_ISSUED..
6473 (pack_ts_decl_with_vis_value_fields): Do not write
6474 DECL_DEFER_OUTPUT.
6475 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 6476 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
6477 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
6478 * tree.h (tree_decl_common): Update comment.
6479 (DECL_ERROR_ISSUED): Remove.
6480
4b128ece
JJ
64812013-08-28 Jakub Jelinek <jakub@redhat.com>
6482
6483 PR middle-end/58257
6484 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
6485
12211b99 64862013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
6487
6488 * builtins.def (free): Declare leaf.
6489
8dce4dbc
DM
64902013-08-27 David Malcolm <dmalcolm@redhat.com>
6491
6492 * gdbhooks.py: New.
6493 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
6494 * configure: Regenerate.
6495
b8f6e610
MJ
64962013-08-27 Martin Jambor <mjambor@suse.cz>
6497
6498 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
6499 (ipa_ancestor_jf_data): Likewise.
6500 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
6501 (ipa_get_jf_pass_through_type_preserved): New function.
6502 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
6503 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 6504 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
6505 (ipa_get_jf_ancestor_result): Likewise.
6506 (propagate_vals_accross_pass_through): Use
6507 ipa_get_jf_pass_through_result to do all the value mappings.
6508 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
6509 type_preserved flag.
6510 (ipa_set_jf_cst_copy): New function.
6511 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
6512 (ipa_set_jf_arith_pass_through): Likewise.
6513 (ipa_set_ancestor_jf): Likewise.
6514 (compute_complex_assign_jump_func): Set type_preserved instead of
6515 punting.
6516 (ipa_compute_jump_functions_for_edge): Likewise.
6517 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
6518 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 6519 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
6520 (ipa_write_jump_function): Stream the type_preserved flags.
6521 (ipa_read_jump_function): Likewise.
6522
74bf76ed
JJ
65232013-08-27 Jakub Jelinek <jakub@redhat.com>
6524 Aldy Hernandez <aldyh@redhat.com>
6525
6526 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
6527 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
6528 * function.h (struct function): Add has_force_vect_loops and
6529 has_simduid_loops.
12211b99 6530 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
6531 * gimple.c (gimple_build_omp_critical): Add KIND argument and
6532 handle it.
6533 * gimple.def: Update CLAUSES comments.
6534 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
6535 (gimple_build_omp_for): Add argument to prototype.
6536 (gimple_omp_for_kind): New.
6537 (gimple_omp_for_set_kind): New.
6538 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
6539 GOVD_DATA_SHARE_CLASS.
6540 (enum omp_region_type): Add ORT_SIMD.
6541 (gimple_add_tmp_var): Handle ORT_SIMD.
6542 (gimplify_var_or_parm_decl): Same.
6543 (is_gimple_stmt): Same.
6544 (omp_firstprivatize_variable): Same.
6545 (omp_add_variable): Only use splay_tree_insert if lookup failed.
6546 (omp_notice_variable): Handle ORT_SIMD.
12211b99 6547 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
6548 (omp_check_private): Handle ORT_SIMD.
6549 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6550 OMP_CLAUSE_SAFELEN.
6551 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
6552 Handle OMP_CLAUSE_LASTPRIVATE.
6553 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6554 OMP_CLAUSE_SAFELEN.
6555 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
6556 (gimplify_expr): Handle OMP_SIMD.
6557 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
6558 (expand_GOMP_SIMD_VF): New.
6559 (expand_GOMP_SIMD_LAST_LANE): New.
6560 * internal-fn.def (GOMP_SIMD_LANE): New.
6561 (GOMP_SIMD_VF): New.
6562 (GOMP_SIMD_LAST_LANE): New.
6563 * omp-low.c: Include target.h.
6564 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
6565 OMP_CLAUSE_SAFELEN.
6566 (check_omp_nesting_restrictions): Same.
6567 (omp_max_vf): New.
6568 (lower_rec_simd_input_clauses): New.
6569 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
6570 OMP_CLAUSE_LINEAR.
6571 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
6572 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
6573 (expand_omp_build_assign): New.
6574 (expand_omp_for_init_counts): New.
6575 (expand_omp_for_init_vars): New.
6576 (extract_omp_for_update_vars): New.
6577 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
6578 and rewrite accordingly.
6579 (expand_omp_simd): New.
6580 (expand_omp_for): Use expand_omp_simd.
6581 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
6582 (lower_omp_for): Do not lower the body.
6583 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
6584 in their own loops.
6585 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
6586 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
6587 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
6588 (gate_tree_if_conversion): Similarly.
6589 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
6590 gimple_build_omp_for.
6591 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
6592 * tree-parloops (create_parallel_loop): Pass kind argument to
6593 gimple_build_omp_for.
6594 * tree-pretty-print.c (dump_omp_clause): Add cases for
6595 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
6596 OMP_CLAUSE__SIMDUID_.
6597 (dump_generic_node): Handle OMP_SIMD.
6598 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
6599 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
6600 unroll OMP_SIMD loops here.
12211b99 6601 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 6602 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 6603 loop->safelen.
74bf76ed
JJ
6604 (vect_analyze_data_refs): Handle simd loops.
6605 * tree-vect-loop.c (vectorizable_live_operation): Handle
6606 IFN_GOMP_SIMD*.
12211b99 6607 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
6608 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
6609 (vectorizable_load): Same.
12211b99 6610 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
6611 (struct simduid_to_vf): New.
6612 (simduid_to_vf::hash): New.
6613 (simduid_to-vf::equal): New.
6614 (struct simd_array_to_simduid): New.
6615 (simd_array_to_simduid::hash): New.
6616 (simd_array_to_simduid::equal): New.
6617 (adjust_simduid_builtins): New.
6618 (struct note_simd_array_uses_struct): New.
6619 (note_simd_array_uses_cb): New.
6620 (note_simd_array_uses): New.
6621 (vectorize_loops): Handle simd hints and adjust simd builtins
6622 accordingly.
6623 * tree-vectorizer.h (struct _stmt_vec_info): Add
6624 simd_lane_access_p field.
6625 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
6626 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
6627 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
6628 (omp_clause_code_name): Same.
6629 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
6630 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
6631 * tree.def (OMP_SIMD): New entry.
12211b99
UB
6632 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
6633 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
6634 (OMP_CLAUSE_DECL): Adjust range for new clauses.
6635 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
6636 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
6637 (OMP_CLAUSE_LINEAR_STEP): New.
6638 (OMP_CLAUSE_SAFELEN_EXPR): New.
6639 (OMP_CLAUSE__SIMDUID__DECL): New.
6640 (find_omp_clause): New prototype.
6641
d0cf4e84
L
66422013-08-27 H.J. Lu <hongjiu.lu@intel.com>
6643
6644 * config/i386/driver-i386.c (host_detect_local_cpu): Update
6645 Haswell processor detection.
6646
992592ec
CW
66472013-08-27 Christian Widmer <shadow@umbrox.de>
6648
6649 PR target/57927
6650 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
6651 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
6652 AVX2 capable processors.
6653
9116eb22
TB
66542013-08-27 Tejas Belagod <tejas.belagod@arm.com>
6655
6656 * config/aarch64/arm_neon.h: Replace all inline asm implementations
6657 of vget_low_* with implementations in terms of other intrinsics.
6658
1c5abb53
MG
66592013-08-27 Marc Glisse <marc.glisse@inria.fr>
6660
6661 PR middle-end/57219
6662 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
6663 values to -1, 0 and 1.
6664
2e100703
VP
66652013-08-27 Vidya Praveen <vidyapraveen@arm.com>
6666
6667 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
6668 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
6669 (<optab><mode>3_insn): Remove.
6670 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
6671 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6672 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
6673 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
6674 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
6675 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
6676 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
6677 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
6678 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
6679 (ror<mode>3_insn): Likewise.
6680 * config/aarch64/predicates.md (aarch64_simd_register): New.
6681
4ded8276
RB
66822013-08-27 Richard Biener <rguenther@suse.de>
6683
6684 PR tree-optimization/57521
6685 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
6686 one edge is non-critical.
6687 (find_phi_replacement_condition): Make sure to use a non-critical
6688 edge. Cleanup and remove old bug workarounds.
6689 (bb_postdominates_preds): Remove.
6690 (if_convertible_loop_p_1): Do not compute post-dominators.
6691 (combine_blocks): Do not free post-dominators.
6692 (main_tree_if_conversion): Likewise.
6693 (pass_data_if_conversion): Add TODO_verify_ssa.
6694
5aa11061
DD
66952013-08-27 DJ Delorie <dj@redhat.com>
6696
6697 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
6698
fd91cfe3
YZ
66992013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
6700
6701 * function.c (assign_parm_find_data_types): Set passed_mode and
6702 nominal_mode to the TYPE_MODE of nominal_type for the built
6703 pointer type in case of the struct-pass-by-reference.
6704
907555ce
JR
67052013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6706
6707 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
6708 (UINT16_TYPE): Change default to "unsigned int".
6709
67518c93
JR
6710 * config/avr/avr.opt (mfract-convert-truncate): New option.
6711 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
6712 is set, round negative fractional integers according to n1169
6713 when converting to integer types.
6714
d6d989fc
JH
67152013-08-26 Jan Hubicka <jh@suse.cz>
6716
6717 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
6718 methods can not be called indirectly when their address is not taken.
6719
2aa3da06
JH
67202013-08-26 Jan Hubicka <jh@suse.cz>
6721
12211b99
UB
6722 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
6723 ctor_for_folding.
2aa3da06 6724
0987ffe7
JH
67252013-08-26 Jan Hubicka <jh@suse.cz>
6726
6727 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
6728 can be unshared.
6729
befe8647
JR
67302013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6731
6732 * reload.c (find_valid_class): Allow classes that do not include
6733 FIRST_PSEUDO_REGISTER - 1.
6734
a21e735e
JH
67352013-08-26 Jan Hubicka <jh@suse.cz>
6736
6737 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
6738 fix edge count/frequency when speculation failed; fix type check
6739 for the direct call.
6740
e067bd43
JH
67412013-08-26 Jan Hubicka <jh@suse.cz>
6742
6743 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
6744
e8aec975
JH
67452013-08-26 Jan Hubicka <jh@suse.cz>
6746
6747 * ipa-inline-transform.c (inline_transform): Be ready for basic block
6748 to be changed by edge redirection.
6749
d0b66480
JH
67502013-08-26 Jan Hubicka <jh@suse.cz>
6751
12211b99
UB
6752 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
6753 formating; add sanity check.
d0b66480
JH
6754 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
6755 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
6756 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
6757 (resolve_noninline_speculation): Update callee keys, too.
6758
0f9aaac7
JH
67592013-08-26 Jan Hubicka <jh@suse.cz>
6760
6761 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
6762 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
6763
4b37444e
JR
67642013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6765
6766 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
6767 into proper place.
6768
5339fc0c
UB
67692013-08-26 Uros Bizjak <ubizjak@gmail.com>
6770
6771 * config/i386/i386.c (ix86_debug_options): Remove prototype.
6772 (x86_64_elf_select_section): Ditto.
6773 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
6774 arguments.
6775 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
6776 (output_set_got): Ditto.
6777 (ix86_unary_operator_ok): Ditto.
6778 (ix86_expand_builtin): Ditto.
6779
d5c3d3ef
JH
67802013-08-23 Jan Hubicka <jh@suse.cz>
6781
5339fc0c 6782 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 6783
5b1e7435
JH
67842013-08-23 Jan Hubicka <jh@suse.cz>
6785
6786 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
6787 (tree_decl_with_vis): Add FINAL field.
6788
ead69dac
JL
67892013-08-23 Jeff Law <law@redhat.com>
6790
6791 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
6792 the debugging dump when the expression is fully redundant.
6793
025311c4
GDR
67942013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
6795
6796 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
6797 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
6798 * pretty-print.c (pp_formatted_text_data): Likewise.
6799 (pp_write_text_to_stream): Likewise.
6800 (pp_write_text_as_dot_label_to_stream): Likewise.
6801 (pp_append_r): Likewise.
6802 (pp_format): Likewise.
6803 (pp_flush): Likewise.
6804 (pp_clear_output_area): Likewise.
6805 (pp_append_text): Likewise.
6806 (pp_formatted_text): Likewise.
6807 (pp_remaining_character_count_for_line): Likewise.
6808 (pp_newline): Likewise.
6809 (pp_character): Likewise.
6810 (output_buffer::~output_buffer): Define.
6811 (pretty_printer::~pretty_printer): Destruct output buffer.
6812 * pretty-print.h (output_buffer::~output_buffer): Declare.
6813 (pretty_printer::~pretty_printer): Declare virtual.
6814
0cadbfaa
MG
68152013-08-24 Marc Glisse <marc.glisse@inria.fr>
6816
6817 PR other/57324
6818 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
6819 HOST_WIDE_INT_M1U): New macros.
6820 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
6821 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
6822 unsigned -1 for lshift.
6823 * cse.c (cse_insn): Likewise.
6824 * double-int.c (rshift_double, lshift_double): Likewise.
6825 * builtins.c (fold_builtin_bitop): Likewise.
6826 * combine.c (force_to_mode): Likewise.
6827 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
6828 * simplify-rtx.c (simplify_const_unary_operation,
6829 simplify_const_binary_operation): Likewise.
6830 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
6831 check_va_list_escapes): Likewise.
6832 * rtlanal.c (nonzero_bits1): Likewise.
6833 * expmed.c (expand_smod_pow2): Likewise.
6834 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
6835
009e5353
JH
68362013-08-23 Jan Hubicka <jh@suse.cz>
6837
6838 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
6839 as having address taken.
6840
c4be6568
JH
68412013-08-23 Jan Hubicka <jh@suse.cz>
6842
64cbf23d
JH
6843 * ipa-utils.h (method_class_type): Declare.
6844 * ipa-devirt.c (method_class_type): Export.
6845
c4be6568
JH
6846 * cgraphunit.c (analyze_functions): Do basic devirtualization;
6847 do not walk base classes of anonymous types.
6848
97aba8e9
KK
68492013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
6850
6851 PR rtl-optimization/58220
6852 PR regression/58221
6853 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
6854 handle SEQUENCE insns properly.
6855
0fc80001
GDR
68562013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
6857
6858 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
6859 definition.
6860 (pp_newline_and_indent): Likewise.
6861 (pp_separate_with): Likewise.
6862 * pretty-print.c (pp_newline_and_flush): Define.
6863 (pp_newline_and_indent): Likewise.
6864 (pp_separate_with): Likewise.
6865
520a5868
JJ
68662013-08-23 Jakub Jelinek <jakub@redhat.com>
6867
6868 PR target/58218
6869 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
6870 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
6871
e500c62a
KY
68722013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
6873
f43245d1
UB
6874 * config/i386/predicates.md (ext_sse_reg_operand): New.
6875 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
6876 predicate to determine if EVEX is needed.
6877 (*movsi_internal): Ditto.
6878 (*movdf_internal): Ditto.
6879 (*movsf_internal): Ditto.
f43245d1 6880 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 6881
6b00d7dd
JJ
68822013-08-23 Jakub Jelinek <jakub@redhat.com>
6883
6884 PR tree-optimization/58209
6885 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
6886 (find_tail_calls): Give up for pointer result types if m is non-NULL.
6887 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
6888 emit POINTER_PLUS_EXPR.
6889 (create_tailcall_accumulator): For pointer result type accumulate in
6890 sizetype type.
6891
4f2a9f90
PC
68922013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
6893
6894 * configure.ac: Add backslashes missing from the last change.
6895 * configure: Regenerate.
6896
7bf4274e
JH
68972013-08-22 Jan Hubicka <jh@susue.cz>
6898
4f2a9f90
PC
6899 * ipa.c (function_and_variable_visibility): First remember function
6900 was global and then make it local.
7bf4274e 6901
1bea243d
JB
69022013-08-22 Julian Brown <julian@codesourcery.com>
6903
6904 * configure.ac: Add aarch64 to list of arches which use "nop" in
6905 debug_line test.
6906 * configure: Regenerate.
6907
bcba7ecc
AK
69082013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6909
6910 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
6911 gnu_libc_has_function.
6912 * config/s390/tpf.h: Likewise.
6913
4c495b0d
JH
69142013-08-22 Jan Hubicka <jh@susue.cz>
6915
6916 * timevar.c (validate_phases): Add cast.
6917
5e302bca
JH
69182013-08-22 Jan Hubicka <jh@susue.cz>
6919
6920 * timevar.c (validate_phases): Use size_t for memory.
6921 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
6922
da6ca2b5
GDR
69232013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
6924
6925 * pretty-print.h (output_buffer::output_buffer): Declare.
6926 (pretty_printer::pretty_printer): Likewise.
6927 (pp_construct): Remove.
6928 * pretty-print.c (output_buffer::output_buffer): Define.
6929 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
6930 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
6931 (print_gimple_expr): Likewise.
6932 (print_gimple_seq): Likewise.
6933 (gimple_dump_bb): Likewise.
6934 * sched-vis.c (dump_value_slim): Likewise.
6935 (dump_insn_slim): Likewise.
6936 (dump_rtl_slim): Likewise.
6937 (str_pattern_slim): Likewise.
6938 * tree-mudflap.c (mf_varname_tree): Likewise.
6939 * graph.c (print_graph_cfg): Likewise.
6940 (start_graph_dump): Likewise.
6941 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
6942 placement-new.
6943 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
6944 pretty printer initialization.
6945 * coretypes.h (diagnostic_context): Remove superflous type alias
6946 declaration.
6947 (pretty_printer): Likewise. Declare directly as a class.
6948 (pretty_print_info): Remove declaration as class.
6949 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
6950 and pp_clear_output_area.
6951 (asan_add_global): Likewise.
6952
0e1474e5
JH
69532013-08-22 Jan Hubicka <jh@suse.cz>
6954
6955 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
6956 * ipa-utils.h (update_type_inheritance_graph): Declare.
6957 (possible_polymorphic_call_target_p): Declare.
6958 (possible_polymorphic_call_target_p): New.
6959 * ipa-devirt.c: Update toplevel comments.
6960 (cached_polymorphic_call_targets): Move up.
6961 (odr_type_d): Move ID down.
6962 (polymorphic_type_binfo_p): Update comment.
6963 (odr_hasher::remove): Likewise;
6964 (get_odr_type): Set anonymous_namespace.
6965 (dump_odr_type): Dump it.
6966 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
6967 (maybe_record_node): Record node in cached_polymorphic_call_targets.
6968 (record_binfo): Add comment.
5339fc0c
UB
6969 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
6970 built.
0e1474e5
JH
6971 (devirt_node_removal_hook): Do not iCE when cache is freed.
6972 (possible_polymorphic_call_target_p): New predicate.
6973 (update_type_inheritance_graph): New function.
6974
3f97cb0b
AI
69752013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
6976 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6977 Sergey Lega <sergey.s.lega@intel.com>
6978 Anna Tikhonova <anna.tikhonova@intel.com>
6979 Ilya Tocar <ilya.tocar@intel.com>
6980 Andrey Turetskiy <andrey.turetskiy@intel.com>
6981 Ilya Verbin <ilya.verbin@intel.com>
6982 Kirill Yukhin <kirill.yukhin@intel.com>
6983 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6984
6985 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
6986 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
6987 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
6988 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
6989 (OPTION_MASK_ISA_AVX2_UNSET): Update.
6990 (OPTION_MASK_ISA_AVX512F_UNSET): New.
6991 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
6992 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
6993 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
6994 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
6995 OPT_mavx512pf, OPT_mavx512er cases.
6996 * config/i386/constraints.md (v): New constraint.
6997 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
6998 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
6999 (bit_AVX512CD): New.
7000 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7001 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
7002 * config/i386/i386-c.c (ix86_target_macros_internal):
7003 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
7004 __AVX512PF__.
7005 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
7006 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
7007 * config/i386/i386.c (regclass_map, dbx_register_map)
7008 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
7009 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
7010 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
7011 -mavx512pf options.
7012 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
7013 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
7014 -mavx512pf options. Fix formatting.
7015 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
7016 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
7017 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
7018 -mavx512cd, -mavx512pf options.
7019 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
7020 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
7021 (ix86_preferred_output_reload_class): Replace SSE_REGS with
7022 ALL_SSE_REGS.
7023 (ix86_hard_regno_mode_ok): Support 512-bit registers.
7024 (ix86_set_reg_reg_cost): Ditto.
7025 (x86_order_regs_for_local_alloc): Ditto.
7026 (MAX_VECT_LEN): Extend to 64-byte.
7027 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
7028 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
7029 (TARGET_AVX512ER, TARGET_AVX512CD): New.
7030 (BIGGEST_ALIGNMENT): Extend to 512-bits.
7031 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
7032 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
7033 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
7034 (SSE_REG_MODE_P): Support new modes.
7035 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
7036 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
7037 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
7038 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
7039 (REG_CLASS_CONTENTS): Add new registers.
7040 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
7041 (EXT_REX_SSE_REGNO_P): New.
7042 (HI_REGISTER_NAMES): Add new registers.
7043 * config/i386/i386.md: Define constants for new registers.
7044 (mode): Add new 512-bit modes.
7045 (prefix): Support evex prefix.
7046 (isa): Support avx512f, noavx512f, fma_avx512f.
7047 (ssemodesuffix): Add new 512-bit modes.
7048 (movxi): New.
7049 (*movxi_internal_avx512f): Ditto.
7050 (*movdi_internal): Replace constraint "x" with the new constraint "v".
7051 Support MODE_XI.
7052 (*movsi_internal): Likewise.
7053 (*movdf_internal): Likewise.
7054 (*movsf_internal): Likewise.
7055 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
7056 (<code><mode>3): Likewise.
5339fc0c
UB
7057 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
7058 New.
3f97cb0b
AI
7059 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
7060 with the new constraint "v".
7061 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
7062 modes.
7063 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
7064 with the new constraint "v".
7065 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
7066 (<sse2>_storedqu<avxsizesuffix>): Likewise.
7067 (*<plusminus_insn><mode>3): Likewise.
7068 (<sse>_vm<plusminus_insn><mode>3): Likewise.
7069 (*mul<mode>3): Likewise.
7070 (<sse>_vmmul<mode>3): Likewise.
7071 (<sse>_div<mode>3): Likewise.
7072 (<sse>_vmdiv<mode>3): Likewise.
7073 (<sse>_sqrt<mode>2): Likewise.
7074 (<sse>_vmsqrt<mode>2): Likewise.
7075 (*<code><mode>3_finite): Likewise.
7076 (*<code><mode>3) <smaxmin>: Likewise.
7077 (<sse>_vm<code><mode>3): Likewise.
7078 (*<code><mode>3) <any_logic>: Likewise.
7079 (*fma_fmadd_<mode>): Likewise.
7080 (*fma_fmsub_<mode>): Likewise.
7081 (*fma_fnmadd_<mode>): Likewise.
7082 (*fma_fnmsub_<mode>): Likewise.
7083 (*fma_fmaddsub_<mode>): Likewise.
7084 (*fma_fmsubadd_<mode>): Likewise.
7085 (*fmai_fmadd_<mode>): Likewise.
7086 (*fmai_fmsub_<mode>): Likewise.
7087 (*fmai_fnmadd_<mode>): Likewise.
7088 (*fmai_fnmsub_<mode>): Likewise.
7089 (sse_cvtsi2ss): Likewise.
7090 (sse_cvtsi2ssq): Likewise.
7091 (sse_cvtss2si): Likewise.
7092 (sse_cvtss2si_2): Likewise.
7093 (sse_cvtss2siq): Likewise.
7094 (sse_cvtss2siq_2): Likewise.
7095 (sse_cvttss2si): Likewise.
7096 (sse_cvtss2siq_2): Likewise.
7097 (float<sseintvecmodelower><mode>2): Likewise.
7098 (sse2_cvtsd2si_2): Likewise.
7099 (sse2_cvtsd2siq_2): Likewise.
7100 (*<plusminus_insn><mode>3): Likewise.
7101 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
7102 (*<sse4_1_avx2>_mul<mode>3): Likewise.
7103 (ashr<mode>3): Likewise.
7104 (<shift_insn><mode>3): Likewise.
7105 (avx2_<code><mode>3): Likewise.
7106 (*avx2_<code><mode>3): Likewise.
7107 (*andnot<mode>3): Likewise.
7108 (*<code><mode>3) <any_logic>: Likewise.
7109 (abs<mode>2): Likewise.
7110 (avx2_permvar<mode>): Likewise.
7111 (avx2_perm<mode>_1): Likewise.
7112 (*avx_vpermilp<mode>): Likewise.
7113 (avx_vpermilvar<mode>3): Likewise.
7114 (avx2_ashrv<mode>): Likewise.
7115 (avx2_<shift_insn>v<mode>): Likewise.
7116 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
7117 -mavx512cd.
7118 * doc/rtl.texi: Document XImode.
7119
dd5e8423
JL
71202013-08-21 Jeff Law <law@redhat.com>
7121
b9ebee5d
JL
7122 * tree-flow.h (register_jump_thread): Pass vector of edges
7123 instead of each important edge.
7124 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
7125 thread path into a vector and pass that to register_jump_thread.
7126 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
7127 passed in edge vector to the current 3-edge form.
7128
dd5e8423
JL
7129 Revert:
7130 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7131
9bb6628e 7132 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
7133 delete_unmarked_insns removed anything.
7134
445dc8df
JR
71352013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
7136
7137 * reload.h (struct reg_equivs): Rename to ..
7138 (struct reg_equivs_s): .. this.
7139
e0df53dd
ML
71402013-08-20 Martin Liska <marxin.liska@gmail.com>
7141
7142 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
7143
e7d1d3eb
RO
71442013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7145
5339fc0c 7146 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 7147
5562e26e
JL
71482013-08-21 Jeff Law <law@redhat.com>
7149
7150 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
7151 simplify assignments too. If the RHS collapses to a singleton
7152 range, then return the value for the range.
7153
c7ecdec6
KY
71542013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
7155
7a5911d3
UB
7156 * config/i386/sse.md (V16): Rename to...
7157 (VMOVE): this.
7158 (mov<mode>): Update iterator name.
7159 (*mov<mode>_internal): Ditto.
7160 (push<mode>1): Ditto.
7161 (movmisalign<mode>): Ditto.
c7ecdec6 7162
bfa3b50a
JH
71632013-08-20 Jan Hubicka <jh@suse.cz>
7164
7165 PR bootstrap/58186
7166 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
7167 entry for direct edges.
7168 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
7169
6cd4d135
DM
71702013-08-20 David Malcolm <dmalcolm@redhat.com>
7171
7172 Revert my last two changes, r201865 and r201864:
7173
7174 Revert r201865:
7175 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7176
7177 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7178 instances can own GC refs.
7179
7180 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7181 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7182 (gcc::context::gt_pch_nx): Likewise.
7183 (gcc::context::gt_pch_nx): Likewise.
7184 * ggc.h (gt_ggc_mx <T>): New.
7185 (gt_pch_nx_with_op <T>): New.
7186 (gt_pch_nx <T>): New.
7187 * passes.c (opt_pass::gt_ggc_mx): New.
7188 (opt_pass::gt_pch_nx): New.
7189 (opt_pass::gt_pch_nx_with_op): New.
7190 (pass_manager::gt_ggc_mx): New.
7191 (pass_manager::gt_pch_nx): New.
7192 (pass_manager::gt_pch_nx_with_op): New.
7193 (pass_manager::operator new): Use
7194 ggc_internal_cleared_alloc_stat rather than xcalloc.
7195 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7196 (pass_manager::gt_ggc_mx): New.
7197 (pass_manager::gt_pch_nx): New.
7198 (pass_manager::gt_pch_nx_with_op): New.
7199 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7200 (opt_pass::operator new): New.
7201 (opt_pass::gt_ggc_mx): New.
7202 (opt_pass::gt_pch_nx): New.
7203 (opt_pass::gt_pch_nx_with_op): New.
7204
7205 Revert r201864:
7206 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7207
7208 * Makefile.in (GTFILES): Add context.h.
7209 * context.c (gcc::context::operator new): New.
7210 (gcc::context::gt_ggc_mx): New.
7211 (gcc::context::gt_pch_nx): New.
7212 (gcc::context::gt_pch_nx): New.
7213 * context.h (gcc::context): Add GTY((user)) marking.
7214 (gcc::context::operator new): New.
7215 (gcc::context::gt_ggc_mx): New.
7216 (gcc::context::gt_pch_nx): New.
7217 (gcc::context::gt_pch_nx): New.
7218 (g): Add GTY marking.
7219 (gt_ggc_mx (gcc::context *)): New.
7220 (gt_pch_nx (gcc::context *)): New.
7221 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7222 void *cookie)): New.
7223 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7224
a046136a
AM
72252013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7226
7227 * dce.c (fini_dce): Call df_analyze again just in case
7228 delete_unmarked_insns removed anything.
7229
67598720
TJ
72302013-08-20 Teresa Johnson <tejohnson@google.com>
7231
7232 PR rtl-optimizations/57451
7233 * final.c (reemit_insn_block_notes): Prevent lexical blocks
7234 from crossing split section boundaries.
7235
f8693faf
MGD
72362013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
7237
7238 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
7239 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
7240 with MULTLIB_DEFAULTS.
7241
7d0b9a9c
NC
72422013-08-20 Nick Clifton <nickc@redhat.com>
7243
7244 * target.def (narrow_volatile_bitfield): Note that the default
7245 value is false, not !TARGET_STRICT_ALIGN.
7246 * doc/tm.texi: Regenerate.
7247
8edb8dc8
PC
72482013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
7249
7250 Fix LIB_SPEC for systems without libpthread.
7251
7252 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
7253 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
7254 for Android.
7255 * config/i386/linux-common.h: Likewise.
7256 * config/mips/linux-common.h: Likewise.
7257
12211b99 72582013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
7259
7260 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
7261 checks.
7262
e42c64cb
DM
72632013-08-20 David Malcolm <dmalcolm@redhat.com>
7264
7265 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7266 instances can own GC refs.
7267
7268 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7269 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7270 (gcc::context::gt_pch_nx): Likewise.
7271 (gcc::context::gt_pch_nx): Likewise.
7272 * ggc.h (gt_ggc_mx <T>): New.
7273 (gt_pch_nx_with_op <T>): New.
7274 (gt_pch_nx <T>): New.
7275 * passes.c (opt_pass::gt_ggc_mx): New.
7276 (opt_pass::gt_pch_nx): New.
7277 (opt_pass::gt_pch_nx_with_op): New.
7278 (pass_manager::gt_ggc_mx): New.
7279 (pass_manager::gt_pch_nx): New.
7280 (pass_manager::gt_pch_nx_with_op): New.
7281 (pass_manager::operator new): Use
7282 ggc_internal_cleared_alloc_stat rather than xcalloc.
7283 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7284 (pass_manager::gt_ggc_mx): New.
7285 (pass_manager::gt_pch_nx): New.
7286 (pass_manager::gt_pch_nx_with_op): New.
7287 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7288 (opt_pass::operator new): New.
7289 (opt_pass::gt_ggc_mx): New.
7290 (opt_pass::gt_pch_nx): New.
7291 (opt_pass::gt_pch_nx_with_op): New.
7292
910c02a0
DM
72932013-08-20 David Malcolm <dmalcolm@redhat.com>
7294
7295 * Makefile.in (GTFILES): Add context.h.
7296 * context.c (gcc::context::operator new): New.
7297 (gcc::context::gt_ggc_mx): New.
7298 (gcc::context::gt_pch_nx): New.
7299 (gcc::context::gt_pch_nx): New.
7300 * context.h (gcc::context): Add GTY((user)) marking.
7301 (gcc::context::operator new): New.
7302 (gcc::context::gt_ggc_mx): New.
7303 (gcc::context::gt_pch_nx): New.
7304 (gcc::context::gt_pch_nx): New.
7305 (g): Add GTY marking.
7306 (gt_ggc_mx (gcc::context *)): New.
7307 (gt_pch_nx (gcc::context *)): New.
7308 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7309 void *cookie)): New.
7310 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7311
af4b4236
AM
73122013-08-20 Alan Modra <amodra@gmail.com>
7313
7314 PR target/57865
7315 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
7316 (rs6000_emit_epilogue): Likewise.
7317
12211b99 73182013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
7319
7320 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
7321
e2323f5b
PB
73222013-08-19 Peter Bergner <bergner@vnet.ibm.com>
7323 Jakub Jelinek <jakub@redhat.com>
7324
7325 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
7326 (BUILT_IN_FABSD64): Likewise.
7327 (BUILT_IN_FABSD128): Likewise.
7328 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
7329 (fold_builtin_1): Likewise.
5339fc0c
UB
7330 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
7331 destination and source operands.
e2323f5b
PB
7332 (*abstd2_fpr): Likewise.
7333 (*nabstd2_fpr): Likewise.
7334
cfbf3ee8
RS
73352013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
7336
7337 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
7338 JUMP_P and INSN_P.
7339
d3136aeb
AH
73402013-08-19 Aldy Hernandez <aldyh@redhat.com>
7341
7342 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
7343 incomplete.
7344
d33d9e47
AI
73452013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
7346
7347 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
7348 * builtins.c (default_libc_has_function): New.
7349 (gnu_libc_has_function): Ditto.
7350 (no_c99_libc_has_function): Ditto.
7351 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
7352 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
7353 (fold_builtin_sincos): Likewise.
7354 (fold_builtin_cexp): Likewise.
7355 * builtins.def (DEF_C94_BUILTIN): Likewise.
7356 (DEF_C99_BUILTIN): Likewise.
7357 (DEF_C99_C90RES_BUILTIN): Likewise.
7358 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
7359 definitions to using this define.
7360 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 7361 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
7362 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
7363 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
7364 * config/darwin.h: Ditto.
7365 * config/elfos.h: Ditto.
7366 * config/freebsd.h: Ditto.
7367 * config/i386/cygming.h: Ditto.
7368 * config/i386/djgpp.h: Ditto.
7369 * config/i386/i386-interix.h: Ditto.
7370 * config/microblaze/microblaze.h: Ditto.
7371 * config/mmix/mmix.h: Ditto.
7372 * config/gnu-user.h: Ditto.
7373 * config/ia64/hpux.h: Ditto.
7374 * config/pa/pa-hpux.h: Ditto.
7375 * config/pdp11/pdp11.h: Ditto.
7376 * config/picochip/picochip.h: Ditto.
7377 * config/linux.h: Ditto.
7378 * config/netbsd.h: Ditto.
7379 * config/openbsd.h: Ditto.
7380 * config/rs6000/aix43.h: Ditto.
7381 * config/rs6000/aix51.h: Ditto.
7382 * config/rs6000/aix52.h: Ditto.
7383 * config/rs6000/aix53.h: Ditto.
7384 * config/rs6000/aix61.h: Ditto.
7385 * config/rs6000/darwin.h: Ditto.
7386 * config/rs6000/linux.h: Ditto.
7387 * config/rs6000/linux64.h: Ditto.
7388 * config/s390/tpf.h: Ditto.
7389 * config/sol2-10.h: Ditto.
7390 * config/sol2.h: Ditto.
7391 * config/vms/vms.h: Ditto.
7392 * config/vxworks.h: Ditto.
7393 * config/linux-android.c (linux_android_libc_has_function):
7394 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
7395 * config/linux-protos.h (linux_android_libc_has_function):
7396 New declaration.
7397 * config/i386/i386.c (ix86_libc_has_function): New.
7398 * config/i386/i386-protos.h
7399 (ix86_libc_has_function): New declaration.
7400 * config/i386/i386.md
7401 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
7402 ("isinf<mode>2): Likewise.
7403 * convert.c (convert_to_integer): Using new target hook
7404 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
7405 TARGET_C99_FUNCTIONS.
7406 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
7407 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
7408 * coretypes.h (function_class): New enum for different
7409 classes of functions.
7410 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
7411 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
7412 (TARGET_HAS_SINCOS): Likewise.
7413 (TARGET_LIBC_HAS_FUNCTION): New.
7414 * doc/tm.texi: Regenerated.
7415 * targhooks.h (default_libc_has_function): New declaration.
7416 (no_c99_libc_has_function): Ditto.
7417 (gnu_libc_has_function): Ditto.
7418 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
7419 and TARGET_HAS_SINCOS.
7420
eefe9a99
JH
74212013-08-18 Jan Hubicka <jh@suse.cz>
7422
7423 * Makeifle-in (ipa-devirt.o): New.
7424 (GTFILES): Add ipa-utils.h and ipa-devirt.c
7425 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
7426 (analyze_functions): Look into possible targets of polymorphic call.
7427 * dumpfile.c (dump_files): Add type-inheritance dump.
7428 * dumpfile.h (TDI_inheritance): New.
7429 * ipa-devirt.c: New file.
7430 * ipa-utils.h (odr_type_d): Forward declare.
7431 (odr_type): New type.
7432 (build_type_inheritance_graph): Declare.
7433 (possible_polymorphic_call_targets): Declare and introduce inline
7434 variant when only edge is pased.
7435 (dump_possible_polymorphic_call_targets): Likewise.
7436 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
7437 * tree.c (type_in_anonymous_namespace_p): Break out from ...
7438 (types_same_for_odr): ... here.
7439 * tree.h (type_in_anonymous_namespace_p): Declare.
7440
29b89442
JJ
74412013-08-18 Jakub Jelinek <jakub@redhat.com>
7442
7443 PR tree-optimization/58006
7444 * tree-parloops.c (take_address_of): Don't ICE if get_name
7445 returns NULL.
7446 (eliminate_local_variables_stmt): Remove clobber stmts.
7447
4f219961
EB
74482013-08-18 Eric Botcazou <ebotcazou@adacore.com>
7449
7450 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
7451 error message is issued for an alias to undefined symbol.
7452
1d5755ef
JH
74532013-08-18 Jan Hubicka <jh@suse.cz>
7454
7455 * cgraph.c (cgraph_create_indirect_edge): Discover
7456 polymorphic calls and record basic info into indirect_info.
7457 * gimple-fold.c (gimple_fold_call): When doing BINFO based
7458 devirtualization, ignore objc function calls.
7459 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
7460 call with no parm index info.
7461 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
7462 * tree.c (virtual_method_call_p): New function.
7463 * tree.h (virtual_method_call_p): Declare.
7464
5945bebf
JH
74652013-08-16 Jan Hubicka <jh@suse.cz>
7466
7467 PR middle-end/58179
7468 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
7469
47fa5d23
DE
74702013-08-16 David Edelsohn <dje.gcc@gmail.com>
7471
7472 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
7473 attribute.
7474
c74f54a0
DM
74752013-08-16 David Malcolm <dmalcolm@redhat.com>
7476
7477 * gengtype.c (type_for_name): Add special-case support for
7478 locating types within the "gcc::" namespace.
7479 (open_base_files): Emit a "using namespace gcc" directive.
7480
f758f299
MM
74812013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
7482
7483 PR target/58160
7484 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
7485 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
7486
7487 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
7488 array instead of each individual operand as a separate argument.
7489 (emit_fusion_gpr_load): Likewise.
7490 (expand_fusion_gpr_load): Add new function declaration.
7491
7492 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
7493 signature to have the operands passed as an array, instead of as
7494 separate arguments. Allow ZERO_EXTEND to be in the memory
7495 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
7496 depend on the register live/dead flags when peepholes are run.
7497 (expand_fusion_gpr_load): New function to be called from the
7498 peephole2 pass, to change the register that addis sets to be the
7499 target register.
7500 (emit_fusion_gpr_load): Change the calling signature to have the
7501 operands passed as an array, instead of as separate arguments.
7502 Allow ZERO_EXTEND to be in the memory address, and also
7503 SIGN_EXTEND if -mpower8-fusion-sign.
7504
7505 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
7506 unspec enumeration.
7507 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
7508 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 7509 depend on the register live/dead state when the peephole pass is done.
f758f299 7510
158f4e4f
DM
75112013-08-16 David Malcolm <dmalcolm@redhat.com>
7512
7513 * gengtype.c (create_user_defined_type): Ensure that the kind
7514 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
7515 declaration is seen before the GTY((user)) marking.
7516
22f8cea5
BE
75172013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
7518
7519 PR target/58105
7520 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
7521
c49bdb2e
JH
75222013-08-16 Jan Hubicka <jh@suse.cz>
7523
7524 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
7525 arugment expected_type.
7526 (gimple_fold_call): Use it.
7527 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
7528 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 7529 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
7530 (try_make_edge_direct_virtual_call): Likewise.
7531 * tree.c (obj_type_ref_class): New.
7532 * tree.h (obj_type_ref_class): Use it.
7533
4042dca9
GDR
75342013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
7535
7536 * sched-vis.c (rtl_slim_pp_initialized): Remove.
7537 (rtl_slim_pp): Likewise.
7538 (init_rtl_slim_pretty_print): Likewise.
7539 (dump_value_slim): Don't call it. Use local pretty printer.
7540 (dump_insn_slim): Likewise.
7541 (dump_rtl_slim): Likewise.
7542 (str_pattern_slim): Likewise.
7543 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
7544 Simplify.
7545
7a460594
JJ
75462013-08-16 Jakub Jelinek <jakub@redhat.com>
7547
639dc669
JJ
7548 PR tree-optimization/58164
7549 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
7550 walk gimple_goto_dest of GIMPLE_GOTO.
7551
7a460594
JJ
7552 PR tree-optimization/58165
7553 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
7554 bi_call must be the last stmt in a bb, don't split_block, instead
7555 use fallthru edge from it and give up if there is none.
7556 Release conds vector when returning early.
7557
e3c02cc7
XDL
75582013-08-14 Xinliang David Li <davidxl@google.com>
7559
7560 * config/i386/i386.c (ix86_option_override_internal):
7561 Remove unused variable and field.
7562
6469da2c
BS
75632013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7564
7565 PR target/57949
22f8cea5 7566 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
7567 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
7568 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
7569 and Linux, correct BLKmode alignment when 128-bit alignment is
7570 required and compatibility flag is not set.
22f8cea5
BE
7571 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
7572 for zero-size arguments when compatibility flag is not set.
6469da2c 7573
4ca890e2
JJ
75742013-08-14 Jakub Jelinek <jakub@redhat.com>
7575
7576 PR tree-optimization/58145
7577 * tree-sra.c (build_ref_for_offset): If prev_base has
7578 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
7579
daec1759 75802013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 7581
daec1759 7582 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 7583 Fix uninitialized variable error.
daec1759 7584
3ad20bd4
XDL
75852013-08-14 Xinliang David Li <davidxl@google.com>
7586
7587 * config/i386/i386.opt: Define two new options.
7588 * config/i386/x86-tune.def: Add arch selector field in macros.
7589 * config/i386/i386.h: Adjust macro definition.
7590 * config/i386/i386.c (ix86_option_override_internal):
7591 Refactor the code.
7592 (parse_mtune_ctrl_str): New function.
7593 (set_ix86_tune_features): New function.
7594 (ix86_function_specific_restore): Call the new helper function.
7595
e839e2a9
AB
75962013-08-14 Andrey Belevantsev <abel@ispras.ru>
7597
7598 PR rtl-optimization/57662
7599 * sel-sched.c (code_motion_process_successors): When the current insn
7600 is removed after the recursive traversal, break from the loop.
7601 Add comments and debug printouts.
7602
27ed665f
JJ
76032013-08-14 Jakub Jelinek <jakub@redhat.com>
7604 Alexandre Oliva <aoliva@redhat.com>
7605
7606 PR target/58067
7607 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
7608 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
7609 there also UNSPEC_PLTOFF.
7610
61c1a609
MP
76112013-08-14 Marek Polacek <polacek@redhat.com>
7612
7613 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
7614 NUM_CONDITIONS bit positions.
7615
0e901c67
CC
76162013-08-13 Cary Coutant <ccoutant@google.com>
7617
7618 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
7619 (attr_checksum): Hash vector contents instead of pointer.
7620 (attr_checksum_ordered): Likewise.
7621
061eff6d
UB
76222013-08-13 Uros Bizjak <ubizjak@gmail.com>
7623
7624 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
7625 when Pmode != word_mode. Add length_address attribute.
7626 (sse3_monitor_<mode>): Merge from sse3_monitor and
7627 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
7628 Pmode != word_mode. Update insn length attribute.
7629 * config/i386/i386.c (ix86_option_override_internal): Update
7630 ix86_gen_monitor selection for merged sse3_monitor insn.
7631
8ec9249b
JB
76322013-08-13 Julian Brown <julian@codesourcery.com>
7633
7634 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7635 perform invalid legitimization on greater-than-word-size modes for
7636 TARGET_E500_DOUBLE.
7637
761a8eb7
VM
76382013-08-13 Vladimir Makarov <vmakarov@redhat.com>
7639
7640 * ira.c (setup_class_translate_array): Use aclass instead of cl
7641 for classes not fully covered by allocno classes.
7642
99c2bd54
JJ
76432013-08-13 Jakub Jelinek <jakub@redhat.com>
7644
4029a5e0
JJ
7645 PR tree-optimization/57661
7646 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
7647 * tree-inline.c (tree_function_versioning): Initialize it.
7648 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
7649 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
7650 that is not being copied.
7651
99c2bd54
JJ
7652 PR sanitizer/56417
7653 * asan.c (instrument_strlen_call): Fix typo in comment.
7654 Use char * type even for the lhs of POINTER_PLUS_EXPR.
7655
b5f8f063
SE
76562013-08-13 Steve Ellcey <sellcey@mips.com>
7657
7658 * config/mips/mips.md (prefetch): Use lw instead of ld on
7659 loongson in 32bit mode.
7660
4de80584
NC
76612013-08-13 Nick Clifton <nickc@redhat.com>
7662
7663 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
7664
09ce3660
JH
76652013-08-13 Jan Hubicka <jh@suse.cz>
7666
7667 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
7668 introduced edge; fix typo in sanity check.
7669 (cgraph_resolve_speculation): Export; improve diagnostic.
7670 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
7671 speculation at type mismatch.
7672 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
7673 (cgraph_resolve_speculation): Declare.
7674 (symtab_can_be_discarded): New function.
7675 * value-prof.c (gimple_ic_transform): Remove actual transform code.
7676 * ipa-inline-transform.c (speculation_removed): New global var.
7677 (clone_inlined_nodes): See if speculation can be removed.
7678 (inline_call): If speculations was removed, we growths may not match.
7679 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
7680 (speculation_useful_p): New function.
7681 (resolve_noninline_speculation): New function.
7682 (inline_small_functions): Resolve useless speculations.
7683 * ipa-inline.h (speculation_useful_p): Declare
7684 * ipa.c (can_replace_by_local_alias): Simplify.
7685 (ipa_profile): Produce speculative calls in non-lto, too;
7686 add simple cost model; produce local aliases.
7687
f971dc24
DM
76882013-08-13 David Malcolm <dmalcolm@redhat.com>
7689
7690 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 7691 PASS_MANAGER_H.
f971dc24 7692
2e507b9a
PC
76932013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
7694
7695 * config/i386/i386.c (ix86_function_versions): Use error + inform.
7696
c97fd4b8
UB
76972013-08-12 Uros Bizjak <ubizjak@gmail.com>
7698
7699 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
7700 iterator instead of X87MODEF.
7701
77022013-08-12 Perez Read <netfirewall@gmail.com>
7703
7704 PR target/58132
7705 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
7706 operand 0 for intel asm alternative.
7707 (*movabs<mode>_2): Ditto for operand 1.
7708
f4f4204c
JG
77092013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
7710
7711 * config/aarch64/arm_none.h
7712 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
7713
133b1a8e
NC
77142013-08-12 Nick Clifton <nickc@redhat.com>
7715
7716 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
7717
15dd8b3a
YR
77182013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
7719
7720 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
7721 expand for QI/HImode operand to produce more effictive code for
7722 unsigned char(short) --> float(double) conversion.
7723
94109a6a
AM
77242013-08-12 Alexander Monakov <amonakov@ispras.ru>
7725
7726 * doc/invoke.texi: Mention that -ftls-model does not force the final
7727 model.
7728
4e115102
MP
77292013-08-12 Marek Polacek <polacek@redhat.com>
7730 Marc Glisse <marc.glisse@inria.fr>
7731
7732 PR tree-optimization/57980
7733 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
7734 when creating -1 constant.
7735
748d71f3
JH
77362013-08-10 Jan Hubicka <jh@suse.cz>
7737
1f97e193 7738 Workaround binutils PR14342.
748d71f3
JH
7739 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
7740 (gimple_init_edge_profiler): Likewise.
7741 (gimple_gen_ic_func_profiler): Likewise.
7742
5979aa54
JH
77432013-08-09 Jan Hubicka <jh@suse.cz>
7744
7745 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
7746
ad83025e
XDL
77472013-08-09 Xinliang David Li <davidxl@google.com>
7748
7749 * config/i386/stringop.def: New file.
7750 * config/i386/stringop.opt: New file.
7751 * config/i386/i386-opts.h: Include stringopt.def.
7752 * config/i386/i386.opt: Include stringopt.opt.
7753 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 7754 Override default size based stringop inline strategies with options.
ad83025e
XDL
7755 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
7756 New function.
7757
e59df5fd
JH
77582013-08-09 Jan Hubicka <jh@suse.cz>
7759
c97fd4b8 7760 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 7761
634ab819
JH
77622013-08-09 Jan Hubicka <jh@suse.cz>
7763
7764 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
7765 CGRAPH_FREQ_MAX.
7766 (dump_cgraph_node): Dump profile-id.
7767 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
7768 and common_target_probability.
7769 * lto-cgraph.c (lto_output_edge): Stream common targets.
7770 (lto_output_node): Stream profile ids.
7771 (input_node): Stream profile ids.
7772 (input_edge): Stream common targets.
7773 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
7774 * ipa.c: Include value-prof.h
7775 (ipa_profile_generate_summary): Turn indirect call statement histograms
7776 into common targets.
7777 (ipa_profile): Turn common targets into speculative edges.
7778
2fa3d31b
JH
77792013-08-09 Jan Hubicka <jh@suse.cz>
7780
7781 * cgraph.h (cgraph_node): Add profile_id.
7782 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 7783 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
7784 (del_node_map): Update.
7785 (find_func_by_funcdef_no): Replace by ...
7786 (find_func_by_profile_id): ... this one.
7787 (gimple_ic_transform): Do not remove useful histograms when
7788 speculation is not done; dump info when indirect call removal
7789 can happen at LTO.
7790 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
7791 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
7792 (__gcov_indirect_call_profiler_v2): .. this one.
7793 * profile.h (init_node_map): Update.
7794 * coverage.c (coverage_compute_profile_id): New function.
7795 * coverage.h (coverage_compute_profile_id): Declare.
7796 * tree-profile.c (init_ic_make_global_vars): Make
7797 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
7798 (gimple_init_edge_profiler): Update prototype of
7799 __gcov_indirect_call_profiler.
7800 (gimple_gen_ic_func_profiler): Simplify.
7801 (tree_profiling): Use init_node_map
7802
042ae7d2
JH
78032013-08-09 Jan Hubicka <jh@suse.cz>
7804
c97fd4b8
UB
7805 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
7806 non-speculative refs.
042ae7d2
JH
7807 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
7808 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
7809 (cgraph_set_call_stmt): Likewise.
7810 (cgraph_create_edge_1): Fix release checking compilatoin;
7811 clear lto_stmt_uid.
7812 (cgraph_free_edge): Free indirect info.
7813 (cgraph_turn_edge_to_speculative): New function.
7814 (cgraph_speculative_call_info): New function.
7815 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 7816 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
7817 (dump_cgraph_node): Dump speculation.
7818 (verify_edge_count_and_frequency): Accept speculative edges.
7819 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
7820 (verify_cgraph_node): Handle speculation.
7821 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
7822 (cgraph_set_call_stmt): Update prototype.
7823 (cgraph_make_edge_direct): Update prototype.
7824 (cgraph_speculative_call_info): Declare.
7825 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
7826 to change; update call of ipa_find_references.
7827 * ipa-ref.c (ipa_record_reference): Fix return value; clear
7828 lto_stmt_uid and speculative flags.
7829 (ipa_dump_references): Dump speculation.
7830 (ipa_clone_references): Clone speculative flag.
7831 (ipa_clone_referring): Likewise.
7832 (ipa_clone_ref): New function.
7833 (ipa_find_reference): Look into lto_stmt_uids
7834 (ipa_clear_stmts_in_references): Do not clear speculative calls.
7835 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
7836 (ipa_find_reference): Update declaration.
7837 (ipa_clone_ref): Declare.
7838 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
7839 stream speculative flag.
7840 (lto_output_ref): Stream statements uids and speculation.
7841 (input_ref): Likewise.
7842 (input_edge): Stream speuclation.
7843 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
7844 (cgraph_set_call_stmt_including_clones): Handle speculation.
7845 * ipa-inline.c (heap_edge_removal_hook): New function.
7846 (inline_small_functions): Register it.
7847 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
7848 also initialize refs.
7849 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
7850 edge to change.
7851 (try_make_edge_direct_simple_call): Likewise.
7852 (try_make_edge_direct_simple_call): Likewise.
7853 (update_indirect_edges_after_inlining): Likewise.
7854 (remove_described_reference): Look proper lto_stmt_uid.
7855 (propagate_controlled_uses): Likewise.
7856 (propagate_controlled_uses): Liekwise.
7857 * tree-inline.c (copy_bb): Copy speculative edges.
7858 (redirect_all_calls): New function.
c97fd4b8
UB
7859 (copy_cfg_body): Do redirection after loop info is updated.
7860 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 7861
aa1e10cc
JH
78622013-08-09 Jan Hubicka <jh@suse.cz>
7863
7864 * lto-streamer-out.c (output_function): Renumber PHIs.
7865 * lto-streamer-in.c (input_function): Likewise.
7866
66adb8eb
JG
78672013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
7868
7869 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
7870 (get_lane_unsigned): Likewise.
7871 (dup_lane_scalar): Likewise.
7872 (get_lane): enable for VALL.
7873 * config/aarch64/aarch64-simd.md
7874 (aarch64_dup_lane_scalar<mode>): Remove.
7875 (aarch64_get_lane_signed<mode>): Likewise.
7876 (aarch64_get_lane_unsigned<mode>): Likewise.
7877 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
7878 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
7879 (aarch64_get_lane<mode>): Enable for all vector modes.
7880 (aarch64_get_lanedi): Remove misleading constraints.
7881 * config/aarch64/arm_neon.h
7882 (__aarch64_vget_lane_any): Define.
7883 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
7884 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
7885 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
7886 * config/aarch64/iterators.md (VDQQH): New.
7887 (VDQQHS): Likewise.
7888 (vwcore): Likewise.
7889
1f65ae7a
EB
78902013-08-09 Eric Botcazou <ebotcazou@adacore.com>
7891
7892 * configure.ac: Add GAS check for LEON instructions on SPARC.
7893 * configure: Regenerate.
7894 * config.in: Likewise.
7895 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
7896 sparc*-*-* block.
7897 * config/sparc/sparc.opt (LEON, LEON3): New masks.
7898 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
7899 for LEON or LEON3.
7900 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
7901 (AS_LEON_FLAG): New macro.
7902 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
7903 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
7904 Deal with LEON and LEON3 for the memory model.
23a6cb78 7905 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
7906 (atomic_compare_and_swap<mode>_1): Likewise.
7907 (*atomic_compare_and_swap<mode>_1): Likewise.
7908
ff522f7f
ZC
79092013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7910
7911 * config/arm/neon.md (vcond): Fix floating-point vector
7912 comparisons against 0.
7913
cb1cca12
VM
79142013-08-08 Vladimir Makarov <vmakarov@redhat.com>
7915
7916 * lra-constraints.c (emit_spill_move): Remove assert.
7917 (process_alt_operands): Add more debugging
7918 output. Increase reject for spilling into memory. Decrease
7919 reject for reloading scratch.
7920 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
7921
a3719e31
SE
79222013-08-08 Steve Ellcey <sellcey@mips.com>
7923
7924 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
7925 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
7926 micromips incompatible. Add nan2008.
7927 (MULTILIB_DIRNAMES): Add nan2008.
7928 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
7929 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
7930 and micromips incompatible. Add nan2008.
7931 (MULTILIB_DIRNAMES): Add nan2008.
7932 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
7933
f40423e2
RS
79342013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
7935
7936 PR rtl-optimization/58079
7937 * combine.c (combine_simplify_rtx): Avoid using SUBST if
7938 simplify_comparison has widened a comparison with an integer.
7939
869b9125
KT
79402013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7941
7942 * config/arm/neon.md (movmisalign<mode>): Disable when we
7943 don't allow unaligned accesses.
7944 (*movmisalign<mode>_neon_store): Likewise.
7945 (*movmisalign<mode>_neon_load): Likewise.
7946 (*movmisalign<mode>_neon_store): Likewise.
7947 (*movmisalign<mode>_neon_load): Likewise.
7948
71cafea9
JH
79492013-08-08 Jan Hubicka <jh@suse.cz>
7950
7951 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
7952 (make_pass_rebuild_cgraph_edges): Also clear references.
7953 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
7954 * ipa-inline-transform.c (inline_transform): Remove all references
7955 after inlining.
c97fd4b8
UB
7956 * cgraphunit.c (expand_function): Remove all references after
7957 expansion.
71cafea9
JH
7958 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
7959 (ipa_find_reference): Rewrite to iterator.
7960 (remove_stmt_references): Likewise.
7961 (ipa_clear_stmts_in_references): New function.
7962 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
7963 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
7964 clear references.
71cafea9
JH
7965 * ipa-split.c (split_function): Remove references in split function.
7966
27d2e612
RE
79672013-08-08 Richard Earnshaw <rearnsha@arm.com>
7968
7969 PR target/57431
1f65ae7a 7970 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
7971 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
7972
5efc661c
RE
79732013-08-08 Richard Earnshaw <rearnsha@arm.com>
7974
7975 PR target/56979
1f65ae7a 7976 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
7977 suggested mode for the assignment isn't compatible with the
7978 registers required.
7979
f276d31d
BE
79802013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
7981
7982 PR target/58065
7983 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
7984
4b8bc035
XDL
79852013-08-07 Xinliang David Li <davidxl@google.com>
7986
7987 * config/i386/i386.opt: New option -mtune-ctrl=.
7988 * config/i386/x86-tune.def: New file.
7989 * config/i386/i386.h: include x86-tune.def.
7990 * config/i386/i386.c (ix86_option_override_internal):
7991 Parsing -mtune-ctrl= option and set tune features.
7992
12211b99 79932013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
7994
7995 PR other/12081
03b0ee0a 7996 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
7997 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
7998 to gen_2arg_fn_t.
7999
5cf6635b
EB
80002013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8001
8002 * rtl.h (update_alignments): Declare.
8003 * final.c (grow_label_align): New function extracted from...
8004 (shorten_branches): ...here. Call it.
8005 (update_alignments): New function.
8006 * reorg.c (sibling_labels): New variable.
8007 (get_label_before): Add SIBLING parameter. If it is non-zero, push
8008 the new label along with it onto the sibling_labels vector.
8009 (fill_simple_delay_slots): Adjust call to get_label_before.
8010 (fill_slots_from_thread): Likewise.
8011 (relax_delay_slots): Likewise.
8012 (make_return_insns): Likewise.
8013 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
8014
3c8ca1ab
EB
80152013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8016
8017 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
8018 document its semantics.
8019 (diagnostic_report_diagnostic): Adjust accordingly.
8020
5ee5b32c
DM
80212013-08-07 David Malcolm <dmalcolm@redhat.com>
8022
03b0ee0a 8023 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
8024 (sparc_option_override): ...and port to new C++ pass API.
8025 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
8026
abd566fa
PB
80272013-08-07 Peter Bergner <bergner@vnet.ibm.com>
8028
8029 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
8030
2077db1b
CT
80312013-08-06 Caroline Tice <cmtice@google.com>
8032
8033 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
8034 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
8035 * tree-pass.h: Add pass_vtable_verify.
8036 * varasm.c (assemble_variable): Add code to properly set the comdat
8037 section and name for the .vtable_map_vars section.
8038 (assemble_vtyv_preinit_initializer): New function.
8039 (default_sectin_type_flags): Make sure .vtable_map_vars section has
8040 LINK_ONCE flag.
8041 * output.h: Add function decl for assemble_vtv_preinit_initializer.
8042 * vtable-verify.c: New file.
8043 * vtable-verify.h: New file.
8044 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
8045 initialiation levels.
8046 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
8047 * passes.def: Insert pass_vtable_verify.
8048 * aclocal.m4: Reorder includes.
8049 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
8050 -fvtv-counts options.
8051 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
8052 as appropriate, if -fvtable-verify=... is used.
8053 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
8054 -fvtable-verify=... is used.
8055 * Makefile.in (OBJS): Add vtable-verify.o to list.
8056 (vtable-verify.o): Add new build rule.
8057 (GTFILES): Add vtable-verify.c to list.
8058 * common.opt (fvtable-verify=): New flag.
8059 (vtv_priority): Values for fvtable-verify= flag.
8060 (fvtv-counts): New flag.
8061 (fvtv-debug): New flag.
8062 * tree.h (save_vtable_map_decl): New extern function decl.
8063
03085d1c
DM
80642013-08-07 David Malcolm <dmalcolm@redhat.com>
8065
8066 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
8067 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
8068 (pass_data_rl78_devirt): ...new pass_data instance and...
8069 (make_pass_rl78_devirt): ...new function.
8070 (rl78_asm_file_start): Port pass registration to new C++ API.
8071
05555c4a
DM
80722013-08-07 David Malcolm <dmalcolm@redhat.com>
8073
8074 * coretypes.h (rtl_opt_pass): Add.
8075 (gcc::context): Add.
8076 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
8077 (epiphany_init): Port to new C++ pass API.
8078 (epiphany_optimize_mode_switching): Likewise.
8079 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
8080 (pass_manager::get_pass_mode_switching): New.
8081 (pass_manager::get_pass_peephole2): New.
8082 * mode-switching.c (pass_mode_switching): Add clone method.
8083 * recog.c (pass_peephole2): Add clone method.
8084 (pass_split_all_insns): Add clone method.
8085
c5a12e26
DM
80862013-08-06 David Malcolm <dmalcolm@redhat.com>
8087
03b0ee0a
UB
8088 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
8089 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 8090
a2e2a668
JH
80912013-08-06 Jan Hubicka <jh@suse.cz>
8092
8093 * cgraph.c (cgraph_get_body): New function based on lto.c
8094 implementation.
8095 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
8096 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
8097 LTO paths.
a2e2a668
JH
8098 * cgraphunit.c (expand_function): Get body prior expanding.
8099 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
8100 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
8101 really need.
a2e2a668
JH
8102 * passes.c (do_per_function_toporder): Get body.
8103 * tree-inline.c (expand_call_inline): Get body prior inlining it.
8104 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
8105
15682f24
MJ
81062013-08-06 Martin Jambor <mjambor@suse.cz>
8107
8108 PR fortran/57987
8109 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
8110 is not re-finalized. Rename second parameter to no_collect.
8111
78f6dd68
MJ
81122013-08-06 Martin Jambor <mjambor@suse.cz>
8113
8114 PR middle-end/58041
8115 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
8116 MEM_REF has proper alignment information.
8117
12211b99 81182013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
8119
8120 PR other/12081
8121 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
8122 class insn_gen_fn.
8123 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
8124 rtx (*) (rtx, ...) with insn_gen_fn.
8125 * genoutput.c (output_insn_data): Cast gen_? function pointers to
8126 insn_gen_fn::stored_funcptr. Add initializer braces.
8127
8ac69a6c
DM
81282013-08-05 David Malcolm <dmalcolm@redhat.com>
8129
8130 Rewrite how instances of passes are cloned to remove assumptions
8131 about their sizes (thus allowing pass subclasses to have
8132 additional data fields, albeit non-GC-managed ones at this point).
8133
8134 * passes.c (make_pass_instance): Now that passes have clone
8135 methods, rewrite this function to eliminate XNEW and memcpy
8136 calls that used hardcoded sizes. Since this function no longer
8137 creates pass instances, rename it to...
03b0ee0a
UB
8138 (add_pass_instance): ...this. Document the old way that passes were
8139 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
8140 (next_pass_1): Add an initial_pass argument for use by
8141 add_pass_instance.
8142 (position_pass): When adding multiple instances of a pass, use
8143 the pass's clone method, rather than relying on the XNEW/memcpy
8144 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
8145 (pass_manager::pass_manager): When invoking next_pass_1, also supply
8146 the initial instance of the current pass within the pass manager.
8ac69a6c 8147
27a4cd48
DM
81482013-08-05 David Malcolm <dmalcolm@redhat.com>
8149
8150 This is the automated part of the conversion of passes from C
8151 structs to C++ classes.
8152
8153 Patch autogenerated by refactor_passes.py from
8154 https://github.com/davidmalcolm/gcc-refactoring-scripts
8155 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
8156
8157 * asan.c (pass_asan): Convert from a global struct to a subclass of
8158 gimple_opt_pass along with...
8159 (pass_data_asan): ...new pass_data instance and...
8160 (make_pass_asan): ...new function.
8161 (pass_asan_O0): Convert from a global struct to a subclass of
8162 gimple_opt_pass along with...
8163 (pass_data_asan_O0): ...new pass_data instance and...
8164 (make_pass_asan_O0): ...new function.
8165 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
8166 subclass of rtl_opt_pass along with...
8167 (pass_data_inc_dec): ...new pass_data instance and...
8168 (make_pass_inc_dec): ...new function.
8169 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
8170 a subclass of rtl_opt_pass along with...
8171 (pass_data_reorder_blocks): ...new pass_data instance and...
8172 (make_pass_reorder_blocks): ...new function.
8173 (pass_duplicate_computed_gotos): Convert from a global struct to a
8174 subclass of rtl_opt_pass along with...
8175 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
8176 (make_pass_duplicate_computed_gotos): ...new function.
8177 (pass_partition_blocks): Convert from a global struct to a subclass of
8178 rtl_opt_pass along with...
8179 (pass_data_partition_blocks): ...new pass_data instance and...
8180 (make_pass_partition_blocks): ...new function.
8181 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
8182 struct to a subclass of rtl_opt_pass along with...
8183 (pass_data_branch_target_load_optimize1): ...new pass_data instance
8184 and...
8185 (make_pass_branch_target_load_optimize1): ...new function.
8186 (pass_branch_target_load_optimize2): Convert from a global struct to a
8187 subclass of rtl_opt_pass along with...
8188 (pass_data_branch_target_load_optimize2): ...new pass_data instance
8189 and...
8190 (make_pass_branch_target_load_optimize2): ...new function.
8191 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
8192 of rtl_opt_pass along with...
8193 (pass_data_jump): ...new pass_data instance and...
8194 (make_pass_jump): ...new function.
8195 (pass_jump2): Convert from a global struct to a subclass of
8196 rtl_opt_pass along with...
8197 (pass_data_jump2): ...new pass_data instance and...
8198 (make_pass_jump2): ...new function.
8199 * cfgexpand.c (pass_expand): Convert from a global struct to a
8200 subclass of rtl_opt_pass along with...
8201 (pass_data_expand): ...new pass_data instance and...
8202 (make_pass_expand): ...new function.
8203 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
8204 of rtl_opt_pass along with...
8205 (pass_data_free_cfg): ...new pass_data instance and...
8206 (make_pass_free_cfg): ...new function.
8207 (pass_into_cfg_layout_mode): Convert from a global struct to a
8208 subclass of rtl_opt_pass along with...
8209 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
8210 (make_pass_into_cfg_layout_mode): ...new function.
8211 (pass_outof_cfg_layout_mode): Convert from a global struct to a
8212 subclass of rtl_opt_pass along with...
8213 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
8214 (make_pass_outof_cfg_layout_mode): ...new function.
8215 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
8216 struct to a subclass of gimple_opt_pass along with...
8217 (pass_data_build_cgraph_edges): ...new pass_data instance and...
8218 (make_pass_build_cgraph_edges): ...new function.
8219 (pass_rebuild_cgraph_edges): Convert from a global struct to a
8220 subclass of gimple_opt_pass along with...
8221 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
8222 (make_pass_rebuild_cgraph_edges): ...new function.
8223 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
8224 subclass of gimple_opt_pass along with...
8225 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
8226 and...
8227 (make_pass_remove_cgraph_callee_edges): ...new function.
8228 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
8229 struct to a subclass of rtl_opt_pass along with...
8230 (pass_data_stack_adjustments): ...new pass_data instance and...
8231 (make_pass_stack_adjustments): ...new function.
8232 * combine.c (pass_combine): Convert from a global struct to a subclass
8233 of rtl_opt_pass along with...
8234 (pass_data_combine): ...new pass_data instance and...
8235 (make_pass_combine): ...new function.
8236 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
8237 global struct to a subclass of rtl_opt_pass along with...
8238 (pass_data_compare_elim_after_reload): ...new pass_data instance
8239 and...
8240 (make_pass_compare_elim_after_reload): ...new function.
8241 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
8242 of rtl_opt_pass along with...
8243 (pass_data_rtl_cprop): ...new pass_data instance and...
8244 (make_pass_rtl_cprop): ...new function.
8245 * cse.c (pass_cse): Convert from a global struct to a subclass of
8246 rtl_opt_pass along with...
8247 (pass_data_cse): ...new pass_data instance and...
8248 (make_pass_cse): ...new function.
8249 (pass_cse2): Convert from a global struct to a subclass of
8250 rtl_opt_pass along with...
8251 (pass_data_cse2): ...new pass_data instance and...
8252 (make_pass_cse2): ...new function.
8253 (pass_cse_after_global_opts): Convert from a global struct to a
8254 subclass of rtl_opt_pass along with...
8255 (pass_data_cse_after_global_opts): ...new pass_data instance and...
8256 (make_pass_cse_after_global_opts): ...new function.
8257 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
8258 of rtl_opt_pass along with...
8259 (pass_data_ud_rtl_dce): ...new pass_data instance and...
8260 (make_pass_ud_rtl_dce): ...new function.
8261 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
8262 rtl_opt_pass along with...
8263 (pass_data_fast_rtl_dce): ...new pass_data instance and...
8264 (make_pass_fast_rtl_dce): ...new function.
8265 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
8266 a subclass of rtl_opt_pass along with...
8267 (pass_data_df_initialize_opt): ...new pass_data instance and...
8268 (make_pass_df_initialize_opt): ...new function.
8269 (pass_df_initialize_no_opt): Convert from a global struct to a
8270 subclass of rtl_opt_pass along with...
8271 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
8272 (make_pass_df_initialize_no_opt): ...new function.
8273 (pass_df_finish): Convert from a global struct to a subclass of
8274 rtl_opt_pass along with...
8275 (pass_data_df_finish): ...new pass_data instance and...
8276 (make_pass_df_finish): ...new function.
8277 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
8278 rtl_opt_pass along with...
8279 (pass_data_rtl_dse1): ...new pass_data instance and...
8280 (make_pass_rtl_dse1): ...new function.
8281 (pass_rtl_dse2): Convert from a global struct to a subclass of
8282 rtl_opt_pass along with...
8283 (pass_data_rtl_dse2): ...new pass_data instance and...
8284 (make_pass_rtl_dse2): ...new function.
8285 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
8286 subclass of rtl_opt_pass along with...
8287 (pass_data_dwarf2_frame): ...new pass_data instance and...
8288 (make_pass_dwarf2_frame): ...new function.
8289 * except.c (pass_set_nothrow_function_flags): Convert from a global
8290 struct to a subclass of rtl_opt_pass along with...
8291 (pass_data_set_nothrow_function_flags): ...new pass_data instance
8292 and...
8293 (make_pass_set_nothrow_function_flags): ...new function.
8294 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
8295 subclass of rtl_opt_pass along with...
8296 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
8297 and...
8298 (make_pass_convert_to_eh_region_ranges): ...new function.
8299 * final.c (pass_compute_alignments): Convert from a global struct to a
8300 subclass of rtl_opt_pass along with...
8301 (pass_data_compute_alignments): ...new pass_data instance and...
8302 (make_pass_compute_alignments): ...new function.
8303 (pass_final): Convert from a global struct to a subclass of
8304 rtl_opt_pass along with...
8305 (pass_data_final): ...new pass_data instance and...
8306 (make_pass_final): ...new function.
8307 (pass_shorten_branches): Convert from a global struct to a subclass of
8308 rtl_opt_pass along with...
8309 (pass_data_shorten_branches): ...new pass_data instance and...
8310 (make_pass_shorten_branches): ...new function.
8311 (pass_clean_state): Convert from a global struct to a subclass of
8312 rtl_opt_pass along with...
8313 (pass_data_clean_state): ...new pass_data instance and...
8314 (make_pass_clean_state): ...new function.
8315 * function.c (pass_instantiate_virtual_regs): Convert from a global
8316 struct to a subclass of rtl_opt_pass along with...
8317 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
8318 (make_pass_instantiate_virtual_regs): ...new function.
8319 (pass_leaf_regs): Convert from a global struct to a subclass of
8320 rtl_opt_pass along with...
8321 (pass_data_leaf_regs): ...new pass_data instance and...
8322 (make_pass_leaf_regs): ...new function.
8323 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
8324 subclass of rtl_opt_pass along with...
8325 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
8326 and...
8327 (make_pass_thread_prologue_and_epilogue): ...new function.
8328 (pass_match_asm_constraints): Convert from a global struct to a
8329 subclass of rtl_opt_pass along with...
8330 (pass_data_match_asm_constraints): ...new pass_data instance and...
8331 (make_pass_match_asm_constraints): ...new function.
8332 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
8333 subclass of rtl_opt_pass along with...
8334 (pass_data_rtl_fwprop): ...new pass_data instance and...
8335 (make_pass_rtl_fwprop): ...new function.
8336 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
8337 rtl_opt_pass along with...
8338 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
8339 (make_pass_rtl_fwprop_addr): ...new function.
8340 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
8341 rtl_opt_pass along with...
8342 (pass_data_rtl_pre): ...new pass_data instance and...
8343 (make_pass_rtl_pre): ...new function.
8344 (pass_rtl_hoist): Convert from a global struct to a subclass of
8345 rtl_opt_pass along with...
8346 (pass_data_rtl_hoist): ...new pass_data instance and...
8347 (make_pass_rtl_hoist): ...new function.
8348 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
8349 subclass of gimple_opt_pass along with...
8350 (pass_data_lower_cf): ...new pass_data instance and...
8351 (make_pass_lower_cf): ...new function.
8352 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
8353 from a global struct to a subclass of gimple_opt_pass along with...
8354 (pass_data_strength_reduction): ...new pass_data instance and...
8355 (make_pass_strength_reduction): ...new function.
8356 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
8357 of rtl_opt_pass along with...
8358 (pass_data_rtl_ifcvt): ...new pass_data instance and...
8359 (make_pass_rtl_ifcvt): ...new function.
8360 (pass_if_after_combine): Convert from a global struct to a subclass of
8361 rtl_opt_pass along with...
8362 (pass_data_if_after_combine): ...new pass_data instance and...
8363 (make_pass_if_after_combine): ...new function.
8364 (pass_if_after_reload): Convert from a global struct to a subclass of
8365 rtl_opt_pass along with...
8366 (pass_data_if_after_reload): ...new pass_data instance and...
8367 (make_pass_if_after_reload): ...new function.
8368 * init-regs.c (pass_initialize_regs): Convert from a global struct to
8369 a subclass of rtl_opt_pass along with...
8370 (pass_data_initialize_regs): ...new pass_data instance and...
8371 (make_pass_initialize_regs): ...new function.
8372 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
8373 of ipa_opt_pass_d along with...
8374 (pass_data_ipa_cp): ...new pass_data instance and...
8375 (make_pass_ipa_cp): ...new function.
8376 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
8377 global struct to a subclass of gimple_opt_pass along with...
8378 (pass_data_inline_parameters): ...new pass_data instance and...
8379 (make_pass_inline_parameters): ...new function.
8380 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
8381 subclass of gimple_opt_pass along with...
8382 (pass_data_early_inline): ...new pass_data instance and...
8383 (make_pass_early_inline): ...new function.
8384 (pass_ipa_inline): Convert from a global struct to a subclass of
8385 ipa_opt_pass_d along with...
8386 (pass_data_ipa_inline): ...new pass_data instance and...
8387 (make_pass_ipa_inline): ...new function.
8388 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
8389 struct to a subclass of gimple_opt_pass along with...
8390 (pass_data_local_pure_const): ...new pass_data instance and...
8391 (make_pass_local_pure_const): ...new function.
8392 (pass_ipa_pure_const): Convert from a global struct to a subclass of
8393 ipa_opt_pass_d along with...
8394 (pass_data_ipa_pure_const): ...new pass_data instance and...
8395 (make_pass_ipa_pure_const): ...new function.
8396 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
8397 to a subclass of ipa_opt_pass_d along with...
8398 (pass_data_ipa_reference): ...new pass_data instance and...
8399 (make_pass_ipa_reference): ...new function.
8400 * ipa-split.c (pass_split_functions): Convert from a global struct to
8401 a subclass of gimple_opt_pass along with...
8402 (pass_data_split_functions): ...new pass_data instance and...
8403 (make_pass_split_functions): ...new function.
8404 (pass_feedback_split_functions): Convert from a global struct to a
8405 subclass of gimple_opt_pass along with...
8406 (pass_data_feedback_split_functions): ...new pass_data instance and...
8407 (make_pass_feedback_split_functions): ...new function.
8408 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
8409 global struct to a subclass of simple_ipa_opt_pass along with...
8410 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
8411 instance and...
8412 (make_pass_ipa_function_and_variable_visibility): ...new function.
8413 (pass_ipa_free_inline_summary): Convert from a global struct to a
8414 subclass of simple_ipa_opt_pass along with...
8415 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
8416 (make_pass_ipa_free_inline_summary): ...new function.
8417 (pass_ipa_whole_program_visibility): Convert from a global struct to a
8418 subclass of ipa_opt_pass_d along with...
8419 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
8420 and...
8421 (make_pass_ipa_whole_program_visibility): ...new function.
8422 (pass_ipa_profile): Convert from a global struct to a subclass of
8423 ipa_opt_pass_d along with...
8424 (pass_data_ipa_profile): ...new pass_data instance and...
8425 (make_pass_ipa_profile): ...new function.
8426 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
8427 ipa_opt_pass_d along with...
8428 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
8429 (make_pass_ipa_cdtor_merge): ...new function.
8430 * ira.c (pass_ira): Convert from a global struct to a subclass of
8431 rtl_opt_pass along with...
8432 (pass_data_ira): ...new pass_data instance and...
8433 (make_pass_ira): ...new function.
8434 (pass_reload): Convert from a global struct to a subclass of
8435 rtl_opt_pass along with...
8436 (pass_data_reload): ...new pass_data instance and...
8437 (make_pass_reload): ...new function.
8438 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
8439 subclass of rtl_opt_pass along with...
8440 (pass_data_cleanup_barriers): ...new pass_data instance and...
8441 (make_pass_cleanup_barriers): ...new function.
8442 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
8443 of rtl_opt_pass along with...
8444 (pass_data_loop2): ...new pass_data instance and...
8445 (make_pass_loop2): ...new function.
8446 (pass_rtl_loop_init): Convert from a global struct to a subclass of
8447 rtl_opt_pass along with...
8448 (pass_data_rtl_loop_init): ...new pass_data instance and...
8449 (make_pass_rtl_loop_init): ...new function.
8450 (pass_rtl_loop_done): Convert from a global struct to a subclass of
8451 rtl_opt_pass along with...
8452 (pass_data_rtl_loop_done): ...new pass_data instance and...
8453 (make_pass_rtl_loop_done): ...new function.
8454 (pass_rtl_move_loop_invariants): Convert from a global struct to a
8455 subclass of rtl_opt_pass along with...
8456 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
8457 (make_pass_rtl_move_loop_invariants): ...new function.
8458 (pass_rtl_unswitch): Convert from a global struct to a subclass of
8459 rtl_opt_pass along with...
8460 (pass_data_rtl_unswitch): ...new pass_data instance and...
8461 (make_pass_rtl_unswitch): ...new function.
8462 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
8463 subclass of rtl_opt_pass along with...
8464 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
8465 and...
8466 (make_pass_rtl_unroll_and_peel_loops): ...new function.
8467 (pass_rtl_doloop): Convert from a global struct to a subclass of
8468 rtl_opt_pass along with...
8469 (pass_data_rtl_doloop): ...new pass_data instance and...
8470 (make_pass_rtl_doloop): ...new function.
8471 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
8472 a subclass of rtl_opt_pass along with...
8473 (pass_data_lower_subreg): ...new pass_data instance and...
8474 (make_pass_lower_subreg): ...new function.
8475 (pass_lower_subreg2): Convert from a global struct to a subclass of
8476 rtl_opt_pass along with...
8477 (pass_data_lower_subreg2): ...new pass_data instance and...
8478 (make_pass_lower_subreg2): ...new function.
8479 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
8480 struct to a subclass of ipa_opt_pass_d along with...
8481 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
8482 (make_pass_ipa_lto_gimple_out): ...new function.
8483 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
8484 of ipa_opt_pass_d along with...
8485 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
8486 (make_pass_ipa_lto_finish_out): ...new function.
8487 * mode-switching.c (pass_mode_switching): Convert from a global struct
8488 to a subclass of rtl_opt_pass along with...
8489 (pass_data_mode_switching): ...new pass_data instance and...
8490 (make_pass_mode_switching): ...new function.
8491 * modulo-sched.c (pass_sms): Convert from a global struct to a
8492 subclass of rtl_opt_pass along with...
8493 (pass_data_sms): ...new pass_data instance and...
8494 (make_pass_sms): ...new function.
8495 * omp-low.c (pass_expand_omp): Convert from a global struct to a
8496 subclass of gimple_opt_pass along with...
8497 (pass_data_expand_omp): ...new pass_data instance and...
8498 (make_pass_expand_omp): ...new function.
8499 (pass_lower_omp): Convert from a global struct to a subclass of
8500 gimple_opt_pass along with...
8501 (pass_data_lower_omp): ...new pass_data instance and...
8502 (make_pass_lower_omp): ...new function.
8503 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
8504 of gimple_opt_pass along with...
8505 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
8506 (make_pass_diagnose_omp_blocks): ...new function.
8507 * passes.c (pass_early_local_passes): Convert from a global struct to
8508 a subclass of simple_ipa_opt_pass along with...
8509 (pass_data_early_local_passes): ...new pass_data instance and...
8510 (make_pass_early_local_passes): ...new function.
8511 (pass_all_early_optimizations): Convert from a global struct to a
8512 subclass of gimple_opt_pass along with...
8513 (pass_data_all_early_optimizations): ...new pass_data instance and...
8514 (make_pass_all_early_optimizations): ...new function.
8515 (pass_all_optimizations): Convert from a global struct to a subclass
8516 of gimple_opt_pass along with...
8517 (pass_data_all_optimizations): ...new pass_data instance and...
8518 (make_pass_all_optimizations): ...new function.
8519 (pass_all_optimizations_g): Convert from a global struct to a subclass
8520 of gimple_opt_pass along with...
8521 (pass_data_all_optimizations_g): ...new pass_data instance and...
8522 (make_pass_all_optimizations_g): ...new function.
8523 (pass_rest_of_compilation): Convert from a global struct to a subclass
8524 of rtl_opt_pass along with...
8525 (pass_data_rest_of_compilation): ...new pass_data instance and...
8526 (make_pass_rest_of_compilation): ...new function.
8527 (pass_postreload): Convert from a global struct to a subclass of
8528 rtl_opt_pass along with...
8529 (pass_data_postreload): ...new pass_data instance and...
8530 (make_pass_postreload): ...new function.
8531 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
8532 subclass of rtl_opt_pass along with...
8533 (pass_data_gcse2): ...new pass_data instance and...
8534 (make_pass_gcse2): ...new function.
8535 * postreload.c (pass_postreload_cse): Convert from a global struct to
8536 a subclass of rtl_opt_pass along with...
8537 (pass_data_postreload_cse): ...new pass_data instance and...
8538 (make_pass_postreload_cse): ...new function.
8539 * predict.c (pass_profile): Convert from a global struct to a subclass
8540 of gimple_opt_pass along with...
8541 (pass_data_profile): ...new pass_data instance and...
8542 (make_pass_profile): ...new function.
8543 (pass_strip_predict_hints): Convert from a global struct to a subclass
8544 of gimple_opt_pass along with...
8545 (pass_data_strip_predict_hints): ...new pass_data instance and...
8546 (make_pass_strip_predict_hints): ...new function.
8547 * recog.c (pass_peephole2): Convert from a global struct to a subclass
8548 of rtl_opt_pass along with...
8549 (pass_data_peephole2): ...new pass_data instance and...
8550 (make_pass_peephole2): ...new function.
8551 (pass_split_all_insns): Convert from a global struct to a subclass of
8552 rtl_opt_pass along with...
8553 (pass_data_split_all_insns): ...new pass_data instance and...
8554 (make_pass_split_all_insns): ...new function.
8555 (pass_split_after_reload): Convert from a global struct to a subclass
8556 of rtl_opt_pass along with...
8557 (pass_data_split_after_reload): ...new pass_data instance and...
8558 (make_pass_split_after_reload): ...new function.
8559 (pass_split_before_regstack): Convert from a global struct to a
8560 subclass of rtl_opt_pass along with...
8561 (pass_data_split_before_regstack): ...new pass_data instance and...
8562 (make_pass_split_before_regstack): ...new function.
8563 (pass_split_before_sched2): Convert from a global struct to a subclass
8564 of rtl_opt_pass along with...
8565 (pass_data_split_before_sched2): ...new pass_data instance and...
8566 (make_pass_split_before_sched2): ...new function.
8567 (pass_split_for_shorten_branches): Convert from a global struct to a
8568 subclass of rtl_opt_pass along with...
8569 (pass_data_split_for_shorten_branches): ...new pass_data instance
8570 and...
8571 (make_pass_split_for_shorten_branches): ...new function.
8572 * ree.c (pass_ree): Convert from a global struct to a subclass of
8573 rtl_opt_pass along with...
8574 (pass_data_ree): ...new pass_data instance and...
8575 (make_pass_ree): ...new function.
8576 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
8577 subclass of rtl_opt_pass along with...
8578 (pass_data_stack_regs): ...new pass_data instance and...
8579 (make_pass_stack_regs): ...new function.
8580 (pass_stack_regs_run): Convert from a global struct to a subclass of
8581 rtl_opt_pass along with...
8582 (pass_data_stack_regs_run): ...new pass_data instance and...
8583 (make_pass_stack_regs_run): ...new function.
8584 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
8585 subclass of rtl_opt_pass along with...
8586 (pass_data_cprop_hardreg): ...new pass_data instance and...
8587 (make_pass_cprop_hardreg): ...new function.
8588 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
8589 subclass of rtl_opt_pass along with...
8590 (pass_data_reginfo_init): ...new pass_data instance and...
8591 (make_pass_reginfo_init): ...new function.
8592 * regmove.c (pass_regmove): Convert from a global struct to a subclass
8593 of rtl_opt_pass along with...
8594 (pass_data_regmove): ...new pass_data instance and...
8595 (make_pass_regmove): ...new function.
8596 * regrename.c (pass_regrename): Convert from a global struct to a
8597 subclass of rtl_opt_pass along with...
8598 (pass_data_regrename): ...new pass_data instance and...
8599 (make_pass_regrename): ...new function.
8600 * reorg.c (pass_delay_slots): Convert from a global struct to a
8601 subclass of rtl_opt_pass along with...
8602 (pass_data_delay_slots): ...new pass_data instance and...
8603 (make_pass_delay_slots): ...new function.
8604 (pass_machine_reorg): Convert from a global struct to a subclass of
8605 rtl_opt_pass along with...
8606 (pass_data_machine_reorg): ...new pass_data instance and...
8607 (make_pass_machine_reorg): ...new function.
8608 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
8609 of rtl_opt_pass along with...
8610 (pass_data_sched): ...new pass_data instance and...
8611 (make_pass_sched): ...new function.
8612 (pass_sched2): Convert from a global struct to a subclass of
8613 rtl_opt_pass along with...
8614 (pass_data_sched2): ...new pass_data instance and...
8615 (make_pass_sched2): ...new function.
8616 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
8617 to a subclass of rtl_opt_pass along with...
8618 (pass_data_stack_ptr_mod): ...new pass_data instance and...
8619 (make_pass_stack_ptr_mod): ...new function.
8620 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
8621 to a subclass of rtl_opt_pass along with...
8622 (pass_data_rtl_store_motion): ...new pass_data instance and...
8623 (make_pass_rtl_store_motion): ...new function.
8624 * tracer.c (pass_tracer): Convert from a global struct to a subclass
8625 of gimple_opt_pass along with...
8626 (pass_data_tracer): ...new pass_data instance and...
8627 (make_pass_tracer): ...new function.
8628 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
8629 to a subclass of gimple_opt_pass along with...
8630 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
8631 (make_pass_diagnose_tm_blocks): ...new function.
8632 (pass_lower_tm): Convert from a global struct to a subclass of
8633 gimple_opt_pass along with...
8634 (pass_data_lower_tm): ...new pass_data instance and...
8635 (make_pass_lower_tm): ...new function.
8636 (pass_tm_init): Convert from a global struct to a subclass of
8637 gimple_opt_pass along with...
8638 (pass_data_tm_init): ...new pass_data instance and...
8639 (make_pass_tm_init): ...new function.
8640 (pass_tm_mark): Convert from a global struct to a subclass of
8641 gimple_opt_pass along with...
8642 (pass_data_tm_mark): ...new pass_data instance and...
8643 (make_pass_tm_mark): ...new function.
8644 (pass_tm_edges): Convert from a global struct to a subclass of
8645 gimple_opt_pass along with...
8646 (pass_data_tm_edges): ...new pass_data instance and...
8647 (make_pass_tm_edges): ...new function.
8648 (pass_tm_memopt): Convert from a global struct to a subclass of
8649 gimple_opt_pass along with...
8650 (pass_data_tm_memopt): ...new pass_data instance and...
8651 (make_pass_tm_memopt): ...new function.
8652 (pass_ipa_tm): Convert from a global struct to a subclass of
8653 simple_ipa_opt_pass along with...
8654 (pass_data_ipa_tm): ...new pass_data instance and...
8655 (make_pass_ipa_tm): ...new function.
8656 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
8657 subclass of gimple_opt_pass along with...
8658 (pass_data_call_cdce): ...new pass_data instance and...
8659 (make_pass_call_cdce): ...new function.
8660 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
8661 subclass of gimple_opt_pass along with...
8662 (pass_data_build_cfg): ...new pass_data instance and...
8663 (make_pass_build_cfg): ...new function.
8664 (pass_split_crit_edges): Convert from a global struct to a subclass of
8665 gimple_opt_pass along with...
8666 (pass_data_split_crit_edges): ...new pass_data instance and...
8667 (make_pass_split_crit_edges): ...new function.
8668 (pass_warn_function_return): Convert from a global struct to a
8669 subclass of gimple_opt_pass along with...
8670 (pass_data_warn_function_return): ...new pass_data instance and...
8671 (make_pass_warn_function_return): ...new function.
8672 (pass_warn_function_noreturn): Convert from a global struct to a
8673 subclass of gimple_opt_pass along with...
8674 (pass_data_warn_function_noreturn): ...new pass_data instance and...
8675 (make_pass_warn_function_noreturn): ...new function.
8676 (pass_warn_unused_result): Convert from a global struct to a subclass
8677 of gimple_opt_pass along with...
8678 (pass_data_warn_unused_result): ...new pass_data instance and...
8679 (make_pass_warn_unused_result): ...new function.
8680 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
8681 a subclass of gimple_opt_pass along with...
8682 (pass_data_merge_phi): ...new pass_data instance and...
8683 (make_pass_merge_phi): ...new function.
8684 * tree-complex.c (pass_lower_complex): Convert from a global struct to
8685 a subclass of gimple_opt_pass along with...
8686 (pass_data_lower_complex): ...new pass_data instance and...
8687 (make_pass_lower_complex): ...new function.
8688 (pass_lower_complex_O0): Convert from a global struct to a subclass of
8689 gimple_opt_pass along with...
8690 (pass_data_lower_complex_O0): ...new pass_data instance and...
8691 (make_pass_lower_complex_O0): ...new function.
8692 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
8693 subclass of gimple_opt_pass along with...
8694 (pass_data_lower_eh): ...new pass_data instance and...
8695 (make_pass_lower_eh): ...new function.
8696 (pass_refactor_eh): Convert from a global struct to a subclass of
8697 gimple_opt_pass along with...
8698 (pass_data_refactor_eh): ...new pass_data instance and...
8699 (make_pass_refactor_eh): ...new function.
8700 (pass_lower_resx): Convert from a global struct to a subclass of
8701 gimple_opt_pass along with...
8702 (pass_data_lower_resx): ...new pass_data instance and...
8703 (make_pass_lower_resx): ...new function.
8704 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
8705 of gimple_opt_pass along with...
8706 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
8707 (make_pass_lower_eh_dispatch): ...new function.
8708 (pass_cleanup_eh): Convert from a global struct to a subclass of
8709 gimple_opt_pass along with...
8710 (pass_data_cleanup_eh): ...new pass_data instance and...
8711 (make_pass_cleanup_eh): ...new function.
8712 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
8713 to a subclass of simple_ipa_opt_pass along with...
8714 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
8715 (make_pass_ipa_lower_emutls): ...new function.
8716 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
8717 a subclass of gimple_opt_pass along with...
8718 (pass_data_if_conversion): ...new pass_data instance and...
8719 (make_pass_if_conversion): ...new function.
8720 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
8721 subclass of gimple_opt_pass along with...
8722 (pass_data_build_ssa): ...new pass_data instance and...
8723 (make_pass_build_ssa): ...new function.
8724 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
8725 global struct to a subclass of gimple_opt_pass along with...
8726 (pass_data_loop_distribution): ...new pass_data instance and...
8727 (make_pass_loop_distribution): ...new function.
8728 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
8729 subclass of gimple_opt_pass along with...
8730 (pass_data_mudflap_1): ...new pass_data instance and...
8731 (make_pass_mudflap_1): ...new function.
8732 (pass_mudflap_2): Convert from a global struct to a subclass of
8733 gimple_opt_pass along with...
8734 (pass_data_mudflap_2): ...new pass_data instance and...
8735 (make_pass_mudflap_2): ...new function.
8736 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
8737 subclass of gimple_opt_pass along with...
8738 (pass_data_mudflap_1): ...new pass_data instance and...
8739 (make_pass_mudflap_1): ...new function.
8740 (pass_mudflap_2): Convert from a global struct to a subclass of
8741 gimple_opt_pass along with...
8742 (pass_data_mudflap_2): ...new pass_data instance and...
8743 (make_pass_mudflap_2): ...new function.
8744 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
8745 gimple_opt_pass along with...
8746 (pass_data_nrv): ...new pass_data instance and...
8747 (make_pass_nrv): ...new function.
8748 (pass_return_slot): Convert from a global struct to a subclass of
8749 gimple_opt_pass along with...
8750 (pass_data_return_slot): ...new pass_data instance and...
8751 (make_pass_return_slot): ...new function.
8752 * tree-object-size.c (pass_object_sizes): Convert from a global struct
8753 to a subclass of gimple_opt_pass along with...
8754 (pass_data_object_sizes): ...new pass_data instance and...
8755 (make_pass_object_sizes): ...new function.
8756 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
8757 global struct to a subclass of gimple_opt_pass along with...
8758 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
8759 and...
8760 (make_pass_cleanup_cfg_post_optimizing): ...new function.
8761 (pass_fixup_cfg): Convert from a global struct to a subclass of
8762 gimple_opt_pass along with...
8763 (pass_data_fixup_cfg): ...new pass_data instance and...
8764 (make_pass_fixup_cfg): ...new function.
8765 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
8766 (make_pass_mudflap_1): ...new function.
8767 (pass_mudflap_2): Replace declaration with that of...
8768 (make_pass_mudflap_2): ...new function.
8769 (pass_asan): Replace declaration with that of...
8770 (make_pass_asan): ...new function.
8771 (pass_asan_O0): Replace declaration with that of...
8772 (make_pass_asan_O0): ...new function.
8773 (pass_tsan): Replace declaration with that of...
8774 (make_pass_tsan): ...new function.
8775 (pass_tsan_O0): Replace declaration with that of...
8776 (make_pass_tsan_O0): ...new function.
8777 (pass_lower_cf): Replace declaration with that of...
8778 (make_pass_lower_cf): ...new function.
8779 (pass_refactor_eh): Replace declaration with that of...
8780 (make_pass_refactor_eh): ...new function.
8781 (pass_lower_eh): Replace declaration with that of...
8782 (make_pass_lower_eh): ...new function.
8783 (pass_lower_eh_dispatch): Replace declaration with that of...
8784 (make_pass_lower_eh_dispatch): ...new function.
8785 (pass_lower_resx): Replace declaration with that of...
8786 (make_pass_lower_resx): ...new function.
8787 (pass_build_cfg): Replace declaration with that of...
8788 (make_pass_build_cfg): ...new function.
8789 (pass_early_tree_profile): Replace declaration with that of...
8790 (make_pass_early_tree_profile): ...new function.
8791 (pass_cleanup_eh): Replace declaration with that of...
8792 (make_pass_cleanup_eh): ...new function.
8793 (pass_sra): Replace declaration with that of...
8794 (make_pass_sra): ...new function.
8795 (pass_sra_early): Replace declaration with that of...
8796 (make_pass_sra_early): ...new function.
8797 (pass_early_ipa_sra): Replace declaration with that of...
8798 (make_pass_early_ipa_sra): ...new function.
8799 (pass_tail_recursion): Replace declaration with that of...
8800 (make_pass_tail_recursion): ...new function.
8801 (pass_tail_calls): Replace declaration with that of...
8802 (make_pass_tail_calls): ...new function.
8803 (pass_tree_loop): Replace declaration with that of...
8804 (make_pass_tree_loop): ...new function.
8805 (pass_tree_loop_init): Replace declaration with that of...
8806 (make_pass_tree_loop_init): ...new function.
8807 (pass_lim): Replace declaration with that of...
8808 (make_pass_lim): ...new function.
8809 (pass_tree_unswitch): Replace declaration with that of...
8810 (make_pass_tree_unswitch): ...new function.
8811 (pass_predcom): Replace declaration with that of...
8812 (make_pass_predcom): ...new function.
8813 (pass_iv_canon): Replace declaration with that of...
8814 (make_pass_iv_canon): ...new function.
8815 (pass_scev_cprop): Replace declaration with that of...
8816 (make_pass_scev_cprop): ...new function.
8817 (pass_empty_loop): Replace declaration with that of...
8818 (make_pass_empty_loop): ...new function.
8819 (pass_record_bounds): Replace declaration with that of...
8820 (make_pass_record_bounds): ...new function.
8821 (pass_graphite): Replace declaration with that of...
8822 (make_pass_graphite): ...new function.
8823 (pass_graphite_transforms): Replace declaration with that of...
8824 (make_pass_graphite_transforms): ...new function.
8825 (pass_if_conversion): Replace declaration with that of...
8826 (make_pass_if_conversion): ...new function.
8827 (pass_loop_distribution): Replace declaration with that of...
8828 (make_pass_loop_distribution): ...new function.
8829 (pass_vectorize): Replace declaration with that of...
8830 (make_pass_vectorize): ...new function.
8831 (pass_slp_vectorize): Replace declaration with that of...
8832 (make_pass_slp_vectorize): ...new function.
8833 (pass_complete_unroll): Replace declaration with that of...
8834 (make_pass_complete_unroll): ...new function.
8835 (pass_complete_unrolli): Replace declaration with that of...
8836 (make_pass_complete_unrolli): ...new function.
8837 (pass_parallelize_loops): Replace declaration with that of...
8838 (make_pass_parallelize_loops): ...new function.
8839 (pass_loop_prefetch): Replace declaration with that of...
8840 (make_pass_loop_prefetch): ...new function.
8841 (pass_iv_optimize): Replace declaration with that of...
8842 (make_pass_iv_optimize): ...new function.
8843 (pass_tree_loop_done): Replace declaration with that of...
8844 (make_pass_tree_loop_done): ...new function.
8845 (pass_ch): Replace declaration with that of...
8846 (make_pass_ch): ...new function.
8847 (pass_ccp): Replace declaration with that of...
8848 (make_pass_ccp): ...new function.
8849 (pass_phi_only_cprop): Replace declaration with that of...
8850 (make_pass_phi_only_cprop): ...new function.
8851 (pass_build_ssa): Replace declaration with that of...
8852 (make_pass_build_ssa): ...new function.
8853 (pass_build_alias): Replace declaration with that of...
8854 (make_pass_build_alias): ...new function.
8855 (pass_build_ealias): Replace declaration with that of...
8856 (make_pass_build_ealias): ...new function.
8857 (pass_dominator): Replace declaration with that of...
8858 (make_pass_dominator): ...new function.
8859 (pass_dce): Replace declaration with that of...
8860 (make_pass_dce): ...new function.
8861 (pass_dce_loop): Replace declaration with that of...
8862 (make_pass_dce_loop): ...new function.
8863 (pass_cd_dce): Replace declaration with that of...
8864 (make_pass_cd_dce): ...new function.
8865 (pass_call_cdce): Replace declaration with that of...
8866 (make_pass_call_cdce): ...new function.
8867 (pass_merge_phi): Replace declaration with that of...
8868 (make_pass_merge_phi): ...new function.
8869 (pass_split_crit_edges): Replace declaration with that of...
8870 (make_pass_split_crit_edges): ...new function.
8871 (pass_pre): Replace declaration with that of...
8872 (make_pass_pre): ...new function.
8873 (pass_profile): Replace declaration with that of...
8874 (make_pass_profile): ...new function.
8875 (pass_strip_predict_hints): Replace declaration with that of...
8876 (make_pass_strip_predict_hints): ...new function.
8877 (pass_lower_complex_O0): Replace declaration with that of...
8878 (make_pass_lower_complex_O0): ...new function.
8879 (pass_lower_complex): Replace declaration with that of...
8880 (make_pass_lower_complex): ...new function.
8881 (pass_lower_vector): Replace declaration with that of...
8882 (make_pass_lower_vector): ...new function.
8883 (pass_lower_vector_ssa): Replace declaration with that of...
8884 (make_pass_lower_vector_ssa): ...new function.
8885 (pass_lower_omp): Replace declaration with that of...
8886 (make_pass_lower_omp): ...new function.
8887 (pass_diagnose_omp_blocks): Replace declaration with that of...
8888 (make_pass_diagnose_omp_blocks): ...new function.
8889 (pass_expand_omp): Replace declaration with that of...
8890 (make_pass_expand_omp): ...new function.
8891 (pass_expand_omp_ssa): Replace declaration with that of...
8892 (make_pass_expand_omp_ssa): ...new function.
8893 (pass_object_sizes): Replace declaration with that of...
8894 (make_pass_object_sizes): ...new function.
8895 (pass_strlen): Replace declaration with that of...
8896 (make_pass_strlen): ...new function.
8897 (pass_fold_builtins): Replace declaration with that of...
8898 (make_pass_fold_builtins): ...new function.
8899 (pass_stdarg): Replace declaration with that of...
8900 (make_pass_stdarg): ...new function.
8901 (pass_early_warn_uninitialized): Replace declaration with that of...
8902 (make_pass_early_warn_uninitialized): ...new function.
8903 (pass_late_warn_uninitialized): Replace declaration with that of...
8904 (make_pass_late_warn_uninitialized): ...new function.
8905 (pass_cse_reciprocals): Replace declaration with that of...
8906 (make_pass_cse_reciprocals): ...new function.
8907 (pass_cse_sincos): Replace declaration with that of...
8908 (make_pass_cse_sincos): ...new function.
8909 (pass_optimize_bswap): Replace declaration with that of...
8910 (make_pass_optimize_bswap): ...new function.
8911 (pass_optimize_widening_mul): Replace declaration with that of...
8912 (make_pass_optimize_widening_mul): ...new function.
8913 (pass_warn_function_return): Replace declaration with that of...
8914 (make_pass_warn_function_return): ...new function.
8915 (pass_warn_function_noreturn): Replace declaration with that of...
8916 (make_pass_warn_function_noreturn): ...new function.
8917 (pass_cselim): Replace declaration with that of...
8918 (make_pass_cselim): ...new function.
8919 (pass_phiopt): Replace declaration with that of...
8920 (make_pass_phiopt): ...new function.
8921 (pass_forwprop): Replace declaration with that of...
8922 (make_pass_forwprop): ...new function.
8923 (pass_phiprop): Replace declaration with that of...
8924 (make_pass_phiprop): ...new function.
8925 (pass_tree_ifcombine): Replace declaration with that of...
8926 (make_pass_tree_ifcombine): ...new function.
8927 (pass_dse): Replace declaration with that of...
8928 (make_pass_dse): ...new function.
8929 (pass_nrv): Replace declaration with that of...
8930 (make_pass_nrv): ...new function.
8931 (pass_rename_ssa_copies): Replace declaration with that of...
8932 (make_pass_rename_ssa_copies): ...new function.
8933 (pass_sink_code): Replace declaration with that of...
8934 (make_pass_sink_code): ...new function.
8935 (pass_fre): Replace declaration with that of...
8936 (make_pass_fre): ...new function.
8937 (pass_check_data_deps): Replace declaration with that of...
8938 (make_pass_check_data_deps): ...new function.
8939 (pass_copy_prop): Replace declaration with that of...
8940 (make_pass_copy_prop): ...new function.
8941 (pass_vrp): Replace declaration with that of...
8942 (make_pass_vrp): ...new function.
8943 (pass_uncprop): Replace declaration with that of...
8944 (make_pass_uncprop): ...new function.
8945 (pass_return_slot): Replace declaration with that of...
8946 (make_pass_return_slot): ...new function.
8947 (pass_reassoc): Replace declaration with that of...
8948 (make_pass_reassoc): ...new function.
8949 (pass_rebuild_cgraph_edges): Replace declaration with that of...
8950 (make_pass_rebuild_cgraph_edges): ...new function.
8951 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
8952 (make_pass_remove_cgraph_callee_edges): ...new function.
8953 (pass_build_cgraph_edges): Replace declaration with that of...
8954 (make_pass_build_cgraph_edges): ...new function.
8955 (pass_local_pure_const): Replace declaration with that of...
8956 (make_pass_local_pure_const): ...new function.
8957 (pass_tracer): Replace declaration with that of...
8958 (make_pass_tracer): ...new function.
8959 (pass_warn_unused_result): Replace declaration with that of...
8960 (make_pass_warn_unused_result): ...new function.
8961 (pass_diagnose_tm_blocks): Replace declaration with that of...
8962 (make_pass_diagnose_tm_blocks): ...new function.
8963 (pass_lower_tm): Replace declaration with that of...
8964 (make_pass_lower_tm): ...new function.
8965 (pass_tm_init): Replace declaration with that of...
8966 (make_pass_tm_init): ...new function.
8967 (pass_tm_mark): Replace declaration with that of...
8968 (make_pass_tm_mark): ...new function.
8969 (pass_tm_memopt): Replace declaration with that of...
8970 (make_pass_tm_memopt): ...new function.
8971 (pass_tm_edges): Replace declaration with that of...
8972 (make_pass_tm_edges): ...new function.
8973 (pass_split_functions): Replace declaration with that of...
8974 (make_pass_split_functions): ...new function.
8975 (pass_feedback_split_functions): Replace declaration with that of...
8976 (make_pass_feedback_split_functions): ...new function.
8977 (pass_strength_reduction): Replace declaration with that of...
8978 (make_pass_strength_reduction): ...new function.
8979 (pass_ipa_lower_emutls): Replace declaration with that of...
8980 (make_pass_ipa_lower_emutls): ...new function.
8981 (pass_ipa_function_and_variable_visibility): Replace declaration with
8982 that of...
8983 (make_pass_ipa_function_and_variable_visibility): ...new function.
8984 (pass_ipa_tree_profile): Replace declaration with that of...
8985 (make_pass_ipa_tree_profile): ...new function.
8986 (pass_early_local_passes): Replace declaration with that of...
8987 (make_pass_early_local_passes): ...new function.
8988 (pass_ipa_whole_program_visibility): Replace declaration with that
8989 of...
8990 (make_pass_ipa_whole_program_visibility): ...new function.
8991 (pass_ipa_lto_gimple_out): Replace declaration with that of...
8992 (make_pass_ipa_lto_gimple_out): ...new function.
8993 (pass_ipa_increase_alignment): Replace declaration with that of...
8994 (make_pass_ipa_increase_alignment): ...new function.
8995 (pass_ipa_inline): Replace declaration with that of...
8996 (make_pass_ipa_inline): ...new function.
8997 (pass_ipa_free_lang_data): Replace declaration with that of...
8998 (make_pass_ipa_free_lang_data): ...new function.
8999 (pass_ipa_free_inline_summary): Replace declaration with that of...
9000 (make_pass_ipa_free_inline_summary): ...new function.
9001 (pass_ipa_cp): Replace declaration with that of...
9002 (make_pass_ipa_cp): ...new function.
9003 (pass_ipa_reference): Replace declaration with that of...
9004 (make_pass_ipa_reference): ...new function.
9005 (pass_ipa_pure_const): Replace declaration with that of...
9006 (make_pass_ipa_pure_const): ...new function.
9007 (pass_ipa_pta): Replace declaration with that of...
9008 (make_pass_ipa_pta): ...new function.
9009 (pass_ipa_lto_finish_out): Replace declaration with that of...
9010 (make_pass_ipa_lto_finish_out): ...new function.
9011 (pass_ipa_tm): Replace declaration with that of...
9012 (make_pass_ipa_tm): ...new function.
9013 (pass_ipa_profile): Replace declaration with that of...
9014 (make_pass_ipa_profile): ...new function.
9015 (pass_ipa_cdtor_merge): Replace declaration with that of...
9016 (make_pass_ipa_cdtor_merge): ...new function.
9017 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
9018 of...
9019 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9020 (pass_init_datastructures): Replace declaration with that of...
9021 (make_pass_init_datastructures): ...new function.
9022 (pass_fixup_cfg): Replace declaration with that of...
9023 (make_pass_fixup_cfg): ...new function.
9024 (pass_expand): Replace declaration with that of...
9025 (make_pass_expand): ...new function.
9026 (pass_instantiate_virtual_regs): Replace declaration with that of...
9027 (make_pass_instantiate_virtual_regs): ...new function.
9028 (pass_rtl_fwprop): Replace declaration with that of...
9029 (make_pass_rtl_fwprop): ...new function.
9030 (pass_rtl_fwprop_addr): Replace declaration with that of...
9031 (make_pass_rtl_fwprop_addr): ...new function.
9032 (pass_jump): Replace declaration with that of...
9033 (make_pass_jump): ...new function.
9034 (pass_jump2): Replace declaration with that of...
9035 (make_pass_jump2): ...new function.
9036 (pass_lower_subreg): Replace declaration with that of...
9037 (make_pass_lower_subreg): ...new function.
9038 (pass_cse): Replace declaration with that of...
9039 (make_pass_cse): ...new function.
9040 (pass_fast_rtl_dce): Replace declaration with that of...
9041 (make_pass_fast_rtl_dce): ...new function.
9042 (pass_ud_rtl_dce): Replace declaration with that of...
9043 (make_pass_ud_rtl_dce): ...new function.
9044 (pass_rtl_dce): Replace declaration with that of...
9045 (make_pass_rtl_dce): ...new function.
9046 (pass_rtl_dse1): Replace declaration with that of...
9047 (make_pass_rtl_dse1): ...new function.
9048 (pass_rtl_dse2): Replace declaration with that of...
9049 (make_pass_rtl_dse2): ...new function.
9050 (pass_rtl_dse3): Replace declaration with that of...
9051 (make_pass_rtl_dse3): ...new function.
9052 (pass_rtl_cprop): Replace declaration with that of...
9053 (make_pass_rtl_cprop): ...new function.
9054 (pass_rtl_pre): Replace declaration with that of...
9055 (make_pass_rtl_pre): ...new function.
9056 (pass_rtl_hoist): Replace declaration with that of...
9057 (make_pass_rtl_hoist): ...new function.
9058 (pass_rtl_store_motion): Replace declaration with that of...
9059 (make_pass_rtl_store_motion): ...new function.
9060 (pass_cse_after_global_opts): Replace declaration with that of...
9061 (make_pass_cse_after_global_opts): ...new function.
9062 (pass_rtl_ifcvt): Replace declaration with that of...
9063 (make_pass_rtl_ifcvt): ...new function.
9064 (pass_into_cfg_layout_mode): Replace declaration with that of...
9065 (make_pass_into_cfg_layout_mode): ...new function.
9066 (pass_outof_cfg_layout_mode): Replace declaration with that of...
9067 (make_pass_outof_cfg_layout_mode): ...new function.
9068 (pass_loop2): Replace declaration with that of...
9069 (make_pass_loop2): ...new function.
9070 (pass_rtl_loop_init): Replace declaration with that of...
9071 (make_pass_rtl_loop_init): ...new function.
9072 (pass_rtl_move_loop_invariants): Replace declaration with that of...
9073 (make_pass_rtl_move_loop_invariants): ...new function.
9074 (pass_rtl_unswitch): Replace declaration with that of...
9075 (make_pass_rtl_unswitch): ...new function.
9076 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
9077 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9078 (pass_rtl_doloop): Replace declaration with that of...
9079 (make_pass_rtl_doloop): ...new function.
9080 (pass_rtl_loop_done): Replace declaration with that of...
9081 (make_pass_rtl_loop_done): ...new function.
9082 (pass_web): Replace declaration with that of...
9083 (make_pass_web): ...new function.
9084 (pass_cse2): Replace declaration with that of...
9085 (make_pass_cse2): ...new function.
9086 (pass_df_initialize_opt): Replace declaration with that of...
9087 (make_pass_df_initialize_opt): ...new function.
9088 (pass_df_initialize_no_opt): Replace declaration with that of...
9089 (make_pass_df_initialize_no_opt): ...new function.
9090 (pass_reginfo_init): Replace declaration with that of...
9091 (make_pass_reginfo_init): ...new function.
9092 (pass_inc_dec): Replace declaration with that of...
9093 (make_pass_inc_dec): ...new function.
9094 (pass_stack_ptr_mod): Replace declaration with that of...
9095 (make_pass_stack_ptr_mod): ...new function.
9096 (pass_initialize_regs): Replace declaration with that of...
9097 (make_pass_initialize_regs): ...new function.
9098 (pass_combine): Replace declaration with that of...
9099 (make_pass_combine): ...new function.
9100 (pass_if_after_combine): Replace declaration with that of...
9101 (make_pass_if_after_combine): ...new function.
9102 (pass_ree): Replace declaration with that of...
9103 (make_pass_ree): ...new function.
9104 (pass_partition_blocks): Replace declaration with that of...
9105 (make_pass_partition_blocks): ...new function.
9106 (pass_match_asm_constraints): Replace declaration with that of...
9107 (make_pass_match_asm_constraints): ...new function.
9108 (pass_regmove): Replace declaration with that of...
9109 (make_pass_regmove): ...new function.
9110 (pass_split_all_insns): Replace declaration with that of...
9111 (make_pass_split_all_insns): ...new function.
9112 (pass_fast_rtl_byte_dce): Replace declaration with that of...
9113 (make_pass_fast_rtl_byte_dce): ...new function.
9114 (pass_lower_subreg2): Replace declaration with that of...
9115 (make_pass_lower_subreg2): ...new function.
9116 (pass_mode_switching): Replace declaration with that of...
9117 (make_pass_mode_switching): ...new function.
9118 (pass_sms): Replace declaration with that of...
9119 (make_pass_sms): ...new function.
9120 (pass_sched): Replace declaration with that of...
9121 (make_pass_sched): ...new function.
9122 (pass_ira): Replace declaration with that of...
9123 (make_pass_ira): ...new function.
9124 (pass_reload): Replace declaration with that of...
9125 (make_pass_reload): ...new function.
9126 (pass_clean_state): Replace declaration with that of...
9127 (make_pass_clean_state): ...new function.
9128 (pass_branch_prob): Replace declaration with that of...
9129 (make_pass_branch_prob): ...new function.
9130 (pass_value_profile_transformations): Replace declaration with that
9131 of...
9132 (make_pass_value_profile_transformations): ...new function.
9133 (pass_postreload_cse): Replace declaration with that of...
9134 (make_pass_postreload_cse): ...new function.
9135 (pass_gcse2): Replace declaration with that of...
9136 (make_pass_gcse2): ...new function.
9137 (pass_split_after_reload): Replace declaration with that of...
9138 (make_pass_split_after_reload): ...new function.
9139 (pass_branch_target_load_optimize1): Replace declaration with that
9140 of...
9141 (make_pass_branch_target_load_optimize1): ...new function.
9142 (pass_thread_prologue_and_epilogue): Replace declaration with that
9143 of...
9144 (make_pass_thread_prologue_and_epilogue): ...new function.
9145 (pass_stack_adjustments): Replace declaration with that of...
9146 (make_pass_stack_adjustments): ...new function.
9147 (pass_peephole2): Replace declaration with that of...
9148 (make_pass_peephole2): ...new function.
9149 (pass_if_after_reload): Replace declaration with that of...
9150 (make_pass_if_after_reload): ...new function.
9151 (pass_regrename): Replace declaration with that of...
9152 (make_pass_regrename): ...new function.
9153 (pass_cprop_hardreg): Replace declaration with that of...
9154 (make_pass_cprop_hardreg): ...new function.
9155 (pass_reorder_blocks): Replace declaration with that of...
9156 (make_pass_reorder_blocks): ...new function.
9157 (pass_branch_target_load_optimize2): Replace declaration with that
9158 of...
9159 (make_pass_branch_target_load_optimize2): ...new function.
9160 (pass_leaf_regs): Replace declaration with that of...
9161 (make_pass_leaf_regs): ...new function.
9162 (pass_split_before_sched2): Replace declaration with that of...
9163 (make_pass_split_before_sched2): ...new function.
9164 (pass_compare_elim_after_reload): Replace declaration with that of...
9165 (make_pass_compare_elim_after_reload): ...new function.
9166 (pass_sched2): Replace declaration with that of...
9167 (make_pass_sched2): ...new function.
9168 (pass_stack_regs): Replace declaration with that of...
9169 (make_pass_stack_regs): ...new function.
9170 (pass_stack_regs_run): Replace declaration with that of...
9171 (make_pass_stack_regs_run): ...new function.
9172 (pass_df_finish): Replace declaration with that of...
9173 (make_pass_df_finish): ...new function.
9174 (pass_compute_alignments): Replace declaration with that of...
9175 (make_pass_compute_alignments): ...new function.
9176 (pass_duplicate_computed_gotos): Replace declaration with that of...
9177 (make_pass_duplicate_computed_gotos): ...new function.
9178 (pass_variable_tracking): Replace declaration with that of...
9179 (make_pass_variable_tracking): ...new function.
9180 (pass_free_cfg): Replace declaration with that of...
9181 (make_pass_free_cfg): ...new function.
9182 (pass_machine_reorg): Replace declaration with that of...
9183 (make_pass_machine_reorg): ...new function.
9184 (pass_cleanup_barriers): Replace declaration with that of...
9185 (make_pass_cleanup_barriers): ...new function.
9186 (pass_delay_slots): Replace declaration with that of...
9187 (make_pass_delay_slots): ...new function.
9188 (pass_split_for_shorten_branches): Replace declaration with that of...
9189 (make_pass_split_for_shorten_branches): ...new function.
9190 (pass_split_before_regstack): Replace declaration with that of...
9191 (make_pass_split_before_regstack): ...new function.
9192 (pass_convert_to_eh_region_ranges): Replace declaration with that
9193 of...
9194 (make_pass_convert_to_eh_region_ranges): ...new function.
9195 (pass_shorten_branches): Replace declaration with that of...
9196 (make_pass_shorten_branches): ...new function.
9197 (pass_set_nothrow_function_flags): Replace declaration with that of...
9198 (make_pass_set_nothrow_function_flags): ...new function.
9199 (pass_dwarf2_frame): Replace declaration with that of...
9200 (make_pass_dwarf2_frame): ...new function.
9201 (pass_final): Replace declaration with that of...
9202 (make_pass_final): ...new function.
9203 (pass_rtl_seqabstr): Replace declaration with that of...
9204 (make_pass_rtl_seqabstr): ...new function.
9205 (pass_release_ssa_names): Replace declaration with that of...
9206 (make_pass_release_ssa_names): ...new function.
9207 (pass_early_inline): Replace declaration with that of...
9208 (make_pass_early_inline): ...new function.
9209 (pass_inline_parameters): Replace declaration with that of...
9210 (make_pass_inline_parameters): ...new function.
9211 (pass_update_address_taken): Replace declaration with that of...
9212 (make_pass_update_address_taken): ...new function.
9213 (pass_convert_switch): Replace declaration with that of...
9214 (make_pass_convert_switch): ...new function.
9215 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
9216 to a subclass of simple_ipa_opt_pass along with...
9217 (pass_data_ipa_tree_profile): ...new pass_data instance and...
9218 (make_pass_ipa_tree_profile): ...new function.
9219 * tree-sra.c (pass_sra_early): Convert from a global struct to a
9220 subclass of gimple_opt_pass along with...
9221 (pass_data_sra_early): ...new pass_data instance and...
9222 (make_pass_sra_early): ...new function.
9223 (pass_sra): Convert from a global struct to a subclass of
9224 gimple_opt_pass along with...
9225 (pass_data_sra): ...new pass_data instance and...
9226 (make_pass_sra): ...new function.
9227 (pass_early_ipa_sra): Convert from a global struct to a subclass of
9228 gimple_opt_pass along with...
9229 (pass_data_early_ipa_sra): ...new pass_data instance and...
9230 (make_pass_early_ipa_sra): ...new function.
9231 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
9232 subclass of gimple_opt_pass along with...
9233 (pass_data_ccp): ...new pass_data instance and...
9234 (make_pass_ccp): ...new function.
9235 (pass_fold_builtins): Convert from a global struct to a subclass of
9236 gimple_opt_pass along with...
9237 (pass_data_fold_builtins): ...new pass_data instance and...
9238 (make_pass_fold_builtins): ...new function.
9239 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
9240 subclass of gimple_opt_pass along with...
9241 (pass_data_copy_prop): ...new pass_data instance and...
9242 (make_pass_copy_prop): ...new function.
9243 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
9244 global struct to a subclass of gimple_opt_pass along with...
9245 (pass_data_rename_ssa_copies): ...new pass_data instance and...
9246 (make_pass_rename_ssa_copies): ...new function.
9247 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
9248 subclass of gimple_opt_pass along with...
9249 (pass_data_dce): ...new pass_data instance and...
9250 (make_pass_dce): ...new function.
9251 (pass_dce_loop): Convert from a global struct to a subclass of
9252 gimple_opt_pass along with...
9253 (pass_data_dce_loop): ...new pass_data instance and...
9254 (make_pass_dce_loop): ...new function.
9255 (pass_cd_dce): Convert from a global struct to a subclass of
9256 gimple_opt_pass along with...
9257 (pass_data_cd_dce): ...new pass_data instance and...
9258 (make_pass_cd_dce): ...new function.
9259 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
9260 subclass of gimple_opt_pass along with...
9261 (pass_data_dominator): ...new pass_data instance and...
9262 (make_pass_dominator): ...new function.
9263 (pass_phi_only_cprop): Convert from a global struct to a subclass of
9264 gimple_opt_pass along with...
9265 (pass_data_phi_only_cprop): ...new pass_data instance and...
9266 (make_pass_phi_only_cprop): ...new function.
9267 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
9268 subclass of gimple_opt_pass along with...
9269 (pass_data_dse): ...new pass_data instance and...
9270 (make_pass_dse): ...new function.
9271 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
9272 a subclass of gimple_opt_pass along with...
9273 (pass_data_forwprop): ...new pass_data instance and...
9274 (make_pass_forwprop): ...new function.
9275 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
9276 struct to a subclass of gimple_opt_pass along with...
9277 (pass_data_tree_ifcombine): ...new pass_data instance and...
9278 (make_pass_tree_ifcombine): ...new function.
9279 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
9280 subclass of gimple_opt_pass along with...
9281 (pass_data_ch): ...new pass_data instance and...
9282 (make_pass_ch): ...new function.
9283 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
9284 subclass of gimple_opt_pass along with...
9285 (pass_data_tree_loop): ...new pass_data instance and...
9286 (make_pass_tree_loop): ...new function.
9287 (pass_tree_loop_init): Convert from a global struct to a subclass of
9288 gimple_opt_pass along with...
9289 (pass_data_tree_loop_init): ...new pass_data instance and...
9290 (make_pass_tree_loop_init): ...new function.
9291 (pass_lim): Convert from a global struct to a subclass of
9292 gimple_opt_pass along with...
9293 (pass_data_lim): ...new pass_data instance and...
9294 (make_pass_lim): ...new function.
9295 (pass_tree_unswitch): Convert from a global struct to a subclass of
9296 gimple_opt_pass along with...
9297 (pass_data_tree_unswitch): ...new pass_data instance and...
9298 (make_pass_tree_unswitch): ...new function.
9299 (pass_predcom): Convert from a global struct to a subclass of
9300 gimple_opt_pass along with...
9301 (pass_data_predcom): ...new pass_data instance and...
9302 (make_pass_predcom): ...new function.
9303 (pass_vectorize): Convert from a global struct to a subclass of
9304 gimple_opt_pass along with...
9305 (pass_data_vectorize): ...new pass_data instance and...
9306 (make_pass_vectorize): ...new function.
9307 (pass_graphite): Convert from a global struct to a subclass of
9308 gimple_opt_pass along with...
9309 (pass_data_graphite): ...new pass_data instance and...
9310 (make_pass_graphite): ...new function.
9311 (pass_graphite_transforms): Convert from a global struct to a subclass
9312 of gimple_opt_pass along with...
9313 (pass_data_graphite_transforms): ...new pass_data instance and...
9314 (make_pass_graphite_transforms): ...new function.
9315 (pass_check_data_deps): Convert from a global struct to a subclass of
9316 gimple_opt_pass along with...
9317 (pass_data_check_data_deps): ...new pass_data instance and...
9318 (make_pass_check_data_deps): ...new function.
9319 (pass_iv_canon): Convert from a global struct to a subclass of
9320 gimple_opt_pass along with...
9321 (pass_data_iv_canon): ...new pass_data instance and...
9322 (make_pass_iv_canon): ...new function.
9323 (pass_scev_cprop): Convert from a global struct to a subclass of
9324 gimple_opt_pass along with...
9325 (pass_data_scev_cprop): ...new pass_data instance and...
9326 (make_pass_scev_cprop): ...new function.
9327 (pass_record_bounds): Convert from a global struct to a subclass of
9328 gimple_opt_pass along with...
9329 (pass_data_record_bounds): ...new pass_data instance and...
9330 (make_pass_record_bounds): ...new function.
9331 (pass_complete_unroll): Convert from a global struct to a subclass of
9332 gimple_opt_pass along with...
9333 (pass_data_complete_unroll): ...new pass_data instance and...
9334 (make_pass_complete_unroll): ...new function.
9335 (pass_complete_unrolli): Convert from a global struct to a subclass of
9336 gimple_opt_pass along with...
9337 (pass_data_complete_unrolli): ...new pass_data instance and...
9338 (make_pass_complete_unrolli): ...new function.
9339 (pass_parallelize_loops): Convert from a global struct to a subclass
9340 of gimple_opt_pass along with...
9341 (pass_data_parallelize_loops): ...new pass_data instance and...
9342 (make_pass_parallelize_loops): ...new function.
9343 (pass_loop_prefetch): Convert from a global struct to a subclass of
9344 gimple_opt_pass along with...
9345 (pass_data_loop_prefetch): ...new pass_data instance and...
9346 (make_pass_loop_prefetch): ...new function.
9347 (pass_iv_optimize): Convert from a global struct to a subclass of
9348 gimple_opt_pass along with...
9349 (pass_data_iv_optimize): ...new pass_data instance and...
9350 (make_pass_iv_optimize): ...new function.
9351 (pass_tree_loop_done): Convert from a global struct to a subclass of
9352 gimple_opt_pass along with...
9353 (pass_data_tree_loop_done): ...new pass_data instance and...
9354 (make_pass_tree_loop_done): ...new function.
9355 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
9356 struct to a subclass of gimple_opt_pass along with...
9357 (pass_data_cse_reciprocals): ...new pass_data instance and...
9358 (make_pass_cse_reciprocals): ...new function.
9359 (pass_cse_sincos): Convert from a global struct to a subclass of
9360 gimple_opt_pass along with...
9361 (pass_data_cse_sincos): ...new pass_data instance and...
9362 (make_pass_cse_sincos): ...new function.
9363 (pass_optimize_bswap): Convert from a global struct to a subclass of
9364 gimple_opt_pass along with...
9365 (pass_data_optimize_bswap): ...new pass_data instance and...
9366 (make_pass_optimize_bswap): ...new function.
9367 (pass_optimize_widening_mul): Convert from a global struct to a
9368 subclass of gimple_opt_pass along with...
9369 (pass_data_optimize_widening_mul): ...new pass_data instance and...
9370 (make_pass_optimize_widening_mul): ...new function.
9371 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
9372 subclass of gimple_opt_pass along with...
9373 (pass_data_phiopt): ...new pass_data instance and...
9374 (make_pass_phiopt): ...new function.
9375 (pass_cselim): Convert from a global struct to a subclass of
9376 gimple_opt_pass along with...
9377 (pass_data_cselim): ...new pass_data instance and...
9378 (make_pass_cselim): ...new function.
9379 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
9380 subclass of gimple_opt_pass along with...
9381 (pass_data_phiprop): ...new pass_data instance and...
9382 (make_pass_phiprop): ...new function.
9383 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
9384 subclass of gimple_opt_pass along with...
9385 (pass_data_pre): ...new pass_data instance and...
9386 (make_pass_pre): ...new function.
9387 (pass_fre): Convert from a global struct to a subclass of
9388 gimple_opt_pass along with...
9389 (pass_data_fre): ...new pass_data instance and...
9390 (make_pass_fre): ...new function.
9391 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
9392 subclass of gimple_opt_pass along with...
9393 (pass_data_reassoc): ...new pass_data instance and...
9394 (make_pass_reassoc): ...new function.
9395 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
9396 subclass of gimple_opt_pass along with...
9397 (pass_data_sink_code): ...new pass_data instance and...
9398 (make_pass_sink_code): ...new function.
9399 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
9400 subclass of gimple_opt_pass along with...
9401 (pass_data_strlen): ...new pass_data instance and...
9402 (make_pass_strlen): ...new function.
9403 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
9404 struct to a subclass of gimple_opt_pass along with...
9405 (pass_data_build_alias): ...new pass_data instance and...
9406 (make_pass_build_alias): ...new function.
9407 (pass_build_ealias): Convert from a global struct to a subclass of
9408 gimple_opt_pass along with...
9409 (pass_data_build_ealias): ...new pass_data instance and...
9410 (make_pass_build_ealias): ...new function.
9411 (pass_ipa_pta): Convert from a global struct to a subclass of
9412 simple_ipa_opt_pass along with...
9413 (pass_data_ipa_pta): ...new pass_data instance and...
9414 (make_pass_ipa_pta): ...new function.
9415 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
9416 subclass of gimple_opt_pass along with...
9417 (pass_data_uncprop): ...new pass_data instance and...
9418 (make_pass_uncprop): ...new function.
9419 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
9420 global struct to a subclass of gimple_opt_pass along with...
9421 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
9422 (make_pass_late_warn_uninitialized): ...new function.
9423 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
9424 to a subclass of gimple_opt_pass along with...
9425 (pass_data_init_datastructures): ...new pass_data instance and...
9426 (make_pass_init_datastructures): ...new function.
9427 (pass_early_warn_uninitialized): Convert from a global struct to a
9428 subclass of gimple_opt_pass along with...
9429 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
9430 (make_pass_early_warn_uninitialized): ...new function.
9431 (pass_update_address_taken): Convert from a global struct to a
9432 subclass of gimple_opt_pass along with...
9433 (pass_data_update_address_taken): ...new pass_data instance and...
9434 (make_pass_update_address_taken): ...new function.
9435 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
9436 struct to a subclass of gimple_opt_pass along with...
9437 (pass_data_release_ssa_names): ...new pass_data instance and...
9438 (make_pass_release_ssa_names): ...new function.
9439 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
9440 subclass of gimple_opt_pass along with...
9441 (pass_data_stdarg): ...new pass_data instance and...
9442 (make_pass_stdarg): ...new function.
9443 * tree-switch-conversion.c (pass_convert_switch): Convert from a
9444 global struct to a subclass of gimple_opt_pass along with...
9445 (pass_data_convert_switch): ...new pass_data instance and...
9446 (make_pass_convert_switch): ...new function.
9447 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
9448 to a subclass of gimple_opt_pass along with...
9449 (pass_data_tail_recursion): ...new pass_data instance and...
9450 (make_pass_tail_recursion): ...new function.
9451 (pass_tail_calls): Convert from a global struct to a subclass of
9452 gimple_opt_pass along with...
9453 (pass_data_tail_calls): ...new pass_data instance and...
9454 (make_pass_tail_calls): ...new function.
9455 * tree-vect-generic.c (pass_lower_vector): Convert from a global
9456 struct to a subclass of gimple_opt_pass along with...
9457 (pass_data_lower_vector): ...new pass_data instance and...
9458 (make_pass_lower_vector): ...new function.
9459 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
9460 gimple_opt_pass along with...
9461 (pass_data_lower_vector_ssa): ...new pass_data instance and...
9462 (make_pass_lower_vector_ssa): ...new function.
9463 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
9464 to a subclass of gimple_opt_pass along with...
9465 (pass_data_slp_vectorize): ...new pass_data instance and...
9466 (make_pass_slp_vectorize): ...new function.
9467 (pass_ipa_increase_alignment): Convert from a global struct to a
9468 subclass of simple_ipa_opt_pass along with...
9469 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
9470 (make_pass_ipa_increase_alignment): ...new function.
9471 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
9472 gimple_opt_pass along with...
9473 (pass_data_vrp): ...new pass_data instance and...
9474 (make_pass_vrp): ...new function.
9475 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
9476 subclass of simple_ipa_opt_pass along with...
9477 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
9478 (make_pass_ipa_free_lang_data): ...new function.
9479 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
9480 gimple_opt_pass along with...
9481 (pass_data_tsan): ...new pass_data instance and...
9482 (make_pass_tsan): ...new function.
9483 (pass_tsan_O0): Convert from a global struct to a subclass of
9484 gimple_opt_pass along with...
9485 (pass_data_tsan_O0): ...new pass_data instance and...
9486 (make_pass_tsan_O0): ...new function.
9487 * var-tracking.c (pass_variable_tracking): Convert from a global
9488 struct to a subclass of rtl_opt_pass along with...
9489 (pass_data_variable_tracking): ...new pass_data instance and...
9490 (make_pass_variable_tracking): ...new function.
9491 * web.c (pass_web): Convert from a global struct to a subclass of
9492 rtl_opt_pass along with...
9493 (pass_data_web): ...new pass_data instance and...
9494 (make_pass_web): ...new function.
9495 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
9496 declaration with that of...
9497 (make_pass_mode_switch_use): ...new function.
9498 (pass_resolve_sw_modes): Replace declaration with that of...
9499 (make_pass_resolve_sw_modes): ...new function.
9500 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
9501 from a global struct to a subclass of rtl_opt_pass along with...
9502 (pass_data_mode_switch_use): ...new pass_data instance and...
9503 (make_pass_mode_switch_use): ...new function.
9504 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
9505 from a global struct to a subclass of rtl_opt_pass along with...
9506 (pass_data_resolve_sw_modes): ...new pass_data instance and...
9507 (make_pass_resolve_sw_modes): ...new function.
9508 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
9509 struct to a subclass of rtl_opt_pass along with...
9510 (pass_data_insert_vzeroupper): ...new pass_data instance and...
9511 (make_pass_insert_vzeroupper): ...new function.
9512 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
9513 global struct to a subclass of rtl_opt_pass along with...
9514 (pass_data_work_around_errata): ...new pass_data instance and...
9515 (make_pass_work_around_errata): ...new function.
9516 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
9517 struct to a subclass of rtl_opt_pass along with...
9518 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
9519 (make_pass_mips_machine_reorg2): ...new function.
9520
6a389ed5
DM
95212013-08-05 David Malcolm <dmalcolm@redhat.com>
9522
9523 * passes.c (pass_manager::operator new): New.
9524
f7695dbf
DM
95252013-08-05 David Malcolm <dmalcolm@redhat.com>
9526
9527 Handwritten part of conversion of passes to C++ classes.
9528
9529 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
9530 (toplev.o): Add dep on PASS_MANAGER_H.
9531 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
9532 of early local pases to reflect this moving from a global to a
9533 member of gcc::pass_manager.
9534 (cgraph_add_new_function): Likewise.
9535 * lto-cgraph.c (lto_output_node): Update for conversion of
9536 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
9537 * passes.c (opt_pass::clone): New.
9538 (opt_pass::gate): New.
9539 (opt_pass::execute): New.
9540 (opt_pass::opt_pass): New.
9541 (pass_manager::execute_early_local_passes): New.
9542 (pass_manager::execute_pass_mode_switching): new.
9543 (finish_optimization_passes): Convert to...
9544 (pass_manager::finish_optimization_passes): ...this.
9545 (finish_optimization_passes): Update for conversion of passes to
9546 C++ classes.
9547 (register_dump_files_1): Use has_gate since we cannot portably
9548 check a vtable entry against NULL.
9549 (dump_one_pass): Likewise.
9550 (ipa_write_summaries_2): Likewise.
9551 (ipa_write_optimization_summaries_1): Likewise.
9552 (ipa_read_summaries_1): Likewise.
9553 (ipa_read_optimization_summaries_1): Likewise.
9554 (execute_ipa_stmt_fixups): Likewise.
9555 (pass_manager::pass_manager): Rewrite pass-creation, invoking
9556 pass-creation functions rather than wiring up globals, and
9557 storing the results in fields of pass_manager generated using
9558 pass-instances.def.
9559 (pass_manager::dump_profile_report): Update for conversion of
9560 passes to C++ classes.
9561 (pass_manager::execute_ipa_summary_passes): Likewise.
9562 (execute_one_ipa_transform_pass): Likewise.
9563 (execute_one_pass): Use has_gate and has_execute since we cannot
9564 portably check a vtable entry against NULL.
9565 * pass_manager.h (pass_manager::finish_optimization_passes): New.
9566 (pass_manager): Use pass-instances.def to add fields for the
9567 various pass instances.
9568 * toplev.c (finalize): Update for move of
9569 finish_optimization_passes to a method of gcc::pass_manager.
9570 * toplev.h (finish_optimization_passes): Move to method of class
9571 pass_manager.
9572 * tree-pass.h (struct pass_data): New.
03b0ee0a 9573 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
9574 (opt_pass::gate): Convert to virtual function.
9575 (opt_pass::~opt_pass): New.
9576 (opt_pass::clone): New.
9577 (opt_pass::execute): Convert to virtual function.
9578 (opt_pass::opt_pass): New.
9579 (opt_pass::ctxt_): new.
9580 (gimple_opt_pass): Convert to subclass of opt_pass.
9581 (gimple_opt_pass::gimple_opt_pass): New.
9582 (rtl_opt_pass): Convert to subclass of opt_pass.
9583 (rtl_opt_pass::rtl_opt_pass): New.
9584 (ipa_opt_pass_d): Convert to subclass of opt_pass.
9585 (ipa_opt_pass_d::ipa_opt_pass_d): New.
9586 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
9587 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
9588 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
9589 invocation of pass_mode_switching to reflect this moving from a
9590 global to a member of gcc::pass_manager.
9591 (ix86_option_override): Rework how pass_insert_vzeroupper is
9592 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 9593 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 9594
d0b2f831
RE
95952013-08-05 Richard Earnshaw <rearnsha@arm.com>
9596
9597 PR rtl-optimization/57708
9598 * recog.c (peep2_find_free_register): Validate all regs in a
9599 multi-reg mode.
9600
51a5c0c2
JH
96012013-08-05 Jan Hubicka <jh@suse.cz>
9602
9603 PR lto/57602
03b0ee0a
UB
9604 * cgraph.c (verify_cgraph_node): Accept local flags from other
9605 partitions.
51a5c0c2
JH
9606 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
9607 (function_and_variable_visibility): Likewise.
9608 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
9609
65f0a120
GDR
96102013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9611
9612 * graph.c (init_graph_slim_pretty_print): Remove.
9613 (print_graph_cfg): Do not call it. Use local pretty printer.
9614 (start_graph_dump): Likewise.
9615
b3f80694
GDR
96162013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9617
9618 * gimple-pretty-print.c (buffer): Remove.
9619 (initialized): Likewise.
9620 (maybe_init_pretty_print): Likewise.
9621 (print_gimple_stmt): Do not call it. Use non-static local
9622 pretty_printer variable.
9623 (print_gimple_expr): Likewise.
9624 (print_gimple_seq): Likewise.
9625 (gimple_dump_bb): Likewise.
9626
11a877b3
GDR
96272013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9628
9629 * asan.c (asan_pp): Remove.
9630 (asan_pp_initialized): Likewise.
9631 (asan_pp_initialize): Likewise.
9632 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
9633 (asan_emit_stack_protection): Tidy. Use local pretty printer.
9634 (asan_add_global): Likewise.
9635
b066401f
GDR
96362013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
9637
9638 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
9639 * diagnostic.h (diagnostic_flush_buffer): Adjust.
9640 * pretty-print.c (pp_formatted_text_data): Likewise.
9641 (pp_indent): Rename from pp_base_indent.
9642 (pp_format): Rename from pp_base_format.
9643 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
9644 (pp_format_verbatim): Rename from pp_base_format_verbatim.
9645 (pp_flush): Rename from pp_base_flush.
9646 (pp_set_line_maximum_length): Rename from
9647 pp_base_set_line_maximum_length.
9648 (pp_clear_output_area): Rename from pp_base_clear_output_area.
9649 (pp_set_prefix): Rename from pp_base_set_prefix.
9650 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
9651 (pp_emit_prefix): Rename from pp_base_emit_prefix.
9652 (pp_append_text): Rename from pp_base_append_text.
9653 (pp_formatted_text): Rename from pp_base_formatted_text.
9654 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
9655 (pp_remaining_character_count_for_line): Rename from
9656 pp_base_remaining_character_count_for_line.
9657 (pp_newline): Rename from pp_base_newline.
9658 (pp_character): Rename from pp_base_character.
9659 (pp_string): Rename from pp_base_string.
9660 (pp_maybe_space): Rename from pp_base_maybe_space.
9661 * asan.c (asan_pp_string): Adjust.
9662 (asan_emit_stack_protection): Likewise.
9663 (asan_add_global): Likewise.
9664 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
9665 * tree-mudflap.c (mf_varname_tree): Likewise.
9666 * tree-pretty-print.c (pp_tree_identifier): Rename from
9667 pp_base_tree_identifier.
9668 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
9669 Declare as function.
9670
137a1a27
GDR
96712013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
9672
9673 * pretty-print.h (pp_bar_bar): New.
9674 (pp_ampersand_ampersand): Likewise.
9675 (pp_less_equal): Likewise.
9676 (pp_greater_equal): Likewise.
9677 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
9678 printer functions instead of pp_string or operators and punctuators.
9679 (dump_gimple_call): Likewise.
9680 (dump_gimple_omp_for): Likewise.
9681 (dump_gimple_transaction): Likewise.
9682 (dump_gimple_phi): Likewise.
9683 (pp_gimple_stmt_1): Likewise.
9684 * sched-vis.c (print_insn): Likewise.
9685 * tree-mudflap.c (mf_varname_tree): Likewise.
9686 * tree-pretty-print.c (dump_block_node): Likewise.
9687 (dump_generic_node): Likewise.
9688
815effe1
JH
96892013-08-02 Jan Hubicka <jh@suse.cz>
9690
9691 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
9692 boundaries.
9693 * lto-streamer-out.c (tree_is_indexable): Results decls and
9694 parm decls are not indexable.
9695 (DFS_write_tree_body): Do not follow args and results.
9696 (hash_tree): Likewise.
9697 (output_functions): Rearrange so struct function is needed
9698 only when real body is output; be able to also ouptut abstract
9699 functions; output DECL_ARGUMENTS and DECL_RESULT.
9700 (lto_output): When not in WPA, ale store abstract functions.
9701 (write_symbol): Do not care about RESULT_DECL.
9702 (output_symbol_p): Handle correctly sbtract decls.
9703 * lto-streamer-in.c (input_function): Rearrange so struct
9704 function can be NULL at entry; allow streaming of
9705 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
9706 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
9707 sanity check during LTO.
9708 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
9709 RESULT_DECl and DECL_ARGUMENTS.
9710 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
9711 Likewise.
9712
07838b13
GDR
97132013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
9714
9715 * pretty-print.h (pp_underscore): New.
9716 (pp_comma): Tidy.
9717 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
9718 printer functions instead of pp_character.
9719 (dump_binary_rhs): Likewise.
9720 (dump_ternary_rhs): Likewise.
9721 (dump_gimple_call_args): Likewise.
9722 (pp_points_to_solution): Likewise.
9723 (dump_gimple_call): Likewise.
9724 (dump_gimple_switch): Likewise.
9725 (dump_gimple_cond): Likewise.
9726 (dump_gimple_bind): Likewise.
9727 (dump_gimple_try): Likewise.
9728 (dump_gimple_omp_for): Likewise.
9729 (dump_gimple_omp_continue): Likewise.
9730 (dump_gimple_omp_single): Likewise.
9731 (dump_gimple_omp_sections): Likewise.
9732 (dump_gimple_omp_block): Likewise.
9733 (dump_gimple_omp_critical): Likewise.
9734 (dump_gimple_transaction): Likewise.
9735 (dump_gimple_asm): Likewise.
9736 (dump_gimple_phi): Likewise.
9737 (dump_gimple_omp_parallel): Likewise.
9738 (dump_gimple_omp_task): Likewise.
9739 (dump_gimple_omp_atomic_load): Likewise.
9740 (dump_gimple_omp_atomic_store): Likewise.
9741 (dump_gimple_mem_ops): Likewise.
9742 (pp_gimple_stmt_1): Likewise.
9743 (pp_cfg_jump): Likewise.
9744 (dump_implicit_edges): Likewise.
9745 (gimple_dump_bb_for_graph): Likewise.
9746 * graph.c (draw_cfg_node): Likewise.
9747 * langhooks.c (lhd_print_error_function): Likewise.
9748 * sched-vis.c (print_exp): Likewise.
9749 (print_value): Likewise.
9750 (print_pattern): Likewise.
9751 (print_insn): Likewise.
9752 (rtl_dump_bb_for_graph): Likewise.
9753 * tree-pretty-print.c (dump_function_declaration): Likewise.
9754 (dump_array_domain): Likewise.
9755 (dump_omp_clause): Likewise.
9756 (dump_location): Likewise.
9757 (dump_generic_node): Likewise.
9758 (print_struct_decl): Likewise.
9759 * diagnostic.c (diagnostic_show_locus): Use pp_space.
9760
bb0d2039
BS
97612013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9762
9763 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
9764 candidate table when replacing a candidate statement.
9765 (replace_rhs_if_not_dup): Likewise.
9766 (replace_one_candidate): Likewise.
9767
bc0ec027 97682013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 9769 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
9770
9771 * cgraphunit.c (add_new_function): Fix logic when adding from
9772 late IPA pass.
9773 (assemble_thunk): Rename to ...
03b0ee0a
UB
9774 (expand_thunk); .. this one; export; get it working with
9775 general functions; make produced gimple valid.
bc0ec027
JH
9776 * cgraph.h (expand_thunk): Declare.
9777
0e8853ee
JH
97782013-08-02 Jan Hubicka <jh@suse.cz>
9779
03b0ee0a
UB
9780 * ipa-cp.c (gather_context_independent_values): Use
9781 ipa_get_param_move_cost.
9782 (get_replacement_map): Remove PARAM; move parameter folding
9783 into tree-inline.c
0e8853ee
JH
9784 (create_specialized_node): Update.
9785 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
9786 assert that we have gimple body; update move_cost.
9787 (count_formal_params): Assert that we have gimple body.
9788 (ipa_dump_param): New function.
9789 (ipa_alloc_node_params): Break out from ...
9790 (ipa_initialize_node_params): ... here.
9791 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
9792 (ipa_write_node_info): Stream move costs.
9793 (ipa_read_node_info): Read move costs.
9794 (ipa_update_after_lto_read): Do not recompute node params.
9795 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
9796 (ipa_get_param): Check we are not in WPA.
9797 (ipa_get_param_move_cost): New.
9798 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
9799 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
9800 parm numbers to be present.
9801
ecee672b
VM
98022013-08-02 Vladimir Makarov <vmakarov@redhat.com>
9803
9804 PR rtl-optimization/58048
9805 * lra-constraints.c (process_alt_operands): Don't check asm
9806 operand on register.
9807
13ec0527
EB
98082013-08-02 Eric Botcazou <ebotcazou@adacore.com>
9809
9810 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
9811 the implied StoreLoad barrier for atomic operations if before.
9812
af15184a
JH
98132013-08-02 Jan Hubicka <jh@suse.cz>
9814 Martin Liska <marxin.liska@gmail.com>
9815
03b0ee0a
UB
9816 * cgraph.c (cgraph_function_body_availability): Do not check
9817 cgraph flags.
af15184a
JH
9818 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
9819 symtab_node_availability): Declare.
9820 * ipa.c (can_replace_by_local_alias): New.
9821 (function_and_variable_visibility): Use it.
03b0ee0a
UB
9822 * symtab.c (symtab_for_node_and_aliases,
9823 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 9824
01e54ef8
VM
98252013-08-02 Vladimir Makarov <vmakarov@redhat.com>
9826
9827 PR rtl-optimization/57963
03b0ee0a 9828 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
9829 (lra_constraints): Use them.
9830
e2fd7ca7
SN
98312013-08-02 Sofiane Naci <sofiane.naci@arm.com>
9832
03b0ee0a
UB
9833 * config/arm/types.md (define_attr "type"): Add "load_acq"
9834 and "store_rel".
e2fd7ca7
SN
9835 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
9836 changes.
9837 (cortex_a53_store1): Likewise.
9838
0dcc26c3
JH
98392013-08-01 Jan Hubicka <jh@suse.cz>
9840
03b0ee0a
UB
9841 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
9842 partitions are not needed.
0dcc26c3 9843
0bd72901
UB
98442013-08-01 Uros Bizjak <ubizjak@gmail.com>
9845
9846 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
9847 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
9848 MAYBE_NON_Q_CLASS_P where appropriate.
9849
12123452
JH
98502013-08-01 Jan Hubicka <jh@suse.cz>
9851
9852 * cgraph.h (release_function_body): Declare.
9853 * tree.c (free_lang_data_in_decl): Free, parameters and return values
9854 of unused delcarations.
9855
ce852f9c
KT
98562013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9857
03b0ee0a
UB
9858 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
9859 RTL form when subtracting a constant.
ce852f9c 9860
c743b246
KT
98612013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9862
9863 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
9864 Generate canonical plus rtx with negated immediate instead of minus
9865 where appropriate.
9866 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
9867
c0c123ef
JH
98682013-08-01 Jan Hubicka <jh@suse.cz>
9869
9870 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
9871 (cgraph_release_function_body): Likewise.
9872 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
9873 * cgraph.h (cgrpah_node): Rename abstract_and_needed
9874 to used_as_abstract_origin.
9875 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
9876 symbols used as abstract origins.
9877 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
9878 * ipa.c (symtab_remove_unreachable_nodes): Recompute
9879 used_as_abstract_origin.
c0c123ef 9880 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
9881 used_as_abstract_origin; be ready for DECL_RESULT and
9882 DECL_ARGUMENTS to be NULL.
c0c123ef 9883
0bd72901
UB
9884 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
9885 for abstract functions.
9886 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
9887 real symbols.
c0c123ef 9888
1f029433
JH
98892013-08-01 Jan Hubicka <jh@suse.cz>
9890
9891 * profile.c (compute_value_histograms): Fix thinko.
9892
c451f4d6
SN
98932013-08-01 Sofiane Naci <sofiane.naci@arm.com>
9894
9895 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
9896 aarch-common-protos.h to extra_headers.
9897 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
9898 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
9899 * config/aarch64/t-aarch64 (aarch-common.o): Define.
9900
34b512f5
SN
99012013-08-01 Sofiane Naci <sofiane.naci@arm.com>
9902
9903 * config/aarch64/aarch64.md (define_attr "type"): Delete.
9904 Include "../arm/types.md". Define "type" attribute for all patterns.
9905 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
9906 attribute changes.
9907
d86e633a
MM
99082013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
9909
9910 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
9911 to support power8 load fusion.
9912 (fusion_gpr_mem_load): Likewise.
9913
9914 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
9915
9916 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
9917 declarations for power8 load fusion.
9918 (emit_fusion_gpr_load): Likewise.
9919
9920 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9921 tuning for power8, turn on fusion mode by default. Turn on sign
9922 extending fusion mode if normal fusion mode is on, and we are at
9923 -O2 or -O3.
9924 (fusion_gpr_load_p): New function, return true if we can fuse an
9925 addis instruction with a dependent load to a GPR.
9926 (emit_fusion_gpr_load): Emit the instructions for power8 load
9927 fusion to GPRs.
9928
0bd72901 9929 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
9930 (VSX load fusion peepholes): New peepholes to fuse together an
9931 addi instruction with a VSX load instruction.
9932
9933 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
9934 peepholes to fuse an addis instruction with a load to a GPR base
9935 register. If we are supporting sign extending fusions, convert
9936 sign extending loads to zero extending loads and add an explicit
9937 sign extension.
9938
c3f35647
SN
99392013-07-31 Sofiane Naci <sofiane.naci@arm.com>
9940
9941 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
9942 aarch-common-protos.h to extra_headers.
9943 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
9944 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
9945 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
9946 (arm_no_early_alu_shift_dep): Likewise.
9947 (arm_no_early_alu_shift_value_dep): Likewise.
9948 (arm_no_early_mul_dep): Likewise.
9949 (arm_no_early_store_addr_dep): Likewise.
9950 (arm_mac_accumulator_is_mul_result): Likewise.
9951 (arm_mac_accumulator_is_result): Likewise.
c3f35647 9952 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
9953 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
9954 here to ...
c3f35647 9955 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
9956 (arm_no_early_alu_shift_dep): Likewise.
9957 (arm_no_early_alu_shift_value_dep): Likewise.
9958 (arm_no_early_mul_dep): Likewise.
9959 (arm_no_early_store_addr_dep): Likewise.
9960 (arm_mac_accumulator_is_mul_result): Likewise.
9961 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
9962 * config/arm/aarch-common-protos.h: ... here. New file.
9963 * config/arm/t-arm (aarch-common.o): Define.
9964
99652013-07-31 Sofiane Naci <sofiane.naci@arm.com>
9966
9967 * config/arm/arm.md: Include new file "types.md".
9968 (define_attr "type"): Move from here to ...
9969 (define_attr "mul32"): Likewise.
9970 (define_attr "mul64"): Likewise.
9971 * config/arm/types.md: ... here. New file.
9972
228c1313
SH
99732013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
9974
9975 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
9976 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
9977
d6e9046d 99782013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
9979
9980 * gen-pass-instances.awk: Fix offset of substr().
9981
a167b052
DM
99822013-07-31 David Malcolm <dmalcolm@redhat.com>
9983
9984 * Makefile.in (pass-instances.def): New.
9985 (passes.o): Replace dependency on passes.def with one on
9986 pass-instances.def
9987
9988 * gen-pass-instances.awk: New.
9989
9990 * passes.c (pass_manager::pass_manager): Use pass-instances.def
9991 rather than passes.def, updating local definition of NEXT_PASS
9992 macro to add an extra NUM parameter (currently unused).
9993
315f8c0e
DM
99942013-07-30 David Malcolm <dmalcolm@redhat.com>
9995
9996 * Makefile.in (PASS_MANAGER_H): New.
9997 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
9998 (passes.o): Likewise.
9999 (statistics.o): Likewise.
10000 (cgraphunit.o): Likewise.
10001 (context.o): Depend on PASS_MANAGER_H.
10002
10003 * pass_manager.h: New.
10004
10005 * cgraphunit.c (cgraph_add_new_function): Update for moves
10006 of globals to fields of pass_manager.
10007 (analyze_function): Likewise.
10008 (expand_function): Likewise.
10009 (ipa_passes): Likewise.
10010 (compile): Likewise.
10011
10012 * context.c (context::context): New.
10013 * context.h (context::context): New.
10014 (context::get_passes): New.
10015 (context::passes_): New.
10016
10017 * lto-cgraph.c (input_node): Update for moves of globals to
10018 fields of pass_manager.
10019
10020 * passes.c (all_passes): Remove, in favor of a field of the
10021 same name within the new class pass_manager.
10022 (all_small_ipa_passes): Likewise.
10023 (all_lowering_passes): Likewise.
10024 (all_regular_ipa_passes): Likewise.
10025 (all_late_ipa_passes): Likewise.
10026 (all_lto_gen_passes): Likewise.
10027 (passes_by_id): Likewise.
10028 (passes_by_id_size): Likewise.
10029 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10030 the new class pass_manager.
10031 (set_pass_for_id): Convert to...
10032 (pass_manager::set_pass_for_id): ...method.
10033 (get_pass_for_id): Convert to...
10034 (pass_manager::get_pass_for_id): ...method.
10035 (register_one_dump_file): Move body of implementation into...
10036 (pass_manager::register_one_dump_file): ...here.
10037 (register_dump_files_1): Convert to...
10038 (pass_manager::register_dump_files_1): ...method.
10039 (register_dump_files): Convert to...
10040 (pass_manager::register_dump_files): ...method.
10041 (create_pass_tab): Update for moves of globals to fields of
10042 pass_manager.
10043 (dump_passes): Move body of implementation into...
10044 (pass_manager::dump_passes): ...here.
10045 (register_pass): Move body of implementation into...
10046 (pass_manager::register_pass): ...here.
10047 (init_optimization_passes): Convert into...
10048 (pass_manager::pass_manager): ...constructor for new
10049 pass_manager class, and initialize the pass_lists array.
10050 (check_profile_consistency): Update for moves of globals to
10051 fields of pass_manager.
10052 (dump_profile_report): Move body of implementation into...
10053 (pass_manager::dump_profile_report): ...here.
10054 (ipa_write_summaries_1): Update for moves of pass lists from
10055 being globals to fields of pass_manager.
10056 (ipa_write_optimization_summaries): Likewise.
10057 (ipa_read_summaries): Likewise.
10058 (ipa_read_optimization_summaries): Likewise.
10059 (execute_all_ipa_stmt_fixups): Likewise.
10060
10061 * statistics.c (statistics_fini): Update for moves of globals to
10062 fields of pass_manager.
10063
10064 * toplev.c (general_init): Replace call to
10065 init_optimization_passes with construction of the pass_manager
10066 instance.
10067
10068 * tree-pass.h (all_passes): Remove, in favor of a field of the
10069 same name within the new class pass_manager.
10070 (all_small_ipa_passes): Likewise.
10071 (all_lowering_passes): Likewise.
10072 (all_regular_ipa_passes): Likewise.
10073 (all_lto_gen_passes): Likewise.
10074 (all_late_ipa_passes): Likewise.
10075 (passes_by_id): Likewise.
10076 (passes_by_id_size): Likewise.
10077 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10078 the new class pass_manager.
10079 (get_pass_for_id): Remove.
10080
02cab1c1
RE
100812013-07-30 Richard Earnshaw <rearnsha@arm.com>
10082
10083 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
10084 configs.
10085
b2d3f886
RE
100862013-07-30 Richard Earnshaw <rearnsha@arm.com>
10087
10088 * arm.md (mulhi3): New expand pattern.
10089
605e86fa
JH
100902013-07-30 Jan Hubicka <jh@suse.cz>
10091 Martin Liska <marxin.liska@gmail.com>
10092
10093 * profile.c (compute_value_histograms): Do not ICE when
10094 there is mismatch only on some counters.
10095
14a87636
ZC
100962013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10097
10098 PR rtl-optimization/57637
10099 * function.c (move_insn_for_shrink_wrap): Also check the
10100 GEN set of the LIVE problem for the liveness analysis
10101 if it exists, otherwise give up.
10102
0100cd3f
BS
101032013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10104
10105 PR tree-optimization/57993
10106 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
10107 replaced statement in the candidate table.
10108 (phi_add_costs): Return infinite cost when the hidden basis does
10109 not dominate all phis on which the candidate is dependent.
10110 (replace_one_candidate): Record replaced statement in the
10111 candidate table.
10112
f0d811f7
JR
101132013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
10114
10115 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
10116 (ashlv2si3): New expander.
10117 (*ashlv2si3_i): New define_insn_and_split.
10118 * predicates.md (float_operation): Allow patterns with three
10119 basic sub-patterns.
10120
bba33211
JR
10121 PR rtl-optimization/58021
10122 * mode-switching.c (create_pre_exit): Always split off preceding
10123 insns if we are not at the basic block head.
10124
ff3f3951
MR
101252013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
10126
10127 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
10128 (UCLIBC_DYNAMIC_LINKER): New macro.
10129 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
10130 `-mnan=2008'.
10131 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
10132 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
10133 `-mnan=2008'.
10134 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
10135 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
10136 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
10137 for SF and DF modes. Use ieee_quad_format for TF mode.
10138 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
10139 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
10140 (mips_option_override): Handle `-mnan=legacy'.
10141 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
10142 `-mabs=2008' and `-mnan=2008'.
10143 (OPTION_DEFAULT_SPECS): Add "nan" default.
10144 (ASM_SPEC): Handle `-mnan='.
10145 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
10146 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
10147 comment accordingly.
10148 (neg<mode>2): Likewise.
10149 * config/mips/mips.opt (mabs, mnan): New options.
10150 * doc/install.texi (Configuration): Document `--with-nan=' option.
10151 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
10152 `-mnan=' options.
10153 (MIPS Options): Document them.
10154 * config.gcc <mips*-*-*>: Handle `--with-nan='.
10155 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
10156 * configure: Regenerate.
10157 * config.in: Regenerate.
10158
576e2f37
UB
101592013-07-29 Uros Bizjak <ubizjak@gmail.com>
10160
10161 * config/i386/i386.md (float post-reload splitters): Do not check
10162 for subregs of SSE registers.
10163
101642013-07-29 Uros Bizjak <ubizjak@gmail.com>
10165 H.J. Lu <hongjiu.lu@intel.com>
10166
10167 PR target/57954
10168 PR target/57988
10169 * config/i386/i386.md (post-reload splitter
10170 to avoid partial SSE reg dependency stalls): New pattern.
10171
a71f0749
DV
101722013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10173
10174 * config/s390/s390.md ("movcc"): Swap load and store instructions.
10175
4c97f1cc
JR
101762013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
10177
10178 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
10179 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
10180
b0c733d8
CC
101812013-07-26 Cary Coutant <ccoutant@google.com>
10182
10183 * dwarf2out.c (die_checksum_ordered): Don't include template
10184 instantiations in signature.
10185 (is_template_parameter): New function.
10186 (is_template_instantiation): New function.
10187 (generate_skeleton_bottom_up): Don't include template instantiations
10188 in type unit DIE.
10189 (generate_skeleton): Likewise.
10190 (break_out_comdat_types): Move recursive call to break out nested
10191 types earlier.
10192 (prune_unused_types_mark_generic_parms_dies): Call
10193 is_template_parameter.
10194
040d8a1c
IB
101952013-07-26 Ian Bolton <ian.bolton@arm.com>
10196
10197 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
10198 uses vector registers.
89fdc743 10199 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 10200
85bd4ac6 102012013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 10202 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
10203
10204 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 10205 where appropriate.
85bd4ac6
KT
10206 * config/arm/arm.md (movcond_addsi): New splitter.
10207
b6051207
SA
102082013-07-25 Sterling Augustine <saugustine@google.com>
10209
10210 * dwarf2out.c (size_of_pubnames): Move code to...
10211 (include_pubname_in_output): ...here. New.
10212 (want_pubnames): Rearrange.
10213 (output_pubnames): Call include_pubname_in_output. Move assertion.
10214
41a7c215
CM
102152013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10216
10217 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
10218
102192013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10220
10221 PR target/38836
10222 * doc/extend.texi: Remove obsolete builtins. Fix
10223 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
10224
49bde175
JH
102252013-07-25 Jan Hubicka <jh@suse.cz>
10226
10227 * cgraph.c (release_function_body): Break out from ...
10228 (cgraph_release_function_body): ... this one; also release DECL_RESULT
10229 and DECL_ARGUMENTS.
10230 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
10231 old_tree in the map.
10232 (create_specialized_node): Update.
10233 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
10234 into index.
41a7c215
CM
10235 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
10236 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
10237 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
10238 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
10239 DECL_RESULT.
10240
4870352d
KT
102412013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10242
10243 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
10244 addsi3_carryin_alt2_<optab>): Correct output template.
10245
1d6aee1c
KT
102462013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10247
10248 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
10249 Adjust for arm_restrict_it.
10250 Remove trailing whitespace.
10251
c7cafd75
MK
102522013-07-25  Mark Kettenis  <kettenis@openbsd.org>
10253
017d38f5
MK
10254 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
10255 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
10256
c7cafd75
MK
10257 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
10258
00b7527b
VM
102592013-07-25 Vladimir Makarov <vmakarov@redhat.com>
10260
10261 PR rtl-optimization/57960
10262 * lra-constraints.c (process_alt_operands): Use the right mode
10263 when checking strict_low.
10264
4f63dfc6
JH
102652013-07-25 Jan Hubicka <jh@suse.cz>
10266
10267 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
10268 * cgraph.c (cgraph_remove_node): Do not release function body
10269 when in cgraph streaming.
10270 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
10271 in other partitions are not considered reachable; fix handling of
10272 clones.
4f63dfc6 10273
e6dcfa18
RR
102742013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10275
10276 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
10277
0b93d3b6
RR
102782013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10279
10280 PR target/19599
10281 PR target/57731
bb80c2eb 10282 PR target/57837
e6dcfa18 10283 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 10284 Ss with US. Adjust output for v5 and v4t.
41a7c215 10285 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 10286
0b93d3b6
RR
10287 * config/arm/constraints.md ("Ss"): Rename to US.
10288
690688b3
TG
102892013-07-25 Terry Guo <terry.guo@arm.com>
10290
10291 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
10292 shift_add/shift_sub0/shift_sub1 RTXs.
10293
a4ad093b 102942013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 10295 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
10296
10297 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
10298 (altivec_vpks<VI_char>ss): Likewise.
10299 (altivec_vpks<VI_char>us): Likewise.
10300 (altivec_vpku<VI_char>us): Likewise.
10301 (altivec_vpku<VI_char>um): Likewise.
10302
8c5005ce
DM
103032013-07-24 David Malcolm <dmalcolm@redhat.com>
10304
10305 Introduce context class.
10306
10307 * Makefile.in (CONTEXT_H): New.
10308 (OBJS): Add context.o.
10309 (toplev.o): Add CONTEXT_H to dependencies.
10310 (context.o): New.
10311
41a7c215 10312 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
10313
10314 * context.c: New.
10315
10316 * context.h: New.
10317
ce4a9422
JR
103182013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
10319
10320 PR rtl-optimization/57968
10321 * mode-switching.c (create_pre_exit): Allow instructions that
10322 don't set a return register to need a non-exit mode.
10323
493f4c9e 103242013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10325 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 10326
b5860fd3
WS
10327 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
10328 operands to vperm for little endian.
10329 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
10330 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 10331
73792b92 103322013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10333 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
10334
10335 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
10336 two operands for little-endian.
10337
14c21302
SE
103382013-07-23 Steve Ellcey <sellcey@mips.com>
10339
10340 * config/mips/mips.c (mips_case_values_threshold): New.
10341 (TARGET_CASE_VALUES_THRESHOLD): Define.
10342
a6056198 103432013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10344 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
10345
10346 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
10347 selection of field for vector splat in little endian mode.
10348
dd7a40e1
MM
103492013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10350
10351 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
10352 expanders to rs6000.md.
10353 (ior<mode>3): Likewise.
10354 (and<mode>3): Likewise.
10355 (one_cmpl<mode>2): Likewise.
10356 (nor<mode>3): Likewise.
10357 (andc<mode>3): Likewise.
10358 (eqv<mode>3): Likewise.
10359 (nand<mode>3): Likewise.
10360 (orc<mode>3): Likewise.
10361
10362 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
10363 declaration.
10364
10365 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
10366 to split multi-word logical operations.
10367 (rs6000_split_logical_di): Likewise.
10368 (rs6000_split_logical): Likewise.
10369
10370 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
10371 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
10372 and allow TImode operations in 32-bit.
10373 (vsx_and<mode>3_64bit): Likewise.
10374 (vsx_ior<mode>3_32bit): Likewise.
10375 (vsx_ior<mode>3_64bit): Likewise.
10376 (vsx_xor<mode>3_32bit): Likewise.
10377 (vsx_xor<mode>3_64bit): Likewise.
10378 (vsx_one_cmpl<mode>2_32bit): Likewise.
10379 (vsx_one_cmpl<mode>2_64bit): Likewise.
10380 (vsx_nor<mode>3_32bit): Likewise.
10381 (vsx_nor<mode>3_64bit): Likewise.
10382 (vsx_andc<mode>3_32bit): Likewise.
10383 (vsx_andc<mode>3_64bit): Likewise.
10384 (vsx_eqv<mode>3_32bit): Likewise.
10385 (vsx_eqv<mode>3_64bit): Likewise.
10386 (vsx_nand<mode>3_32bit): Likewise.
10387 (vsx_nand<mode>3_64bit): Likewise.
10388 (vsx_orc<mode>3_32bit): Likewise.
10389 (vsx_orc<mode>3_64bit): Likewise.
10390
10391 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
10392 logical types in GPRs.
10393
10394 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
10395 logical insns to rs6000.md, and allow TImode operations in
10396 32-bit.
10397 (altivec_ior<mode>3): Likewise.
10398 (altivec_xor<mode>3): Likewise.
10399 (altivec_one_cmpl<mode>2): Likewise.
10400 (altivec_nor<mode>3): Likewise.
10401 (altivec_andc<mode>3): Likewise.
10402
10403 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
10404 attributes for moving the 128-bit logical operations into
10405 rs6000.md.
10406 (BOOL_REGS_OUTPUT): Likewise.
10407 (BOOL_REGS_OP1): Likewise.
10408 (BOOL_REGS_OP2): Likewise.
10409 (BOOL_REGS_UNARY): Likewise.
10410 (BOOL_REGS_AND_CR0): Likewise.
10411 (one_cmpl<mode>2): Add support for DI logical operations on
10412 32-bit, splitting the operations to 32-bit.
10413 (anddi3): Likewise.
10414 (iordi3): Likewise.
10415 (xordi3): Likewise.
10416 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
10417 changes to combine the 32/64-bit code, allow logical operations on
10418 TI mode in 32-bit, and to use similar match_operator patterns like
10419 scalar mode uses. Combine the Altivec and VSX code for logical
10420 operations, and move it here.
10421 (ior<mode>3, 128-bit types): Likewise.
10422 (xor<mode>3, 128-bit types): Likewise.
10423 (one_cmpl<mode>3, 128-bit types): Likewise.
10424 (nor<mode>3, 128-bit types): Likewise.
10425 (andc<mode>3, 128-bit types): Likewise.
10426 (eqv<mode>3, 128-bit types): Likewise.
10427 (nand<mode>3, 128-bit types): Likewise.
10428 (orc<mode>3, 128-bit types): Likewise.
10429 (and<mode>3_internal): Likewise.
10430 (bool<mode>3_internal): Likewise.
10431 (boolc<mode>3_internal1): Likewise.
10432 (boolc<mode>3_internal2): Likewise.
10433 (boolcc<mode>3_internal1): Likewise.
10434 (boolcc<mode>3_internal2): Likewise.
10435 (eqv<mode>3_internal1): Likewise.
10436 (eqv<mode>3_internal2): Likewise.
10437 (one_cmpl1<mode>3_internal): Likewise.
10438
12211b99 104392013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
10440
10441 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10442 Rename flag_stack_usage to flag_stack_usage_info.
10443
12211b99 104442013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 10445
a5f257fd
ME
10446 * config/microblaze/sync.md: New file.
10447 * config/microblaze/microblaze.md: Include sync.md
10448 * config/microblaze/microblaze.c: Add print_operand 'y'.
10449 * config/microblaze/constraints.md: Add memory_contraint
10450 'Q' which is a single register.
450b0ebb 10451
49fba14f
EB
104522013-07-23 Eric Botcazou <ebotcazou@adacore.com>
10453
10454 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
10455
c7b3b99f
PCC
104562013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
10457
10458 * reload.c (find_reloads): Exit loop once we find this operand
10459 cannot be reloaded somehow for this alternative.
10460
10461 * reload.c (find_reloads): Exit loop once we find a hard register.
10462
10463 * rtlanal.c (computed_jump_p): Exit loop once we find label
10464 reference is used.
10465
10466 * i386.c (ix86_pad_returns): Exit loop after setting replace.
10467
10468 * cfgloopmanip.c (remove_path): Exit loop after setting
10469 irred_invalidated.
10470
10471 * gensupport.c (subst_dup): Avoid loop if code is not
10472 MATCH_DUP nor MATCH_OP_DUP.
10473
c8fbf1fa
NBJ
104742013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
10475
10476 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
10477
9259db42
YZ
104782013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10479
10480 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
10481 true for SP_REGNUM if mode == ptr_mode.
10482 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
10483 with value R0_REGNUM + 31.
10484
00edcfbe
YZ
104852013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10486
10487 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
10488 pad pointer-typed argument downward.
10489
43be9a95
YZ
104902013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10491
10492 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
10493 and __ILP32__ when the ILP32 model is in use.
10494
28514dda
YZ
104952013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10496
10497 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
10498 (aarch64_load_symref_appropriately): In the case of
10499 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
10500 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
10501 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
10502 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
10503 if 'mode' doesn't equal to 'ptr_mode'.
10504 (aarch64_output_mi_thunk): Add an assertion on the alignment of
10505 'vcall_offset'; change to call aarch64_emit_move differently depending
10506 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
10507 to calculate the upper bound of 'vcall_offset'.
10508 (aarch64_cannot_force_const_mem): Change to also return true if
10509 mode != ptr_mode.
10510 (aarch64_legitimize_reload_address): In the case of large
10511 displacements, add new local variable 'xmode' and an assertion
10512 based on it; change to use 'xmode' to generate the new rtx and
10513 reload.
10514 (aarch64_asm_trampoline_template): Change to generate the template
10515 differently depending on TARGET_ILP32 or not; change to use
10516 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
10517 (aarch64_trampoline_size): Removed.
10518 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
10519 and replace immediate literals with it. Change to use 'ptr_mode'
10520 instead of 'DImode' and call convert_memory_address if the mode
10521 of 'fnaddr' doesn't equal to 'ptr_mode'.
10522 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
10523 to output symbol.
10524 (aarch64_elf_asm_destructor): Likewise.
10525 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
10526 on TARGET_ILP32 instead of aarch64_trampoline_size.
10527 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
10528 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
10529 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
10530 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
10531 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
10532 (storewb_pair<GPI:mode>_<P:mode>): ... this.
10533 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
10534 depending on the value of 'mode'.
10535 (add_losym_<mode>): New.
10536 (ldr_got_small_<mode>): New, based on ldr_got_small.
10537 (ldr_got_small): Remove.
10538 (ldr_got_small_sidi): New.
10539 * config/aarch64/iterators.md (P): New.
10540 (PTR): Change to 'ptr_mode' in the condition.
10541
17a819cb
YZ
105422013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10543
10544 * config.gcc (aarch64*-*-*): Support --with-abi.
10545 (aarch64*-*-elf): Support --with-multilib-list.
10546 (aarch64*-*-linux*): Likewise.
10547 (supported_defaults): Add abi to aarch64*-*-*.
10548 * configure.ac: Mention AArch64 for --with-multilib-list.
10549 * configure: Re-generated.
10550 * config/aarch64/biarchilp32.h: New file.
10551 * config/aarch64/biarchlp64.h: New file.
10552 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
10553 (ABI_SPEC): Ditto.
10554 (MULTILIB_DEFAULTS): Ditto.
10555 (DRIVER_SELF_SPECS): Ditto.
10556 (ASM_SPEC): Update to also substitute -mabi.
10557 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
10558 file whose name depends on -mabi= and -mbig-endian.
10559 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
10560 TARGET_ILP32.
10561 (POINTER_SIZE): New define.
10562 (POINTERS_EXTEND_UNSIGNED): Ditto.
10563 (enum aarch64_abi_type): New enumeration tag.
10564 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
10565 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
10566 (TARGET_ILP32): New define.
10567 * config/aarch64/aarch64.opt (mabi): New.
10568 (aarch64_abi): New.
10569 (ilp32, lp64): New values for -mabi.
10570 * config/aarch64/t-aarch64 (comma): New define.
10571 (MULTILIB_OPTIONS): Ditto.
10572 (MULTILIB_DIRNAMES): Ditto.
10573 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
10574 * doc/invoke.texi: Document -mabi for AArch64.
10575
9f9cbdce
GJL
105762013-07-23 Georg-Johann Lay <avr@gjlay.de>
10577
10578 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
10579
7061977b 105802013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10581 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
10582
10583 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
10584 endianness when selecting field to splat.
10585
75a41878
EC
105862013-07-22 Eric Christopher <echristo@gmail.com>
10587
10588 * dwarf2out.c (die_odr_checksum): New function to use
10589 CHECKSUM_ macros and ULEB128 for DIE tag.
10590 (generate_type_signature): Use.
41a7c215 10591
38ae58ca
EB
105922013-07-22 Eric Botcazou <ebotcazou@adacore.com>
10593
10594 * config.gcc (sparc*-*-*): Accept leon3 processor.
10595 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
10596 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
10597 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
10598 * config/sparc/sparc.opt (enum processor_type): Add leon3.
10599 (mfix-ut699): Adjust comment.
10600 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
10601 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
10602 (CPP_CPU_SPEC): Likewise.
10603 (ASM_CPU_SPEC): Likewise.
10604 * config/sparc/sparc.c (leon3_cost): New constant.
10605 (sparc_option_override): Add leon3 support.
10606 (mem_ref): New function.
10607 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
10608 (sparc_do_work_around_errata): Look into the instruction in the delay
10609 slot and adjust accordingly. Add fix for the data cache nullify issues
10610 of the UT699. Change insertion position for the NOP.
10611 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
10612 (leon3_load): New reservation.
10613 (leon_store): Bump latency to 2.
10614 (grfpu): New automaton.
10615 (grfpu_alu): New unit.
10616 (grfpu_ds): Likewise.
10617 (leon_fp_alu): Adjust.
10618 (leon_fp_mult): Delete.
10619 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
10620 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
10621 * config/sparc/sparc.md (cpu): Add leon3.
10622 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
10623 (swapsi): Likewise.
10624 (atomic_test_and_set): Likewise.
10625 (ldstub): Likewise.
10626
04dfc6df
JU
106272013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
10628
10629 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
10630 default for R5900 targets.
10631 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
10632 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
10633 * config/mips/mips.c (mips_option_override): Report an error for
10634 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
10635 for -march=r5900 -mhard-float.
10636
c7b3b99f 106372013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
10638
10639 * df-problems.c (can_move_insns_across): Exit loop once we
10640 find a non-fixed, non-global register.
10641
10642 * ipa-pure-const.c (propagate_nothrow): Exit loop after
10643 setting can_throw.
10644
10645 * omega.c (omega_eliminate_red): Break after setting red_found.
10646 (omega_problem_has_red_equations): Similarly after setting found.
10647 (omega_query_variable): Similarly after setting coupled.
10648
9b6e6981
MP
106492013-07-22 Marek Polacek <polacek@redhat.com>
10650
10651 * gimplify.c: Don't include gimple.h twice.
10652
5e5f7673
KT
106532013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10654
10655 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
10656 instead of TARGET_THUMB1.
10657 (Pz): New constraint.
10658 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
10659 encodings.
10660 (compare_negsi_si): Likewise.
10661 (compare_addsi2_op0): Likewise.
10662 (compare_addsi2_op1): Likewise.
10663 (addsi3_carryin_<optab>): Likewise.
10664 (addsi3_carryin_alt2_<optab>): Likewise.
10665 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
10666 for arm_restrict_it.
10667 (subsi3_carryin): Likewise.
10668 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
10669 (minmax_arithsi): Disable for arm_restrict_it.
10670 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
10671 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
10672 (satsi_<SAT:code>_shift): Likewise.
10673 (arm_shiftsi3): Add alternative for 16-bit encoding.
10674 (arm32_movhf): Disable for arm_restrict_it.
10675 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
10676 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
10677
859abddd
SN
106782013-07-22 Sofiane Naci <sofiane.naci@arm.com>
10679
10680 * config/arm/arm.md (attribute "insn"): Delete.
10681 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
10682 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
10683 (not_shiftsi): Update for attribute change.
10684 (not_shiftsi_compare0): Likewise.
10685 (not_shiftsi_compare0_scratch): Likewise.
10686 (arm_one_cmplsi2): Likewise.
10687 (thumb1_one_cmplsi2): Likewise.
10688 (notsi_compare0): Likewise.
10689 (notsi_compare0_scratch): Likewise.
10690 (thumb1_movdi_insn): Likewise.
10691 (arm_movsi_insn): Likewise.
10692 (movhi_insn_arch4): Likewise.
10693 (movhi_bytes): Likewise.
10694 (arm_movqi_insn): Likewise.
10695 (thumb1_movqi_insn): Likewise.
10696 (arm32_movhf): Likewise.
10697 (thumb1_movhf): Likewise.
10698 (arm_movsf_soft_insn): Likewise.
10699 (thumb1_movsf_insn): Likewise.
10700 (thumb_movdf_insn): Likewise.
10701 (movsicc_insn): Likewise.
10702 (movsfcc_soft_insn): Likewise.
10703 (and_scc): Likewise.
10704 (cond_move): Likewise.
10705 (if_move_not): Likewise.
10706 (if_not_move): Likewise.
10707 (if_shift_move): Likewise.
10708 (if_move_shift): Likewise.
10709 (if_shift_shift): Likewise.
10710 (if_not_arith): Likewise.
10711 (if_arith_not): Likewise.
10712 (cond_move_not): Likewise.
10713 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
10714 (neon_mov<mode>): Likewise.
10715 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
10716 (thumb2_movsi_vfp): Likewise.
10717 (movsf_vfp): Likewise.
10718 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
10719 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
10720 change.
859abddd
SN
10721 (cortexa7_older_only): Likewise.
10722 (cortexa7_younger): Likewise.
10723 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
10724 (1020alu_shift_op): Likewise.
10725 (1020alu_shift_reg_op): Likewise.
10726 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
10727 (alu_shift_op): Likewise.
10728 (alu_shift_reg_op): Likewise.
10729 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
10730 (11_alu_shift_op): Likewise.
10731 (11_alu_shift_reg_op): Likewise.
10732 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
10733 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
10734 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
10735 change.
859abddd
SN
10736 (cortex_a15_alu_shift): Likewise.
10737 (cortex_a15_alu_shift_reg): Likewise.
10738 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
10739 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
10740 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
10741 change.
859abddd 10742 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
10743 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
10744 change.
859abddd
SN
10745 (cortex_a7_alu_reg): Likewise.
10746 (cortex_a7_alu_shift): Likewise.
10747 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
10748 (cortex_a8_alu_shift): Likewise.
10749 (cortex_a8_alu_shift_reg): Likewise.
10750 (cortex_a8_mov): Likewise.
10751 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
10752 (cortex_a9_dp_shift): Likewise.
10753 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
10754 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
10755 (cortex_r4_mov): Likewise.
10756 (cortex_r4_alu_shift): Likewise.
10757 (cortex_r4_alu_shift_reg): Likewise.
10758 * config/arm/fa526.md (526_alu_op): Update for attribute change.
10759 (526_alu_shift_op): Likewise.
10760 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
10761 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
10762 (626te_alu_shift_op): Likewise.
10763 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
10764 (726te_alu_op): Likewise.
10765 (726te_alu_shift_op): Likewise.
10766 (726te_alu_shift_reg_op): Likewise.
10767 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
10768 (mp626_alu_shift_op): Likewise.
10769 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
10770 (pj4_alu_e1_conds): Likewise.
10771 (pj4_alu): Likewise.
10772 (pj4_alu_conds): Likewise.
10773 (pj4_shift): Likewise.
10774 (pj4_shift_conds): Likewise.
10775 (pj4_alu_shift): Likewise.
10776 (pj4_alu_shift_conds): Likewise.
10777
95b97fac
KT
107782013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10779
10780 * config/arm/predicates.md (shiftable_operator_strict_it):
10781 New predicate.
10782 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
10783 Disable cond_exec version for arm_restrict_it.
10784 (thumb2_smaxsi3): Convert to generate cond_exec.
10785 (thumb2_sminsi3): Likewise.
10786 (thumb32_umaxsi3): Likewise.
10787 (thumb2_uminsi3): Likewise.
10788 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
10789 (thumb2_neg_abssi2): Likewise.
10790 (thumb2_mov_scc): Add alternative for 16-bit encoding.
10791 (thumb2_movsicc_insn): Adjust alternatives.
10792 (thumb2_mov_negscc): Disable for arm_restrict_it.
10793 (thumb2_mov_negscc_strict_it): New pattern.
10794 (thumb2_mov_notscc_strict_it): New pattern.
10795 (thumb2_mov_notscc): Disable for arm_restrict_it.
10796 (thumb2_ior_scc): Likewise.
10797 (thumb2_ior_scc_strict_it): New pattern.
10798 (thumb2_cond_move): Adjust for arm_restrict_it.
10799 (thumb2_cond_arith): Disable for arm_restrict_it.
10800 (thumb2_cond_arith_strict_it): New pattern.
10801 (thumb2_cond_sub): Adjust for arm_restrict_it.
10802 (thumb2_movcond): Likewise.
10803 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
10804 (thumb2_zero_extendhisi2_v6): Likewise.
10805 (thumb2_zero_extendqisi2_v6): Likewise.
10806 (orsi_notsi_si): Likewise.
10807 (orsi_not_shiftsi_si): Likewise.
10808
d5a6ef82
GJL
108092013-07-22 Georg-Johann Lay <avr@gjlay.de>
10810
10811 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
10812 instruction sequence is 1 byte shorter.
10813
d9e71154
UB
108142013-07-22 Uros Bizjak <ubizjak@gmail.com>
10815
10816 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
10817 it is not needed after split.
10818
8c6381ec
IS
108192013-07-20 Iain Sandoe <iain@codesourcery.com>
10820
10821 PR target/51784
10822 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
10823 second label for nonlocal goto receivers. Don't output pic base labels
10824 unless we're producing PIC; mark that action unreachable().
10825 (ix86_save_reg): If the function contains a nonlocal label, save the
10826 PIC base reg.
10827 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 10828 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
10829 (update_pic_label_number_if_needed): New.
10830 (machopic_output_function_base_name): Adjust for nonlocal receiver
10831 case.
10832 (machopic_should_output_picbase_label): New.
10833 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
10834 (nonlocal_goto_receiver): New insn and split.
10835
d05d0709
JG
108362013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
10837
10838 * config/aarch64/aarch64-builtins.c
10839 (aarch64_fold_builtin): Fold abs in all modes.
10840 * config/aarch64/aarch64-simd-builtins.def
10841 (abs): Enable for all modes.
10842 * config/aarch64/arm_neon.h
10843 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
10844 (vabs_f64): Add missing intrinsic.
10845
ba590e63
IB
108462013-07-19 Ian Bolton <ian.bolton@arm.com>
10847
10848 * config/aarch64/arm_neon.h (vabs_s64): New function
10849
02371798
GJL
108502013-07-19 Georg-Johann Lay <avr@gjlay.de>
10851
10852 PR target/57516
10853 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
10854 * config/avr/avr.md (adjust_len): Add `round'.
10855 * config/avr/avr-protos.h (avr_out_round): New prototype.
10856 (avr_out_plus): Add `out_label' argument.
10857 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
10858 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
10859 Handle the case where `insn' is just a pattern.
10860 (avr_out_bitop): Handle the case where `insn' is just a pattern.
10861 (avr_out_round): New function.
10862 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
10863
12211b99 108642013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
10865
10866 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10867 Add check for flag_stack_usage to handle -fstack-usage support
10868
12211b99 108692013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
10870
10871 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
10872 interaction for new Power8 flags and VSX.
10873
df9dda2d
ST
108742013-07-18 Sriraman Tallam <tmsriram@google.com>
10875
10876 PR middle-end/57698
10877 * tree-inline.c (expand_call_inline): Emit errors during
10878 early_inlining only if optimization is not turned on.
10879
0f9cdef4
DM
108802013-07-18 David Malcolm <dmalcolm@redhat.com>
10881
10882 * passes.def: New.
10883
10884 * passes.c (init_optimization_passes): Move the construction of
10885 the pass hierarchy into a new passes.def file.
10886
10887 * Makefile.in (passes.o): Add dependency on passes.def.
10888
2efa4087
DM
108892013-07-18 David Malcolm <dmalcolm@redhat.com>
10890
10891 * passes.c (init_optimization_passes): Introduce macros for
10892 constructing the tree of passes (INSERT_PASSES_AFTER,
10893 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
10894 TERMINATE_PASS_LIST).
10895
bc404e1b
VM
108962013-07-18 Vladimir Makarov <vmakarov@redhat.com>
10897 Wei Mi <wmi@google.com>
10898
10899 PR rtl-optimization/57878
10900 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
10901 top.
10902 (reload_pseudo_compare_func): Check nregs first for reload
10903 pseudos.
10904
d675843f
DM
109052013-07-18 David Malcolm <dmalcolm@redhat.com>
10906
10907 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
10908
c7b3b99f 109092013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
10910
10911 * read-rtl.c (validate_const_int): Once an invalid character is
10912 seen, quit the loop.
10913
10914 * gengtype.c (write_roots): Similarly once we find the "deletable"
10915 or "if_marked" option.
10916
52fceb44
SN
109172013-07-18 Sofiane Naci <sofiane.naci@arm.com>
10918
10919 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
10920 "xtab" and "sat". Move value "clz" from here to ...
10921 (attriubte "type"): ... here.
10922 (satsi_<SAT:code>): Delete "insn" attribute.
10923 (satsi_<SAT:code>_shift): Likewise.
10924 (arm_zero_extendqisi2addsi): Likewise.
10925 (arm_extendqisi2addsi): Likewise.
10926 (clzsi2): Update for attribute changes.
10927 (rbitsi2): Likewise.
371e77e3
UB
10928 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
10929 attribute.
52fceb44
SN
10930 (arm_usatsihi): Likewise.
10931 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
10932
006bd006
SN
109332013-07-18 Sofiane Naci <sofiane.naci@arm.com>
10934
10935 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
10936 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
10937 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
10938 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
10939 in alphabetical order.
10940 (attribute "core_cycles"): Update for attribute changes.
10941 (arm_addsi3): Likewise.
10942 (addsi3_compare0): Likewise.
10943 (addsi3_compare0_scratch): Likewise.
10944 (addsi3_compare_op1): Likewise.
10945 (addsi3_compare_op2): Likewise.
10946 (compare_addsi2_op0): Likewise.
10947 (compare_addsi2_op1): Likewise.
10948 (addsi3_carryin_shift_<optab>): Likewise.
10949 (subsi3_carryin_shift): Likewise.
10950 (rsbsi3_carryin_shift): Likewise.
10951 (arm_subsi3_insn): Likewise.
10952 (subsi3_compare0): Likewise.
10953 (subsi3_compare): Likewise.
10954 (arm_andsi3_insn): Likewise.
10955 (thumb1_andsi3_insn): Likewise.
10956 (andsi3_compare0): Likewise.
10957 (andsi3_compare0_scratch): Likewise.
10958 (zeroextractsi_compare0_scratch
10959 (andsi_not_shiftsi_si): Likewise.
10960 (iorsi3_insn): Likewise.
10961 (iorsi3_compare0): Likewise.
10962 (iorsi3_compare0_scratch): Likewise.
10963 (arm_xorsi3): Likewise.
10964 (thumb1_xorsi3_insn): Likewise.
10965 (xorsi3_compare0): Likewise.
10966 (xorsi3_compare0_scratch): Likewise.
10967 (satsi_<SAT:code>_shift): Likewise.
10968 (rrx): Likewise.
10969 (arm_shiftsi3): Likewise.
10970 (shiftsi3_compare0): Likewise.
10971 (not_shiftsi): Likewise.
10972 (not_shiftsi_compare0): Likewise.
10973 (not_shiftsi_compare0_scratch): Likewise.
10974 (arm_one_cmplsi2): Likewise.
10975 (thumb_one_complsi2): Likewise.
10976 (notsi_compare0): Likewise.
10977 (notsi_compare0_scratch): Likewise.
10978 (thumb1_zero_extendhisi2): Likewise.
10979 (arm_zero_extendhisi2): Likewise.
10980 (arm_zero_extendhisi2_v6): Likewise.
10981 (arm_zero_extendhisi2addsi): Likewise.
10982 (thumb1_zero_extendqisi2): Likewise.
10983 (thumb1_zero_extendqisi2_v6): Likewise.
10984 (arm_zero_extendqisi2): Likewise.
10985 (arm_zero_extendqisi2_v6): Likewise.
10986 (arm_zero_extendqisi2addsi): Likewise.
10987 (thumb1_extendhisi2): Likewise.
10988 (arm_extendhisi2): Likewise.
10989 (arm_extendhisi2_v6): Likewise.
10990 (arm_extendqisi): Likewise.
10991 (arm_extendqisi_v6): Likewise.
10992 (arm_extendqisi2addsi): Likewise.
10993 (thumb1_extendqisi2): Likewise.
10994 (thumb1_movdi_insn): Likewise.
10995 (arm_movsi_insn): Likewise.
10996 (movsi_compare0): Likewise.
10997 (movhi_insn_arch4): Likewise.
10998 (movhi_bytes): Likewise.
10999 (arm_movqi_insn): Likewise.
11000 (thumb1_movqi_insn): Likewise.
11001 (arm32_movhf): Likewise.
11002 (thumb1_movhf): Likewise.
11003 (arm_movsf_soft_insn): Likewise.
11004 (thumb1_movsf_insn): Likewise.
11005 (movdf_soft_insn): Likewise.
11006 (thumb_movdf_insn): Likewise.
11007 (arm_cmpsi_insn): Likewise.
11008 (cmpsi_shiftsi): Likewise.
11009 (cmpsi_shiftsi_swp): Likewise.
11010 (arm_cmpsi_negshiftsi_si): Likewise.
11011 (movsicc_insn): Likewise.
11012 (movsfcc_soft_insn): Likewise.
11013 (arith_shiftsi): Likewise.
11014 (arith_shiftsi_compare0
11015 (arith_shiftsi_compare0_scratch
11016 (sub_shiftsi): Likewise.
11017 (sub_shiftsi_compare0
11018 (sub_shiftsi_compare0_scratch
11019 (and_scc): Likewise.
11020 (cond_move): Likewise.
11021 (if_plus_move): Likewise.
11022 (if_move_plus): Likewise.
11023 (if_move_not): Likewise.
11024 (if_not_move): Likewise.
11025 (if_shift_move): Likewise.
11026 (if_move_shift): Likewise.
11027 (if_shift_shift): Likewise.
11028 (if_not_arith): Likewise.
11029 (if_arith_not): Likewise.
11030 (cond_move_not): Likewise.
11031 (thumb1_ashlsi3): Set type attribute.
11032 (thumb1_ashrsi3): Likewise.
11033 (thumb1_lshrsi3): Likewise.
11034 (thumb1_rotrsi3): Likewise.
11035 (shiftsi3_compare0_scratch): Likewise.
11036 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
11037 (neon_mov<mode>): Likewise.
371e77e3
UB
11038 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
11039 attribute changes.
006bd006
SN
11040 (thumb2_movsi_insn): Likewise.
11041 (thumb2_cmpsi_neg_shiftsi): Likewise.
11042 (thumb2_extendqisi_v6): Likewise.
11043 (thumb2_zero_extendhisi2_v6): Likewise.
11044 (thumb2_zero_extendqisi2_v6): Likewise.
11045 (thumb2_shiftsi3_short): Likewise.
11046 (thumb2_addsi3_compare0_scratch): Likewise.
11047 (orsi_not_shiftsi_si): Likewise.
11048 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
11049 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
11050 changes.
11051 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
11052 (1020alu_shift_op): Likewise.
11053 (1020alu_shift_reg_op): Likewise.
11054 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
11055 (alu_shift_op): Likewise.
11056 (alu_shift_reg_op): Likewise.
11057 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
11058 (11_alu_shift_op): Likewise.
11059 (11_alu_shift_reg_op): Likewise.
11060 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
11061 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11062 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11063 changes.
006bd006
SN
11064 (cortex_a15_alu_shift): Likewise.
11065 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
11066 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
11067 changes.
006bd006
SN
11068 (cortex_a5_alu_shift): Likewise.
11069 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
11070 changes.
11071 (cortex_a53_alu_shift): Likewise.
11072 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11073 changes.
11074 (cortex_a7_alu_reg): Likewise.
11075 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
11076 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
11077 changes.
006bd006
SN
11078 (cortex_a8_alu_shift): Likewise.
11079 (cortex_a8_alu_shift_reg): Likewise.
11080 (cortex_a8_mov): Likewise.
11081 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
11082 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
11083 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
11084 changes.
11085 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
11086 changes.
006bd006
SN
11087 (cortex_r4_mov): Likewise.
11088 (cortex_r4_alu_shift): Likewise.
11089 (cortex_r4_alu_shift_reg): Likewise.
11090 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
11091 (526_alu_shift_op): Likewise.
11092 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
11093 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
11094 (626te_alu_shift_op): Likewise.
11095 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
11096 (726te_alu_op): Likewise.
11097 (726te_alu_shift_op): Likewise.
11098 (726te_alu_shift_reg_op): Likewise.
11099 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
11100 (mp626_alu_shift_op): Likewise.
11101 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
11102 (pj4_alu_e1_conds): Likewise.
11103 (pj4_alu): Likewise.
11104 (pj4_alu_conds): Likewise.
11105 (pj4_shift): Likewise.
11106 (pj4_shift_conds): Likewise.
11107 (pj4_alu_shift): Likewise.
11108 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
11109 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11110 changes.
006bd006
SN
11111 (cortexa7_older_only): Likewise.
11112 (cortexa7_younger): Likewise.
11113
651df1b2
DM
111142013-07-18 David Malcolm <dmalcolm@redhat.com>
11115
11116 * ipa-pure-const.c (generate_summary): Rename to...
11117 (pure_const_generate_summary): ... this.
11118
ea717bd7
IS
111192013-07-17 Iain Sandoe <iain@codesourcery.com>
11120
11121 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
11122
a1259a13
YR
111232013-07-17 Yvan Roux <yvan.roux@linaro.org>
11124
11125 PR target/57909
11126 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
11127 usage in HI mode.
11128
167f68ed
AK
111292013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11130
11131 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
11132 enabled without -march=zEC12.
11133 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
11134 flags to be set.
11135
f900a982
MR
111362013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11137
11138 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
11139 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
11140 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
11141 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
11142 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
11143 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
11144 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
11145 ISA_HAS_FP4.
11146 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
11147 and ISA_HAS_NMADD3_NMSUB3.
11148 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
11149 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
11150 (nmsub4<mode>, nmsub3<mode>): Likewise.
11151 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
11152
d4ed27eb
MR
111532013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11154
11155 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
11156 TARGET_MIPS5400 checking.
11157
7a5add18
PB
111582013-07-16 Jakub Jelinek <jakub@redhat.com>
11159 Peter Bergner <bergner@vnet.ibm.com>
11160
11161 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
11162 registers in the comment.
11163 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
11164 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
11165 rather than FIRST_PSEUDO_REGISTERS.
11166
111672013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
11168
11169 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
11170 enable extra ISA flags with TARGET_HTM.
11171
d2ab0929
MR
111722013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11173
11174 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
11175 Fix comment typos.
11176
839c74bc
CH
111772013-07-15 Cong Hou <congh@google.com>
11178
11179 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
11180 in compare function for sorting.
11181
7a5add18 111822013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
11183
11184 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
11185 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
11186 * config/rs6000/rs6000.opt: Add -mhtm option.
11187 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
11188 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
11189 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11190 __HTM__ if the HTM instructions are available.
11191 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
11192 htm_spr_reg_operand): New define_predicates.
11193 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
11194 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
11195 Include htm.md.
11196 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
11197 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
11198 HTM builtin functions.
11199 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
11200 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
11201 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
11202 (rs6000_builtin_mask_calculate): Likewise.
11203 (rs6000_option_override_internal): Likewise.
11204 (bdesc_htm): Add new HTM builtin support.
11205 (htm_spr_num): New function.
11206 (htm_spr_regno): Likewise.
11207 (rs6000_htm_spr_icode): Likewise.
11208 (htm_expand_builtin): Likewise.
11209 (htm_init_builtins): Likewise.
11210 (rs6000_expand_builtin): Add support for HTM builtin functions.
11211 (rs6000_init_builtins): Likewise.
371e77e3
UB
11212 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
11213 option.
0258b6e4
PB
11214 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
11215 (TARGET_HTM, MASK_HTM): Define macros.
11216 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
11217 (FIXED_REGISTERS): Likewise.
11218 (CALL_USED_REGISTERS): Likewise.
11219 (CALL_REALLY_USED_REGISTERS): Likewise.
11220 (REG_ALLOC_ORDER): Likewise.
11221 (enum reg_class): Likewise.
11222 (REG_CLASS_NAMES): Likewise.
11223 (REG_CLASS_CONTENTS): Likewise.
11224 (REGISTER_NAMES): Likewise.
11225 (ADDITIONAL_REGISTER_NAMES): Likewise.
11226 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
11227 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
11228 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
11229 * config/rs6000/htm.md: New file.
11230 * config/rs6000/htmintrin.h: New file.
11231 * config/rs6000/htmxlintrin.h: New file.
11232
87dd8ab0
MS
112332013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
11234
11235 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
11236 Define SYMBOL_TINY_GOT, update comment.
11237 * config/aarch64/aarch64.c
11238 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
11239 (aarch64_expand_mov_immediate): Likewise.
11240 (aarch64_print_operand): Likewise.
11241 (aarch64_classify_symbol): Likewise.
11242 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
11243 (ldr_got_tiny): Define.
11244
52d676b6
TG
112452013-07-13 Tobias Grosser <tobias@grosser.es>
11246
11247 PR tree-optimization/54094
11248 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
11249 scheduling dimension for the parallelism check from the polyhedral
11250 information in the AST.
11251 * graphite-dependences.c (carries_deps): Do not assume the schedule is
11252 in 2D + 1 form.
11253
286e8fc1
JM
112542013-07-13 Jason Merrill <jason@redhat.com>
11255
11256 * print-tree.c (debug_vec_tree): Use debug_raw.
11257 (debug_raw (vec<tree, va_gc> &)): New.
11258 (debug_raw (vec<tree, va_gc> *)): New.
11259 * tree.h: Declare them.
11260
e43257e8
BC
112612013-07-13 Bin Cheng <bin.cheng@arm.com>
11262
11263 * ifcvt.c (ifcvt_after_combine): New static variable.
11264 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
11265 for size.
11266 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
11267 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
11268 rest_of_handle_if_after_reload): Pass new argument for if_convert.
11269
da582d46
MR
112702013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
11271
11272 * config/mips/mips.c (mips_expand_call): Remove empty statement.
11273
18b0ea8f
MM
112742013-07-12 Michael Matz <matz@suse.de>
11275
11276 PR middle-end/55771
11277 * convert.c (convert_to_real): Reject non-float inner types.
11278
e4f0f84d
TB
112792013-07-12 Tejas Belagod <tejas.belagod@arm.com>
11280
11281 * config/aarch64/aarch64-protos.h
11282 (aarch64_simd_immediate_valid_for_move): Remove.
11283 * config/aarch64/aarch64.c (simd_immediate_info): New member.
11284 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
11285 cases.
11286 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
11287
76500022
SE
112882013-07-11 Steve Ellcey <sellcey@mips.com>
11289
11290 * config/mips/mips.c (mips_conditional_register_usage): Do not
11291 use t[0-7] registers in MIPS16 mode when optimizing for size.
11292
78039734
ST
112932013-07-11 Sriraman Tallam <tmsriram@google.com>
11294
11295 * config/i386/i386.c (dispatch_function_versions): Fix array
11296 indexing of function_version_info to match actual_versions.
11297
7b24b675
TJ
112982013-07-11 Teresa Johnson <tejohnson@google.com>
11299
11300 * vec.h (struct va_gc): Move release out-of-line.
11301 (va_gc::release): Call ggc_free on released vec.
11302
85d4cbb8
UW
113032013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11304
11305 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
11306 Require GOT register as additional operand in UNSPEC.
11307 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
11308 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11309 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11310 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
11311 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
11312 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
11313 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
11314
52b3f9e2
GJL
113152013-07-11 Georg-Johann Lay <avr@gjlay.de>
11316
11317 PR target/57631
11318 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
11319 name seen by assembler/linker rather if available.
11320
3f3e266e
AS
113212013-07-11 Andreas Schwab <schwab@suse.de>
11322
11323 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
11324
21231ca6
VM
113252013-07-10 Vladimir Makarov <vmakarov@redhat.com>
11326
371e77e3 11327 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 11328
d331d374
JM
113292013-07-10 Joseph Myers <joseph@codesourcery.com>
11330
673c2f63
JM
11331 * doc/tm.texi.in: Move hook documentation to ....
11332 * target.def: ... here.
11333
d331d374
JM
11334 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
11335 text on @hook line.
11336 * doc/tm.texi: Regenerate.
11337
dfeadaa0
PC
113382013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
11339
11340 PR c++/57869
11341 * doc/invoke.texi: Document -Wconditionally-supported.
11342
bb6f2bac
GJL
113432013-07-10 Georg-Johann Lay <avr@gjlay.de>
11344
11345 PR target/57844
11346 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
11347 of my_fp.
11348
5219b232
GJL
113492013-07-10 Georg-Johann Lay <avr@gjlay.de>
11350
11351 PR target/57506
11352 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
11353 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
11354 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
11355 Remove duplicate devices.
11356 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
11357 * config/avr/t-multilib: Regenerate.
11358 * config/avr/avr-tables.opt: Regenerate.
11359 * doc/avr-mmcu.texi: Regenerate.
11360
283045c0
GJL
113612013-07-10 Georg-Johann Lay <avr@gjlay.de>
11362
11363 PR target/56987
11364 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
11365
ceb2d59f 113662013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 11367
ceb2d59f
GS
11368 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
11369 the cost of MULT when optimizing for size.
11370
055e0a99
JBG
113712013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11372
11373 * config/cr16/cr16-protos.h: Don't include target.h.
11374
ef43e868
JM
113752013-07-09 Joseph Myers <joseph@codesourcery.com>
11376
11377 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
11378 adjust register size for TDmode and TFmode for VSX registers.
11379
4a283fdf
KT
113802013-07-08 Kai Tietz <ktietz@redhat.com>
11381
11382 PR target/56892
11383 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
11384 hook_bool_const_tree_true.
11385
2cf4c39e
AK
113862013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11387
11388 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
11389 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
11390 * config/s390/s390.md: Define FPR*_REGNUM constants.
11391 Fix FPR2_REGNUM constant (18 -> 17).
11392 ("*trunc<BFP:mode><DFP_ALL:mode>2")
11393 ("*trunc<DFP_ALL:mode><BFP:mode>2")
11394 ("trunc<BFP:mode><DFP_ALL:mode>2")
11395 ("trunc<DFP_ALL:mode><BFP:mode>2")
11396 ("*extend<BFP:mode><DFP_ALL:mode>2")
11397 ("*extend<DFP_ALL:mode><BFP:mode>2")
11398 ("extend<BFP:mode><DFP_ALL:mode>2")
11399 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
11400 FPR4_REGNUM.
11401
e6ac0270 114022013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 11403
6a2fa4b2 11404 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 11405
b89b22fc
AK
114062013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11407
11408 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
11409 and cfun_fpr_bit_p to cfun_fpr_save_p.
11410 (s390_frame_area, s390_register_info, s390_frame_info)
11411 (s390_emit_prologue, s390_emit_epilogue)
11412 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
11413 register numbers.
11414 * config/s390/s390.h: Define *_REGNUM macros for floating point
11415 register numbers.
11416
07f398aa
EB
114172013-07-08 Eric Botcazou <ebotcazou@adacore.com>
11418
11419 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
11420
75fefa91
PCC
114212013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
11422
11423 PR rtl-optimization/57786
11424 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
11425 and break out of the loop when it is set to false.
11426
046f1eee
JJ
114272013-07-08 Jakub Jelinek <jakub@redhat.com>
11428
8140c065
JJ
11429 PR target/57819
11430 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
11431 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
11432 (const_int 63)) 0)).
11433 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
11434 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
11435 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
11436
046f1eee
JJ
11437 PR rtl-optimization/57829
11438 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
11439 mask bits outside of mode are just sign-extension from mode to HWI.
11440
930b700b
MZ
114412013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
11442
11443 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
11444 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
11445 adjust_address instead of change_address to keep info about alignment.
11446 (emit_strmov): Remove.
11447 (emit_memmov): New function.
11448 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
11449 (expand_movmem_epilogue): Likewise and return updated rtx for
11450 destination.
11451 (expand_constant_movmem_prologue): Likewise and return updated rtx for
11452 destination and source.
11453 (decide_alignment): Refactor, handle vector_loop.
11454 (ix86_expand_movmem): Likewise.
11455 (ix86_expand_setmem): Likewise.
11456 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
11457
7b9d1bd8
UB
114582013-07-07 Uros Bizjak <ubizjak@gmail.com>
11459
11460 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
11461 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
11462
eabb5f48
UB
114632013-07-06 Uros Bizjak <ubizjak@gmail.com>
11464
11465 * config/i386/sse.md (sse_movlhps): Change alternative 3
11466 of operand 2 to "m".
11467
114682013-07-06 Uros Bizjak <ubizjak@gmail.com>
11469
11470 PR target/57807
11471 * config/i386/sse.md (iptr): New mode attribute.
11472 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
11473 (<sse>_vm<plusminus_insn><mode>3): Ditto.
11474 (<sse>_vmmul<mode>3): Ditto.
11475 (<sse>_vmdiv<mode>3): Ditto.
11476 (sse_vmrcpv4sf2): Ditto.
11477 (<sse>_vmsqrt<mode>2): Ditto.
11478 (sse_vmrsqrtv4sf2): Ditto.
11479 (<sse>_vm<code><mode>3): Ditto.
11480 (avx_vmcmp<mode>3): Ditto.
11481 (<sse>_vmmaskcmp<mode>3): Ditto.
11482 (<sse>_comi): Ditto.
11483 (<sse>_ucomi): Ditto.
11484 (*xop_vmfrcz_<mode>): Ditto.
11485 (*fmai_fmadd_<mode>): Ditto.
11486 (*fmai_fmsub_<mode>): Ditto.
11487 (*fmai_fnmadd_<mode>): Ditto.
11488 (*fmai_fnmsub_<mode>): Ditto.
11489 (*fma4i_vmfmadd_<mode>): Ditto.
11490 (*fma4i_vmfmsub_<mode>): Ditto.
11491 (*fma4i_vmfnmadd_<mode>): Ditto.
11492 (*fma4i_vmfnmsub_<mode>): Ditto.
11493 (*xop_vmfrcz_<mode>): Ditto.
11494 (sse_cvtps2pi): Ditto.
11495 (sse_cvttps2pi): Ditto.
11496 (sse_cvtss2si): Ditto.
11497 (sse_cvtss2si_2): Ditto.
11498 (sse_cvtss2siq_2): Ditto.
11499 (sse_cvttss2si): Ditto.
11500 (sse_cvttss2siq): Ditto.
11501 (sse_cvtsd2si): Ditto.
11502 (sse_cvtsd2si_2): Ditto.
11503 (sse_cvtsd2siq_2): Ditto.
11504 (sse_cvttsd2si): Ditto.
11505 (sse_cvttsd2siq): Ditto.
11506 (sse_cvtsd2ss): Ditto.
11507 (sse_cvtss2sd): Ditto.
11508 (avx2_pbroadcast<mode>): Ditto.
11509 (avx2_pbroadcast<mode>_1): Ditto.
11510 (*avx_vperm_broadcast_v4sf): Ditto.
11511
11512 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
11513 (sse_movlhps): Ditto.
11514 (sse_storehps): Ditto.
11515 (sse_loadhps): Ditto.
11516 (sse_storelps): Ditto.
11517 (sse_loadlps): Ditto.
11518 (*vec_concatv4sf): Ditto.
11519 (*vec_interleave_highv2df): Ditto.
11520 (*vec_interleave_lowv2df): Ditto.
11521 (*vec_extractv2df_1_sse): Ditto.
11522 (*vec_extractv2df_0_sse): Ditto.
11523 (sse2_storelpd): Ditto.
11524 (sse2_loadlpd): Ditto.
11525 (sse2_movsd): Ditto.
11526 (*vec_concatv4si): Ditto.
11527 (vec_concatv2di): Ditto.
11528
11529 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
11530 for Intel asm dialect.
11531 (mmx_punpcklwd): Ditto.
11532 (mmx_punpckldq): Ditto.
11533
11534 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
11535 for intel assembler dialect.
11536
1f6eac90
JJ
115372013-07-06 Jakub Jelinek <jakub@redhat.com>
11538
11539 PR target/29776
11540 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
11541 for BUILT_IN_C{LZ,LRSB}*.
11542 * tree.h (CASE_INT_FN): Add FN##IMAX case.
11543 * tree-vrp.c (extract_range_basic): Handle
11544 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
11545 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
11546 fall thru to code calling set_value*.
11547 * builtins.c (expand_builtin): Remove *IMAX cases.
11548 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
11549 if width is bigger than 2*HWI.
11550
2b778c9d
VM
115512013-07-05 Vladimir Makarov <vmakarov@redhat.com>
11552
11553 PR rtl-optimization/55342
11554 * lra-int.h (lra_subreg_reload_pseudos): New.
11555 * lra.c: Add undoing optional reloads to the block diagram.
11556 (lra_subreg_reload_pseudos): New.
11557 (lra_optional_reload_pseudos): Change comments.
11558 (lra): Init and clear lra_subreg_reload_pseudos. Clear
11559 lra_optional_reload_pseudos after undo transformations.
11560 * lra-assigns.c (pseudo_prefix_title): New.
11561 (lra_setup_reg_renumber): Use it.
11562 (spill_for): Ditto. Check subreg reload pseudos too.
11563 (assign_by_spills): Consider subreg reload pseudos too.
11564 * lra-constraints.c (simplify_operand_subreg): Use
11565 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
11566 (curr_insn_transform): Recognize and do optional reloads.
11567 (undo_optional_reloads): New.
11568 (lra_undo_inheritance): Call undo_optional_reloads.
11569
207156e4
TQ
115702013-07-05 Thomas Quinot <quinot@adacore.com>
11571
11572 * tree-complex.c (expand_complex_operations_1): Fix typo.
11573
8990e73a
TB
115742013-07-04 Tejas Belagod <tejas.belagod@arm.com>
11575
11576 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
11577 (tune_params): New member 'const vec_costs'.
11578 * config/aarch64/aarch64.c (generic_vector_cost): New.
11579 (generic_tunings): New member 'generic_vector_cost'.
11580 (aarch64_builtin_vectorization_cost): New.
11581 (aarch64_add_stmt_cost): New.
11582 (TARGET_VECTORIZE_ADD_STMT_COST): New.
11583 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
11584
f7bc421d
JJ
115852013-07-03 Jakub Jelinek <jakub@redhat.com>
11586
11587 PR target/57777
11588 * config/i386/predicates.md (vsib_address_operand): Disallow
11589 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
11590
e90d1568
HPN
115912013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
11592
11593 PR middle-end/55030
11594 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
11595 expand_builtin_setjmp_receiver.
11596 (expand_label): Adjust, call expand_builtin_setjmp_receiver
11597 with NULL for the label parameter.
11598 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
11599 the frame-pointer. Adjust comments.
11600 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
11601 only if LABEL is non-NULL.
11602
cbd7413b
YZ
116032013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
11604
11605 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
11606 (ARM_ABI_AAPCS64): Ditto.
11607 (arm_abi): Ditto.
11608 (ARM_DEFAULT_ABI): Ditto.
11609
dec11868
JG
116102013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
11611
11612 * config/aarch64/aarch64-builtins.c
11613 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
11614 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
11615 (st1): Likewise.
11616 * config/aarch64/aarch64-simd.md
11617 (aarch64_ld1<VALL:mode>): New.
11618 (aarch64_st1<VALL:mode>): Likewise.
11619 * config/aarch64/arm_neon.h
11620 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
11621
786fb9b6
ST
116222013-07-02 Sriraman Tallam <tmsriram@google.com>
11623
0ba6aff3
UB
11624 * config/i386/i386.c (gate_insert_vzeroupper): Check if
11625 target ISA is AVX.
786fb9b6
ST
11626 (ix86_option_override_internal):Turn on all -mavx target flags by
11627 default as they are dependent on AVX anyway.
11628
4b043553
CC
116292013-07-02 Cary Coutant <ccoutant@google.com>
11630
11631 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
11632 deterministic hash.
11633 (loc_checksum_ordered): Likewise.
11634 (hash_loc_operands): Remove inline keyword.
11635
c4e87a13
JJ
116362013-07-02 Jakub Jelinek <jakub@redhat.com>
11637
11638 PR tree-optimization/57741
11639 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
11640 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
11641 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
11642 Allow REAL_CST step_exprs if flag_associative_math.
11643 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
11644
26366d28
IB
116452013-07-02 Ian Bolton <ian.bolton@arm.com>
11646
0ba6aff3 11647 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 11648
2879bb2b
IB
116492013-07-02 Ian Bolton <ian.bolton@arm.com>
11650
11651 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
11652
afc5e8a6
KT
116532013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11654
11655 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
11656 encoding.
11657 (iorsi3_insn): Likewise.
11658 (arm_xorsi3): Likewise.
11659
31f8442b
SN
116602013-07-01 Sofiane Naci <sofiane.naci@arm.com>
11661
11662 * arm.md (attribute "wtype"): Delete. Move attribute values from here
11663 to ...
11664 (attribute "type"): ... here, and prefix with "wmmx_".
11665 (attribute "core_cycles"): Update for attribute changes.
11666 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
11667 (tbcstv4hi): Likewise.
11668 (tbcstv2si): Likewise.
11669 (iwmmxt_iordi3): Likewise.
11670 (iwmmxt_xordi3): Likewise.
11671 (iwmmxt_anddi3): Likewise.
11672 (iwmmxt_nanddi3): Likewise.
11673 (iwmmxt_arm_movdi): Likewise.
11674 (iwmmxt_movsi_insn): Likewise.
11675 (mov<mode>_internal): Likewise.
11676 (and<mode>3_iwmmxt): Likewise.
11677 (ior<mode>3_iwmmxt): Likewise.
11678 (xor<mode>3_iwmmxt): Likewise.
11679 (add<mode>3_iwmmxt): Likewise.
11680 (ssaddv8qi3): Likewise.
11681 (ssaddv4hi3): Likewise.
11682 (ssaddv2si3): Likewise.
11683 (usaddv8qi3): Likewise.
11684 (usaddv4hi3): Likewise.
11685 (usaddv2si3): Likewise.
11686 (sub<mode>3_iwmmxt): Likewise.
11687 (sssubv8qi3): Likewise.
11688 (sssubv4hi3): Likewise.
11689 (sssubv2si3): Likewise.
11690 (ussubv8qi3): Likewise.
11691 (ussubv4hi3): Likewise.
11692 (ussubv2si3): Likewise.
11693 (mulv4hi3_iwmmxt): Likewise.
11694 (smulv4hi3_highpart): Likewise.
11695 (umulv4hi3_highpart): Likewise.
11696 (iwmmxt_wmacs): Likewise.
11697 (iwmmxt_wmacsz): Likewise.
11698 (iwmmxt_wmacu): Likewise.
11699 (iwmmxt_wmacuz): Likewise.
11700 (iwmmxt_clrdi): Likewise.
11701 (iwmmxt_clrv8qi): Likewise.
11702 (iwmmxt_clr4hi): Likewise.
11703 (iwmmxt_clr2si): Likewise.
11704 (iwmmxt_uavgrndv8qi3): Likewise.
11705 (iwmmxt_uavgrndv4hi3): Likewise.
11706 (iwmmxt_uavgv8qi3): Likewise.
11707 (iwmmxt_uavgv4hi3): Likewise.
11708 (iwmmxt_tinsrb): Likewise.
11709 (iwmmxt_tinsrh): Likewise.
11710 (iwmmxt_tinsrw): Likewise.
11711 (iwmmxt_textrmub): Likewise.
11712 (iwmmxt_textrmsb): Likewise.
11713 (iwmmxt_textrmuh): Likewise.
11714 (iwmmxt_textrmsh): Likewise.
11715 (iwmmxt_textrmw): Likewise.
11716 (iwmxxt_wshufh): Likewise.
11717 (eqv8qi3): Likewise.
11718 (eqv4hi3): Likewise.
11719 (eqv2si3): Likewise.
11720 (gtuv8qi3): Likewise.
11721 (gtuv4hi3): Likewise.
11722 (gtuv2si3): Likewise.
11723 (gtv8qi3): Likewise.
11724 (gtv4hi3): Likewise.
11725 (gtv2si3): Likewise.
11726 (smax<mode>3_iwmmxt): Likewise.
11727 (umax<mode>3_iwmmxt): Likewise.
11728 (smin<mode>3_iwmmxt): Likewise.
11729 (umin<mode>3_iwmmxt): Likewise.
11730 (iwmmxt_wpackhss): Likewise.
11731 (iwmmxt_wpackwss): Likewise.
11732 (iwmmxt_wpackdss): Likewise.
11733 (iwmmxt_wpackhus): Likewise.
11734 (iwmmxt_wpackwus): Likewise.
11735 (iwmmxt_wpackdus): Likewise.
11736 (iwmmxt_wunpckihb): Likewise.
11737 (iwmmxt_wunpckihh): Likewise.
11738 (iwmmxt_wunpckihw): Likewise.
11739 (iwmmxt_wunpckilb): Likewise.
11740 (iwmmxt_wunpckilh): Likewise.
11741 (iwmmxt_wunpckilw): Likewise.
11742 (iwmmxt_wunpckehub): Likewise.
11743 (iwmmxt_wunpckehuh): Likewise.
11744 (iwmmxt_wunpckehuw): Likewise.
11745 (iwmmxt_wunpckehsb): Likewise.
11746 (iwmmxt_wunpckehsh): Likewise.
11747 (iwmmxt_wunpckehsw): Likewise.
11748 (iwmmxt_wunpckelub): Likewise.
11749 (iwmmxt_wunpckeluh): Likewise.
11750 (iwmmxt_wunpckeluw): Likewise.
11751 (iwmmxt_wunpckelsb): Likewise.
11752 (iwmmxt_wunpckelsh): Likewise.
11753 (iwmmxt_wunpckelsw): Likewise.
11754 (ror<mode>3): Likewise.
11755 (ashr<mode>3_iwmmxt): Likewise.
11756 (lshr<mode>3_iwmmxt): Likewise.
11757 (ashl<mode>3_iwmmxt): Likewise.
11758 (ror<mode>3_di): Likewise.
11759 (ashr<mode>3_di): Likewise.
11760 (lshr<mode>3_di): Likewise.
11761 (ashl<mode>3_di): Likewise.
11762 (iwmmxt_wmadds): Likewise.
11763 (iwmmxt_wmaddu): Likewise.
11764 (iwmmxt_tmia): Likewise.
11765 (iwmmxt_tmiaph): Likewise.
11766 (iwmmxt_tmiabb): Likewise.
11767 (iwmmxt_tmiatb): Likewise.
11768 (iwmmxt_tmiabt): Likewise.
11769 (iwmmxt_tmiatt): Likewise.
11770 (iwmmxt_tmovmskb): Likewise.
11771 (iwmmxt_tmovmskh): Likewise.
11772 (iwmmxt_tmovmskw): Likewise.
11773 (iwmmxt_waccb): Likewise.
11774 (iwmmxt_wacch): Likewise.
11775 (iwmmxt_waccw): Likewise.
11776 (iwmmxt_waligni): Likewise.
11777 (iwmmxt_walignr): Likewise.
11778 (iwmmxt_walignr0): Likewise.
11779 (iwmmxt_walignr1): Likewise.
11780 (iwmmxt_walignr2): Likewise.
11781 (iwmmxt_walignr3): Likewise.
11782 (iwmmxt_wsadb): Likewise.
11783 (iwmmxt_wsadh): Likewise.
11784 (iwmmxt_wsadbz): Likewise.
11785 (iwmmxt_wsadhz): Likewise.
11786 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
11787 (iwmmxt_wabsdiffb): Likewise.
11788 (iwmmxt_wabsdiffh): Likewise.
11789 (iwmmxt_wabsdiffw): Likewise.
11790 (iwmmxt_waddsubhx): Likewise
11791 (iwmmxt_wsubaddhx): Likewise.
11792 (addc<mode>3): Likewise.
11793 (iwmmxt_avg4): Likewise.
11794 (iwmmxt_avg4r): Likewise.
11795 (iwmmxt_wmaddsx): Likewise.
11796 (iwmmxt_wmaddux): Likewise.
11797 (iwmmxt_wmaddsn): Likewise.
11798 (iwmmxt_wmaddun): Likewise.
11799 (iwmmxt_wmulwsm): Likewise.
11800 (iwmmxt_wmulwum): Likewise.
11801 (iwmmxt_wmulsmr): Likewise.
11802 (iwmmxt_wmulumr): Likewise.
11803 (iwmmxt_wmulwsmr): Likewise.
11804 (iwmmxt_wmulwumr): Likewise.
11805 (iwmmxt_wmulwl): Likewise.
11806 (iwmmxt_wqmulm): Likewise.
11807 (iwmmxt_wqmulwm): Likewise.
11808 (iwmmxt_wqmulmr): Likewise.
11809 (iwmmxt_wqmulwmr): Likewise.
11810 (iwmmxt_waddbhusm): Likewise.
11811 (iwmmxt_waddbhusl): Likewise.
11812 (iwmmxt_wqmiabb): Likewise.
11813 (iwmmxt_wqmiabt): Likewise.
11814 (iwmmxt_wqmiatb): Likewise.
11815 (iwmmxt_wqmiatt): Likewise.
11816 (iwmmxt_wqmiabbn): Likewise.
11817 (iwmmxt_wqmiabtn): Likewise.
11818 (iwmmxt_wqmiatbn): Likewise.
11819 (iwmmxt_wqmiattn): Likewise.
11820 (iwmmxt_wmiabb): Likewise.
11821 (iwmmxt_wmiabt): Likewise.
11822 (iwmmxt_wmiatb): Likewise.
11823 (iwmmxt_wmiatt): Likewise.
11824 (iwmmxt_wmiabbn): Likewise.
11825 (iwmmxt_wmiabtn): Likewise.
11826 (iwmmxt_wmiatbn): Likewise.
11827 (iwmmxt_wmiattn): Likewise.
11828 (iwmmxt_wmiawbb): Likewise.
11829 (iwmmxt_wmiawbt): Likewise.
11830 (iwmmxt_wmiawtb): Likewise.
11831 (iwmmxt_wmiawtt): Likewise.
11832 (iwmmxt_wmiawbbn): Likewise.
11833 (iwmmxt_wmiawbtn): Likewise.
11834 (iwmmxt_wmiawtbn): Likewise.
11835 (iwmmxt_wmiawttn): Likewise.
11836 (iwmmxt_wmerge): Likewise.
11837 (iwmmxt_tandc<mode>3): Likewise.
11838 (iwmmxt_torc<mode>3): Likewise.
11839 (iwmmxt_torvsc<mode>3): Likewise.
11840 (iwmmxt_textrc<mode>3): Likewise.
11841 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
11842 (wmmxt_pack): Likewise.
11843 (wmmxt_mult_c1): Likewise.
11844 (wmmxt_mult_c2): Likewise.
11845 (wmmxt_alu_c1): Likewise.
11846 (wmmxt_alu_c2): Likewise.
11847 (wmmxt_alu_c3): Likewise.
11848 (wmmxt_transfer_c1): Likewise.
11849 (wmmxt_transfer_c2): Likewise.
11850 (wmmxt_transfer_c3): Likewise.
11851 (marvell_f_iwmmxt_wstr): Likewise.
11852 (marvell_f_iwmmxt_wldr): Likewise.
11853
bdb7bf8a
YZ
118542013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
11855
0ba6aff3 11856 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 11857
e6631d38
VM
118582013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11859
11860 Revert:
11861 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11862 * lra-constraints.c (need_for_split_p): Check call used hard regs
11863 living through calls.
11864
11865 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
11866 call used regs for call insn.
11867
53c1275b
JJ
118682013-06-28 Jakub Jelinek <jakub@redhat.com>
11869
11870 PR target/57736
0ba6aff3
UB
11871 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
11872 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 11873
1141ed3f
BI
118742013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11875
11876 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 11877
e32e4c4a
VM
118782013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11879
11880 * lra-constraints.c (need_for_split_p): Check call used hard regs
11881 living through calls.
11882
f161bfd3
MM
118832013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
11884
11885 PR target/57744
11886 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
11887 to tie with any other modes. Eliminate Altivec vector mode tests,
11888 since these are a subset of ALTIVEC or VSX vector modes. Simplify
11889 code, to return 0 if testing MODE2 for a condition, if we've
11890 already tested MODE1 for the same condition.
11891
7eda14e1
MS
118922013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11893
11894 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
11895 layout.
11896
c822f852
MS
118972013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11898
11899 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
11900 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
11901
da4f13a4
MS
119022013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11903
0ba6aff3
UB
11904 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
11905 Define.
da4f13a4
MS
11906 (aarch64_symbolic_constant_p): Remove.
11907 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
11908 static. Fix line length and white space.
11909 (aarch64_symbolic_constant_p): Remove.
11910 * config/aarch64/predicates.md (aarch64_valid_symref):
11911 Use aarch64_classify_symbol_expression.
11912
956a95a5
KT
119132013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11914
11915 * config/arm/constraints.md (Ts): New constraint.
11916 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
11917 16-bit encodings.
11918 (compare_scc): Use "Ts" constraint for operand 0.
11919 (ior_scc_scc): Likewise.
11920 (and_scc_scc): Likewise.
11921 (and_scc_scc_nodom): Likewise.
11922 (ior_scc_scc_cmp): Likewise for operand 7.
11923 (and_scc_scc_cmp): Likewise.
11924 * config/arm/thumb2.md (thumb2_movsi_insn):
11925 Add alternatives for 16-bit encodings.
11926 (thumb2_movhi_insn): Likewise.
11927 (thumb2_movsicc_insn): Likewise.
11928 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
11929 (thumb2_negscc): Use "Ts" constraint.
11930 Move mvn instruction outside cond_exec block.
11931 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
11932 for 16-bit encodings.
11933
31dfce10
KT
119342013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11935
11936 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
11937 encoding.
11938 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
11939 (mulsi3subsi): Likewise.
11940 (mulsidi3adddi): Likewise.
11941 (mulsidi3_v6): Likewise.
11942 (umulsidi3_v6): Likewise.
11943 (umulsidi3adddi_v6): Likewise.
11944 (smulsi3_highpart_v6): Likewise.
11945 (umulsi3_highpart_v6): Likewise.
11946 (mulhisi3tb): Likewise.
11947 (mulhisi3bt): Likewise.
11948 (mulhisi3tt): Likewise.
11949 (maddhisi4): Likewise.
11950 (maddhisi4tb): Likewise.
11951 (maddhisi4tt): Likewise.
11952 (maddhidi4): Likewise.
11953 (maddhidi4tb): Likewise.
11954 (maddhidi4tt): Likewise.
11955 (zeroextractsi_compare0_scratch): Likewise.
11956 (insv_zero): Likewise.
11957 (insv_t2): Likewise.
11958 (anddi_notzesidi_di): Likewise.
11959 (anddi_notsesidi_di): Likewise.
11960 (andsi_notsi_si): Likewise.
11961 (iordi_zesidi_di): Likewise.
11962 (xordi_zesidi_di): Likewise.
11963 (andsi_iorsi3_notsi): Likewise.
11964 (smax_0): Likewise.
11965 (smax_m1): Likewise.
11966 (smin_0): Likewise.
11967 (not_shiftsi): Likewise.
11968 (unaligned_loadsi): Likewise.
11969 (unaligned_loadhis): Likewise.
11970 (unaligned_loadhiu): Likewise.
11971 (unaligned_storesi): Likewise.
11972 (unaligned_storehi): Likewise.
11973 (extv_reg): Likewise.
11974 (extzv_t2): Likewise.
11975 (divsi3): Likewise.
11976 (udivsi3): Likewise.
11977 (arm_zero_extendhisi2addsi): Likewise.
11978 (arm_zero_extendqisi2addsi): Likewise.
11979 (compareqi_eq0): Likewise.
11980 (arm_extendhisi2_v6): Likewise.
11981 (arm_extendqisi2addsi): Likewise.
11982 (arm_movt): Likewise.
11983 (thumb2_ldrd): Likewise.
11984 (thumb2_ldrd_base): Likewise.
11985 (thumb2_ldrd_base_neg): Likewise.
11986 (thumb2_strd): Likewise.
11987 (thumb2_strd_base): Likewise.
11988 (thumb2_strd_base_neg): Likewise.
11989 (arm_negsi2): Add alternative for 16-bit encoding.
11990 (arm_one_cmplsi2): Likewise.
11991
1572e697
KT
119922013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11993
11994 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
11995 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
11996 (movdfcc): Likewise.
11997 * config/arm/vfp.md (*thumb2_movsf_vfp):
11998 Disable predication for arm_restrict_it.
11999 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
12000 (*thumb2_movdfcc_vfp): Likewise.
12001 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
12002 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
12003 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
12004 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
12005 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
12006 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
12007 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
12008 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
12009 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
12010 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
12011 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
12012 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
12013 Disable predication for arm_restrict_it.
12014
ebf8f0ea
KY
120152013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
12016
12017 * config/i386/bmiintrin.h (_bextr_u32): New.
12018 (_bextr_u64): Ditto.
12019
a290fcda
RS
120202013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12021
12022 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
12023 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
12024 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
12025 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
12026 * config/mips/n32-elf.h: ...this new file.
12027
ea169996
MG
120282013-06-27 Marc Glisse <marc.glisse@inria.fr>
12029
12030 PR target/57224
12031 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
12032 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
12033
12211b99 120342013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
12035
12036 * config/mips/mips-tables.opt: Regenerate.
12037 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 12038 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 12039 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 12040
2444244e
JJ
120412013-06-27 Jakub Jelinek <jakub@redhat.com>
12042
cd06d2a2
JJ
12043 PR target/57623
12044 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
12045 constraints of operand 1 and 2.
12046
2444244e
JJ
12047 PR target/57623
12048 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
12049 to match RTL canonicalization. Swap predicates and
12050 constraints of operand 1 and 2.
12051
2f259720
VM
120522013-06-27 Vladimir Makarov <vmakarov@redhat.com>
12053
0ba6aff3
UB
12054 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
12055 Process OP_INOUT regs for splitting too.
2f259720 12056
fef4d2b3
JJ
120572013-06-27 Jakub Jelinek <jakub@redhat.com>
12058
12059 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
12060 decl before the loop, initialize to NULL.
12061 (vectorizable_load): Initialize ptr_incr to NULL.
12062
79ee9826
MJ
120632013-06-27 Martin Jambor <mjambor@suse.cz>
12064
12065 PR lto/57208
12066 * ipa-ref.h (ipa_maybe_record_reference): Declare.
12067 * ipa-ref.c (ipa_maybe_record_reference): New function.
12068 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
12069 * ipa-cp.c (create_specialized_node): Record potential references from
12070 aggvals.
12071 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
12072
e18b4a81
YZ
120732013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12074
12075 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
12076 parameter 'mode' of type 'enum machine_mode mode'; change to pass
12077 'mode' to force_reg.
12078 (aarch64_add_offset): Update calls to aarch64_force_temporary.
12079 (aarch64_expand_mov_immediate): Likewise.
12080
9c023bf0
YZ
120812013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12082
12083 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
12084 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
12085
5a3fe9b6
AK
120862013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12087
12088 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
12089 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12090 (struct machine_function): Add tbegin_p.
12091 (s390_canonicalize_comparison): Fold CC mode compares to
12092 conditional jump if possible.
12093 (s390_emit_jump): Return the emitted jump.
12094 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
12095 Handle CCRAWmode compares.
12096 (s390_option_override): Default to -mhtm if available.
12097 (s390_reg_clobbered_rtx): Handle floating point regs as well.
12098 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
12099 FPRs instead of df_regs_ever_live_p.
12100 (s390_optimize_nonescaping_tx): New function.
12101 (s390_init_frame_layout): Extend clobbered_regs array to cover
12102 FPRs as well.
12103 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
12104 (s390_expand_tbegin): New function.
12105 (enum s390_builtin): New enum definition.
12106 (code_for_builtin): New array definition.
12107 (s390_init_builtins): New function.
12108 (s390_expand_builtin): New function.
12109 (TARGET_INIT_BUILTINS): Define.
12110 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 12111 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
12112 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
12113 (s390_alc_comparison): Likewise.
12114 * config/s390/s390-modes.def: Add CCRAWmode.
12115 * config/s390/s390.h (processor_flags): Add PF_TX.
12116 (TARGET_CPU_HTM): Define macro.
12117 (TARGET_HTM): Define macro.
12118 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
12119 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
12120 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12121 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 12122 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
12123 (TBEGIN_MASK, TBEGINC_MASK): New constants.
12124 ("*cc_to_int"): Move up.
12125 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
12126 constants other than 0.
12127 ("*ccraw_to_int"): New insn and splitter definition.
12128 ("tbegin", "tbegin_nofloat", "tbegin_retry")
12129 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
12130 ("tx_assist"): New expander.
12131 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
12132 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
12133 * config/s390/s390.opt: Add -mhtm option.
12134 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
12135 * config/s390/htmxlintrin.h: New file.
12136 * config/s390/htmintrin.h: New file.
12137 * config/s390/s390intrin.h: New file.
12138 * doc/extend.texi: Document htm builtins.
12139 * config.gcc: Add the new header files to extra_headers.
12140
9e216629
TS
121412013-06-26 Thomas Schwinge <thomas@codesourcery.com>
12142
12143 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 12144 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 12145
fd8c65e7 121462013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12147 Pat Haugen <pthaugen@us.ibm.com>
12148 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
12149
12150 * config/rs6000/power8.md: New.
12151 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
12152 setting for power8 entry.
12153 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
12154 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
12155 test for Power4/Power5 only.
12156 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
12157 support.
12158 (force_new_group): Adjust comment.
12159 * config/rs6000/rs6000.md: Include power8.md.
12160
b24a2ce5
GY
121612013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
12162
12163 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
12164 * config/arm/arm-protos.h (arm_max_conditional_execute): New
12165 declaration.
12166 (tune_params): Update comment.
12167 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
12168 (arm_max_conditional_execute): New function.
12169 (thumb2_final_prescan_insn): Use max_insn_skipped and
12170 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
12171
f6fdeb62
JJ
121722013-06-25 Jakub Jelinek <jakub@redhat.com>
12173
12174 PR tree-optimization/57705
12175 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
12176 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 12177 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
12178 (get_initial_def_for_induction): Handle SSA_NAME IV step.
12179
c13bc3d9
MJ
121802013-06-25 Martin Jambor <mjambor@suse.cz>
12181
12182 PR middle-end/57670
12183 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
12184 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
12185 calls in the dump.
12186 (ipa_note_param_call): Initialize member_ptr flag.
12187 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
12188 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
12189 (ipa_write_indirect_edge_info): Stream member_ptr flag.
12190 (ipa_read_indirect_edge_info): Likewise.
12191
8a845901
RB
121922013-06-25 Richard Biener <rguenther@suse.de>
12193
12194 PR middle-end/56977
12195 * passes.c (init_optimization_passes): Move pass_fold_builtins
12196 and pass_dce earlier with -Og.
12197
33be0bec
EB
121982013-06-25 Eric Botcazou <ebotcazou@adacore.com>
12199
12200 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
12201 <BIT_FIELD_REF>: Remove trailing TAB.
12202 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
12203 remove blank line.
12204
5fe8e757
MJ
122052013-06-24 Martin Jambor <mjambor@suse.cz>
12206
12207 PR tree-optimization/57358
12208 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
12209 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
12210 (ipa_analyze_params_uses): Generate pessimistic info when true.
12211
44a60244
MJ
122122013-06-24 Martin Jambor <mjambor@suse.cz>
12213
12214 PR tree-optimization/57539
12215 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
12216 global.inlined_to of the new node to it. All callers changed.
12217 * ipa-inline-transform.c (clone_inlined_nodes): New variable
12218 inlining_into, pass it to cgraph_clone_node.
12219 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
12220 ipa_free_edge_args_substructures.
12221 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
12222 rdesc linked list. Do not assert rdesc edges have inlined caller.
12223 Assert we have found an rdesc in the rdesc list.
12224
7c5848b8
RB
122252013-06-24 Richard Biener <rguenther@suse.de>
12226
0ba6aff3 12227 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
12228 (pointer_set_lookup): Declare.
12229 (class pointer_map): New template class implementing a
12230 generic pointer to T map.
12231 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
12232 pointer_map<T>::contains, pointer_map<T>::insert,
12233 pointer_map<T>::traverse): New functions.
12234 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
12235 (pointer_set_lookup): New function.
12236 (pointer_set_contains): Use pointer_set_lookup.
12237 (pointer_set_insert): Likewise.
12238 (insert_aux): Remove.
12239 (struct pointer_map_t): Embed a pointer_set_t.
12240 (pointer_map_create): Adjust.
12241 (pointer_map_destroy): Likewise.
12242 (pointer_map_contains): Likewise.
12243 (pointer_map_insert): Likewise.
12244 (pointer_map_traverse): Likewise.
12245 * tree-streamer.h (struct streamer_tree_cache_d): Use a
12246 pointer_map<unsigned> instead of a pointer_map_t.
12247 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
12248 (streamer_tree_cache_lookup): Likewise.
12249 (streamer_tree_cache_create): Likewise.
12250 (streamer_tree_cache_delete): Likewise.
12251 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
12252 pointer_map<unsigned> instead of a pointer_map_t.
12253 (lto_init_tree_ref_encoder): Adjust.
12254 (lto_destroy_tree_ref_encoder): Likewise.
12255 * lto-section-out.c (lto_output_decl_index): Likewise.
12256 (lto_record_function_out_decl_state): Likewise.
12257 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
12258
3dbc97a9
RB
122592013-06-24 Richard Biener <rguenther@suse.de>
12260
12261 PR tree-optimization/57488
12262 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
12263
8345965a
AM
122642013-06-24 Alan Modra <amodra@gmail.com>
12265
12266 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
12267 (gen_easy_altivec_constant): Likewise.
12268 * config/rs6000/predicates.md (easy_vector_constant_add_self,
12269 easy_vector_constant_msb): Likewise.
12270
b7df379f
JJ
122712013-06-23 Jakub Jelinek <jakub@redhat.com>
12272
12273 PR target/57688
12274 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
12275 add missing return true.
12276
12211b99 122772013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
12278
12279 PR target/52483
12280 * config/sh/predicates.md (general_extend_operand): Invoke
12281 general_movsrc_operand for memory operands.
12282 (general_movsrc_operand): Allow reg+reg addressing, do not use
12283 general_operand for memory operands.
12284
97db2bf7
ST
122852013-06-23 Sriraman Tallam <tmsriram@google.com>
12286
12287 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
12288 when current target options does not apply.
12289 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
12290 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
12291 * config/i386/bmiintrin.h: Pass appropriate target
12292 attributes to header.
97db2bf7
ST
12293 * config/i386/mmintrin.h: Ditto.
12294 * config/i386/nmmintrin.h: Ditto.
12295 * config/i386/avx2intrin.h: Ditto.
12296 * config/i386/fxsrintrin.h: Ditto.
12297 * config/i386/tbmintrin.h: Ditto.
12298 * config/i386/xsaveintrin.h: Ditto.
12299 * config/i386/f16cintrin.h: Ditto.
12300 * config/i386/xtestintrin.h: Ditto.
12301 * config/i386/xsaveoptintrin.h: Ditto.
12302 * config/i386/bmi2intrin.h: Ditto.
12303 * config/i386/lzcntintrin.h: Ditto.
12304 * config/i386/smmintrin.h: Ditto.
12305 * config/i386/wmmintrin.h: Ditto.
12306 * config/i386/x86intrin.h: Remove all header include guards.
12307 * config/i386/prfchwintrin.h: Ditto.
12308 * config/i386/pmmintrin.h: Ditto.
12309 * config/i386/tmmintrin.h: Ditto.
12310 * config/i386/xmmintrin.h: Ditto.
12311 * config/i386/popcntintrin.h: Ditto.
12312 * config/i386/rdseedintrin.h: Ditto.
12313 * config/i386/ammintrin.h: Ditto.
12314 * config/i386/emmintrin.h: Ditto.
12315 * config/i386/immintrin.h: Remove all header include guards.
12316 * config/i386/fma4intrin.h: Ditto.
12317 * config/i386/lwpintrin.h: Ditto.
12318 * config/i386/xopintrin.h: Ditto.
12319 * config/i386/ia32intrin.h: Ditto.
12320 * config/i386/avxintrin.h: Ditto.
12321 * config/i386/rtmintrin.h: Ditto.
12322 * config/i386/fmaintrin.h: Ditto.
12323 * config/i386/mm3dnow.h: Ditto.
12324
495e6879
ST
123252013-06-22 Sriraman Tallam <tmsriram@google.com>
12326
12327 * common/config/i386/i386-common.c: Handle LZCNT.
12328
11e8f687
AK
123292013-06-22 Andi Kleen <ak@linux.intel.com>
12330
12331 * doc/extend.texi: Use __atomic_store_n instead of
12332 __atomic_store in HLE example.
12333
12211b99 123342013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
12335
12336 * config/sh/sh.c: Remove <cstdlib> workaround.
12337
927f908b
AK
123382013-06-21 Andi Kleen <ak@linux.intel.com>
12339
0ba6aff3 12340 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 12341
cca410b6
AK
123422013-06-21 Andi Kleen <ak@linux.intel.com>
12343
12344 * doc/extend.texi: Document that __atomic_clear and
12345 __atomic_test_and_set should only be used with bool.
12346
d84db1ed
JH
123472013-06-20 Jan Hubicka <jh@suse.cz>
12348
12349 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
12350 types_same_for_odr.
12351 * tree.c (decls_same_for_odr): New function.
12352 (same_for_edr): New function.
12353 (types_same_for_odr): New function.
12354 (get_binfo_at_offset): Use it.
12355 * tree.h (types_same_for_odr): Declare.
12356
12211b99 123572013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
12358 Jason Merrill <jason@redhat.com>
12359
12360 * system.h: Include <cstdlib> as well as <stdlib.h>.
12361
49b4ff63
UB
123622013-06-20 Uros Bizjak <ubizjak@gmail.com>
12363
12364 PR target/57655
12365 * config/i386/i386.c (construct_container): Report error if
12366 long double is used with disabled x87 float returns.
12367
7a89ad00
JH
123682013-06-20 Jan Hubicka <jh@suse.cz>
12369
12370 * lto-cgraph.c (input_symtab): Do not set cgraph state.
12371
12211b99 123722013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
12373
12374 PR rtl-optimization/57425
12375 PR rtl-optimization/57569
12376 * alias.c (write_dependence_p): Remove parameters mem_mode and
12377 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
12378 Changed all callers.
12379 (canon_anti_dependence): Get comments and semantics in sync.
12380 Add parameter mem_canonicalized. Changed all callers.
12381 * rtl.h (canon_anti_dependence): Update prototype.
12382
d16e9a99
RB
123832013-06-20 Richard Biener <rguenther@suse.de>
12384
12385 * data-streamer-in.c (streamer_read_uhwi): Optimize single
12386 byte case, inline streamer_read_uchar and defer section
12387 overrun check.
12388
c3a9b91b
RB
123892013-06-20 Richard Biener <rguenther@suse.de>
12390
12391 PR tree-optimization/57584
12392 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
12393 SSA names into the expanded expression that take part in
12394 abnormal coalescing.
12395
371e77e3 123962013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
12397
12398 * gcov.c (print_usage): Handle new option.
12399 (process_args): Ditto.
12400 (get_gcov_intermediate_filename): New function.
12401 (output_intermediate_file): New function.
12402 (output_gcov_file): New function
12403 (generate_results): Handle new option.
12404 (release_function): Relase demangled name.
12405 (read_graph_file): Handle demangled name.
12406 (output_lines): Ditto.
12407 * doc/gcov.texi: Document gcov intermediate format.
12408
11f5b71a
VM
124092013-06-19 Vladimir Makarov <vmakarov@redhat.com>
12410
12411 PR bootstrap/57604
12412 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
12413 (lra_emit_add): Use the functions. Add comment about Y as an
12414 address segment.
12415
e1f9340b
DE
124162013-06-19 David Edelsohn <dje.gcc@gmail.com>
12417
12418 PR driver/57652
12419 * collect2.c (collect_atexit): New.
12420 (collect_exit): Delete.
12421 (main): Register collect_atexit with atexit.
12422 (collect_wait): Change collect_exit to exit.
12423 (do_wait): Same.
12424 * collect2.h (collect_exit): Delete.
12425 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
12426
e3f9e0ac
WM
124272013-06-19 Wei Mi <wmi@google.com>
12428
12429 PR rtl-optimization/57518
12430 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
12431 if regno is used in paradoxical subreg.
12432 (update_equiv_regs): Check pdx_subregs[regno] before
12433 set a reg to be equivalent with a mem.
12434
a09f1a76
MK
124352013-06-19 Matthias Klose <doko@ubuntu.com>
12436
12437 PR driver/57651
12438 * file-find.h (find_a_file): Add a mode parameter.
12439 * file-find.c (find_a_file): Likewise.
12440 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
12441 with X_OK for the executables.
12442 * collect2.c (main): Call find_a_file with X_OK.
12443
7d18b0ad
SE
124442013-06-19 Steve Ellcey <sellcey@mips.com>
12445
12446 PR target/56942
12447 * config/mips/mips.md (casesi_internal_mips16_<mode>):
12448 Use NEXT_INSN instead of next_real_insn.
12449
6a6dac52
JH
124502013-06-19 Jan Hubicka <jh@suse.cz>
12451
12452 * cgraph.h (const_value_known_p): Replace by ...
12453 (ctor_for_folding): .. this one.
12454 * cgraphunit.c (process_function_and_variable_attributes): Use it.
12455 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
12456 * expr.c (expand_expr_real_1): Likewise.
12457 (string_constant): Likewise.
12458 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12459 * ipa.c (process_references): Likewise.
12460 (symtab_remove_unreachable_nodes): Likewise.
12461 * ipa-inline-analysis.c (param_change_prob): Likewise.
12462 * gimple-fold.c (canonicalize_constructor_val): Likewise.
12463 (get_base_constructor): Likwise.
12464 * varpool.c (varpool_remove_node): Likewise.
12465 (varpool_remove_initializer): LIkewise.
12466 (dump_varpool_node): LIkwise.
12467 (const_value_known_p): Rewrite to ...
12468 (ctor_for_folding): ... this one.
12469
216c12ab
JJ
124702013-06-19 Jakub Jelinek <jakub@redhat.com>
12471
12472 PR driver/57651
12473 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
12474 PERSONALITY in $PATH derived prefixes.
12475
d53e2f99
JL
124762013-06-19 Jeff Law <law@redhat.com>
12477
ecdbf306
JL
12478 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
12479 in comment.
12480
d53e2f99
JL
12481 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
12482 (simplify_bitwise_binary): Use it to simpify certain binary ops on
12483 booleans.
12484
89e7fc04
SN
124852013-06-19 Sofiane Naci <sofiane.naci@arm.com>
12486
12487 * config/arm/vfp.md: Move VFP instruction classification documentation
12488 to ...
12489 * config/arm/arm.md: ... here. Update instruction classification
12490 documentation.
12491
5e7f6aaa
RE
124922013-06-19 Richard Earnshaw <rearnsha@arm.com>
12493
12494 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
12495 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
12496 pattern. Use more efficient sequences on ARMv5 and Thumb2.
12497
5fdc1e5d
SB
124982013-06-19 Steven Bosscher <steven@gcc.gnu.org>
12499
12500 PR target/57609
12501 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12502 with NEXT_INSN. Use tablejump_p to check for jump table data
12503 insns.
12504
e952afba
PC
125052013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
12506
12507 PR c++/56544
12508 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
12509 that now in C++ the value is correct per the C++ standards.
12510
3fd0303a
RB
125112013-06-19 Richard Biener <rguenther@suse.de>
12512
12513 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
12514 for global context.
12515
b04e4b08
AK
125162013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12517
12518 Revert:
12519 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12520
12521 PR target/57609
12522 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12523 with next_active_insn.
12524
bef8491a
ST
125252013-06-18 Sriraman Tallam <tmsriram@google.com>
12526
12527 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
12528 functions are inlined during failures to flag an error.
12529 * tree-inline.c (expand_call_inline): Allow the error to be flagged
12530 in early inline pass.
22fc7d3d 12531
c21b257d
L
125322013-06-18 H.J. Lu <hongjiu.lu@intel.com>
12533
12534 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
12535 in comments.
12536
33255ae3
JB
125372013-06-18 Julian Brown <julian@codesourcery.com>
12538
12539 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
12540 Permit virtual register pre-reload if !strict.
12541 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
12542 change.
12543 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
12544 prototype.
12545 * config/arm/neon.md (movmisalign<mode>): Use
12546 neon_perm_struct_or_reg_operand instead of
12547 neon_struct_or_register_operand.
12548 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
12549 neon_permissive_struct_operand instead of neon_struct_operand.
12550 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
12551 neon_vector_mem_operand.
12552 * config/arm/predicates.md (neon_struct_operand): Adjust call to
12553 neon_vector_mem_operand.
12554 (neon_permissive_struct_operand): New.
12555 (neon_struct_or_register_operand): Rename to...
12556 (neon_perm_struct_or_reg_operand): This. Adjust call to
12557 neon_vector_mem_operand.
12558
d579fcda
RB
125592013-06-18 Richard Biener <rguenther@suse.de>
12560
12561 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
12562 * lto-streamer.h: Include pointer-set.h.
12563 (struct lto_decl_slot): Remove.
12564 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
12565 Remove next_index entry.
12566 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12567 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12568 (lto_init_tree_ref_encoder): Adjust.
12569 (lto_destroy_tree_ref_encoder): Likewise.
12570 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12571 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12572 (lto_output_decl_index): Adjust.
12573 (lto_new_out_decl_state): Likewise.
12574 (lto_record_function_out_decl_state): Likewise.
12575 * lto-streamer-out.c (copy_function): Likewise.
12576
31ee20ba
RB
125772013-06-18 Richard Biener <rguenther@suse.de>
12578
12579 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
12580 * cgraphunit.c: Include cfgloop.h.
12581 (init_lowered_empty_function): Initialize the loop tree.
12582 (assemble_thunk): Insert new BBs into loops.
12583
ac0511f2
RB
125842013-06-18 Richard Biener <rguenther@suse.de>
12585
12586 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
12587 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
12588 the map from cache entry to cache index optional.
12589 (streamer_tree_cache_replace_tree): Adjust accordingly.
12590 (streamer_tree_cache_append): Likewise.
12591 (streamer_tree_cache_delete): Likewise.
12592 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
12593 streamer cache map from cache entry to cache index.
12594 * lto-streamer-out.c (create_output_block): Adjust.
12595
09485a08
SN
125962013-06-18 Sofiane Naci <sofiane.naci@arm.com>
12597
22fc7d3d
UB
12598 * config/arm/arm.md (attribute "insn"): Move multiplication and
12599 division attributes to...
09485a08
SN
12600 (attribute "type"): ... here. Remove mult.
12601 (attribute "mul32"): New attribute.
12602 (attribute "mul64"): Add umaal.
12603 (*arm_mulsi3): Update attributes.
12604 (*arm_mulsi3_v6): Likewise.
12605 (*thumb_mulsi3): Likewise.
12606 (*thumb_mulsi3_v6): Likewise.
12607 (*mulsi3_compare0): Likewise.
12608 (*mulsi3_compare0_v6): Likewise.
12609 (*mulsi_compare0_scratch): Likewise.
12610 (*mulsi_compare0_scratch_v6): Likewise.
12611 (*mulsi3addsi): Likewise.
12612 (*mulsi3addsi_v6): Likewise.
12613 (*mulsi3addsi_compare0): Likewise.
12614 (*mulsi3addsi_compare0_v6): Likewise.
12615 (*mulsi3addsi_compare0_scratch): Likewise.
12616 (*mulsi3addsi_compare0_scratch_v6): Likewise.
12617 (*mulsi3subsi): Likewise.
12618 (*mulsidi3adddi): Likewise.
12619 (*mulsi3addsi_v6): Likewise.
12620 (*mulsidi3adddi_v6): Likewise.
12621 (*mulsidi3_nov6): Likewise.
12622 (*mulsidi3_v6): Likewise.
12623 (*umulsidi3_nov6): Likewise.
12624 (*umulsidi3_v6): Likewise.
12625 (*umulsidi3adddi): Likewise.
12626 (*umulsidi3adddi_v6): Likewise.
12627 (*smulsi3_highpart_nov6): Likewise.
12628 (*smulsi3_highpart_v6): Likewise.
12629 (*umulsi3_highpart_nov6): Likewise.
12630 (*umulsi3_highpart_v6): Likewise.
12631 (mulhisi3): Likewise.
12632 (*mulhisi3tb): Likewise.
12633 (*mulhisi3bt): Likewise.
12634 (*mulhisi3tt): Likewise.
12635 (maddhisi4): Likewise.
12636 (*maddhisi4tb): Likewise.
12637 (*maddhisi4tt): Likewise.
12638 (maddhidi4): Likewise.
12639 (*maddhidi4tb): Likewise.
12640 (*maddhidi4tt): Likewise.
12641 (divsi3): Likewise.
12642 (udivsi3): Likewise.
12643 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
12644 (thumb2_mulsi_short_compare0): Likewise.
12645 (thumb2_mulsi_short_compare0_scratch): Likewise.
12646 * config/arm/arm1020e.md (1020mult1): Update attribute change.
12647 (1020mult2): Likewise.
12648 (1020mult3): Likewise.
12649 (1020mult4): Likewise.
12650 (1020mult5): Likewise.
12651 (1020mult6): Likewise.
22fc7d3d
UB
12652 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
12653 change.
09485a08
SN
12654 (cortex_a15_mult64): Likewise.
12655 (cortex_a15_sdiv): Likewise.
12656 (cortex_a15_udiv): Likewise.
12657 * config/arm/arm1026ejs.md (mult1): Update attribute change.
12658 (mult2): Likewise.
12659 (mult3): Likewise.
12660 (mult4): Likewise.
12661 (mult5): Likewise.
12662 (mult6): Likewise.
12663 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
12664 (pj4_ir_div): Likewise.
12665 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
12666 (11_mult2): Likewise.
12667 (11_mult3): Likewise.
12668 (11_mult4): Likewise.
12669 (11_mult5): Likewise.
12670 (11_mult6): Likewise.
12671 (11_mult7): Likewise.
12672 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
12673 (cortex_a8_mla): Likewise.
12674 (cortex_a8_mull): Likewise.
12675 (cortex_a8_smulwy): Likewise.
12676 (cortex_a8_smlald): Likewise.
12677 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
12678 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
12679 (cortex_r4_mul_3): Likewise.
12680 (cortex_r4_mla_4): Likewise.
12681 (cortex_r4_mla_3): Likewise.
12682 (cortex_r4_smlald): Likewise.
12683 (cortex_r4_mull): Likewise.
12684 (cortex_r4_sdiv): Likewise.
12685 (cortex_r4_udiv): Likewise.
12686 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
12687 (cortex_a7_idiv): Likewise.
12688 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
12689 (9_mult2): Likewise.
12690 (9_mult3): Likewise.
12691 (9_mult4): Likewise.
12692 (9_mult5): Likewise.
12693 (9_mult6): Likewise.
12694 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
12695 (cortex_a53_sdiv): Likewise.
12696 (cortex_a53_udiv): Likewise.
12697 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
12698 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
12699 (mp626_mult2): Likewise.
12700 (mp626_mult3): Likewise.
12701 (mp626_mult4): Likewise.
12702 * config/arm/fa526.md (526_mult1): Update attribute change.
12703 (526_mult2): Likewise.
12704 * config/arm/arm-generic.md (mult): Update attribute change.
12705 (mult_ldsched_strongarm): Likewise.
12706 (mult_ldsched): Likewise.
12707 (multi_cycle): Likewise.
12708 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
12709 * config/arm/fa606te.md (606te_mult1): Update attribute change.
12710 (606te_mult2): Likewise.
12711 (606te_mult3): Likewise.
12712 (606te_mult4): Likewise.
12713 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
12714 (cortex_a9_mac16): Likewise.
12715 (cortex_a9_multiply): Likewise.
12716 (cortex_a9_mac): Likewise.
12717 (cortex_a9_multiply_long): Likewise.
12718 * config/arm/fa626te.md (626te_mult1): Update attribute change.
12719 (626te_mult2): Likewise.
12720 (626te_mult3): Likewise.
12721 (626te_mult4): Likewise.
12722
8951f345
RB
127232013-06-18 Richard Biener <rguenther@suse.de>
12724
12725 PR lto/57334
12726 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
12727
d8101d05
AK
127282013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12729
12730 PR target/57609
12731 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12732 with next_active_insn.
12733
69eff9da
AM
127342013-06-18 Alan Modra <amodra@gmail.com>
12735
12736 * config/rs6000/rs6000.h (enum data_align): New.
12737 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
12738 (DATA_ABI_ALIGNMENT): Define.
12739 (CONSTANT_ALIGNMENT): Correct comment.
12740 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
12741 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
12742
8ed00d76
DM
127432013-06-17 David Malcolm <dmalcolm@redhat.com>
12744
12745 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
12746 ATTRIBUTE_UNUSED marking.
12747
3d33d06b
SN
127482013-06-17 Sofiane Naci <sofiane.naci@arm.com>
12749
12750 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
12751 alternative and update.
12752 (aarch64_dup_lanedi): Delete.
12753 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
12754 * config/aarch64/aarch64-simd-builtins.def: Update.
12755
ee03e71d
RB
127562013-06-17 Richard Biener <rguenther@suse.de>
12757
12758 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
12759 (lto_input_scc): Declare.
12760 (lto_input_tree_1): Likewise.
12761 (struct lto_stats_d): Add num_tree_bodies_output and
12762 num_pickle_refs_output.
12763 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
12764 (lto_read_tree_1): Split out from ...
12765 (lto_read_tree): ... this.
12766 (lto_input_scc): New function.
12767 (lto_input_tree_1): Split out from ...
12768 (lto_input_tree): ... this. Handle LTO_tree_scc.
12769 (lto_data_in_create): Create the streamer cache without hashes.
12770 * lto-streamer-out.c (create_output_block): Create the streamer
12771 cache with hashes when not doing WPA.
12772 (lto_write_tree_1): Split out from ...
12773 (lto_write_tree): ... this.
12774 (get_symbol_initial_value): New function.
12775 (lto_output_tree_1): Split out from ...
12776 (lto_output_tree): ... this. Write trees as series of SCCs
12777 using a DFS walk via DFS_write_tree.
12778 (struct sccs, struct scc_entry): New types.
12779 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
12780 (DFS_write_tree_body): New function.
12781 (DFS_write_tree): Likewise.
12782 (hash_tree): Likewise.
12783 (scc_entry_compare): Likewise.
12784 (hash_scc): Likewise.
12785 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
12786 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
12787 TREE_CHAIN as regular reference.
12788 (streamer_read_integer_cst): Remove.
12789 (streamer_get_pickled_tree): Adjust.
12790 * tree-streamer-out.c (streamer_write_chain): Disable streaming
12791 of DECL_EXTERNALs in BLOCK_VARS for now.
12792 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
12793 reference.
12794 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
12795 Add hash value argument and record that if hashes are recorded
12796 in the cache.
12797 (streamer_tree_cache_insert_1): Adjust.
12798 (streamer_tree_cache_insert): Likewise.
12799 (streamer_tree_cache_insert_at): Rename to ...
12800 (streamer_tree_cache_replace_tree): ... this and adjust.
12801 (streamer_tree_cache_append): Adjust.
12802 (record_common_node): Likewise.
12803 (streamer_tree_cache_create): Add argument whether to
12804 record hash values together with trees.
12805 (streamer_tree_cache_delete): Adjust.
12806 * tree-streamer.h (struct streamer_tree_cache_d): Add
12807 vector of hashes.
12808 (streamer_read_integer_cst): Remove.
12809 (streamer_tree_cache_insert): Adjust.
12810 (streamer_tree_cache_append): Likewise.
12811 (streamer_tree_cache_insert_at): Rename to ...
12812 (streamer_tree_cache_replace_tree): ... this and adjust.
12813 (streamer_tree_cache_create): Add argument whether to record hashes.
12814 (streamer_tree_cache_get): Rename to ...
12815 (streamer_tree_cache_get_tree): ... this.
12816 (streamer_tree_cache_get_hash): New function.
12817 * tree.c (cache_integer_cst): New function.
12818 * tree.h (cache_integer_cst): Declare.
12819 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
12820 * lto-symtab.c (lto_varpool_replace_node): Only release
12821 DECL_INITIAL of non-prevailing decls.
12822 * varpool.c (varpool_remove_initializer): Do not release
12823 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
12824
0de86a92
JU
128252013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12826
12827 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
12828 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
12829 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
12830 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
12831 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
12832 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
12833 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
12834 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
12835 instead of TARGET_64BIT.
12836 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
12837 Require ISA_HAS_<D>DIV.
12838
74240413
RS
128392013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
12840
12841 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
12842 (mips*-*-linux*): Move default with_llsc setting to where other
12843 defaults are set.
12844 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
12845 with_arch block.
12846 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
12847 Likewise. Remove default with_tune setting. Move default float
12848 setting to its own block. Handle with_llsc in the same block as above.
12849
12211b99 128502013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
12851
12852 PR rtl-optimization/57425
12853 PR rtl-optimization/57569
299a5f6a 12854 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
12855 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
12856 Changed all callers.
12857 (canon_anti_dependence): New function.
12858 * cse.c (check_dependence): Use canon_anti_dependence.
12859 * cselib.c (cselib_invalidate_mem): Likewise.
12860 * rtl.h (canon_anti_dependence): Declare.
12861
b259d352
JU
128622013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12863
12864 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
12865 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
12866 ".set mips3" for 64-bit targets.
12867
4de09b85
DC
128682013-06-15 Dehao Chen <dehao@google.com>
12869
12870 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
12871 * gimple-low.c (gimple_check_call_matching_types): Likewise.
12872 (gimple_check_call_args): Likewise.
12873 * value-prof.c (check_ic_target): Likewise.
12874 * ipa-inline.c (early_inliner): Likewise.
12875 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
12876 * cgraph.c (cgraph_create_edge_1): Likewise.
12877 (cgraph_make_edge_direct): Likewise.
12878
d1aa4a76
MM
128792013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12880
12881 PR target/57615
12882 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
12883 rs6000_output_move_128bit to handle emitting quad memory
12884 operations. Set attribute length to 8 bytes.
12885
12211b99 128862013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
12887
12888 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
12889 New pattern.
12890 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
12891 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
12892 (aarch64_<su>mlsl<mode>): Likewise.
12893
f5273574
MS
128942013-06-14 Mike Stump <mikestump@comcast.net>
12895
12896 * Makefile.in (TARGET_H): Add insn-codes.h.
12897
ef7e7ab2
AM
128982013-06-14 Alan Modra <amodra@gmail.com>
12899
12900 PR middle-end/57134
12901 PR middle-end/57586
12902 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
12903 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
12904 bitfield expansion when EXPAND_MEMORY.
12905 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
12906
135faab6
MM
129072013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12908
12909 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
12910 test for clearing quad memory on 32-bit later.
12911
948a1fd9
MG
129122013-06-13 Marc Glisse <marc.glisse@inria.fr>
12913
12914 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
12915 (fold_negate_expr): Likewise.
12916 (fold_real_zero_addition_p): Handle vectors.
12917 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
12918
0597fb9c
AM
129192013-06-14 Alan Modra <amodra@gmail.com>
12920
12921 * varasm.c (force_const_mem): Revert 2013-06-07 change.
12922
e5b962d0
JH
129232013-06-13 Jan Hubicka <jh@suse.cz>
12924
12925 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
12926 Local comdats are not externally visible.
12927 * symtab.c (dump_symtab_base): Dump externally visible.
12928 (verify_symtab_base): Verify back links in the symtab hash.
12929
a8355e51
BC
129302013-06-13 Bin Cheng <bin.cheng@arm.com>
12931
12932 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
12933 CONVERT_EXPR as equal nodes.
12934
8f7e6e33
BC
129352013-06-13 Bin Cheng <bin.cheng@arm.com>
12936
22fc7d3d 12937 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 12938
5d418483
MG
129392013-06-13 Marc Glisse <marc.glisse@inria.fr>
12940
12941 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
12942 Generalize to complex and vector.
12943 * tree.c (build_all_ones_cst): New function.
12944 * tree.h (build_all_ones_cst): Declare it.
12945
50751417
AM
129462013-06-13 Alan Modra <amodra@gmail.com>
12947
12948 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
12949 * config/rs6000/rs6000.md (signbittf2): New insn.
12950 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
12951 (abstf2_internal, cmptf_internal2): Likewise.
12952 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
12953
4b02c962 129542013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12955 Pat Haugen <pthaugen@us.ibm.com>
12956 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
12957
12958 * config/rs6000/rs6000.c (emit_load_locked): Add support for
12959 power8 byte, half-word, and quad-word atomic instructions.
12960 (emit_store_conditional): Likewise.
12961 (rs6000_expand_atomic_compare_and_swap): Likewise.
12962 (rs6000_expand_atomic_op): Likewise.
12963
12964 * config/rs6000/sync.md (larx): Add new modes for power8.
12965 (stcx): Likewise.
12966 (AINT): New mode iterator to include TImode as well as normal
12967 integer modes on power8.
12968 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
12969 that VSX registers are not considered. Use AINT mode iterator
12970 instead of INT1 to allow inclusion of quad word atomic operations
12971 on power8.
12972 (load_locked<mode>): Likewise.
12973 (store_conditional<mode>): Likewise.
12974 (atomic_compare_and_swap<mode>): Likewise.
12975 (atomic_exchange<mode>): Likewise.
12976 (atomic_nand<mode>): Likewise.
12977 (atomic_fetch_<fetchop_name><mode>): Likewise.
12978 (atomic_nand_fetch<mode>): Likewise.
12979 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
12980 each type.
12981 (ATOMIC): On power8, add QImode, HImode modes.
12982 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
12983 modes that promote to SImode.
12984 (load_lockedti): Convert TImode arguments to PTImode, so that we
12985 get a guaranteed even/odd register pair.
12986 (load_lockedpti): Likewise.
12987 (store_conditionalti): Likewise.
12988 (store_conditionalpti): Likewise.
12989
12990 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
12991 atomic load/store instructions.
12992 (HSI): Likewise.
12993
710b6cc1
RS
129942013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
12995
12996 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
12997 loads.
12998 (insn_count): New attribute, with most cases extracted from...
12999 (length): ...here. Redefine most cases in terms of insn_count.
13000 (single_insn): Delete.
13001 (can_delay): Use insn_count to check for single instructions.
13002 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
13003 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
13004 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
13005 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
13006 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
13007 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
13008 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
13009 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
13010 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
13011 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
13012 rather than "length".
13013 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
13014 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
13015 Use "insn_count" rather than "length".
13016 * config/mips/mips-dsp.md
13017 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
13018 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
13019 length attributes.
13020
1951f101
MG
130212013-06-12 Marc Glisse <marc.glisse@inria.fr>
13022
13023 PR tree-optimization/57361
13024 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
13025
8b033a8a
SN
130262013-06-12 Sofiane Naci <sofiane.naci@arm.com>
13027
22fc7d3d
UB
13028 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
13029 to split.
8b033a8a
SN
13030 (aarch64_simd_combine<mode>): New instruction expansion.
13031 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
13032 function prototype.
13033 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
13034 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
13035
ca0f62a8
JH
130362013-06-12 Jan Hubicka <jh@suse.cz>
13037
13038 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
13039 decl has when in streaming stage.
13040 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
13041 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
13042
12211b99 130432013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
13044
13045 PR target/57578
13046 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
13047
bfdeda2c
JJ
130482013-06-12 Jakub Jelinek <jakub@redhat.com>
13049
13050 PR tree-optimization/57537
13051 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
13052 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
13053
a4fa02d1
RB
130542013-06-12 Richard Biener <rguenther@suse.de>
13055
13056 * data-streamer.h (streamer_write_char_stream): CSE
13057 obs->current_pointer.
13058 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
13059 streamer_write_char_stream manually and optimize the resulting loop.
13060 (streamer_write_hwi_stream): Likewise.
13061
bbf9ad07
JH
130622013-06-12 Jan Hubicka <jh@suse.cz>
13063
13064 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
13065 * cgraph.h (varpool_create_empty_node): Declare.
13066 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
13067 duplicated nodes.
13068 * symtab.c (symtab_unregister_node): Be lax about missin entries
13069 in node hash.
13070 (symtab_get_node): Update comment.
13071 * varpool.c (varpool_create_empty_node): Break out from ...
13072 (varpool_node_for_decl): ... here.
13073 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
13074
a53f90ad
EB
130752013-06-12 Eric Botcazou <ebotcazou@adacore.com>
13076
13077 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
13078 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
13079 part. Use straight-line flow at the end.
13080 <COMPONENT_REF>: Remove superfluous else.
13081 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
13082
946f9306
JJ
130832013-06-12 Jakub Jelinek <jakub@redhat.com>
13084
13085 PR target/56564
13086 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
13087 target hook even for !TREE_PUBLIC decls. If no resolution info
13088 is available, return false for common and external decls.
13089
a7fca6f0
KP
130902013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13091
13092 * config/rl78/constraints.md (U): New constraint.
13093 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
13094 valloc attribute.
13095
c7d8f446
MM
130962013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13097
13098 PR target/57589
13099 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
13100 to allow returning address to AT_PLATFORM name.
13101
08346abd
JH
131022013-06-11 Jan Hubicka <jh@suse.cz>
13103
13104 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
13105 * cgraph.h (symtab_node_base): Add weakref flag.
13106 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
13107 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
13108 (output_weakrefs): Use weakref flag.
13109 * fold-const.c (simple_operand_p): Handle WEAK.
13110 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
13111 * ipa.c (varpool_externally_visible_p): Drop weakref.
13112 (function_and_variable_visibility): Update comment; fix weakref
13113 sanity checks; do not clear DECL_WEAK on them.
13114 * lto-cgraph.c (lto_output_node): update.
13115 (lto_output_varpool_node): Update.
13116 (input_overwrite_node): Update.
13117 (input_node): Update.
13118 (input_varpool_node): Update.
13119 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
13120 (lto_symtab_merge_symbols): Add sanity check.
13121 (lto_symtab_prevailing_decl): Do not special case weakrefs.
13122 * passes.c (rest_of_decl_compilation): Set static flag, too.
13123 * symtab.c (dump_symtab_base): Dump weakref.
13124 (verify_symtab_base): Sanity check weakrefs.
13125 (symtab_make_decl_local): Remove duplicated code.
13126 (symtab_alias_ultimate_target): Simplify.
13127 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 13128
2e6a2f88
TV
131292013-06-11 Tom de Vries <tom@codesourcery.com>
13130
13131 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
13132 sequence_vect == NULL.
13133
d9af3652
DD
131342013-06-11 DJ Delorie <dj@redhat.com>
13135
13136 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
13137 (rl78_unwind_word_mode): New.
13138
ffa66012
DM
131392013-06-11 David Malcolm <dmalcolm@redhat.com>
13140
13141 * final.c (debug_prefix_maps): Make static.
13142
783f2d35
DM
131432013-06-11 David Malcolm <dmalcolm@redhat.com>
13144
13145 * function.c (initial_trampoline): Remove stray copy.
13146
7af26def
SN
131472013-06-11 Sofiane Naci <sofiane.naci@arm.com>
13148
13149 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
13150
97756c0e
MJ
131512013-06-11 Martin Jambor <mjambor@suse.cz>
13152
13153 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
13154 within bounds at the beginning of the function.
13155
2c7b8bf6
AM
131562013-06-11 Alan Modra <amodra@gmail.com>
13157
13158 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
13159 reporting.
13160 (get_named_section): Don't NULL !DECL_P decl.
13161
77cea46e
IZ
131622013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
13163
13164 * doc/invoke.texi (core-avx2): Document.
13165 (slm): Likewise.
13166 (atom): Updated with MOVBE.
13167
888f0920
RB
131682013-06-11 Richard Biener <rguenther@suse.de>
13169
22fc7d3d 13170 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 13171
6b438d58
AB
131722013-06-11 Anton Blanchard <anton@samba.org>
13173
13174 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
13175 correct shift value in little-endian mode.
13176
3bc66938
JJ
131772013-06-11 Jakub Jelinek <jakub@redhat.com>
13178
13179 PR target/56564
13180 * varasm.c (get_variable_align): Move #endif to the right place.
13181
a5dc7f88
CC
131822013-06-10 Cary Coutant <ccoutant@google.com>
13183
13184 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
13185 for hash so that hash table traversal order is deterministic.
13186
19be72ab 131872013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13188 Pat Haugen <pthaugen@us.ibm.com>
13189 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
13190
13191 * config/rs6000/vector.md (GPR move splitter): Do not split moves
13192 of vectors in GPRS if they are direct moves or quad word load or
13193 store moves.
13194
13195 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
13196 declaration.
13197 (direct_move_p): Likewise.
13198 (quad_load_store_p): Likewise.
13199
13200 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
13201 classes into bins based on the physical register type.
13202 (reg_class_to_reg_type): Likewise.
13203 (IS_STD_REG_TYPE): Likewise.
13204 (IS_FP_VECT_REG_TYPE): Likewise.
13205 (reload_fpr_gpr): Arrays to determine what insn to use if we can
13206 use direct move instructions.
13207 (reload_gpr_vsx): Likewise.
13208 (reload_vsx_gpr): Likewise.
13209 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
13210 information that is a simplification of register classes. Also
13211 precalculate direct move reload helpers.
13212 (direct_move_p): New function to return true if the operation can
13213 be done as a direct move instruciton.
13214 (quad_load_store_p): New function to return true if the operation
13215 is a quad memory operation.
13216 (rs6000_legitimize_address): If quad memory, only allow register
13217 indirect for TImode addresses.
13218 (rs6000_legitimate_address_p): Likewise.
13219 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
13220 (rs6000_reload_register_type): Likewise.
13221 (register_to_reg_type): Return register type.
13222 (rs6000_secondary_reload_simple_move): New helper function for
13223 secondary reload and secondary memory needed to identify anything
13224 that is a simple move, and does not need reloading.
13225 (rs6000_secondary_reload_direct_move): New helper function for
13226 secondary reload to identify cases that can be done with several
13227 instructions via the direct move instructions.
13228 (rs6000_secondary_reload_move): New helper function for secondary
13229 reload to identify moves between register types that can be done.
13230 (rs6000_secondary_reload): Add support for quad memory operations
13231 and for direct move.
13232 (rs6000_secondary_memory_needed): Likewise.
13233 (rs6000_debug_secondary_memory_needed): Change argument names.
13234 (rs6000_output_move_128bit): New function to return the move to
13235 use for 128-bit moves, including knowing about the various
13236 limitations of quad memory operations.
13237
13238 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
13239 memory operations. call rs6000_output_move_128bit for the actual
13240 instruciton(s) to generate.
13241 (vsx_movti_64bit): Likewise.
13242
13243 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
13244 (UNSPEC_P8V_MTVSRWZ): Likewise.
13245 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
13246 (UNSPEC_P8V_MTVSRD): Likewise.
13247 (UNSPEC_P8V_XXPERMDI): Likewise.
13248 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
13249 (UNSPEC_FUSION_GPR): Likewise.
13250 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 13251 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
13252 (f32_sv): Likewise.
13253 (f32_dm): Likewise.
13254 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
13255 loads and direct move instructions.
13256 (zero_extendsidi2_lfiwzx): Likewise.
13257 (extendsidi2_lfiwax): Likewise.
13258 (extendsidi2_nocell): Likewise.
13259 (floatsi<mode>2_lfiwax): Likewise.
13260 (lfiwax): Likewise.
13261 (floatunssi<mode>2_lfiwzx): Likewise.
13262 (lfiwzx): Likewise.
13263 (fix_trunc<mode>_stfiwx): Likewise.
13264 (fixuns_trunc<mode>_stfiwx): Likewise.
13265 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
13266 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
13267 (parity<mode>2_cmpb): Set length/type attr.
13268 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
13269 for 'mr.' to fast_compare.
13270 (bpermd_<mode>): Change type attr to popcnt.
13271 (p8_fmrgow_<mode>): New insns for power8 direct move support.
13272 (p8_mtvsrwz_1): Likewise.
13273 (p8_mtvsrwz_2): Likewise.
13274 (reload_fpr_from_gpr<mode>): Likewise.
13275 (p8_mtvsrd_1): Likewise.
13276 (p8_mtvsrd_2): Likewise.
13277 (p8_xxpermdi_<mode>): Likewise.
13278 (reload_vsx_from_gpr<mode>): Likewise.
13279 (reload_vsx_from_gprsf): Likewise.
13280 (p8_mfvsrd_3_<mode>): LIkewise.
13281 (reload_gpr_from_vsx<mode>): Likewise.
13282 (reload_gpr_from_vsxsf): Likewise.
13283 (p8_mfvsrd_4_disf): Likewise.
13284 (multi-word GPR splits): Do not split direct moves or quad memory
13285 operations.
13286
16876bdc
DM
132872013-06-10 David Malcolm <dmalcolm@redhat.com>
13288
13289 * tree-into-ssa.c (interesting_blocks): Make static.
13290
df8a1d28
JJ
132912013-06-10 Jakub Jelinek <jakub@redhat.com>
13292
13293 PR target/56564
13294 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
13295 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
13296 Use DATA_ABI_ALIGNMENT for that case instead if defined.
13297 (get_variable_align): New function.
13298 (get_variable_section, emit_bss, emit_common,
13299 assemble_variable_contents, place_block_symbol): Use
13300 get_variable_align instead of DECL_ALIGN.
13301 (assemble_noswitch_variable): Add align argument, use it
13302 instead of DECL_ALIGN.
13303 (assemble_variable): Adjust caller. Use get_variable_align
13304 instead of DECL_ALIGN.
13305 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
13306 caller.
13307 (DATA_ABI_ALIGNMENT): Define.
13308 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
13309 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
13310 opt is false, only return the psABI mandated alignment increase.
13311 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
13312 (DATA_ABI_ALIGNMENT): ... this.
13313 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
13314 (DATA_ABI_ALIGNMENT): ... this.
13315 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
13316 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
13317 (DATA_ABI_ALIGNMENT): ... this.
13318 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
13319 * doc/tm.texi: Regenerated.
13320
57b29ca6
UB
133212013-06-10 Uros Bizjak <ubizjak@gmail.com>
13322
13323 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
13324 cmp_code to construct REG_EQUAL note.
13325
3e56ed50
JJ
133262013-06-09 Jakub Jelinek <jakub@redhat.com>
13327
13328 PR target/57568
13329 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
13330 that operands[2] doesn't overlap with operands[0].
13331
74fe2a1d
DE
133322013-06-09 David Edelsohn <dje.gcc@gmail.com>
13333 Jan Hubicka <jh@suse.cz>
13334
13335 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
13336 hack to mark symbols as used.
13337
ed52a84e
VM
133382013-06-08 Vladimir Makarov <vmakarov@redhat.com>
13339
13340 PR rtl-optimization/57559
13341 * lra-constraints.c (process_alt_operands): Don't discourage
13342 memory with known offset for offsetable memory constraint.
13343 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
13344
299316ed
EB
133452013-06-08 Eric Botcazou <ebotcazou@adacore.com>
13346
13347 * varasm.c (struct oc_local_state): Reorder fields.
13348 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
13349 and adjust accordingly.
13350 (output_constructor): Reorder initialization code and adjust call to
13351 output_constructor_bitfield.
13352
88ac60d3
JH
133532013-06-07 Jan Hubicka <jh@suse.cz>
13354
13355 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
13356
4cdce1a8
DM
133572013-06-07 David Malcolm <dmalcolm@redhat.com>
13358
13359 * tree-object-size.c (unknown): Make const.
13360
b5e0425c
AK
133612013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13362
13363 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
13364 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
13365 for last alternative in the cpu_facility attribute.
13366
79678d04
KT
133672013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13368
13369 PR target/56315
13370 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
13371 (xordi3): Change operand 2 constraint to arm_xordi_operand.
13372 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
13373 * config/arm/constraints.md (Dg): New constraint.
13374 * config/arm/neon.md (xordi3_neon): Remove.
13375 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
13376 * config/arm/predicates.md (arm_xordi_operand): New predicate.
13377
b31ddbdb
KT
133782013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13379
13380 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
13381 Clean up alternatives.
13382
8f90b7d4
AM
133832013-06-07 Alan Modra <amodra@gmail.com>
13384
13385 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
13386 va_list_gpr_size.
13387
961ce119
AM
133882013-06-07 Alan Modra <amodra@gmail.com>
13389
13390 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
13391
33e49835
KT
133922013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13393
13394 * config/arm/constraints.md (Df): New constraint.
13395 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
13396 Correct length attribute for last two alternatives.
13397
acd17ae6
AM
133982013-06-07 Alan Modra <amodra@gmail.com>
13399
13400 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13401 override user -mfp-in-toc.
13402 (offsettable_ok_by_alignment): Consider just the current access
13403 rather than the whole object, unless BLKmode. Handle
13404 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
13405 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
13406 for -mcmodel=medium.
13407 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
13408 override user -mfp-in-toc or -msum-in-toc. Default to
13409 -mno-fp-in-toc for -mcmodel=medium.
13410
73310b0e
DD
134112013-06-06 DJ Delorie <dj@redhat.com>
13412
13413 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
13414 TARGET_VALID_POINTER_MODE.
13415
0bd62dca 134162013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13417 Pat Haugen <pthaugen@us.ibm.com>
13418 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
13419
13420 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13421 Document new power8 builtins.
13422
13423 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
13424 condition code register, to allow 128-bit logical operations to be
13425 done in the VSX or GPR registers.
13426 (nor<mode>3): Use the canonical form for nor.
13427 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
13428 vclz*, and vpopcnt* vector instructions.
13429 (nand<mode>3): Likewise.
13430 (orc<mode>3): Likewise.
13431 (clz<mode>2): LIkewise.
13432 (popcount<mode>2): Likewise.
13433
13434 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
13435 that only the GPRs are recognized.
13436
13437 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13438 support for new power8 builtins.
13439
13440 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
13441 builtin functions.
13442 (xscvdpspn): Likewise.
13443 (vclz): Likewise.
13444 (vclzb): Likewise.
13445 (vclzh): Likewise.
13446 (vclzw): Likewise.
13447 (vclzd): Likewise.
13448 (vpopcnt): Likewise.
13449 (vpopcntb): Likewise.
13450 (vpopcnth): Likewise.
13451 (vpopcntw): Likewise.
13452 (vpopcntd): Likewise.
13453 (vgbbd): Likewise.
13454 (vmrgew): Likewise.
13455 (vmrgow): Likewise.
13456 (eqv): Likewise.
13457 (eqv_v16qi3): Likewise.
13458 (eqv_v8hi3): Likewise.
13459 (eqv_v4si3): Likewise.
13460 (eqv_v2di3): Likewise.
13461 (eqv_v4sf3): Likewise.
13462 (eqv_v2df3): Likewise.
13463 (nand): Likewise.
13464 (nand_v16qi3): Likewise.
13465 (nand_v8hi3): Likewise.
13466 (nand_v4si3): Likewise.
13467 (nand_v2di3): Likewise.
13468 (nand_v4sf3): Likewise.
13469 (nand_v2df3): Likewise.
13470 (orc): Likewise.
13471 (orc_v16qi3): Likewise.
13472 (orc_v8hi3): Likewise.
13473 (orc_v4si3): Likewise.
13474 (orc_v2di3): Likewise.
13475 (orc_v4sf3): Likewise.
13476 (orc_v2df3): Likewise.
13477
13478 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
13479 allow power8 quad mode in 64-bit.
13480 (rs6000_builtin_vectorized_function): Add support to vectorize
13481 ISA 2.07 count leading zeros, population count builtins.
13482 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
13483 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
13484 (builtin_function_type): Add vgbbd builtin function which takes an
13485 unsigned argument.
13486 (altivec_expand_vec_perm_const): Add support for new power8 merge
13487 instructions.
13488
13489 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
13490 that does not include TImdoe for use with 32-bit.
13491 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
13492 instructions.
13493 (UNSPEC_VSX_CVDPSPN): Likewise.
13494 (vsx_xscvdpspn): Likewise.
13495 (vsx_xscvspdpn): Likewise.
13496 (vsx_xscvdpspn_scalar): Likewise.
13497 (vsx_xscvspdpn_directmove): Likewise.
13498 (vsx_and<mode>3): Split logical operations into 32-bit and
13499 64-bit. Add support to do logical operations on TImode as well as
13500 VSX vector types. Allow logical operations to be done in either
13501 VSX registers or in general purpose registers in 64-bit mode. Add
13502 splitters if GPRs were used. For AND, add clobber of CCmode to
13503 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
13504 encoding.
13505 (vsx_and<mode>3_32bit): Likewise.
13506 (vsx_and<mode>3_64bit): Likewise.
13507 (vsx_ior<mode>3): Likewise.
13508 (vsx_ior<mode>3_32bit): Likewise.
13509 (vsx_ior<mode>3_64bit): Likewise.
13510 (vsx_xor<mode>3): Likewise.
13511 (vsx_xor<mode>3_32bit): Likewise.
13512 (vsx_xor<mode>3_64bit): Likewise.
13513 (vsx_one_cmpl<mode>2): Likewise.
13514 (vsx_one_cmpl<mode>2_32bit): Likewise.
13515 (vsx_one_cmpl<mode>2_64bit): Likewise.
13516 (vsx_nor<mode>3): Likewise.
13517 (vsx_nor<mode>3_32bit): Likewise.
13518 (vsx_nor<mode>3_64bit): Likewise.
13519 (vsx_andc<mode>3): Likewise.
13520 (vsx_andc<mode>3_32bit): Likewise.
13521 (vsx_andc<mode>3_64bit): Likewise.
13522 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
13523 and xxlorc instructions.
13524 (vsx_eqv<mode>3_64bit): Likewise.
13525 (vsx_nand<mode>3_32bit): Likewise.
13526 (vsx_nand<mode>3_64bit): Likewise.
13527 (vsx_orc<mode>3_32bit): Likewise.
13528 (vsx_orc<mode>3_64bit): Likewise.
13529
13530 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
13531
13532 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
13533 instruction.
13534 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
13535 (p8_vmrgow): Likewise.
13536 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
13537 GPRs to be split under VSX.
13538 (p8v_clz<mode>2): Add power8 count leading zero support.
13539 (p8v_popcount<mode>2): Add power8 population count support.
13540 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
13541 support.
13542
13543 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
13544 instruction.
13545
13546 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
13547 builtin functions.
13548 (vec_nand): Likewise.
13549 (vec_vclz): Likewise.
13550 (vec_vclzb): Likewise.
13551 (vec_vclzd): Likewise.
13552 (vec_vclzh): Likewise.
13553 (vec_vclzw): Likewise.
13554 (vec_vgbbd): Likewise.
13555 (vec_vmrgew): Likewise.
13556 (vec_vmrgow): Likewise.
13557 (vec_vpopcnt): Likewise.
13558 (vec_vpopcntb): Likewise.
13559 (vec_vpopcntd): Likewise.
13560 (vec_vpopcnth): Likewise.
13561 (vec_vpopcntw): Likewise.
13562
37684c46
VM
135632013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13564
13565 PR rtl-optimization/57468
13566 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
13567 spilled pseudos.
13568
d89ae27c
VM
135692013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13570
13571 PR rtl-optimization/57459
13572 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
13573 type when setting live regs.
13574
3597e113
VM
135752013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13576
13577 * config/s390/s390.opt (mlra): New option.
13578 * config/s390/s390.c (s390_decompose_address): Check displacement
13579 for all registers for LRA.
13580 (s390_secondary_reload): Don't used secondary reloads for LRA.
13581 (s390_lra_p): New function.
13582 (TARGET_LRA_P): Define.
13583 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
13584 of attribute cpu_facility to zarch for the last alternative.
13585 (*cmpmem_short): Ditto.
13586
01037aeb
EB
135872013-06-06 Eric Botcazou <ebotcazou@adacore.com>
13588
13589 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
13590 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
13591 (arm_expand_prologue): Likewise.
13592
3371a64f
TJ
135932013-06-06 Teresa Johnson <tejohnson@google.com>
13594
13595 PR c++/53743
13596 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
13597 as this is now done by redirect_edge_and_branch_force.
13598 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
13599 barriers, and fix interaction with splitting.
13600 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
13601 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
13602 reflect changes made in the routine.
13603 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
13604 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
13605 since this is called in cfglayout mode, and replace partition fixup
13606 with assert as that is now done by force_nonfallthru_and_redirect.
13607 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
13608 already be marked with region crossing note.
13609 (insert_section_boundary_note): Make non-static, gate on flag
13610 has_bb_partition, rewrite to also check for multiple partitions.
13611 (rest_of_handle_reorder_blocks): Remove call to
13612 insert_section_boundary_note, now done later during free_cfg.
13613 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
13614 * bb-reorder.h (insert_section_boundary_note): Declare.
13615 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
13616 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
13617 invoke insert_section_boundary_note.
13618 (try_redirect_by_replacing_jump): Remove unnecessary
13619 check for region crossing note.
13620 (fixup_partition_crossing): New function.
13621 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
13622 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
13623 in non-cfglayout mode.
13624 (force_nonfallthru_and_redirect): Fixup partition boundaries,
13625 remove old code that tried to do this. Emit barrier correctly
13626 when we are in cfglayout mode.
13627 (last_bb_in_partition): New function.
13628 (rtl_split_edge): Correctly fixup partition boundaries.
13629 (commit_one_edge_insertion): Remove old code that tried to
13630 fixup region crossing edge since this is now handled in
13631 split_block, and set up insertion point correctly since
13632 block may now end in a jump.
13633 (verify_hot_cold_block_grouping): Guard against checking when not in
13634 linearized RTL mode.
13635 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
13636 notes.
13637 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
13638 rtl_verify_flow_info, so not called in cfglayout mode.
13639 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
13640 (fixup_reorder_chain): Remove old code that attempted to fixup region
13641 crossing note as this is now handled in force_nonfallthru_and_redirect.
13642 (duplicate_insn_chain): Don't duplicate switch section notes.
13643 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
13644 note.
13645 * basic-block.h (emit_barrier_after_bb): Declare.
13646
66071e10
KT
136472013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13648
13649 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
13650 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
13651 arm_usatsihi): Adjust alternatives for arm_restrict_it.
13652
0e26bf3d
KT
136532013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13654
13655 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
13656 where appropriate.
13657 * config/arm/ldmstm.md: Regenerate.
13658
12b4e7ef
KT
136592013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13660
13661 * config/arm/sync.md (atomic_loaddi_1):
13662 Disable predication for arm_restrict_it.
13663 (arm_load_exclusive<mode>): Likewise.
13664 (arm_load_exclusivesi): Likewise.
13665 (arm_load_exclusivedi): Likewise.
13666 (arm_load_acquire_exclusive<mode>): Likewise.
13667 (arm_load_acquire_exclusivesi): Likewise.
13668 (arm_load_acquire_exclusivedi): Likewise.
13669 (arm_store_exclusive<mode>): Likewise.
13670 (arm_store_exclusive<mode>): Likewise.
13671 (arm_store_release_exclusivedi): Likewise.
13672 (arm_store_release_exclusive<mode>): Likewise.
13673
15d16c8a
RB
136742013-06-06 Richard Biener <rguenther@suse.de>
13675
13676 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
13677 after LTO_null.
13678 (lto_tag_is_tree_code_p): Adjust.
13679 (lto_tag_is_gimple_code_p): Likewise.
13680 (lto_gimple_code_to_tag): Likewise.
13681 (lto_tag_to_gimple_code): Likewise.
13682 (lto_tree_code_to_tag): Likewise.
13683 (lto_tag_to_tree_code): Likewise.
13684 * data-streamer.h (streamer_write_hwi_in_range): Use
13685 uhwi streaming to stream the normalized range.
13686 (streamer_read_hwi_in_range): Likewise.
13687
17a7fc37
KT
136882013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13689
13690 * config/arm/arm.md (enabled_for_depr_it): New attribute.
13691 (predicable_short_it): Likewise.
13692 (predicated): Likewise.
13693 (enabled): Handle above.
13694 (define_cond_exec): Set predicated attribute to yes.
13695
b57ca59b
MS
136962013-06-05 Mike Stump <mikestump@comcast.net>
13697
13698 * gdbinit.in (__FUNCTION__): Add.
13699
c1e183a9
UB
137002013-06-05 Uros Bizjak <ubizjak@gmail.com>
13701
13702 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
13703 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
13704
0378bddb
JH
137052013-06-05 Jan Hubicka <jh@suse.cz>
13706
13707 * varasm.c (mark_decl_referenced): Revert the removal until targets
13708 are fixed.
13709
8f8a2057
DE
137102013-06-05 David Edelsohn <dje.gcc@gmail.com>
13711
13712 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
13713 instead of mark_decl_referenced.
13714
edb983b2
JH
137152013-06-05 Jan Hubicka <jh@suse.cz>
13716
13717 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
13718 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
13719 and symtab_used_from_object_file_p.
13720 (cgraph_make_node_local_1): Clear forced_by_abi.
13721 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
13722 * cgraph.h (symtab_node_base): Add forced_by_abi.
13723 (decide_is_variable_needed): Remove.
13724 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
13725 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
13726 (decide_is_symbol_needed): ... this one; handle symbols in general;
13727 always analyze virtuals; honnor forced_by_abi.
13728 (cgraph_finalize_function): Update.
13729 (varpool_finalize_decl): Update.
13730 (symbol_defined_and_needed): Remove.
13731 (analyze_functions): Update.
13732 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13733 output_refs, input_overwrite_node): Handle forced_by_abi.
13734 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
13735 (address_taken_from_non_vtable_p): ... this one.
13736 (comdat_can_be_unshared_p_1): New function.
13737 (cgraph_comdat_can_be_unshared_p): Rename to ...
13738 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
13739 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
13740 (function_and_variable_visibility): Clear forced_by_abi as needed.
13741 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
13742 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
13743 * symtab.c (dump_symtab_base): Dump forced_by_abi.
13744 * varpool.c (decide_is_variable_needed): Remove.
13745
9912dbe5
KT
137462013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13747
13748 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
13749 (arm_option_override): Override arm_restrict_it where appropriate.
13750 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
13751 * config/arm/arm.opt (mrestrict-it): New command-line option.
13752 * doc/invoke.texi: Document -mrestrict-it.
13753
34c136b6
DM
137542013-06-05 David Malcolm <dmalcolm@redhat.com>
13755
13756 * tsan.c (tsan_atomic_table): Make const.
13757
a367df53
RB
137582013-06-05 Richard Biener <rguenther@suse.de>
13759
13760 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
13761 index associated with the tree we are supposed to replace.
13762 * tree-streamer-out.c (pack_ts_base_value_fields): Output
13763 TREE_ASM_WRITTEN as zero for everything but SSA names.
13764
70d51a19
DM
137652013-06-05 David Malcolm <dmalcolm@redhat.com>
13766
13767 * tree-ssa-structalias.c (call_stmt_vars): Make static.
13768
b9bd2075
JH
137692013-06-04 Jan Hubicka <jh@suse.cz>
13770
13771 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
13772 (input_node, input_varpool_node): Handle correctly external same
13773 body aliases.
13774 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
13775 nodes at ltrans stage.
13776
aaae719d
JH
137772013-06-04 Jan Hubicka <jh@suse.cz>
13778
13779 * ipa-inline.c (update_caller_keys): Fix availability test.
13780 (update_callee_keys): Likewise.
13781 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
13782 to follow ELF standard.
13783
107eea2c
JU
137842013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
13785
13786 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
13787 (mips64r5900el-*-elf*): New configurations.
13788 * config/mips/mips-cpus.def (r5900): New processor.
13789 * config/mips/mips-tables.opt: Regenerate.
13790 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
13791 (mips_issue_rate): Handle PROCESSOR_R5900.
13792 (mips_reorg_process_insns): Force reorder mode for the R5900.
13793 * config/mips/mips.h (TARGET_MIPS5900): Define.
13794 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
13795 TARGET_MIPS5900.
13796 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
13797 TARGET_MIPS5900.
13798 * config/mips/mips.md (processor): Add r5900.
13799 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
13800
b7342d25
IB
138012013-06-04 Ian Bolton <ian.bolton@arm.com>
13802
13803 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
13804 into function to generate MOVI instruction.
c1e183a9 13805 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
13806 (aarch64_preferred_simd_mode): Turn into wrapper.
13807 (aarch64_output_scalar_simd_mov_immediate): New function.
13808 * config/aarch64/aarch64-protos.h: Add prototype for above.
13809
81c2dfb9
IB
138102013-06-04 Ian Bolton <ian.bolton@arm.com>
13811
13812 * config/aarch64/aarch64.c (simd_immediate_info): Remove
13813 element_char member.
13814 (sizetochar): Return signed char.
13815 (aarch64_simd_valid_immediate): Remove elchar and other
13816 unnecessary variables.
13817 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
13818 Calculate element_char as required.
13819 * config/aarch64/aarch64-protos.h: Update and move prototype
13820 for aarch64_output_simd_mov_immediate.
13821 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
13822 Update arguments.
13823
48063b9d
IB
138242013-06-04 Ian Bolton <ian.bolton@arm.com>
13825
13826 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
13827 information completed by aarch64_simd_valid_immediate.
13828 (aarch64_legitimate_constant_p): Update arguments.
13829 (aarch64_simd_valid_immediate): Work with struct rather than many
13830 pointers.
13831 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
13832 (aarch64_simd_make_constant): Update arguments.
13833 (aarch64_output_simd_mov_immediate): Work with struct rather than
13834 many pointers. Output immediate directly rather than as operand.
13835 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13836 Update prototype.
13837 * config/aarch64/constraints.md (Dn): Update arguments.
13838
3ea63f60
IB
138392013-06-04 Ian Bolton <ian.bolton@arm.com>
13840
13841 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
13842 longer static.
13843 (aarch64_simd_immediate_valid_for_move): Remove.
13844 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
13845 (aarch64_simd_make_constant): Update call.
13846 (aarch64_output_simd_mov_immediate): Update call.
13847 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13848 Add prototype.
13849 * config/aarch64/constraints.md (Dn): Update call.
13850
d8edd899
IB
138512013-06-04 Ian Bolton <ian.bolton@arm.com>
13852
13853 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
13854 return type to bool for prototype.
13855 (aarch64_legitimate_constant_p): Check for true instead of not -1.
13856 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
13857 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
13858
44b20bb8
CM
138592013-06-04 Catherine Moore <clm@codesourcery.com>
13860
13861 * config/mips/mips.opt (meva): New.
c1e183a9 13862 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
13863 (ASM_SPEC): Handle -meva.
13864 * doc/invoke.texi (meva): Document.
13865
52befbd8
AM
138662013-06-04 Alan Modra <amodra@gmail.com>
13867
13868 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
13869 constant output.
13870
aadaf24e
KT
138712013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13872
13873 * rtl.def: Add extra fourth optional field to define_cond_exec.
13874 * gensupport.c (process_one_cond_exec): Process attributes from
13875 define_cond_exec.
13876 * doc/md.texi: Document fourth field in define_cond_exec.
13877
0cd9e9ee
EB
138782013-06-04 Eric Botcazou <ebotcazou@adacore.com>
13879
13880 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
13881 out the processing order as in store_bit_field_1.
13882
cb0f665d
JH
138832013-06-04 Jan Hubicka <jh@suse.cz>
13884
13885 PR middle-end/57500
13886 * cgraphunit.c (cgraph_process_same_body_aliases): Create
13887 non-VAR_DECL node if it does not exist yet.
13888
53984b9b
RS
138892013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
13890
13891 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
13892 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
13893 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
13894 target_cpu_default setting.
13895
5d318fd4
TJ
138962013-06-03 Teresa Johnson <tejohnson@google.com>
13897
13898 * dumpfile.c (opt_info_switch_p): Change -fopt-info
13899 default to -fopt-info=optimized instead of all.
13900 * doc/invoke.texi: Ditto.
13901 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
13902 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
13903 (execute_vect_slp): Emit BB vectorization success under
13904 MSG_OPTIMIZED_LOCATIONS.
13905 * tree-vect-slp.c (vect_slp_transform_bb): Change
13906 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
13907 * tree-vect-loop.c (vect_transform_loop): Ditto.
13908
ec3af349
JM
139092013-06-03 Jason Merrill <jason@redhat.com>
13910
13911 PR c++/57415
13912 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13913 Use TARGET_EXPR for C++.
13914
1baf9159
JJ
139152013-06-03 Jakub Jelinek <jakub@redhat.com>
13916
13917 PR rtl-optimization/57268
0cd9e9ee 13918 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
13919 if DEBUG_INSN_P (insn).
13920
13921 Reapply
13922 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
13923
13924 PR rtl-optimization/57268
13925 * sched-deps.c (sched_analyze_2): Flush dependence lists if
13926 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
13927
0f1d3965
YR
139282013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
13929
13930 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
13931 (ix86_avoid_lea_for_addr): Likewise.
13932 (exact_dependency_1): Likewise.
13933 (ix86_adjust_cost): Likewise.
13934 (swap_top_of_ready_list): Fix formatting and !reload_completed check
13935 removed.
13936 (do_reorder_for_imul): Fix typo, formatting and
13937 !reload_completed check removed.
13938 (ix86_sched_reorder): Fix typo and formatting.
13939 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
13940 list.
13941
3bc30db4
SN
139422013-06-03 Sofiane Naci <sofiane.naci@arm.com>
13943
13944 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
13945
19cc6fac
EB
139462013-06-03 Eric Botcazou <ebotcazou@adacore.com>
13947
13948 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
13949 <STRING_CST>: Likewise.
13950 <VECTOR_CST>: Likewise.
13951
c68a6e08
JW
139522013-06-01 Janus Weil <janus@gcc.gnu.org>
13953 Mikael Morin <mikael@gcc.gnu.org>
13954
13955 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
13956 * config.in: Regenerated.
13957 * configure: Regenerated.
13958
38e55e5c
JH
139592013-06-01 Jan Hubicka <jh@suse.cz>
13960
13961 PR middle-end/57366
13962 * cgraphunit.c (compile): When weakref is not supported,
13963 set up transparent aliases before final output pass.
13964 * varasm.c (assemble_alias): Do not try to do it here.
13965
eb51d2ff
JH
139662013-06-01 Jan Hubicka <jh@suse.cz>
13967
13968 PR middle-end/57467
13969 * passes.c (for_per_function): Skip unanalyzed functions.
13970
40a7fe1e
JH
139712013-06-01 Jan Hubicka <jh@suse.cz>
13972
13973 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
13974 (lto_symtab_merge_symbols_1): ... this one.
13975 (lto_symtab_merge_cgraph_nodes): Rename to ...
13976 (lto_symtab_merge_symbols): ... this one; simplify.
13977 * cgraph.c (same_body_aliases_done): Rename to ...
13978 (cpp_implicit_aliases_done): ... this one.
13979 (cgraph_create_function_alias): Update.
13980 (cgraph_same_body_alias): Update.
c1e183a9 13981 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 13982 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 13983 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
13984 (cgraph_node): Remove same_body_alias.
13985 (varpool_node): Remove alias_of and extra_name_alias.
13986 (same_body_aliases_done): Rename to ..
13987 (cpp_implicit_aliases_done): ... this one.
13988 (symtab_alias_ultimate_target): Add default parameter.
13989 (symtab_resolve_alias): New function.
13990 (fixup_same_cpp_alias_visibility): Declare.
13991 (cgraph_function_node): Add default parameter.
13992 (cgraph_node_asm_name): Likewise.
13993 (cgraph_function_or_thunk_node): Add default parameter; do
13994 not ICE when it is NULL.
13995 (varpool_variable_node): Likewise.
13996 * tree-emutls.c (create_emultls_var): Update.
13997 (ipa_lower_emutls): Update.
13998 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
13999 (cgraph_reset_node): Reset alias info.
14000 (cgraph_finalize_function): Update.
14001 (fixup_same_cpp_alias_visibility): Move to symtab.c.
14002 (analyze_function): Simplify.
14003 (cgraph_process_same_body_aliases): Simplify.
14004 (analyze_functions): Fixup same body aliases.
14005 (handle_alias_pairs): Simplify.
14006 (assemble_thunk): Update.
14007 (assemble_thunks_and_aliases): Update.
14008 (output_weakrefs): Rewrite.
14009 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
14010 (lto_output_varpool_node): Likewise.
14011 (compute_ltrans_boundary): Remve assert.
14012 (get_alias_symbol): New functoin.
14013 (input_node): Rewrite alias handling.
14014 (input_varpool_node): Likewise.
14015 * ipa-pure-const.c (propagate_pure_const): Fix formating.
14016 * ipa.c (process_references): Handle weakrefs correctly.
14017 (symtab_remove_unreachable_nodes): Likewise.
14018 * trans-mem.c (get_cg_data): Update.
14019 (ipa_tm_create_version_alias): Update.
14020 (ipa_tm_execute): Update.
14021 * symtab.c (dump_symtab_base): Dump aliases.
14022 (verify_symtab_base): Verify aliases.
14023 (symtab_node_availability): New function.
14024 (symtab_alias_ultimate_target): Simplify.
14025 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
14026 handle all the fixup cases.
14027 (symtab_resolve_alias): New function.
14028 * passes.c (ipa_write_summaries): Handle weakrefs.
14029 * varpool.c (varpool_analyze_node): Simplify.
14030 (assemble_aliases): Update.
14031 (varpool_create_variable_alias): Simplify.
14032 (varpool_extra_name_alias): Simplify.
14033 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
14034 (lto_symtab_merge_symbols): ... this one.
14035
21759881
DT
140362013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
14037
14038 Revert
14039 PR rtl-optimization/57268
14040 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14041 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14042
daf4e940
TB
140432013-06-01 Tobias Burnus <burnus@net-b.de>
14044
14045 Partially reverted:
14046 2013-05-31 Tobias Burnus <burnus@net-b.de>
14047
14048 PR middle-end/57073
14049 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
14050 further up.
14051
c359d8d0
DT
140522013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
14053
14054 PR rtl-optimization/57268
14055 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14056 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14057
4172215d
EB
140582013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14059
14060 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
14061 unordered comparison operators when -fno-trapping-math is in effect
14062 on the e500.
14063 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
14064 and implement unordered comparison operators properly on the e500.
14065
a8c50132
EB
140662013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14067
14068 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
14069 for constant scalar integers.
14070 (simplify_relational_operation_1): Likewise.
14071
44626634
SB
140722013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
14073
14074 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
14075 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
14076 Fix comment.
14077
55805e54
YR
140782013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14079 Igor Zamyatin <igor.zamyatin@intel.com>
14080
14081 Silvermont (SLM) architecture performance tuning.
14082 * config/i386/i386.h (enum ix86_tune_indices): Add
14083 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
14084 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
14085
14086 * config/i386/i386.c (initial_ix86_tune_features)
14087 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
14088 (ix86_lea_outperforms): Handle Silvermont tuning.
14089 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
14090 call.
14091 (ix86_use_lea_for_mov): Likewise.
14092 (ix86_avoid_lea_for_addr): Likewise.
14093 (ix86_lea_for_add_ok): Likewise.
14094 (exact_dependency_1): New function.
14095 (exact_store_load_dependency): Likewise.
14096 (ix86_adjust_cost): Handle Silvermont tuning.
14097 (do_reoder_for_imul): Likewise.
14098 (swap_top_of_ready_list): New function.
14099 (ix86_sched_reorder): Changed to handle Silvermont tuning.
14100
14101 * config/i386/i386.md (peepholes that split memory operand in fp
14102 converts): New.
14103
e19c9de2
MS
141042013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14105
14106 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14107 Remove un-necessary braces.
14108
38e6c9a6
MS
141092013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14110
14111 * config/aarch64/aarch64.c (aarch64_classify_symbol):
14112 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
14113
e3530904
TB
141142013-05-31 Tobias Burnus <burnus@net-b.de>
14115
14116 PR middle-end/57073
c1e183a9 14117 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 14118
b6af05a9
KT
141192013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14120
14121 PR target/56315
14122 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
14123 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
14124 * config/arm/neon.md (iordi3_neon): Remove.
14125 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
14126 * config/arm/predicates.md (imm_for_neon_logic_operand):
14127 Move to earlier in the file.
14128 (neon_logic_op2): Likewise.
14129 (arm_iordi_operand_neon): New predicate.
14130
f800c166
RB
141312013-05-31 Richard Biener <rguenther@suse.de>
14132
14133 PR tree-optimization/57478
14134 PR tree-optimization/57453
14135 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
14136 are life as well.
14137
e571fa59
KP
141382013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14139
14140 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
14141 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
14142
0fa6e0ef
TB
141432013-05-30 Tobias Burnus <burnus@net-b.de>
14144 Thomas Koenig <tkoenig@gcc.gnu.org>
14145
14146 PR middle-end/57073
14147 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
14148 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
14149
4688ddf5
SB
141502013-05-30 Steven Bosscher <steven@gcc.gnu.org>
14151
0fa6e0ef 14152 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 14153
3b9ceb4b
VM
141542013-05-30 Vladimir Makarov <vmakarov@redhat.com>
14155
14156 * target.def (register_usage_leveling_p): New hook.
14157 * targhooks.c (default_register_usage_leveling_p): New.
14158 * targhooks.h (default_register_usage_leveling_p): New prototype.
14159 * lra-assigns.c (register_usage_leveling_p): Use the hook.
14160 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
14161 * doc/tm.texi: Update.
14162 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
14163
65f9e789
IB
141642013-05-30 Ian Bolton <ian.bolton@arm.com>
14165
14166 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
14167 (*insv_reg<mode>): New define_insn.
14168
12211b99 141692013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
14170
14171 PR rtl-optimization/57439
14172 * postreload.c (move2add_valid_value_p): Check that we have
14173 a zero subreg_regno_offset when accessing the register in
14174 the requested mode.
14175
0b871ccf
YR
141762013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14177 Igor Zamyatin <igor.zamyatin@intel.com>
14178
14179 Silvermont (SLM) architecture pipeline model, tuning and
14180 insn selection.
14181 * config.gcc: Add slm config options and target.
14182
14183 * config/i386/slm.md: New.
14184
14185 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
14186
f43245d1 14187 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
14188 PROCESSOR_SLM.
14189 (ix86_target_macros_internal): Likewise.
14190
f43245d1 14191 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
14192 (m_SLM): New macro flag.
14193 (initial_ix86_tune_features): Set m_SLM.
14194 (x86_accumulate_outgoing_args): Likewise.
14195 (x86_arch_always_fancy_math_387): Likewise.
14196 (processor_target_table): Add slm cost.
14197 (cpu_names): Add slm cpu name.
14198 (x86_option_override_internal): Set SLM ISA.
14199 (ix86_issue_rate): New case PROCESSOR_SLM.
14200 (ia32_multipass_dfa_lookahead): Likewise.
14201 (fold_builtin_cpu): Add slm.
14202
14203 * config/i386/i386.h (TARGET_SLM): New target macro.
14204 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
14205 (processor_type): Add PROCESSOR_SLM.
14206
14207 * config/i386/i386.md (cpu): Add new value "slm".
14208 (slm.md): Include slm.md.
14209
24d5b097
XG
142102013-05-30 Bernd Schmidt <bernds@codesourcery.com>
14211 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14212
14213 * config/arm/arm-protos.h: Add and update function protos.
14214 * config/arm/arm.c (use_simple_return_p): New added.
14215 (thumb2_expand_return): Check simple_return flag.
14216 * config/arm/arm.md: Add simple_return and conditional simple_return.
14217 * config/arm/iterators.md: Add iterator for return and simple_return.
14218
c1cccc15
ZC
142192013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14220
14221 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
14222 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
14223 (arm_emit_vfp_multi_reg_pop): Likewise.
14224 (thumb2_emit_ldrd_pop): Likewise.
14225 (arm_expand_epilogue): Add misc REG_CFA notes.
14226 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
14227
3a4f280b
LC
142282013-05-29 Lawrence Crowl <crowl@google.com>
14229
14230 * config/arm/t-arm: Update for below.
14231
14232 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
14233 Change type to hash_table. Update dependent calls and types.
14234
14235 * config/i386/t-cygming: Update for below.
14236
14237 * config/i386/t-interix: Update for below.
14238
14239 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
14240 Change type to hash_table. Update dependent calls and types.
14241 (i386_find_on_wrapper_list::wrappers): Likewise.
14242
14243 * config/ia64/t-ia64: Update for below.
14244
14245 * config/ia64/ia64.c (bundle_state_table):
14246 Change type to hash_table. Update dependent calls and types.
14247
14248 * config/mips/mips.c (mips_reorg_process_insns::htab):
14249 Change type to hash_table. Update dependent calls and types.
14250
14251 * config/sol2.c (solaris_comdat_htab):
14252 Change type to hash_table. Update dependent calls and types.
14253
14254 * config/t-sol2: Update for above.
14255
1388a0e3
TJ
142562013-05-29 Teresa Johnson <tejohnson@google.com>
14257
14258 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
14259 functions are not yet marked as defined.
14260
a5965b52 142612013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14262 Pat Haugen <pthaugen@us.ibm.com>
14263 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
14264
14265 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
14266 instructions.
14267 (VEC_A): Likewise.
14268 (VEC_C): Likewise.
14269 (vrotl<mode>3): Likewise.
14270 (vashl<mode>3): Likewise.
14271 (vlshr<mode>3): Likewise.
14272 (vashr<mode>3): Likewise.
14273
14274 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14275 support for power8 V2DI builtins.
14276
14277 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
14278 power8 V2DI builtins.
14279 (vupkhsw): Likewise.
14280 (vupklsw): Likewise.
14281 (vaddudm): Likewise.
14282 (vminsd): Likewise.
14283 (vmaxsd): Likewise.
14284 (vminud): Likewise.
14285 (vmaxud): Likewise.
14286 (vpkudum): Likewise.
14287 (vpksdss): Likewise.
14288 (vpkudus): Likewise.
14289 (vpksdus): Likewise.
14290 (vrld): Likewise.
14291 (vsld): Likewise.
14292 (vsrd): Likewise.
14293 (vsrad): Likewise.
14294 (vsubudm): Likewise.
14295 (vcmpequd): Likewise.
14296 (vcmpgtsd): Likewise.
14297 (vcmpgtud): Likewise.
14298 (vcmpequd_p): Likewise.
14299 (vcmpgtsd_p): Likewise.
14300 (vcmpgtud_p): Likewise.
14301 (vupkhsw): Likewise.
14302 (vupklsw): Likewise.
14303 (vaddudm): Likewise.
14304 (vmaxsd): Likewise.
14305 (vmaxud): Likewise.
14306 (vminsd): Likewise.
14307 (vminud): Likewise.
14308 (vpksdss): Likewise.
14309 (vpksdus): Likewise.
14310 (vpkudum): Likewise.
14311 (vpkudus): Likewise.
14312 (vrld): Likewise.
14313 (vsld): Likewise.
14314 (vsrad): Likewise.
14315 (vsrd): Likewise.
14316 (vsubudm): Likewise.
14317
14318 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
14319 support for power8 V2DI instructions.
14320
14321 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
14322 power8 V2DI instructions. Combine pack and unpack insns to use an
14323 iterator for each mode. Check whether a particular mode supports
14324 Altivec instructions instead of just checking TARGET_ALTIVEC.
14325 (UNSPEC_VPKUWUM): Likewise.
14326 (UNSPEC_VPKSHSS): Likewise.
14327 (UNSPEC_VPKSWSS): Likewise.
14328 (UNSPEC_VPKUHUS): Likewise.
14329 (UNSPEC_VPKSHUS): Likewise.
14330 (UNSPEC_VPKUWUS): Likewise.
14331 (UNSPEC_VPKSWUS): Likewise.
14332 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
14333 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
14334 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
14335 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
14336 (UNSPEC_VUPKHSB): Likewise.
14337 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
14338 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
14339 (UNSPEC_VUPKHSH): Likewise.
14340 (UNSPEC_VUPKLSB): Likewise.
14341 (UNSPEC_VUPKLSH): Likewise.
14342 (VI2): Likewise.
14343 (VI_char): Likewise.
14344 (VI_scalar): Likewise.
14345 (VI_unit): Likewise.
14346 (VP): Likewise.
14347 (VP_small): Likewise.
14348 (VP_small_lc): Likewise.
14349 (VU_char): Likewise.
14350 (add<mode>3): Likewise.
14351 (altivec_vaddcuw): Likewise.
14352 (altivec_vaddu<VI_char>s): Likewise.
14353 (altivec_vadds<VI_char>s): Likewise.
14354 (sub<mode>3): Likewise.
14355 (altivec_vsubcuw): Likewise.
14356 (altivec_vsubu<VI_char>s): Likewise.
14357 (altivec_vsubs<VI_char>s): Likewise.
14358 (altivec_vavgs<VI_char>): Likewise.
14359 (altivec_vcmpbfp): Likewise.
14360 (altivec_eq<mode>): Likewise.
14361 (altivec_gt<mode>): Likewise.
14362 (altivec_gtu<mode>): Likewise.
14363 (umax<mode>3): Likewise.
14364 (smax<mode>3): Likewise.
14365 (umin<mode>3): Likewise.
14366 (smin<mode>3): Likewise.
14367 (altivec_vpkuhum): Likewise.
14368 (altivec_vpkuwum): Likewise.
14369 (altivec_vpkshss): Likewise.
14370 (altivec_vpkswss): Likewise.
14371 (altivec_vpkuhus): Likewise.
14372 (altivec_vpkshus): Likewise.
14373 (altivec_vpkuwus): Likewise.
14374 (altivec_vpkswus): Likewise.
14375 (altivec_vpks<VI_char>ss): Likewise.
14376 (altivec_vpks<VI_char>us): Likewise.
14377 (altivec_vpku<VI_char>us): Likewise.
14378 (altivec_vpku<VI_char>um): Likewise.
14379 (altivec_vrl<VI_char>): Likewise.
14380 (altivec_vsl<VI_char>): Likewise.
14381 (altivec_vsr<VI_char>): Likewise.
14382 (altivec_vsra<VI_char>): Likewise.
14383 (altivec_vsldoi_<mode>): Likewise.
14384 (altivec_vupkhsb): Likewise.
14385 (altivec_vupkhs<VU_char>): Likewise.
14386 (altivec_vupkls<VU_char>): Likewise.
14387 (altivec_vupkhsh): Likewise.
14388 (altivec_vupklsb): Likewise.
14389 (altivec_vupklsh): Likewise.
14390 (altivec_vcmpequ<VI_char>_p): Likewise.
14391 (altivec_vcmpgts<VI_char>_p): Likewise.
14392 (altivec_vcmpgtu<VI_char>_p): Likewise.
14393 (abs<mode>2): Likewise.
14394 (vec_unpacks_hi_v16qi): Likewise.
14395 (vec_unpacks_hi_v8hi): Likewise.
14396 (vec_unpacks_lo_v16qi): Likewise.
14397 (vec_unpacks_hi_<VP_small_lc>): Likewise.
14398 (vec_unpacks_lo_v8hi): Likewise.
14399 (vec_unpacks_lo_<VP_small_lc>): Likewise.
14400 (vec_pack_trunc_v8h): Likewise.
14401 (vec_pack_trunc_v4si): Likewise.
14402 (vec_pack_trunc_<mode>): Likewise.
14403
14404 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
14405 V2DI builtins.
14406 (vec_vmaxsd): Likewise.
14407 (vec_vmaxud): Likewise.
14408 (vec_vminsd): Likewise.
14409 (vec_vminud): Likewise.
14410 (vec_vpksdss): Likewise.
14411 (vec_vpksdus): Likewise.
14412 (vec_vpkudum): Likewise.
14413 (vec_vpkudus): Likewise.
14414 (vec_vrld): Likewise.
14415 (vec_vsld): Likewise.
14416 (vec_vsrad): Likewise.
14417 (vec_vsrd): Likewise.
14418 (vec_vsubudm): Likewise.
14419 (vec_vupkhsw): Likewise.
14420 (vec_vupklsw): Likewise.
14421
e70670cf
JH
144222013-05-29 Jan Hubicka <jh@suse.cz>
14423
14424 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
14425 flags; reorder rest of fields in more consistent way.
14426 (varpool_node): Remove analyzed, finalized and alias.
14427 (cgraph_ndoe): Likewise.
14428 (symtab_alias_ultimate_target): New function.
14429 (cgraph_function_node): Move offline.
14430 (cgraph_reset_node): Declare.
14431 (cgraph_comdat_can_be_unshared_p): Remove.
14432 (varpool_remove_initializer): Declare.
14433 (varpool_first_defined_variable, varpool_next_defined_variable
14434 cgraph_first_defined_function, cgraph_next_defined_function): Update.
14435 (cgraph_function_with_gimple_body_p): Update.
14436 (varpool_all_refs_explicit_p): Update.
14437 (symtab_alias_target): New function.
14438 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
14439 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
14440 (cgraph_function_or_thunk_node): Simplify using
14441 symtab_alias_ultimate_target.
e70670cf
JH
14442 (varpool_variable_node): Likewise.
14443 * cgraph.c (cgraph_create_function_alias): Update.
14444 (cgraph_add_thunk): Update.
14445 (cgraph_remove_node): Update.
14446 (dump_cgraph_node): Do not dump removed flags.
14447 (cgraph_function_body_availability): Update.
14448 (cgraph_propagate_frequency): Update.
14449 (verify_cgraph_node): Check sanity of local flag.
14450 (cgraph_function_node): Move here from cgraph.h; revamp for
14451 cgraph_function_or_thunk_node.
14452 * lto-symtab.c (lto_varpool_replace_node): Update.
14453 (lto_symtab_resolve_can_prevail_p): Update.
14454 (lto_symtab_merge_cgraph_nodes): Update.
14455 * ipa-cp.c (determine_versionability, initialize_node_lattices,
14456 propagate_constants_accross_call, devirtualization_time_bonus,
14457 ipcp_propagate_stage): Update.
14458 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
14459 * ipa-inline-transform.c (clone_inlined_nodes,
14460 preserve_function_body_p): Update.
e70670cf
JH
14461 * ipa-reference.c (propagate): Update.
14462 (write_node_summary_p): Update.
14463 * toplev.c (wrapup_global_declaration_2): Update.
14464 * cgraphunit.c (cgraph_analyze_function): Rename to ...
14465 (analyze_function) ... this one.
14466 (cgraph_process_new_functions): Update.
14467 (cgraph_reset_node): Export.
14468 (cgraph_finalize_function): Update.
14469 (cgraph_add_new_function): Update.
14470 (process_function_and_variable_attributes): Update.
14471 (varpool_finalize_decl): Update.
14472 (symbol_finalized): Remove.
14473 (symbol_finalized_and_needed): Rename to ...
14474 (symbol_defined_and_needed): ... update.
14475 (cgraph_analyze_functions): Update.
14476 (handle_alias_pairs): Update.
14477 (mark_functions_to_output): Update.
14478 (assemble_thunk): Update.
14479 (output_in_order): Update.
14480 (output_weakrefs): Update.
14481 (finalize_compilation_unit): Update.
14482 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
14483 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
14484 input_node, input_varpool_node): Update.
14485 * dbxout.c (dbxout_expand_expr): Update.
14486 * cgraphclones.c (cgraph_clone_node): Update.
14487 (cgraph_copy_node_for_versioning): Update.
14488 (cgraph_materialize_clone): Update.
14489 (cgraph_materialize_all_clones): Update.
14490 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
14491 propagate_pure_const, propagate_nothrow): Update.
14492 * lto-streamer-out.c (lto_output, write_symbol): Update.
14493 * ipa-utils.c (ipa_reverse_postorder): Update.
14494 * ipa-inline.c (can_inline_edge_p): Update.
14495 (update_caller_keys, ipa_inline): Update.
14496 * dwarf2out.c (reference_to_unused,
14497 premark_types_used_by_global_vars_helper): Update.
14498 * tree-eh.c (tree_could_trap_p): Update.
14499 * ipa-split.c (consider_split, execute_split_functions): Update.
14500 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
14501 has_addr_references_p): Update; move ahead in file for better
14502 readability.
e70670cf
JH
14503 (process_references): Simplify.
14504 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
14505 bodies are removed.
14506 (cgraph_comdat_can_be_unshared_p): Make static.
14507 (cgraph_externally_visible_p): Update.
14508 (varpool_externally_visible_p): Update.
14509 (function_and_variable_visibility): Update.
14510 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
14511 ipa_tm_mark_force_output_node): Update.
14512 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
14513 estimate_edge_devirt_benefit, inline_generate_summary,
14514 inline_write_summary): Update.
14515 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
14516 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
14517 (ipa_print_node_params, ipa_prop_read_section,
14518 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
14519 * varasm.c (mark_decl_referenced): Update.
14520 (assemble_alias, dump_tm_clone_pairs): Update.
14521 * tree-inline.c (copy_bb): Update.
14522 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
14523 Update.
14524 * symtab.c (dump_symtab_base): Print new flags.
14525 (verify_symtab_base): Verify new flags.
14526 (symtab_alias_ultimate_target): New function.
14527 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
14528 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
14529 Update.
c1e183a9
UB
14530 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
14531 Update.
e70670cf
JH
14532 * i386.c (ix86_get_function_versions_dispatcher,
14533 ix86_generate_version_dispatcher_body): Update.
14534 (fold_builtin_cpu): Use varpool_add_new_variable.
14535 * varpool.c (varpool_remove_initializer): Break out from ...
14536 (varpool_remove_node): ... this one.
14537 (dump_varpool_node, varpool_node_for_asm,
14538 cgraph_variable_initializer_availability, varpool_analyze_node,
14539 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
14540 varpool_finalize_named_section_flags, varpool_create_variable_alias):
14541 Update.
e70670cf 14542
182802ad
JH
145432013-05-29 Jan Hubicka <jh@suse.cz>
14544
14545 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
14546
8190b609
ER
145472013-05-29 Easwaran Raman <eraman@google.com>
14548
14549 PR tree-optimization/57442
14550 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
14551 when control exits the main loop.
14552
69f5aa9b
SKS
145532013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
14554
14555 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
14556 and RX600.
c1e183a9 14557 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
14558 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
14559 * rx/t-rx: Add rx100 under multi library matches option for nofpu
14560 option.
14561
4b847da9
BS
145622013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14563
14564 PR tree-optimization/57441
14565 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
14566 Don't limit size of incr_vec to number of candidates.
14567
4fc43c39
SE
145682013-05-29 Steve Ellcey <sellcey@imgtec.com>
14569
14570 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
14571 and mips16 directories.
c1e183a9 14572 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
14573 (MULTILIB_DIRNAMES): Ditto.
14574 (MULTILIB_EXCEPTIONS): Add new exceptions.
14575 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
14576 (MULTILIB_DIRNAMES): Ditto.
14577 (MULTILIB_EXCEPTIONS): Add new exceptions.
14578
12211b99 145792012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
14580 Marcus Shawcroft <marcus.shawcroft@arm.com>
14581
14582 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
14583 SYMBOL_TINY_ABSOLUTE.
14584 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
14585 SYMBOL_TINY_ABSOLUTE.
14586 (aarch64_expand_mov_immediate): Likewise.
14587 (aarch64_classify_symbol): Likewise.
14588 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
14589 Permit SYMBOL_TINY_ABSOLUTE.
14590 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
14591
12211b99 145922013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
14593 Marcus Shawcroft <marcus.shawcroft@arm.com>
14594
14595 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
14596 Refactor if/switch. Replace gcc_assert with if.
14597
c0186656
GG
145982013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14599
14600 * config/i386/i386.c (initial_ix86_tune_features): Enable
14601 FP Reassociation for AMD bdver1 and bdver2.
14602
d20188f3
MJ
146032013-05-29 Martin Jambor <mjambor@suse.cz>
14604
14605 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
14606 and IMAGPART_EXPR do not occur within other handled_components.
14607
292cba13
RB
146082013-05-29 Richard Biener <rguenther@suse.de>
14609
14610 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
14611 access on whether the use is in the BB we currently try to
14612 vectorize.
14613 (vect_bb_vectorization_profitable_p): Pass the BB we currently
14614 vectorize to vect_bb_slp_scalar_cost.
14615
6eddf228
RB
146162013-05-29 Richard Biener <rguenther@suse.de>
14617
14618 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
14619 computing scalar cost offsetted by stmts that are kept live
14620 by scalar uses.
14621 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
14622 for computation of scalar cost.
14623
7df36117
SE
146242013-05-28 Steve Ellcey <sellcey@mips.com>
14625
14626 * config/mips/mips-cpus.def (mips32r2): Change processor type.
14627
36536d79
BI
146282013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
14629
14630 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
14631 array notation built-in reduction functions.
14632 * doc/passes.texi (Passes): Added documentation about changes done
14633 for Cilk Plus.
14634 * doc/invoke.texi (C Dialect Options): Added documentation about
14635 the -fcilkplus flag.
14636 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
14637 (BUILTINS_DEF): Depend on cilkplus.def.
14638 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
14639 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
14640 * cilkplus.def: New file.
14641
12211b99 146422013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
14643
14644 PR rtl-optimization/57439
14645 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
14646
9daf6dbb
ER
146472013-05-28 Easwaran Raman <eraman@google.com>
14648
14649 PR tree-optimization/57337
14650 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
14651 (find_insert_point): Correctly identify the insertion point
14652 when two statements with the same UID is compared.
14653
fbd7e877
RB
146542013-05-28 Richard Biener <rguenther@suse.de>
14655
14656 PR tree-optimization/56787
14657 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
14658 from the list of data references.
14659 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
14660 clobbers.
14661 (vect_analyze_loop_operations): Likewise.
14662 (vect_transform_loop): Remove clobbers.
14663
bbba1117
MJ
146642013-05-28 Martin Jambor <mjambor@suse.cz>
14665
14666 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
14667 and REALPART_EXPRs have scalar type.
14668
bd388c2a
RB
146692013-05-28 Richard Biener <rguenther@suse.de>
14670
14671 PR tree-optimization/57411
14672 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
14673 virtual operands.
14674 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
14675 virtual operand propagation.
14676
2f56a311
EB
146772013-05-28 Eric Botcazou <ebotcazou@adacore.com>
14678
14679 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
14680 destination register for bmasksi_vis.
14681 (vector_init_bshuffle): Likewise.
14682 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
14683
5c3eacbb
EB
146842013-05-28 Eric Botcazou <ebotcazou@adacore.com>
14685
14686 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
14687 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
14688 mode if the instruction isn't available in the original mode.
14689 * config/sparc/sparc.opt (mfix-ut699): New option.
14690 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
14691 (divdf3): Turn into expander.
14692 (divdf3_nofix): New insn.
14693 (divdf3_fix): Likewise.
14694 (divsf3): Disable if -mfix-ut699.
14695 (sqrtdf2): Turn into expander.
14696 (sqrtdf2_nofix): New insn.
14697 (sqrtdf2_fix): Likewise.
14698 (sqrtsf2): Disable if -mfix-ut699.
14699
a1756c0a
RB
147002013-05-27 Richard Biener <rguenther@suse.de>
14701
14702 PR middle-end/57412
14703 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
14704 block for the new loop.
14705
5a892248
RB
147062013-05-27 Richard Biener <rguenther@suse.de>
14707
14708 PR tree-optimization/57343
14709 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
14710 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
14711 (number_of_iterations_cond): Do not build the folded tree.
14712
d1de852b
RB
147132013-05-27 Richard Biener <rguenther@suse.de>
14714
14715 Revert
14716 PR middle-end/57381
14717 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
14718 OEP_CONSTANT_ADDRESS_OF retained.
14719
14720 PR tree-optimization/57417
14721 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
14722 for unchanged base.
14723 (set_ssa_val_to): Compare addresses using
14724 get_addr_base_and_unit_offset.
14725
12211b99 147262013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
14727
14728 PR rtl-optimization/56833
14729 * postreload.c (move2add_record_mode): New function.
14730 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
14731 (move2add_use_add2_insn): Use move2add_record_sym_value.
14732 (move2add_use_add3_insn): Likewise.
14733 (reload_cse_move2add): Use move2add_valid_value_p and
14734 move2add_record_mode. Invalidate call-clobbered and REG_INC
14735 affected regs by setting reg_mode to VOIDmode.
14736 (move2add_note_store): Don't pretend the inside of a SUBREG is
14737 the actual destination. Invalidate single/leading registers by
14738 setting reg_mode to VOIDmode.
14739 Use move2add_record_sym_value, move2add_valid_value_p and
14740 move2add_record_mode.
14741
b03be25f
RB
147422013-05-27 Richard Biener <rguenther@suse.de>
14743
14744 PR tree-optimization/57396
14745 * tree-affine.c (double_int_constant_multiple_p): Properly
14746 return false for val == 0 and div != 0.
14747
44e88db2
RS
147482013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14749
14750 * config/mips/mips.h: Use #elif in preprocessor conditions.
14751
3b859704
RS
147522013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14753
14754 PR target/53916
14755 * config/mips/constraints.md (kl): New constraint.
14756 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
14757 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
14758 constraint for operand 0. Split after CSE for MIPS16. Emit a move
14759 from LO for MIPS16.
14760 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
14761
c979d5f5
RS
147622013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14763
14764 PR target/55777
14765 * config/mips/mips.c (mips_can_inline_p): New function.
14766 (TARGET_CAN_INLINE_P): Define.
14767
8e90de43
SB
147682013-05-25 Steven Bosscher <steven@gcc.gnu.org>
14769
14770 * sched-int.h (ds_t, dw_t): Make unsigned int.
14771 Fix documentation that describes how all the ds_t bits are used.
14772 Reserve the last bit for delayed-branch scheduling.
14773 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
14774 (BITS_PER_DEP_WEAK): Fix definition and documentation.
14775 (gen_dep_weak_1): Remove prototype.
14776 * sched-deps.c (get_dep_weak_1): Make static.
14777 * target.def (speculate_insn, needs_block_p, gen_spec_check,
14778 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
14779 * doc/tm.texi: Regenerate.
14780 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
14781
cb5cb194
SB
147822013-05-24 Steven Bosscher <steven@gcc.gnu.org>
14783
14784 PR debug/56950
14785 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
14786
5bd93ff6
NS
147872013-05-24 Nathan Sidwell <nathan@codesourcery.com>
14788 Sandra Loosemore <sandra@codesourcery.com>
14789
14790 * config.gcc (powerpc-*): Allow native for with-cpu.
14791
2343af65
JL
147922013-05-24 Jeff Law <law@redhat.com>
14793
14794 PR tree-optimization/57124
14795 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
14796 conversion feeding a condition if the range has an overflow
14797 if -fstrict-overflow. Add warnings for when we do make the
14798 transformation.
14799
3ad695b9
DC
148002013-05-24 Dehao Chen <dehao@google.com>
14801
04960246 14802 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
14803 (locus_discrim_hasher): Likewise.
14804 (locus_discrim_hasher::hash): Likewise.
14805 (locus_discrim_hasher::equal): Likewise.
14806
82338059
MJ
148072013-05-24 Martin Jambor <mjambor@suse.cz>
14808
14809 PR tree-optimization/57294
14810 * cgraph.h (ipa_record_stmt_references): Declare.
14811 * cgraphbuild.c (ipa_record_stmt_references): New function.
14812 (build_cgraph_edges): Use ipa_record_stmt_references.
14813 (rebuild_cgraph_edges): Likewise.
14814 (cgraph_rebuild_references): Likewise.
14815 * ipa-prop.c (ipa_modify_call_arguments): Discard references
14816 associated with the old statement and build references from the
14817 newly built statements.
14818 * ipa-ref.c (ipa_remove_stmt_references): New function.
14819 * ipa-ref.h (ipa_remove_stmt_references): Declare.
14820
1ccd4874
VM
148212013-05-24 Vladimir Makarov <vmakarov@redhat.com>
14822
55805e54 14823 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 14824 mem-mem moves.
55805e54 14825 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 14826 too.
55805e54 14827 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
14828 secondary memory moves.
14829 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
14830 reg set up in the current insn.
14831
25e25c73
DC
148322013-05-24 Dehao Chen <dehao@google.com>
14833
04960246 14834 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
14835 hash function.
14836 (locus_descrim_hasher::equal): Likewise.
04960246 14837 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
14838 (make_edges): Likewise.
14839 (next_discriminator_for_locus): Likewise.
14840 (same_line_p): Likewise.
14841 (assign_discriminators): Likewise.
14842 (make_cond_expr_edges): Likewise.
14843 (make_gimple_switch_edges): Likewise.
14844 (make_goto_expr_edges): Likewise.
14845 (make_gimple_asm_edges): Likewise.
14846
50d38551
IB
148472013-05-24 Ian Bolton <ian.bolton@arm.com>
14848
14849 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
14850 X format specifier to only display bottom 16 bits.
14851 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
14852 immediate to match for operand 2, since it will be masked.
14853
aea0101d
RB
148542013-05-24 Richard Biener <rguenther@suse.de>
14855
14856 PR tree-optimization/57287
14857 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
14858 all SSA names that occur in abnormal PHIs.
14859
634e03d3
AI
148602013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
14861
14862 PR tree-ssa/57385
14863 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
14864 that index is not negative.
14865
b17c024f
EB
148662013-05-24 Eric Botcazou <ebotcazou@adacore.com>
14867
14868 PR rtl-optimization/55177
14869 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
14870 (simplify_byte_swapping_operation): New.
14871 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
14872 (simplify_relational_operation_1): Deal with BSWAP.
14873
46aeac1b
RH
148742013-05-23 Richard Henderson <rth@redhat.com>
14875
14876 PR target/56742
14877 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
14878 (ix86_reorg): Call it.
14879
70cc1536
UB
148802013-05-23 Uros Bizjak <ubizjak@gmail.com>
14881
14882 PR target/57379
14883 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
14884 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
14885 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
14886
b3851501
CB
148872013-05-23 Christian Bruel <christian.bruel@st.com>
14888
14889 PR debug/57351
14890 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
14891
12211b99 148922013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
14893 Marcus Shawcroft <marcus.shawcroft@arm.com>
14894
14895 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
14896 * config/aarch64/constraints.md (Usa): Remove.
14897 * doc/md.texi (AArch64 Usa): Remove.
14898
12211b99 148992013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
14900 Marcus Shawcroft <marcus.shawcroft@arm.com>
14901
14902 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
14903 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
14904 * config/aarch64/predicates.md (aarch64_const_address): Remove.
14905 (aarch64_mov_operand): Use aarch64_mov_operand_p.
14906
12211b99 149072013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
14908
14909 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
14910 instruction (AdvSIMD).
14911 * config/aarch64/aarch64-builtins.c
14912 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
14913 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
14914
76c36cb1 149152013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
14916
14917 PR middle-end/57347
14918 * tree.h (contains_bitfld_component_ref_p): Declare.
14919 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
14920 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
14921 caller.
7d2fb524
MJ
14922 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
14923 not access a bit-field. Assert all final offsets are byte-aligned.
14924
ce521ae6
RB
149252013-05-23 Richard Biener <rguenther@suse.de>
14926
14927 PR tree-optimization/57380
14928 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
14929 least one invariant or re-used load.
14930 * passes.c (init_optimization_passes): Move pass_phiprop before
14931 pass_forwprop.
14932
75c7257f
JG
149332013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
14934
14935 * config/aarch64/aarch64-simd.md
14936 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
14937
af6d44b5
RB
149382013-05-23 Richard Biener <rguenther@suse.de>
14939
14940 PR middle-end/57381
14941 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
14942 OEP_CONSTANT_ADDRESS_OF retained.
14943
bd3647bf
JJ
149442013-05-23 Jakub Jelinek <jakub@redhat.com>
14945
14946 PR middle-end/57344
70cc1536
UB
14947 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
14948 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 14949
a55757ea
RB
149502013-05-23 Richard Biener <rguenther@suse.de>
14951
14952 PR rtl-optimization/57341
14953 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
14954 instead of true_dependence.
14955
cfb00b41
DM
149562013-05-22 David Malcolm <dmalcolm@redhat.com>
14957
dd1c676f
DM
14958 * bb-reorder.c (branch_threshold): Make const.
14959 (exec_threshold): Ditto.
cfb00b41 14960
f62511da 149612013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14962 Pat Haugen <pthaugen@us.ibm.com>
14963 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
14964
14965 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
14966 documentation for the power8 crypto builtins.
14967
14968 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
14969
14970 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
14971 macros for defining power8 builtin functions.
14972 (BU_P8V_AV_2): Likewise.
14973 (BU_P8V_AV_P): Likewise.
14974 (BU_P8V_VSX_1): Likewise.
14975 (BU_P8V_OVERLOAD_1): Likewise.
14976 (BU_P8V_OVERLOAD_2): Likewise.
14977 (BU_CRYPTO_1): Likewise.
14978 (BU_CRYPTO_2): Likewise.
14979 (BU_CRYPTO_3): Likewise.
14980 (BU_CRYPTO_OVERLOAD_1): Likewise.
14981 (BU_CRYPTO_OVERLOAD_2): Likewise.
14982 (XSCVSPDP): Fix typo, point to the correct instruction.
14983 (VCIPHER): Add power8 crypto builtins.
14984 (VCIPHERLAST): Likewise.
14985 (VNCIPHER): Likewise.
14986 (VNCIPHERLAST): Likewise.
14987 (VPMSUMB): Likewise.
14988 (VPMSUMH): Likewise.
14989 (VPMSUMW): Likewise.
14990 (VPERMXOR_V2DI): Likewise.
14991 (VPERMXOR_V4SI: Likewise.
14992 (VPERMXOR_V8HI: Likewise.
14993 (VPERMXOR_V16QI: Likewise.
14994 (VSHASIGMAW): Likewise.
14995 (VSHASIGMAD): Likewise.
14996 (VPMSUM): Likewise.
14997 (VPERMXOR): Likewise.
14998 (VSHASIGMA): Likewise.
14999
15000 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
15001 __CRYPTO__ if the crypto instructions are available.
15002 (altivec_overloaded_builtins): Add support for overloaded power8
15003 builtins.
15004
15005 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
15006 support for power8 crypto builtins.
15007 (builtin_function_type): Likewise.
15008 (altivec_init_builtins): Add support for builtins that take vector
15009 long long (V2DI) arguments.
15010
15011 * config/rs6000/crypto.md: New file, define power8 crypto
15012 instructions.
15013
150142013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15015 Pat Haugen <pthaugen@us.ibm.com>
15016 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
15017
15018 * doc/invoke.texi (Option Summary): Add power8 options.
15019 (RS/6000 and PowerPC Options): Likewise.
15020
15021 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
15022 constraints.md instead of rs6000.h. Reorder w* constraints. Add
15023 wm, wn, wr documentation.
15024
f43245d1 15025 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
15026 registers if direct move instructions are enabled.
15027 (wn): New constraint for no registers.
15028 (wq): New constraint for quad word even GPR registers.
15029 (wr): New constraint if 64-bit instructions are enabled.
15030 (wv): New constraint if power8 vector instructions are enabled.
15031 (wQ): New constraint for quad word memory locations.
15032
f43245d1 15033 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
15034 constraint for 0..15 for crypto instructions.
15035 (gpc_reg_operand): If VSX allow registers in VSX registers as well
15036 as GPR and floating point registers.
15037 (int_reg_operand): New predicate to match only GPR registers.
15038 (base_reg_operand): New predicate to match base registers.
15039 (quad_int_reg_operand): New predicate to match even GPR registers
15040 for quad memory operations.
15041 (vsx_reg_or_cint_operand): New predicate to allow vector logical
15042 operations in both GPR and VSX registers.
15043 (quad_memory_operand): New predicate for quad memory operations.
15044 (reg_or_indexed_operand): New predicate for direct move support.
15045
f43245d1 15046 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
15047 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
15048 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
15049 (POWERPC_MASKS): Add power8 options.
15050 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
15051 various options.
15052
f43245d1 15053 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
15054 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
15055
f43245d1 15056 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
15057 (-mpower8-fusion): New power8 options.
15058 (-mpower8-fusion-sign): Likewise.
15059 (-mpower8-vector): Likewise.
15060 (-mcrypto): Likewise.
15061 (-mdirect-move): Likewise.
15062 (-mquad-memory): Likewise.
15063
f43245d1 15064 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
15065 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
15066 registers.
70cc1536 15067 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
15068 (rs6000_debug_vector_unit): Add p8_vector.
15069 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
15070 definitions. Also print fusion state.
15071 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
15072 (rs6000_builtin_mask_calculate): Add power8 builtin support.
15073 (rs6000_option_override_internal): Add support for power8.
15074 (rs6000_common_init_builtins): Add debugging for skipped builtins
15075 if -mdebug=builtin.
15076 (rs6000_adjust_cost): Add power8 support.
15077 (rs6000_issue_rate): Likewise.
15078 (insn_must_be_first_in_group): Likewise.
15079 (insn_must_be_last_in_group): Likewise.
15080 (force_new_group): Likewise.
15081 (rs6000_register_move_cost): Likewise.
15082 (rs6000_opt_masks): Likewise.
15083
15084 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
15085 power8 capable assembler, default to power7 options.
15086 (TARGET_DIRECT_MOVE): Likewise.
15087 (TARGET_CRYPTO): Likewise.
15088 (TARGET_P8_VECTOR): Likewise.
15089 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
15090 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
15091 (VECTOR_MEM_P8_VECTOR_P): Likewise.
15092 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
15093 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
15094 (TARGET_XSCVDPSPN): Likewise.
15095 (TARGET_XSCVSPDPN): Likewsie.
15096 (TARGET_SYNC_HI_QI): Likewise.
15097 (TARGET_SYNC_TI): Likewise.
15098 (MASK_CRYPTO): Likewise.
15099 (MASK_DIRECT_MOVE): Likewise.
15100 (MASK_P8_FUSION): Likewise.
15101 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
15102 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
15103 temporary used by some of the direct move instructions to get two FP
15104 temporary registers does not force creation of a stack frame.
f62511da
MM
15105 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
15106 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
15107 that any VSX registers are tieable, even if they are also an
15108 Altivec vector mode.
15109 (r6000_reg_class_enum): Add wm, wr, wv constraints.
15110 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
15111 (RS6000_BTM_CRYPTO): Likewise.
15112 (RS6000_BTM_COMMON): Likewise.
15113
15114 * config/rs6000/rs6000.md (cpu attribute): Add power8.
15115 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
15116 (enum rs6000_vector): Add power8 vector support.
15117
73a1a707
RR
151182013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15119
15120 PR target/19599
15121 PR target/57340
15122 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
15123 (any_sibcall_could_use_r3): this and handle indirect calls.
15124 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
15125
d28073d4
BS
151262013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15127
15128 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
15129
bee0b10c
RB
151302013-05-22 Richard Biener <rguenther@suse.de>
15131
15132 PR middle-end/57349
15133 * profile.c (branch_prob): Do not split blocks that are
15134 abnormally receiving from ECF_RETURNS_TWICE functions.
15135
98409b51
RS
151362013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
15137
15138 * recog.c (offsettable_address_addr_space_p): Fix calculation of
15139 address mode. Move pointer mode initialization to the same place.
15140
c0602ab8
MZ
151412013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15142
15143 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
15144 while it has any effect.
15145
4f7a634e
ER
151462013-05-21 Easwaran Raman <eraman@google.com>
15147
15148 PR tree-optimization/57322
9daf6dbb
ER
15149 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
15150 UID of the statement added to the BB to be 1.
4f7a634e 15151
a4ce1258
JJ
151522013-05-21 Jakub Jelinek <jakub@redhat.com>
15153
15154 PR tree-optimization/57331
70cc1536
UB
15155 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
15156 of conversion from pointer type to integral type with integer.
a4ce1258 15157
1b14621a
MJ
151582013-05-21 Martin Jambor <mjambor@suse.cz>
15159
15160 PR lto/57289
15161 * ipa-prop.c (ipa_read_node_info): Process param_used and
15162 controlled_uses in the same order as when writing.
15163
e60661f0
MG
151642013-05-21 Magnus Granberg <baldrick@free.fr>
15165
15166 PR plugins/56754
ee49aa34 15167 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 15168
4a61be9a
RB
151692013-05-21 Richard Biener <rguenther@suse.de>
15170
15171 PR tree-optimization/57318
15172 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
15173 estimate stmts with side-effects as likely eliminated.
15174
c52da5f7
RB
151752013-05-21 Richard Biener <rguenther@suse.de>
15176
15177 PR tree-optimization/57330
15178 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
15179 preserve the call stmts fntype.
15180
7ec67e2a
RB
151812013-05-21 Richard Biener <rguenther@suse.de>
15182
15183 PR tree-optimization/57303
15184 * tree-ssa-sink.c (statement_sink_location): Improve killing
15185 stmt detection and properly handle self-assignments.
15186
b112d513
CB
151872013-05-21 Christian Bruel <christian.bruel@st.com>
15188
55805e54
YR
15189 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
15190 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
15191 registers. Set register size out of the PARALLEL loop.
15192
14c2ec26
OE
151932013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
15194
15195 PR target/56547
15196 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
15197 (*fmasf4, *fmasf4_media): New insns.
15198
da734fa1
RS
151992013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15200
15201 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
15202 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
15203 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
15204 (mips_idiv_insns): Update the comments to say that the returned
15205 instruction counts are in units of BASE_INSN_LENGTH.
15206 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
15207 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
15208 using 2 rather than 4 as the length of indirect MIPS16 and
15209 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
15210 length of a NOP. Don't divide MIPS16 lengths by 2.
15211 (mips16_split_long_branches): Assume a branch is long if the
15212 length is greater than 4 rather than 8.
15213 * config/mips/mips.md (length): Give MIPS16 lengths directly,
15214 rather than multiplying them by 2. Multiply instruction counts
15215 by BASE_INSN_LENGTH rather than 4.
15216 (*jump_mips16, tls_get_tp_mips16_<mode>)
15217 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
15218
13719e8b
RS
152192013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15220
15221 * config/mips/mips.md (extended_mips16): Remove branch case.
15222 (length): Remove duplicated extended_mips16 test.
15223
c3850d14
RS
152242013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15225
15226 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
15227
8da2e059
RS
152282013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
15229
15230 * recog.h (Recog_data): Rename to...
15231 (recog_data_d): ...this.
15232 (recog_data): Update accordingly.
15233 * recog.c (recog_data): Likewise.
15234 * reload.c (save_recog_data): Likewise.
15235 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
15236 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
15237
2df013f3
JB
152382013-05-17 Julian Brown <julian@codesourcery.com>
15239
15240 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
15241 found in a REG_EQUAL note, invalidate it.
15242
371e77e3 152432013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
15244
15245 * tree-ssa-reassoc.c (find_insert_point): New function.
15246 (insert_stmt_after): Likewise.
15247 (get_def_stmt): Likewise.
15248 (ensure_ops_are_available): Likewise.
15249 (not_dominated_by): Likewise.
15250 (rewrite_expr_tree): Do not move statements beyond what is
15251 necessary. Remove call to swap_ops_for_binary_stmt...
15252 (reassociate_bb): ... and move it here.
15253 (build_and_add_sum): Assign UIDs for new statements.
15254 (linearize_expr): Likewise.
15255 (do_reassoc): Renumber gimple statement UIDs.
15256
e01c7cca
JH
152572013-05-17 Jan Hubicka <jh@suse.cz>
15258
15259 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
15260 weakrefs.
15261 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
15262 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
15263 weakrefs.
e01c7cca
JH
15264 (output_weakrefs): Update.
15265
c3272a92
PCC
152662013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
15267 Martin Jambor <mjambor@suse.cz>
15268
15269 PR middle-end/57276
15270 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
15271 value that corresponds to the given aggval is found in values vector.
15272
11c2aa39
UB
152732013-05-17 Uros Bizjak <ubizjak@gmail.com>
15274
15275 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
15276 sse, sse2, sse3, ssse3 and sse4a flags to options.
15277
abecc8c6
DM
152782013-05-17 David Malcolm <dmalcolm@redhat.com>
15279
15280 * gengtype-state.c: (s_expr_writer): New class, to handle
15281 prettifying of output layout of s-expressions.
15282 (state_writer): New class, to write out gtype.state.
15283 (state_written_type_count): Move this variable into member data of
15284 state_writer.
15285 (s_expr_writer::s_expr_writer): New code: constructor for new class
15286 (state_writer::state_writer(): ditto
15287 (s_expr_writer::write_new_line): New function
15288 (s_expr_writer::write_any_indent): ditto
15289 (s_expr_writer::begin_s_expr): ditto
15290 (s_expr_writer::end_s_expr): ditto
15291 (write_state_fileloc): convert to method of state_writer...
15292 (state_writer:: write_state_fileloc): ...and use methods of
15293 s_expr_writer to write indentation into the gtype.state output file
15294 to visually represent the hierarchical structure of the list
15295 structures
15296 (write_state_fields): ditto, renaming to...
15297 (state_writer::write_state_fields)
15298 (write_state_a_string): ditto, renaming to...
15299 (state_writer::write_state_a_string)
15300 (write_state_string_option): ditto, renaming to...
15301 (state_writer::write_state_string_option)
15302 (write_state_type_option): ditto, renaming to...
15303 (state_writer::write_state_type_option)
15304 (write_state_nested_option): ditto, renaming to...
15305 (state_writer::write_state_nested_option)
15306 (write_state_option): ditto, renaming to...
15307 (state_writer::write_state_option)
15308 (write_state_options): ditto, renaming to...
15309 (state_writer::write_state_options)
15310 (write_state_lang_bitmap): ditto, renaming to...
15311 (state_writer::write_state_lang_bitmap)
15312 (write_state_version): ditto, renaming to...
15313 (state_writer::write_state_version)
15314 (write_state_scalar_type): ditto, renaming to...
15315 (state_writer::write_state_scalar_type)
15316 (write_state_string_type): ditto, renaming to...
15317 (state_writer::write_state_string_type)
15318 (write_state_undefined_type): ditto, renaming to...
15319 (state_writer::write_state_undefined_type)
15320 (write_state_struct_union_type): ditto, renaming to...
15321 (state_writer::write_state_struct_union_type)
15322 (write_state_struct_type): ditto, renaming to...
15323 (state_writer::write_state_struct_type)
15324 (write_state_user_struct_type): ditto, renaming to...
15325 (state_writer::write_state_user_struct_type)
15326 (write_state_lang_struct_type): ditto, renaming to...
15327 (state_writer::write_state_lang_struct_type)
15328 (write_state_param_struct_type): ditto, renaming to...
15329 (state_writer::write_state_param_struct_type)
15330 (write_state_pointer_type): ditto, renaming to...
15331 (state_writer::write_state_pointer_type)
15332 (write_state_array_type): ditto, renaming to...
15333 (state_writer::write_state_array_type)
15334 (write_state_gc_used): ditto, renaming to...
15335 (state_writer::write_state_gc_used)
15336 (write_state_common_type_content): ditto, renaming to...
15337 (state_writer::write_state_common_type_content)
15338 (write_state_type): ditto, renaming to...
15339 (state_writer::write_state_type)
15340 (write_state_pair_list): ditto, renaming to...
15341 (state_writer::write_state_pair_list)
15342 (write_state_pair): ditto, renaming to...
15343 (state_writer::write_state_pair)
15344 (write_state_typedefs): ditto, renaming to...
15345 (state_writer::write_state_typedefs)
15346 (write_state_structures): ditto, renaming to...
15347 (state_writer::write_state_structures)
15348 (write_state_param_structs): ditto, renaming to...
15349 (state_writer::write_state_param_structs)
15350 (write_state_variables): ditto, renaming to...
15351 (state_writer::write_state_variables)
15352 (write_state_srcdir): ditto, renaming to...
15353 (state_writer::write_state_srcdir)
15354 (write_state_files_list): ditto, renaming to...
15355 (state_writer::write_state_files_list)
15356 (write_state_languages): ditto, renaming to...
15357 (state_writer::write_state_languages)
15358 (write_state): create a state_writer instance and use it when
15359 writing out the state file
15360
d6545f29
MS
153612013-05-17 Mike Stump <mikestump@comcast.net>
15362
816a3f73 15363 PR rtl-optimization/57304
d6545f29
MS
15364 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
15365 accessing DF_REF_REAL_LOC.
15366
38c821cf
JJ
153672013-05-17 Jakub Jelinek <jakub@redhat.com>
15368
15369 PR rtl-optimization/57281
15370 PR rtl-optimization/57300
15371 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
15372 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
15373 what the other splitter did if the registers are dead.
15374
2a293391
RB
153752013-05-17 Richard Biener <rguenther@suse.de>
15376
15377 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
15378 MEM_REF offsets.
15379
17042d2b
JJ
153802013-05-17 Jakub Jelinek <jakub@redhat.com>
15381
15382 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
15383 linking.
15384
5b115c1f
MP
153852013-05-17 Marek Polacek <polacek@redhat.com>
15386
11c2aa39
UB
15387 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
15388 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 15389
52d84413
JJ
153902013-05-17 Jakub Jelinek <jakub@redhat.com>
15391
68119618
JJ
15392 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
15393 vect_external_def oprnd1 with loop_vinfo, try to emit
15394 optional cast, negation and and stmts on the loop preheader
15395 edge instead of into the pattern def seq.
15396
52d84413
JJ
15397 PR tree-optimization/57051
15398 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
15399 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
15400
17b962bd
NC
154012013-05-16 Nick Clifton <nickc@redhat.com>
15402
15403 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
15404 (rl78_is_naked_func): New function.
56aefbf7
UB
15405 (rl78_expand_prologue): Skip prologue generation for naked functions.
15406 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
15407 * doc/extend.texi (naked): Add RL78 to the list of processors
15408 that supports this attribute.
15409
b1a0f84e
JL
154102013-05-16 Jeff Law <law@redhat.com>
15411
15412 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
15413
af0e415b
UB
154142013-05-16 Uros Bizjak <ubizjak@gmail.com>
15415
15416 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
15417 cache parameters using detect_caches_amd also for CYRIX,
15418 NSC and TM2 signatures.
15419
19db293a
UB
154202013-05-16 Uros Bizjak <ubizjak@gmail.com>
15421 Dzianis Kahanovich <mahatma@eu.by>
15422
15423 PR target/45359
15424 PR target/46396
15425 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15426 VIA/Centaur processors and determine their cache parameters
15427 using detect_caches_amd.
15428
251a41b9
TJ
154292013-05-16 Teresa Johnson <tejohnson@google.com>
15430
15431 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
15432 (rtl_verify_edges): New function.
15433 (rtl_verify_bb_insns): Ditto.
15434 (rtl_verify_bb_pointers): Ditto.
15435 (rtl_verify_bb_insn_chain): Ditto.
15436 (rtl_verify_fallthru): Ditto.
15437 (rtl_verify_bb_layout): Ditto.
15438 (rtl_verify_flow_info_1): Outline checks into new functions.
15439 (rtl_verify_flow_info): Ditto.
15440
f14540b6
SE
154412013-05-16 Steve Ellcey <sellcey@imgtec.com>
15442
15443 * cfghooks.c (copy_bbs): Add update_dominance argument.
15444 * cfghooks.h (copy_bbs): Update prototype.
15445 * tree-cfg.c (gimple_duplicate_sese_region):
15446 Add update_dominance argument.
15447 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
15448 * tree-ssa-loop-ch.c (copy_loop_headers): Update
15449 gimple_duplicate_sese_region call.
15450 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
15451 Update copy_bbs call.
15452 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
15453 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
15454
7e9a3abb
JJ
154552013-05-16 Jakub Jelinek <jakub@redhat.com>
15456
15457 * tree-vectorizer.h (NUM_PATTERNS): Increment.
15458 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
15459 vect_recog_rotate_pattern.
15460 (vect_recog_rotate_pattern): New function.
15461
427b248d
JM
154622013-05-16 Jason Merrill <jason@redhat.com>
15463
15464 * Makefile.in (LLINKER): New variable.
15465 (mostlyclean): Remove link mutex.
15466 * configure.ac: Handle --enable-link-mutex.
15467 * lock-and-run.sh: New script.
15468
b871e3d2
RR
154692013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15470
15471 PR target/19599
15472 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
15473 for NULL decl.
15474
ce858126
RO
154752013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15476
15477 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
15478
798d3d04
GY
154792013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
15480
15481 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
15482 * config/arm/arm.c (next_consecutive_mem): New function.
15483 (gen_movmem_ldrd_strd): Likewise.
15484 * config/arm/arm.md (movmemqi): Update condition and code.
15485 (unaligned_loaddi, unaligned_storedi): New patterns.
15486
0baddc45
RO
154872013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15488
15489 * config.gcc: Obsolete *-*-solaris2.9*.
15490 * doc/install.texi (Specific, *-*-solaris2*): Document it.
15491
aa9d5bcf
RB
154922013-05-16 Richard Biener <rguenther@suse.de>
15493
15494 * passes.c (init_optimization_passes): Move pass_parallelize_loops
15495 earlier, after GRAPHITE transforms and IV canonicalization.
15496
5a0f4dd3
JJ
154972013-05-16 Jakub Jelinek <jakub@redhat.com>
15498
15499 * omp-low.c (extract_omp_for_data): For collapsed loops,
15500 if at least one of the loops is known at compile time to
15501 iterate zero times, set count to 0.
15502 (expand_omp_regimplify_p): New function.
15503 (expand_omp_for_generic): For collapsed loops, if at least
15504 one of the loops isn't known to iterate at least once,
15505 add runtime check with setting count to 0.
15506 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
15507 For unsigned types if it isn't known at compile time that
15508 the loop will iterate at least once, add runtime check to bypass
15509 the whole loop if initial condition isn't true.
15510
e3753785
NS
155112013-05-16 Nathan Sidwell <nathan@codesourcery.com>
15512
15513 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
15514
43bb4dd1
MG
155152013-05-16 Marc Glisse <marc.glisse@inria.fr>
15516
15517 PR middle-end/57286
15518 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
15519 transformations to avoid an infinite loop.
15520
3571dde6
MP
155212013-05-16 Marek Polacek <polacek@redhat.com>
15522
15523 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
15524
b8b3f0ca
LE
155252013-05-15 Leif Ekblad <leif@rdos.net>
15526
15527 * config/i386/i386.c (ix86_decompose_address): Use
15528 DEFAULT_TLS_SEG_REG to access TLS segment register.
15529 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
15530 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
15531 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
15532
e299a383
RS
155332013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
15534
15535 PR target/57260
15536 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
15537 sibling calls to functions that would normally be lazily bound,
15538 unless $gp is call-clobbered.
15539
e7208ea3
UB
155402013-05-15 Uros Bizjak <ubizjak@gmail.com>
15541
19db293a 15542 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 15543 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
15544 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
15545 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
15546 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
15547 of TARGET_3DNOW.
15548 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
15549
e7413f3d
AS
155502013-05-15 Andreas Schwab <schwab@suse.de>
15551
15552 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
15553 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
15554 third operand.
15555
ad4db775
TJ
155562013-05-15 Teresa Johnson <tejohnson@google.com>
15557
15558 * loop-unroll.c (report_unroll_peel): Check decision before
15559 emitting unroll/peel message.
15560
af205f67
TJ
155612013-05-15 Teresa Johnson <tejohnson@google.com>
15562
15563 * function.h (has_bb_partition): New rtl_data flag.
15564 (bb_reorder_complete): Ditto.
15565 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
15566 instead of flag_reorder_blocks_and_partition.
15567 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
15568 with some enhancements.
15569 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
15570 * bb-reorder.c (connect_traces): Check for has_bb_partition
15571 instead of flag_reorder_blocks_and_partition.
15572 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
15573 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
15574 verify_hot_cold_block_grouping.
15575 (partition_hot_cold_basic_blocks): Set has_bb_partition.
15576
9adcfa3c
RR
155772013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15578
15579 PR target/19599
15580 * config/arm/predicates.md (call_insn_operand): New predicate.
15581 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
15582 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
15583 if insn is not a tail call.
15584 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
15585 registers.
15586 * config/arm/arm.h (enum reg_class): New caller save register class.
15587 (REG_CLASS_NAMES): Likewise.
15588 (REG_CLASS_CONTENTS): Likewise.
15589 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
15590 without decls.
15591
ccb3ad87
RB
155922013-05-15 Richard Biener <rguenther@suse.de>
15593
15594 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
15595 of MSG_OPTIMIZED_LOCATIONS.
15596 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
15597 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
15598 message.
15599 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
15600 of MSG_OPTIMIZED_LOCATIONS.
15601 (execute_vect_slp): Likewise.
15602 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
15603 (vect_create_cond_for_alias_checks): Likewise.
15604 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
15605 (vect_recog_widen_mult_pattern): Likewise.
15606 (vect_recog_widen_sum_pattern): Likewise.
15607 (vect_recog_over_widening_pattern): Likewise.
15608 (vect_recog_widen_shift_pattern): Likewise.
15609 (vect_recog_vector_vector_shift_pattern): Likewise.
15610 (vect_recog_divmod_pattern): Likewise.
15611 (vect_recog_mixed_size_cond_pattern): Likewise.
15612 (vect_recog_bool_pattern): Likewise.
15613 (vect_pattern_recog_1): Likewise.
15614
48b1474e
MJ
156152013-05-15 Martin Jambor <mjambor@suse.cz>
15616
15617 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
15618 non-functions to builtin_unreachable.
15619 * ipa-inline-transform.c (inline_call): Do not assert estimates were
15620 correct when new direct edges were discovered.
15621
9de04252
MJ
156222013-05-15 Martin Jambor <mjambor@suse.cz>
15623
15624 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
15625 header, print symbol order instead of node uid, print more information
15626 about indirect edge targets.
15627 (ipa_make_edge_direct_to_target): Print symbol order instead of node
15628 uids.
15629 (ipa_make_edge_direct_to_target): Likewise.
15630 (remove_described_reference): Likewise.
15631 (propagate_controlled_uses): Likewise.
15632 (ipa_print_node_params): Also print symbol order.
15633 (ipcp_transform_function): Print symbol order instead of node uids.
15634 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
15635 (cgraph_get_create_real_symbol_node): Likewise.
15636 * ipa-cp.c (print_lattice): Likewise.
15637 (print_all_lattices): Likewise.
15638 (determine_versionability): Likewise.
15639 (initialize_node_lattices): Likewise.
15640 (estimate_local_effects): Likewise.
15641 (update_profiling_info): Likewise.
15642 (create_specialized_node): Likewise.
15643 (perhaps_add_new_callers): Likewise.
15644 (decide_about_value): Likewise.
15645 (decide_whether_version_node): Likewise.
15646 (identify_dead_nodes): Likewise.
15647 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
15648 (dump_inline_summary): Likewise.
15649 (estimate_node_size_and_time): Likewise.
15650 (inline_analyze_function): Likewise.
15651 * ipa-inline.c (report_inline_failed_reason): Likewise.
15652 (want_early_inline_function_p): Likewise.
15653 (edge_badness): Likewise.
15654 (update_edge_key): Likewise.
15655 (inline_small_functions): Likewise. Add dumping of order to two other
15656 dumps.
15657 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
15658 instead of node uids.
15659 (propagate_pure_const): Likewise.
15660 (propagate_pure_const): Likewise.
15661 * ipa-utils.c (dump_cgraph_node_set): Likewise.
15662 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
15663 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
15664 of node uids.
15665 * tree-pretty-print.c (dump_function_header): Likewise.
15666 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
15667 Print symbol order instead of node uids.
15668
1dd03b91
AK
156692013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15670
15671 * config/s390/s390.c (s390_register_move_cost): Don't impose the
15672 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
15673
fdf6a7b9
RB
156742013-05-15 Richard Biener <rguenther@suse.de>
15675
15676 PR tree-optimization/57275
15677 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
15678 return value for fail to do runtime alias checks for gather loads.
15679
2d6e4603
JH
156802013-05-15 Jan Hubicka <jh@suse.cz>
15681
15682 PR lto/57038
15683 PR lto/47375
e7208ea3
UB
15684 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
15685 weakrefs are not external.
15686 (lto_symtab_merge_decls): Fix thinko when dealing with
15687 non-lto_symtab decls.
2d6e4603
JH
15688 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
15689 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
15690 * varpool.c (dump_varpool_node): Dump more flags.
15691
83f44b39
GG
156922013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15693
15694 * config/i386/i386.c (processor_alias_table): Add instruction
15695 FSGSBASE for AMD bdver3 architecture.
15696
2e55d062
JJ
156972013-05-14 Jakub Jelinek <jakub@redhat.com>
15698
15699 * tree.c (warn_deprecated_use): Print file:line using locus color.
15700 * diagnostic.c (diagnostic_report_current_module): Print file:line
15701 and file:line:column using locus color.
15702
0bfdb81e
MS
157032013-05-14 Mike Stump <mikestump@comcast.net>
15704
15705 * gdbinit.in: Add __null.
15706
a508ef22
MS
157072013-05-14 Mike Stump <mikestump@comcast.net>
15708
15709 * recog.h: Rename struct recog_data to Recog_data.
15710 * recog.c: Likewise.
15711 * reload.c (can_reload_into): Likewise.
15712 * config/picochip/picochip.c: Likewise.
15713
e7180acb
MS
157142013-05-14 Mike Stump <mikestump@comcast.net>
15715
15716 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
15717
61216c26
SB
157182013-05-14 Steven Bosscher <steven@gcc.gnu.org>
15719
fd6beed4
SB
15720 * resource.h (struct resources): Remove unch_memory member.
15721 (CLEAR_RESOURCE): Don't clear unch_memory.
15722 * resource.c (mark_referenced_resources): Don't set it.
15723 (mark_set_resources): Likewise.
15724 (mark_target_live_regs): Don't clear it.
15725 (init_resource_info): Likewise.
15726 * reorg.c (resource_conflicts_p): Don't compare it.
15727 (redundant_insn): Don't set it.
15728
61216c26
SB
15729 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
15730 Remove prototypes.
15731 * emit-rtl.c (next_label): Remove unused function.
15732 (skip_consecutive_labels, link_cc0_insns): Move to ...
15733 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
15734 only place where these functions are used, and make them static.
15735
418d1b87
MG
157362013-05-14 Marc Glisse <marc.glisse@inria.fr>
15737
15738 * fold-const.c (fold_negate_expr): Handle vectors.
15739 (fold_truth_not_expr): Make it static.
15740 (fold_invert_truthvalue): New static function.
15741 (invert_truthvalue_loc): Handle vectors. Do not call
15742 fold_truth_not_expr directly.
15743 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
15744 <TRUTH_NOT_EXPR>: Do not cast to boolean.
15745 (fold_comparison): Handle vector constants.
15746 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
15747 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
15748 * tree.h (fold_truth_not_expr): Remove declaration.
15749
fc21784d
JG
157502013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
15751
15752 * config/aarch64/aarch64-simd.md
15753 (aarch64_vcond_internal<mode>): Rename to...
15754 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
15755 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
15756 float modes. Clarify all iterator modes.
15757 (vcond<mode><mode>): Use new name for vcond expanders.
15758 (vcond<v_cmp_result><mode>): Likewise.
15759 (vcondu<mode><mode>: Likewise.
15760 * config/aarch64/iterators.md (VDQF_COND): New.
15761
d4c52634
MG
157622013-05-14 Marc Glisse <marc.glisse@inria.fr>
15763
15764 PR bootstrap/57266
15765 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
15766 variable for the shift amount. Check that we shift by non-negative
15767 amounts.
15768
2b261262
CLT
157692013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
15770
15771 PR target/42017
15772 * config/arm/arm.h (EPILOGUE_USES): Only return true
15773 for LR_REGNUM after epilogue_completed.
15774
12211b99 157752013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
15776
15777 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 15778 is error_mark_node.
6e022d7b 15779
56cf7859
RO
157802013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15781
15782 PR target/57261
15783 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
15784 and Solaris 11+/x86 with gld.
15785 * configure: Regenerate.
15786
75776c6d
JJ
157872013-05-14 Jakub Jelinek <jakub@redhat.com>
15788
15789 * expmed.c (expand_shift_1): Canonicalize rotates by
15790 constant bitsize / 2 to bitsize - 1.
7f998021 15791 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
15792 case ROTATERT>: Likewise.
15793
15794 Revert:
15795 2013-05-10 Jakub Jelinek <jakub@redhat.com>
15796
15797 * config/i386/i386.md (rotateinv): New code attr.
15798 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
15799 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
15800 roll $31, %eax, etc.
15801
df35498a
RB
158022013-05-14 Richard Biener <rguenther@suse.de>
15803
15804 PR middle-end/57235
15805 * tree-eh.c (sink_clobbers): Give up for successors with
15806 multiple predecessors and no virtual uses.
15807
cc6e7ece
EB
158082013-05-14 Eric Botcazou <ebotcazou@adacore.com>
15809
15810 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
15811 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
15812
f778dd4d
JJ
158132013-05-14 Jakub Jelinek <jakub@redhat.com>
15814
15815 PR middle-end/57251
15816 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
15817 the case when both op0 and op1 have VOIDmode.
15818
bad4df9b
KP
158192013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15820
15821 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
15822 in multiply-accumulate mode.
15823
56f3e9ac
GW
158242013-05-13 Guozhi Wei <carrot@google.com>
15825
15826 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
15827
a3d7ab92
KT
158282013-05-13 Kai Tietz <ktietz@redhat.com>
15829
15830 PR target/56975
15831 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 15832 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 15833 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 15834 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
15835 (ix86_expand_prologue): Likewise.
15836 (ix86_expand_split_stack_prologue): Likewise.
15837 (legitimate_pic_address_disp_p): Likewise.
15838 (legitimize_pic_address): Likewise.
15839 (legitimize_tls_address): Likewise.
15840 (legitimize_pe_coff_symbol): Likewise.
15841 (output_pic_addr_const): Likewise.
15842 (construct_plt_address): Likewise.
15843 (ix86_expand_call): Likewise.
15844 (x86_output_mi_thunk): Likewise.
15845 (x86_function_profiler): Likewise.
15846
c59b7e28
SN
158472013-05-13 Sofiane Naci <sofiane.naci@arm.com>
15848
15849 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
15850 similar switch cases.
15851 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
15852 (aarch64_simd_mov_to_<mode>low): Delete.
15853 (aarch64_simd_mov_to_<mode>high): Delete.
15854 (move_lo_quad_<mode>): Add w<-r alternative.
15855 (aarch64_simd_move_hi_quad_<mode>): Likewise.
15856 (aarch64_simd_mov_from_*): Update type attribute.
15857 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
15858 statement.
15859
5f28524a
JH
158602013-05-13 Jan Hubicka <jh@suse.cz>
15861
15862 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
15863 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
15864 ix86_expand_epilogue, emit_i387_cw_initialization,
15865 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
15866 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 15867
ae6fa899
JJ
158682013-05-13 Jakub Jelinek <jakub@redhat.com>
15869
15870 PR tree-optimization/45216
15871 PR tree-optimization/57157
15872 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
15873 the (-Y) & (B - 1) variant if OP is |.
15874 * expmed.c (expand_shift_1): For rotations by const0_rtx just
15875 return shifted. Use (-op1) & (prec - 1) as other_amount
15876 instead of prec - op1.
15877
4502fe8d
MJ
158782013-05-13 Martin Jambor <mjambor@suse.cz>
15879
15880 PR middle-end/42371
15881 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
15882 (ipa_constant_data): New type.
15883 (ipa_jump_func): Use ipa_constant_data to hold information about
15884 constant jump functions.
15885 (ipa_get_jf_constant): Adjust to jump function type changes.
15886 (ipa_get_jf_constant_rdesc): New function.
15887 (ipa_param_descriptor): New field controlled_uses.
15888 (ipa_get_controlled_uses): New function.
15889 (ipa_set_controlled_uses): Likewise.
15890 * ipa-ref.h (ipa_find_reference): Declare.
15891 * ipa-prop.c (ipa_cst_ref_desc): New type.
15892 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
15893 changes.
15894 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
15895 New parameter cs. Adjust all callers.
15896 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
15897 (remove_described_reference): New function.
15898 (jfunc_rdesc_usable): Likewise.
15899 (try_make_edge_direct_simple_call): Decrement controlled use count,
15900 attempt to remove reference if it hits zero.
15901 (combine_controlled_uses_counters): New function.
15902 (propagate_controlled_uses): Likewise.
15903 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
15904 (ipa_edge_duplication_hook): Duplicate reference descriptions.
15905 (ipa_print_node_params): Print described use counter.
15906 (ipa_write_jump_function): Adjust to jump function type changes.
15907 (ipa_read_jump_function): New parameter CS, pass it to
15908 ipa_set_jf_constant. Adjust caller.
15909 (ipa_write_node_info): Stream controlled use count
15910 (ipa_read_node_info): Likewise.
15911 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
15912 asserting.
15913 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
15914 count. Remove cloning-added reference if it reaches zero.
15915 * ipa-ref.c (ipa_find_reference): New function.
15916
0864bfc2
GG
159172013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15918
e7208ea3 15919 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
15920 alignment values for AMD BD and BT architectures.
15921
640bfeb2
MG
159222013-05-13 Marc Glisse <marc.glisse@inria.fr>
15923
15924 * tree-vect-generic.c (uniform_vector_p): Move ...
15925 * tree.c (uniform_vector_p): ... here.
15926 * tree.h (uniform_vector_p): Declare it.
15927 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
15928 into a scalar.
15929
3a60f32b
JJ
159302013-05-13 Jakub Jelinek <jakub@redhat.com>
15931
198fe1bf
JJ
15932 PR tree-optimization/57230
15933 * tree-ssa-strlen.c (handle_char_store): Record length for
15934 array store from STRING_CST.
15935
3a60f32b
JJ
15936 PR tree-optimization/57230
15937 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
15938 check.
15939
566be57c
JR
159402013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
15941
15942 * config/epiphany/epiphany.c (epiphany_init): Check size of
15943 NUM_MODES_FOR_MODE_SWITCHING.
15944 (epiphany_expand_prologue):
15945 Remove CONFIG_REGNUM initial value handling code.
15946 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
15947 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 15948 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
15949 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
15950 Don't return 1 for FP_MODE_NONE.
15951 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
15952 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
15953 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
15954 * config/epiphany/epiphany.md (save_config): New pattern.
15955
0f2c2331
UB
159562013-05-12 Uros Bizjak <ubizjak@gmail.com>
15957
15958 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
15959
5b3f93c7
UB
159602013-05-10 Uros Bizjak <ubizjak@gmail.com>
15961
15962 * config/i386/i386.md (memory): Handle sseishft1.
15963 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
15964 (*vec_extractv2di_1): Ditto.
15965
1f873f0e
VM
159662013-05-10 Vladimir Makarov <vmakarov@redhat.com>
15967
15968 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
15969 saved registers.
15970
341427fa 159712013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
15972
15973 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
15974 Add mthumb/march=armv7-a multilib.
15975 Add mthumb/march=armv7-r multilib.
15976 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
15977
9e69bdde
RC
159782013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
15979
15980 * config/v850/t-rtems: Add more multilibs.
15981
9ff09a22
RB
159822013-05-10 Richard Biener <rguenther@suse.de>
15983
15984 PR tree-optimization/57214
15985 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
15986 not propagate from SSA names that occur in abnormal PHI nodes.
15987
a5e0cd1d
MG
159882013-05-10 Marc Glisse <marc.glisse@inria.fr>
15989
15990 * stor-layout.c (element_precision): New function.
15991 * machmode.h (element_precision): Declare it.
15992 * tree.c (build_minus_one_cst): New function.
15993 (element_precision): Likewise.
15994 * tree.h (build_minus_one_cst): Declare new function.
15995 (element_precision): Likewise.
15996 * fold-const.c (operand_equal_p): Use element_precision.
15997 (fold_binary_loc): Handle vector types.
15998 * convert.c (convert_to_integer): Use element_precision.
15999 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
16000 separately.
16001
cb2558bc
RS
160022013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
16003
16004 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
16005 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
16006 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
16007 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16008 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
16009 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
16010 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
16011 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16012 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
16013 (Uuw8): New constraints.
16014 (Usb4): Move into alphabetical order.
16015 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
16016 (sd8_operand, ub8_operand, uw8_operand): New predicates.
16017 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
16018 previously unnamed patterns.
16019 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
16020 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
16021 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
16022 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
16023 of set_attr_alternative/if_then_else. Use extended_mips16 instead
16024 of specific lengths.
16025
cb3b8d33
JJ
160262013-05-10 Jakub Jelinek <jakub@redhat.com>
16027
6f93c008
JJ
16028 * config/i386/i386.md (rotateinv): New code attr.
16029 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16030 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16031 roll $31, %eax, etc.
16032
cb3b8d33
JJ
16033 PR tree-optimization/45216
16034 PR tree-optimization/57157
16035 * tree-ssa-forwprop.c (simplify_rotate): New function.
16036 (ssa_forward_propagate_and_combine): Call it.
16037
afb119be
RB
160382013-05-10 Richard Biener <rguenther@suse.de>
16039
16040 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
16041 disable peeling when we version for aliasing.
16042 (vector_alignment_reachable_p): Honor explicit user alignment.
16043 (vect_supportable_dr_alignment): Likewise.
16044 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
16045 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
16046 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
16047 then peeling to arrange for the cost-model check to come first.
16048
01ae4861
AM
160492013-05-10 Alan Modra <amodra@gmail.com>
16050
16051 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
16052 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
16053 * configure: Regenerate.
16054
ebc9a431
AM
160552013-05-10 Alan Modra <amodra@gmail.com>
16056
16057 PR target/55033
16058 * varasm.c (default_elf_select_section): Move !DECL_P check..
16059 (get_named_section): ..to here before calling get_section_name.
16060 Adjust assertion.
16061 (default_section_type_flags): Add DECL_P check.
16062 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
16063 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
16064
d4bca93c
JR
160652013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
16066
16067 * config/epiphany/epiphany.c (epiphany_expand_prologue):
16068 When using gen_stack_adjust_str with a register offset, add a
16069 REG_FRAME_RELATED_EXPR note.
16070
60ca9a65
UB
160712013-05-09 Uros Bizjak <ubizjak@gmail.com>
16072
16073 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
16074 (*vec_extractv4si_zext_mem): Ditto.
16075 (*vec_extractv2di): Add 0->x and x->x alternatives.
16076 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
16077 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
16078
a3409c02
JM
160792013-05-09 Jason Merrill <jason@redhat.com>
16080
0138d6b2
JM
16081 N3639 C++1y VLA support
16082 * gimplify.c (gimplify_vla_decl): Don't touch an existing
16083 DECL_VALUE_EXPR.
16084
a3409c02
JM
16085 * tree.c (build_constructor_va): New.
16086 * tree.h: Declare it.
16087
66e6b990
MJ
160882013-05-09 Martin Jambor <mjambor@suse.cz>
16089
16090 PR lto/57084
16091 * gimple-fold.c (canonicalize_constructor_val): Call
16092 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
16093
64cfa6c0
JH
160942013-05-09 Jan Hubicka <jh@suse.cz>
16095 Richard Biener <rguenther@suse.de>
16096
16097 PR lto/54095
16098 * symtab.c (symtab_make_decl_local): Do not add private names.
16099
c3167b00
JH
161002013-05-09 Jan Hubicka <jh@suse.cz>
16101
16102 PR lto/54095
16103 * symtab.c (insert_to_assembler_name_hash): Handle clones.
16104 (unlink_from_assembler_name_hash): Likewise.
16105 (symtab_prevail_in_asm_name_hash, symtab_register_node,
16106 symtab_unregister_node, symtab_initialize_asm_name_hash,
16107 change_decl_assembler_name): Update.
16108
12dc6974
SN
161092013-05-09 Sofiane Naci <sofiane.naci@arm.com>
16110
16111 * config/aarch64/aarch64.md: New movtf split.
16112 (*movtf_aarch64): Update.
16113 (aarch64_movdi_tilow): Handle TF modes and rename to
16114 aarch64_movdi_<mode>low.
16115 (aarch64_movdi_tihigh): Handle TF modes and rename to
16116 aarch64_movdi_<mode>high
16117 (aarch64_movtihigh_di): Handle TF modes and rename to
16118 aarch64_mov<mode>high_di
16119 (aarch64_movtilow_di): Handle TF modes and rename to
16120 aarch64_mov<mode>low_di
16121 (aarch64_movtilow_tilow): Remove spurious whitespace.
16122 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
16123 splits.
16124 (aarch64_print_operand): Update.
16125
227eb343
AM
161262013-05-09 Alan Modra <amodra@gmail.com>
16127
16128 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
16129 powerpc64le.
16130 * configure: Regenerate.
16131
0b013847
UB
161322013-05-08 Uros Bizjak <ubizjak@gmail.com>
16133
16134 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
16135 splitter preparation statements.
16136 * config/i386/sse.md (*vec_extract* splitters): Ditto.
16137 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
16138 adjust_address_nv.
16139
1dc3d6e9
BS
161402013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16141
16142 * gimple-ssa-strength-reduction.c (count_candidates): Change
16143 return value to int.
16144 (analyze_candidates_and_replace): Change type of length to int.
16145
e61e7d28
UB
161462013-05-08 Uros Bizjak <ubizjak@gmail.com>
16147
16148 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
16149 (*vec_extract<mode>): Use VI12_128 mode iterator.
16150 (*vec_extract<mode>_mem): Ditto.
16151 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
16152 attribute.
16153
4fbfcf44
DN
161542013-05-08 Diego Novillo <dnovillo@google.com>
16155
16156 PR bootstrap/54659
16157
16158 Revert:
4fbfcf44
DN
16159 2012-08-17 Diego Novillo <dnovillo@google.com>
16160
e61e7d28
UB
16161 PR bootstrap/54281
16162 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
16163 * config.in: Regenerate.
16164 * configure: Regenerate.
16165 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 16166
702d8703
JH
161672013-05-08 Jan Hubicka <jh@suse.cz>
16168
16169 PR lto/54095
16170 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
16171 * cgraph.h (symtab_node_base): Add unique_name.
16172 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
16173 input_overwrite_node, input_varpool_node): Stream unique_name.
16174 * cgraphclones.c (cgraph_create_virtual_clone,
16175 cgraph_function_versioning): Set unique_name.
16176 * ipa.c (function_and_variable_visibility): Set unique_name.
16177
8b28cf47
BS
161782013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16179
16180 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
16181 (alloc_cand_and_find_basis): Restrict conditional candidate
16182 processing to CAND_MULTs.
16183
e86074fd
JH
161842013-05-08 Jan Hubicka <jh@suse.cz>
16185
16186 PR lto/54095
16187 lto-symtab.c (lto_symtab_symbol_p): New function.
16188 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
16189 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
16190 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
16191 Skip static symbols.
16192
44398cbe
PC
161932013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
16194
16195 PR tree-optimization/57200
16196 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
16197 Only call inform if the preceding warning_at returns true.
16198
f6bc1c4a
HS
161992013-05-07 Han Shen <shenhan@google.com>
16200
16201 * cfgexpand.c (record_or_union_type_has_array_p): New function.
16202 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
16203 * common.opt (fstack-protector-strong): New option.
16204 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
16205 * doc/invoke.texi (Optimization Options): Document
16206 "-fstack-protector-strong".
16207 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
16208
4ffecb1f
SB
162092013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16210
16211 * config/mips/mips.c (mips_machine_reorg2): Return 0.
16212
5a107a0f
VM
162132013-05-07 Vladimir Makarov <vmakarov@redhat.com>
16214
16215 * ira.c (update_equiv_regs): Add insn having equiv memory even if
16216 it is not lhs of the insn.
16217 (setup_reg_equiv): Remove insn having equiv memory which it is not
16218 lhs of the insn.
16219 * lra-constraints.c (process_address): Try to improve generation
16220 code for address base + disp.
16221 (lra_constraints): Make correct the code for checking insn setting
16222 up backward equivalence. Remove insn only if it is in the init
16223 insn list.
16224 * lra-eliminations.c (update_reg_eliminate): Change return value.
16225 (lra_eliminate): Use the result.
16226
3f5783ea
UB
162272013-05-07 Uros Bizjak <ubizjak@gmail.com>
16228
16229 * config/i386/sse.md (ssescalarnummask): New mode attribute.
16230 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
16231 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
16232 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
16233 register target operands.
16234 (*vec_extractv8hi_sse2): New pattern.
16235 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
16236 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
16237 (*vec_extract<mode>_mem): New insn and split pattern.
16238
8a5800b8
CL
162392013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
16240
16241 * config/arm/arm.c (arm_asan_shadow_offset): New function.
16242 (TARGET_ASAN_SHADOW_OFFSET): Define.
16243 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
16244 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
16245
7bf55a70
BS
162462013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16247
16248 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
16249 (incr_vec_index): Return -1 if increment not found.
16250 (create_add_on_incoming_edge): Assert if increment not found.
16251 (record_increment): Limit number of increments recorded.
16252 (all_phi_incrs_profitable): Return false if an increment not found.
16253 (replace_profitable_candidates): Don't process increments that were
16254 not recorded.
16255 (analyze_candidates_and_replace): Limit size of incr_vec.
16256
3f8825c0
RB
162572013-05-07 Richard Biener <rguenther@suse.de>
16258
16259 * calls.c (special_function_p): setjmp-like functions are leaf.
16260 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
16261 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
16262
fd4842cd
SN
162632013-05-07 Sofiane Naci <sofiane.naci@arm.com>
16264
16265 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
16266 (aarch64_simd_mov<mode>): New expander.
16267 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
16268 (aarch64_simd_mov_to_<mode>high): Likewise.
16269 (aarch64_simd_mov_from_<mode>low): Likewise.
16270 (aarch64_simd_mov_from_<mode>high): Likewise.
16271 (aarch64_dup_lane<mode>): Update.
16272 (aarch64_dup_lanedi): New instruction pattern.
16273 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
16274 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
16275
a7a7d10e
BS
162762013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16277
16278 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
16279 (replace_mult_candidate): Remove unnecessary argument; remove
16280 unnecessary parameter from call to introduce_cast_before_cand.
16281 (replace_unconditional_candidate): Remove unnecessary parameter
16282 from call to replace_mult_candidate.
16283 (replace_conditional_candidate): Likewise.
16284 (insert_initializers): Use make_temp_ssa_name.
16285 (introduce_cast_before_cand): Remove unnecessary argument; use
16286 make_temp_ssa_name.
16287 (replace_one_candidate): Remove unnecessary argument; remove
16288 unnecessary parameter from calls to introduce_cast_before_cand.
16289 (replace_profitable_candidates): Remove unnecessary parameters
16290 from calls to replace_one_candidate.
16291
29105868
BS
162922013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16293
16294 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
16295 phi def as possibly hiding a basis for a CAND_ADD whose operands
16296 have been commuted in the analysis.
16297 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
16298
4095f9fa
N
162992013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16300
16301 * config/aarch64/aarch64.md
16302 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
16303 shift value between 0-4.
16304
39e843e8
RB
163052013-05-07 Richard Biener <rguenther@suse.de>
16306
16307 * double-int.h (rshift): New overload.
16308 * double-int.c (rshift): New function.
16309 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
16310 (create_reference_ops_from_ref): Remove.
16311 (vn_reference_insert): Use shared ops for constructing the
16312 reference and copy it.
16313
0a1a83cb
RB
163142013-05-07 Richard Biener <rguenther@suse.de>
16315
16316 PR middle-end/57190
16317 * tree-eh.c (sink_clobbers): Properly propagate
16318 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16319
43303d6f
JJ
163202013-05-07 Jakub Jelinek <jakub@redhat.com>
16321
ba7e83f8
JJ
16322 PR tree-optimization/57149
16323 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
16324 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
16325 collect_phi_def_edges, execute_late_warn_uninitialized): Use
16326 uninit_undefined_value_p instead of ssa_undefined_value_p.
16327
43303d6f
JJ
16328 PR debug/57184
16329 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
16330 for modifier == EXPAND_INITIALIZER.
16331
14523c25
AB
163322013-05-07 Anton Blanchard <anton@samba.org>
16333
16334 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
16335 for powerpc64 little endian.
16336 * configure: Regenerate.
16337
cb7c8be9
GS
163382013-05-06 Graham Stott <grahams@btinternet.com>
16339
16340 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
16341 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
16342 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
16343 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
16344
163452013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
16346
16347 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
16348 codes which allow non-lvalues.
16349
9a0ee7b0
MG
163502013-05-06 Marc Glisse <marc.glisse@inria.fr>
16351
16352 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
16353 components are all 1s.
16354 (integer_minus_onep): New function.
16355 * tree.h (integer_minus_onep): Declare it.
16356 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
16357 integer_minus_onep instead of integer_all_onesp.
16358
f2c17ea9
OE
163592013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16360
16361 PR target/52933
16362 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
16363 variations of these patterns.
16364
f75e6a51
UB
163652013-05-06 Uros Bizjak <ubizjak@gmail.com>
16366
16367 * config/i386/i386.md (isa): Add x64_sse4 member.
16368 (enabled): Handle x64_sse4.
16369 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
16370 instruction for 64bit SSE4_1 targets. Update insn attributes.
16371 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
16372 instruction for SSE4_1 targets. Update insn attributes.
16373 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16374 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
16375 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
16376 const_1 selector.
16377 (*vec_extractv4si): Rename from *sse4_1_pextrd.
16378 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
16379 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
16380
a986d468
OE
163812013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16382
16383 PR target/57108
16384 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
16385
382522cb
MK
163862013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
16387
16388 * final.c (do_assembler_dialects): Don't handle curly braces and
16389 vertical bar escaped by % as dialect delimiters.
16390 (output_asm_insn): Print curly braces and vertical bar if escaped
16391 by % and ASSEMBLER_DIALECT defined.
16392 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
16393 * doc/tm.texi: Regenerated.
16394
fb0d5c60
SB
163952013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16396
fb0d5c60
SB
16397 * config/mips/mips.c: Include tree-pass.h.
16398 (mips_reorg): Split in pre- and post-dbr_schedule parts.
16399 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
16400 (pass_mips_machine_reorg2): New machine specific pass.
16401 (insert_pass_mips_machine_reorg2): New pass plugin definition.
16402 (mips_option_override): Register the new pass.
16403 * rtl.h (cleanup_barriers): Remove prototype.
16404 (dbr_schedule): Likewise.
16405 * jump.c (cleanup_barriers): Make static.
16406 * reorg.c (dbr_schedule): Likewise.
16407
aa06a978
RB
164082013-05-06 Richard Biener <rguenther@suse.de>
16409
16410 PR tree-optimization/57185
16411 * tree-parloops.c (add_field_for_reduction): Handle anonymous
16412 SSA names properly.
16413
0b953bec
UB
164142013-05-06 Uros Bizjak <ubizjak@gmail.com>
16415
16416 PR target/57106
16417 * config/i386/i386.c (add_parameter_dependencies): Add dependence
16418 between "first_arg" and "insn", not "last" and "insn".
16419
28708525
WS
164202013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16421
16422 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
16423 (find_candidates_in_block): Re-enable slsr_process_phi.
16424 (create_phi_basis): Fix double counting of candidate adjustment.
16425
0107dca2
RB
164262013-05-06 Richard Biener <rguenther@suse.de>
16427
16428 PR middle-end/57147
16429 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
16430 the edge is also fallthru, preserve it and just clear the
16431 abnormal flag.
16432 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
16433 also complex, preserve that and just clear the fallthru flag.
16434 * tree-inline.c (update_ssa_across_abnormal_edges): Also
16435 update virtual operands.
16436
470d4d13
AM
164372013-05-06 Alan Modra <amodra@gmail.com>
16438
16439 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
16440 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
16441 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
16442 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
16443 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16444 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
16445
8f1dbf8d
AM
164462013-05-06 Alan Modra <amodra@gmail.com>
16447
16448 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
16449 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
16450 (DEFAULT_ASM_ENDIAN): Define.
16451 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16452 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
16453 Update -K PIC clause from sysv4.h.
16454 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
16455 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
16456
54890767
AM
164572013-05-06 Alan Modra <amodra@gmail.com>
16458
16459 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
16460 twice for little-endian.
16461 (ashrdi3_no_power, ashrdi3): Support little-endian.
16462
2353515d
OE
164632013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16464
16465 PR target/55303
16466 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
16467 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
16468 related expanders.
16469 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
16470 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
16471 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
16472 New predicates.
16473
33e67557
SB
164742013-05-05 Steven Bosscher <steven@gcc.gnu.org>
16475 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16476
16477 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
16478 * config/pa/pa.opt: Make mbig-switch a no-op.
16479 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
16480 (CASE_VECTOR_MODE): Always return SImode.
16481 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
16482 for the !TARGET_BIG_SWITCH case.
16483 * config/pa/pa-linux.h: Likewise.
16484 * config/pa/pa-openbsd.h: Likewise.
16485 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
16486 * config/pa/pa.md (short_jump): Remove define_insn.
16487 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
16488 (casesi0): Remove define_insn.
16489 (type): Remove btable_branch.
16490 (pa_combine_type): Likewise.
16491 (in_nullified_branch_delay): Likewise.
16492 (in_call_delay): Likewise.
16493 (define_delay): Likewise.
16494 (define_insn_reservation "Z3"): Likewise.
16495 (define_insn_reservation "Z4"): Likewise.
16496 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
16497 (pa_adjust_insn_length): Remove adjustment for btable branches.
16498 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
16499 and mno-big-switch
16500
3095685e
UB
165012013-05-05 Uros Bizjak <ubizjak@gmail.com>
16502
16503 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16504 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
16505 Add m->r,x alternatives.
16506 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
16507 splitters using SWI48x mode iterator.
16508 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
16509 TARGET_64BIT. Add m->x alternative.
16510 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
16511 Add o->x alternative. Enable for TARGET_SSE.
16512 (sse_storeq): Remove expander.
16513 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
16514 with memory input operand.
16515 (*vec_extractv2di_1 splitter): New.
16516 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
16517 * config/i386/i386.md (ssevecmodelower): New mode attribute.
16518
4b36ae28
SB
165192013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16520
16521 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
16522 (INT_LOWPART): Delete.
16523 (extract_MB): Adjust.
16524 (extract_ME): Adjust.
16525 (print_operand): Adjust.
16526
da226db2
SB
165272013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16528
16529 * config/rs6000/predicates.md (reg_or_add_cint_operand,
16530 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16531 (reg_or_logical_cint_operand, easy_fp_constant,
16532 logical_const_operand): Delete "CONST_DOUBLE" case.
16533 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
16534 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 16535 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
16536 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
16537 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
16538 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
16539 test.
16540 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
16541 CONST_DOUBLE DImode/VOIDmode case.
16542 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
16543 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16544 CONST_DOUBLE VOIDmode case.
16545 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16546 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
16547 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
16548 Delete CONST_DOUBLE case.
16549 (splitters for mov FMOVE64 const_double): Delete
16550 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16551 "HOST_BITS_PER_WIDE_INT >= 64" test.
16552 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
16553 case.
16554 (mov DI const_double): Delete.
16555
40de22d6
JJ
165562013-05-04 Jakub Jelinek <jakub@redhat.com>
16557
16558 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
16559 on op shows all bits zero in mode of a lowpart subreg, return zero.
16560
5ec6aff2
MM
165612013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16562
16563 PR target/57150
16564 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
16565 to save TFmode registers and DImode to save TImode registers for
16566 caller save operations.
16567 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
16568 mark being partially clobbered since they only use the first
16569 double word.
16570
16571 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
16572 and TDmode only use the upper 64-bits of each VSX register.
16573
2cefad90
BS
165742013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16575
16576 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
16577 (find_candidates_in_block): Disable slsr_process_phi.
16578
d6d7eee1
GW
165792013-05-03 Guozhi Wei <carrot@google.com>
16580
16581 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
16582 constructor to ...
16583 (build_init_ctor): ... here.
d6d7eee1 16584
9b92d12b
BS
165852013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16586
16587 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
16588 (slsr_cand_d): Redefine def_phi.
16589 (stride_status, phi_adjust_status, count_phis_status): New enums.
16590 (find_phi_def): New.
16591 (find_basis_for_base_expr): New.
16592 (find_basis_for_candidate): Handle hidden bases.
16593 (alloc_cand_and_find_basis): Handle phi candidates.
16594 (slsr_process_phi): New.
16595 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
16596 (create_mul_imm_cand): Likewise.
16597 (create_add_ssa_cand): Exclude phi base candidates.
16598 (create_add_imm_cand): Likewise.
16599 (slsr_process_cast): Likewise.
16600 (slsr_process_copy): Likewise.
16601 (find_candidates_in_block): Handle phi candidates.
16602 (dump_candidate): Likewise.
16603 (unconditional_cands): Delete.
16604 (unconditional_cands_with_known_stride_p): Delete.
16605 (phi_dependent_cand_p): New.
16606 (cand_increment): Handle phi-dependent candidates.
16607 (replace_dependent): Delete.
16608 (replace_mult_candidate): New.
16609 (replace_unconditional_candidate): New.
16610 (incr_vec_index): Move to avoid forward reference.
16611 (create_add_on_incoming_edge): New.
16612 (create_phi_basis): New.
16613 (replace_dependents): Delete.
16614 (replace_conditional_candidate): New.
16615 (phi_add_costs): New.
16616 (replace_uncond_cands_and_profitable_phis): New.
16617 (record_increment): Handle phi adjustments.
16618 (record_phi_increments): New.
16619 (record_increments): Handle phi adjustments.
16620 (phi_incr_cost): New.
16621 (lowest_cost_path): Handle phis.
16622 (total_savings): Likewise.
16623 (analyze_increments): Likewise.
16624 (ncd_with_phi): New.
16625 (ncd_of_cand_and_phis): New.
16626 (nearest_common_dominator_for_cands): Handle phi increments.
16627 (all_phi_incrs_profitable): New.
16628 (replace_profitable_candidates): Handle phi-dependent candidates.
16629 (analyze_candidates_and_replace): Likewise.
16630
68f073d4
TJ
166312013-05-03 Teresa Johnson <tejohnson@google.com>
16632
16633 PR bootstrap/57154
16634 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
16635 do not exceed REG_BR_PROB_BASE.
16636
a4ee7cb9
JL
166372013-05-03 Jeff Law <law@redhat.com>
16638
ade67f70 16639 PR tree-optimization/57144
a4ee7cb9
JL
16640 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
16641 operand of the condition will bit into the new type when eliminating
16642 a cast feeding a condition.
16643
47954c4e
JJ
166442013-05-03 Jakub Jelinek <jakub@redhat.com>
16645
16646 PR rtl-optimization/57130
3095685e
UB
16647 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
16648 of COMPARE as in_code to the recursive call if needed.
47954c4e 16649
3c21604f
UB
166502013-05-03 Uros Bizjak <ubizjak@gmail.com>
16651
16652 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
16653 (enabled): Handle new members.
16654 * config/i386/sse.md (*vec_concatv2si): Merge from
16655 *vec_concatv2si_sse2 and vec_concatv2si_sse.
16656 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
16657
12211b99 166582013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
16659
16660 PR tree-optimization/57027
16661 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
16662 for fnms opportunity, check we got the prerequisite kind
16663 of tree / gimple before using accessor functions.
16664
07bfc9ec
RB
166652013-05-03 Richard Biener <rguenther@suse.de>
16666
16667 * double-int.h (lshift): New overload without precision
16668 and arith argument.
16669 (operator *=, operator +=, operator -=): Move ...
16670 * double-int.c (operator *=, operator +=, operator -=): ... here
16671 and implement more efficiently.
16672 (mul_double_with_sign): Remove.
16673 (lshift_double): Adjust to take unsinged shift argument, push
16674 dispatching code to callers.
16675 (mul_double_wide_with_sign): Add early out for callers that
16676 are not interested in high parts or overflow.
16677 (lshift): New function.
16678 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
16679 dispatch code here.
16680 (lrotate, rrotate): Use logical shifts.
16681 * expr.c (get_inner_reference): Use lshift.
16682 * fixed-value.c (do_fixed_divide): Likewise.
16683 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16684 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16685 (indirect_refs_may_alias_p): Likewise.
16686 (stmt_kills_ref_p_1): Likewise.
16687
7769bb64
VP
166882013-05-03 Vidya Praveen <vidyapraveen@arm.com>
16689
16690 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
16691
1d0c8e5c
VP
166922013-05-03 Vidya Praveen <vidyapraveen@arm.com>
16693
16694 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
16695 scalar form of FABD instruction.
16696
f15feaf9
VM
166972013-05-02 Vladimir Makarov <vmakarov@redhat.com>
16698
16699 * lra-constraints.c (process_alt_operands): Add checking alt
16700 number to choose the best alternative.
16701
d90e76d4
RB
167022013-05-02 Richard Biener <rguenther@suse.de>
16703
16704 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
16705 bitmap and its handling.
16706 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
16707
9f8e7a96
RB
167082013-05-02 Richard Biener <rguenther@suse.de>
16709
16710 PR middle-end/57140
16711 * tree-inline.c (copy_loops): Properly handle removed loops.
16712 (copy_cfg_body): Mark destination loops for fixup if source
16713 loops needed fixup.
16714
f3a81b39
GY
167152013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
16716
16717 PR target/56732
16718 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
16719 generating simple_return for naked functions.
16720
7b920a9a
MJ
167212013-05-02 Martin Jambor <mjambor@suse.cz>
16722
16723 PR middle-end/56988
16724 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
16725 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
16726 flags match.
16727 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
16728 ipa_agg_replacement_value structures.
16729 (known_aggs_to_agg_replacement_list): Likewise.
16730 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
16731 (read_agg_replacement_chain): Likewise.
16732 (ipcp_transform_function): Also check that by_ref flags match.
16733
2c41c19d
RB
167342013-05-02 Richard Biener <rguenther@suse.de>
16735
16736 * graphds.h (struct graph): Add obstack member.
16737 * graphds.c (new_graph): Initialize obstack and allocate
16738 vertices from it.
16739 (add_edge): Allocate edge from the obstack.
3c21604f 16740 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 16741
8b47039c
TJ
167422013-05-02 Teresa Johnson <tejohnson@google.com>
16743
16744 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
16745 divides.
16746 * cfg.c (update_bb_profile_for_threading): Ditto.
16747 * tree-inline.c (copy_bb): Ditto.
16748 (copy_edges_for_bb): Ditto.
16749 (initialize_cfun): Ditto.
16750 (copy_cfg_body): Ditto.
16751 (expand_call_inline): Ditto.
16752 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
16753 (estimate_node_size_and_time): Ditto.
16754 (inline_merge_summary): Ditto.
16755 * cgraphclones.c (cgraph_clone_edge): Ditto.
16756 (cgraph_clone_node): Ditto.
16757 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16758 (compute_trg_info): Ditto.
16759
da65928c
IB
167602013-05-02 Ian Bolton <ian.bolton@arm.com>
16761
16762 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
16763 S reg when fp attribute set.
16764 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
16765
add3c965
IB
167662013-05-02 Ian Bolton <ian.bolton@arm.com>
16767
16768 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
16769 New pattern.
16770 (*and_one_cmplsi3_compare0_uxtw): Likewise.
16771 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
16772 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
16773
fdd43ac4
RB
167742013-05-02 Richard Biener <rguenther@suse.de>
16775
16776 * tree-scalar-evolution.c (scev_info_hasher): Remove.
16777 (struct instantiate_cache_entry): New type.
16778 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
16779 (struct instantiate_cache_type): New type.
16780 (set_instantiated_value, get_instantiated_value): Remove.
16781 (get_instantiated_value_entry): New function.
16782 (instantiate_scev_name): Use the new cache and adjust.
16783 (instantiate_scev_poly): Adjust.
16784 (instantiate_scev_binary): Likewise.
16785 (instantiate_array_ref): Likewise.
16786 (instantiate_scev_convert): Likewise.
16787 (instantiate_scev_not): Likewise.
16788 (instantiate_scev_3): Likewise.
16789 (instantiate_scev_2): Likewise.
16790 (instantiate_scev_r): Likewise.
16791 (instantiate_scev): Likewise.
16792 (resolve_mixers): Likewise.
16793
36ff9dfb
VM
167942013-05-01 Vladimir Makarov <vmakarov@redhat.com>
16795
16796 PR target/57091
16797 * lra-constraints.c (best_small_class_operands_num): Remove.
16798 (process_alt_operands): Remove small_class_operands_num. Take
16799 small classes operands into losers and only if the operand is not
16800 matched. Modify debugging output.
16801 (curr_insn_transform): Remove best_small_class_operands_num.
16802 Print insn name.
16803
36054fab
JG
168042013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16805
16806 * config/aarch64/aarch64-builtins.c
16807 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
16808 * config/aarch64/aarch64-simd-builtins.def
16809 (reduc_splus_): Add new modes.
16810 (reduc_uplus_): New.
16811 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
16812 (reduc_uplus_v4sf): Likewise.
16813 (reduc_splus_v4sf): Likewise.
16814 (aarch64_addv<mode>): Likewise.
16815 (reduc_uplus_<mode>): Likewise.
16816 (reduc_splus_<mode>): Likewise.
16817 (aarch64_addvv2di): Likewise.
16818 (reduc_uplus_v2di): Likewise.
16819 (reduc_splus_v2di): Likewise.
16820 (aarch64_addvv2si): Likewise.
16821 (reduc_uplus_v2si): Likewise.
16822 (reduc_splus_v2si): Likewise.
16823 (reduc_<sur>plus_<mode>): New.
16824 (reduc_<sur>plus_v2di): Likewise.
16825 (reduc_<sur>plus_v2si): Likewise.
16826 (reduc_<sur>plus_v4sf): Likewise.
16827 (aarch64_addpv4sf): Likewise.
16828 * config/aarch64/arm_neon.h
16829 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
16830 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
16831 add UNSPEC_SADDV, UNSPEC_UADDV.
16832 (SUADDV): New.
16833 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
16834
6dce23a8
JG
168352013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16836
16837 * config/aarch64/arm_neon.h
16838 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
16839
1598945b
JG
168402013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16841
16842 * config/aarch64/aarch64-builtins
16843 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
16844
998eaf97
JG
168452013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16846
16847 * config/aarch64/aarch64-simd-builtins.def
16848 (reduc_smax_): New.
16849 (reduc_smin_): Likewise.
16850 (reduc_umax_): Likewise.
16851 (reduc_umin_): Likewise.
16852 (reduc_smax_nan_): Likewise.
16853 (reduc_smin_nan_): Likewise.
16854 (fmax): Remove.
16855 (fmin): Likewise.
16856 (smax): Update for V2SF, V4SF and V2DF modes.
16857 (smin): Likewise.
16858 (smax_nan): New.
16859 (smin_nan): Likewise.
16860 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
16861 (<su><maxmin><mode>3): ...This, refactor.
16862 (s<maxmin><mode>3): New.
16863 (<maxmin_uns><mode>3): Likewise.
16864 (reduc_<maxmin_uns>_<mode>): Refactor.
16865 (reduc_<maxmin_uns>_v4sf): Likewise.
16866 (reduc_<maxmin_uns>_v2si): Likewise.
16867 (aarch64_<fmaxmin><mode>: Remove.
16868 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
16869 new builtin names.
16870 (vmin<q>_f<32,64>): Likewise.
16871 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16872 (FMAXMIN): New.
16873 (su): Add mappings for smax, smin, umax, umin.
16874 (maxmin): New.
16875 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16876 (FMAXMIN): Rename as...
16877 (FMAXMIN_UNS): ...This.
16878 (maxminv): Remove.
16879 (fmaxminv): Likewise.
16880 (fmaxmin): Likewise.
16881 (maxmin_uns): New.
16882 (maxmin_uns_op): Likewise.
16883
bd11644e
JG
168842013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16885
16886 * config/aarch64/arm_neon.h
16887 (vac<ge, gt><sd>_f<32, 64>): Rename to...
16888 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
16889 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
16890
75dd5ace
JG
168912013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16892
16893 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
16894 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
16895
7c19979f
JG
168962013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16897
16898 * config/aarch64/aarch64-simd.md
16899 (vcond<mode>_internal): Handle special cases for constant masks.
16900 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
16901 (vcondu<mode><mode>): Likewise.
16902 (vcond<v_cmp_result><mode>): New.
16903
bb60efd9
JG
169042013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16905
16906 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
16907 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
16908 * config/aarch64/aarch64-simd-builtins.def
16909 (cmeq): Update to BUILTIN_VALLDI.
16910 (cmgt): Likewise.
16911 (cmge): Likewise.
16912 (cmle): Likewise.
16913 (cmlt): Likewise.
16914 * config/aarch64/arm_neon.h
16915 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
16916 to builtins or C as appropriate.
16917
889b9412
JG
169182013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16919
16920 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
16921 (cmgeu): ...This.
16922 (cmhi): Rename to...
16923 (cmgtu): ...This.
16924 * config/aarch64/aarch64-simd.md
16925 (simd_mode): Add SF.
16926 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
16927 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
16928 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
16929 (cstore<mode>_neg): ...This.
16930 * config/aarch64/iterators.md
16931 (VALLF): new.
16932 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
16933 (COMPARISONS): New.
16934 (UCOMPARISONS): Likewise.
16935 (optab): Add missing comparisons.
16936 (n_optab): New.
16937 (cmp_1): Likewise.
16938 (cmp_2): Likewise.
16939 (CMP): Likewise.
16940 (cmp): Remove.
16941 (VCMP_S): Likewise.
16942 (VCMP_U): Likewise.
16943 (V_cmp_result): Add DF, SF modes.
16944 (v_cmp_result): Likewise.
16945 (v): Likewise.
16946 (vmtype): Likewise.
16947 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
16948
0a7dbb76
GY
169492013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
16950
16951 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
16952 define_insn to define_insn_and_split.
16953 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
16954 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
16955 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
16956 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
16957 (thumb2_negscc): Likewise.
16958
fb614ca6
GY
169592013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
16960
16961 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
16962
9e64a0bf
GY
169632013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
16964
16965 * config/arm/thumb2.md: Remove trailing whitespaces.
16966
d6b28156
RS
169672013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
16968
16969 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
16970 Use gen_int_mode rather than GEN_INT.
16971
f91674c3
L
169722013-04-30 H.J. Lu <hongjiu.lu@intel.com>
16973
b0dec607 16974 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
16975 debug_gimple_stmt.
16976
3551257c
RB
169772013-04-30 Richard Biener <rguenther@suse.de>
16978
16979 PR middle-end/57122
3c21604f 16980 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 16981
4c1aff1c
RB
169822013-04-30 Richard Biener <rguenther@suse.de>
16983
16984 PR middle-end/57107
16985 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
16986
54b8379a
AB
169872013-04-30 Andrey Belevantsev <abel@ispras.ru>
16988
16989 PR rtl-optimization/56957
16990 PR rtl-optimization/57105
54b8379a
AB
16991 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
16992 variable. Use just INSN_UID for determining whether an insn
16993 should be only disconnected from the insn stream.
16994 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
16995
abc27962
JJ
169962013-04-30 Jakub Jelinek <jakub@redhat.com>
16997
16998 PR tree-optimization/57104
16999 * tsan.c (instrument_expr): Don't instrument accesses to
17000 DECL_HARD_REGISTER VAR_DECLs.
17001
0fc822d0
RB
170022013-04-30 Richard Biener <rguenther@suse.de>
17003
17004 * function.h (loops_for_fn): New inline function.
17005 (set_loops_for_fn): Likewise.
17006 * cfgloop.h (place_new_loop): Add struct function parameter.
17007 (get_loop): Likewise.
17008 (get_loops): Likewise.
17009 (number_of_loops): Likewise.
17010 (fel_next): Adjust.
17011 (fel_init): Likewise.
17012 * cfg.c (get_loop_copy): Adjust.
17013 * cfgloop.c (flow_loops_dump): Likewise.
17014 (record_loop_exits): Likewise.
17015 (verify_loop_structure): Likewise.
17016 * cfgloopanal.c (mark_irreducible_loops): Likewise.
17017 (estimate_reg_pressure_cost): Likewise.
17018 (mark_loop_exit_edges): Likewise.
17019 * cfgloopmanip.c (place_new_loop): Likewise.
17020 (add_loop): Likewise.
17021 (duplicate_loop): Likewise.
17022 * graph.c (draw_cfg_nodes): Likewise.
17023 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
17024 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
17025 (extract_affine_chrec): Likewise.
17026 (build_scop_iteration_domain): Likewise.
17027 * graphite.c (graphite_initialize): Likewise.
17028 * ira-build.c (create_loop_tree_nodes): Likewise.
17029 (more_one_region_p): Likewise.
17030 (rebuild_regno_allocno_maps): Likewise.
17031 (mark_loops_for_removal): Likewise.
17032 (mark_all_loops_for_removal): Likewise.
17033 (remove_unnecessary_regions): Likewise.
17034 (ira_build): Likewise.
17035 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
17036 * loop-init.c (fix_loop_structure): Likewise.
17037 (gate_rtl_move_loop_invariants): Likewise.
17038 (gate_rtl_unswitch): Likewise.
17039 (gate_rtl_unroll_and_peel_loops): Likewise.
17040 (rtl_doloop): Likewise.
17041 * lto-streamer-in.c (input_cfg): Likewise.
17042 * lto-streamer-out.c (output_cfg): Likewise.
17043 * modulo-sched.c (sms_schedule): Likewise.
17044 * predict.c (tree_estimate_probability): Likewise.
17045 (tree_estimate_probability_driver): Likewise.
17046 (estimate_loops): Likewise.
17047 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
17048 (move_sese_region_to_fn): Likewise.
17049 (debug_loop_num): Likewise.
17050 * tree-chrec.c (chrec_evaluate): Likewise.
17051 (hide_evolution_in_other_loops_than_loop): Likewise.
17052 (chrec_component_in_loop_num): Likewise.
17053 (reset_evolution_in_loop): Likewise.
17054 (evolution_function_is_invariant_rec_p): Likewise.
17055 * tree-if-conv.c (main_tree_if_conversion): Likewise.
17056 * tree-inline.c (copy_loops): Likewise.
17057 (copy_cfg_body): Likewise.
17058 (tree_function_versioning): Likewise.
17059 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
17060 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
17061 Likewise.
17062 (add_to_evolution_1): Likewise.
17063 (scev_const_prop): Likewise.
17064 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
17065 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
17066 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
17067 (tree_ssa_lim_initialize): Likewise.
17068 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
17069 (verify_loop_closed_ssa): Likewise.
17070 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
17071 (tree_ssa_loop_im): Likewise.
17072 (tree_ssa_loop_unswitch): Likewise.
17073 (tree_vectorize): Likewise.
17074 (check_data_deps): Likewise.
17075 (tree_ssa_loop_ivcanon): Likewise.
17076 (tree_ssa_loop_bounds): Likewise.
17077 (tree_complete_unroll): Likewise.
17078 (tree_complete_unroll_inner): Likewise.
17079 (tree_parallelize_loops): Likewise.
17080 (tree_ssa_loop_prefetch): Likewise.
17081 (tree_ssa_loop_ivopts): Likewise.
17082 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
17083 * tree-vectorizer.c (vectorize_loops): Likewise.
17084
37953bd3
MF
170852013-04-29 Mike Frysinger <vapier@gentoo.org>
17086
17087 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
17088 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
17089 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
17090 with EABI_LINK_SPEC.
17091
f9ed28db
UB
170922013-04-29 Uros Bizjak <ubizjak@gmail.com>
17093
17094 PR target/44578
17095 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
17096 alternative.
17097
deca73f5
VM
170982013-04-29 Vladimir Makarov <vmakarov@redhat.com>
17099
17100 PR target/57097
37953bd3 17101 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
17102 using memory for pseudos. Print cost dump for alternatives.
17103 Modify cost values for conflicts with early clobbers.
17104 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
17105
fdca7d03
UB
171062013-04-29 Uros Bizjak <ubizjak@gmail.com>
17107
17108 PR target/57098
17109 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
17110
0b064172
IB
171112013-04-29 Ian Bolton <ian.bolton@arm.com>
17112
17113 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
17114 from/to S register.
17115 (movdi_aarch64): Support LDR/STR from/to D register.
17116
473cec55
IB
171172013-04-29 Ian Bolton <ian.bolton@arm.com>
17118
17119 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
17120 or higher by default.
17121
a6f30e66
RB
171222013-04-29 Richard Biener <rguenther@suse.de>
17123
17124 PR middle-end/57075
17125 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
17126 even if not adding abnormal edges for calls that can make
17127 abnormal gotos.
17128
0c2b2040
RB
171292013-04-29 Richard Biener <rguenther@suse.de>
17130
17131 PR middle-end/57103
17132 * tree-cfg.c (move_stmt_op): Fix condition under which to update
17133 TREE_BLOCK.
17134 (move_stmt_r): Remove redundant checking.
17135
f41f80f9
TJ
171362013-04-29 Teresa Johnson <tejohnson@google.com>
17137
17138 PR bootstrap/57077
17139 * basic-block.h (apply_scale): New function.
17140 (apply_probability): Use apply_scale.
17141 * gimple-streamer-in.c (input_bb): Ditto.
17142 * lto-streamer-in.c (input_cfg): Ditto.
17143 * lto-cgraph.c (merge_profile_summaries): Ditto.
17144 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 17145 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
17146 (copy_edges_for_bb): Ditto.
17147 (copy_cfg_body): Ditto.
17148
315bbd2e
TV
171492013-04-29 Tom de Vries <tom@codesourcery.com>
17150
17151 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
17152 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
17153 (tail_merge_optimize): Handle current_loops == NULL.
17154
ebbd90d8
JL
171552013-04-26 Jeff Law <law@redhat.com>
17156
17157 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
17158 (simplify_cond_using_ranges): Generalize code to simplify
17159 COND_EXPRs where one argument is a constant and the other
17160 is an SSA_NAME created by an integral type conversion.
17161
8b9b57eb
KT
171622013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17163
17164 * config/arm/arm.md (store_minmaxsi): Use only when
17165 optimize_insn_for_size_p.
17166
9498e5dc
CB
171672013-04-29 Christian Bruel <christian.bruel@st.com>
17168
17169 PR target/57108
17170 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
17171
6093bc06
RB
171722013-04-29 Richard Biener <rguenther@suse.de>
17173
17174 PR middle-end/57089
fdca7d03
UB
17175 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
17176 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
17177 (expand_omp_for_generic): Properly add loops.
17178 (expand_omp_for_static_nochunk): Likewise.
17179 (expand_omp_for_static_chunk): Likewise.
17180 (expand_omp_for): For the degenerate case fixup loops.
17181 (expand_omp_sections): Fix default bb placement in loops.
17182 (expand_omp_atomic_pipeline): Properly add loops.
17183
84aacbfd
KT
171842013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17185
17186 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
17187
8dee4479
TV
171882013-04-29 Tom de Vries <tom@codesourcery.com>
17189
17190 * tree-ssa-tail-merge.c: Update header comment.
17191
47934dc4
JG
171922013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17193
17194 * config/aarch64/arm_neon.h
17195 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
17196 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
17197 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
17198 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
17199 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
17200 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
17201 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
17202 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
17203
384be29f
JG
172042013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17205
17206 * config/aarch64/aarch64-simd.md
17207 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
17208 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
17209 fix_trunc, fixuns_trunc.
17210 (ftrunc<VDQF:mode>2): New.
17211 * config/aarch64/iterators.md (optab): Add fix, fixuns.
17212 (fix_trunc_optab): New.
17213
0386b123
JG
172142013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17215
17216 * config/aarch64/aarch64-builtins.c
17217 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
17218 iceilf, lround, iroundf.
17219
00fcb892
UB
172202013-04-29 Uros Bizjak <ubizjak@gmail.com>
17221
17222 PR target/54349
17223 * config/i386/i386.h (enum ix86_tune_indices)
17224 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
17225 New, split from X86_TUNE_INTER_UNIT_MOVES.
17226 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
17227 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
17228 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
17229 (TARGET_INTER_UNIT_MOVES): Remove.
17230 * config/i386/i386.c (initial_ix86_tune_features): Update.
17231 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
17232 (ix86_expand_convert_uns_didf_sse): Use
17233 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17234 (ix86_expand_vector_init_one_nonzero): Ditto.
17235 (ix86_expand_vector_init_interleave): Ditto.
17236 (inline_secondary_memory_needed): Return true for moves from SSE class
17237 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
17238 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
17239 * config/i386/constraints.md (Yi, Ym): Depend on
17240 TARGET_INTER_UNIT_MOVES_TO_VEC.
17241 (Yj, Yn): New constraints.
17242 * config/i386/i386.md (*movdi_internal): Change constraints of
17243 operand 1 from Yi to Yj and from Ym to Yn.
17244 (*movsi_internal): Ditto.
17245 (*movdf_internal): Ditto.
17246 (*movsf_internal): Ditto.
17247 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
17248 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17249 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
17250 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
17251 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
17252 * config/i386/sse.md (movdi_to_sse): Ditto.
17253 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
17254 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
17255 TARGET_INTER_UNIT_MOVES.
17256 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
17257 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
17258 instead of TARGET_INTER_UNIT_MOVES.
17259 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
17260 operand 1 from Yi to Yj and from Ym to Yn.
17261
4c871069
JG
172622013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17263
17264 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
17265 (float_truncate_hi_): Likewise.
17266 (float_extend_lo_): Likewise.
17267 (float_truncate_lo_): Likewise.
17268 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
17269 (aarch64_float_extend_lo_v2df): Likewise.
17270 (vec_unpacks_hi_v4sf): Likewise.
17271 (aarch64_float_truncate_lo_v2sf): Likewise.
17272 (aarch64_float_truncate_hi_v4sf): Likewise.
17273 (vec_pack_trunc_v2df): Likewise.
17274 (vec_pack_trunc_df): Likewise.
17275
1709ff9b
JG
172762013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17277
17278 * config/aarch64/aarch64-builtins.c
17279 (aarch64_fold_builtin): Fold float conversions.
17280 * config/aarch64/aarch64-simd-builtins.def
17281 (floatv2si, floatv4si, floatv2di): New.
17282 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
17283 * config/aarch64/aarch64-simd.md
17284 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
17285 * config/aarch64/iterators.md (FLOATUORS): New.
17286 (optab): Add float, floatuns.
17287 (su_optab): Likewise.
17288
ce966824
JG
172892013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17290
17291 * config/aarch64/aarch64-builtins.c
17292 (aarch64_builtin_vectorized_function): Use new names for
17293 fcvt builtins.
17294 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
17295 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
17296 (fcvtzu): Split as...
17297 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
17298 (fcvtas): Split as...
17299 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
17300 (fcvtau): Split as...
17301 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
17302 (fcvtps): Split as...
17303 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
17304 (fcvtpu): Split as...
17305 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
17306 (fcvtms): Split as...
17307 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
17308 (fcvtmu): Split as...
17309 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
17310 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
17311 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
17312 (lfrintnusf, lfrintnudf): Likewise.
17313 * config/aarch64/aarch64-simd.md
17314 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
17315 define_insn.
17316 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
17317 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
17318 (fcvt_pattern): Likewise.
17319
b9de24fe
JG
173202013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17321
17322 * config/aarch64/aarch64-simd.md
17323 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
17324 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
17325
77a205be
JG
173262013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17327
17328 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
17329 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
17330 (vrnd<a,m,n,p>_f32): Implement using builtins.
17331 (vrnd<i,x><q>_f<32, 64>): New.
17332
0659ce6f
JG
173332013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17334
17335 * config/aarch64/aarch64-builtins.c
17336 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
17337 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
17338 (frintz): Rename to...
17339 (btrunc): ...this.
17340 (frintp): Rename to...
17341 (ceil): ...this.
17342 (frintm): Rename to...
17343 (floor): ...this.
17344 (frinti): Rename to...
17345 (nearbyint): ...this.
17346 (frintx): Rename to...
17347 (rint): ...this.
17348 (frinta): Rename to...
17349 (round): ...this.
17350 * config/aarch64/aarch64-simd.md
17351 (aarch64_frint<frint_suffix><mode>): Delete.
17352 (<frint_pattern><mode>2): Convert to insn.
17353 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
17354 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
17355 (frint_pattern): Likewise.
17356 (frint_suffix): Likewise.
17357
ea78906a
RB
173582013-04-29 Richard Biener <rguenther@suse.de>
17359
17360 PR tree-optimization/57081
17361 * loop-init.c: Include tree-flow.h.
17362 (loop_optimizer_finalize): Free number of iteration estimates.
17363 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
17364
baee1763
JJ
173652013-04-29 Jakub Jelinek <jakub@redhat.com>
17366
94dc5332
JJ
17367 PR tree-optimization/57083
17368 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
17369 non-singleton shift count range, zero extend low_bound for uns case.
17370
baee1763
JJ
17371 * config/i386/predicates.md (general_vector_operand): New predicate.
17372 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
17373 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
17374 if they aren't nonimmediate operands. If their original values
17375 satisfy const_vector_equal_evenodd_p, don't shift them.
17376 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
17377 predicates. For the SSE4.1 case force operands[{1,2}] into registers
17378 if not nonimmediate_operand.
17379 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
17380 instead of register_operand.
17381 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
17382
a9073727 173832013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
17384
17385 * stor-layout.c (finalize_size_functions): Allocate a structure and
17386 reset cfun before dumping the functions.
17387
ba8011e6
JJ
173882013-04-27 Jakub Jelinek <jakub@redhat.com>
17389
d6fde69e
JJ
17390 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
17391
ba8011e6
JJ
17392 PR target/56866
17393 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
17394 use xop_pmacsdqh if uns_p.
17395 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
17396 the immediate rotate count.
17397
2c62cbaa
VM
173982013-04-26 Vladimir Makarov <vmakarov@redhat.com>
17399
17400 * rtl.h (struct rtx_def): Add comment for field jump.
17401 (LRA_SUBREG_P): New macro.
17402 * recog.c (register_operand): Check LRA_SUBREG_P.
17403 * lra.c (lra): Add note at the end of RTL code. Align non-empty
17404 stack frame.
17405 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
17406 (lra_final_code_change): Skip subreg change for operators.
17407 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
17408 if there are no operand changes.
17409 * lra-constraints.c (curr_insn_set): New.
17410 (match_reload): Set LRA_SUBREG_P.
17411 (emit_spill_move): Ditto.
17412 (check_and_process_move): Use curr_insn_set. Process only single
17413 set insns. Don't initialize sec_mem_p and change_p.
17414 (simplify_operand_subreg): Use LRA_SUBREG_P.
17415 (reg_in_class_p): New function.
17416 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
17417 of #ifdef. Add code to remove cycling.
17418 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
17419 non-null disp. Reload inner instead of disp when base and index
17420 are null. Try to put lo_sum into register.
17421 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
17422 (check_and_process_move): Move code for move cost check to
17423 simple_move_p. Remove equiv_substitution.
17424 (simple_move_p): New function.
17425 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
17426 curr_insn_set. Call check_and_process_move only for single set
17427 insns. Use the new function. Move call of check_and_process_move
17428 after operand equiv substitution and address process.
17429
e7d764f3
JJ
174302013-04-26 Jakub Jelinek <jakub@redhat.com>
17431
17432 PR go/57045
17433 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
17434 with nonlocal goto receivers or returns twice calls, ignore
17435 unininitialized values from abnormal edges to nl goto receiver
17436 or returns twice call.
17437
41e10689
JJ
174382013-04-26 Jakub Jelinek <jakub@redhat.com>
17439
17440 PR tree-optimization/57051
17441 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
17442 and VEC_RSHIFT_EXPR if shift count is a multiple of element
17443 bitsize.
17444
d7ed20db
RB
174452013-04-26 Richard Biener <rguenther@suse.de>
17446
17447 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
17448 (expand_omp_taskreg): Likewise. Mark loops for fixup.
17449 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
17450 (fixup_loop_arrays_after_move): New function.
17451 (move_sese_region_to_fn): Properly outline the loop tree parts
17452 of the SESE region.
17453
df93505e
UB
174542013-04-26 Uros Bizjak <ubizjak@gmail.com>
17455
17456 * config/i386/i386.md (type, unit): Fix long lines.
17457
dd366ec3
RB
174582013-04-26 Richard Biener <rguenther@suse.de>
17459
17460 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
17461 (lto-streamer-out.o): Likewise.
17462 * cfgloop.c (init_loops_structure): Export, add struct function
17463 argument and adjust.
17464 (flow_loops_find): Adjust.
17465 * cfgloop.h (enum loop_estimation): Add EST_LAST.
17466 (init_loops_structure): Declare.
17467 * lto-streamer-in.c: Include cfgloop.h.
17468 (input_cfg): Input the loop tree.
17469 * lto-streamer-out.c: Include cfgloop.h.
17470 (output_cfg): Output the loop tree.
17471 (output_struct_function_base): Do not drop PROP_loops.
17472
a9e0d843
RB
174732013-03-26 Richard Biener <rguenther@suse.de>
17474
17475 * tree-cfg.c (execute_build_cfg): Build the loop tree.
17476 (pass_build_cfg): Provide PROP_loops.
17477 (move_sese_region_to_fn): Remove loops that are outlined into fn
17478 for now.
17479 * tree-inline.c: Include cfgloop.h.
17480 (initialize_cfun): Do not drop PROP_loops.
17481 (copy_loops): New function.
17482 (copy_cfg_body): Copy loop structure.
17483 (tree_function_versioning): Initialize destination loop tree.
17484 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
17485 (pass_parallelize_loops): Do IL verification.
17486 * loop-init.c (loop_optimizer_init): Fixup loops if required.
17487 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
17488 the CFG make sure we fixup loops as well.
17489 * tree-ssa-tail-merge.c: Include cfgloop.h.
17490 (replace_block_by): When merging loop latches mark loops for fixup.
17491 * lto-streamer-out.c (output_struct_function_base): Drop
17492 PROP_loops for now.
17493 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
17494 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
17495 * ipa-split.c: Include cfgloop.h.
17496 (split_function): Add the new return block to the loop tree root.
17497 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
17498 whether we have removed the forwarder block.
17499 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
17500 * cfgloop.h (place_new_loop): Declare.
17501 * cfgloopmanip.c (place_new_loop): Export.
17502 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
17503 (tree-switch-conversion.o): Likewise.
17504 (tree-complex.o): Likewise.
17505 (tree-inline.o): Likewise.
17506 (tree-ssa-tailmerge.o): Likewise.
17507 (ipa-split.o): Likewise.
17508 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
17509 (tree-ssa-copy.o): Likewise.
17510 * tree-switch-conversion.c: Include cfgloop.h
17511 (process_switch): If we emit a bit-test cascade, schedule loops
17512 for fixup.
17513 * tree-complex.c: Include cfgloop.h.
17514 (expand_complex_div_wide): Properly add new basic-blocks to loops.
17515 * asan.c: Include cfgloop.h.
17516 (create_cond_insert_point): Properly add new basic-blocks to
17517 loops, schedule loop fixup.
17518 * cfgloop.c (verify_loop_structure): Check that looks are not
17519 marked for fixup.
17520 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
17521 to loops.
17522 (expand_omp_for_generic): Likewise.
17523 (expand_omp_sections): Likewise.
17524 (expand_omp_atomic_pipeline): Schedule loops for fixup.
17525 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
17526 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
17527 is initialized, not when loops are present.
17528 * tree-parloops.c (parallelize_loops): Remove checking here.
17529 * passes.c (init_optimization_passes): Schedule a copy-propagation
17530 pass before complete unrolling of inner loops.
17531
e78e8a0b
JJ
175322013-04-26 Jakub Jelinek <jakub@redhat.com>
17533
a2e836b2
JJ
17534 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
17535 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
17536 (colorize_init): Add argument to _WIN32 version.
17537 * toplev.c: Include diagnostic-color.h.
17538 (process_options): Default to -fdiagnostics-color=auto if
17539 GCC_COLORS env var is in the environment.
17540 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
17541 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
17542 env var is in the environment, the default is auto rather than never.
a2e836b2 17543
e78e8a0b
JJ
17544 * diagnostic.h (file_name_as_prefix): Add context argument.
17545 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
17546 the string as locus.
17547 * langhooks.c (lhd_print_error_function): Adjust caller.
17548
013e5ef9
LC
175492013-04-25 Lawrence Crowl <crowl@google.com>
17550
17551 * var-tracking.c (shared_hash_def::htab):
17552 Change type to hash_table. Update dependent calls and types.
17553
4a8fb1a1
LC
175542013-04-25 Lawrence Crowl <crowl@google.com>
17555
17556 * Makefile.in: Update as needed below.
17557
17558 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
17559 Move declaration to after the type's method definitons.
17560
17561 * attribs.c (htab_t scoped_attributes::attribute_hash):
17562 Change type to hash_table. Update dependent calls and types.
17563
17564 * bitmap.c (htab_t bitmap_desc_hash):
17565 Change type to hash_table. Update dependent calls and types.
17566
17567 * cselib.c (htab_t cselib_hash_table):
17568 Change type to hash_table. Update dependent calls and types.
17569
17570 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
17571 (hash_string_slot_node): Move implementation into lto-streamer.h
17572 struct string_slot_hasher.
17573 (eq_string_slot_node): Likewise.
17574
17575 * data-streamer-out.c: Update output_block::string_hash_table
17576 dependent calls and types.
17577
17578 * dwarf2cfi.c (htab_t trace_index):
17579 Change type to hash_table. Update dependent calls and types.
17580
17581 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
17582 Change type to hash_table. Update dependent calls and types.
17583 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
17584 (htab_t optimize_external_refs::map): Likewise.
17585 (htab_t output_comp_unit::extern_map): Likewise.
17586 (htab_t output_comdat_type_unit::extern_map): Likewise.
17587 (htab_t output_macinfo::macinfo_htab): Likewise.
17588 (htab_t optimize_location_lists::htab): Likewise.
17589 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
17590
17591 * except.c (htab_t ehspec_hash_type):
17592 Change type to hash_table. Update dependent calls and types.
17593 (assign_filter_values::ttypes): Likewise.
17594 (assign_filter_values::ehspec): Likewise.
17595 (sjlj_assign_call_site_values::ar_hash): Likewise.
17596 (convert_to_eh_region_ranges::ar_hash): Likewise.
17597
17598 * gcse.c (htab_t pre_ldst_table):
17599 Change type to hash_table. Update dependent calls and types.
17600
17601 * ggc-common.c (htab_t saving_htab):
17602 Change type to hash_table. Update dependent calls and types.
17603 (htab_t loc_hash): Likewise.
17604 (htab_t ptr_hash): Likewise.
17605 (call_count): Rename ggc_call_count.
17606 (call_alloc): Rename ggc_call_alloc.
17607 (loc_descriptor): Rename make_loc_descriptor.
17608 (add_statistics): Rename ggc_add_statistics.
17609
17610 * ggc-common.c (saving_htab):
17611 Change type to hash_table. Update dependent calls and types.
17612
17613 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
17614 (push_gimplify_context): Likewise.
17615 (pop_gimplify_context): Likewise.
17616 (struct gimple_temp_hash_elt): Added.
17617 (struct gimplify_hasher): Likewise.
17618 (struct gimplify_ctx.temp_htab):
17619 Change type to hash_table. Update dependent calls and types.
17620
17621 * gimple-fold.c: Include gimplify-ctx.h.
17622
17623 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
17624 Change type to hash_table. Update dependent calls and types.
17625 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
17626 avoid potential global name collision.
17627
17628 * gimplify.c: Include gimplify-ctx.h.
17629 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
17630 (htab_t gimplify_ctx::temp_htab):
17631 Update dependent calls and types for new type hash_table.
17632 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
17633 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
17634
17635 * gimplify-ctx.h: New.
17636 (struct gimple_temp_hash_elt): Move from gimplify.c.
17637 (class gimplify_hasher): New.
17638 (struct gimplify_ctx): Move from gimple.h.
17639 (htab_t gimplify_ctx::temp_htab):
17640 Change type to hash_table. Update dependent calls and types.
17641
17642 * graphite-clast-to-gimple.c: Include graphite-htab.h.
17643 (htab_t ivs_params::newivs_index):
17644 Change type to hash_table. Update dependent calls and types.
17645 (htab_t ivs_params::params_index): Likewise.
17646 (htab_t print_generated_program::params_index): Likewise.
17647 (htab_t gloog::newivs_index): Likewise.
17648 (htab_t gloog::params_index): Likewise.
17649
17650 * graphite.c: Include graphite-htab.h.
17651 4htab_t graphite_transform_loops::bb_pbb_mapping):
17652 Change type to hash_table. Update dependent calls and types.
17653
17654 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
17655 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
17656 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
17657
17658 * graphite-dependences.c: Include graphite-htab.h.
17659 (loop_is_parallel_p): Change hash table type of parameter.
17660
17661 * graphite-htab.h: New.
17662 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
17663 (extern find_pbb_via_hash): Move from graphite-poly.h.
17664 (extern loop_is_parallel_p): Move from graphite-poly.h.
17665 (extern get_loop_body_pbbs): Move from graphite-poly.h.
17666
17667 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
17668 (extern loop_is_parallel_p): Move to graphite-htab.h.
17669 (extern get_loop_body_pbbs): Move to graphite-htab.h.
17670
17671 * haifa-sched.c (htab_t delay_htab):
17672 Change type to hash_table. Update dependent calls and types.
17673 (htab_t delay_htab_i2): Likewise.
17674
17675 * ira-color.c (htab_t allocno_hard_regs_htab):
17676 Change type to hash_table. Update dependent calls and types.
17677
17678 * ira-costs.c (htab_t cost_classes_htab):
17679 Change type to hash_table. Update dependent calls and types.
17680
17681 * loop-invariant.c (htab_t merge_identical_invariants::eq):
17682 Change type to hash_table. Update dependent calls and types.
17683
17684 * loop-iv.c (htab_t bivs):
17685 Change type to hash_table. Update dependent calls and types.
17686
17687 * loop-unroll.c (htab_t opt_info::insns_to_split):
17688 Change type to hash_table. Update dependent calls and types.
17689 (htab_t opt_info::insns_with_var_to_expand): Likewise.
17690
17691 * lto-streamer.h (struct string_slot): Move from data-streamer.h
17692 (struct string_slot_hasher): New.
17693 (htab_t output_block::string_hash_table):
17694 Change type to hash_table. Update dependent calls and types.
17695
17696 * lto-streamer-in.c (freeing_string_slot_hasher): New.
17697 (htab_t file_name_hash_table):
17698 Change type to hash_table. Update dependent calls and types.
17699
17700 * lto-streamer-out.c: Update output_block::string_hash_table dependent
17701 calls and types.
17702
17703 * lto-streamer.c (htab_t tree_htab):
17704 Change type to hash_table. Update dependent calls and types.
17705
17706 * omp-low.c: Include gimplify-ctx.h.
17707
17708 * passes.c (htab_t name_to_pass_map):
17709 Change type to hash_table. Update dependent calls and types.
17710 (pass_traverse): Rename to passes_pass_traverse.
17711
17712 * plugin.c (htab_t event_tab):
17713 Change type to hash_table. Update dependent calls and types.
17714
17715 * postreload-gcse.c (htab_t expr_table):
17716 Change type to hash_table. Update dependent calls and types.
17717 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
17718
17719 * sese.c (debug_rename_map_1): Make extern.
17720 (htab_t copy_bb_and_scalar_dependences::rename_map):
17721 Change type to hash_table. Update dependent calls and types.
17722
17723 * sese.h (extern debug_rename_map): Move to .c file.
17724
17725 * store-motion.c (htab_t store_motion_mems_table):
17726 Change type to hash_table. Update dependent calls and types.
17727
17728 * trans-mem.c (htab_t tm_new_mem_hash):
17729 Change type to hash_table. Update dependent calls and types.
17730
17731 * tree-browser.c (htab_t TB_up_ht):
17732 Change type to hash_table. Update dependent calls and types.
17733
17734 * tree-cfg.c (htab_t discriminator_per_locus):
17735 Change type to hash_table. Update dependent calls and types.
17736
17737 * tree-complex.c: Include tree-hasher.h
17738 (htab_t complex_variable_components):
17739 Change type to hash_table. Update dependent calls and types.
17740
17741 * tree-eh.c (htab_t finally_tree):
17742 Change type to hash_table. Update dependent calls and types.
17743
17744 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
17745 struct int_tree_hasher.
17746 (extern int_tree_map_eq): Likewise.
17747 (uid_decl_map_hash): Removed.
17748 (extern decl_tree_map_eq): Likewise.
17749
17750 * tree-hasher.h: New.
17751 (struct int_tree_hasher): New.
17752 (typedef int_tree_htab_type): New.
17753
17754 * tree-inline.c: Include gimplify-ctx.h.
17755
17756 * tree-mudflap.c: Include gimplify-ctx.h.
17757
17758 * tree-parloops.c: Include tree-hasher.h.
17759 (htab_t eliminate_local_variables_stmt::decl_address):
17760 Change type to hash_table. Update dependent calls and types.
17761 (htab_t separate_decls_in_region::decl_copies): Likewise.
17762
17763 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
17764 Change type to hash_table. Update dependent calls and types.
17765
17766 * tree-sra.c (candidates):
17767 Change type to hash_table. Update dependent calls and types.
17768
17769 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
17770 in tree-flow.h.
17771 (int_tree_map_hash): Likewise.
17772
17773 * tree-ssa-dom.c (htab_t avail_exprs):
17774 Change type to hash_table. Update dependent calls and types.
17775
17776 * tree-ssa-live.c (var_map_base_init::tree_to_index):
17777 Change type to hash_table. Update dependent calls and types.
17778
17779 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
17780 Change type to hash_table. Update dependent calls and types.
17781
17782 * tree-ssa-phiopt.c (seen_ssa_names):
17783 Change type to hash_table. Update dependent calls and types.
17784
17785 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
17786 Change type to hash_table. Update dependent calls and types.
17787
17788 * tree-ssa-uncprop.c (equiv):
17789 Change type to hash_table. Update dependent calls and types.
17790
c5a44004
JJ
177912013-04-25 Jakub Jelinek <jakub@redhat.com>
17792
17793 PR rtl-optimization/57003
17794 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
17795 call note_stores with kill_clobbered_value callback again after
17796 killing regs_invalidated_by_call.
17797
09962a4a
JG
177982013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17799
17800 * config/aarch64/aarch64-simd.md
17801 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
17802 (aarch64_simd_bsl<mode>): Likewise.
17803 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
17804
ea28bb0b
MP
178052013-04-25 Marek Polacek <polacek@redhat.com>
17806
17807 PR tree-optimization/57066
3c21604f 17808 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 17809
96659611
JG
178102013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
17811
17812 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
17813
9697e620
JG
178142013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17815
17816 * config/aarch64/aarch64-builtins.c
17817 (aarch64_fold_builtin): New.
17818 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
17819 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
17820 * config/aarch64/aarch64-simd-builtins.def (abs): New.
17821 * config/aarch64/arm_neon.h
17822 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
17823
0ac198d3
JG
178242013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17825 Tejas Belagod <tejas.belagod@arm.com>
17826
17827 * config/aarch64/aarch64-builtins.c
17828 (aarch64_gimple_fold_builtin): New.
17829 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
17830 * config/aarch64/aarch64-simd-builtins.def (addv): New.
17831 * config/aarch64/aarch64-simd.md (addpv4sf): New.
17832 (addvv4sf): Update.
17833 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
17834
58cff58c
N
178352013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17836
df93505e 17837 * config/aarch64/aarch64.md
58cff58c
N
17838 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
17839
7e0228bf
N
178402013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17841
17842 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
17843 (*ngcsi_uxtw): New pattern.
17844
5819f96f 178452013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 17846 Julian Brown <julian@codesourcery.com>
5819f96f
KT
17847
17848 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
17849 (TB_DREG): Add T_V4HF.
17850 (v4hf_UP): New macro.
17851 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 17852 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17853 Handle initialisation of V4HF. Adjust initialisation of reinterpret
17854 built-ins.
df93505e 17855 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17856 (arm_vector_mode_supported_p): Handle V4HF.
17857 (arm_mangle_map): Handle V4HFmode.
17858 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
17859 * config/arm/arm_neon_builtins.def: Add entries for
17860 vcvtv4hfv4sf, vcvtv4sfv4hf.
17861 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
17862 (neon_vcvtv4hfv4sf): Likewise.
17863 * config/arm/neon-gen.ml: Handle half-precision floating point
17864 features.
17865 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
17866 * config/arm/arm_neon.h: Regenerate.
17867 * config/arm/neon.ml (type elts): Add F16.
17868 (type vectype): Add T_float16x4, T_floatHF.
17869 (type vecmode): Add V4HF.
17870 (type features): Add Requires_FP_bit feature.
17871 (elt_width): Handle F16.
17872 (elt_class): Likewise.
17873 (elt_of_class_width): Likewise.
17874 (mode_of_elt): Refactor.
17875 (type_for_elt): Handle F16, fix error messages.
17876 (vectype_size): Handle T_float16x4.
17877 (vcvt_sh): New function.
17878 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
17879 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
17880 (string_of_mode): Handle V4HF.
17881 * doc/arm-neon-intrinsics.texi: Regenerate.
17882
1ef395e4
JG
178832013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17884
17885 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
17886 format specifier in 'X' case.
17887
41c34e94
AM
178882013-04-25 Alan Modra <amodra@gmail.com>
17889
17890 PR target/57052
17891 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
17892 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
17893 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
17894 Repeat for many other rotate/shift and mask patterns using subregs.
17895 Name lshiftrt insns.
17896 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
17897 on WORDS_BIG_ENDIAN.
17898
b9a7eb5d
AM
178992013-04-25 Alan Modra <amodra@gmail.com>
17900
17901 * config.gcc: Support little-endian powerpc-linux targets.
17902 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
17903 (LINK_OS_LINUX_SPEC): Define.
17904 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
17905 Preserve MASK_LITTLE_ENDIAN.
17906 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
17907 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
17908 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
17909 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
17910 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
17911 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
17912 Correct fp word order for little-endian. Don't shift toc entries
17913 smaller than a word for little-endian.
17914 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
17915 (bswapdi2 splits): Correct low-part subreg for little-endian.
17916 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
17917 low/high where such is correct only for be.
17918 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
17919 little-endian for -mcall-aixdesc.
17920
87f73374
AM
179212013-04-25 Alan Modra <amodra@gmail.com>
17922
17923 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
17924 replace_equiv_address_nv.
17925
cabf91cd
AM
179262013-04-25 Alan Modra <amodra@gmail.com>
17927
17928 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
17929
0ae24cc8
VM
179302013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17931
17932 Revert:
17933 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17934 * rtl.h (struct rtx_def): ...
cabf91cd 17935
77bce07c
VM
179362013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17937
17938 PR rtl-optimizations/57046
17939 * lra-constraints (split_reg): Set up lra_risky_transformations_p
17940 for multi-reg splits.
17941
0db63e7f
L
179422013-04-24 H.J. Lu <hongjiu.lu@intel.com>
17943
17944 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
17945
3362b6b6
SA
179462013-04-24 Sterling Augustine <saugustine@google.com>
17947
17948 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
17949 (comp_dir_string, debug_str_dwo_section): New.
17950 (DEBUG_STR_DWO_SECTION): Rename to ...
17951 (DEBUG_DWO_STR_SECTION): ... this.
17952 (DEBUG_NORM_STR_SECTION): Delete.
17953 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
17954 (DEBUG_STR_DWO_SECTION_FLAGS): New.
17955 (find_AT_string): Move most logic to ...
17956 (find_AT_string_in_table): ... here. New.
17957 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
17958 add_skeleton_AT_string. Delete logic.
17959 (output_skeleton_debug_sections): Remove call to
17960 add_top_level_skeleton_die_attrs.
17961 (add_comp_dir_attribute): Move logic to comp_dir_string.
17962 (dwarf2out_init): Initialize debug_str_dwo_section.
17963 (output_indirect_string): Call find_string_form.
17964 (output_indirect_strings): Rewrite.
17965 (prune_unused_types): Empty skeleton_debug_str_hash.
17966 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
17967 (dwarf2out_finish): Call output_indirect_strings.
17968
e93e18e9
PC
179692013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
17970
17971 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
17972
f6ce35ac
VM
179732013-04-24 Vladimir Makarov <vmakarov@redhat.com>
17974
cabf91cd 17975 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
17976 (LRA_SUBREG_P): New macro.
17977 * recog.c (register_operand): Check LRA_SUBREG_P.
17978 * lra.c (lra): Add note at the end of RTL code. Align non-empty
17979 stack frame.
17980 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
17981 (lra_final_code_change): Skip subreg change for operators.
17982 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
17983 if there are no operand changes.
17984 * lra-constraints.c (curr_insn_set): New.
17985 (match_reload): Set LRA_SUBREG_P.
17986 (emit_spill_move): Ditto.
17987 (check_and_process_move): Use curr_insn_set. Process only single
17988 set insns. Don't initialize sec_mem_p and change_p.
17989 (simplify_operand_subreg): Use LRA_SUBREG_P.
17990 (reg_in_class_p): New function.
17991 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
17992 of #ifdef. Add code to remove cycling.
17993 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
17994 non-null disp. Reload inner instead of disp when base and index
17995 are null. Try to put lo_sum into register.
17996 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 17997 (check_and_process_move): Move code for move cost check to
f6ce35ac 17998 simple_move_p. Remove equiv_substitution.
cabf91cd 17999 (simple_move_p): New function.
f6ce35ac
VM
18000 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18001 curr_insn_set. Call check_and_process_move only for single set
18002 insns. Use the new function. Move call of check_and_process_move
18003 after operand equiv substitution and address process.
18004
38047d90
JG
180052013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
18006
18007 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
18008 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
18009 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
18010
13f39b2e
PC
180112013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
18012
18013 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
18014
97c116dc
MP
180152013-04-24 Marek Polacek <polacek@redhat.com>
18016
18017 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
18018 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
18019 (select_loops_exit_conditions): Likewise.
18020 (number_of_iterations_for_all_loops): Likewise.
18021 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
18022 (scev_analysis): Likewise.
18023
83082391 180242013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 18025 Chao-ying Fu <fu@mips.com>
83082391 18026
cabf91cd
AM
18027 * config/mips/micromips.md (jraddiusp): New pattern.
18028 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
18029 instruction if possible.
83082391 18030
19e34aa2
AM
180312013-04-24 Alan Modra <amodra@gmail.com>
18032
18033 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
18034
fdb6603c
JB
180352013-04-24 Julian Brown <julian@codesourcery.com>
18036 Chung-Lin Tang <cltang@codesourcery.com>
18037
18038 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
18039 dependency behavior in enumeration type DIE generation. Add TODO note
18040 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 18041
bf190e8d
LC
180422013-04-23 Lawrence Crowl <crowl@google.com>
18043
18044 * Makefile.in: Update as needed below.
18045
18046 * hash-table.h (class hash_table):
18047 Correct many methods with parameter types compare_type to the correct
18048 value_type. (Correct code was unlikely to notice the change.)
18049 (hash_table::elements_with_deleted) New.
18050 (class hashtable::iterator): New.
18051 (hashtable::begin()): New.
18052 (hashtable::end()): New.
18053 (FOR_EACH_HASH_TABLE_ELEMENT): New.
18054
18055 * statistics.c (statistics_hashes):
18056 Change type to hash_table. Update dependent calls and types.
18057
18058 * tree-into-ssa.c (var_infos):
18059 Change type to hash_table. Update dependent calls and types.
18060
18061 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
18062 Change type to hash_table. Update dependent calls and types.
18063
18064 * tree-ssa-loop-im.c (struct mem_ref.refs):
18065 Change type to hash_table. Update dependent calls and types.
18066
18067 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
18068 Change type to hash_table. Update dependent calls and types.
18069
18070 * tree-ssa-sccvn.c (vn_tables_s::nary):
18071 Change type to hash_table. Update dependent calls and types.
18072 (vn_tables_s::phis): Likewise.
18073 (vn_tables_s::references): Likewise.
18074
18075 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
18076 (vn_reference_eq): Update parameter and return types.
18077
18078 * tree-ssa-structalias.c (pointer_equiv_class_table):
18079 Change type to hash_table. Update dependent calls and types.
18080 (location_equiv_class_table): Likewise.
18081
18082 * tree-vect-data-refs.c: Consequential changes for making
18083 peeling a hash_table.
18084
18085 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
18086 (destroy_loop_vec_info): Dependent hash_table update.
18087
18088 * tree-vectorizer.h (peeling_htab):
18089 Change type to hash_table. Update dependent calls and types.
18090
d70a81dd
SC
180912013-04-23 Shiva Chen <shiva0217@gmail.com>
18092
cabf91cd
AM
18093 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
18094 to check the register content is equal or not.
18095 * lra-constraints.c (match_reload): Use lra_assign_reg_val
18096 to assign register content record.
18097 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 18098 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
18099 * lra-int.h (struct lra_reg): Add offset member.
18100 (lra_reg_val_equal_p): New static inline function.
18101 (lra_update_reg_val_offset): New static inline function.
18102 (lra_assign_reg_val): New static inline function.
18103 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
18104 to assign register content record.
18105 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 18106
b894a1f3
CM
181072013-04-23 Catherine Moore <clm@codesourcery.com>
18108
18109 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
18110 operands. Record compression.
18111
ecd14de9
XDL
181122013-04-23 Xinliang David Li <davidxl@google.com>
18113
18114 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
18115
92e776e9
RB
181162013-04-23 Richard Biener <rguenther@suse.de>
18117
18118 PR middle-end/57036
18119 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
18120 parameter, only add abnormal goto edges from the copied body
18121 if the call could perform abnormal gotos.
18122 (copy_cfg_body): Adjust.
18123
a15ee567
SN
181242013-04-23 Sofiane Naci <sofiane.naci@arm.com>
18125
18126 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
18127
08c52234
AS
181282013-04-23 Andreas Schwab <schwab@linux-m68k.org>
18129
18130 * coretypes.h (gimple_stmt_iterator): Add struct to make
18131 compatible with C.
18132
999c1171
RB
181332013-04-23 Richard Biener <rguenther@suse.de>
18134
18135 PR tree-optimization/57026
18136 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
18137 from SSA names occuring in abnormal PHI nodes.
18138
53669259
AK
181392013-04-22 Andi Kleen <ak@linux.intel.com>
18140
18141 * lto/lto.c (print_lto_report_1): Fix LTO report names.
18142
1a0ad150
AK
181432013-04-22 Andi Kleen <ak@linux.intel.com>
18144
18145 * lto/lto.c (print_lto_report_1): Declare early.
18146 (read_cgraph_and_symbols): Call print_lto_report_1 early.
18147
057f8f20
AK
181482013-04-22 Andi Kleen <ak@linux.intel.com>
18149
18150 * common.opt (-flto-report-wpa): Add.
18151 * doc/invoke.texi (-flto-report-wpa): Add.
18152 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
18153 (lto_main): dito.
18154
473b1e05
XDL
181552013-04-22 Xinliang David Li <davidxl@google.com>
18156
18157 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
18158 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
18159 * Makefile.in: New dependency
18160
cabf91cd 18161 David Daney <ddaney.cavm@gmail.com>
b1485a33 18162
cabf91cd
AM
18163 * configure.ac (gcc_cv_as_micromips_support): Use the
18164 --fatal-warnings option.
18165 * configure: Regenerate.
b1485a33 18166
829d0168
MP
181672013-04-22 Marek Polacek <polacek@redhat.com>
18168
18169 PR sanitizer/56990
18170 * tsan.c (instrument_expr): Don't instrument expression
18171 in case its size is zero.
18172
6d9b7208
UB
181732013-04-22 Uros Bizjak <ubizjak@gmail.com>
18174
18175 PR target/57032
18176 Revert:
18177 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
18178
18179 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18180
ea679d55
JG
181812013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18182
18183 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
18184 (gimple_stmt_iterator): New typedef.
18185 * gimple.h (gimple_stmt_iterator): Rename to...
18186 (gimple_stmt_iterator_d): ... This.
18187 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
18188 trees be valid for GIMPLE and GENERIC.
18189 (TARGET_GIMPLE_FOLD_BUILTIN): New.
18190 * gimple-fold.c (gimple_fold_call): Call target hook
18191 gimple_fold_builtin.
18192 * hooks.c (hook_bool_gsiptr_false): New.
18193 * hooks.h (hook_bool_gsiptr_false): New.
18194 * target.def (fold_stmt): New.
18195 * doc/tm.texi: Regenerate.
18196
88a581da
VM
181972013-04-22 Vladimir Makarov <vmakarov@redhat.com>
18198
18199 PR target/57018
18200 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
18201 a set sp if no stack realignment.
18202
92be22dc
NC
182032013-04-22 Nick Clifton <nickc@redhat.com>
18204
18205 * config.gcc (tilegx-linux): Extend extra_objs rather than
18206 overwriting it.
18207 (tilepro-linux): Likewise.
18208
0ddec79f
JG
182092013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18210
18211 * config/aarch64/aarch64-builtins.c
18212 (CF): Remove.
18213 (CF0, CF1, CF2, CF3, CF4, CF10): New.
18214 (VAR<1-12>): Add MAP parameter.
18215 (BUILTIN_*): Likewise.
18216 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
18217 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
18218 (aarch64_ushl_n<mode>): Likewise.
18219 (aarch64_sshr_n<mode>): Likewise.
18220 (aarch64_ushr_n<mode>): Likewise.
18221 (aarch64_<maxmin><mode>): Likewise.
18222 (aarch64_sqrt<mode>): Likewise.
18223 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
18224 (vshr<q>_n_*): Likewise.
18225
0050faf8
JG
182262013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18227
18228 * config/aarch64/aarch64-builtins.c
18229 (aarch64_simd_builtin_type_mode): Handle SF types.
18230 (sf_UP): Define.
18231 (BUILTIN_GPF): Define.
18232 (aarch64_init_simd_builtins): Handle SF types.
18233 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
18234 (frecps): Likewise.
18235 (frecpx): Likewise.
18236 * config/aarch64/aarch64-simd.md
18237 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
18238 (aarch64_frecpe<mode>): New.
18239 (aarch64_frecps<mode>): Likewise.
18240 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
18241 (v8type): Add frecp<esx>.
18242 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
18243 (aarch64_frecps<mode>): Likewise.
18244 * config/aarch64/iterators.md (FRECP): New.
18245 (frecp_suffix): Likewise.
18246 * config/aarch64/arm_neon.h
18247 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
18248
0fad3dbc 182492013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
18250
18251 PR target/56995
18252 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
18253 (REG_CLASS_NAMES): Idem.
18254 (REG_CLASS_CONTENTS): Idem.
18255 (REGCLASS_HAS_FP_REG): Idem.
18256 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
18257 (sh_conditional_register_usage): Idem.
18258
3e8a33f9
JL
182592013-04-21 Jeff Law <law@redhat.com>
18260
18261 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
18262 (ssa_forward_propagate_and_combine): Use it.
18263
f38e1b0a
VM
182642013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18265
18266 * lra.c: Update the flow chart diagram.
18267
682303da
VM
182682013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18269
18270 PR rtl-optimization/56847
18271 * lra-constraints.c (process_alt_operands): Discourage alternative
18272 with non-matche doffsettable memory constraint fro memory with
18273 known offset.
18274
f6b64c35
RB
182752013-04-19 Richard Biener <rguenther@suse.de>
18276
18277 PR tree-optimization/56982
18278 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
18279 function.
18280 * gimplify.c (gimplify_call_expr): Notice special calls.
18281 (gimplify_modify_expr): Likewise.
18282 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
18283 abnormal control flow receivers.
18284 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
18285 in the same way as cfun->has_nonlocal_labels.
18286 (gimple_purge_dead_abnormal_call_edges): Likewise.
18287 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
18288 receivers start a basic-block.
18289
01d8bf07
RB
182902013-04-19 Richard Biener <rguenther@suse.de>
18291
18292 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
18293 member ...
18294 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
18295 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
18296 (SLP_TREE_LOAD_PERMUTATION): Add.
18297 (vect_transform_slp_perm_load): Adjust prototype.
18298 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
18299 (vect_free_slp_instance): Likewise.
18300 (vect_create_new_slp_node): Likewise.
18301 (vect_supported_slp_permutation_p): Remove.
18302 (vect_slp_rearrange_stmts): Adjust.
18303 (vect_supported_load_permutation_p): Likewise. Inline
18304 vect_supported_slp_permutation_p here.
18305 (vect_analyze_slp_instance): Compute load permutations per
18306 slp node instead of per instance.
18307 (vect_get_slp_defs): Adjust.
18308 (vect_transform_slp_perm_load): Likewise.
18309 (vect_schedule_slp_instance): Remove redundant code.
18310 (vect_schedule_slp): Remove hack for PR56270, add it ...
18311 * tree-vect-stmts.c (vectorizable_load): ... here, do not
18312 CSE loads for SLP. Adjust.
18313
ede22fc3
GY
183142013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18315
18316 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
18317 spelling in two comments.
18318
67bc84fb
GY
183192013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18320
18321 PR target/56797
18322 * config/arm/arm.c (load_multiple_sequence): Require SP
18323 as base register for loads if SP is in the register list.
18324
e248d83f
MJ
183252013-04-19 Martin Jambor <mjambor@suse.cz>
18326
18327 PR tree-optimization/56718
18328 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
18329 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
18330 and made public. Adjusted all callers.
18331 (ipa_intraprocedural_devirtualization): New function.
18332 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
18333 (ipa_intraprocedural_devirtualization): Likewise.
18334 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
18335
4891e8f8
RB
183362013-04-19 Richard Biener <rguenther@suse.de>
18337
18338 PR tree-optimization/57000
18339 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
18340
dad89f7c
TG
183412013-04-19 Terry Guo <terry.guo@arm.com>
18342
18343 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
18344 Replace with ...
18345 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
18346 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
18347 (cortex_m4_fmacs): Use new reservations.
18348 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
18349
72ea0d47
VM
183502013-04-18 Vladimir Makarov <vmakarov@redhat.com>
18351
f1e6512c 18352 PR rtl-optimization/56999
72ea0d47
VM
18353 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
18354 related code.
18355 (lra_coalesce): Remove split_origin_bitmap and related code.
18356 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
18357 ranges if necessary.
18358
780a5b71
UB
183592013-04-18 Uros Bizjak <ubizjak@gmail.com>
18360
18361 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
18362 New array.
18363 (ix86_expand_call): Remove clobbered_registers array and use
18364 x86_64_ms_sysv_extra_clobbered_registers instead.
18365 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
18366 Declare here.
18367 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
18368 predicate.
18369 * config/i386/i386.md (*call_rex64_ms_sysv): Use
18370 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
18371 (*call_value_rex64_ms_sysv): Ditto.
18372
6f5a366a
CC
183732013-04-18 Cary Coutant <ccoutant@google.com>
18374
18375 * dwarf2out.c (output_pubnames): Check die_perennial_p of
18376 parent instead of die_mark.
18377
475b8f37
DN
183782013-04-18 Diego Novillo <dnovillo@google.com>
18379
18380 * gimple.c (create_gimple_tmp): New.
18381 (get_expr_type): New.
18382 (build_assign): New.
18383 (build_type_cast): New.
18384 * gimple.h (enum ssa_mode): Define.
18385 (gimple_seq_set_location): New.
18386 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 18387 to use build_assign and build_type_cast.
475b8f37 18388
08940f33
RB
183892013-04-18 Richard Biener <rguenther@suse.de>
18390
18391 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
18392 handle negative step. Remove redundant checks.
18393 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
18394 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
18395 for negative step and grouped loads fail to vectorize.
18396
0e0f87d4
SB
183972013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18398
18399 * emit-rtl.c (reset_insn_used_flags): New function.
18400 (reset_all_used_flags): Use it.
18401 (verify_insn_sharing): New function.
18402 (verify_rtl_sharing): Fix verification for SEQUENCEs.
18403
4c445590
JJ
184042013-04-18 Jakub Jelinek <jakub@redhat.com>
18405
18406 PR tree-optimization/56984
18407 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
18408 and (x >> M) >= N don't register any assertion if N << M is the
18409 minimum value.
18410
6873ecab
SB
184112013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18412
18413 * lower-subreg.c (resolve_simple_move): If called self-recursive,
18414 do not delete_insn insns that have not yet been emitted, only
18415 unlink them with remove_insn.
18416 * df-scan.c (df_insn_delete): Revert r197492.
18417
3ccb989e
SB
184182013-04-17 Steven Bosscher <steven@gcc.gnu.org>
18419
18420 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
18421 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
18422
184232013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
18424
18425 * config/arm/arm.md (movsicc_insn): Convert define_insn into
18426 define_insn_and_split.
18427 (and_scc,ior_scc,negscc): Likewise.
18428 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
18429
3ccb989e 184302013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
18431
18432 * config/arm/arm.c (use_return_insn): Return 0 for targets that
18433 can benefit from using a sequence of LDRD instructions in epilogue
18434 instead of a single LDM instruction.
18435
6d10a203
MLI
184362013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
18437
18438 PR 45688
18439 * doc/extend.texi: Fix typo.
18440
6983e6b5
RB
184412013-04-17 Richard Biener <rguenther@suse.de>
18442
18443 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
18444 (vect_build_slp_tree): ... here.
18445 (vect_build_slp_tree_1): Compute which stmts of the SLP group
18446 match. Remove special-casing of mismatched complex loads.
18447 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
18448 re-try the match with swapped commutative operands.
18449 (vect_supported_load_permutation_p): Remove special-casing of
18450 mismatched complex loads.
18451 (vect_analyze_slp_instance): Adjust.
18452
ef23e6a2
RB
184532013-04-17 Richard Biener <rguenther@suse.de>
18454
18455 PR rtl-optimization/56921
18456 * cfgloop.h (struct loop): Add simple_loop_desc member.
18457 (struct niter_desc): Mark with GTY(()).
18458 (simple_loop_desc): Do not use aux field but simple_loop_desc.
18459 * loop-iv.c (get_simple_loop_desc): Likewise.
18460 (free_simple_loop_desc): Likewise.
18461
18462 Revert
18463 2013-04-16 Richard Biener <rguenther@suse.de>
18464
18465 PR rtl-optimization/56921
18466 * loop-init.c (pass_rtl_move_loop_invariants): Add
18467 TODO_do_not_ggc_collect to todo_flags_finish.
18468 (pass_rtl_unswitch): Same.
18469 (pass_rtl_unroll_and_peel_loops): Same.
18470 (pass_rtl_doloop): Same.
18471
fc6f94f5
EB
184722013-04-17 Eric Botcazou <ebotcazou@adacore.com>
18473
18474 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
18475 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
18476 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
18477 references.
18478 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
18479 * tree-streamer.c (record_common_node): Adjust reference in comment.
18480
10a88311
TG
184812013-04-17 Terry Guo <terry.guo@arm.com>
18482
18483 * config/arm/cortex-m4.md: Add a new bypass.
18484
6d9b7208 184852013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
18486
18487 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
18488 New pattern.
18489 (*subs_<optab><mode>_multp2): New pattern.
18490 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18491 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18492
6d9b7208 184932013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
18494
18495 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
18496 (*subs_mul_imm_<mode>): New pattern.
18497
18a6701e
DE
184982013-04-16 David Edelsohn <dje.gcc@gmail.com>
18499
18500 PR target/56948
18501 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
18502 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
18503 (vsx_movti_32bit): Change j->wa to O->wa.
18504
07c37b2f
RB
185052013-04-16 Richard Biener <rguenther@suse.de>
18506
18507 PR rtl-optimization/56921
18508 * loop-init.c (pass_rtl_move_loop_invariants): Add
18509 TODO_do_not_ggc_collect to todo_flags_finish.
18510 (pass_rtl_unswitch): Same.
18511 (pass_rtl_unroll_and_peel_loops): Same.
18512 (pass_rtl_doloop): Same.
18513
0e0f87d4 185142013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
18515
18516 * config/arm/arm.c (emit_multi_reg_push): New declaration
18517 for an existing function.
18518 (arm_emit_strd_push): New function.
18519 (arm_expand_prologue): Used here.
18520 (arm_emit_ldrd_pop): New function.
18521 (arm_expand_epilogue): Used here.
18522 (arm_get_frame_offsets): Update condition.
18523 (arm_emit_multi_reg_pop): Add a special case for load of a single
18524 register with writeback.
18525
5e8e2af4
UB
185262013-04-16 Uros Bizjak <ubizjak@gmail.com>
18527
18528 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
18529 description.
18530
9fd9ccf7
RB
185312013-04-16 Richard Biener <rguenther@suse.de>
18532
18533 PR tree-optimization/56756
18534 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
18535 (first_mem_ref_loc): New.
18536 (execute_sm): Place the load temporarily before a previous
18537 access instead of in the latch edge to ensure its SSA dependencies
18538 are defined at points dominating the load.
18539
96fba521
SB
185402013-04-16 Steven Bosscher <steven@gcc.gnu.org>
18541
4c8af858
SB
18542 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
18543 correct fix by moving header and footer insn to the footer of
18544 the merged basic block. Clear BB_END of the merged-away block.
18545
96fba521
SB
18546 PR middle-end/43631
18547 * emit-rtl.c (make_note_raw): New function.
18548 (link_insn_into_chain): New static inline function.
18549 (add_insn): Use it.
18550 (add_insn_before, add_insn_after): Factor insn chain linking code...
18551 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
18552 using link_insn_into_chain.
18553 (note_outside_basic_block_p): New helper function for emit_note_after
18554 and emit_note_before.
18555 (emit_note_after): Use nobb variant of add_insn_after if the note
18556 should not be contained in a basic block.
18557 (emit_note_before): Use nobb variant of add_insn_before if the note
18558 should not be contained in a basic block.
18559 (emit_note_copy): Use make_note_raw.
18560 (emit_note): Likewise.
18561 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
18562 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
18563 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
18564 the moved barrier the tail of the basic block it follows.
18565 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
18566
7b8265ba
JJ
185672013-04-15 Jakub Jelinek <jakub@redhat.com>
18568
18569 PR tree-optimization/56962
18570 * gimple-ssa-strength-reduction.c (record_increment): Only set
18571 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
18572 either rhs1 or rhs2 is equal to c->base_expr.
18573
5185d248
RB
185742013-04-15 Richard Biener <rguenther@suse.de>
18575
18576 PR tree-optimization/56933
18577 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
18578 member.
18579 (GROUP_READ_WRITE_DEPENDENCE): Remove.
18580 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
18581 * tree-vect-data-refs.c (vect_analyze_group_access): Move
18582 dependence check ...
18583 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
18584 ... here.
18585 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
18586 GROUP_READ_WRITE_DEPENDENCE.
18587
a24243a0
AK
185882013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18589
18590 * emit-rtl.c (reset_all_used_flags): New function.
18591 (verify_rtl_sharing): Call reset_all_used_flags before and after
18592 performing the checks.
18593
1c50eada
KT
185942013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18595
18596 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
18597 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
18598 * config/arm/constraints.md (De): New constraint.
18599 * config/arm/neon.md (anddi3_neon): Delete.
18600 (neon_vand<mode>): Expand to standard anddi3 pattern.
18601 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
18602 Move earlier in the file.
18603 (neon_inv_logic_op2): Likewise.
18604 (arm_anddi_operand_neon): New predicate.
18605
e927b6ad
RO
186062013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18607
18608 * configure.ac (gcc_cv_ld_as_needed): Set
18609 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
18610 Use -z ignore, -z record on *-*-solaris2*.
18611 (HAVE_LD_AS_NEEDED): Update comment.
18612 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
18613 * configure: Regenerate.
18614 * config.in: Regenerate.
18615 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
18616 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
18617 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
18618 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
18619 equivalents. Fix markup.
18620 * doc/tm.texi: Regenerate.
18621
e0ea8797
AH
186222013-04-15 Andrew Hsieh <andrewhsieh.google.com>
18623
18624 * config/i386/i386.opt: New option mstack-protector-guard=.
18625 * config/i386/i386-opts.h: Add enum stack_protector_guard.
18626 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
18627 TARGET_SSP_TLS_GUARD.
18628 * config/i386/i386.c (ix86_option_override_internal): Set
18629 ix86_stack_protector_guard.
18630 * config/i386/i386.md (stack_protect_set): Enable for
18631 TARGET_SSP_TLS_GUARD only.
18632 (stack_protect_set_<mode>): Ditto.
18633 (stack_protect_test): Ditto.
18634 (stack_protect_test_<mode>): Ditto.
18635 * doc/invoke.texi (i386 Option): Document.
18636
811b72f9
EB
186372013-04-15 Eric Botcazou <ebotcazou@adacore.com>
18638
18639 PR target/56890
18640 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
18641 (S_MODES): Set H_MODE bit.
18642 (SF_MODES): Set only S_MODE and SF_MODE bits.
18643 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
18644 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
18645 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
18646 <MODE_FLOAT>: Likewise.
18647
5529fdd6
JY
186482013-04-15 Joey Ye <joey.ye@arm.com>
18649
18650 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
18651
517b1da2
JY
186522013-04-15 Joey Ye <joey.ye@arm.com>
18653
18654 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
18655 for real far jump.
18656 (thumb_far_jump_used_p): Count instruction size and set
18657 far_jump_used.
18658
01007ae0
EB
186592013-04-14 Eric Botcazou <ebotcazou@adacore.com>
18660
18661 * reorg.c (fill_simple_delay_slots): Reindent block of code.
18662 * resource.c (mark_target_live_regs): Reformat conditional block.
18663
c46f6580
SB
186642013-04-13 Steven Bosscher <steven@gcc.gnu.org>
18665
18666 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
18667 notes, they are emitted only just before final.
18668 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
18669
1f397f45
SB
186702013-04-13 Steven Bosscher <steven@gcc.gnu.org>
18671
18672 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
18673 * cfgrtl.c (delete_insn): Call it here instead.
18674 * lra-spills.c (lra_final_code_change): Use delete_insn.
18675 * haifa-sched.c (sched_remove_insn): Likewise.
18676 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
18677 returning to the nop pool.
18678 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
18679 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
18680
58a51369
SB
186812013-04-12 Steven Bosscher <steven@gcc.gnu.org>
18682
18683 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
18684 * doc/tm.texi: Regenerated.
18685
33159866
UB
186862013-04-12 Uros Bizjak <ubizjak@gmail.com>
18687
18688 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
18689 QImode checks.
18690
226e378f
SB
186912013-04-12 Steven Bosscher <steven@gcc.gnu.org>
18692
18693 * df-core.c (df_find_def): Compare register numbers.
18694 (df_find_use): Likewise.
18695
fafb9b18
VM
186962013-04-12 Vladimir Makarov <vmakarov@redhat.com>
18697
18698 PR target/56903
18699 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
18700 lra_in_progress for return.
18701
9a946fd6
GY
187022013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
18703
18704 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
18705 define_insn into define_insn_and_split and emit movsicc patterns.
18706
41b83758
GY
187072013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
18708
18709 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
18710
d3afd9aa
RB
187112013-04-12 Richard Biener <rguenther@suse.de>
18712
18713 * tree-pass.h (TODO_do_not_ggc_collect): New.
18714 * passes.c (execute_one_ipa_transform_pass): Honor
18715 TODO_do_not_ggc_collect.
18716 (execute_one_pass): Likewise.
18717
18718 Revert
18719 2013-04-10 Richard Biener <rguenther@suse.de>
18720
18721 * passes.c (init_optimization_passes): Remove reload pass.
18722 * ira.c (do_reload): Merge into ...
18723 (ira): ... this.
18724 (rest_of_handle_reload): Remove.
18725 (pass_reload): Likewise.
18726 * config/i386/i386.c (ix86_option_override): Refer to ira instead
18727 of reload for vzeroupper pass placement.
18728
06f9b387
JJ
187292013-04-12 Jakub Jelinek <jakub@redhat.com>
18730
18731 PR tree-optimization/56918
18732 PR tree-optimization/56920
18733 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
18734 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
18735 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
18736 use wide_mul_with_sign method.
18737
953094d2
RB
187382013-04-12 Richard Biener <rguenther@suse.de>
18739
18740 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
18741 not be considered a gimple constant.
18742
bb506982
MG
187432013-04-12 Marc Glisse <marc.glisse@inria.fr>
18744
18745 * fold-const.c (const_binop): Handle vector shifts by a scalar.
18746 (fold_binary_loc): Call const_binop also for mixed vector-scalar
18747 operations.
18748
4b84d650
JJ
187492013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
18750 Jakub Jelinek <jakub@redhat.com>
18751
18752 * opts.c: Include diagnostic-color.h.
18753 (common_handle_option): Handle OPT_fdiagnostics_color_.
18754 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
18755 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
18756 (diagnostic-color.o): New.
18757 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
18758 (diagnostic_color_rule): New enum.
18759 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
18760 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
18761 the location string.
18762 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
18763 either NULL, or color kind.
18764 * diagnostic-color.c: New file.
18765 * diagnostic-color.h: New file.
18766 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
18767 arguments.
18768 * doc/invoke.texi (-fdiagnostics-color): Document.
18769 * pretty-print.h (pp_show_color): Define.
18770 (struct pretty_print_info): Add show_color field.
18771 * diagnostic.c: Include diagnostic-color.h.
18772 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
18773 macros. Colorize error:, warning: etc. strings and also the location
18774 string.
18775 (diagnostic_show_locus): Colorize the caret line.
18776 * pretty-print.c: Include diagnostic-color.h.
18777 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
18778 inside of %< %> quotes or quoted through q format modifier.
18779
067a1e71
AK
187802013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18781
33159866 18782 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 18783
33159866 187842013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
18785
18786 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
18787 code in CC_NZ mode.
18788 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
18789 pattern.
18790
7b55f98f
MP
187912013-04-11 Marek Polacek <polacek@redhat.com>
18792
18793 PR tree-optimization/48184
33159866 18794 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 18795
966b587e
EB
187962013-04-11 Eric Botcazou <ebotcazou@adacore.com>
18797
18798 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
18799 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
18800 (skip_simple_arithmetic): Tidy up.
18801 * tree.h (skip_simple_constant_arithmetic): Declare.
18802
33159866 188032013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
18804
18805 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
18806
1d42c1ec
RB
188072013-04-11 Richard Biener <rguenther@suse.de>
18808
18809 * tree-vect-loop.c (get_initial_def_for_induction): Properly
18810 generate vector constants.
18811
4ba5ea11
RB
188122013-04-11 Richard Biener <rguenther@suse.de>
18813
18814 PR tree-optimization/56878
18815 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
18816 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
18817 New function.
18818 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18819 Prefer to align the DR with the most invariant base address.
18820
f0defe58
SKS
188212013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18822
18823 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
18824 comment.
18825
d07458be
JG
188262013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18827
18828 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
18829 floating-point vector comparisons against 0.
18830
146b8692
JJ
188312013-04-11 Jakub Jelinek <jakub@redhat.com>
18832
18833 PR tree-optimization/56899
18834 * fold-const.c (extract_muldiv_1): Apply distributive law
18835 only if TYPE_OVERFLOW_WRAPS (ctype).
18836
b8578ff7
BC
188372013-04-11 Bin Cheng <bin.cheng@arm.com>
18838
18839 PR target/56124
18840 * ira-costs.c (scan_one_insn): Check whether the source rtx of
18841 loading has side effect.
18842
0ea8a6f9
SB
188432013-04-10 Steven Bosscher <steven@gcc.gnu.org>
18844
18845 * config/sparc/sparc.c: Include tree-pass.h.
18846 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
18847 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
18848 head of file. Change return type. Split off gate function.
18849 (sparc_gate_work_around_errata): New function.
18850 (pass_work_around_errata): New pass definition.
18851 (insert_pass_work_around_errata) New pass insert definition to
18852 insert pass_work_around_errata just after delayed-branch scheduling.
18853 (sparc_option_override): Insert the pass.
18854 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
18855
42e37616
DM
188562013-04-10 David S. Miller <davem@davemloft.net>
18857
89deeb3b
DM
18858 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
18859 or -mcpu=hypersparc.
18860
42e37616
DM
18861 * target.def (cstore_mode): New hook.
18862 * target.h: Include insn-codes.h
18863 * targhooks.c: Likewise.
18864 (default_cstore_mode): New function.
18865 * targhooks.h: Declare it.
18866 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
18867 * doc/tm.texi: Rebuild.
18868 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
18869 target hook, rather than inspecting the insn_data.
18870 * config/sparc/sparc.c (sparc_cstore_mode): New function.
18871 (TARGET_CSTORE_MODE): Redefine.
18872 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
18873 result patterns.
18874 * config/sparc/predicates.md (cstore_result_operand): New special
18875 predicate.
18876 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
18877 Use it for operand 0.
18878 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
18879 (*snesi_special): Likewise.
18880 (*snesi_zero): Likewise.
18881 (*seqsi_zero): Likewise.
18882 (*sltu_insn): Likewise.
18883 (*sgeu_insn): Likewise.
18884 (*seqdi_special): Make operand 0 and comparison operation be of
18885 DImode.
18886 (*snedi_special): Likewise.
18887 (*snedi_special_vis3): Likewise.
18888 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
18889 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
18890 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
18891 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
18892 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
18893 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
18894 (*sltu_extend_sp64): Likewise.
18895 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
18896 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
18897 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
18898 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
18899 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
18900
95ca411e
YZ
189012013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
18902
18903 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
18904 (aarch64_start_file): Use the new function.
18905
6782438d 189062013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 18907 Jason Merrill <jason@redhat.com>
6782438d
SKS
18908
18909 * common.opt: Add -gdwarf.
18910 * opts.c (common_handle_option): Handle it.
18911 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
18912
bb313b93
RB
189132013-04-10 Richard Biener <rguenther@suse.de>
18914
18915 * passes.c (execute_todo): Do not call ggc_collect conditional here.
18916 (execute_one_ipa_transform_pass): But unconditionally here.
18917 (execute_one_pass): And here.
18918 (init_optimization_passes): Remove reload pass.
18919 * tree-pass.h (TODO_ggc_collect): Remove.
18920 (pass_reload): Likewise.
18921 * ira.c (do_reload): Merge into ...
18922 (ira): ... this.
18923 (rest_of_handle_reload): Remove.
18924 (pass_reload): Likewise.
18925 * config/i386/i386.c (ix86_option_override): Refer to ira instead
18926 of reload for vzeroupper pass placement.
18927 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
18928 and todo_flags_finish of all passes.
18929
793d9a16
RB
189302013-04-10 Richard Biener <rguenther@suse.de>
18931
18932 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
18933 first_const_oprnd field, rename first_def_type to first_op_type.
18934 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
18935 (vect_get_and_check_slp_defs): Always use the type of the
18936 operand. Allow mixed vect_external_def, vect_constant_def types.
18937 (vect_get_constant_vectors): Handle mixed vect_external_def,
18938 vect_constant_def types.
18939
12211b99 189402013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
18941
18942 PR tree-optimization/55524
18943 * tree-ssa-math-opts.c
18944 (convert_mult_to_fma): Don't use an fms construct
18945 when we don't have an fms operation, but fnma, and it looks
18946 likely that we'll be able to use the latter.
18947
12211b99 189482013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
18949
18950 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
18951 function.
18952 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
18953 inline fail caused by overwritable functions.
18954
34ab4a5b
CJW
189552013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
18956
18957 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
18958 unnecessary bits in the constant power of two case.
18959
abf9bfbc
RB
189602013-04-10 Richard Biener <rguenther@suse.de>
18961
18962 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
18963 broken code swapping operands.
18964 (vect_build_slp_tree): Do not compute load permutations here.
18965 (vect_analyze_slp_instance): Compute load permutations here,
18966 after building the SLP tree.
18967
f408477e
CB
189682013-04-09 Christian Bruel <christian.bruel@st.com>
18969
18970 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
18971 of next/prev_real_insn.
18972
5ac42672
JH
189732013-04-09 Jan Hubicka <jh@suse.cz>
18974
abf9bfbc
RB
18975 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
18976 Drop aliased parameter.
5ac42672
JH
18977 (function_and_variable_visibility): Do not handle alias pairs.
18978 * cgraph.c (varpool_externally_visible_p): Update prototype.
18979 * varpool.c (varpool_add_new_variable): Update.
18980
5017f1d2
KT
189812013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18982
18983 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
18984
48eecbee
SB
189852013-04-09 Steven Bosscher <steven@gcc.gnu.org>
18986
a949cf1c
SB
18987 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
18988
48eecbee
SB
18989 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
18990
75ef8e3d
MP
189912013-04-09 Marek Polacek <polacek@redhat.com>
18992
18993 PR tree-optimization/48762
33159866 18994 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 18995
23847df4
RB
189962013-04-09 Richard Biener <rguenther@suse.de>
18997
18998 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
18999 dealing with cost.
19000 (vect_build_slp_tree): Likewise.
19001 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
19002 calculating the cost of a SLP instance.
19003 (vect_analyze_slp_instance): Use it from here, after building
19004 the SLP tree.
19005
ea3a0fde
JJ
190062013-04-09 Jakub Jelinek <jakub@redhat.com>
19007
19008 PR middle-end/56883
19009 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
19010 expand_omp_for_static_chunk): Use simple_p = true in
19011 force_gimple_operand_gsi calls when assigning to addressable decls.
19012
a32dfe9d
JL
190132013-04-09 Jeff Law <law@redhat.com>
19014
19015 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
19016 when the boolean was created by converting a wider object which
19017 had a boolean range.
19018
d755c7ef
RB
190192013-04-09 Richard Biener <rguenther@suse.de>
19020
19021 * tree-vectorizer.h (slp_void_p): Remove.
19022 (slp_tree): Typedef before _slp_tree declaration.
19023 (struct _slp_tree): Use a vector of slp_tree as children.
19024 (vect_get_place_in_interleaving_chain): Remove.
19025 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
19026 Move ...
19027 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
19028 and make static.
19029 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
19030 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
19031 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
19032 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
19033 Use slp_node instead of slp_void_p and adjust.
19034
3d741091
RB
190352013-04-09 Richard Biener <rguenther@suse.de>
19036
19037 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
19038 work that is not necessary.
19039
39307ba7
JJ
190402013-04-09 Jakub Jelinek <jakub@redhat.com>
19041
19042 PR tree-optimization/56854
19043 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
19044 forward into clobber stmts if it would change MEM_REF lhs into
19045 non-MEM_REF.
19046
343881fd
MK
190472013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
19048
19049 * tree.c (type_hash_lookup, type_hash_add): Make static.
19050 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
19051
3922658a
RB
190522013-04-09 Richard Biener <rguenther@suse.de>
19053
19054 * tree.h (unsave_expr_now): Remove.
19055 * tree-inline.c (mark_local_for_remap_r): Remove.
19056 (unsave_expr_1): Likewise.
19057 (unsave_r): Likewise.
19058 (unsave_expr_now): Likewise.
19059 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
19060 (propagate_tree_value): Likewise.
19061
9fb6b620
SB
190622013-04-08 Steven Bosscher <steven@gcc.gnu.org>
19063
19064 * doc/rtl.texi (sequence): Rewrite documentation to match the
19065 current use of SEQUENCE rtl objects.
19066 * rtl.def (SEQUENCE): Likewise.
19067
19068 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
19069 Update documentation.
19070 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
19071 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
19072
19073 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
19074
8ddb5a29
TJ
190752013-04-08 Teresa Johnson <tejohnson@google.com>
19076
19077 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
19078 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 19079 methods.
8ddb5a29
TJ
19080 (estimate_edge_size_and_time): Add comment to suggest using rounding
19081 methods.
19082 (estimate_node_size_and_time): Ditto.
19083 (remap_edge_change_prob): Use helper rounding divide methods.
19084 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
19085 (gimple_mod_pow2_value_transform): Ditto.
19086 (gimple_mod_subtract_transform): Ditto.
19087 (gimple_ic_transform): Ditto.
19088 (gimple_stringops_transform): Ditto.
19089 * stmt.c (conditional_probability): Ditto.
19090 (emit_case_dispatch_table): Ditto.
19091 * lto-cgraph.c (merge_profile_summaries): Ditto.
19092 * tree-optimize.c (execute_fixup_cfg): Ditto.
19093 * cfgcleanup.c (try_forward_edges): Ditto.
19094 * cfgloopmanip.c (scale_loop_profile): Ditto.
19095 (loopify): Ditto.
19096 (duplicate_loop_to_header_edge): Ditto.
19097 (lv_adjust_loop_entry_edge): Ditto.
19098 * tree-vect-loop.c (vect_transform_loop): Ditto.
19099 * profile.c (compute_branch_probabilities): Ditto.
19100 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
19101 * lto-streamer-in.c (input_cfg): Ditto.
19102 * gimple-streamer-in.c (input_bb): Ditto.
19103 * ipa-cp.c (update_profiling_info): Ditto.
19104 (update_specialized_profile): Ditto.
19105 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
19106 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 19107 rounding methods.
8ddb5a29
TJ
19108 * sched-rgn.c (compute_dom_prob_ps): Ditto.
19109 (compute_trg_info): Ditto.
19110 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
19111 (purge_dead_edges): Ditto.
19112 * loop-unswitch.c (unswitch_loop): Ditto.
19113 * cgraphclones.c (cgraph_clone_edge): Ditto.
19114 (cgraph_clone_node): Ditto.
19115 * tree-inline.c (copy_bb): Ditto.
19116 (copy_edges_for_bb): Ditto.
19117 (initialize_cfun): Ditto.
19118 (copy_cfg_body): Ditto.
19119 (expand_call_inline): Ditto.
19120
661e6bd7
KT
191212013-04-08 Kai Tietz <ktietz@redhat.com>
19122
19123 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
19124 TARGET_CYGWIN64 by TARGET_64BIT.
19125
105766f3
JR
191262013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19127
19128 * config/epiphany/epiphany.md (GPR_1): New constant.
19129 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
19130 * config/epiphany/epiphany.c (gen_compare_reg):
19131 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
19132 is already in place.
19133 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
19134 Don't require being called during rtl expansion; If y operlaps r0,
19135 return 0.
19136 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
19137 (epiphany_expand_epilogue): Likewise.
19138
8afab237
JR
19139 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
19140 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 19141 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 19142
fa7707d6
JR
19143 * config/epiphany/constraints.md (CnL): New constraint.
19144 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
19145 * config/epiphany/predicates.md (add_operand): Allow 1024.
19146
5138e18d
JR
19147 * config/epiphany/epiphany.md (logical_op): New code iterator.
19148 (op_mnc): New code attribute.
19149 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
19150 (mov_f+1, mov_f+2): New peephole2 patterns.
19151
2ccc703d
JR
19152 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
19153 (cstoresi4): Also allow re-use of zero result when doing a NE
19154 comparison to a non-zero operand.
aefb0819 19155 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 19156
093ac0a5
JR
19157 * config/epiphany/epiphany.md (<insn_opname>v2si3):
19158 Use gen_addsi3_i / gen_subsi3_i.
19159
f223bb13
JJ
191602013-04-08 Jakub Jelinek <jakub@redhat.com>
19161
19162 PR c++/34949
19163 PR c++/50243
19164 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
19165 contain anything but clobbers, at most one __builtin_stack_restore,
19166 optionally debug stmts and final resx, and if it has at least one
19167 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
19168 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
19169 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
19170 which isn't defaut definition, remove them.
19171 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
19172 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
19173 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
19174 with MEM_REF LHS with SSA_NAME address.
19175
4481581f
JL
191762013-04-08 Jeff Law <law@redhat.com>
19177
19178 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 19179
451dabda
RB
191802013-04-08 Richard Biener <rguenther@suse.de>
19181
19182 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
19183 extra newline.
19184 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
19185 determined vector type.
19186 (vect_analyze_data_refs): Likewise.
19187 (vect_get_new_vect_var): Adjust.
19188 (vect_create_destination_var): Preserve SSA name versions.
19189 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
19190 not dump anything here.
19191
3b088b47
JR
191922013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19193
19194 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
19195 Add member lr_slot_known.
19196 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
19197 if necessary.
19198 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
19199 Remove code that sets lr_slot_offset according to what a previous
19200 version of epiphany_emit_save_restore used to do.
19201 (epiphany_emit_save_restore): When doing an lr save or restore,
19202 set/verify lr_slot_known and lr_slot_offset.
19203
d8484d41
XQ
192042013-04-08 Xinyu Qi <xyqi@marvell.com>
19205
33159866
UB
19206 PR target/54338
19207 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
19208 in ALL_REGS.
19209
481be1c4
RB
192102013-04-08 Richard Biener <rguenther@suse.de>
19211
19212 * alias.c (find_base_term): Fix thinko in previous change.
19213
401f3a81
JJ
192142013-04-08 Jakub Jelinek <jakub@redhat.com>
19215
19216 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
19217 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
19218 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
19219 if possible to compute val.
19220 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
19221 For QImode integers don't require anything about precision. Use
19222 const_with_all_bytes_same to find out if the constant doesn't have
19223 repeated bytes in it.
19224
03ed99a8
AK
192252013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19226
19227 * config/s390/s390.c (s390_expand_insv): Only accept insertions
19228 within mode size.
19229
781b2e62
MP
192302013-04-08 Marek Polacek <polacek@redhat.com>
19231
19232 PR rtl-optimization/48182
19233 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
19234 value to 1.
19235
27e430a2
JDA
192362013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19237
19238 PR target/55487
19239 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
19240 nuses, make sure we have a label.
19241
4902aa64
BS
192422013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19243
19244 PR target/56843
19245 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
19246 (rs6000_emit_swdiv_low_precision): Remove.
19247 (rs6000_emit_swdiv): Rewrite to handle between one and four
19248 iterations of Newton-Raphson generally; modify required number of
19249 iterations for some cases.
19250 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
19251
7bca81dc
SB
192522013-04-05 Steven Bosscher <steven@gcc.gnu.org>
19253
19254 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
19255 set-but-unused variable.
19256
19257 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
19258 basic blocks of released function bodies garbage-collectable.
19259
19260 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
19261 (struct rtl_opt_pass): Add TODO_df_finish.
19262
19263 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
19264
4542a38a
GY
192652013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19266
19267 * config/arm/constraints.md (q): New constraint.
19268 * config/arm/ldrdstrd.md: New file.
19269 * config/arm/arm.md (ldrdstrd.md) New include.
19270 (arm_movdi): Use "q" instead of "r" constraint
19271 for double-word memory access.
19272 (movdf_soft_insn): Likewise.
19273 * config/arm/vfp.md (movdi_vfp): Likewise.
19274 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 19275 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
19276 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
19277 (mem_ok_for_ldrd_strd): Likewise.
19278 (output_move_double): Update assertion.
19279
2385b218
GY
192802013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19281
19282 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
19283
75fe1cb5
GY
192842013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19285
19286 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
19287 define_insn_and_split.
19288 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
19289
dd660e8e
GY
192902013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19291
19292 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
19293 define_insn_and_split.
33159866 19294 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
19295 (shiftsi3_compare): New pattern.
19296 (rrx): New pattern.
19297 * config/arm/unspecs.md (UNSPEC_RRX): New.
19298
045e472c
GY
192992013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19300
19301 * config/arm/arm.md (negdi_extendsidi): New pattern.
19302 (negdi_zero_extendsidi): Likewise.
19303
3f3bf1a8
GY
193042013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19305
19306 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
19307 define_insn_and_split.
19308 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
19309 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
19310
b0b49556
GY
193112013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19312
19313 * config/arm/arm.md (arm_subdi3): Convert define_insn into
19314 define_insn_and_split.
19315 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
19316 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
19317
d633dd84
GY
193182013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19319
19320 * config/arm/arm.md (subsi3_carryin): New pattern.
19321 (subsi3_carryin_const): Likewise.
19322 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
19323 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
19324
f4499066
GY
193252013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19326
19327 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
19328
ceef6fd9
GY
193292013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19330
19331 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 19332 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 19333
ddbdd8a7
KT
193342013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19335
19336 * config/arm/arm.c (arm_expand_builtin): Change fcode
19337 type to unsigned int.
19338
8456d78a
RR
193392013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19340
19341 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
19342
526c230f
ILT
193432013-04-04 Ian Lance Taylor <iant@google.com>
19344
33159866
UB
19345 * doc/standards.texi (Standards): The Go frontend supports the Go 1
19346 language standard.
526c230f 19347
3cfbe04d
SB
193482013-04-04 Steven Bosscher <steven@gcc.gnu.org>
19349
19350 PR middle-end/56729
19351 * df-scan.c (df_insn_delete): Disable failing assert.
19352
dfa3f8d0
KT
193532013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19354
19355 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
19356 New function prototype.
19357 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
19358 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
19359 (arm_builtin_vectorized_function): New function.
19360
f7837758
KT
193612013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19362
19363 * config/arm/arm_neon_builtins.def: New file.
19364 * config/arm/arm.c (neon_builtin_data): Move contents to
19365 arm_neon_builtins.def.
19366 (enum arm_builtins): Include neon builtin definitions.
19367 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 19368 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 19369
39c1b6db
MP
193702013-04-04 Marek Polacek <polacek@redhat.com>
19371
19372 PR tree-optimization/48186
19373 * predict.c (maybe_hot_frequency_p): Return false if
19374 HOT_BB_FREQUENCY_FRACTION is 0.
19375 (cgraph_maybe_hot_edge_p): Likewise.
19376
314f64eb
RB
193772013-04-04 Richard Biener <rguenther@suse.de>
19378
19379 PR tree-optimization/56826
19380 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
19381 more accurately.
19382
51a905b2
RB
193832013-04-04 Richard Biener <rguenther@suse.de>
19384
19385 PR tree-optimization/56213
19386 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 19387 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 19388
f1bf4f3a
RB
193892013-04-04 Richard Biener <rguenther@suse.de>
19390
19391 PR tree-optimization/56837
19392 * tree-loop-distribution.c (classify_partition): For non-zero
19393 values require that the value has the same precision as its
19394 mode to be useful as memset value.
19395
0bca7ded
NC
193962013-04-03 Nick Clifton <nickc@redhat.com>
19397
33159866 19398 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
19399 (fmssf4): Use fmsf.s on E3V5 architectures.
19400 (fnmasf4): Use fnmaf.s on E3V5 architectures.
19401 (fnmssf4): Use fnmsf.s on E3V5 architectures.
19402
b4019227
JL
194032013-04-03 Jeff Law <law@redhat.com>
19404
19405 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
19406 (lra-eliminations.o): Likewise.
19407
f57ddb5b
TJ
194082013-04-03 Teresa Johnson <tejohnson@google.com>
19409
19410 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 19411 compute_working_sets here from profile.c.
f57ddb5b 19412 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
19413 (gcov_working_set_t): Moved typedef here from basic-block.h
19414 (compute_working_set): Declare.
f57ddb5b
TJ
19415 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
19416 (get_working_sets): Renamed from compute_working_set,
33159866 19417 replace most of body with call to new compute_working_sets.
f57ddb5b 19418 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
19419 to get_working_sets.
19420 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 19421 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 19422 to get_working_sets.
f57ddb5b
TJ
19423 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
19424 * gcov-dump.c (dump_working_sets): New function.
19425
12211b99 194262013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
19427
19428 * hwint.c (sext_hwi, zext_hwi): New functions.
19429 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
19430 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
19431 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
19432 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
19433 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
19434 (sext_hwi, zext_hwi): New functions.
0bca7ded 19435
be672e08
JL
194362013-04-03 Jeff Law <law@redhat.com>
19437
19438 PR tree-optimization/56799
33159866
UB
19439 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
19440 back test for widening conversion erroneously dropped in prior change.
be672e08 19441
9d821fa5
KT
194422013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19443
19444 PR target/56809
19445 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
19446 instead of next_real_insn.
19447
71c581e7
MP
194482013-04-03 Marek Polacek <polacek@redhat.com>
19449
19450 PR sanitizer/55702
33159866 19451 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 19452
4a32ef80
KT
194532013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19454
19455 PR target/56809
19456 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
19457 next_real_insn.
19458 (thumb1_output_casesi): Likewise.
19459 (thumb2_output_casesi): Likewise.
19460
1b2253d4
RB
194612013-04-03 Richard Biener <rguenther@suse.de>
19462
19463 PR tree-optimization/56817
19464 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
19465 Split out ...
19466 (tree_unroll_loops_completely_1): ... new function to manually
19467 walk the loop tree, properly defering outer loops of unrolled
19468 loops to later iterations.
19469
38000232
MG
194702013-04-03 Marc Glisse <marc.glisse@inria.fr>
19471
19472 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
19473 (vectorizable_load): Likewise.
19474 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
19475 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
19476
3fa35298
MG
194772013-04-03 Marc Glisse <marc.glisse@inria.fr>
19478
19479 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
19480 BIT_FIELD_REF.
19481
b3d45ff0
UW
194822013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19483
19484 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
19485
ec9202a8
BC
194862013-04-03 Bin Cheng <bin.cheng@arm.com>
19487
19488 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
19489
6805bd36
MG
194902013-04-03 Marc Glisse <marc.glisse@inria.fr>
19491
19492 PR tree-optimization/56790
33159866
UB
19493 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
19494 folding.
6805bd36 19495
da694a77
MG
194962013-04-03 Marc Glisse <marc.glisse@inria.fr>
19497
19498 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
19499 Handle VEC_MERGE.
19500 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
19501 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
19502 equal arguments.
19503
4e7d7b3d
JJ
195042013-04-03 Jakub Jelinek <jakub@redhat.com>
19505
19506 PR c/19449
19507 * tree.h (force_folding_builtin_constant_p): New decl.
19508 * builtins.c (force_folding_builtin_constant_p): New variable.
19509 (fold_builtin_constant_p): Fold immediately also if
19510 force_folding_builtin_constant_p.
19511
e6c9d234
RB
195122013-04-03 Richard Biener <rguenther@suse.de>
19513
19514 PR tree-optimization/56812
19515 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
19516 DRs of the same interleaving chain are independent.
19517
984d07dd
JM
195182013-04-02 Jason Merrill <jason@redhat.com>
19519
19520 * gdbinit.in (pbb): Use debug fn.
19521
622849c9
LC
195222013-04-02 Lawrence Crowl <crowl@google.com>
19523
19524 * sese.h (struct ivtype_map_elt_s): Remove unused.
19525 (extern debug_ivtype_map): Remove unused.
19526 (extern eq_ivtype_map_elts): Remove unused.
19527 * sese.c (debug_ivtype_map): Removed unused.
19528 (debug_ivtype_map_1): Removed unused.
19529 (debug_ivtype_elt): Remove unused.
19530 (eq_ivtype_map_elts): Remove unused.
19531
19532
82c0e1a0
KT
195332013-04-02 Kai Tietz <ktietz@redhat.com>
19534
19535 PR target/52790
19536 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
19537 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
19538 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
19539 function.
82c0e1a0
KT
19540 (legitimize_pe_coff_symbol): Likewise.
19541 (is_imported_p): New helper-function.
19542 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
19543 for Windows x64 targets.
19544 (ix86_expand_prologue): Optimize for pe-coff targets.
19545 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
19546 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
19547 medium/large code-model.
19548 (legitimize_pic_address): Likewise.
19549 (legitimize_tls_address): Likewise.
19550 (ix86_expand_call): Likewise.
19551 (x86_output_mi_thunk): Likewise.
19552 (get_dllimport_decl): Add new beimport argument.
19553 (construct_plt_address): Don't assert for x64 pe-coff targets.
19554 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
19555 targets.
19556 (SYMBOL_FLAG_STUBVAR): New macro.
19557 (SYMBOL_REF_STUBVAR_P): Likewise.
19558 * config/i386/winnt.c (stub_list): New structure.
19559 (stub_head): New local variable.
19560 (i386_pe_record_stub): New function.
19561 (i386_pe_file_end): Emit refptr-stubs.
19562
5d751b0c
JJ
195632013-04-02 Jakub Jelinek <jakub@redhat.com>
19564
09bb4c99
JJ
19565 PR rtl-optimization/56745
19566 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
19567 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
19568
a1d8947a
JJ
19569 PR c++/34949
19570 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
19571 and both of them are MEM_REFs, just compare first argument for
19572 equality and attempt to deal even with differing offsets.
19573
5d751b0c
JJ
19574 PR c++/34949
19575 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
19576 of gimple_clobber_p to be MEM_REF.
19577 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
19578 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
19579 after gimplification.
19580 * asan.c (get_mem_ref_of_assignment): Don't instrument
19581 gimple_clobber_p stmts.
19582 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
19583 gimple_clobber_p stmt if they have MEM_REF lhs and
19584 are dead because of another gimple_clobber_p stmt.
19585 * tree-ssa-live.c (clear_unused_block_pointer): Treat
19586 gimple_clobber_p stmts like debug stmts.
19587 (remove_unused_locals): Remove clobbers with MEM_REF lhs
19588 that refer to unused VAR_DECLs or uninitialized values.
19589 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
19590 gimple_clobber_p stmts if they refer to removed parameters.
19591 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
19592 formatting.
19593
e594716a
UB
195942013-04-02 Uros Bizjak <ubizjak@gmail.com>
19595
19596 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
19597 using SWI48 mode attribute.
19598
7a80735b
WM
195992013-04-02 Wei Mi <wmi@google.com>
19600
19601 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
19602 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
19603 *<rotate_insn><mode>3_mask in i386.md.
19604
f423a9e4
AI
196052013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
19606
19607 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
19608
90eb75f2
RB
196092013-04-02 Richard Biener <rguenther@suse.de>
19610
19611 PR tree-optimization/56778
19612 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19613 Runtime alias tests are not supported for gather loads.
19614 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
19615 stmts referenced from SSA operands before updating SSA form.
19616
d8c69a92
IC
196172013-04-02 Ian Caulfield <ian.caulfield@arm.com>
19618 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19619
19620 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
19621 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
19622 * config/arm/cortex-a53.md: New file.
19623 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
19624 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
19625 * config/arm/arm.c (arm_issue_rate): Likewise.
19626 * config/arm/arm-tune.md: Regenerate
19627 * config/arm/arm-tables.opt: Regenerate.
19628 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 19629
239eb04c
ZC
196302013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
19631
19632 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
19633 non-static link.
19634
c902d3c8
SN
196352013-04-02 Sofiane Naci <sofiane.naci@arm.com>
19636
d8c69a92
IC
19637 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
19638 scalar load/store operations using B/H registers.
c902d3c8
SN
19639 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
19640
051d0e2f
SN
196412013-04-02 Sofiane Naci <sofiane.naci@arm.com>
19642
19643 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
19644 scalar move.
19645 * config/aarch64/aarch64.c
19646 (aarch64_simd_scalar_immediate_valid_for_move): New.
19647 * config/aarch64/aarch64-protos.h
19648 (aarch64_simd_scalar_immediate_valid_for_move): New.
19649 * config/aarch64/constraints.md (Dh, Dq): New.
19650 * config/aarch64/iterators.md (hq): New.
19651
0ee1e3d9
EB
196522013-04-02 Eric Botcazou <ebotcazou@adacore.com>
19653
19654 * reorg.c (get_branch_condition): Deal with conditional returns.
19655 (fill_simple_delay_slots): Remove dead code dealing with jumps.
19656
136fb3f7
WM
196572013-04-01 Wei Mi <wmi@google.com>
19658
19659 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
19660 Truncate operand 2 using %b asm operand modifier.
19661 (*<shift_insn><mode>3_mask): Ditto.
19662 (*<rotate_insn><mode>3_mask): Ditto.
19663
6388c738
SB
196642013-04-01 Steven Bosscher <steven@gcc.gnu.org>
19665
19666 PR middle-end/56798
19667 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
19668
f7a4d826
KK
196692013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
19670
19671 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
19672 of next_real_insn.
19673 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
19674
4b943a49
LC
196752013-03-30 Lawrence Crowl <crowl@google.com>
19676
19677 * dse.c (clear_alias_sets): Remove never set.
19678 (disqualified_clear_alias_sets): Remove never set.
19679 (clear_alias_mode_pool): Remove never set.
19680 (dse_step0): Remove condition that is never true.
19681 (canon_address): Remove condition that is never true.
19682 (dse_step7): Remove condition that is never true.
19683 (rest_of_handle_dse): Remove condition that is never true.
19684 (rest_of_handle_dse::did_global): Remove never read from above.
19685 (dse_step2_spill): Remove never called from above.
19686 (dse_step5_spill): Remove never called from above.
19687
39718607
SB
196882013-03-30 Steven Bosscher <steven@gcc.gnu.org>
19689
da5c6bde
SB
19690 * doc/md.texi (Standard Names) <casesi>: Update documentation for
19691 JUMP_TABLE_DATA changes.
19692 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
19693 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
19694 (Insns) <jump_table_data>: New entry.
19695 * doc/tm.texi: Regenerate.
19696
39718607
SB
19697 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
19698
19699 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
19700 for table jump at the end of a basic block using tablejump_p.
19701 * targhooks.c (default_invalid_within_doloop): Likewise.
19702 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
19703 target hook implementation that is identical to the default hook.
19704 (rs6000_invalid_within_doloop): Remove.
19705
19706 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
19707 unused variable from tablejump_p call.
19708
19709 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
19710 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
19711 (INSN_DELETED_P): Likewise.
19712 (emit_jump_table_data): New prototype.
19713 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
19714 after 4th as unused.
19715 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
19716 * sched-vis.c (print_insn): Likewise.
19717 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
19718 insn for compatibility with back ends that use next_active_insn to
19719 identify jump table data.
19720 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
19721 (remove_insn): Likewise.
19722 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
19723 to be emitted.
19724 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
19725 (emit_jump_table_data): New function.
19726
19727 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
19728 basic block, a JUMP_TABLE_DATA never is.
19729 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
19730 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
19731 off from code handling real insns.
19732 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
19733 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
19734 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
19735 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
19736 is not a NONDEBUG_INSN_P.
19737 * ira-costs.c (scan_one_insn): Likewise.
19738 * jump.c (mark_all_labels): Likewise.
19739 (mark_jump_label_1): Likewise.
19740 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19741 * lra.c (get_insn_freq): Expect all insns reaching here to be in
19742 a basic block.
19743 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
19744 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
19745 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
19746 JUMP_TABLE_DATA_P insns.
19747 (calculate_elim_costs_all_insns): Likewise.
19748 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
19749 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
19750 (delete_output_reload): Code style fixups.
19751 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
19752 insn flags on this non-insn.
19753 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
19754 as scheduling barriers, for pre-change compatibility.
19755 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
19756 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
19757
19758 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
19759 redundant JUMP_TABLE_DATA_P test.
19760 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
19761 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
19762 (frv_for_each_packet): Likewise.
19763 * config/i386/i386.c (min_insn_size): Likewise.
19764 (ix86_avoid_jump_mispredicts): Likewise.
19765 * config/m32r/m32r.c (m32r_is_insn): Likewise.
19766 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
19767 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
19768 (mips16_insn_length): Robustify.
19769 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
19770 (mips16_split_long_branches): Likewise.
19771 * config/pa/pa.c (pa_combine_instructions): Likewise.
19772 * config/rs6000/rs6000.c (get_next_active_insn): Treat
19773 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
19774 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
19775 as contributing to pool range lengths.
19776 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
19777 Remove redundant JUMP_TABLE_DATA_P test.
19778 (sh_loop_align): Likewise.
19779 (split_branches): Likewise.
19780 (sh_insn_length_adjustment): Likewise.
19781 * config/spu/spu.c (get_branch_target): Likewise.
19782
0208f7da
JH
197832013-03-29 Jan Hubicka <jh@suse.cz>
19784
19785 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
19786 gcov streaming; stream hot bb threshold to ltrans.
19787 * predict.c (get_hot_bb_threshold): Break out from ....
19788 (maybe_hot_count_p): ... here.
19789 (set_hot_bb_threshold): New function.
19790 * lto-section-in.c (lto_section_name): Add profile.
19791 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
19792 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
19793 and data-streamer.h
19794 (histogram_entry): New structure.
19795 (histogram, histogram_pool): New global vars.
19796 (histogram_hash): New structure.
19797 (histogram_hash::hash): New method.
19798 (histogram_hash::equal): Likewise.
19799 (account_time_size): New function.
19800 (cmp_counts): New function.
19801 (dump_histogram): New function.
19802 (ipa_profile_generate_summary): New function.
19803 (ipa_profile_write_summary): New function.
19804 (ipa_profile_read_summary): New function.
19805 (ipa_profile): Decide on threshold.
e594716a
UB
19806 (pass_ipa_profile): Add ipa_profile_write_summary and
19807 ipa_profile_read_summary.
0208f7da
JH
19808 * Makefile.in (ipa.o): Update dependencies.
19809 * lto-streamer.h (LTO_section_ipa_profile): New section.
19810
5a6ccc94
GDR
198112013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
19812
19813 * tree.h (VAR_P): New.
19814
39385fa6
PC
198152013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
19816
19817 PR lto/56777
19818 * doc/invoke.texi ([-fwhole-program]): Fix typo.
19819
34f0d87a
SB
198202013-03-29 Steven Bosscher <steven@gcc.gnu.org>
19821
19822 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
19823 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
19824 (control_flow_insn_p): Likewise.
19825 * cfgrtl.c (duplicate_insn_chain): Likewise.
19826 * final.c (get_attr_length_1): Likewise.
19827 (shorten_branches): Likewise.
19828 (final_scan_insn): Likewise.
19829 * function.c (instantiate_virtual_regs): Likewise.
19830 * gcse.c (insert_insn_end_basic_block): Likewise.
19831 * ira-costs.c (scan_one_insn): Likewise.
19832 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19833 * lra.c (check_rtl): Likewise.
19834 * reload1.c (elimination_costs_in_insn): Likewise.
19835 * reorg.c (follow_jumps): Likewise.
19836
19837 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
19838 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
19839 (thumb_far_jump_used_p): Likewise.
19840 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
19841 (workaround_speculation): Likewise.
19842 (add_sched_insns_for_speculation): Likewise.
19843 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
19844 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
19845 (frv_for_each_packet): Likewise.
19846 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
19847 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
19848 (final_emit_insn_group_barriers): Likewise.
19849 * config/m32r/m32r.c (m32r_is_insn): Likewise.
19850 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
19851 (mips16_insn_length): Likewise.
19852 * config/pa/pa.c (pa_reorg): Likewise.
19853 (pa_combine_instructions): Likewise.
19854 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
19855 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
19856 (sh_reorg): Likewise.
19857 (split_branches): Likewise.
19858 * config/spu/spu.c (get_branch_target): Likewise.
19859
19860 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
19861 JUMP_TABLE_DATA_P.
19862
4ac761b0
KY
198632013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
19864
39385fa6 19865 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
19866 Fix declaration name.
19867
58a49189
LC
198682013-03-28 Lawrence Crowl <crowl@google.com>
19869
19870 * graphds.h (struct graph.indicies): Remove unused.
19871 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
19872 (SCOP_ORIGINAL_PDDRS): Remove unused.
19873 * sese.h (extern insert_loop_close_phis): Removed unused.
19874 (extern insert_guard_phis): Removed unused.
19875 (extern ivtype_map_elt_info): Removed unused.
19876 (new_ivtype_map_elt): Removed unused.
19877 * sese.c (ivtype_map_elt_info): Removed unused.
19878
7b3b6ae4
LC
198792013-03-28 Lawrence Crowl <crowl@google.com>
19880
19881 * Makefile.in: Add several missing include dependences.
19882 (DUMPFILE_H): New.
19883 (test-dump.o): New. This object is not added to any executable,
19884 but is present for ad-hoc testing.
19885 * bitmap.c
19886 (debug (const bitmap_head_def &)): New.
19887 (debug (const bitmap_head_def *)): New.
19888 * bitmap.h
19889 (extern debug (const bitmap_head_def &)): New.
19890 (extern debug (const bitmap_head_def *)): New.
19891 * cfg.c
19892 (debug (edge_def &)): New.
19893 (debug (edge_def *)): New.
19894 * cfghooks.c
19895 (debug (basic_block_def &)): New.
19896 (debug (basic_block_def *)): New.
19897 * dumpfile.h
19898 (dump_node (const_tree, int, FILE *)): Correct source file.
19899 * dwarf2out.c
19900 (debug (die_struct &)): New.
19901 (debug (die_struct *)): New.
19902 * dwarf2out.h
19903 (extern debug (die_struct &)): New.
19904 (extern debug (die_struct *)): New.
19905 * gimple-pretty-print.c
19906 (debug (gimple_statement_d &)): New.
19907 (debug (gimple_statement_d *)): New.
19908 * gimple-pretty-print.h
19909 (extern debug (gimple_statement_d &)): New.
19910 (extern debug (gimple_statement_d *)): New.
19911 * ira-build.c
19912 (debug (ira_allocno_copy &)): New.
19913 (debug (ira_allocno_copy *)): New.
19914 (debug (ira_allocno &)): New.
19915 (debug (ira_allocno *)): New.
19916 * ira-int.h
19917 (extern debug (ira_allocno_copy &)): New.
19918 (extern debug (ira_allocno_copy *)): New.
19919 (extern debug (ira_allocno &)): New.
19920 (extern debug (ira_allocno *)): New.
19921 * ira-lives.c
19922 (debug (live_range &)): New.
19923 (debug (live_range *)): New.
19924 * lra-int.h
19925 (debug (lra_live_range &)): New.
19926 (debug (lra_live_range *)): New.
19927 * lra-lives.c
19928 (debug (lra_live_range &)): New.
19929 (debug (lra_live_range *)): New.
19930 * omega.c
19931 (debug (omega_pb_d &)): New.
19932 (debug (omega_pb_d *)): New.
19933 * omega.h
19934 (extern debug (omega_pb_d &)): New.
19935 (extern debug (omega_pb_d *)): New.
19936 * print-rtl.c
19937 (debug (const rtx_def &)): New.
19938 (debug (const rtx_def *)): New.
19939 * print-tree.c
19940 (debug_tree (tree): Move within file.
19941 (debug_raw (const tree_node &)): New.
19942 (debug_raw (const tree_node *)): New.
19943 (dump_tree_via_hooks (const tree_node *, int)): New.
19944 (debug (const tree_node &)): New.
19945 (debug (const tree_node *)): New.
19946 (debug_verbose (const tree_node &)): New.
19947 (debug_verbose (const tree_node *)): New.
19948 (debug_head (const tree_node &)): New.
19949 (debug_head (const tree_node *)): New.
19950 (debug_body (const tree_node &)): New.
19951 (debug_body (const tree_node *)): New.
19952 (debug_vec_tree (tree): Move and reimplement in terms of dump.
19953 (debug (vec<tree, va_gc> &)): New.
19954 (debug (vec<tree, va_gc> *)): New.
19955 * rtl.h
19956 (extern debug (const rtx_def &)): New.
19957 (extern debug (const rtx_def *)): New.
19958 * sbitmap.c
19959 (debug_raw (simple_bitmap_def &)): New.
19960 (debug_raw (simple_bitmap_def *)): New.
19961 (debug (simple_bitmap_def &)): New.
19962 (debug (simple_bitmap_def *)): New.
19963 * sbitmap.h
19964 (extern debug (simple_bitmap_def &)): New.
19965 (extern debug (simple_bitmap_def *)): New.
19966 (extern debug_raw (simple_bitmap_def &)): New.
19967 (extern debug_raw (simple_bitmap_def *)): New.
19968 * sel-sched-dump.c
19969 (debug (vinsn_def &)): New.
19970 (debug (vinsn_def *)): New.
19971 (debug_verbose (vinsn_def &)): New.
19972 (debug_verbose (vinsn_def *)): New.
19973 (debug (expr_def &)): New.
19974 (debug (expr_def *)): New.
19975 (debug_verbose (expr_def &)): New.
19976 (debug_verbose (expr_def *)): New.
19977 (debug (vec<rtx> &)): New.
19978 (debug (vec<rtx> *)): New.
19979 * sel-sched-dump.h
19980 (extern debug (vinsn_def &)): New.
19981 (extern debug (vinsn_def *)): New.
19982 (extern debug_verbose (vinsn_def &)): New.
19983 (extern debug_verbose (vinsn_def *)): New.
19984 (extern debug (expr_def &)): New.
19985 (extern debug (expr_def *)): New.
19986 (extern debug_verbose (expr_def &)): New.
19987 (extern debug_verbose (expr_def *)): New.
19988 (extern debug (vec<rtx> &)): New.
19989 (extern debug (vec<rtx> *)): New.
19990 * sel-sched-ir.h
19991 (_list_iter_cond_expr): Make inline instead of static.
19992 * sreal.c
19993 (debug (sreal &)): New.
19994 (debug (sreal *)): New.
19995 * sreal.h
19996 (extern debug (sreal &)): New.
19997 (extern debug (sreal *)): New.
19998 * tree.h
19999 (extern debug_raw (const tree_node &)): New.
20000 (extern debug_raw (const tree_node *)): New.
20001 (extern debug (const tree_node &)): New.
20002 (extern debug (const tree_node *)): New.
20003 (extern debug_verbose (const tree_node &)): New.
20004 (extern debug_verbose (const tree_node *)): New.
20005 (extern debug_head (const tree_node &)): New.
20006 (extern debug_head (const tree_node *)): New.
20007 (extern debug_body (const tree_node &)): New.
20008 (extern debug_body (const tree_node *)): New.
20009 (extern debug (vec<tree, va_gc> &)): New.
20010 (extern debug (vec<tree, va_gc> *)): New.
20011 * tree-cfg.c
20012 (debug (struct loop &)): New.
20013 (debug (struct loop *)): New.
20014 (debug_verbose (struct loop &)): New.
20015 (debug_verbose (struct loop *)): New.
20016 * tree-dump.c: Add header dependence.
20017 * tree-flow.h
20018 (extern debug (struct loop &)): New.
20019 (extern debug (struct loop *)): New.
20020 (extern debug_verbose (struct loop &)): New.
20021 (extern debug_verbose (struct loop *)): New.
20022 * tree-data-ref.c
20023 (debug (data_reference &)): New.
20024 (debug (data_reference *)): New.
20025 (debug (vec<data_reference_p> &)): New.
20026 (debug (vec<data_reference_p> *)): New.
20027 (debug (vec<ddr_p> &)): New.
20028 (debug (vec<ddr_p> *)): New.
20029 * tree-data-ref.h
20030 (extern debug (data_reference &)): New.
20031 (extern debug (data_reference *)): New.
20032 (extern debug (vec<data_reference_p> &)): New.
20033 (extern debug (vec<data_reference_p> *)): New.
20034 (extern debug (vec<ddr_p> &)): New.
20035 (extern debug (vec<ddr_p> *)): New.
20036 * tree-ssa-alias.c
20037 (debug (pt_solution &)): New.
20038 (debug (pt_solution *)): New.
20039 * tree-ssa-alias.h
20040 (extern debug (pt_solution &)): New.
20041 (extern debug (pt_solution *)): New.
20042 * tree-ssa-alias.c
20043 (debug (_var_map &)): New.
20044 (debug (_var_map *)): New.
20045 (debug (tree_live_info_d &)): New.
20046 (debug (tree_live_info_d *)): New.
20047 * tree-ssa-alias.h
20048 (extern debug (_var_map &)): New.
20049 (extern debug (_var_map *)): New.
20050 (extern debug (tree_live_info_d &)): New.
20051 (extern debug (tree_live_info_d *)): New.
20052
be77e1e5
JH
200532013-03-28 Jan Hubicka <jh@suse.cz>
20054
20055 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
20056
777e6976
IB
200572013-03-28 Ian Bolton <ian.bolton@arm.com>
20058
20059 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
20060 record only when desired or required.
20061
9cd347ae
UB
200622013-03-28 Uros Bizjak <ubizjak@gmail.com>
20063
20064 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
20065 *vec_extractv2di_1_rex64. Use x64 isa attribute.
20066
33159866 200672013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
20068
20069 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
20070 (*andsi3_compare0_uxtw): New pattern.
20071 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
20072 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
20073
89ab31c1
JH
200742013-03-28 Jan Hubicka <jh@suse.cz>
20075
20076 * data-streamer-in.c (streamer_read_gcov_count): New function.
20077 * gimple-streamer-out.c: Include value-prof.h.
20078 (output_gimple_stmt): Output histogram.
20079 (output_bb): Use streamer_write_gcov_count.
20080 * value-prof.c: Include data-streamer.h
20081 (dump_histogram_value): Add HIST_TYPE_MAX.
20082 (stream_out_histogram_value): New function.
20083 (stream_in_histogram_value): New function.
20084 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
20085 (stream_out_histogram_value, stream_in_histogram_value): Declare.
20086 * data-streamer-out.c (streamer_write_gcov_count): New function.
20087 (streamer_write_gcov_count_stream): New function.
20088 * lto-cgraph.c (lto_output_edge): Update counter streaming.
20089 (lto_output_node): Likewise.
20090 (input_node, input_edge): Likewise.
20091 * lto-streamer-out.c (output_cfg): Update streaming.
20092 * lto-streamer-in.c (input_cfg): Likewise.
20093 * data-streamer.h (streamer_write_gcov_count,
20094 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
20095 * gimple-streamer-in.c: Include value-prof.h
20096 (input_gimple_stmt): Input histograms.
20097 (input_bb): Update profile streaming.
20098
e594716a 200992013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 20100
33159866 20101 * genmodes.c (emit_max_int): New function.
8697be17 20102 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
20103 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
20104 Added doc.
8697be17 20105 * machmode.def: Fixed comment.
89ab31c1 20106
e594716a 201072013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
20108
20109 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
20110 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
20111
74946978
MP
201122013-03-28 Marek Polacek <polacek@redhat.com>
20113 Richard Biener <rguenther@suse.de>
20114
20115 PR tree-optimization/56695
20116 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
20117 build signed result of a vector comparison.
20118 * tree-cfg.c (verify_gimple_comparison): Check that a result
20119 of a vector comparison has signed type.
20120
a64b9c26
RB
201212013-03-28 Richard Biener <rguenther@suse.de>
20122
20123 PR tree-optimization/37021
20124 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
20125 do not restrict gaps between groups.
20126 * tree-vect-stmts.c (vectorizable_load): Properly account for
20127 a gap between groups.
20128
a9dc2a2f
EB
201292013-03-28 Eric Botcazou <ebotcazou@adacore.com>
20130
20131 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
20132 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
20133 is not enabled.
20134
53cb97f9
GP
201352013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
20136
20137 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
20138 * doc/extend.texi (Named Address Spaces): Ditto.
20139 (Variable Attributes): Ditto.
20140
b802ae5c
KT
201412013-03-27 Kai Tietz <ktietz@redhat.com>
20142
eddae10a
KT
20143 * config.build: Add support for cygwin x64 target.
20144 * config.gcc: Likewise.
20145 * config.host: Likewise.
20146 * configure.ac: Likewise
20147 * configure: Regenerated.
b802ae5c 20148
371e77e3 201492013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
20150
20151 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
20152 * config/i386/t-cygwin-w64: New file.
20153 * config/i386/cygwin-w64.h: New file.
20154 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
20155 and add support for x64-cygwin target.
20156 (CPP_SPEC): Likewise.
20157 (CXX_WRAP_SPEC_LIST): Undefine before define.
20158 (LIBGCJ_SONAME): Use 15 as version.
20159
f49b33cb
RB
201602013-03-27 Richard Biener <rguenther@suse.de>
20161
20162 PR tree-optimization/56716
20163 * tree-ssa-structalias.c (perform_var_substitution): Adjust
20164 dumping for ref nodes.
20165
b37a6ce5
MJ
201662013-03-27 Martin Jambor <mjambor@suse.cz>
20167
20168 PR tree-optimization/55334
20169 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
20170 restricted pointers to arrays.
20171
9469b9b2
GDR
201722013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
20173
20174 * Makefile.in (.SUFFIXES): Add .cc.
20175 (.c.o): Apply same recipe for implicit rule .cc.o.
20176
7d24f650
RB
201772013-03-27 Richard Biener <rguenther@suse.de>
20178
20179 PR tree-optimization/37021
20180 * tree-vect-data-refs.c (vect_check_strided_load): Allow
20181 REALPART/IMAGPART_EXPRs around the supported refs.
20182 * tree-ssa-structalias.c (find_func_aliases): Assume that
20183 floating-point values are not used to transfer pointers.
20184
2f251a05
AI
201852013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
20186
f43245d1
UB
20187 * target.def (TARGET_HAS_IFUNC_P): New target hook.
20188 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
20189 * doc/tm.texi: Regenerate.
20190 * targhooks.h (default_has_ifunc_p): New.
20191 * targhooks.c (default_has_ifunc_p): Ditto.
20192 * config/linux-protos.h: New file.
20193 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
20194 hook for linux which disables support of indirect functions in android.
20195 * config/linux-android.c: New file.
20196 * config/t-linux-android.c: Ditto.
20197 * config.gcc: Added new object file linux-android.o.
20198 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 20199 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 20200 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
20201 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
20202 doesn't support indirect functions.
20203 * configure: Regenerate.
20204
78b4e425
BC
202052013-03-27 Bin Cheng <bin.cheng@arm.com>
20206
20207 PR target/56102
20208 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
20209 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
20210 mult-word mode.
20211
a5ba7b92
AK
202122013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20213
20214 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
20215
be624986
TG
202162013-03-27 Terry Guo <terry.guo@arm.com>
20217
20218 * config/arm/arm-cores.def: Added core cortex-r7.
20219 * config/arm/arm-tune.md: Regenerated.
20220 * config/arm/arm-tables.opt: Regenerated.
20221 * doc/invoke.texi: Added entry for core cortex-r7.
20222
0a514f47
WL
202232013-03-27 Walter Lee <walt@tilera.com>
20224
20225 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
20226 double-decrement of next_scratch_regno.
20227
9332b0d2
WL
202282013-03-27 Walter Lee <walt@tilera.com>
20229
801d9b2a 20230 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
20231 input operands.
20232 (insn_v1mulus): Ditto.
20233 (insn_v2muls): Ditto.
20234
f54ea5dd
WL
202352013-03-27 Walter Lee <walt@tilera.com>
20236
e594716a 20237 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
20238 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
20239
bf60f4ca
WL
202402013-03-27 Walter Lee <walt@tilera.com>
20241
e594716a 20242 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
20243 (*sibcall_value): Ditto.
20244
e3b51eeb
WL
202452013-03-27 Walter Lee <walt@tilera.com>
20246
20247 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
20248 (insn_mnz_v8qi): ... this ...
20249 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
20250 vector equivalent.
20251 (insn_v<n>mnz): Replaced by ...
20252 (insn_v1mnz): ... this ...
20253 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
20254 equivalent.
20255 (insn_mz_<mode>): Replaced by ...
20256 (insn_mz_v8qi): ... this ...
20257 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
20258 vector equivalent.
20259 (insn_v<n>mz): Replaced by ...
20260 (insn_v1mz): ... this ...
20261 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
20262 equivalent.
20263
4fc7b145
EB
202642013-03-26 Eric Botcazou <ebotcazou@adacore.com>
20265
20266 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
20267
6f33817e
RM
202682013-03-26 Roland McGrath <mcgrathr@google.com>
20269
20270 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
20271 than fprintf with a non-constant, non-format string.
20272
93a4145b
UB
202732013-03-26 Uros Bizjak <ubizjak@gmail.com>
20274
20275 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
20276 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
20277 operand 0 predicate.
20278 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
20279 attribute. Use general_x64nomem_operand as operand 1 predicate.
20280 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
20281 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20282 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
20283 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20284 (mov<mode>_insv_1): Remove expander. Merge insn with
20285 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
20286 Use general_x64nomem_operand as operand 1 predicate.
20287 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
20288 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
20289 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20290 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
20291 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
20292 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
20293 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20294 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
20295 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
20296 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
20297 (general_x64nomem_operand): Ditto.
20298
c6a9ed5a 202992013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
20300
20301 * config/rtems.opt: Add -pthread option.
20302
31b0a960
RB
203032013-03-26 Richard Biener <rguenther@suse.de>
20304
93a4145b
UB
20305 * alias.c (find_base_term): Avoid redundant and not used recursion.
20306 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
20307 (true_dependence_1): Compute and pass base terms to base_alias_check.
20308 (write_dependence_p): Likewise.
20309 (may_alias_p): Likewise.
20310
79517551
SN
203112013-03-26 Sofiane Naci <sofiane.naci@arm.com>
20312
20313 * config/aarch64/aarch64.c (aarch64_classify_address): Support
20314 PC-relative load in SI modes and above only.
20315
a76213b9
XQ
203162013-03-26 Xinyu Qi <xyqi@marvell.com>
20317
20318 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
20319 * config/arm/iwmmxt.md (WCGR0): Update.
20320 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 20321
37ff9355
UB
203222013-03-26 Uros Bizjak <ubizjak@gmail.com>
20323
20324 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
20325 Use x64 and nox64 isa attributes.
20326
30b0317c
RB
203272013-03-26 Richard Biener <rguenther@suse.de>
20328
20329 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
20330 alignment computations and rely on get_object_alignment_1
20331 for the !TYPE_P case.
20332 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
20333
cbcdb140
WL
203342013-03-26 Walter Lee <walt@tilera.com>
20335
20336 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
20337 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
20338
dd884525 203392013-03-25 Jeff Law <law@redhat.com>
be672e08 20340
33159866
UB
20341 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
20342 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
20343 wrong version of prior patch.
20344
0051d3ec
WL
203452013-03-25 Walter Lee <walt@tilera.com>
20346
20347 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
20348 TILEGX_INSN_SHUFFLEBYTES1.
20349 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
20350 shufflebytes1.
20351 (tilegx_builtins): Ditto.
20352 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
20353
065a3605
WL
203542013-03-25 Walter Lee <walt@tilera.com>
20355
20356 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
20357 (floatunssisf2): New pattern.
20358 (floatsidf2): New pattern.
20359 (floatunssidf2): New pattern.
065a3605 20360
5b2a3c82
WL
203612013-03-25 Walter Lee <walt@tilera.com>
20362
20363 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
20364 tests for constraint J, K, N, P.
20365
192ea533
WL
203662013-03-25 Walter Lee <walt@tilera.com>
20367
20368 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
20369 Use indirect/pcrel encoding.
20370 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
20371 Ditto.
20372
855e0d0b
SE
203732013-03-25 Steve Ellcey <sellcey@mips.com>
20374
20375 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
20376 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
20377 * config/mips/mips.c (mips_option_override): Set IMADD default.
20378 * config/mips/mips.h (PTF_AVOID_IMADD): New.
20379 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
20380 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
20381 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
20382 * doc/invoke.texi (-mimadd/-mno-imadd): New.
20383
39e45653
JL
203842013-03-25 Jeff Law <law@redhat.com>
20385
20386 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
20387 slightly to avoid creating and folding useless trees. Simplify
20388 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
20389
7482c470
UB
203902013-03-25 Uros Bizjak <ubizjak@gmail.com>
20391
20392 * config/i386/i386.md (*zero_extendsidi2): Merge with
20393 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
20394 * config/i386/predicates.md (x86_64_zext_operand): Rename from
20395 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
20396 targets. Clarify comment.
20397
4a53743e
MJ
203982013-03-25 Martin Jambor <mjambor@suse.cz>
20399
20400 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
20401 pass-through jump functions differently.
20402 (ipa_read_jump_function): Likewise. Also use setter functions to set
20403 up jump functions.
20404
162712de
MJ
204052013-03-25 Martin Jambor <mjambor@suse.cz>
20406
20407 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
20408 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
20409 process it.
20410 (ipa_get_indirect_edge_target): New function.
20411 (devirtualization_time_bonus): New parameter known_aggs, pass it to
20412 ipa_get_indirect_edge_target. Update all callers.
20413 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
20414 ipa_get_indirect_edge_target_1 instead of calling
20415 ipa_get_indirect_edge_target.
20416 (create_specialized_node): Pass aggvlas to
20417 ipcp_discover_new_direct_edges.
20418
a5a4c20a
KT
204192013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20420
20421 * config/arm/arm.md (f_sels, f_seld): New types.
20422 (*cmov<mode>): New pattern.
20423 * config/arm/predicates.md (arm_vsel_comparison_operator): New
20424 predicate.
20425
f992b9fc
KT
204262013-03-25 Kai Tietz <ktietz@redhat.com>
20427
20428 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
20429 POSIX-printf for mingw-hosted builds.
20430
c16fd676
RB
204312013-03-25 Richard Biener <rguenther@suse.de>
20432
20433 PR middle-end/56694
20434 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
20435 must-not-throw stmt location.
20436
5ad29f12
KT
204372013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20438
20439 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
20440 Emit load-acquire versions when acq is true.
20441 (arm_emit_store_exclusive): Add rel parameter.
20442 Emit store-release versions when rel is true.
20443 (arm_split_compare_and_swap): Use acquire-release instructions
20444 instead.
20445 of barriers when appropriate.
20446 (arm_split_atomic_op): Likewise.
20447 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
20448 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
20449 (VUNSPEC_SLX): Likewise.
20450 (VUNSPEC_LDA): Likewise.
20451 (VUNSPEC_STL): Likewise.
20452 * config/arm/sync.md (atomic_load<mode>): New pattern.
20453 (atomic_store<mode>): Likewise.
20454 (arm_load_acquire_exclusive<mode>): Likewise.
20455 (arm_load_acquire_exclusivesi): Likewise.
20456 (arm_load_acquire_exclusivedi): Likewise.
20457 (arm_store_release_exclusive<mode>): Likewise.
20458
03a7dddb
CM
204592013-03-25 Catherine Moore <clm@codesourcery.com>
20460
20461 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
20462 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
20463 * config/mip/predicates.md (lwsp_swsp_operand,
20464 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
20465 sb16_operand, db4_operand, db7_operand, ib3_operand,
20466 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
20467 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
20468 andi16_operand): New predicates.
20469 * config/mips/mips.md (compression): New attribute.
20470 (enabled): New attribute.
20471 (length): Consider compression in computing length.
20472 (shift_compression): New code attribute.
20473 (*add<mode>3): New operands. Record compression.
20474 (sub<mode>3): Likewise.
20475 (one_cmpl<mode>2): Likewise.
20476 (*and<mode>3): Likewise.
20477 (*ior<mode>3): Likewise.
20478 (unnamed pattern for xor): Likewise.
20479 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
20480 (*<optab><mode>3): Likewise.
20481 (*mov<mode>_internal: Likewise.
20482 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
20483 (mips_unsigned_immediate_p): New.
20484 (umips_lwsp_swsp_address_p): New.
20485 (m16_based_address_p): New.
20486 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
20487 (mips_unsigned_immediate_p): New prototype.
20488 (lwsp_swsp_address_p): New prototype.
20489 (m16_based_address_p): New prototype.
20490 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
20491 (mips_signed_immediate_p): New function.
20492 (m16_based_address_p): New function.
20493 (lwsp_swsp_address_p): New function.
20494 (mips_print_operand_punctuation): Recognize short delay slot insns
20495 for microMIPS.add<mode>3"
20496
f35c297f 204972013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 20498
f35c297f
KT
20499 PR target/56720
20500 * config/arm/iterators.md (v_cmp_result): New mode attribute.
20501 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
20502
051b9446
RB
205032013-03-25 Richard Biener <rguenther@suse.de>
20504
20505 PR tree-optimization/56689
20506 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
20507 any edge.
20508
374001cb
RB
205092013-03-25 Richard Biener <rguenther@suse.de>
20510
20511 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
20512 of bitmap.
20513 (memory_references): Likewise.
20514 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
20515 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
20516 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
20517 (gather_mem_refs_in_loops): Fold into ...
20518 (analyze_memory_references): ... this. Move initialization
20519 to tree_ssa_lim_initialize.
20520 (fill_always_executed_in): Rename to ...
20521 (fill_always_executed_in_1): ... this.
20522 (fill_always_executed_in): Move contains_call computation to
20523 this new function from ...
20524 (tree_ssa_lim_initialize): ... here.
20525 (tree_ssa_lim): Call fill_always_executed_in.
20526
57895947
EB
205272013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20528
20529 * postreload.c (reload_combine): Fix code detecting returns.
20530
1e1b18c1
EB
205312013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20532
20533 * function.c (emit_use_return_register_into_block): On cc0 targets,
20534 do not emit the sequence between cc0 setter and user.
20535
9216baf1
KT
205362013-03-25 Kai Tietz <ktietz@redhat.com>
20537
1e1b18c1
EB
20538 * config/i386/predicates.md (local_symbolic_operand): Interpret
20539 dll-imported symbols as none-local.
9216baf1 20540
76421b44
RB
205412013-03-25 Richard Biener <rguenther@suse.de>
20542
20543 * tree-ssa-loop-im.c (struct depend): Remove.
20544 (struct lim_aux_data): Make depends a vec of gimples.
20545 (free_lim_aux_data): Adjust.
20546 (add_dependency): Likewise.
20547 (set_level): Likewise.
20548
d154bfa2
RB
205492013-03-25 Richard Biener <rguenther@suse.de>
20550
20551 PR middle-end/56434
20552 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
20553 the pointer returned by calls with ECF_MALLOC set.
20554
2cd9804e
UB
205552013-03-24 Uros Bizjak <ubizjak@gmail.com>
20556
acef5fe0
UB
20557 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
20558
205592013-03-24 Uros Bizjak <ubizjak@gmail.com>
20560
20561 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
20562 using MMXMODE mode iterator.
20563 (*move<mode>_internal): Merge with *movv2sf_internal and
20564 *movv2sf_internal_rex64 using MMXMODE mode iterator.
20565
225ccc68
SB
205662013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20567
85c0f02d
SB
20568 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
20569 (record_last_mem_set_info): Likewise.
20570
225ccc68
SB
20571 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
20572 of XNEWVEC followed by memset.
20573 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
20574
b64925dc
SB
205752013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20576
20577 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
20578 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
20579 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
20580 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
20581 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
20582 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
20583 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
20584 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
20585 BARRIER_P instead of GET_CODE.
20586
b9aaf52e
EB
205872013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20588
20589 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
20590 inaccuracy in the probing code.
20591
20592 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
20593 (ctrapdi4): Likewise.
20594
66de4d7c
EB
205952013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20596
20597 * calls.c (expand_call): Add missing guard to code handling return
20598 of non-BLKmode structures in MSB.
20599 * function.c (expand_function_end): Likewise.
20600
4f25c8fb
EB
206012013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20602
20603 * combine.c (try_combine): Adjust comment. Do not add the set of
20604 insn #0 if the destination indirectly is set or dies in insn #2.
20605 Tidy up code to distribute a new note.
20606
23b7850d
UB
206072013-03-22 Uros Bizjak <ubizjak@gmail.com>
20608
20609 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
20610 also for alternatives 16 and 17.
20611
bed852cf
UB
206122013-03-22 Uros Bizjak <ubizjak@gmail.com>
20613
20614 * config/i386/sse.md (*mov<mode>_internal): Merge with
20615 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
20616 Emit insn template depending on type attribute. Use
20617 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
20618 movd instead of movq mnemonic for interunit moves. Rewrite mode
20619 attribute calculation. Remove unit attribute calculation.
20620 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
20621 Set prefix_data16 attribute for DImode ssemov types.
20622 Use Ym instead of y for SSE-MMX conversion alternatives.
20623 Reorder operand constraints.
20624
1e8a7937
SB
206252013-03-22 Steven Bosscher <steven@gcc.gnu.org>
20626
20627 * df.h (df_insn_delete): Adjust prototype.
20628 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
20629 and let it decide whether mark the basic block dirty.
20630 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
20631 * df-scan.c (df_insn_info_delete): New helper function, split
20632 off from df_insn_delete.
20633 (df_scan_free_bb_info): Use it.
20634 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
20635 Likewise.
20636 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
20637 that the insn is actually an insn and it has a non-NULL basic block.
20638 Do not mark basic block dirty if only deleting a DEBUG_INSN.
20639
e14d094c
RB
206402013-03-22 Richard Biener <rguenther@suse.de>
20641
20642 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
20643 dep_ref members.
20644 (mem_ref_alloc): Do not allocate them.
20645 (refs_independent_p): Do not query or maintain a cache.
20646
e9cf7316
RB
206472013-03-22 Richard Biener <rguenther@suse.de>
20648
20649 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
20650 (gather_mem_refs_in_loops): Do not compute it.
20651 (analyze_memory_references): Do not allocate it.
20652 (tree_ssa_lim_finalize): Do not free it.
20653 (for_all_locs_in_loop): Do not query all_refs_in_loop.
20654
f046e81b
RB
206552013-03-22 Richard Biener <rguenther@suse.de>
20656
20657 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 20658
a05c0ddf
IB
206592013-03-22 Ian Bolton <ian.bolton@arm.com>
20660
20661 * config/aarch64/aarch64.c (aarch64_print_operand): New
20662 format specifier for printing a constant in hex.
20663 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
20664 format specifier for printing second operand.
20665
c00217fc
RB
206662013-03-22 Richard Biener <rguenther@suse.de>
20667
20668 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
20669 bitmaps.
20670 (gather_mem_refs_in_loops): Perform store accumulation here.
20671 (create_vop_ref_mapping_loop): Remove.
20672 (create_vop_ref_mapping): Likewise.
20673 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 20674 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
20675 (record_indep_loop): Remove.
20676 (record_dep_loop): New function.
20677 (ref_indep_loop_p_1): Adjust to only walk over references
20678 in the loop, not its subloops.
20679 (ref_indep_loop_p): Rename to ...
20680 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
20681 maintaining a more fine-grained cache.
20682 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
20683 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
20684
15d19bf8
RB
206852013-03-22 Richard Biener <rguenther@suse.de>
20686
20687 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
20688 (struct mem_ref): Make accesses_in_loop a vec of a vec of
20689 aggregate mem_ref_loc.
20690 (free_mem_ref_locs): Inline into ...
20691 (memref_free): ... this and adjust.
20692 (mem_ref_alloc): Adjust.
20693 (mem_ref_locs_alloc): Remove.
20694 (record_mem_ref_loc): Adjust.
20695 (get_all_locs_in_loop): Rewrite into ...
20696 (for_all_locs_in_loop): ... this iterator.
20697 (rewrite_mem_ref_loc): New functor.
20698 (rewrite_mem_refs): Use for_all_locs_in_loop.
20699 (sm_set_flag_if_changed): New functor.
20700 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
20701 (ref_always_accessed): New functor.
20702 (ref_always_accessed_p): Use for_all_locs_in_loop.
20703
6f37411d
MG
207042013-03-21 Marc Glisse <marc.glisse@inria.fr>
20705
20706 * tree-pass.h (PROP_gimple_lvec): New.
20707 * passes.c (dump_properties): Handle PROP_gimple_lvec.
20708 (init_optimization_passes): Move pass_lower_vector.
20709 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
20710 PROP_gimple_lvec.
20711 (pass_lower_vector): Provide PROP_gimple_lvec.
20712 (pass_lower_vector_ssa): Likewise.
20713 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
20714
511ef689
MW
207152013-03-21 Mark Wielaard <mjw@redhat.com>
20716
20717 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
20718
cc1df30b
UB
207192013-03-21 Uros Bizjak <ubizjak@gmail.com>
20720
20721 * config/i386/i386.md (*movdi_internal): Disparage slightly
20722 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
20723 conversion alternatives.
20724
c845cfe1
JJ
207252013-03-21 Jakub Jelinek <jakub@redhat.com>
20726
37e99116
JJ
20727 PR middle-end/48087
20728 * diagnostic.def (DK_WERROR): New kind.
20729 * diagnostic.h (werrorcount): Define.
20730 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
20731 promoted to DK_ERROR, increment DK_WERROR counter instead of
20732 DK_ERROR counter.
20733 * toplev.c (toplev_main): Call print_ignored_options even if
20734 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
20735 even if just werrorcount is non-zero.
20736
c845cfe1
JJ
20737 PR debug/55608
20738 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
20739 on failure.
20740 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
20741 (string_cst_pool_decl): New function.
20742 (optimize_one_addr_into_implicit_ptr): New function.
20743 (resolve_addr_in_expr): Optimize DWARF location expression
20744 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
20745 which doesn't live in memory, but has DW_AT_location or
20746 DW_AT_const_value, or refers to a string literal, into
20747 DW_OP_GNU_implicit_pointer.
20748 (optimize_location_into_implicit_ptr): New function.
20749 (resolve_addr): If removing DW_AT_location of a variable because
20750 it was DW_OP_addr of address of the variable, but the variable doesn't
20751 live in memory, try to emit const value attribute for the initializer.
20752
08e0cda6
MG
207532013-03-21 Marc Glisse <marc.glisse@inria.fr>
20754
20755 * tree.h (VECTOR_TYPE_P): New macro.
20756 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
20757 TYPE_MODE): Use it.
20758 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
20759 VEC_COND_EXPR cannot be lvalues.
20760 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
20761
d08633b4
MG
207622013-03-21 Marc Glisse <marc.glisse@inria.fr>
20763
20764 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
20765 Restrict the transformation to equal modes.
20766
e6647190
RB
207672013-03-21 Richard Biener <rguenther@suse.de>
20768
20769 PR tree-optimization/39326
20770 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
20771 (MEM_ANALYZABLE): Adjust.
20772 (record_mem_ref_loc): Move bitmap ops ...
20773 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
20774 unanalyzable refs, do not record locations for it.
20775 (analyze_memory_references): Allocate ref zero as shared
20776 unanalyzable ref.
20777 (refs_independent_p): Do not test for unanalyzed mems here.
20778 (ref_indep_loop_p_1): Special-case disambiguation against
20779 the unanalyzed ref.
cc1df30b 20780 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 20781
65074f54
CL
207822013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
20783
20784 * config/arm/arm-protos.h (tune_params): Add
20785 prefer_neon_for_64bits field.
20786 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
20787 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
20788 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
20789 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
20790 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
20791 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
20792 (arm_option_override): Handle -mneon-for-64bits new option.
20793 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
20794 (prefer_neon_for_64bits): Declare new variable.
20795 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 20796 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
20797 (arch_enabled): Handle new arch types. Remove support for onlya8
20798 and nota8.
20799 (one_cmpldi2): Use new arch names.
bc5faa5b 20800 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
20801 * config/arm/arm.opt (mneon-for-64bits): Add option.
20802 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
20803 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
20804 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
20805 of onlya8.
20806 * doc/invoke.texi (-mneon-for-64bits): Document.
20807
5a2d2a79
RB
208082013-03-21 Richard Biener <rguenther@suse.de>
20809
20810 PR tree-optimization/39326
20811 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
20812 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 20813 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 20814
5abe1e05
RB
208152013-03-21 Richard Biener <rguenther@suse.de>
20816
20817 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
20818 (vect_insert_into_interleaving_chain): Likewise.
20819 (vect_drs_dependent_in_basic_block): Inline ...
20820 (vect_slp_analyze_data_ref_dependence): ... here. New function,
20821 split out from ...
20822 (vect_analyze_data_ref_dependence): ... here. Simplify.
20823 (vect_check_interleaving): Simplify.
20824 (vect_analyze_data_ref_dependences): Likewise. Split out ...
20825 (vect_slp_analyze_data_ref_dependences): ... this new function.
20826 (dr_group_sort_cmp): New function.
20827 (vect_analyze_data_ref_accesses): Compute data-reference groups
20828 here instead of in vect_analyze_data_ref_dependence. Use
20829 a more efficient algorithm.
20830 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
20831 vect_slp_analyze_data_ref_dependences. Call
20832 vect_analyze_data_ref_accesses earlier.
20833 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
20834 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
20835 (vect_slp_analyze_data_ref_dependences): New prototype.
20836
cad1735b
RB
208372013-03-21 Richard Biener <rguenther@suse.de>
20838
20839 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
20840 ref is stored in the loop.
20841 (find_refs_for_sm): Walk only over all stores.
20842 (store_motion_loop): Allocate from lim_bitmap_obstack.
20843 (store_motion): Likewise.
20844
141310ef
RB
208452013-03-21 Richard Biener <rguenther@suse.de>
20846
20847 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
20848 Update virtual SSA form.
20849
5022315a
RO
208502013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20851
20852 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
20853 * configure: Regenerate.
20854 * config.in: Regenerate.
20855 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
20856 if !HAVE_LD_EH_FRAME_CIEV3.
20857
50d4421c
RB
208582013-03-21 Richard Biener <rguenther@suse.de>
20859
20860 * tree-cfg.c (verify_expr_no_block): New function.
20861 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
20862 nor DECL_VALUE_EXPR have locations with associated blocks.
20863 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
20864 (clear_unused_block_pointer): Remove code dealing with
20865 blocks in DECL_DEBUG_EXPR locations.
20866
839b422f
RB
208672013-03-21 Richard Biener <rguenther@suse.de>
20868
20869 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
20870 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
20871 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
20872 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
20873 instead of DECL_DEBUG_EXPR_IS_FROM.
20874 * gimplify.c (gimplify_modify_expr): Likewise.
20875 * tree-cfg.c (verify_expr_location_1): Likewise.
20876 * tree-complex.c (create_one_component_var): Likewise.
20877 * tree-sra.c (create_access_replacement): Likewise.
20878 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
20879 (clear_unused_block_pointer): Likewise.
20880 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
20881 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
20882 * var-tracking.c (var_debug_decl): Likewise.
20883 (track_expr_p): Likewise.
20884 * tree-inline.c (add_local_variables): Likewise. Set
20885 DECL_HAS_DEBUG_EXPR_P after copying it.
20886 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
20887 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
20888
fe04878d
UB
208892013-03-21 Uros Bizjak <ubizjak@gmail.com>
20890
20891 PR bootstrap/56656
20892 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
20893 * configure: Regenerate.
20894 * config.in: Regenerate.
20895 * config/i386/i386.md (*movdf_internal): Use
20896 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
20897 movd instead of movq mnemonic for interunit moves.
20898 (*movdi_internal): Ditto.
20899
bd059b26 209002013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
20901
20902 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
20903 (abd<mode>_3): New pattern.
20904 (aba<mode>_3): New pattern.
20905 (fabd<mode>_3): New pattern.
20906
bd059b26 209072013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
20908
20909 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
20910 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
20911 occurrence of REGISTER_PREFIX as its empty string.
20912
4f1f78b9
JL
209132013-03-20 Jeff Law <law@redhat.com>
20914
20915 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
20916 addititional equivalences for equality comparisons between an SSA_NAME
20917 and a constant where the SSA_NAME was set from a widening conversion.
20918
327a1118
WL
209192013-03-20 Walter Lee <walt@tilera.com>
20920
20921 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
20922
813e0036
UB
209232013-03-20 Uros Bizjak <ubizjak@gmail.com>
20924
20925 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
20926 depending on type attribute.
20927 (*movti_internal): Ditto.
20928 (*movtf_internal): Ditto.
20929 (*movxf_internal): Ditto.
20930 (*movdf_internal): Ditto.
20931 (*movsf_internal): Ditto.
20932
7cf34aae
UB
209332013-03-20 Uros Bizjak <ubizjak@gmail.com>
20934
20935 * config/i386/i386.md (*movti_internal): Set prefix attribute to
20936 maybe_vex for sselog1 and ssemov types.
20937 (*movdi_internal): Reorder operand constraints.
20938 (*movsi_internal): Ditto. Set prefix attribute to
20939 maybe_vex for sselog1 and ssemov types.
20940 (*movtf_internal): Set prefix attribute to maybe_vex
20941 for sselog1 and ssemov types.
20942 (*movdf_internal): Ditto. Set prefix_data16 attribute for
20943 DImode ssemov types. Reorder operand constraints.
20944 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
20945 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
20946 attribute for SImode ssemov types. Reorder operand constraints.
20947
19321415
MJ
209482013-03-20 Martin Jambor <mjambor@suse.cz>
20949
20950 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
20951 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
20952
12211b99 209532013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
20954
20955 * config/rs6000/predicates.md (indexed_address, update_address_mem
20956 update_indexed_address_mem): New predicates.
20957 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
20958 attribute for load/store instructions.
20959 * config/rs6000/dfp.md (movsd_store): Likewise.
20960 (movsd_load): Likewise.
20961 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
20962 (unnamed HI->DI extend define_insn): Likewise.
20963 (unnamed SI->DI extend define_insn): Likewise.
20964 (unnamed QI->SI extend define_insn): Likewise.
20965 (unnamed QI->HI extend define_insn): Likewise.
20966 (unnamed HI->SI extend define_insn): Likewise.
20967 (unnamed HI->SI extend define_insn): Likewise.
20968 (extendsfdf2_fpr): Likewise.
20969 (movsi_internal1): Likewise.
20970 (movsi_internal1_single): Likewise.
20971 (movhi_internal): Likewise.
20972 (movqi_internal): Likewise.
20973 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
20974 attribute for load/store instructions.
20975 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
20976 instructions.
20977 (mov<mode>_softfloat): Likewise.
20978 (mov<mode>_hardfloat32): Likewise.
20979 (mov<mode>_hardfloat64): Likewise.
20980 (mov<mode>_softfloat64): Likewise.
20981 (movdi_internal32): Likewise.
20982 (movdi_internal64): Likewise.
20983 (probe_stack_<mode>): Likewise.
20984
209852013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
20986
20987 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
20988 floating point, and decimal floating point to reload iterator.
20989
20990 * config/rs6000/constraints.md (wl constraint): New constraints to
20991 return FLOAT_REGS if certain options are used to reduce the number
20992 of separate patterns that exist in the file.
20993 (wx constraint): Likewise.
20994 (wz constraint): Likewise.
20995
20996 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
20997 -mdebug=reg, print wg, wl, wx, and wz constraints.
20998 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
20999 Initialize the reload functions for 64-bit binary/decimal floating
21000 point types.
21001 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21002 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21003 create the buffer on the stack to overcome not having a 32-bit
21004 load and store.
21005 (rs6000_emit_move): Likewise.
21006 (rs6000_secondary_memory_needed_rtx): Likewise.
21007 (rs6000_alloc_sdmode_stack_slot): Likewise.
21008 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21009 via xxlxor, just like DFmode 0.0.
21010
21011 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
21012 define as 1 if we are running on a power7 or newer.
21013 (enum r6000_reg_class_enum): Add new constraints.
21014
21015 * config/rs6000/dfp.md (movsd): Delete, combine with binary
21016 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21017 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 21018 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
21019 (movsd splitter): Likewise.
21020 (movsd_hardfloat): Likewise.
21021 (movsd_softfloat): Likewise.
21022
21023 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
21024 binary and decimal floating point moves.
21025 (fmove_ok): New attributes to combine binary and decimal floating
21026 point moves, and to combine power6x (mfpgpr) moves along normal
21027 floating moves.
21028 (real_value_to_target): Likewise.
21029 (f32_lr): Likewise.
21030 (f32_lm): Likewise.
21031 (f32_li): Likewise.
21032 (f32_sr): Likewise.
21033 (f32_sm): Likewise.
21034 (f32_si): Likewise.
21035 (movsf): Combine binary and decimal floating point moves. Combine
21036 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 21037 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
21038 (mov<mode> for SFmode/SDmode); Likewise.
21039 (SFmode/SDmode splitters): Likewise.
21040 (movsf_hardfloat): Likewise.
21041 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
21042 (movsf_softfloat): Likewise.
21043 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
21044
21045 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
21046 wx and wz constraints.
21047
21048 * config/rs6000/constraints.md (wg constraint): New constraint to
21049 return FLOAT_REGS if -mmfpgpr (power6x) was used.
21050
21051 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
21052 constraint.
21053
21054 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
21055 -mdebug=reg, print wg, wl, wx, and wz constraints.
21056 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
21057 Initialize the reload functions for 64-bit binary/decimal floating
21058 point types.
21059 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21060 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21061 create the buffer on the stack to overcome not having a 32-bit
21062 load and store.
21063 (rs6000_emit_move): Likewise.
21064 (rs6000_secondary_memory_needed_rtx): Likewise.
21065 (rs6000_alloc_sdmode_stack_slot): Likewise.
21066 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21067 via xxlxor, just like DFmode 0.0.
21068
c6d5ff83
MM
21069 * config/rs6000/dfp.md (movdd): Delete, combine with binary
21070 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21071 with other moves by using conditional constraits (wg). Use LFIWZX
21072 and STFIWX for loading SDmode on power7.
21073 (movdd splitters): Likewise.
21074 (movdd_hardfloat32): Likewise.
21075 (movdd_softfloat32): Likewise.
21076 (movdd_hardfloat64_mfpgpr): Likewise.
21077 (movdd_hardfloat64): Likewise.
21078 (movdd_softfloat64): Likewise.
21079
21080 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
21081 64-bit binary and decimal floating point moves.
21082 (FMOVE64X): Likewise.
21083 (movdf): Combine 64-bit binary and decimal floating point moves.
21084 Combine power6x (mfpgpr) moves with other moves by using
21085 conditional constraits (wg).
21086 (mov<mode> for DFmode/DDmode): Likewise.
21087 (DFmode/DDmode splitters): Likewise.
21088 (movdf_hardfloat32): Likewise.
21089 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
21090 (movdf_softfloat32): Likewise.
21091 (movdf_hardfloat64_mfpgpr): Likewise.
21092 (movdf_hardfloat64): Likewise.
21093 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
21094 (movdf_softfloat64): Likewise.
21095 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
21096 (reload_<mode>_load): Move to later in the file so they aren't in
21097 the middle of the floating point move insns.
21098 (reload_<mode>_store): Likewise.
21099
21100 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
21101 constraint.
21102
21103 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
21104 constraint if -mdebug=reg.
bd059b26
UB
21105 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
21106 Enable using dd reload support if needed.
c6d5ff83
MM
21107
21108 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
21109 binary and decimal floating point moves in rs6000.md.
21110 (movtd_internal): Likewise.
21111
21112 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
21113 decimal floating point moves.
21114 (movtf): Likewise.
21115 (movtf_internal): Likewise.
21116 (mov<mode>_internal, TDmode/TFmode): Likewise.
21117 (movtf_softfloat): Likewise.
21118 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
21119
21120 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
21121 movdi_internal64, using wg constraint for move direct operations.
21122 (movdi_internal64): Likewise.
21123
21124 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
21125 MODES_TIEABLE_P for selected modes. Print the numerical value of
21126 the various virtual registers. Use GPR/FPR first/last values,
21127 instead of hard coding the register numbers. Print which modes
21128 have reload functions registered.
bd059b26
UB
21129 (rs6000_option_override_internal): If -mdebug=reg, trace the options
21130 settings before/after setting cpu, target and subtarget settings.
21131 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
21132 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
21133 (rs6000_secondary_reload_fail): Likewise.
21134 (rs6000_secondary_reload_inner): Likewise.
21135
21136 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
21137 macros for first/last GPR and FPR registers.
21138 (LAST_GPR_REGNO): Likewise.
21139 (FIRST_FPR_REGNO): Likewise.
21140 (LAST_FPR_REGNO): Likewise.
21141
21142 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
21143 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
21144 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
21145 (vcond<mode><mode>): Likewise.
21146 (vcondu<mode><mode>): Likewise.
21147 (vector_gtu<mode>): Likewise.
21148 (vector_gte<mode>): Likewise.
21149 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 21150 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
21151 (ior<mode>3): Likewise.
21152 (and<mode>3): Likewise.
21153 (one_cmpl<mode>2): Likewise.
21154 (nor<mode>3): Likewise.
21155 (andc<mode>3): Likewise.
21156
21157 * config/rs6000/constraints.md (wt constraint): New constraint
21158 that returns VSX_REGS if TImode is allowed in VSX registers.
21159
21160 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
21161 constant under VSX.
21162
21163 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
21164 similar to TImode, but it is restricted to being in the GPRs.
21165
21166 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
21167 TImode to occupy a single VSX register.
21168
21169 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
21170 -mvsx-timode for power7/power8.
21171 (power7 cpu): Likewise.
21172 (power8 cpu): Likewise.
21173
21174 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
21175 sure that TFmode/TDmode take up two registers if they are ever
21176 allowed in the upper VSX registers.
21177 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
21178 registers.
21179 (rs6000_init_hard_regno_mode_ok): Likewise.
21180 (rs6000_debug_reg_global): Add debugging for PTImode and wt
21181 constraint. Print if LRA is turned on.
21182 (rs6000_option_override_internal): Give an error if -mvsx-timode
21183 and VSX is not enabled.
21184 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
21185 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
21186 to reg+offset addressing. Use PTImode when checking offset
21187 addresses for validity.
21188 (reg_offset_addressing_ok_p): Likewise.
21189 (rs6000_legitimate_offset_address_p): Likewise.
21190 (rs6000_legitimize_address): Likewise.
21191 (rs6000_legitimize_reload_address): Likewise.
21192 (rs6000_legitimate_address_p): Likewise.
21193 (rs6000_eliminate_indexed_memrefs): Likewise.
21194 (rs6000_emit_move): Likewise.
21195 (rs6000_secondary_reload): Likewise.
21196 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
21197 reloads to fpr registers to continue to use reg+offset addressing,
21198 but 64-bit reloads to altivec registers need reg+reg addressing.
21199 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
21200 it. Treat LO_SUM like a PLUS operation.
21201 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 21202 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
21203 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
21204 registers to share a register with a smaller sized type, since VSX
21205 puts scalars in the upper 64-bits.
21206 (print_operand): Add support for PTImode.
21207 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
21208 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
21209 registers, but don't have arithmetic support.
21210 (rs6000_memory_move_cost): Add test for VSX.
21211 (rs6000_opt_masks): Add -mvsx-timode.
21212
21213 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
21214 for TImode.
21215 (VSs): Likewise.
21216 (VSr): Use wt constraint for TImode.
21217 (VSv): Drop TImode support.
21218 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
21219 (vsx_movti_64bit): Likewise.
21220 (vsx_movti_32bit): Likewise.
21221 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
21222 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
21223 one '?' on the appropriate output constraint. Do not allow TImode
21224 logical operations on 32-bit systems.
21225 (vsx_ior<mode>3): Likewise.
21226 (vsx_xor<mode>3): Likewise.
21227 (vsx_one_cmpl<mode>2): Likewise.
21228 (vsx_nor<mode>3): Likewise.
21229 (vsx_andc<mode>3): Likewise.
21230 (vsx_concat_<mode>): Likewise.
21231 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
21232
21233 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
21234 OPTION_MASK_VSX_TIMODE.
21235 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
21236 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
21237
21238 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
21239 (TI2 iterator): New iterator for TImode, PTImode.
21240 (wd mode attribute): Add values for vector types.
bd059b26
UB
21241 (movti_string): Replace TI move operations with operations for TImode
21242 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
21243 (mov<mode>_string, TImode/PTImode): Likewise.
21244 (movti_ppc64): Likewise.
21245 (mov<mode>_ppc64, TImode/PTImode): Likewise.
21246 (TI mode splitters): Likewise.
21247
21248 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
21249 constraint.
21250
1fc5eced
MG
212512013-03-20 Marc Glisse <marc.glisse@inria.fr>
21252
21253 PR tree-optimization/56355
21254 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
21255 Also handle integers with undefined overflow.
21256
22c4c869
CM
212572013-03-20 Catherine Moore <clm@codesourcery.com>
21258 Maciej W. Rozycki <macro@codesourcery.com>
21259 Tom de Vries <tom@codesourcery.com>
12211b99 21260 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
21261 Iain Sandoe <iain@codesourcery.com>
21262 Nathan Froyd <froydnj@codesourcery.com>
12211b99 21263 Chao-ying Fu <fu@mips.com>
22c4c869
CM
21264
21265 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 21266 Document new function attributes.
22c4c869
CM
21267 * doc/invoke.texi (minterlink-compressed, mmicromips,
21268 m14k, m14ke, m14kec): Document new options.
21269 (minterlink-mips16): Update documentation.
21270 * doc/md.texi (ZC, ZD): Document new constraints.
21271 * configure.ac (gcc_cv_as_micromips): Check if linker
21272 supports the .set micromips directive.
21273 * configure: Regenerate.
21274 * config.in: Regenerate.
21275 * config/mips/mips-tables.opt: Regenerate.
21276 * config/mips/micromips.md: New file.
21277 * constraints.md (ZC, ZD): New constraints.
21278 * config/mips/predicates.md (movep_src_register): New predicate.
21279 (movep_src_operand): New predicate.
21280 (non_volatile_mem_operand): New predicate.
21281 * config/mips/mips.md (multimem): New type.
21282 (length): Differentiate between 17-bit and 18-bit branch offsets.
21283 (MOVEP1, MOVEP2): New mode iterator.
33159866 21284 (mov_<load>l): Use ZC constraint.
22c4c869
CM
21285 (mov_<load>r): Likewise.
21286 (mov_<store>l): Likewise.
21287 (mov_<store>r): Likewise.
21288 (*branch_equality<mode>_inverted): Add microMIPS support.
21289 (*branch_equality<mode>): Likewise.
21290 (*jump_absolute): Likewise.
21291 (indirect_jump_<mode>): Likewise.
21292 (tablejump_<mode>): Likewise.
21293 (<optab>_internal): Likewise.
21294 (sibcall_internal): Likewise.
21295 (sibcall_value_internal): Likewise.
21296 (prefetch): Use constraint ZD.
21297 * config/mips/mips.opt (minterlink-compressed): New option.
21298 (minterlink-mips16): Now an alias for minterlink-compressed.
21299 (mmicromips): New option.
21300 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21301 (compare_and_swap_12): Likewise.
21302 (sync_add<mode>): Likewise.
21303 (sync_<optab>_12): Likewise.
21304 (sync_old_<optab>_12): Likewise.
21305 (sync_new_<optab>_12): Likewise.
21306 (sync_nand_12): Likewise.
21307 (sync_old_nand_12): Likewise.
21308 (sync_new_nand_12): Likewise.
21309 (sync_sub<mode>): Likewise.
21310 (sync_old_add<mode>): Likewise.
21311 (sync_old_sub<mode>): Likewise.
21312 (sync_new_add<mode>): Likewise.
21313 (sync_new_sub<mode>): Likewise.
21314 (sync_<optab><mode>): Likewise.
21315 (sync_old_<optab><mode>): Likewise.
21316 (sync_new_<optab><mode>): Likewise.
21317 (sync_nand<mode>): Likewise.
21318 (sync_old_nand<mode>): Likewise.
21319 (sync_new_nand<mode>): Likewise.
21320 (sync_lock_test_and_set<mode>): Likewise.
21321 (test_and_set_12): Likewise.
21322 (atomic_compare_and_swap<mode>): Likewise.
21323 (atomic_exchange<mode>_llsc): Likewise.
21324 (atomic_fetch_add<mode>_llsc): Likewise.
21325 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21326 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21327 (umips_save_restore_pattern_p): Likewise.
21328 (umips_load_store_pair_p): Likewise.
21329 (umips_output_load_store_pair): Likewise.
21330 (umips_movep_target_p): Likewise.
21331 (umips_12bit_offset_address_p): Likewise.
21332 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21333 (mips_base_mips16): Rename this...
21334 (mips_base_compression_flags): ...to this. Update all uses.
21335 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21336 (mips_mips16_decl_p): Delete.
21337 (mips_nomips16_decl_p): Delete.
33159866 21338 (mips_get_compress_on_flags): New function.
22c4c869
CM
21339 (mips_get_compress_off_flags): New function.
21340 (mips_get_compress_mode): New function.
21341 (mips_get_compress_on_name): New function.
21342 (mips_get_compress_off_name): New function.
21343 (mips_insert_attributes): Support multiple compression types.
21344 (mips_merge_decl_attributes): Likewise.
21345 (umips_12bit_offset_address_p): New function.
21346 (mips_start_function_definition): Emit .set micromips directive.
21347 (mips_call_may_need_jalx_p): New function.
21348 (mips_function_ok_for_sibcall): Add microMIPS support.
21349 (mips_print_operand_punctuation): Support short delay slots and
21350 compact jumps.
21351 (umips_swm_mask, umips_swm_encoding): New.
21352 (umips_build_save_restore): New function.
21353 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21354 (was_mips16_p): Remove.
21355 (old_compression_mode): New.
21356 (mips_set_compression_mode): New function.
21357 (mips_set_current_function): Add microMIPS support.
21358 (mips_option_override): Likewise.
21359 (umips_save_restore_pattern_p): New function.
21360 (umips_output_save_restore): New function.
21361 (umips_load_store_pair_p_1): New function.
21362 (umips_load_store_pair_p): New function.
21363 (umips_output_load_store_pair_1): New function.
21364 (umips_output_load_store_pair): New function.
21365 (umips_movep_target_p) New function.
21366 (mips_prepare_pch_save): Add microMIPS support.
21367 * config/mips/mips.h (TARGET_COMPRESSION): New.
21368 (TARGET_CPU_CPP_BUILTINS): Update macro
21369 to use new compression flags and to support microMIPS.
21370 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21371 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21372 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21373 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21374 (ASM_SPEC): Support mmicromips and mno-micromips.
21375 (M16STORE_REG_P): New macro.
21376 (MIPS_CALL): Support TARGET_MICROMIPS.
21377 (MICROMIPS_J): New macro.
21378 (mips_base_mips16): Rename this...
21379 (mips_base_compression_flags): ...to this.
21380 (UMIPS_12BIT_OFFSET_P): New macro.
21381 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21382 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
213832013-03-20 Richard Biener <rguenther@suse.de>
21384
21385 PR tree-optimization/56661
21386 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
21387 the result does not have to be distinct.
21388
54714c68
RB
213892013-03-20 Richard Biener <rguenther@suse.de>
21390
21391 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
21392 remap_gimple_op_r.
21393
cca1130d 213942013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 21395 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
21396
21397 PR rtl-optimization/56605
21398 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
21399
2a930377
UB
214002013-03-20 Uros Bizjak <ubizjak@gmail.com>
21401
21402 PR bootstrap/56656
21403 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
21404 that require movd instead of movq.
21405
d6d305fe
RB
214062013-03-20 Richard Biener <rguenther@suse.de>
21407
21408 * tree-ssa-structalias.c (struct variable_info): Add pointer
21409 to the first field of an aggregate with sub-vars. Make
21410 this and the pointer to the next subfield its ID.
21411 (vi_next): New function.
21412 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
21413 storedanything_id, integer_id): Increment by one.
21414 (new_var_info, get_call_vi, lookup_call_clobber_vi,
21415 get_call_clobber_vi): Adjust.
21416 (solution_set_expand): Simplify and speedup.
21417 (solution_set_add): Inline into ...
21418 (set_union_with_increment): ... this. Adjust accordingly.
21419 (do_sd_constraint): Likewise.
21420 (do_ds_constraint): Likewise.
21421 (do_complex_constraint): Simplify.
21422 (build_pred_graph): Adjust.
21423 (solve_graph): Likewise. Simplify and speedup.
21424 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
21425 get_constraint_for_component_ref, get_constraint_for_1,
21426 first_vi_for_offset, first_or_preceding_vi_for_offset,
21427 create_function_info_for, create_variable_info_for_1,
21428 create_variable_info_for, intra_create_variable_infos): Adjust.
21429 (init_base_vars): Push NULL for ID zero.
21430 (compute_points_to_sets): Adjust.
21431
a271b42d
RB
214322013-03-20 Richard Biener <rguenther@suse.de>
21433
21434 * cfgloop.c (verify_loop_structure): Streamline and avoid
21435 ICEing on corrupt loop tree.
21436 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
21437 loop tree.
21438
ebd65954
RB
214392013-03-20 Richard Biener <rguenther@suse.de>
21440
21441 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
21442 check whether an SSA update is needed.
21443
4547b7ee
RS
214442013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
21445
21446 * config/mips/constraints.md (T): Rename to...
21447 (Yf): ...this.
21448 (U): Rename to...
21449 (Yd): ...this.
21450 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
21451 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
21452
0b8cdc58
IB
214532013-03-19 Ian Bolton <ian.bolton@arm.com>
21454
21455 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
21456 (*subsi3_carryin_uxtw): Likewise.
21457
5977a10d
IB
214582013-03-19 Ian Bolton <ian.bolton@arm.com>
21459
21460 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
21461 (*rorsi3_insn_uxtw): Likewise.
21462
bd83ff2c
IB
214632013-03-19 Ian Bolton <ian.bolton@arm.com>
21464
21465 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
21466 (*extrsi5_insn_uxtw): Likewise.
21467
ba65123c
RB
214682013-03-19 Richard Biener <rguenther@suse.de>
21469
21470 PR tree-optimization/56273
21471 * passes.c (init_optimization_passes): Move second VRP after DOM.
21472
2eac0476
UB
214732013-03-19 Uros Bizjak <ubizjak@gmail.com>
21474
21475 * config/i386/i386.md (*movti_internal): Merge from
21476 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
21477 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
21478 nox64 isa attributes.
21479
6e55eda7
RB
214802013-03-18 Richard Biener <rguenther@suse.de>
21481
21482 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
21483 (unite): Likewise.
21484 (merge_node_constraints): Likewise.
21485 (build_succ_graph): Likewise.
21486 (valid_graph_edge): Inline into single caller.
21487 (unify_nodes): Likewise. Use bitmap_set_bit return value
21488 and cache varinfo.
21489 (scc_visit): Fix formatting and variable use.
21490 (do_sd_constraint): Use gcc_checking_assert.
21491 (do_ds_constraint): Likewise.
21492 (do_complex_constraint): Likewise.
21493 (condense_visit): Likewise. Cleanup.
21494 (dump_pred_graph): New function.
21495 (perform_var_substitution): Dump the pred-graph before
21496 variable substitution.
21497 (find_equivalent_node): Use gcc_checking_assert.
21498 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
21499
4bdd44c4
RB
215002013-03-18 Richard Biener <rguenther@suse.de>
21501
21502 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
21503 Remove cond_expr_stmt_list argument and do not gimplify the
21504 built expression.
21505 (vect_loop_versioning): Adjust.
21506 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21507 Cleanup to use less temporaries.
21508 (vect_create_data_ref_ptr): Cleanup.
21509
38c56a5b
JJ
215102013-03-18 Jakub Jelinek <jakub@redhat.com>
21511
21512 PR tree-optimization/56635
21513 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
21514 require types_compatible_p types.
21515
20b2e6a0
NC
215162013-03-18 Nick Clifton <nickc@redhat.com>
21517
a6178a25
NC
21518 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
21519 spurious backslash.
21520
20b2e6a0
NC
21521 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
21522 Add missing line to comment describing function.
21523
92608d0e
RB
215242013-03-18 Richard Biener <rguenther@suse.de>
21525
21526 PR tree-optimization/56210
21527 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21528 Handle string / character search functions.
21529 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21530
31348d52
RB
215312013-03-18 Richard Biener <rguenther@suse.de>
21532
21533 PR middle-end/56483
21534 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
21535 and implement properly.
21536 * gimple.h (gimple_cond_single_var_p): Remove.
21537
fcac74a1
RB
215382013-03-18 Richard Biener <rguenther@suse.de>
21539
21540 * tree-data-ref.h (find_data_references_in_loop): Declare.
21541 * tree-data-ref.c (get_references_in_stmt): Use a stack
21542 vector pre-allocated in the callers.
21543 (find_data_references_in_stmt): Adjust.
21544 (graphite_find_data_references_in_stmt): Likewise.
21545 (create_rdg_vertices): Likewise.
21546 (find_data_references_in_loop): Export.
21547 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
21548 Compute dependences here...
21549 (vect_analyze_data_refs): ...not here. When we encounter
21550 a non-vectorizable data reference in basic-block vectorization
21551 truncate the data reference vector. Do not bother to
21552 fixup data-dependence information for gather loads.
21553 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
21554 of data references, as reported.
21555
0d5a1b56
RB
215562013-03-18 Richard Biener <rguenther@suse.de>
21557
21558 PR tree-optimization/3713
21559 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
21560 has_constants and expr.
21561 (stmt_has_constants): Properly valueize SSA names when deciding
21562 whether the stmt has constants.
21563
789c34e3
RB
215642013-03-18 Richard Biener <rguenther@suse.de>
21565
21566 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
21567 whole function when there is nothing to do.
21568 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
21569 * tree-vectorizer.c (vectorize_loops): Update virtual and
21570 loop-closed SSA once.
21571 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
21572
076b4605
RB
215732013-03-18 Richard Biener <rguenther@suse.de>
21574
21575 PR middle-end/56113
21576 * domwalk.c (bb_postorder): New global static.
21577 (cmp_bb_postorder): New function.
21578 (walk_dominator_tree): Replace scheme imposing an order for
21579 visiting dominator sons by one sorting them at the time they
21580 are pushed on the stack.
21581
bdb01696
RB
215822013-03-18 Richard Biener <rguenther@suse.de>
21583
21584 PR tree-optimization/39326
21585 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
21586 (struct mem_ref): Replace mem member with ao_ref typed member.
21587 (MEM_ANALYZABLE): Adjust.
21588 (memref_eq): Likewise.
21589 (mem_ref_alloc): Likewise.
21590 (gather_mem_refs_stmt): Likewise.
21591 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
21592 (execute_sm_if_changed_flag_set): Adjust.
21593 (execute_sm): Likewise.
21594 (ref_always_accessed_p): Likewise.
21595 (refs_independent_p): Likewise.
21596 (can_sm_ref_p): Likewise.
21597
12d2dc5e
JJ
215982013-03-18 Jakub Jelinek <jakub@redhat.com>
21599
21600 PR c/56566
21601 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
21602 return 1 even for !unsignedp.
21603
286fb677
UB
216042013-03-17 Uros Bizjak <ubizjak@gmail.com>
21605
21606 * config/i386/i386.md (isa): Add x64 and nox64.
21607 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
21608 (*pushtf): Enable *roF alternative for x64 isa only.
21609 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
21610 mode attribute of integer alternatives to DImode for TARGET_64BIT.
21611 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
21612 (*movtf_internal): Merge from *movtf_internal_rex64 and
21613 *movtf_internal_sse. Use x64 and nox64 isa attributes.
21614 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
21615 nox64 isa attributes.
21616 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
21617 nox64 isa attributes.
21618 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
21619
88b97037
UB
216202013-03-17 Uros Bizjak <ubizjak@gmail.com>
21621
21622 * config/alpha/alpha.c (TARGET_LRA_P): New define.
21623
9f4f1735
JJ
216242013-03-17 Jakub Jelinek <jakub@redhat.com>
21625
21626 PR target/56640
21627 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
21628 class names. Remove trailing comma after "ALL_REGS".
21629
48f4a6fa
JH
216302013-03-16 Jan Hubicka <jh@suse.cz>
21631
21632 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
21633 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
21634 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
21635 of cgraph_get_create_node.
21636 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21637
98e81123
JM
216382013-03-16 Jason Merrill <jason@redhat.com>
21639
21640 PR debug/49090
21641 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
21642 with DW_AT_default_value.
21643
8a298c04
JJ
216442013-03-16 Jakub Jelinek <jakub@redhat.com>
21645
21646 * BASE-VER: Set to 4.9.0.
21647
4323afa0
AK
216482013-03-14 Andi Kleen <ak@linux.intel.com>
21649
21650 PR target/56619
21651 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
21652 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
21653 Document _x* TSX intrinsics.
21654
b3c0d469
JJ
216552013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
21656 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
21657
21658 * configure.ac: Add MicroBlaze TLS support detection.
21659 * configure: Regenerate.
88b97037
UB
21660 * config/microblaze/microblaze-protos.h
21661 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
21662 symbol_mentioned_p, label_mentioned_p): Add prototypes.
21663 * config/microblaze/microblaze.c (microblaze_address_type): Add
21664 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
21665 (microblaze_address_info): Add tls_reloc.
21666 (TARGET_HAVE_TLS): Define.
21667 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
21668 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
21669 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
21670 load_tls_operand, microblaze_call_tls_get_addr,
21671 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
21672 (microblaze_classify_unspec): Handle UNSPEC_TLS.
21673 (get_base_reg): Use microblaze_tls_symbol_p.
21674 (microblaze_classify_address): Handle TLS.
88b97037
UB
21675 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
21676 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
21677 (microblaze_legitimize_address): Handle TLS.
21678 (microblaze_address_insns): Handle ADDRESS_TLS.
21679 (pic_address_needs_scratch): Handle TLS.
21680 (print_operand_address): Handle TLS.
21681 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
21682 (microblaze_expand_move): Handle TLS.
88b97037
UB
21683 (microblaze_legitimate_constant_p): Check
21684 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
21685 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
21686 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
21687 (PIC_OFFSET_TABLE_REGNUM): Set.
21688 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
21689 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
21690 (addsi3, movsi_internal2, movdf_internal): Update constraints
21691 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
21692 (move_operand): Redefine as move_src_operand,
21693 check microblaze_tls_referenced_p.
8cc9a5a5 21694
d803a491
IB
216952013-03-14 Ian Bolton <ian.bolton@arm.com>
21696
21697 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
21698 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
21699
a8504f22
IB
217002013-03-14 Ian Bolton <ian.bolton@arm.com>
21701
21702 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
21703 CC mode for AND.
21704
df2dfaea
JJ
217052013-03-14 Jakub Jelinek <jakub@redhat.com>
21706
fbd28bc3
JJ
21707 PR tree-optimization/53265
21708 * common.opt (Waggressive-loop-optimizations): New option.
21709 * tree-ssa-loop-niter.c: Include tree-pass.h.
21710 (do_warn_aggressive_loop_optimizations): New function.
21711 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
21712 if number_of_latch_executions returned constant.
21713 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
21714 early. If number_of_latch_executions returned constant, set
21715 nb_iterations_upper_bound back to it.
21716 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
21717 field.
21718 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
21719 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
21720
df2dfaea
JJ
21721 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
21722 (MULTILIB_OSDIRNAMES): Set.
21723 * genmultilib: If defaultosdirname doesn't start with :: , set
21724 defaultosdirname2 instead, clear it and emit two . multilib_raw
21725 entries instead of just one.
21726
ee0d2b68
KK
217272013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
21728
21729 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
21730 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
21731 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
21732 (SUBTARGET_OVERRIDE_OPTIONS): New.
21733
decc676e
OE
217342013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
21735
21736 PR target/49880
21737 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
21738 (musermode): Convert to Var(TARGET_USERMODE).
21739 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
21740 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
21741 * config/sh/sh.c (sh_option_override): Use
21742 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
21743 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
21744 condition.
21745 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
21746 TARGET_SH4.
21747 (udivsi3_i4_single, divsi3_i4_single): Use
21748 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
21749
f4b719c7
DK
217502013-03-13 Dave Korn <dave.korn.cygwin@....>
21751
21752 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
21753 default setting.
21754
c40eced0
RB
217552013-03-13 Richard Biener <rguenther@suse.de>
21756
21757 PR tree-optimization/56608
21758 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
21759 calls when vectorizing basic-blocks.
21760
1bfa5973
JJ
217612013-03-13 Jakub Jelinek <jakub@redhat.com>
21762
21763 PR plugins/45078
21764 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
21765 tm_file.
21766
6fcf5434
JJ
217672013-03-12 Jakub Jelinek <jakub@redhat.com>
21768
21769 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
21770
4f38fa8c
JH
217712013-03-11 Jan Hubicka <jh@suse.cz>
21772
21773 PR lto/56557
21774 * lto-streamer-out.c (output_symbol_p): Skip references from
21775 constructors of external variables.
21776
c5c5ba89
JH
217772013-03-11 Jan Hubicka <jh@suse.cz>
21778
21779 PR middle-end/56571
21780 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
21781 from pseudos.
21782 * emit-rtl.c (verify_rtx_sharing): Likewise.
21783 (copy_insn_1): Likewise.
21784 * rtl.c (copy_rtx): Likewise.
21785
c2a939b1
GJL
217862013-03-11 Georg-Johann Lay <avr@gjlay.de>
21787
21788 PR target/56591
21789 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
21790 output_operand_lossage message.
88b97037 21791
3c3279fb
RE
217922013-03-11 Richard Earnshaw <rearnsha@arm.com>
21793
21794 PR target/56470
21795 * arm.c (shift_op): Validate RTL pattern on the fly.
21796 (arm_print_operand, case 'S'): Don't use shift_operator to validate
21797 the RTL.
21798
aef5ef9d
JDA
217992013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21800
21801 PR target/56347
21802 * config/pa/pa.md (call_value): Check for calls to powf and direct to
21803 new call patterns that clobber %fr12.
21804 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
21805 split and postreload patterns.
21806 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
21807 registers %fr12 and %fr12R as call used.
21808
456610d3
SB
218092013-03-09 Steven Bosscher <steven@gcc.gnu.org>
21810
21811 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
21812 (canon_address, record_store, replace_read, check_mem_read_rtx,
21813 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
21814 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
21815 rest_of_handle_dse): Likewise.
21816
4b1baac8
RS
218172013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
21818
21819 PR middle-end/56524
21820 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
21821 Add base_optabs.
21822 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
21823 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
21824 (save_optabs_if_changed): Replace with...
21825 (init_tree_optimization_optabs): ...this.
21826 * optabs.c (save_optabs_if_changed): Rename to...
21827 (init_tree_optimization_optabs): ...this. Take the optimization node
21828 as argument. Do nothing if the base optabs are already correct.
21829 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
21830 to recompute optabs.
21831 * function.h (function): Remove optabs field.
21832 * function.c (invoke_set_current_function_hook): Call
21833 init_tree_optimization_optabs. Use the result to initialize
21834 this_fn_optabs.
21835
b7a78683
AH
218362013-02-27 Aldy Hernandez <aldyh@redhat.com>
21837
21838 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
21839 if GTMA_HAS_NO_INSTRUMENTATION.
21840 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
21841 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
21842 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
21843 * gimple-pretty-print.c (dump_gimple_transaction): Handle
21844 GTMA_HAS_NO_INSTRUMENTATION.
21845
6384c29b
JJ
218462013-03-08 Jakub Jelinek <jakub@redhat.com>
21847
21848 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
21849 libasan_preinit.o.
21850
ecd4f20a
MP
218512013-03-08 Marek Polacek <polacek@redhat.com>
21852 Jakub Jelinek <jakub@redhat.com>
21853
21854 PR tree-optimization/56478
21855 * predict.c (is_comparison_with_loop_invariant_p): Change the
21856 type of loop_step to tree.
21857 (predict_loops): Adjust.
21858 (predict_iv_comparison): Perform the computations on double_ints.
21859
64366d35
RB
218602013-03-08 Richard Biener <rguenther@suse.de>
21861
21862 PR tree-optimization/56570
21863 * tree-cfg.c (verify_expr_location_1): Verify locations for
21864 DECL_DEBUG_EXPR.
21865 * tree-sra.c (create_access_replacement): Strip locations
21866 from DECL_DEBUG_EXPRs.
21867
a9d5a059
RB
218682013-03-08 Richard Biener <rguenther@suse.de>
21869
21870 * tree-inline.c (expand_call_inline): Do not associate
21871 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
21872 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
21873
b7aa4e9a
RB
218742013-03-08 Richard Biener <rguenther@suse.de>
21875
21876 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
21877 or block changes with -Og. Fix for location / block encoding
21878 changes and PHI arguments with locations.
21879
c4c2f9fa
SB
218802013-03-07 Steven Bosscher <steven@gcc.gnu.org>
21881
21882 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
21883 for all counters.
21884 (struct output_info): Likewise.
21885 (register_overhead): Remove bad gcc_assert.
21886 (bitmap_find_bit): If there is only a single bitmap element, do not
21887 count a miss as a search.
21888 (print_statistics): Update for counter type changes.
21889 (dump_bitmap_statistics): Likewise. Print headers such that they
21890 are properly lined up with the printed counters.
21891
5bf6606a
JJ
218922013-03-07 Jakub Jelinek <jakub@redhat.com>
21893
21894 PR tree-optimization/56559
21895 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
21896 check that it has only a single use.
21897
2c653d46
RB
218982013-03-07 Richard Biener <rguenther@suse.de>
21899
21900 * doc/invoke.texi (fwhole-program): Discourage use in combination
21901 with -flto.
21902
a72d8780
JJ
219032013-03-06 Jakub Jelinek <jakub@redhat.com>
21904
01a454df
JJ
21905 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
21906
c1781047
JJ
21907 PR tree-optimization/56539
21908 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
21909 instead of GSI_CONTINUE_LINKING as last argument to
21910 force_gimple_operand_gsi. Adjust function comment.
21911
9772c47a
JJ
21912 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
21913 aarch64-cores.def.
21914
a72d8780
JJ
21915 PR middle-end/56548
21916 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
21917 promoted mode, convert the result back to the original mode.
21918
fa5556de
RB
219192013-03-06 Richard Biener <rguenther@suse.de>
21920
21921 PR middle-end/56294
21922 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
21923 (insert_updated_phi_nodes_compare_uids): New function.
21924 (update_ssa): Sort symbols_to_rename after UID before
21925 traversing it to insert PHI nodes.
21926
010403d1
RB
219272013-03-06 Richard Biener <rguenther@suse.de>
21928
21929 PR middle-end/50494
21930 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
21931 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
21932
21933 Revert
21934 2013-02-13 Richard Biener <rguenther@suse.de>
21935
21936 PR lto/50494
21937 * varasm.c (output_constant_def_1): Get the decl representing
21938 the constant as argument.
21939 (output_constant_def): Wrap output_constant_def_1.
21940 (make_decl_rtl): Use output_constant_def_1 with the decl
21941 representing the constant.
21942 (build_constant_desc): Optionally re-use a decl already
21943 representing the constant.
21944 (tree_output_constant_def): Adjust.
21945
3c27ce4c
JY
219462013-03-06 Joey Ye <joey.ye@arm.com>
21947
21948 PR lto/50293
21949 * gcc.c (convert_white_space): New function.
21950 (main): Handles white space in function name.
21951
8f6d1c86
OE
219522013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
21953
21954 PR target/56529
21955 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
21956 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
21957 to SH_DIV_CALL_TABLE for TARGET_SH2.
21958 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
21959 list.
21960 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
21961 call-table options.
21962
798a209f
SA
219632013-03-05 Sterling Augustine <saugustine@google.com>
21964 Cary Coutant <ccoutant@google.com>
21965
21966 PR debug/55364
21967 * dwarf2out.c (resolve_addr): Don't call
21968 remove_loc_list_addr_table_entries a second time for the same
21969 expression.
21970
6cfa417f 219712013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 21972
6cfa417f
JJ
21973 PR debug/56510
21974 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
21975 (avoid_complex_debug_insns): New function.
21976 (expand_debug_locations): Call it.
21977
21978 PR rtl-optimization/56484
21979 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
21980 lifetimes of hard registers on small register class machines.
21981
219822013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
21983
21984 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 21985 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 21986 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
21987 fast_interrupt.
21988 (microblaze_fast_interrupt_function_p): New function.
21989 (microblaze_is_interrupt_handler): Rename to
21990 microblaze_is_interrupt_variant and add fast_interrupt check.
21991 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
21992 (save_restore_insns): Likewise.
21993 (compute_frame_size): Likewise.
21994 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
21995 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
21996 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
21997 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
21998 microblaze_is_interrupt_variant.
21999
731aefac
KT
220002013-03-05 Kai Tietz <ktietz@redhat.com>
22001
22002 * sdbout.c (sdbout_one_type): Switch to current function's section
22003 supporting cold/hot.
22004
a72d8780 220052013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
22006
22007 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
22008 -mxl-reorder.
22009
334e71e8
JJ
220102013-03-05 Jakub Jelinek <jakub@redhat.com>
22011
0b50e654
JJ
22012 PR middle-end/56461
22013 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
22014 if VALGRIND_GET_VBITS is defined, temporarily make object
22015 memory all defined, and restore previous valgrind addressability
22016 and definability afterwards. Free this_object at the end.
22017
4ccf8f43
JJ
22018 PR middle-end/56461
22019 * lra.c (lra): Call lra_clear_live_ranges if live_p,
22020 right before calling lra_create_live_ranges, also call it
22021 when clearing live_p. Only call lra_clear_live_ranges
22022 at the end if live_p.
22023
334e71e8
JJ
22024 PR middle-end/56461
22025 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
22026
9ca966ca
RB
220272013-03-05 Richard Biener <rguenther@suse.de>
22028
22029 PR tree-optimization/56521
22030 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
22031 value-id.
22032
d273b176
SB
220332013-03-05 Steven Bosscher <steven@gcc.gnu.org>
22034
22035 PR c++/55135
22036 * except.h (remove_unreachable_eh_regions): New prototype.
22037 * except.c (remove_eh_handler_splicer): New function, split out
22038 of remove_eh_handler.
22039 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
22040 warning about running it on many EH regions one at a time.
22041 (remove_unreachable_eh_regions_worker): New function, walk the
22042 EH tree in depth-first order and remove non-marked regions.
22043 (remove_unreachable_eh_regions): New function.
22044 * tree-eh.c (mark_reachable_handlers): New function, split out
22045 from remove_unreachable_handlers.
22046 (remove_unreachable_handlers): Use mark_reachable_handlers and
22047 remove_unreachable_eh_regions.
22048 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
22049 and remove_unreachable_eh_regions.
22050
5e7f1aef
RB
220512013-03-05 Richard Biener <rguenther@suse.de>
22052
22053 PR middle-end/56525
22054 * loop-init.c (fix_loop_structure): Remove loops in two stages,
22055 not freeing them until the end.
22056
f276b762
AK
220572013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22058
22059 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
22060
12a43ab8
RB
220612013-03-05 Richard Biener <rguenther@suse.de>
22062
22063 PR tree-optimization/56270
22064 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
22065 of loads after scheduling an SLP instance.
22066
93675444
JJ
220672013-03-05 Jakub Jelinek <jakub@redhat.com>
22068
db4138e3
JJ
22069 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
22070 tic6x.exp.
22071 (check_gcc_parallelize): Run guality.exp as a separate job from
22072 vect.exp with unsorted.exp and $(dg_target_exps) separately from
22073 struct-layout-1.exp with stackalign.exp.
22074
dd3d1ec0
JJ
22075 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
22076
b8d381a3
JJ
22077 PR middle-end/56461
22078 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
22079 load_index sbitmap even if some bit in it isn't set.
22080
b4f9786b
JJ
22081 PR middle-end/56461
22082 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
22083 (discover_iteration_bound_by_body_walk): Change queues to
22084 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
22085 spelling in comment. Call safe_push on queues[bound_index] directly.
22086 Release queues[queue_index] in every iteration unconditionally.
22087 Release bounds vector.
22088
93675444
JJ
22089 PR middle-end/56461
22090 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
22091 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
22092 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
22093 inner_phis vector.
22094
3e492e9c
RB
220952013-03-05 Richard Biener <rguenther@suse.de>
22096
22097 PR lto/56515
22098 * tree-inline.c (remap_blocks_to_null): New function.
22099 (expand_call_inline): When expanding a call stmt without
22100 an associated block inline remap all callee blocks to NULL.
22101
a5d1569a
JJ
221022013-03-05 Jakub Jelinek <jakub@redhat.com>
22103
86efb5cd
JJ
22104 PR rtl-optimization/56494
22105 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
22106 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
22107 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
22108
85f5dbea
JJ
22109 PR middle-end/56461
22110 * sel-sched-ir.c (free_sched_pools): Release
22111 succs_info_pool.stack[succs_info_pool.max_top] vectors too
22112 if succs_info_pool.max_top isn't -1.
22113
a5d1569a
JJ
22114 PR bootstrap/56509
22115 * opts.c (opts_obstack, opts_concat): Moved to...
22116 * opts-common.c (opts_obstack, opts_concat): ... here.
22117
4432aa6c
JJ
221182013-03-04 Jakub Jelinek <jakub@redhat.com>
22119
22120 PR middle-end/56461
22121 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
22122
f3a1fb91
MJ
221232013-03-04 Martin Jambor <mjambor@suse.cz>
22124
22125 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
22126 all appropriate places.
22127
22110e6c
EB
221282013-01-04 Eric Botcazou <ebotcazou@adacore.com>
22129
22130 PR tree-optimization/56424
22131 * ipa-split.c (split_function): Do not set the RSO flag if result is
22132 not by reference and its type is a register type.
22133
a72d8780 221342013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 22135
88b97037 22136 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 22137 (microblaze_legitimate_pic_operand): Likewise
88b97037 22138 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
22139 new function microblaze_legitimate_pic_operand
22140 * config/microblaze/microblaze-protos.h
22141 (microblaze_legitimate_pic_operand): Declare.
22142
a72d8780 221432013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 22144
a72d8780 22145 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 22146 New predicate for supported rtx code types.
a72d8780 22147 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
22148 call_insn_simple_operand predicate.
22149
541d9ac8
JJ
221502013-03-04 Jakub Jelinek <jakub@redhat.com>
22151
5eb010bc
JJ
22152 PR middle-end/56461
22153 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
22154 partitions.ordered_remove.
22155
30862efc
JJ
22156 PR middle-end/56461
22157 * tree-vect-stmts.c (vectorizable_conversion): Don't call
22158 vec_oprnds0.create (1) for modifier == NONE.
22159
8930f723
JJ
22160 PR middle-end/56461
22161 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
22162 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
22163 vec_oprnds1 right before pushing anything to it for
22164 scalar_shift_arg.
22165
541d9ac8
JJ
22166 PR middle-end/56461
22167 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
22168 set nbbs to 0 instead of having separate code path.
22169 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
22170 instead of false as last argument if returning NULL.
22171
7aa7f2e3
SL
221722013-03-03 Sandra Loosemore <sandra@codesourcery.com>
22173
22174 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
22175 the attribute is now called "target" instead of "option".
22176 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
22177 * doc/tm.texi.in (Target Attributes): Likewise document the correct
22178 attribute/pragma name for TARGET_OPTION_VALID_P and
22179 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
22180 * doc/tm.texi: Regenerated.
22181
8930f723 221822013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 22183
8930f723 22184 * config/microblaze/microblaze.c:
cb8a1637 22185 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
22186 * config/microblaze/microblaze.h: Add -mxl-reorder to
22187 DRIVER_SELF_SPECS.
22188 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
22189 instructions emitted if TARGET_REORDER.
88b97037
UB
22190 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
22191 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 22192 separately.
cb8a1637 22193
4dc1d68c
XDL
221942013-03-01 Xinliang David Li <davidxl@google.com>
22195
22196 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
22197 walk length.
22198
689eaba3
JJ
221992013-03-01 Jakub Jelinek <jakub@redhat.com>
22200
9d676bf6
JJ
22201 PR middle-end/56461
22202 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
22203 vector even when returning true. Fix up function comment formatting.
22204
caff7edf
JJ
22205 PR middle-end/56461
22206 * ira-build.c (ira_loop_nodes_count): New variable.
22207 (create_loop_tree_nodes): Initialize it.
22208 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
22209
b6b9227d
JJ
22210 PR middle-end/56461
22211 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
22212 method on dr_chain and result_chain.
22213 * tree-vect-stmts.c (vectorizable_store): Only call
22214 result_chain.create if j == 0.
22215
689eaba3
JJ
22216 PR middle-end/56461
22217 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
22218 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
22219 before overwriting it.
22220
40bf31ed
TB
222212013-03-01 Tobias Burnus <burnus@net-b.de>
22222
22223 * doc/extended.texi (C Extensions): Change order in @menu
22224 to match @node.
22225 (Other MIPS Built-in Functions): Move last MIPS entry before
22226 "picoChip Built-in Functions".
22227 (SH Built-in Functions): Move after RX Built-in Functions.
22228 * doc/gcc.texi (Introduction): Change order in @menu
22229 to match @node.
22230 * doc/md.texi (Constraints): Ditto.
22231 * gty.texi (Type Information): Ditto.
22232 (User-provided marking routines for template types): Make
22233 subsection.
22234 * doc/invoke.texi (AArch64 Options): Move before
22235 "Adapteva Epiphany Options".
22236
e664c61c
KS
222372013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
22238 Jakub Jelinek <jakub@redhat.com>
22239
22240 PR sanitizer/56454
22241 * asan.c (gate_asan): Lookup no_sanitize_address instead of
22242 no_address_safety_analysis attribute.
22243 * doc/extend.texi (no_address_safety_attribute): Rename to
22244 no_sanitize_address attribute, mention no_address_safety_analysis
22245 attribute as deprecated alias.
22246
37b5ec8f
JJ
222472013-02-28 Jakub Jelinek <jakub@redhat.com>
22248
22249 PR middle-end/56461
22250 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
22251 type to vec<vec<tree> > *.
22252 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
22253 to be vec<tree> instead of vec<tree> *, set vec_defs
22254 to vNULL and call vec_defs.create (number_of_vects), adjust other
22255 uses of vec_defs.
22256 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
22257 vectorizable_condition): Adjust vect_get_slp_defs callers.
22258
ba96cdfb
JG
222592013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22260
22261 * config/aarch64/aarch64.c
22262 (aarch64_float_const_representable): Remove unused variable.
22263
6f549691
JG
222642013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22265
22266 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
22267
af55e82d
JG
222682013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22269
22270 * config/aarch64/aarch64-builtins.c
22271 (aarch64_init_simd_builtins): Make static.
22272
1df3f464
JG
222732013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22274
22275 * config/aarch64/aarch64.c
22276 (aarch64_simd_make_constant): Make static.
22277
f8f42513
MJ
222782013-02-28 Martin Jambor <mjambor@suse.cz>
22279
22280 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
22281 with no initialization to the RHS of debug statements.
22282
b48b3fc4
MJ
222832013-02-28 Martin Jambor <mjambor@suse.cz>
22284
22285 PR tree-optimization/56294
22286 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
22287 Adjust dumping.
22288 (get_access_replacement): Do not call create_access_replacement.
22289 Assert a replacement exists.
22290 (get_repl_default_def_ssa_name): Create the replacement declaration
22291 itself.
22292
c3ae224c
RR
222932013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22294
22295 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
22296 final_end_function.
22297
45fa0eef
MP
222982013-02-28 Marek Polacek <polacek@redhat.com>
22299
22300 PR rtl-optimization/56466
22301 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
22302 if we're changing a loop.
22303 (peel_loops_completely): Likewise.
22304
502c067d
PC
223052013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
22306
22307 PR c++/55813
22308 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
22309
ff24afc8
GJL
223102013-02-28 Georg-Johann Lay <avr@gjlay.de>
22311
22312 PR target/56445
22313 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
22314 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
22315 INTX_FTYPE_FX, FX_FTYPE_INTX.
22316 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
22317
c7b1fc1b
GJL
223182013-02-28 Georg-Johann Lay <avr@gjlay.de>
22319
22320 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
22321 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
22322 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
22323 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
22324 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
22325 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
22326 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
22327 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
22328 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
22329 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
22330 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
22331 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
22332 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
22333 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
22334 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
22335 (avrxmega6): Increase max flash segments from 5 to 6.
22336 * config/avr/t-multilib: Regenerate.
22337 * config/avr/avr-tables.opt: Regenerate.
22338 * doc/avr-mmcu.texi: Regenerate.
22339
4a0e3cfe
GJL
223402013-02-28 Georg-Johann Lay <avr@gjlay.de>
22341
22342 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
22343 (avr_device_to_arch): Rename to avr_device_to_ld.
22344 (avr_device_to_as): New prototype.
22345 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
22346 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
22347 * config/avr/driver-avr.c (avr_device_to_as): New.
22348 (avr_device_to_arch): Rename to avr_device_to_ld.
22349
97785e52
JJ
223502013-02-27 Jakub Jelinek <jakub@redhat.com>
22351
3f292312
JJ
22352 PR middle-end/56461
22353 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
22354 method on dr_chain and result_chain.
22355
a344216b
JJ
22356 PR middle-end/56461
22357 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
22358 pointer_set_destroy on not_executed_last_iteration.
22359
f121ad02 22360 PR middle-end/56461
88b97037 22361 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 22362
307f83a3
JJ
22363 PR middle-end/56461
22364 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
22365 FOR_EACH_DEFINED_FUNCTION when freeing state.
22366
e19624ee
JJ
22367 PR middle-end/56461
22368 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
22369 pool_free.
22370 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
22371 overwriting it.
22372
90e709fd
JJ
22373 PR middle-end/56461
22374 * ipa-cp.c (decide_whether_version_node): Call vec_free on
22375 known_aggs[i].items and release known_aggs vector.
22376
97785e52
JJ
22377 PR middle-end/56461
22378 * ipa-reference.c (propagate): Free node_info even for alias nodes.
22379
223802013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 22381
97785e52
JJ
22382 * config/microblaze/microblaze.c (microblaze_emit_compare):
22383 Use xor for EQ/NE comparisions.
22384 * config/microblaze/microblaze.md (cstoresf4): Add constraints
22385 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 22386
6fa5e0ed
JJ
223872013-02-27 Jakub Jelinek <jakub@redhat.com>
22388
22389 PR middle-end/56461
22390 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
22391 vector.
22392 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
22393 vec_safe_push, always update *slot.
22394 (redirect_edge_var_map_clear): Use vec_free.
22395 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
22396 (free_var_map_entry): Use vec_free.
22397 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
22398 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
22399
436a956a
AB
224002013-02-27 Andrey Belevantsev <abel@ispras.ru>
22401
22402 PR middle-end/45472
436a956a
AB
22403 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
22404 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
22405 Reorder tests for speculativeness in the logical and operator.
22406
f5c2caca
JJ
224072013-02-27 Jakub Jelinek <jakub@redhat.com>
22408
0fcb564b
JJ
22409 * incpath.c (add_standard_paths): Use reconcat instead of concat
22410 where appropriate and avoid leaking memory.
22411
dc357798
JJ
22412 * opts.h: Include obstack.h.
22413 (opts_concat): New prototype.
22414 (opts_obstack): New declaration.
22415 * opts.c (opts_concat): New function.
22416 (opts_obstack): New variable.
22417 (init_options_struct): Call gcc_init_obstack on opts_obstack.
22418 (finish_options): Use opts_concat instead of concat
22419 and XOBNEWVEC instead of XNEWVEC.
22420 * opts-common.c (generate_canonical_option, decode_cmdline_option,
22421 generate_option): Likewise.
22422 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
22423 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
22424
f5c2caca
JJ
22425 PR target/56455
22426 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
22427 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
22428
d0163673
JJ
224292013-02-26 Jakub Jelinek <jakub@redhat.com>
22430
22431 PR middle-end/56461
22432 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
22433
b5ad2b8e
JR
224342013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22435
22436 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
22437 (arm_block_move_unaligned_straight): Likewise.
22438 (arm_adjust_block_mem): Likewise.
22439
9b639e2c
JR
224402013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22441
22442 PR target/48901
22443 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
22444 temp, cond and label.
22445 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
22446
e13a0ccb
JR
22447 PR target/52500
22448 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
22449 * config/c6x/c6x.h (dbx_register_map): Update declaration.
22450
fbe4f171
JR
22451 PR target/52501
22452 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
22453 of prologue/epilogue functions.
22454
ae006543
JR
22455 PR target/52550
22456 * config/tilegx/tilegx.c (tilegx_expand_prologue):
22457 Remove unused variable cfa_offset.
22458 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
22459
c81369fa
JR
22460 PR target/54639
22461 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
22462 type promotion to unsigned.
22463
f8a8fea7
JR
22464 PR target/54640
22465 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
22466 for HOST_WIDE_INT of 32 bit / same size as int.
22467 (arm_block_move_unaligned_straight): Likewise.
22468 (arm_adjust_block_mem): Likewise.
22469
f8be5169
JR
22470 PR target/54662
22471 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
22472 ALL_CFLAGS.
22473
f1ad3354
MP
224742013-02-26 Marek Polacek <polacek@redhat.com>
22475
22476 PR tree-optimization/56426
88b97037 22477 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 22478
a6af0f42
RB
224792013-02-26 Richard Biener <rguenther@suse.de>
22480
22481 PR target/56444
22482 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
22483 unused variable loops.
22484
aca43c6c
JJ
224852013-02-26 Jakub Jelinek <jakub@redhat.com>
22486
cecbe5d9
JJ
22487 PR tree-optimization/56448
22488 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
22489 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
22490 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
22491 later operands of the references, or even first operand for
22492 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
22493
aca43c6c
JJ
22494 PR tree-optimization/56443
22495 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
22496 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
22497 to type_for_mode langhook.
22498
53e2e141
MT
224992013-02-25 Matt Turner <mattst88@gmail.com>
22500
22501 * doc/invoke.texi: Document r4700.
22502
259ee451
RB
225032013-02-25 Richard Biener <rguenther@suse.de>
22504
22505 PR tree-optimization/56175
22506 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
22507 split out from ...
22508 (simplify_bitwise_binary): ... here. Also guard the conversion
22509 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
22510
6d65e8f1
CM
225112013-02-25 Catherine Moore <clm@codesourcery.com>
22512
22513 Revert:
22514 2013-02-24 Catherine Moore <clm@codesourcery.com>
22515 Maciej W. Rozycki <macro@codesourcery.com>
22516 Tom de Vries <tom@codesourcery.com>
a72d8780 22517 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
22518 Iain Sandoe <iain@codesourcery.com>
22519 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 22520 Chao-ying Fu <fu@mips.com>
88b97037 22521
6d65e8f1 22522 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 22523 Document new function attributes.
6d65e8f1
CM
22524 * doc/invoke.texi (minterlink-compressed, mmicromips,
22525 m14k, m14ke, m14kec): Document new options.
22526 (minterlink-mips16): Update documentation.
22527 * doc/md.texi (ZC, ZD): Document new constraints.
22528 * configure.ac (gcc_cv_as_micromips): Check if linker
22529 supports the .set micromips directive.
22530 * configure: Regenerate.
22531 * config.in: Regenerate.
22532 * config/mips/mips-tables.opt: Regenerate.
22533 * config/mips/micromips.md: New file.
22534 * constraints.md (ZC, AD): New constraints.
22535 * config/mips/predicates.md (movep_src_register): New predicate.
22536 (movep_src_operand): New predicate.
22537 (non_volatile_mem_operand): New predicate.
22538 * config/mips/mips.md (multimem): New type.
22539 (length): Differentiate between 17-bit and 18-bit branch offsets.
22540 (MOVEP1, MOVEP2): New mode iterator.
22541 (mov_<load>l): Use ZC constraint.
22542 (mov_<load>r): Likewise.
22543 (mov_<store>l): Likewise.
22544 (mov_<store>r): Likewise.
22545 (*branch_equality<mode>_inverted): Add microMIPS support.
22546 (*branch_equality<mode>): Likewise.
22547 (*jump_absolute): Likewise.
22548 (indirect_jump_<mode>): Likewise.
22549 (tablejump_<mode>): Likewise.
22550 (<optab>_internal): Likewise.
22551 (sibcall_internal): Likewise.
22552 (sibcall_value_internal): Likewise.
22553 (prefetch): Use constraint ZD.
22554 * config/mips/mips.opt (minterlink-compressed): New option.
22555 (minterlink-mips16): Now an alias for minterlink-compressed.
22556 (mmicromips): New option.
22557 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22558 (compare_and_swap_12): Likewise.
22559 (sync_add<mode>): Likewise.
22560 (sync_<optab>_12): Likewise.
22561 (sync_old_<optab>_12): Likewise.
22562 (sync_new_<optab>_12): Likewise.
22563 (sync_nand_12): Likewise.
22564 (sync_old_nand_12): Likewise.
22565 (sync_new_nand_12): Likewise.
22566 (sync_sub<mode>): Likewise.
22567 (sync_old_add<mode>): Likewise.
22568 (sync_old_sub<mode>): Likewise.
22569 (sync_new_add<mode>): Likewise.
22570 (sync_new_sub<mode>): Likewise.
22571 (sync_<optab><mode>): Likewise.
22572 (sync_old_<optab><mode>): Likewise.
22573 (sync_new_<optab><mode>): Likewise.
22574 (sync_nand<mode>): Likewise.
22575 (sync_old_nand<mode>): Likewise.
22576 (sync_new_nand<mode>): Likewise.
22577 (sync_lock_test_and_set<mode>): Likewise.
22578 (test_and_set_12): Likewise.
22579 (atomic_compare_and_swap<mode>): Likewise.
22580 (atomic_exchange<mode>_llsc): Likewise.
22581 (atomic_fetch_add<mode>_llsc): Likewise.
22582 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22583 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22584 (umips_save_restore_pattern_p): Likewise.
22585 (umips_load_store_pair_p): Likewise.
22586 (umips_output_load_store_pair): Likewise.
22587 (umips_movep_target_p): Likewise.
22588 (umips_12bit_offset_address_p): Likewise.
22589 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22590 (mips_base_mips16): Rename this...
22591 (mips_base_compression_flags): ...to this. Update all uses.
22592 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22593 (mips_mips16_decl_p): Delete.
22594 (mips_nomips16_decl_p): Delete.
22595 (mips_get_compress_on_flags): New function.
22596 (mips_get_compress_off_flags): New function.
22597 (mips_get_compress_mode): New function.
22598 (mips_get_compress_on_name): New function.
22599 (mips_get_compress_off_name): New function.
22600 (mips_insert_attributes): Support multiple compression types.
22601 (mips_merge_decl_attributes): Likewise.
22602 (umips_12bit_offset_address_p): New function.
22603 (mips_start_function_definition): Emit .set micromips directive.
22604 (mips_call_may_need_jalx_p): New function.
22605 (mips_function_ok_for_sibcall): Add microMIPS support.
22606 (mips_print_operand_punctuation): Support short delay slots and
22607 compact jumps.
22608 (umips_swm_mask, umips_swm_encoding): New.
22609 (umips_build_save_restore): New function.
22610 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22611 (was_mips16_p): Remove.
22612 (old_compression_mode): New.
22613 (mips_set_compression_mode): New function.
22614 (mips_set_current_function): Add microMIPS support.
22615 (mips_option_override): Likewise.
22616 (umips_save_restore_pattern_p): New function.
22617 (umips_output_save_restore): New function.
22618 (umips_load_store_pair_p_1): New function.
22619 (umips_load_store_pair_p): New function.
22620 (umips_output_load_store_pair_1): New function.
22621 (umips_output_load_store_pair): New function.
22622 (umips_movep_target_p) New function.
22623 (mips_prepare_pch_save): Add microMIPS support.
22624 * config/mips/mips.h (TARGET_COMPRESSION): New.
22625 (TARGET_CPU_CPP_BUILTINS): Update macro
22626 to use new compression flags and to support microMIPS.
22627 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22628 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22629 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22630 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22631 (ASM_SPEC): Support mmicromips and mno-micromips.
22632 (M16STORE_REG_P): New macro.
22633 (MIPS_CALL): Support TARGET_MICROMIPS.
22634 (MICROMIPS_J): New macro.
22635 (mips_base_mips16): Rename this...
22636 (mips_base_compression_flags): ...to this.
22637 (UMIPS_12BIT_OFFSET_P): New macro.
22638 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22639 (MULTILIB_DIRNAMES): Likewise.
22640
5e5df392
TV
226412013-02-25 Tom de Vries <tom@codesourcery.com>
22642
22643 PR rtl-optimization/56131
22644 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
22645 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
22646 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
22647
3fdb53c1
TB
226482013-02-25 Tobias Burnus <burnus@net-b.de>
22649
22650 * doc/invoke.texi (-fsanitize=): Move from optimization
22651 to debugging options.
22652
ed358aea
AB
226532013-02-25 Andrey Belevantsev <abel@ispras.ru>
22654
22655 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
22656
f45e9053
AB
226572013-02-25 Andrey Belevantsev <abel@ispras.ru>
22658 Alexander Monakov <amonakov@ispras.ru>
22659
22660 PR middle-end/56077
22661 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
22662 flush pending lists also on non-jumps. Adjust comment.
22663
6941b508
CM
226642013-02-24 Catherine Moore <clm@codesourcery.com>
22665 Maciej W. Rozycki <macro@codesourcery.com>
22666 Tom de Vries <tom@codesourcery.com>
a72d8780 22667 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
22668 Iain Sandoe <iain@codesourcery.com>
22669 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 22670 Chao-ying Fu <fu@mips.com>
6941b508
CM
22671
22672 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 22673 Document new function attributes.
6941b508
CM
22674 * doc/invoke.texi (minterlink-compressed, mmicromips,
22675 m14k, m14ke, m14kec): Document new options.
22676 (minterlink-mips16): Update documentation.
22677 * doc/md.texi (ZC, ZD): Document new constraints.
22678 * configure.ac (gcc_cv_as_micromips): Check if linker
22679 supports the .set micromips directive.
22680 * configure: Regenerate.
22681 * config.in: Regenerate.
22682 * config/mips/mips-tables.opt: Regenerate.
22683 * config/mips/micromips.md: New file.
22684 * constraints.md (ZC, AD): New constraints.
22685 * config/mips/predicates.md (movep_src_register): New predicate.
22686 (movep_src_operand): New predicate.
22687 (non_volatile_mem_operand): New predicate.
22688 * config/mips/mips.md (multimem): New type.
22689 (length): Differentiate between 17-bit and 18-bit branch offsets.
22690 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 22691 (mov_<load>l): Use ZC constraint.
6941b508
CM
22692 (mov_<load>r): Likewise.
22693 (mov_<store>l): Likewise.
22694 (mov_<store>r): Likewise.
22695 (*branch_equality<mode>_inverted): Add microMIPS support.
22696 (*branch_equality<mode>): Likewise.
22697 (*jump_absolute): Likewise.
22698 (indirect_jump_<mode>): Likewise.
22699 (tablejump_<mode>): Likewise.
22700 (<optab>_internal): Likewise.
22701 (sibcall_internal): Likewise.
22702 (sibcall_value_internal): Likewise.
22703 (prefetch): Use constraint ZD.
22704 * config/mips/mips.opt (minterlink-compressed): New option.
22705 (minterlink-mips16): Now an alias for minterlink-compressed.
22706 (mmicromips): New option.
22707 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22708 (compare_and_swap_12): Likewise.
22709 (sync_add<mode>): Likewise.
22710 (sync_<optab>_12): Likewise.
22711 (sync_old_<optab>_12): Likewise.
22712 (sync_new_<optab>_12): Likewise.
22713 (sync_nand_12): Likewise.
22714 (sync_old_nand_12): Likewise.
22715 (sync_new_nand_12): Likewise.
22716 (sync_sub<mode>): Likewise.
22717 (sync_old_add<mode>): Likewise.
22718 (sync_old_sub<mode>): Likewise.
22719 (sync_new_add<mode>): Likewise.
22720 (sync_new_sub<mode>): Likewise.
22721 (sync_<optab><mode>): Likewise.
22722 (sync_old_<optab><mode>): Likewise.
22723 (sync_new_<optab><mode>): Likewise.
22724 (sync_nand<mode>): Likewise.
22725 (sync_old_nand<mode>): Likewise.
22726 (sync_new_nand<mode>): Likewise.
22727 (sync_lock_test_and_set<mode>): Likewise.
22728 (test_and_set_12): Likewise.
22729 (atomic_compare_and_swap<mode>): Likewise.
22730 (atomic_exchange<mode>_llsc): Likewise.
22731 (atomic_fetch_add<mode>_llsc): Likewise.
22732 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22733 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22734 (umips_save_restore_pattern_p): Likewise.
22735 (umips_load_store_pair_p): Likewise.
22736 (umips_output_load_store_pair): Likewise.
22737 (umips_movep_target_p): Likewise.
22738 (umips_12bit_offset_address_p): Likewise.
22739 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22740 (mips_base_mips16): Rename this...
22741 (mips_base_compression_flags): ...to this. Update all uses.
22742 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22743 (mips_mips16_decl_p): Delete.
22744 (mips_nomips16_decl_p): Delete.
3fdb53c1 22745 (mips_get_compress_on_flags): New function.
6941b508
CM
22746 (mips_get_compress_off_flags): New function.
22747 (mips_get_compress_mode): New function.
22748 (mips_get_compress_on_name): New function.
22749 (mips_get_compress_off_name): New function.
22750 (mips_insert_attributes): Support multiple compression types.
22751 (mips_merge_decl_attributes): Likewise.
22752 (umips_12bit_offset_address_p): New function.
22753 (mips_start_function_definition): Emit .set micromips directive.
22754 (mips_call_may_need_jalx_p): New function.
22755 (mips_function_ok_for_sibcall): Add microMIPS support.
22756 (mips_print_operand_punctuation): Support short delay slots and
22757 compact jumps.
22758 (umips_swm_mask, umips_swm_encoding): New.
22759 (umips_build_save_restore): New function.
22760 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22761 (was_mips16_p): Remove.
22762 (old_compression_mode): New.
22763 (mips_set_compression_mode): New function.
22764 (mips_set_current_function): Add microMIPS support.
22765 (mips_option_override): Likewise.
22766 (umips_save_restore_pattern_p): New function.
22767 (umips_output_save_restore): New function.
22768 (umips_load_store_pair_p_1): New function.
22769 (umips_load_store_pair_p): New function.
22770 (umips_output_load_store_pair_1): New function.
22771 (umips_output_load_store_pair): New function.
22772 (umips_movep_target_p) New function.
22773 (mips_prepare_pch_save): Add microMIPS support.
22774 * config/mips/mips.h (TARGET_COMPRESSION): New.
22775 (TARGET_CPU_CPP_BUILTINS): Update macro
22776 to use new compression flags and to support microMIPS.
22777 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22778 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22779 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22780 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22781 (ASM_SPEC): Support mmicromips and mno-micromips.
22782 (M16STORE_REG_P): New macro.
22783 (MIPS_CALL): Support TARGET_MICROMIPS.
22784 (MICROMIPS_J): New macro.
22785 (mips_base_mips16): Rename this...
22786 (mips_base_compression_flags): ...to this.
22787 (UMIPS_12BIT_OFFSET_P): New macro.
22788 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22789 (MULTILIB_DIRNAMES): Likewise.
22790
cdebbc6d
JJ
227912013-02-24 Jakub Jelinek <jakub@redhat.com>
22792
22793 PR target/52555
22794 * target-globals.c (save_target_globals): For init_reg_sets and
22795 target_reinit remporarily set this_fn_optabs to this_target_optabs.
22796
18c63565
JG
227972013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
22798
22799 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
22800 * config/aarch64/t-aarch64
22801 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
22802
2194f7a2
VM
228032013-02-22 Vladimir Makarov <vmakarov@redhat.com>
22804
22805 PR inline-asm/56148
22806 * lra-constraints.c (process_alt_operands): Reload operand
22807 conflicting with earlier clobber only if no more other conflicting
22808 operands.
22809
7d613735
JJ
228102013-02-22 Jakub Jelinek <jakub@redhat.com>
22811
22812 PR sanitizer/56393
22813 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
22814 if not linking a shared library.
22815
ac8d93a7
SL
228162013-02-22 Seth LaForge <sethml@google.com>
22817
22818 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
22819
e0237780
GY
228202013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
22821
3fdb53c1
TB
22822 * config/arm/arm.md (split for extendsidi): Update condition.
22823 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
22824 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
22825 (qhs_zextenddi_cstr): Likewise.
e0237780 22826
d7fde18c
JJ
228272013-02-21 Jakub Jelinek <jakub@redhat.com>
22828
be63b77d
JJ
22829 PR middle-end/56420
22830 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
22831 avoid signed wrapping.
22832 (expand_mult): Handle properly multiplication by
22833 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
22834 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
22835 in the compiler if coeff is HOST_WIDE_INT_MIN.
22836 (expand_divmod): Don't make ext_op1 static, change it's type to
22837 uhwi. Avoid undefined behavior in -INTVAL (op1).
22838
d7fde18c
JJ
22839 PR rtl-optimization/50339
22840 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
22841 field.
22842 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
22843 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
22844 into splitting_ashiftrt field.
22845 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
22846 ASHIFTRT.
22847 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
22848 choices.
22849
6aad4455
AH
228502013-02-20 Aldy Hernandez <aldyh@redhat.com>
22851
22852 PR middle-end/56108
22853 * trans-mem.c (execute_tm_mark): Do not expand transactions that
22854 are sure to go irrevocable.
22855
38fe784d
HPN
228562013-02-21 Hans-Peter Nilsson <hp@axis.com>
22857
22858 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
22859 scalars are valid operands.
22860
0fd44da3
MJ
228612013-02-21 Martin Jambor <mjambor@suse.cz>
22862
22863 PR tree-optimization/56310
22864 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
22865 only matching indices and non-negative final offsets.
22866 (intersect_aggregates_with_edge): Pass src_idx to
22867 agg_replacements_to_vector. Pass src_idx insstead of index to
22868 intersect_with_agg_replacements.
22869
7a92038b
MJ
228702013-02-21 Martin Jambor <mjambor@suse.cz>
22871
22872 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
22873 instead of hard-wired defaults.
22874
c0da9c37
MR
228752013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
22876
22877 * doc/invoke.texi (MIPS Options): Update documentation of the
22878 floating-point multiply-accumulate instruction restrictions.
22879
d247ea0c 228802013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
22881
22882 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
22883 asan_shadow_offset on x86_64 linux.
22884
22deefcb
RB
228852013-02-21 Richard Biener <rguenther@suse.de>
22886
22887 PR tree-optimization/56415
22888 Revert
22889 2013-02-11 Richard Biener <rguenther@suse.de>
22890
22891 PR tree-optimization/56273
22892 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
22893 first VRP run.
22894
7bcc6e75
JJ
228952013-02-21 Jakub Jelinek <jakub@redhat.com>
22896
a0ad148f
JJ
22897 PR bootstrap/56258
22898 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
22899 instead of @itemx.
22900
7bcc6e75
JJ
22901 PR inline-asm/56405
22902 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
22903 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
22904
a0a7b611
JH
229052013-02-20 Jan Hubicka <jh@suse.cz>
22906
22907 PR tree-optimization/56265
88b97037
UB
22908 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
22909 when target is referenced for first time.
a0a7b611 22910
c0e50f72
RB
229112013-02-20 Richard Biener <rguenther@suse.de>
22912
22913 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
22914 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
22915 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
22916 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
22917 not return anything.
22918 (rename_ssa_copies): Do not remove unused locals.
22919 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 22920 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
22921 * passes.c (execute_function_todo): Do not schedule unused locals
22922 removal if cleanup_tree_cfg did something.
22923 * tree-ssa-live.c (remove_unused_locals): Dump statistics
22924 about the number of removed locals.
22925
a52ca739
RB
229262013-02-20 Richard Biener <rguenther@suse.de>
22927
22928 PR tree-optimization/56398
88b97037 22929 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 22930
ec9c9d1b
MJ
229312013-02-20 Martin Jambor <mjambor@suse.cz>
22932
22933 PR tree-optimization/55334
22934 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
22935 restricted pointers to arrays.
22936
e91c8ed6 229372013-02-20 Richard Biener <rguenther@suse.de>
88b97037 22938 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
22939
22940 PR tree-optimization/56396
22941 * tree-ssa-ccp.c (n_const_val): New static variable.
22942 (get_value): Return NULL for SSA names we don't have a lattice
22943 entry for.
22944 (ccp_initialize): Initialize n_const_val.
22945 * tree-ssa-copy.c (n_copy_of): New static variable.
22946 (init_copy_prop): Initialize n_copy_of.
22947 (get_value): Return NULL_TREE for SSA names we don't have a
22948 lattice entry for.
22949
3d916479
MJ
229502013-02-20 Martin Jambor <mjambor@suse.cz>
22951
22952 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
22953
71a86758
RB
229542013-02-20 Richard Biener <rguenther@suse.de>
22955
22956 * genpreds.c (write_lookup_constraint): Do not compare first
22957 letter of the constraint again.
22958
79836a12
RB
229592013-02-20 Richard Biener <rguenther@suse.de>
22960
22961 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
22962 and ceil_log2.
22963 (get_use_iv_cost): Terminate hashtable walk when coming across
22964 an empty entry.
22965
bbe4fb2c
IZ
229662013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
22967
22968 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
22969 reassociation for avx2 targets.
22970
a72d8780 229712012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 22972
c77f83d5
EI
22973 * config/microblaze/microblaze.c: microblaze_has_clz = 0
22974 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 22975 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
22976 version and TARGET_PATTERN_COMPARE check
22977 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 22978
a72d8780 229792012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 22980
a72d8780 22981 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
22982 function before branching.
22983
242387fa
AB
229842012-02-19 Andrey Belevantsev <abel@ispras.ru>
22985
22986 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
22987 DUMP_INSN_RTX_UID.
22988 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
22989
b4979ab9
AB
229902012-02-19 Andrey Belevantsev <abel@ispras.ru>
22991
22992 PR middle-end/55889
b4979ab9
AB
22993 * sel-sched.c: Include ira.h.
22994 (implicit_clobber_conflict_p): New function.
22995 (moveup_expr): Use it.
88b97037 22996 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 22997
24d63016
RB
229982013-02-19 Richard Biener <rguenther@suse.de>
22999
23000 PR tree-optimization/56384
23001 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
23002 (vn_hash_type): Split out from ...
23003 (vn_hash_constant_with_type): ... here.
23004 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
23005 (vn_phi_eq): Compare types from vn_phi_s structure.
23006 (vn_phi_lookup): Populate vn_phi_s type.
23007 (vn_phi_insert): Likewise.
23008
a475fd3d
JJ
230092013-02-19 Jakub Jelinek <jakub@redhat.com>
23010
47cc28f5
JJ
23011 PR tree-optimization/56350
23012 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
23013 if haven't found reduction or nested cycle operand, rather than
23014 asserting we must find it.
23015
a475fd3d
JJ
23016 PR tree-optimization/56381
23017 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
23018 to fold_build3.
23019
230202013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
23021 Jakub Jelinek <jakub@redhat.com>
23022
23023 PR target/52555
23024 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
23025 (swap_optab_enable): Same.
23026 (init_all_optabs): Use argument instead of global.
88b97037 23027 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
23028 * expr.h (init_all_optabs): Add argument to prototype.
23029 (TREE_OPTIMIZATION_OPTABS): New.
23030 (save_optabs_if_changed): Protoize.
23031 * optabs.h: Declare this_fn_optabs.
23032 * optabs.c (save_optabs_if_changed): New.
23033 Declare this_fn_optabs.
23034 (init_optabs): Add argument to init_all_optabs() call.
23035 * function.c (invoke_set_current_function_hook): Handle per
23036 function optabs.
23037 * function.h (struct function): New field optabs.
23038 * config/mips/mips.c (mips_set_mips16_mode): Handle when
23039 optimization_current_node has changed.
23040 * target-globals.h (save_target_globals_default_opts): Protoize.
23041 * target-globals.c (save_target_globals_default_opts): New.
23042
3f587ca3
JDA
230432013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23044
23045 PR target/56347
23046 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
23047 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
23048
23049 PR target/56214
23050 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
23051 and HImode, require all displacements to be an integer multiple of
23052 their mode size.
ceaca33e
JDA
23053 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
23054 only allow QImode and HImode when reload is in progress and strict is
23055 true. Likewise for symbolic addresses. Use base14_operand to check
23056 displacements in REG+BASE addresses.
23057
fe0b4796
RB
230582013-02-18 Richard Biener <rguenther@suse.de>
23059
23060 PR tree-optimization/56366
23061 * tree-vect-loop.c (get_initial_def_for_induction): Properly
23062 handle sign-conversion of outer-loop initial induction value.
23063
6aaf596b
RB
230642013-02-18 Richard Biener <rguenther@suse.de>
23065
73db8ff1 23066 PR middle-end/56349
6aaf596b
RB
23067 * cfghooks.c (merge_blocks): If we merge a latch into another
23068 block adjust references to it.
23069 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
23070 (verify_loop_structure): Verify that a recorded latch is in fact
23071 a latch.
23072
5e97dfb6
RB
230732013-02-18 Richard Biener <rguenther@suse.de>
23074
23075 PR tree-optimization/56321
23076 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
23077 order SSA name release and virtual operand unlinking.
23078
825527e8
EI
230792013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23080
23081 * config/microblaze/microblaze.md (save_stack_block): Define.
23082 (restore_stack_block): Likewise.
23083
debd11d9
EI
230842013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23085
23086 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
23087 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
23088 * config/microblaze/microblaze.c (microblaze_option_override):
23089 Bail out early for PIC modes when target does not support PIC.
23090
8ec77be0
EI
230912013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23092
88b97037 23093 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
23094 Replace with a microblaze version.
23095 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 23096 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
23097 microblaze.
23098
b41288b3
JJ
230992013-02-16 Jakub Jelinek <jakub@redhat.com>
23100 Dodji Seketeli <dodji@redhat.com>
23101
23102 PR asan/56330
88b97037 23103 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
23104 (instrument_mem_region_access): Do not forget to always put
23105 instrumentation of the of 'base' and 'base + len' in a "if (len !=
23106 0) statement, even for cases where either 'base' or 'base + len'
23107 are not instrumented -- because they have been previously
23108 instrumented. Simplify the logic by putting all the statements
23109 instrument 'base + len' inside a sequence, and then insert that
23110 sequence right before the current insertion point. Then, to
23111 instrument 'base + len', just get an iterator on that statement.
23112 And do not forget to update the pointer to iterator the function
23113 received as argument.
23114
47918951
VM
231152013-02-15 Vladimir Makarov <vmakarov@redhat.com>
23116
23117 PR rtl-optimization/56348
23118 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
23119
3fb7c699
SB
231202013-02-15 Steven Bosscher <steven@gcc.gnu.org>
23121
23122 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
23123 (clean_graph_dump_file): Pass base to start_graph_dump.
23124
576fe41a
RH
231252013-02-14 Richard Henderson <rth@redhat.com>
23126
23127 PR target/55941
23128 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
23129
bb3accfa
SB
231302013-02-14 Steven Bosscher <steven@gcc.gnu.org>
23131
23132 * collect2-aix.h: Define F_LOADONLY.
23133
03143140
RB
231342013-02-14 Richard Biener <rguenther@suse.de>
23135
23136 PR lto/50494
23137 * varasm.c (output_constant_def_1): Get the decl representing
23138 the constant as argument.
23139 (output_constant_def): Wrap output_constant_def_1.
23140 (make_decl_rtl): Use output_constant_def_1 with the decl
23141 representing the constant.
23142 (build_constant_desc): Optionally re-use a decl already
23143 representing the constant.
23144 (tree_output_constant_def): Adjust.
23145
8fb06726
DS
231462013-02-14 Dodji Seketeli <dodji@redhat.com>
23147
23148 Fix an asan crash
23149 * asan.c (instrument_builtin_call): Really put the length of the
23150 second source argument into src1_len.
23151
c4bfe8bf
JJ
231522013-02-13 Jakub Jelinek <jakub@redhat.com>
23153
23154 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
23155 argument. If it is false, don't create edge from then_bb to
23156 fallthru_bb.
23157 (insert_if_then_before_iter): Pass true to it.
23158 (build_check_stmt): Pass false to it.
23159 (transform_statements): Flush hash table only on extended basic
23160 block boundaries, rather than at the beginning of every bb.
23161 Don't flush hash table on nonfreeing_call_p calls.
23162 * tree-flow.h (nonfreeing_call_p): New prototype.
23163 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
23164
7afe2801
DM
231652013-02-13 David S. Miller <davem@davemloft.net>
23166
23167 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
23168
70cc3288
VM
231692013-02-13 Vladimir Makarov <vmakarov@redhat.com>
23170
23171 PR target/56184
23172 * ira.c (max_regno_before_ira): Move from ...
23173 (ira): ... here.
23174 (fix_reg_equiv_init): Use max_regno_before_ira instead of
23175 vec_safe_length.
23176
6422242b
JJ
231772013-02-13 Jakub Jelinek <jakub@redhat.com>
23178
23179 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
23180
976a81ee
RB
231812013-02-13 Richard Biener <rguenther@suse.de>
23182
23183 PR lto/56295
23184 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
23185 globals in MEM_REFs.
23186
c1874a87
RB
231872013-02-13 Richard Biener <rguenther@suse.de>
23188
23189 * loop-init.c (loop_optimizer_init): Clear loop state when
23190 re-initializing preserved loops.
23191 * loop-unswitch.c (unswitch_single_loop): Return whether
23192 we unswitched the loop. Do not verify loop state here.
88b97037 23193 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 23194
b4ab7d34
KS
231952013-02-13 Kostya Serebryany <kcc@google.com>
23196
88b97037
UB
23197 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
23198 on x86_64 linux.
b4ab7d34
KS
23199 * sanitizer.def: Rename __asan_init to __asan_init_v1.
23200
bdcbe80c
DS
232012013-02-12 Dodji Seketeli <dodji@redhat.com>
23202
23203 Avoid instrumenting duplicated memory access in the same basic block
23204 * Makefile.in (asan.o): Add new dependency on hash-table.h
23205 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
23206 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
23207 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
23208 (free_mem_ref_resources, has_mem_ref_been_instrumented)
23209 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
23210 (get_mem_ref_of_assignment): New functions.
23211 (get_mem_refs_of_builtin_call): Extract from
23212 instrument_builtin_call and tweak a little bit to make it fit with
23213 the new signature.
23214 (instrument_builtin_call): Use the new
23215 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
23216 of is_gimple_builtin_call.
23217 (instrument_derefs, instrument_mem_region_access): Insert the
23218 instrumented memory reference into the hash table.
23219 (maybe_instrument_assignment): Renamed instrument_assignment into
23220 this, and change it to advance the iterator when instrumentation
23221 actually happened and return true in that case. This makes it
23222 homogeneous with maybe_instrument_assignment, and thus give a
23223 chance to callers to be more 'regular'.
23224 (transform_statements): Clear the memory reference hash table
23225 whenever we enter a new BB, when we cross a function call, or when
23226 we are done transforming statements. Use
23227 maybe_instrument_assignment instead of instrumentation. No more
23228 need to special case maybe_instrument_assignment and advance the
23229 iterator after calling it; it's now handled just like
23230 maybe_instrument_call. Update comment.
23231
4861a1f7
RB
232322013-02-13 Richard Biener <rguenther@suse.de>
23233
23234 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
23235 Fix loop discovery code.
23236
1c86bd80
VM
232372013-02-12 Vladimir Makarov <vmakarov@redhat.com>
23238
23239 PR inline-asm/56148
23240 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 23241 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
23242 the operand is not reloaded. Prefer to reload conflicting operand
23243 if earlyclobber and matching operands are the same.
23244
7cbda518
RB
232452013-02-12 Richard Biener <rguenther@suse.de>
23246
23247 PR lto/56297
23248 * lto-streamer-out.c (write_symbol): Do not output symbols
23249 for hard register variables.
23250
e68a4ef6
GJL
232512013-02-12 Georg-Johann Lay <avr@gjlay.de>
23252
23253 PR target/54222
23254 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
23255 (umulsidi3_insn, mulsidi3_insn): New insns.
23256
a72d8780 232572013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
23258
23259 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
23260 (struct tune_params): Add vec_costs field.
23261 * config/arm/arm.c (arm_builtin_vectorization_cost)
23262 (arm_add_stmt_cost): New functions.
23263 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
23264 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
23265 (arm_default_vec_cost): New struct of type cpu_vec_costs.
23266 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
23267 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
23268 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
23269 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
23270
43320568
RB
232712013-02-12 Richard Biener <rguenther@suse.de>
23272
23273 PR lto/56295
23274 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
23275 decls again if possible.
23276
a011aa39
RB
232772013-02-12 Richard Biener <rguenther@suse.de>
23278
23279 PR middle-end/56288
23280 * tree-ssa.c (verify_ssa_name): Fix check, move
23281 SSA_NAME_IN_FREE_LIST check up.
23282
6da26889
JJ
232832013-02-12 Jakub Jelinek <jakub@redhat.com>
23284 Steven Bosscher <steven@gcc.gnu.org>
23285
23286 PR rtl-optimization/56151
23287 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
23288 equal to op0 or op1, and last_insn pattern is CODE operation
23289 with MEM dest and one of the operands matches that MEM.
23290
f80e0faf
ST
232912013-02-11 Sriraman Tallam <tmsriramgoogle.com>
23292
23293 * doc/extend.texi: Document Function Multiversioning and "default"
23294 parameter string to target attribute.
23295 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
23296 target attribute parameter is "default".
23297 (ix86_compare_version_priority): Remove checks for target attribute.
23298 (ix86_mangle_function_version_assembler_name): Change error to sorry.
23299 Remove check for target attribute equal to NULL. Add assert.
23300 (ix86_generate_version_dispatcher_body): Change error to sorry.
23301
6c59ffd1
IS
233022013-02-11 Iain Sandoe <iain@codesourcery.com>
23303 Jack Howarth <howarth@bromo.med.uc.edu>
23304 Patrick Marlier <patrick.marlier@gmail.com>
23305
23306 PR libitm/55693
23307 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
23308 define ENDFILE_SPEC as TM_DESTRUCTOR.
23309 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
23310
a72d8780 233112013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
23312 Jack Howarth <howarth@bromo.med.uc.edu>
23313 Jakub Jelinek <jakub@redhat.com>
23314
23315 PR sanitizer/55617
23316 * config/darwin.c (cdtor_record): Rename ctor_record.
23317 (sort_cdtor_records): Rename sort_ctor_records.
23318 (finalize_dtors): New routine to sort destructors by
23319 priority before use in assemble_integer.
23320 (machopic_asm_out_destructor): Use finalize_dtors if needed.
23321
b63fe007
UB
233222013-02-11 Uros Bizjak <ubizjak@gmail.com>
23323
23324 PR rtl-optimization/56275
23325 * simplify-rtx.c (avoid_constant_pool_reference): Check that
23326 offset is non-negative and less than cmode size before
23327 calling simplify_subreg.
23328
8e89b5b5
RB
233292013-02-11 Richard Biener <rguenther@suse.de>
23330
23331 PR tree-optimization/56264
23332 * cfgloop.h (fix_loop_structure): Adjust prototype.
23333 * loop-init.c (fix_loop_structure): Return the number of
23334 newly discovered loops.
23335 * tree-cfgcleanup.c (repair_loop_structures): When new loops
23336 are discovered, do a full loop-closed SSA rewrite.
23337
b4a4b56d
RB
233382013-02-11 Richard Biener <rguenther@suse.de>
23339
23340 PR tree-optimization/56273
23341 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
23342 first VRP run.
23343 (check_array_ref): Fix missing newline in dumps.
23344 (search_for_addr_array): Likewise.
23345
0c885229
DE
233462013-02-09 David Edelsohn <dje.gcc@gmail.com>
23347
23348 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
23349
59ac9a55
JJ
233502013-02-09 Jakub Jelinek <jakub@redhat.com>
23351
23352 PR target/56256
23353 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
23354
25bb0bb5
VM
233552013-02-08 Vladimir Makarov <vmakarov@redhat.com>
23356
23357 PR rtl-optimization/56246
0c885229 23358 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
23359 reload pseudo.
23360 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
23361 constraints are satisfied.
23362
a698cc03
JL
233632013-02-08 Jeff Law <law@redhat.com>
23364
23365 PR debug/53948
23366 * emit-rtl.c (reg_is_parm_p): New function.
23367 * regs.h (reg_is_parm_p): New prototype.
23368 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
23369 callee-clobbered registers.
23370
e1122ddd
MM
233712013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
23372
23373 PR target/56043
23374 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
23375 If there is no implicit builtin declaration, just return NULL.
23376
19c5f6e6
UB
233772013-02-08 Uros Bizjak <ubizjak@gmail.com>
23378
23379 * config/i386/sse.md (FMAMODEM): New mode iterator.
23380 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
23381 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
23382
2480f2ca 233832013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 23384
2480f2ca
UB
23385 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
23386 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
23387 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
23388
233892013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23390
23391 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
23392 (microblaze*-*-elf): Likewise.
23393 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
23394 LINK_SPEC.
23395 * config/microblaze/microblaze-c.c: Add builtin defines for
23396 _LITTLE_ENDIAN and _BIG_ENDIAN.
23397 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
23398 add to TARGET_DEFAULT flags.
76ef61fb 23399 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
23400 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
23401 * config/microblaze/microblaze.md: Update extendsidi2 and
23402 movdi_internal instructions to use low-order / high-order reg
23403 print_operands.
23404 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
23405 options and inversemask / mask of LITTLE_ENDIAN.
23406 * config/microblaze/t-microblaze: Expand multilib options to
23407 include mlittle-endian (le) and update exceptions patterns.
23408
600a5961
JJ
234092013-02-08 Jakub Jelinek <jakub@redhat.com>
23410
5df81313
JJ
23411 PR rtl-optimization/56195
23412 * lra-constraints.c (get_reload_reg): Don't reuse regs
23413 if they have smaller mode than requested, if they have
23414 wider mode than requested, try to return a SUBREG.
23415
600a5961
JJ
23416 PR tree-optimization/56250
23417 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
23418 if type is unsigned and code isn't MULT_EXPR.
23419
ff544649
GJL
234202013-02-08 Georg-Johann Lay <avr@gjlay.de>
23421
23422 PR tree-optimization/56064
23423 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
23424 bits according to mode.
23425 * fixed-value.h (fixed_from_double_int)
23426 (const_fixed_from_double_int): Adjust comments.
23427
e45cde98
RB
234282013-02-08 Richard Biener <rguenther@suse.de>
23429
23430 PR lto/56231
23431 * lto-streamer.h (struct data_in): Remove current_file, current_line
23432 and current_col members.
23433 * lto-streamer-out.c (lto_output_location): Stream changed bits
23434 en-block for efficiency.
23435 * lto-streamer-in.c (clear_line_info): Remove.
23436 (lto_input_location): Cache current file, line and column
23437 globally via local statics. Read changed bits en-block.
23438 (input_function): Do not call clear_line_info.
23439 (lto_read_body): Likewise.
23440 (lto_input_toplevel_asms): Likewise.
23441
c1ca73d8
MM
234422013-02-08 Michael Matz <matz@suse.de>
23443
23444 PR tree-optimization/52448
23445 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
23446 (nt_call_phase): New static.
23447 (add_or_mark_expr): Only mark accesses with newer phase than any
23448 call seen.
23449 (nonfreeing_call_p): New.
23450 (nt_init_block): Update nt_call_phase, mark blocks as visited.
23451 (nt_fini_block): Keep blocks marked as visited.
23452 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
23453
57548aa2
RB
234542013-02-08 Richard Biener <rguenther@suse.de>
23455
23456 * ira.c (ira): Free broken dominator information.
23457
8e10366f
UB
234582013-02-08 Uros Bizjak <ubizjak@gmail.com>
23459
23460 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
23461
f64fb0fa
MP
234622013-02-08 Marek Polacek <polacek@redhat.com>
23463
8e10366f 23464 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 23465
0375167b
RB
234662013-02-08 Richard Biener <rguenther@suse.de>
23467
23468 PR middle-end/56181
23469 * cfgloop.h (flow_loops_find): Adjust.
23470 (bb_loop_header_p): Declare.
23471 * cfgloop.c (bb_loop_header_p): New function split out from ...
23472 (flow_loops_find): ... here. Adjust function signature,
23473 support incremental loop structure update.
23474 (verify_loop_structure): Cleanup. Verify a loop is a loop.
23475 * cfgloopmanip.c (fix_loop_structure): Move ...
23476 * loop-init.c (fix_loop_structure): ... here.
23477 (apply_loop_flags): Split out from ...
23478 (loop_optimizer_init): ... here.
23479 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
23480 in incremental mode, only remove dead loops here.
23481
85d768f3
GJL
234822013-02-08 Georg-Johann Lay <avr@gjlay.de>
23483
23484 PR target/54222
23485 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
23486 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
23487 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
23488 (*round<mode>3.libgcc): New insns for fixed-modes.
23489 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
23490 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
23491 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
23492 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
23493 implementations. Define to __builtin_avr_absFX,
23494 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
23495 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
23496 __builtin_avr_countlsFX, respectively.
23497 * config/avr/avr-c.c (target.h): Include it.
23498 (enum avr_builtin_id): New enum.
23499 (avr_resolve_overloaded_builtin): New static function.
23500 (avr_register_target_pragmas): Use it to set
23501 targetm.resolve_overloaded_builtin.
23502 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
23503 tree nodes used by DEF_BUILTIN.
23504 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
23505 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
23506 <AVR_BUILTIN_xxBITS>: Same.
23507
661bc682
RB
235082013-02-08 Richard Biener <rguenther@suse.de>
23509
23510 * cfgloop.c (verify_loop_structure): Properly handle
23511 a loop exiting to another loop header.
23512 * ira-int.h (ira_loops): Remove.
23513 * ira.c (ira_loops): Remove.
23514 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
23515 (do_reload): Use loop_optimizer_finalize.
23516 * ira-build.c (create_loop_tree_nodes): Use get_loops and
23517 number_of_loops to access the loop tree.
23518 (more_one_region_p): Likewise.
23519 (finish_loop_tree_nodes): Likewise.
23520 (rebuild_regno_allocno_maps): Likewise.
23521 (mark_loops_for_removal): Likewise.
23522 (mark_all_loops_for_removal): Likewise.
23523 (remove_unnecessary_regions): Likewise.
23524 (ira_build): Likewise.
23525 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
23526
0d5049b2
RB
235272013-02-08 Richard Biener <rguenther@suse.de>
23528
23529 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
23530 * ipa-pure-const.c (analyze_function): Avoid calling
23531 mark_irreducible_loops twice.
8e10366f 23532 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 23533
499f32e8
DM
235342013-02-07 David S. Miller <davem@davemloft.net>
23535
23536 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
23537 on 'reg'.
23538 * var-tracking.c (vt_add_function_parameter): Test the presence of
23539 HAVE_window_save properly and do not remap argument registers when
23540 we have a leaf function.
23541
6edc3e32
UB
235422013-02-07 Uros Bizjak <ubizjak@gmail.com>
23543
23544 PR bootstrap/56227
23545 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
23546 instead of "ll".
23547 * config/i386/i386.c (ix86_print_operand): Ditto.
23548
5306401f
VM
235492013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23550
6edc3e32 23551 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 23552
027ece11
VM
235532013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23554
23555 PR rtl-optimization/56225
23556 * lra-constraints.c (process_alt_operands): Check that reload hard
23557 reg can hold value for strict_low_part.
23558
f980dfdb
JJ
235592013-02-07 Jakub Jelinek <jakub@redhat.com>
23560
23561 PR debug/56154
23562 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
23563 dwarf2out_end_function.
23564 (in_first_function_p, maybe_at_text_label_p,
23565 first_loclabel_num_not_at_text_label): New variables.
23566 (dwarf2out_var_location): In the first function find out
6edc3e32 23567 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
23568 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
23569 functions.
23570
73dd3123
EB
235712013-02-07 Eric Botcazou <ebotcazou@adacore.com>
23572
23573 PR rtl-optimization/56178
23574 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
23575 SUBREG of a register. Tidy up related block of code.
23576 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
23577 note if the source is a register or a SUBREG of a register.
23578
e3936f47
JJ
235792013-02-07 Jakub Jelinek <jakub@redhat.com>
23580
23581 PR target/56228
23582 * config/rs6000/rs6000.md (ptrm): New mode attr.
23583 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
23584 call_value_indirect_aix<pttrsize>,
23585 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
23586 m in constraints.
23587
d96d674b
MH
235882013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23589
23590 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
23591 if -bnortl. Convert to strcmp and strncmp.
23592
921f2dee
AM
235932013-02-07 Alan Modra <amodra@gmail.com>
23594
23595 PR target/54009
23596 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
23597 addresses won't wrap when offsetting.
23598 (rs6000_secondary_reload): Provide secondary reloads needed for
23599 wrapping LO_SUM addresses.
23600
d09c7dba
TS
236012013-02-06 Thomas Schwinge <thomas@codesourcery.com>
23602
23603 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
23604 MACH, just __MACH__.
23605
a44bbd48
RB
236062013-02-06 Richard Biener <rguenther@suse.de>
23607
23608 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
23609 instead of calling fix_loop_structure.
23610
6d840d99
JJ
236112013-02-06 Jakub Jelinek <jakub@redhat.com>
23612
23613 PR middle-end/56217
23614 * omp-low.c (use_pointer_for_field): Return false if
23615 lower_send_shared_vars doesn't generate any copy-out code.
23616
0f33baa9
TV
236172013-02-06 Tom de Vries <tom@codesourcery.com>
23618
23619 PR rtl-optimization/56131
23620 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
23621 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
23622 of the label is NULL. Add comment.
23623
11f1e3ab
JJ
236242013-02-05 Jakub Jelinek <jakub@redhat.com>
23625
31502f9f
JJ
23626 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
23627
a74db9bd
JJ
23628 PR sanitizer/55374
23629 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
23630 (STATIC_LIBTSAN_LIBS): Likewise.
23631 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
23632 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
23633 is defined, don't add anything else beyond that.
23634 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
23635 (LINK_COMMAND_SPEC): Use them.
23636
11f1e3ab
JJ
23637 PR tree-optimization/56205
23638 * tree-stdarg.c (check_all_va_list_escapes): Return true if
23639 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
23640 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
23641
14ac6aa2
RB
236422013-02-05 Richard Biener <rguenther@suse.de>
23643
23644 PR tree-optimization/53342
23645 PR tree-optimization/53185
23646 * tree-vectorizer.h (vect_check_strided_load): Remove.
23647 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
23648 not disallow peeling for vectorized strided loads.
23649 (vect_check_strided_load): Make static and simplify.
23650 (vect_analyze_data_refs): Adjust.
23651 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
23652 correctly when vectorizing strided loads.
23653
6f22445a
RB
236542013-02-05 Richard Biener <rguenther@suse.de>
23655
23656 * doc/install.texi: Refer to ISL, not PPL.
23657
39f9719e
JH
236582013-02-05 Jan Hubicka <jh@suse.cz>
23659
ec4224ac
JH
23660 PR tree-optimization/55789
23661 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
23662
236632013-02-05 Jan Hubicka <jh@suse.cz>
23664
23665 PR tree-optimization/55789
39f9719e
JH
23666 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
23667 the dead call anyway.
23668
956d3b33
EB
236692013-02-05 Eric Botcazou <ebotcazou@adacore.com>
23670
23671 PR sanitizer/55374
23672 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
23673
236742013-02-04 Alexander Potapenko <glider@google.com>
23675 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
23676 Jakub Jelinek <jakub@redhat.com>
23677
23678 PR sanitizer/55617
23679 * config/darwin.c (sort_ctor_records): Stabilized qsort
23680 on constructor priority by using original position.
23681 (finalize_ctors): New routine to sort constructors by
23682 priority before use in assemble_integer.
23683 (machopic_asm_out_constructor): Use finalize_ctors if needed.
23684
7ac3af38
JJ
236852013-02-04 Jakub Jelinek <jakub@redhat.com>
23686
23687 PR libstdc++/54314
23688 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
23689 about visibility on artificial decls.
23690 * config/sol2.c (solaris_assemble_visibility): Likewise.
23691
152689dc
KT
236922013-02-04 Kai Tietz <ktietz@redhat.com>
23693
23694 PR target/56186
23695 * config/i386/i386.c (function_value_ms_64): Add additional valtype
23696 argument and improve checking of return-argument types for 16-byte
23697 modes.
23698 (ix86_function_value_1): Add additional valtype argument on call
23699 of function_value_64.
23700 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
23701 handling infunction_value_64 function.
23702
2b5987b5
MGD
237032013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
23704
7ac3af38 23705 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 23706
14597080
RB
237072013-02-04 Richard Biener <rguenther@suse.de>
23708
23709 PR tree-optimization/56188
23710 * tree-ssa-structalias.c (label_visit): Consider case with
23711 initially non-empty points-to set.
23712 (perform_var_substitution): Dump node mapping and clean up.
23713
ed73881e
RG
237142013-02-04 Richard Guenther <rguenther@suse.de>
23715
23716 PR lto/56168
23717 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
23718 node prevail as last resort.
23719 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 23720 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 23721
139a0707
RB
237222013-02-04 Richard Biener <rguenther@suse.de>
23723
23724 PR tree-optimization/56113
23725 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
23726 Merge into ...
23727 (equiv_class_lookup_or_add): ... this.
23728 (label_visit): Adjust and fix error in previous patch.
23729 (perform_var_substitution): Adjust.
23730
50fe8924
OE
237312013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
23732
23733 * config/sh/divtab.c: Fix formatting and comments throughout the file.
23734 * config/sh/sh4-300.md: Likewise.
23735 * config/sh/sh4a.md: Likewise.
23736 * config/sh/constraints.md: Likewise.
23737 * config/sh/sh.md: Likewise.
23738 * config/sh/netbsd-elf.h: Likewise.
23739 * config/sh/predicates.md: Likewise.
23740 * config/sh/sh-protos.h: Likewise.
23741 * config/sh/ushmedia.h: Likewise.
23742 * config/sh/linux.h: Likewise.
23743 * config/sh/sh.c: Likewise.
23744 * config/sh/superh.h: Likewise.
23745 * config/sh/elf.h: Likewise.
23746 * config/sh/sh4.md: Likewise.
23747 * config/sh/sh.h: Likewise.
23748
1a04ac2b
JDA
237492013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23750
23751 * config/pa/constraints.md: Adjust unused letters. Change "T"
23752 constraint to match_test floating_point_store_memory_operand().
23753 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
23754 (base14_operand): New.
23755 (floating_point_store_memory_operand): New.
23756 (integer_store_memory_operand): Revise to use base14_operand and
23757 reg_plus_base_memory_operand.
23758 (move_dest_operand): Allow symbolic_memory_operands.
23759 (symbolic_memory_operand): Check for LO_SOM.
23760 (symbolic_operand): Change default case to break.
23761 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
23762 CONST_DOUBLE values to be reloaded by putting them into memory when
23763 the destination is a floating point register.
23764 (movdf): Remove code to handle CONST_DOUBLE.
23765 (movsf): Likewise.
23766 (reload_indf_r1): New.
23767 (reload_insf_r1): New.
23768 Consistently use "Q" and "T" constraints with integer and floating
23769 point move instructions, respectively.
23770 (movdi): Remove FAIL.
23771 Change predicate for source operand unamed DImode move from
23772 general_operand to move_src_operand.
23773 (umulsidi3): Change predicate for destination operand to
23774 register_operand.
23775 Likewise for similar unamed patterns.
23776 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
23777 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
23778 (hppa_legitimize_address): Simplify mask calculation.
23779 (pa_emit_move_sequence): Revised handling of secondary reloads from
23780 REG+D addresses for floating point loads and stores. Directly handle
23781 loading CONST0_RTX (mode) to a floating point register.
23782 (pa_secondary_reload): Handle reloading DF and SFmode constant values
23783 to floating point registers. Don't restrict secondary reloads to
23784 floating point registers to integer modes. Revise some comments and
23785 cleanup some code.
23786 (TARGET_LEGITIMATE_ADDRESS_P): Define.
23787 (pa_legitimate_address_p): New.
23788 (pa_legitimize_reload_address): New.
23789 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
23790 (STRICT_REG_OK_FOR_BASE_P): New.
23791 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
23792 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
23793
3bf65591
DE
237942013-02-03 David Edelsohn <dje.gcc@gmail.com>
23795 Andrew Dixie <andrewd@gentrack.com>
23796
23797 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
23798 flag set.
23799
c0a8a3e6
RS
238002013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
23801
23802 * expmed.c (extract_bit_field_1): Pass the full width of the
23803 structure to get_best_reg_extraction_insn.
23804
99113dff
DE
238052013-02-01 David Edelsohn <dje.gcc@gmail.com>
23806
23807 PR target/54601
23808 * configure.ac (use_cxa_atexit): Add AIX.
23809 * configure: Regenerate.
23810
23811 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
23812
ddd84654
JJ
238132013-02-01 Jakub Jelinek <jakub@redhat.com>
23814
23815 PR debug/54793
23816 * final.c (need_profile_function): New variable.
23817 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
23818 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
23819 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
23820 notes, targetm.asm_out.function_prologue doesn't emit anything,
23821 HAVE_prologue and profiler should be emitted before prologue,
23822 set need_profile_function instead of emitting it.
23823 (final_scan_insn): If need_profile_function, emit
23824 profile_function on the first NOTE_INSN_BASIC_BLOCK or
23825 NOTE_INSN_FUNCTION_BEG note.
23826
238272013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
23828
23829 * config/rs6000/rs6000.md (smulditi3): New.
23830 (umulditi3): New.
23831
ff2a9d88
RH
23832 * config/alpha/alpha.md (umulditi3): New.
23833
14d52b90
DE
238342013-02-01 David Edelsohn <dje.gcc@gmail.com>
23835
23836 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
23837 (ASM_OUTPUT_ALIGNED_LOCAL): New.
23838
8c7ca45c
RB
238392013-02-01 Richard Biener <rguenther@suse.de>
23840
23841 PR tree-optimization/56113
23842 * tree-ssa-structalias.c (label_visit): Reduce work for
23843 single-predecessor nodes.
23844
9f419393
EB
238452013-02-01 Eric Botcazou <ebotcazou@adacore.com>
23846
23847 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
23848 range isn't testing for zero.
23849
c5f4be84
SB
238502013-01-31 Steven Bosscher <steven@gcc.gnu.org>
23851
23852 PR middle-end/56113
23853 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
23854
dbdbd982
NC
238552013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
23856 Nick Clifton <nickc@redhat.com>
23857
23858 * config/v850/constraints.md (Q): Define as a memory constraint.
23859 * config/v850/predicates.md (label_ref_operand): New predicate.
23860 (e3v5_shift_operand): New predicate.
23861 (ior_operator): New predicate.
23862 * config/v850/t-v850: Add e3v5 multilib.
23863 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
23864 (v850_gen_movdi): Prototype.
23865 * config/v850/v850.c: Add support for e3v5 architecture.
23866 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
23867 TARGET_V850E_UP.
23868 (construct_save_jarl): Add e3v5 long JARL support.
23869 (v850_adjust_insn_length): New function. Adjust length of call
23870 insns when using e3v5 instructions.
23871 (v850_gen_movdi): New function: Generate instructions to move a
23872 DImode value.
23873 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
23874 (CPP_SPEC): Define __v850e3v5__ as appropriate.
23875 (TARGET_USE_FPU): Enable for e3v5.
23876 (CONST_OK_FOR_W): New macro.
23877 (ADJUST_INSN_LENGTH): Define.
23878 * config/v850/v850.md (UNSPEC_LOOP): Define.
23879 (attr cpu): Add v850e3v5.
23880 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
23881 (movdi): New pattern.
23882 (movdi_internal): New pattern.
23883 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
23884 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
23885 (cstoresf4): Likewise.
23886 (cstoredf4): Likewise.
23887 (insv): New pattern.
23888 (rotlso3_a): New pattern.
23889 (rotlsi3_b): New pattern
23890 (rotlsi3_v850e3v5): New pattern.
23891 (doloop_begin): New pattern.
23892 (fix_loop_counter): New pattern.
23893 (doloop_end): New pattern.
23894 (branch_normal): Add e3v5 long branch support.
23895 (branch_invert): Likewise.
23896 (branch_z_normal): Likewise.
23897 (branch_z_invert): Likewise.
23898 (branch_nz_normal): Likewise.
23899 (branch_nz_invert): Likewise.
23900 (call_internal_short): Add e3v5 register-indirect JARL support.
23901 (call_internal_long): Likewise.
23902 (call_value_internal_short): Likewise.
23903 (call_value_internal_long): Likewise.
23904 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
23905 (mloop): New option.
23906 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 23907 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 23908
73861a41
PK
239092013-01-31 Paul Koning <ni1d@arrl.net>
23910
23911 PR debug/55059
23912 PR debug/54508
23913 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
23914 children if parent is a class.
23915 (prune_unused_types_prune): Don't add DW_AT_declaration.
23916
e44978dc
RB
239172013-01-31 Richard Biener <rguenther@suse.de>
23918
23919 PR tree-optimization/56157
23920 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
23921 match up operand with SLP child.
23922
90b10dec
JM
239232013-01-31 Jason Merrill <jason@redhat.com>
23924
04d2dadd 23925 PR debug/54410
90b10dec
JM
23926 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
23927 parameters the first time.
23928 (gen_scheduled_generic_parms_dies): Check completeness here.
23929
6e616110
RB
239302013-01-31 Richard Biener <rguenther@suse.de>
23931
23932 PR middle-end/53073
23933 * common.opt (faggressive-loop-optimizations): New flag,
23934 enabled by default.
23935 * doc/invoke.texi (faggressive-loop-optimizations): Document.
23936 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
23937 infer_loop_bounds_from_undefined by it.
23938
636f59cf
RB
239392013-01-31 Richard Biener <rguenther@suse.de>
23940
23941 PR tree-optimization/56150
23942 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
23943 visit virtual operands.
23944 (find_uses_to_rename_bb): Likewise.
23945
239462013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
23947
23948 PR tree-optimization/56150
23949 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
23950 mixed store non-store stmts.
23951
32887460
JJ
239522013-01-30 Jakub Jelinek <jakub@redhat.com>
23953
e60e09a0
JJ
23954 PR sanitizer/55374
23955 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
23956 LIBASAN_EARLY_SPEC is defined.
23957 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
23958 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
23959 before %o.
23960 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
23961
32887460
JJ
23962 PR c++/55742
23963 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
23964 invalid args instead of ICEing on it.
23965 (ix86_valid_target_attribute_tree): Return error_mark_node if
23966 ix86_valid_target_attribute_inner_p failed.
23967 (ix86_valid_target_attribute_p): Return false only if
23968 ix86_valid_target_attribute_tree returned error_mark_node. Allow
23969 target("default") attribute.
23970 (sorted_attr_string): Change argument from const char * to tree,
23971 merge in all target attribute arguments rather than just one.
23972 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
23973 instead of free. Avoid using strcat.
23974 (ix86_mangle_function_version_assembler_name): Mangle
23975 target("default") as if no target attribute is present. Adjust
23976 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
23977 instead of xmalloc and XDELETEVEC instead of free.
23978 (ix86_function_versions): Don't return true if one of the decls
23979 doesn't have target attribute. If they don't and one of the decls
23980 is DECL_FUNCTION_VERSIONED, report an error. Adjust
23981 sorted_attr_string caller. Use XDELETEVEC instead of free.
23982 (ix86_supports_function_versions): Remove.
23983 (make_name): Fix up formatting.
23984 (make_dispatcher_decl): Remove resolver_name and its initialization.
23985 Avoid leaking memory.
23986 (is_function_default_version): Return true if there is
23987 target("default") attribute rather than no target attribute at all.
23988 (make_resolver_func): Avoid leaking memory.
23989 (ix86_generate_version_dispatcher_body): Likewise.
23990 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
23991 * target.def (supports_function_versions): Remove.
23992 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
23993 * doc/tm.texi: Regenerated.
23994
73cca0cc
VM
239952013-01-30 Vladimir Makarov <vmakarov@redhat.com>
23996
23997 PR rtl-optimization/56144
23998 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
23999 for values with side effects.
24000
11452e7b
RB
240012013-01-30 Richard Biener <rguenther@suse.de>
24002
24003 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
24004 (sparseset_pop): Likewise.
24005 * cfganal.c (compute_idf): Likewise. Increase work-stack size
24006 to be able to use quick_push in the worker loop.
24007
01cb1ef5
MP
240082013-01-30 Marek Polacek <polacek@redhat.com>
24009
24010 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
24011
e892936e
RB
240122013-01-30 Richard Biener <rguenther@suse.de>
24013
24014 PR lto/56147
6edc3e32 24015 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 24016
cc06c01d
GJL
240172013-01-30 Georg-Johann Lay <avr@gjlay.de>
24018
24019 PR tree-optimization/56064
24020 * fixed-value.c (fixed_from_double_int): New function.
24021 * fixed-value.h (fixed_from_double_int): New prototype.
24022 (const_fixed_from_double_int): New static inline function.
24023 * fold-const.c (native_interpret_fixed): New static function.
24024 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
24025 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
24026 (native_encode_fixed): New static function.
24027 (native_encode_expr) <FIXED_CST>: Use it.
24028 (native_interpret_int): Move double_int worker code to...
24029 * double-int.c (double_int::from_buffer): ...this new static method.
24030 * double-int.h (double_int::from_buffer): Prototype it.
24031
d394a308
RB
240322013-01-30 Richard Biener <rguenther@suse.de>
24033
24034 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
24035 New pointer-map and obstack.
24036 (init_alias_vars): Allocate pointer-map and obstack.
24037 (delete_points_to_sets): Free them.
24038 (find_what_var_points_to): Cache result.
24039 (find_what_p_points_to): Adjust for changed interface of
24040 find_what_var_points_to.
24041 (compute_points_to_sets): Likewise.
24042 (ipa_pta_execute): Likewise.
24043
20804d96
RO
240442013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24045
24046 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
24047 * configure: Regenerate.
24048 * config.in: Regenerate.
24049 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
24050 #nobits/#progbits if supported.
24051
a7ad88a2
OE
240522013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
24053
24054 PR target/56121
24055 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
24056 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
24057 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
24058
7af79f92
GY
240592013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24060
91bfca59
OE
24061 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
24062 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 24063
753bcf7b
GY
240642013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24065
91bfca59
OE
24066 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
24067 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 24068
8cbc2ea8
GY
240692013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24070
91bfca59
OE
24071 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
24072 declaration.
24073 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
24074 * config/arm/cortex-a7.md: New bypasses using
24075 arm_mac_accumulator_is_result.
8cbc2ea8 24076
697a3325
GY
240772013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24078
91bfca59 24079 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 24080 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
24081 (cortex_a7_fpfmad): New reservation.
24082 (cortex_a7_fpmacs): Use ffmas and update required units.
24083 (cortex_a7_fpmuld): Update required units and latency.
24084 (cortex_a7_fpmacd): Likewise.
24085 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
24086 (cortex_a7_neon). Likewise.
24087 (bypass) Update participating units.
697a3325 24088
29637783
GY
240892013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24090
91bfca59
OE
24091 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
24092 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
24093 from fmac to ffma.
24094 * config/arm/vfp11.md (vfp_farith): Use ffmas.
24095 (vfp_fmul): Use ffmad.
24096 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
24097 (cortex_r4_fmacd): Use ffmad.
24098 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
24099 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
24100 (cortex_a9_fmacd): Use ffmad.
24101 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
24102 (cortex_a8_vfp_macd): Use ffmad.
24103 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
24104 (cortex_a5_fpmacd): Use ffmad.
24105 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
24106 (cortex_a15_vfp_macd): Use ffmad.
24107 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 24108
2ee8a2d5
JM
241092013-01-29 Jason Merrill <jason@redhat.com>
24110
24111 PR libstdc++/54314
24112 * varasm.c (default_assemble_visibility): Don't warn about
24113 visibility on artificial decls.
24114
78d087bc
RB
241152013-01-29 Richard Biener <rguenther@suse.de>
24116
24117 PR tree-optimization/56113
24118 * tree-ssa-structalias.c (equiv_class_lookup): Also return
24119 the bitmap leader.
24120 (label_visit): Free duplicate bitmaps and record the leader instead.
24121 (perform_var_substitution): Adjust.
24122
83ba4d6f
RB
241232013-01-29 Richard Biener <rguenther@suse.de>
24124
24125 PR tree-optimization/55270
24126 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
24127 the CFG, schedule loops for fixup.
24128
66dfe13f
NC
241292013-01-29 Nick Clifton <nickc@redhat.com>
24130
24131 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
24132 SP_REG.
24133
5a579c3b
LE
241342013-01-28 Leif Ekblad <leif@rdos.net>
24135
24136 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
24137 * config/i386/i386.h (TARGET_RDOS): New macro.
24138 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
24139 * config/i386/i386.c (ix86_option_override_internal): For 64bit
24140 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
24141 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
24142 DEFAULT_LARGE_SECTION_THRESHOLD.
24143 * config/i386/i386.md (R14_REG, R15_REG): New constants.
24144 * config/i386/rdos.h: New file.
24145 * config/i386/rdos64.h: New file.
24146
51e44392
BS
241472013-01-28 Bernd Schmidt <bernds@codesourcery.com>
24148
24149 PR other/54814
24150 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
24151 TEST_HARD_REG_BIT.
24152
db1fb332
JJ
241532013-01-28 Jakub Jelinek <jakub@redhat.com>
24154
24155 PR rtl-optimization/56117
24156 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
24157 call cselib_lookup_from_insn on the MEM before calling
24158 add_insn_mem_dependence.
24159
16917761
RB
241602013-01-28 Richard Biener <rguenther@suse.de>
24161
24162 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
24163 to a stmt that didn't have one.
24164 (copy_phis_for_bb): Likewise for PHI arguments.
24165 (copy_debug_stmt): Likewise for debug stmts.
24166
b9fc0497
RB
241672013-01-28 Richard Biener <rguenther@suse.de>
24168
24169 PR tree-optimization/56034
6edc3e32 24170 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
24171 (partition_builtin_p): Adjust.
24172 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
24173 it is the last partition.
24174 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
24175 up the vertex for the definition.
24176 (classify_partition): Classify whether a partition is a
24177 PKIND_REDUCTION, thus has uses outside of the loop.
24178 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
24179 Merge all PKIND_REDUCTION partitions into the last partition.
24180 (tree_loop_distribution): Seed partitions from reductions as well.
24181
aa710d25
JJ
241822013-01-28 Jakub Jelinek <jakub@redhat.com>
24183
0bfbca58
JJ
24184 PR tree-optimization/56125
24185 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
24186 pow(x,c) into sqrt(x) * powi(x, n/2) or
24187 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
24188 optimizing for size.
24189 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
24190 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
24191 integer.
24192
aa710d25
JJ
24193 PR tree-optimization/56094
24194 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
24195 to UNKNOWN_LOCATION while gimplifying expr.
24196
77dc5297
UB
241972013-01-27 Uros Bizjak <ubizjak@gmail.com>
24198
24199 PR target/56114
24200 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
24201 operand 0 in movabs insn template for -masm=intel asm alternative.
24202 (*movabs<mode>_2): Ditto for operand 1.
24203
0bfbca58 242042013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
24205
24206 PR target/54663
24207 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
24208 of microblaze-c.o
24209
0bfbca58 242102013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
24211
24212 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
24213 tm_file.
24214
0bfbca58 242152013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
24216
24217 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
24218 Undef to avoid warning.
24219
478f60f9
MH
242202013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24221
24222 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
24223 * configure: Regenerate.
24224
d7fa6ee2
JJ
242252013-01-25 Jakub Jelinek <jakub@redhat.com>
24226
24227 PR tree-optimization/56098
24228 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
24229 for stmts with volatile ops.
24230 (cond_store_replacement): Don't optimize if assign has volatile ops.
24231 (cond_if_else_store_replacement_1): Don't optimize if either
24232 then_assign or else_assign have volatile ops.
24233 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
24234 volatile ops.
24235
f8fe87bd
GJL
242362013-01-25 Georg-Johann Lay <avr@gjlay.de>
24237
24238 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
24239
28398d0d
GJL
242402013-01-25 Georg-Johann Lay <avr@gjlay.de>
24241
24242 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
24243 missing ':' in asm example.
24244
b7d7d917
TB
242452013-01-25 Tejas Belagod <tejas.belagod@arm.com>
24246
24247 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
24248 entries into lane and laneq entries.
77dc5297
UB
24249 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
24250 Remove AdvSIMD scalar modes.
b7d7d917
TB
24251 (aarch64_sq<r>dmulh_laneq<mode>): New.
24252 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
24253 modes.
24254 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
24255 builtin implementations to relfect changes in RTL in aarch64-simd.md.
24256 * config/aarch64/iterators.md (VCOND): New.
24257 (VCONQ): New.
24258
556f9906
GJL
242592013-01-25 Georg-Johann Lay <avr@gjlay.de>
24260
24261 PR target/54222
24262 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
24263 Add NULL LIBNAME argument to existing definitions.
24264 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
24265 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
24266 * config/avr/avr.c (DEF_BUILTIN): Same.
24267 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
24268 (avr_expand_builtin): Expand to a vanilla call if a libgcc
24269 implementation is available (DECL_ASSEMBLER_NAME is set).
24270 (avr_fold_absfx): New static function.
24271 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
24272 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
24273 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
24274 AVR_BUILTIN_ABSLLK.
24275 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
24276 (abshk, absk, abslk, absllk): Provide as static inline functions.
24277
1f546bbb
MP
242782013-01-25 Marek Polacek <polacek@redhat.com>
24279
24280 PR tree-optimization/56035
24281 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
24282
7e184bd7
UB
242832012-01-24 Uros Bizjak <ubizjak@gmail.com>
24284
24285 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
24286 (*movtf_internal_rex64): Add (!o,C) alternative
24287 (*movxf_internal_rex64): Ditto.
24288 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
24289
f5ba49ac
SM
242902013-01-24 Shenghou Ma <minux.ma@gmail.com>
24291
24292 * doc/invoke.texi: fix typo.
24293 * doc/objc.texi: fix typo.
24294
a6343728
RS
242952013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
24296
24297 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
24298 for the first two alternatives.
24299
cd030c07
DN
243002013-01-24 Diego Novillo <dnovillo@google.com>
24301
77dc5297 24302 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
24303 (ggc-zone.o): Remove.
24304 * configure.ac: Remove option --with-gc.
24305 * configure: Re-generate.
24306 * doc/install.texi: Remove documentation for --with-gc.
24307 * gengtype.c (write_enum_defn): Remove. Update all users.
24308 (write_Types_process_field): Remove generation of gt_e_* argument.
24309 (output_type_enum): Remove. Update all users.
24310 (write_enum_defn): Remove. Update all users.
24311 (enum alloc_zone): Remove. Update all users.
77dc5297 24312 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
24313 * ggc-common.c (ggc_splay_alloc): Remove first argument.
24314 Update all callers.
24315 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 24316 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
24317 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
24318 Update all users.
aaf1e810 24319 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
24320 (struct alloc_zone): Remove.
24321 (ggc_internal_alloc_zone_stat): Remove.
24322 (ggc_internal_cleared_alloc_zone_stat): Remove.
24323 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
24324 (ggc_pch_count_object): Remove last argument. Update all users.
24325 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
24326 (struct alloc_zone): Remove.
24327 * ggc-zone.c: Remove.
77dc5297 24328 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
24329 (struct alloc_zone): Remove.
24330 (ggc_alloc_typed_stat): Remove.
24331 (ggc_alloc_typed): Remove.
24332 (ggc_splay_alloc): Remove first argument.
24333 (rtl_zone): Remove. Update all users.
24334 (tree_zone): Remove. Update all users.
24335 (tree_id_zone): Remove. Update all users.
24336 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 24337 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 24338 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 24339 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 24340
a861ffa4
GJL
243412013-01-24 Georg-Johann Lay <avr@gjlay.de>
24342
24343 * config/avr/avr.c (avr_out_fract): Make register numbers that
24344 might be outside of source operand signed.
24345
593c0ddd
UB
243462013-01-24 Uros Bizjak <ubizjak@gmail.com>
24347
24348 * config/i386/constraints.md (Yf): New constraint.
24349 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
24350 of f constraint to conditionaly disable x87 register preferences.
24351 (*movdf_internal): Ditto.
24352 (*movsf_internal): Ditto.
24353
e86c0101
SB
243542013-01-24 Steven Bosscher <steven@gcc.gnu.org>
24355
24356 PR inline-asm/55934
24357 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
24358 that have operands with impossible constraints.
24359 Add a FIXME for a speed-up opportunity.
24360 * lra-constraints.c (process_alt_operands): Verify that a class
24361 selected from constraints on asms is valid for the operand mode.
24362 (curr_insn_transform): Remove incorrect comment.
24363
f6fee35f
DE
243642013-01-23 David Edelsohn <dje.gcc@gmail.com>
24365
24366 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
24367 TOC operand is a valid symbol ref in the constant pool.
24368
243692013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 24370
aaf1e810 24371 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 24372
dc62d7d1
GJL
243732013-01-23 Georg-Johann Lay <avr@gjlay.de>
24374
24375 PR target/54222
24376 * config/avr/stdfix.h: New file.
24377 * t-avr (stdfix-gcc.h): New rule to build it.
24378 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
24379
2660d12d
KS
243802013-01-23 Kostya Serebryany <kcc@google.com>
24381
77dc5297
UB
24382 * config/darwin.h: remove dependency on
24383 CoreFoundation (asan on Mac OS).
2660d12d 24384
a70418fc
JJ
243852013-01-23 Jakub Jelinek <jakub@redhat.com>
24386
24387 PR target/49069
24388 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
24389 instead of cmpdi_operand for first comparison operand.
24390 Don't assert that comparison operands aren't both constants.
24391
47876a2a
JW
243922013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
24393
24394 * doc/install.texi (Downloading the Source): Update references to
24395 downloading separate components.
24396
243972013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
24398
24399 * doc/extend.texi (__int128): Improve grammar.
24400
47876a2a 244012013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
24402
24403 PR target/56028
24404 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
24405 alternative to (o,r).
24406 (*movdi_internal_rex64): Remove (!o,n) alternative.
24407 (DImode immediate->memory splitter): Remove.
24408 (DImode immediate->memory peephole2): Remove.
24409 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
24410 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
24411 alternative to (!o,*r).
24412 (*movtf_internal_sse): New pattern.
24413 (*movxf_internal_rex64): New pattern.
24414 (*movxf_internal): Disable for TARGET_64BIT.
24415 (*movdf_internal_rex64): Remove (!o,F) alternative.
24416
3a984f10
JJ
244172013-01-22 Jakub Jelinek <jakub@redhat.com>
24418
502498d5
JJ
24419 PR middle-end/56074
24420 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
24421 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
24422 * tree-vect-loop-manip.c (find_loop_location): Also ignore
24423 stmt locations where LOCATION_LOCUS of the stmt location is
24424 UNKNOWN_LOCATION or BUILTINS_LOCATION.
24425
3a984f10
JJ
24426 PR target/55686
24427 * config/i386/i386.md (UNSPEC_STOS): New.
24428 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
24429 *strsetqi_1): Add UNSPEC_STOS.
24430
fa817f7f
PC
244312013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
24432
24433 PR c++/56067
24434 * doc/invoke.texi: Remove left over -Wsynth example.
24435
8f498c1b
JJ
244362013-01-21 Jakub Jelinek <jakub@redhat.com>
24437
24438 PR tree-optimization/56051
24439 * fold-const.c (fold_binary_loc): Don't fold
24440 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
24441 a narrowing conversion, or widening conversion from signed
24442 to unsigned.
24443
47876a2a 244442013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
24445
24446 PR rtl-optimization/56023
24447 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
24448 dependent on debug instruction.
24449
5b9db1bc
MJ
244502013-01-21 Martin Jambor <mjambor@suse.cz>
24451
24452 PR middle-end/56022
24453 * function.c (allocate_struct_function): Call
24454 invoke_set_current_function_hook earlier.
24455
e8bb7d68
JJ
244562013-01-21 Jakub Jelinek <jakub@redhat.com>
24457
24458 * reload1.c (init_reload): Only initialize reload_obstack
24459 during the first call.
24460
616a4e32
MP
244612013-01-21 Marek Polacek <polacek@redhat.com>
24462
24463 * cfgloop.c (verify_loop_structure): Fix up grammar.
24464
4401981b
YHH
244652013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
24466
24467 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
24468 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
24469
8e87740b
RR
244702013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24471
24472 PR target/56058
24473 * config/arm/marvell-pj4.md: Update copyright year.
24474 Fix up use of alu to alu_reg and simple_alu_imm.
24475
47876a2a 244762013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
24477
24478 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
24479
89d56d79
VM
244802013-01-20 Vladimir Makarov <vmakarov@redhat.com>
24481
24482 PR target/55433
24483 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 24484 insn for secondary memory move when memory mode should be different.
89d56d79 24485
fe603553
JDA
244862013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24487
24488 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
24489 atomic_storedi_1): New patterns.
24490
01284895
VK
244912013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24492
24493 btver2 pipeline descriptions.
24494 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
24495 descriptions.
24496 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 24497 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
24498 type attributes.
24499 * config/i386/btver2.md: New file describing btver2 pipelines.
24500
5630e3e1
JL
245012013-01-19 Andrew Pinski <apinski@cavium.com>
24502
24503 PR tree-optimization/52631
24504 * tree-ssa-sccvn (visit_use): Before looking up the original
24505 statement, try looking up the simplified expression.
24506
650ae806
AG
245072013-01-19 Anthony Green <green@moxielogic.com>
24508
24509 * config/moxie/moxie.c (moxie_expand_prologue): Set
24510 current_function_static_stack_size.
24511
e300ec2d
JJ
245122013-01-18 Jakub Jelinek <jakub@redhat.com>
24513
24514 PR tree-optimization/56029
24515 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
24516 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
24517
a3d7af04
SS
245182013-01-18 Sharad Singhai <singhai@google.com>
24519
24520 PR tree-optimization/55995
24521 * dumpfile.c (dump_loc): Print location only if available.
24522 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
24523
66aa7879
VM
245242013-01-18 Vladimir Makarov <vmakarov@redhat.com>
24525
24526 PR target/55433
24527 * lra-constraints.c (curr_insn_transform): Reuse original insn for
24528 secondary memory move.
24529 (inherit_reload_reg): Use rclass instead of cl for
24530 check_secondary_memory_needed_p.
24531
3f0fee7b
JJ
245322013-01-18 Jakub Jelinek <jakub@redhat.com>
24533
24534 PR middle-end/56015
24535 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 24536 the case where writing real complex part of target modifies op1.
3f0fee7b 24537
70c67693
JG
245382013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
24539
24540 * config/aarch64/aarch64-simd.md
24541 (aarch64_vcond_internal<mode>): Handle unordered cases.
24542 * config/aarch64/iterators.md (v_cmp_result): New.
24543
df8de9b3
YHH
245442013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
24545 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24546
24547 * config/arm/marvell-pj4.md: New file.
24548 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
24549 * config/arm/arm.md (generic_sched): Add marvell_pj4.
24550 (generic_vfp): Likewise.
24551 * config/arm/arm-cores.def: Add marvell-pj4.
24552 * config/arm/arm-tune.md: Regenerate.
24553 * config/arm/arm-tables.opt: Regenerate.
24554 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
24555 * doc/invoke.texi: Document marvell-pj4.
24556
be30c356
TB
245572013-01-18 Tejas Belagod <tejas.belagod@arm.com>
24558
24559 * config/aarch64/arm_neon.h: Map scalar types to standard types.
24560
0bfbca58 245612013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
24562
24563 PR debug/54114
24564 PR debug/54402
24565 PR debug/49888
24566 * var-tracking.c (negative_power_of_two_p): New.
24567 (global_get_addr_cache, local_get_addr_cache): New.
24568 (get_addr_from_global_cache, get_addr_from_local_cache): New.
24569 (vt_canonicalize_addr): Rewrite using the above. Adjust the
24570 heading comment.
24571 (vt_stack_offset_p): Remove.
24572 (vt_canon_true_dep): Always canonicalize loc's address.
24573 (clobber_overlapping_mems): Make sure we have a MEM.
24574 (local_get_addr_clear_given_value): New.
24575 (val_reset): Clear local cached entries.
24576 (compute_bb_dataflow): Create and release the local cache.
24577 Disable duplicate MEMs clobbering.
24578 (emit_notes_in_bb): Clobber MEMs likewise.
24579 (vt_emit_notes): Create and release the local cache.
24580 (vt_initialize, vt_finalize): Create and release the global
24581 cache, respectively.
1f6bc337 24582 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 24583
0bfbca58 245842013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
24585
24586 PR libmudflap/53359
24587 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
24588 not found in the symtab.
24589
0bfbca58 245902013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 24591
c350ba53 24592 PR debug/56006
3aa03517
AO
24593 PR rtl-optimization/55547
24594 PR rtl-optimization/53827
24595 PR debug/53671
24596 PR debug/49888
24597 * alias.c (offset_overlap_p): New, factored out of...
24598 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
24599 the conservative special case for symbolic constants. Don't
24600 adjust zero sizes on alignment.
24601
c664546f
JL
246022013-01-18 Bernd Schmidt <bernds@codesourcery.com>
24603
24604 PR rtl-optimization/52573
24605 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
24606 REG_UNUSED for the same register.
24607
1bd3f750
MP
246082013-01-17 Richard Biener <rguenther@suse.de>
24609 Marek Polacek <polacek@redhat.com>
24610
24611 PR rtl-optimization/55833
24612 * loop-unswitch.c (unswitch_loops): Move loop verification...
24613 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
24614 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
24615 Set it to true when we're removing a loop from hierarchy tree in
24616 an irreducible region.
24617 (fix_bb_placements): Adjust caller.
24618 (fix_loop_placements): Likewise.
24619
e52a8b71
GJL
246202013-01-17 Georg-Johann Lay <avr@gjlay.de>
24621
24622 * config/avr/builtins.def (DEF_BUILTIN): Factor out
24623 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
24624 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
24625 Remove ID. Adjust comments.
24626 * config/avr/avr-c.c (avr_builtin_name): Remove.
24627 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
24628 * config/avr/avr.c (avr_tolower): New static function.
24629 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
24630 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
24631 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
24632 default expansion.
24633
8386a7ea
JH
246342013-01-17 Jan Hubicka <jh@suse.cz>
24635
610fb637 24636 PR tree-optimization/55273
8386a7ea
JH
24637 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
24638
47876a2a 246392013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
24640
24641 PR target/55981
24642 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
24643 store through atomic_store<mode>_1.
24644 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
24645
8222c37e
MJ
246462013-01-17 Martin Jambor <mjambor@suse.cz>
24647
24648 PR tree-optimizations/55264
24649 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
24650 for virtual methods.
24651 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
24652 virtual methods before inlining is over.
24653 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
24654 virtual functions.
24655 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
24656 non-virtual.
24657
79f01c76
VM
246582013-01-16 Vladimir Makarov <vmakarov@redhat.com>
24659
24660 PR rtl-optimization/56005
24661 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
24662 pending reads for prefetch.
24663
d0b6bb1b
IB
246642013-01-16 Ian Bolton <ian.bolton@arm.com>
24665
aaf1e810 24666 * config/aarch64/aarch64.md
d0b6bb1b
IB
24667 (*cstoresi_neg_uxtw): New pattern.
24668 (*cmovsi_insn_uxtw): New pattern.
24669 (*<optab>si3_uxtw): New pattern.
24670 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
24671 (*<optab>si3_insn_uxtw): New pattern.
24672 (*bswapsi2_uxtw): New pattern.
24673
cb9cf03b
RB
246742013-01-16 Richard Biener <rguenther@suse.de>
24675
24676 * tree-inline.c (tree_function_versioning): Remove set but
24677 never used variable.
24678
2cfc56b9
RB
246792013-01-16 Richard Biener <rguenther@suse.de>
24680
24681 PR tree-optimization/55964
24682 * tree-flow.h (rename_variables_in_loop): Remove.
24683 (rename_variables_in_bb): Likewise.
24684 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
24685 (copy_loop_before): Adjust and delete update-ssa status.
24686 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 24687 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
24688 (rename_variables_in_loop): Remove.
24689 (slpeel_update_phis_for_duplicate_loop): Likewise.
24690 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
24691 use available cfg machinery instead of duplicating it.
24692 Update PHI nodes and perform poor-mans SSA update here.
24693 (slpeel_tree_peel_loop_to_edge): Adjust.
24694
c25a0c60
RB
246952013-01-16 Richard Biener <rguenther@suse.de>
24696
24697 PR tree-optimization/54767
24698 PR tree-optimization/53465
24699 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
24700 (vrp_visit_phi_node): For PHI arguments coming via backedges
24701 drop all symbolical range information.
24702 (execute_vrp): Compute backedges.
24703
04b535af
RB
247042013-01-16 Richard Biener <rguenther@suse.de>
24705
24706 * doc/install.texi: Update CLooG and ISL requirements to
24707 0.18.0 and 0.11.1.
24708
8b0a1e0b
CB
247092013-01-16 Christian Bruel <christian.bruel@st.com>
24710
24711 PR target/55301
24712 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
24713 (broken_move): Handle UNSPECV_SP_SWITCH_B.
24714 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
24715
247162013-01-16 DJ Delorie <dj@redhat.com>
24717
24718 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
24719 (UNSPECV_SP_SWITCH_E): New.
24720 (sp_switch_1): Change to an unspec.
24721 (sp_switch_2): Change to an unspec. Don't use post-inc when we
24722 replace $r15.
24723
247242013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
24725
24726 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
24727 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
24728 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
24729 (expand_mem_thread_fence): Ditto.
24730 (expand_mem_signal_fence): Ditto.
24731 (expand_atomic_load): Ditto.
24732 (expand_atomic_store): Ditto.
24733
0bfbca58 247342013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
24735
24736 PR rtl-optimization/55547
24737 PR rtl-optimization/53827
24738 PR debug/53671
24739 PR debug/49888
24740 * alias.c (memrefs_conflict_p): Set sizes to negative after
24741 AND adjustments.
24742
305e3ac1
JJ
247432013-01-15 Jakub Jelinek <jakub@redhat.com>
24744
24745 PR target/55940
24746 * function.c (thread_prologue_and_epilogue_insns): Always
24747 add crtl->drap_reg to set_up_by_prologue.set, even if
24748 stack_realign_drap is false.
24749
f78ac4f2
JBG
247502013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24751
24752 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
24753 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
24754 *call): Fix indention.
24755
a78a8cc4
TV
247562013-01-15 Tom de Vries <tom@codesourcery.com>
24757
24758 PR target/55876
24759 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
24760 Update comment.
24761
0e80383f
VM
247622013-01-15 Vladimir Makarov <vmakarov@redhat.com>
24763
305e3ac1 24764 PR rtl-optimization/55153
0e80383f
VM
24765 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
24766
207b5956
MJ
247672013-01-15 Martin Jambor <mjambor@suse.cz>
24768
24769 PR tree-optimization/55920
24770 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
24771 accesses as grp_to_be_debug_replaced.
24772
a7818b54
JJ
247732013-01-15 Jakub Jelinek <jakub@redhat.com>
24774
24775 PR tree-optimization/55920
24776 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
24777 there is non-useless type conversion needed from debug rhs to lhs,
24778 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
24779
b0fe107e
JM
247802013-01-15 Joseph Myers <joseph@codesourcery.com>
24781 Mikael Pettersson <mikpe@it.uu.se>
24782
24783 PR target/43961
24784 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
24785 Thumb.
24786 (ASM_OUTPUT_CASE_LABEL): Remove.
24787 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
24788 * final.c (shorten_branches): Update alignment of labels before
24789 jump tables if CASE_VECTOR_SHORTEN_MODE.
24790
34ab62ee
RB
247912013-01-15 Richard Biener <rguenther@suse.de>
24792
24793 PR bootstrap/55961
24794 * system.h: Do not include gmp.h for building host tools.
24795
783a3a05
RB
247962013-01-15 Richard Biener <rguenther@suse.de>
24797
24798 PR middle-end/55882
24799 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
24800 account for bitpos when computing alignment.
24801
3a579e09
VY
248022013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
24803
24804 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
24805 (ix86_target_macros_internal): Likewise.
24806
24807 * config/i386/i386.c (m_CORE2I7): Removed.
24808 (m_CORE_HASWELL): New macro.
24809 (m_CORE_ALL): Likewise.
24810 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
24811 (initial_ix86_arch_features): Likewise.
24812 (processor_target_table): Initializations for Core avx2.
24813 (cpu_names): New names "core-avx2".
24814 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
24815 PROCESSOR_CORE_HASWELL.
24816 (ix86_issue_rate): New case.
24817 (ia32_multipass_dfa_lookahead): Likewise.
24818 (ix86_sched_init_global): Likewise.
24819
24820 * config/i386/i386.h (TARGET_HASWELL): New macro.
24821 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
24822 (processor_type): New PROCESSOR_HASWELL.
24823
955f5a07
JJ
248242013-01-15 Jakub Jelinek <jakub@redhat.com>
24825
ff784829
JJ
24826 PR tree-optimization/55955
24827 * tree-vect-loop.c (vectorizable_reduction): Give up early on
24828 *SHIFT_EXPR and *ROTATE_EXPR codes.
24829
955f5a07
JJ
24830 PR tree-optimization/48766
24831 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
24832 -ftrapv disable -fwrapv.
24833
aeb8b4e9
GJL
248342013-01-14 Georg-Johann Lay <avr@gjlay.de>
24835
24836 PR target/55974
24837 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
24838 etc. to 1 and not to __flash.
24839 Use LL suffix for __INT24_MAX__ with -mint8.
24840 Use ULL suffix for __UINT24_MAX__ with -mint8.
24841
1c494c6a
GJL
248422013-01-14 Georg-Johann Lay <avr@gjlay.de>
24843
24844 * config/avr/avr-arch.h
24845 (struct base_arch_s): Use typedef avr_arch_t instead.
24846 (struct arch_info_s): Use typedef avr_arch_info_t instead.
24847 (struct mcu_type_s): Use typedef avr_mcu_t instead.
24848 * config/avr/avr.c: Same.
24849 * config/avr/avr-devices.c: Same.
24850 * config/avr/driver-avr.c: Same.
24851 * config/avr/gen-avr-mmcu-texi.c: Same.
24852 * config/avr/avr-mcus.def: Adjust comment.
24853
a50344cb
TB
248542013-01-14 Tejas Belagod <tejas.belagod@arm.com>
24855
88e784e6
UB
24856 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
24857 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 24858
47876a2a 248592013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
24860 Andi Kleen <ak@linux.intel.com>
24861
24862 PR target/55948
24863 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
24864 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
24865 memmodel flag.
24866
00892272
GJL
248672013-01-14 Georg-Johann Lay <avr@gjlay.de>
24868
24869 * config/avr/avr-stdint.h: Remove trailing blanks.
24870 * config/avr/avr-log.h: Same.
24871 * config/avr/avr-arch.h: Same.
24872 * config/avr/avr-devices.c: Same.
24873 * config/avr/avr-dimode.md: Same.
24874 * config/avr/predicates.md: Same.
24875 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 24876
00892272
GJL
24877 * config/avr/avr-protos.h: Same. And:
24878 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
24879 (init_cumulative_args): Rename to avr_init_cumulative_args.
24880 (expand_prologue): Rename to avr_expand_prologue.
24881 (expand_epilogue): Rename to avr_expand_epilogue.
24882 (adjust_insn_length): Rename to avr_adjust_insn_length.
24883 (notice_update_cc): Rename to avr_notice_update_cc.
24884 (final_prescan_insn): Rename to avr_final_prescan_insn.
24885 * config/avr/avr.c: Same.
24886 * config/avr/avr.h: Same.
24887 * config/avr/avr.md: Remove trailing blanks.
24888 (prologue): Use avr_expand_prologue.
24889 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
24890
7bb01996
RB
248912013-01-14 Richard Biener <rguenther@suse.de>
24892
24893 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
24894 verify_location, collect_subblocks): New functions.
24895 (verify_gimple_in_cfg): Verify that locations only reference
24896 BLOCKs in the functions BLOCK tree.
24897
2724573f
RB
248982013-01-14 Richard Biener <rguenther@suse.de>
24899
24900 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
24901 PHI argument.
24902 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
24903 unshare reference.
24904 (insert_out_of_ssa_copy_on_edge): Likewise.
24905 (rewrite_close_phi_out_of_ssa): Likewise.
24906 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
24907 debug expressions.
24908 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
24909 propagated constants.
24910 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
24911 can not be shared.
24912
9a0bbab6
GJL
249132013-01-14 Georg-Johann Lay <avr@gjlay.de>
24914
24915 * config/avr/avr-modes.def: Add GPL copyright notice.
24916
45805f17
UB
249172013-01-13 Uros Bizjak <ubizjak@gmail.com>
24918
24919 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
24920 MEMMODEL_MASK to determine memory model.
24921 (atomic_store<mode>): Ditto from operands[2].
24922 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
24923
9d60be38
JJ
249242013-01-13 Jakub Jelinek <jakub@redhat.com>
24925
24926 PR fortran/55935
45805f17 24927 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
24928 (fold_gimple_assign): Don't call unshare_expr here.
24929 (fold_ctor_reference): Call unshare_expr.
24930
e7f49d92
TG
249312013-01-13 Terry Guo <terry.guo@arm.com>
24932
aaf1e810
EB
24933 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
24934 * doc/fragments.texi: Document MULTILIB_REUSE.
24935 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 24936 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 24937 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
24938 (tmpmultilib4): Ditto.
24939 (multilib_reuse): New multilib argument.
24940
fbd03a27
RS
249412013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
24942
24943 * Makefile.in: Update copyright.
24944
b3681f13
TV
249452013-01-12 Tom de Vries <tom@codesourcery.com>
24946
24947 PR middle-end/55890
24948 * calls.c (expand_call): Check if arg_nr is valid.
24949
3f287e4b
MM
249502013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
24951
24952 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
24953 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
24954 documentation. Add missing '__' in front of
24955 __builtin_ia32_packssdw256.
3f287e4b 24956
1abcd5eb
AK
249572013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24958
24959 PR target/55719
24960 * config/s390/s390.c (s390_preferred_reload_class): Do not return
24961 NO_REGS for larl operands.
24962 (s390_reload_larl_operand): Use s390_load_address instead of
24963 emit_move_insn.
24964
980d0812
RB
249652013-01-11 Richard Biener <rguenther@suse.de>
24966
24967 * tree-cfg.c (verify_node_sharing_1): Split out from ...
24968 (verify_node_sharing): ... here.
24969 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
24970
7cb9fd07
EB
249712013-01-11 Eric Botcazou <ebotcazou@adacore.com>
24972
24973 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
24974 Substitute TREECHECKING.
24975 * configure: Regenerate.
24976 * Makefile.in (TREECHECKING): New.
24977
47876a2a 249782013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
24979
24980 PR tree-optimization/44061
24981 * tree-vrp.c (extract_range_basic): Compute zero as
24982 value-range for __builtin_constant_p of function parameters.
24983
d1e082c2
RS
249842013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
24985
45805f17 24986 Update copyright years.
d1e082c2 24987
f85021b0
VM
249882013-01-10 Vladimir Makarov <vmakarov@redhat.com>
24989
9d60be38 24990 PR rtl-optimization/55672
0160442c
VM
24991 * lra-eliminations.c (mark_not_eliminable): Permit addition with
24992 const to be eliminable.
f85021b0 24993
7a8b1ec4
DE
249942013-01-10 David Edelsohn <dje.gcc@gmail.com>
24995
24996 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
24997 * configure: Regenerate.
24998
ad2e5b71
RB
249992013-01-10 Richard Biener <rguenther@suse.de>
25000
ddf9322d 25001 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 25002
ffc5b2bb
RB
250032013-01-10 Richard Biener <rguenther@suse.de>
25004
25005 PR bootstrap/55792
25006 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
25007 locations for virtual PHI arguments.
25008 (rewrite_update_phi_arguments): Likewise.
25009
e1f674e4
JS
250102013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
25011
25012 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
25013 on to assembler.
25014
a57fc743
JJ
250152013-01-10 Jakub Jelinek <jakub@redhat.com>
25016
25017 PR tree-optimization/55921
25018 * tree-complex.c (expand_complex_asm): New function.
25019 (expand_complex_operations_1): Call it for GIMPLE_ASM.
25020
0ff4390d
AK
250212013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25022
25023 PR target/55718
25024 * config/s390/s390.c (s390_symref_operand_p)
25025 (s390_loadrelative_operand_p): Merge the two functions.
25026 (s390_check_qrst_address, print_operand_address): Add parameters
25027 to s390_loadrelative_operand_p invokation.
25028 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
25029 (s390_reload_larl_operand, s390_secondary_reload): Use
25030 s390_loadrelative_operand_p instead of s390_symref_operand_p.
25031 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
25032
6f557e0e
MS
250332013-01-09 Mike Stump <mikestump@comcast.net>
25034
25035 * dse.c (record_store): Remove unnecessary assert.
25036
7770c9e9
JH
250372013-01-09 Jan Hubicka <jh@suse.cz>
25038
25039 PR tree-optimization/55569
25040 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
25041 * cfgloop.h (scale_loop_profile): Likewise.
25042
a19b1432
JH
250432013-01-09 Jan Hubicka <jh@suse.cz>
25044
25045 PR lto/45375
ddf9322d
UB
25046 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
25047 functions.
a19b1432
JH
25048 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
25049
9a002da8
RS
250502013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
25051
25052 PR middle-end/55114
25053 * expr.h (maybe_emit_group_store): Declare.
25054 * expr.c (maybe_emit_group_store): New function.
25055 * builtins.c (expand_builtin_int_roundingfn): Call it.
25056 (expand_builtin_int_roundingfn_2): Likewise.
25057
511dcace
VM
250582013-01-09 Vladimir Makarov <vmakarov@redhat.com>
25059
e1f2b729 25060 PR rtl-optimization/55829
511dcace
VM
25061 * lra-constraints.c (match_reload): Add code for absent output.
25062 (curr_insn_transform): Add code for reloads of matched inputs
25063 without output.
25064
7b0fe4f4
UB
250652013-01-09 Uros Bizjak <ubizjak@gmail.com>
25066
25067 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
25068 attribute of movddup insn to DF.
25069 (*vec_interleave_lowv2df): Ditto.
25070 (vec_dupv2df): Ditto.
25071
870ca331
JH
250722013-01-09 Jan Hubicka <jh@suse.cz>
25073
25074 PR tree-optimiation/55875
25075 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
25076 EVERY_ITERATION parameter.
7b0fe4f4 25077 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
25078 (idx_infer_loop_bounds): Similarly here.
25079 (n_of_executions_at_most): Simplify
25080 to only test for cases where statement is dominated by the
7b0fe4f4 25081 particular bound; handle correctly the "postdominance" test.
870ca331
JH
25082 (scev_probably_wraps_p): Use max loop iterations info
25083 as a global bound first.
25084
6f575fe4 250852013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
25086 Nick Clifton <nickc@redhat.com>
25087
25088 * config/v850/v850.md (cbranchsf4): New pattern.
25089 (cstoresf4): New pattern.
25090 (cbranchdf4): New pattern.
25091 (cstoredf4): New pattern.
25092 (movsicc): Disallow floating point comparisons.
25093 (cmpsf_le_insn): Fix order of operators.
25094 (cmpsf_lt_insn): Likewise.
25095 (cmpsf_eq_insn): Likewise.
25096 (cmpdf_le_insn): Likewise.
25097 (cmpdf_lt_insn): Likewise.
25098 (cmpdf_eq_insn): Likewise.
25099 (cmpsf_ge_insn): Use LE comparison.
25100 (cmpdf_ge_insn): Likewise.
25101 (cmpsf_gt_insn): Use LT comparison.
25102 (cmpdf_gt_insn): Likewise.
25103 (cmpsf_ne_insn): Delete pattern.
25104 (cmpdf_ne_insn): Delete pattern.
25105 * config/v850/v850.c (v850_gen_float_compare): Use
25106 gen_cmpdf_eq_insn for NE comparison.
25107 (v850_float_z_comparison_operator)
25108 (v850_float_nz_comparison_operator): Move from here ...
25109 * config/v850/predicates.md: ... to here. Move GT and GE
25110 comparisons into v850_float_z_comparison_operator.
25111 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
25112 Delete prototype.
25113 (v850_float_nz_comparison_operator): Likewise.
25114
f0d54148
JDA
251152013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25116
25117 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
25118 with calls to gen_insvsi/gen_insvdi.
25119
8f01beca
VK
251202013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25121
25122 * config/i386/i386.c (initial_ix86_tune_features): Set up
25123 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
25124
2aa579ad
JJ
251252013-01-09 Steven Bosscher <steven@gcc.gnu.org>
25126 Jakub Jelinek <jakub@redhat.com>
25127
25128 PR tree-optimization/48189
25129 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
25130 If nitercst is 0, don't predict the exit edge.
25131
6edc3e32 251322013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
25133
25134 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
25135 in asm_fprintf with reg_names.
25136 (aarch64_print_operand_address): Likewise.
25137 (aarch64_return_addr): Likewise.
25138 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
25139
f6f94d94
JDA
251402013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25141
25142 * config/pa/pa.h (VAL_U6_BITS_P): Define.
25143 (INT_U6_BITS): Likewise.
25144 * config/pa/predicates.md (uint6_operand): New predicate.
25145 (shift5_operand, shift6_operand): Likewise.
25146 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
25147 arith32_operand.
25148 (lshrdi3): Use shift6_operand.
25149 (shrpsi4, shrpdi4): New insn patterns.
25150 (extzv): Delete expander.
25151 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
25152 predicates in unamed zero extract patterns. Tighten common constraint.
25153 (extv): Delete expander.
25154 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
25155 predicates in unamed sign extract patterns. Tighten common constraint.
25156 (insv): Delete expander.
25157 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
25158 predicates in unamed insert patterns. Tighten common constraint.
25159 Change uint32_operand predicate to uint6_operand predicate in unamed
25160 DImode pattern to insert constant values of type 1...1xxxx.
25161
36b72910
JH
251622013-01-04 Jan Hubicka <jh@suse.cz>
25163
25164 PR tree-optimization/55823
7b0fe4f4
UB
25165 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
25166 issue.
36b72910 25167
47876a2a 251682013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
25169 Uros Bizjak <ubizjak@gmail.com>
25170
25171 PR rtl-optimization/55845
25172 * df-problems.c (can_move_insns_across): Stop scanning at
25173 volatile_insn_p source instruction or give up if
25174 across_from .. across_to range contains any volatile_insn_p
25175 instructions.
25176
4369c11e
TB
251772013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25178
7b0fe4f4
UB
25179 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
25180 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
25181 Declare.
4369c11e 25182 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 25183 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 25184
aeb7e7c1
JJ
251852013-01-08 Jakub Jelinek <jakub@redhat.com>
25186
25187 PR fortran/55341
25188 * asan.c (asan_clear_shadow): New function.
25189 (asan_emit_stack_protection): Use it.
25190
a02ad1aa
TB
251912013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25192
25193 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
25194 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
25195 with tab instead of space.
25196
f90d87f5
NC
251972013-01-08 Nick Clifton <nickc@redhat.com>
25198
25199 * config/rl78/rl78.c (rl78_expand_prologue): Always select
25200 register bank 0 at the start of an interrupt handler.
83ffd964
NC
25201 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
25202 MDBH registers.
f90d87f5 25203
385eb93d
JG
252042013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25205
25206 * config/aarch64/aarch64-simd.md
25207 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
25208 (aarch64_simd_bsl): Likewise.
25209 (aarch64_vcond_internal<mode>): Likewise.
25210 (vcond<mode><mode>): Likewise.
25211 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
25212 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
25213
4dcd1054
JG
252142013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25215
25216 * config/aarch64/aarch64-builtins.c
25217 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
25218
4267a4a6
MJ
252192013-01-08 Martin Jambor <mjambor@suse.cz>
25220
25221 PR debug/55579
25222 * tree-sra.c (analyze_access_subtree): Return true also after
25223 potentially creating a debug-only replacement.
25224
5f4e6de3
JJ
252252013-01-08 Jakub Jelinek <jakub@redhat.com>
25226
3138f224
JJ
25227 PR middle-end/55890
25228 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
25229
5f4e6de3
JJ
25230 PR tree-optimization/54120
25231 * tree-vrp.c (range_fits_type_p): Don't allow
25232 src_precision < precision from signed vr to unsigned_p
25233 if vr->min or vr->max is negative.
25234 (simplify_float_conversion_using_ranges): Test can_float_p
25235 against CODE_FOR_nothing.
25236
f3ef18ff
JJ
252372013-01-08 Jakub Jelinek <jakub@redhat.com>
25238 Richard Biener <rguenther@suse.de>
25239
25240 PR middle-end/55851
25241 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
25242 types instead of just INTEGER_TYPE types.
25243
25c210f9
MK
252442013-01-07 Mark Kettenis <kettenis@openbsd.org>
25245
25246 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
25247 TF_SIZE): Define.
f90d87f5 25248
81826a7b
SE
252492013-01-07 Steve Ellcey <sellcey@mips.com>
25250
25251 PR target/42661
25252 * config/mips/mips.opt: Change mad to mmad to match documentation.
25253
35678514
GJL
252542013-01-07 Georg-Johann Lay <avr@gjlay.de>
25255
25256 PR target/55897
25257 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
25258 .progmemx.data now.
25259
e5669488
GJL
252602013-01-07 Georg-Johann Lay <avr@gjlay.de>
25261
25262 PR target/55897
25263 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
25264 (avr_addrspace_t): Add .section_name field.
25265 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
25266 array size.
25267 (avr_addrspace): Same. Initialize .section_name. Remove last
25268 NULL entry. Put __memx into .progmemx.data.
25269 (progmem_section_prefix): Remove.
25270 (avr_asm_init_sections): No need to initialize progmem_section.
25271 (avr_asm_named_section): Use avr_addrspace[].section_name to get
25272 section name prefix.
25273 (avr_asm_select_section): Ditto. And use get_unnamed_section to
25274 retrieve the progmem section.
25275 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
25276 boundary to run over avr_addrspace[].
25277 (avr_register_target_pragmas): Ditto.
25278
656e6f37
JJ
252792013-01-06 Jakub Jelinek <jakub@redhat.com>
25280
25281 * varasm.c (output_constant_def_contents): For asan_protect_global
25282 protected strings, adjust DECL_ALIGN if needed, before testing for
25283 anchored symbols.
25284 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
25285 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
25286 normal decls.
25287 (output_object_block): For asan protected decls, emit asan padding
25288 after their contents.
25289 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
25290 (asan_finish_file): Test it here instead.
25291
6edc3e32
UB
252922013-01-07 Nick Clifton <nickc@redhat.com>
25293 Matthias Klose <doko@debian.org>
25294 Doug Kwan <dougkwan@google.com>
25295 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
25296
25297 PR driver/55470
25298 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
25299
25300 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
25301
25302 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
25303
7b0fe4f4 25304 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
25305
25306 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
25307
2a095093
GJL
253082013-01-07 Georg-Johann Lay <avr@gjlay.de>
25309
f3b503f4 25310 PR target/54461
2a095093
GJL
25311 * doc/install.texi (Cross-Compiler-Specific Options): Document
25312 --with-avrlibc.
25313
383f9b34
TB
253142013-01-07 Tejas Belagod <tejas.belagod@arm.com>
25315
25316 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
25317 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
25318 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
25319 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
25320 vqmovun_high_s64): Fix source operand number and update copyright.
25321
3626621a
RB
253222013-01-07 Richard Biener <rguenther@suse.de>
25323
25324 PR middle-end/55890
25325 * gimple.h (gimple_call_builtin_p): New overload.
25326 * gimple.c (validate_call): New function.
25327 (gimple_call_builtin_p): Likewise.
25328 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25329 Use gimple_call_builtin_p.
25330 (find_func_clobbers): Likewise.
25331 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
25332 (strlen_optimize_stmt): Likewise.
25333
8b2ea410
JG
253342013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25335
25336 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
25337 (vld1q_dup_*): Likewise.
25338 (vld1_*): Likewise.
25339 (vld1q_*): Likewise.
25340 (vld1_lane_*): Likewise.
25341 (vld1q_lane_*): Likewise.
25342
9713d329
RB
253432013-01-07 Richard Biener <rguenther@suse.de>
25344
25345 * lto-streamer.h (LTO_minor_version): Bump to 2.
25346
3520f7cc
JG
253472013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25348
25349 * config/aarch64/aarch64-protos.h
25350 (aarch64_const_double_zero_rtx_p): Rename to...
25351 (aarch64_float_const_zero_rtx_p): ...this.
25352 (aarch64_float_const_representable_p): New.
25353 (aarch64_output_simd_mov_immediate): Likewise.
25354 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
25355 move immediate case.
25356 * config/aarch64/aarch64.c
25357 (aarch64_const_double_zero_rtx_p): Rename to...
25358 (aarch64_float_const_zero_rtx_p): ...this.
25359 (aarch64_print_operand): Allow printing of new constants.
25360 (aarch64_valid_floating_const): New.
25361 (aarch64_legitimate_constant_p): Check for valid floating-point
25362 constants.
25363 (aarch64_simd_valid_immediate): Likewise.
25364 (aarch64_vect_float_const_representable_p): New.
25365 (aarch64_float_const_representable_p): Likewise.
25366 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
25367 (aarch64_output_simd_mov_immediate): New.
25368 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
25369 (*movdf_aarch64): Likewise.
25370 * config/aarch64/constraints.md (Ufc): New.
25371 (Y): call aarch64_float_const_zero_rtx.
25372 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
25373
e167c04d
RB
253742013-01-07 Richard Biener <rguenther@suse.de>
25375
25376 PR tree-optimization/55888
25377 PR tree-optimization/55862
25378 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
25379 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
25380 not if it is contained therein.
25381
0139aaab
GJL
253822013-01-07 Georg-Johann Lay <avr@gjlay.de>
25383
25384 * config/avr/t-avr: Typo.
25385
4a176b23
GJL
253862013-01-07 Georg-Johann Lay <avr@gjlay.de>
25387
25388 PR55243
25389 * config/avr/t-avr: Don't automatically rebuild
25390 $(srcdir)/config/avr/t-multilib
25391 $(srcdir)/config/avr/avr-tables.opt
25392 $(srcdir)/doc/avr-mmcu.texi
25393 (avr-mcus): New phony target to build them on request.
25394 (s-avr-mlib, s-avr-mmcu-texi): Remove.
25395 * avr/avr-mcus.def: Adjust comments.
25396
c7afdc98
UB
253972013-01-07 Uros Bizjak <ubizjak@gmail.com>
25398
25399 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
25400
1ab05c31
RS
254012013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25402
25403 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
25404
488e3acc
RS
254052013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25406
25407 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
25408
a89599d2
DE
254092013-01-05 David Edelsohn <dje.gcc@gmail.com>
25410
25411 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
25412 to generate profiling.
25413 * config/rs6000/aix64.h (LIB_SPEC): Same.
25414
70f09188
AP
254152013-01-04 Andrew Pinski <apinski@cavium.com>
25416
25417 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
25418 New function.
25419 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
25420
918d445f
UB
254212013-01-04 Uros Bizjak <ubizjak@gmail.com>
25422
25423 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
25424 unconditionally.
25425 (ix86_expand_move): Ditto.
25426 (ix86_zero_extend_to_Pmode): Ditto.
25427 (ix86_expand_call): Ditto.
25428 (ix86_expand_special_args_builtin): Ditto.
25429 (ix86_expand_builtin): Ditto.
25430
361618ec
RB
254312013-01-04 Richard Biener <rguenther@suse.de>
25432
25433 PR tree-optimization/55862
25434 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
25435 translating them through PHI nodes.
25436
87eab554
MJ
254372013-01-04 Martin Jambor <mjambor@suse.cz>
25438
25439 PR tree-optimization/55755
25440 * tree-sra.c (sra_modify_assign): Do not check that an access has no
25441 children when trying to avoid producing a VIEW_CONVERT_EXPR.
25442
33879b9f
MP
254432013-01-04 Marek Polacek <polacek@redhat.com>
25444
25445 PR middle-end/55859
25446 * opts.c (default_options_optimization): Clarify error message.
25447
3068819a
RB
254482013-01-04 Richard Biener <rguenther@suse.de>
25449
25450 PR middle-end/55863
25451 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
25452 reassociation.
25453
0e4ae794
JDA
254542013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25455
25456 PR target/53789
25457 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
25458 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
25459 references.
0e4ae794 25460
65c88cef
RH
254612013-01-03 Richard Henderson <rth@redhat.com>
25462
25463 * config/i386/i386.c (ix86_expand_move): Always assign to op1
25464 after eliminating TLS symbols.
25465
8ac16127
MG
254662013-01-03 Marc Glisse <marc.glisse@inria.fr>
25467
25468 PR bootstrap/50167
25469 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
25470 * graphite-poly.c (debug_gmp_value): Likewise.
25471
bb664f09
UB
254722013-01-03 Uros Bizjak <ubizjak@gmail.com>
25473
25474 PR target/55712
25475 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
25476 selected code model, define __code_mode_small__, __code_model_medium__,
25477 __code_model_large__, __code_model_32__ or __code_model_kernel__.
25478 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
25479 xchg temporary register with %k. Declare temporary register as
25480 early clobbered.
25481 [__x86_64__]: For medium and large code models, preserve %rbx register.
25482
bcf1ef00
RB
254832013-01-03 Richard Biener <rguenther@suse.de>
25484
0506634a 25485 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
25486 (dump_subscript): Adjust.
25487 (finalize_ddr_dependent): Do not dump redundant info.
25488 (analyze_siv_subscript): Adjust.
25489 (subscript_dependence_tester): Likewise.
25490 (compute_affine_dependence): Likewise.
25491
59fd17e3
RB
254922013-01-03 Richard Biener <rguenther@suse.de>
25493
25494 Revert
25495 2013-01-03 Richard Biener <rguenther@suse.de>
25496
25497 PR tree-optimization/55857
25498 * tree-vect-stmts.c (vectorizable_load): Do not setup
25499 re-alignment for invariant loads.
25500
25501 2013-01-02 Richard Biener <rguenther@suse.de>
25502
25503 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25504 invariant load do not generate a vector load from the scalar location.
59fd17e3 25505
595c2679
RB
255062013-01-03 Richard Biener <rguenther@suse.de>
25507
25508 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
25509 for not vectorizing.
25510 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
25511 not build INDIRECT_REFs, call get_name once only.
25512 (vect_create_data_ref_ptr): Likewise. Dump base object kind
25513 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
25514
90bb7d7a
RB
255152013-01-03 Richard Biener <rguenther@suse.de>
25516
25517 PR tree-optimization/55857
25518 * tree-vect-stmts.c (vectorizable_load): Do not setup
25519 re-alignment for invariant loads.
25520
f09b77ca
RB
255212013-01-03 Richard Biener <rguenther@suse.de>
25522
25523 PR lto/55848
25524 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
25525 prefer a built-in decl.
25526
3461a16e
JJ
255272013-01-03 Jakub Jelinek <jakub@redhat.com>
25528
df8e2b4f
JJ
25529 * gcc.c (process_command): Update copyright notice dates.
25530 * gcov.c (print_version): Likewise.
25531 * gcov-dump.c (print_version): Likewise.
25532
3461a16e
JJ
25533 PR rtl-optimization/55838
25534 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
25535 iv0.step, iv1.step and step.
25536
8b5546d6
JJ
255372013-01-03 Jakub Jelinek <jakub@redhat.com>
25538 Marc Glisse <marc.glisse@inria.fr>
25539
25540 PR tree-optimization/55832
25541 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
25542 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
25543 integer_{one,zero}_node.
25544
8ab1d2e9
JJ
255452013-01-03 Jakub Jelinek <jakub@redhat.com>
25546
25547 PR debug/54402
25548 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
25549 * var-tracking.c (reverse_op): Don't add reverse ops to
25550 VALUEs that have already
0506634a 25551 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 25552
5b9ad1d4
GP
255532013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
25554
25555 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
25556
e25a6711
TJ
255572013-01-02 Teresa Johnson <tejohnson@google.com>
25558
25559 * dumpfile.c (dump_loc): Print filename with location.
25560 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
25561 new location_t parameter to emit complete unroll message with
25562 new dump framework.
25563 (canonicalize_loop_induction_variables): Compute loops location
25564 and pass to try_unroll_loop_completely.
25565 * loop-unroll.c (report_unroll_peel): New function.
25566 (peel_loops_completely): Use new dump format with location
25567 for main dumpfile message, and invoke report_unroll_peel on success.
25568 (decide_unrolling_and_peeling): Ditto.
25569 (decide_peel_once_rolling): Remove old dumpfile message subsumed
25570 by report_unroll_peel.
25571 (decide_peel_completely): Ditto.
25572 (decide_unroll_constant_iterations): Ditto.
25573 (decide_unroll_runtime_iterations): Ditto.
25574 (decide_peel_simple): Ditto.
25575 (decide_unroll_stupid): Ditto.
25576 * cfgloop.c (get_loop_location): New function.
25577 * cfgloop.h (get_loop_location): Declare.
25578
77878621
ST
255792013-01-02 Sriraman Tallam <tmsriram@google.com>
25580
25581 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
25582 NULL.
25583
9e65d03e
JDA
255842013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25585
25586 PR middle-end/55198
25587 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
25588 BLKmode objects when EXPAND_MEMORY is specified.
25589
6a7da30f
ST
255902013-01-02 Sriraman Tallam <tmsriram@google.com>
25591
25592 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
25593 in loop predicate.
25594 (fold_builtin_cpu): Do not share cpu model decls across statements.
25595
e78167f2
JM
255962013-01-02 Jason Merrill <jason@redhat.com>
25597
25598 PR c++/55804
25599 * tree.c (build_array_type_1): Revert earlier change.
25600
8c075fb4
YZ
256012013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
25602
25603 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
25604 "cortex-a57".
25605 * config/aarch64/aarch64-tune.md: Re-generate.
25606
0682ed3e
RB
256072013-01-02 Richard Biener <rguenther@suse.de>
25608
25609 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25610 invariant load do not generate a vector load from the scalar location.
0682ed3e 25611
b8f6a302
RB
256122013-01-02 Richard Biener <rguenther@suse.de>
25613
25614 PR bootstrap/55784
25615 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
25616 * configure: Regenerate.
25617
04b80dbb
RS
256182013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25619
25620 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
25621 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
25622 (expand_builtin_int_roundingfn_2): Keep the original target around
25623 for the fallback case.
25624
635b0b0c
RS
256252013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25626
25627 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
25628 to be clear for sign changes.
25629
42d57399
JH
256302013-01-01 Jan Hubicka <jh@suse.cz>
25631
25632 * ipa-inline-analysis.c: Fix formatting.
25633
5bb6669d
JJ
256342013-01-01 Jakub Jelinek <jakub@redhat.com>
25635
25636 PR tree-optimization/55831
25637 * tree-vect-loop.c (get_initial_def_for_induction): Use
25638 gsi_after_labels instead of gsi_start_bb.
ad41bd84 25639\f
86a2db33 25640Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
25641
25642Copying and distribution of this file, with or without modification,
25643are permitted in any medium without royalty provided the copyright
25644notice and this notice are preserved.