]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR libstdc++/58737 (leak in std::regex_match)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
afb4ac68
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): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
12 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
13 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
14 (rcp14<mode>): New.
15 (srcp14<mode>): Ditto.
16 (rsqrt14<mode>): Ditto.
17 (rsqrt14<mode>): Ditto.
18 (avx512f_vmscalef<mode>): Ditto.
19 (avx512f_scalef<mode>): Ditto.
20 (avx512f_getexp<mode>): Ditto.
21 (avx512f_sgetexp<mode>): Ditto.
22 (avx512f_fixupimm<mode>): Ditto.
23 (avx512f_sfixupimm<mode>): Ditto.
24 (avx512f_rndscale<mode>): Ditto.
25 (*avx512er_exp2<mode>): Ditto.
26 (*avx512er_rcp28<mode>): Ditto.
27 (avx512er_rsqrt28<mode>): Ditto.
28 (avx512f_getmant<mode>): Ditto.
29 (avx512f_getmant<mode>): Ditto.
30 (avx512f_rndscale<mode>): Fix formatting.
31
32
2e2206fa
AI
332013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
34 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
35 Sergey Lega <sergey.s.lega@intel.com>
36 Anna Tikhonova <anna.tikhonova@intel.com>
37 Ilya Tocar <ilya.tocar@intel.com>
38 Andrey Turetskiy <andrey.turetskiy@intel.com>
39 Ilya Verbin <ilya.verbin@intel.com>
40 Kirill Yukhin <kirill.yukhin@intel.com>
41 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
42
43 * config/i386/predicates.md (const_8_to_15_operand): New.
44 (const_16_to_31_operand): Ditto.
45 * config/i386/sse.md (V8FI): New.
46 (V16FI): Ditto.
47 (reduc_splus_v8df): Ditto.
48 (reduc_splus_v16sf): Ditto.
49 (avx512f_vextract<shuffletype>32x4_1): Ditto.
50 (vec_extract_hi_<mode>): Ditto.
51 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
52 (vec_set_lo_<mode>): Ditto.
53 (vec_set_hi_<mode>): Ditto.
54 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
55 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
56 (avx512f_pshufd_1): Ditto.
57 (avx512f_broadcast<mode>): Ditto.
58 (avx512f_broadcast<mode>): Ditto.
59 (define_split): Split vec_extract_lo into move.
60 (ssequartermode): Ditto.
61 (ssedoublemode): Extened with wider modes.
62 (vec_extract_lo_<mode>): Ditto.
63
0fe65b75
AI
642013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
65 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
66 Sergey Lega <sergey.s.lega@intel.com>
67 Anna Tikhonova <anna.tikhonova@intel.com>
68 Ilya Tocar <ilya.tocar@intel.com>
69 Andrey Turetskiy <andrey.turetskiy@intel.com>
70 Ilya Verbin <ilya.verbin@intel.com>
71 Kirill Yukhin <kirill.yukhin@intel.com>
72 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
73
74 * config/i386/predicates.md (register_or_constm1_operand): New.
75 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
76 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
77 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
78 UNSPEC_SCATTER_PREFETCH
79 (VI48_512): New.
80 (avx512f_ucmp<mode>3): Ditto.
81 (avx512f_vternlog<mode>): Ditto.
82 (avx512f_align<mode>): Ditto.
83 (<shift_insn><mode>3): Ditto.
84 (avx512f_<rotate>v<mode>): Ditto.
85 (avx512f_<rotate><mode>): Ditto.
86 (avx512f_eq<mode>3): Ditto.
87 (avx512f_eq<mode>3_1): Ditto.
88 (avx512f_gt<mode>3): Ditto.
89 (avx512f_testm<mode>3): Ditto.
90 (avx512f_testnm<mode>3): Ditto.
91 (avx512pf_gatherpf<mode>): Ditto.
92 (*avx512pf_gatherpf<mode>_mask): Ditto.
93 (*avx512pf_gatherpf<mode>): Ditto.
94 (avx512pf_scatterpf<mode>): Ditto.
95 (*avx512pf_scatterpf<mode>_mask): Ditto.
96 (*avx512pf_scatterpf<mode>): Ditto.
97 (avx512f_vec_dup_gpr<mode>): Ditto.
98 (clz<mode>2): Ditto.
99 (conflict<mode>): Ditto.
100 (REDUC_SMINMAX_MODE): Extened with wider modes.
101 (reduc_<code>_<mode>): Ditto.
102 (vlshr<mode>3): Ditto.
103 (vashl<mode>3): Ditto.
104
ab931c71
AI
1052013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
106 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
107 Sergey Lega <sergey.s.lega@intel.com>
108 Anna Tikhonova <anna.tikhonova@intel.com>
109 Ilya Tocar <ilya.tocar@intel.com>
110 Andrey Turetskiy <andrey.turetskiy@intel.com>
111 Ilya Verbin <ilya.verbin@intel.com>
112 Kirill Yukhin <kirill.yukhin@intel.com>
113 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
114
115 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
116 UNSPEC_SCATTER.
117 (VI48F_512): New.
118 (avx512fmaskmode): Ditto.
119 (bcstscalarsuff): Ditto.
120 (avx512f_blendm<mode>): Ditto.
121 (cmp_imm_predicate): Ditto.
122 (avx512f_cmp<mode>3): Ditto.
123 (avx512f_vec_dup<mode>): Ditto.
124 (avx512f_vec_dup_mem<mode>): Ditto.
125 (avx512f_vpermi2var<mode>3): Ditto.
126 (avx512f_vpermt2var<mode>3): Ditto.
127 (vec_init<mode>): Ditto.
128 (avx512f_gathersi<mode>): Ditto.
129 (*avx512f_gathersi<mode>): Ditto.
130 (*avx512f_gathersi<mode>_2): Ditto.
131 (avx512f_gatherdi<mode>): Ditto.
132 (*avx512f_gatherdi<mode>): Ditto.
133 (*avx512f_gatherdi<mode>_2): Ditto.
134 (avx512f_scattersi<mode>): Ditto.
135 (*avx512f_scattersi<mode>): Ditto.
136 (avx512f_scatterdi<mode>): Ditto.
137 (*avx512f_scatterdi<mode>): Ditto.
138 (sseintprefix): Extened with wider modes.
139 (VEC_GATHER_IDXSI): Ditto.
140 (VEC_GATHER_IDXDI): Ditto.
141 (VEC_GATHER_SRCDI): Ditto.
142
c9acb877
MGD
1432013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
144 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
145
146 * config/arm/t-aprofile: New file.
147 * config.gcc: Handle --with-multilib-list option.
148
ecbda484
BS
1492013-10-15 Bernd Schmidt <bernds@codesourcery.com>
150
151 * reload1.c (reloads_unique_chain_p): Ensure that r1 is the input for
152 r2.
153
24f161fd
RB
1542013-10-15 Richard Biener <rguenther@suse.de>
155
156 * tree-loop-distribution.c (build_empty_rdg): Inline into
157 single user.
158 (rdg_flag_vertex): Inline into single user.
159 (rdg_flag_vertex_and_dependent): Likewise.
160 (build_rdg_partition_for_vertex): Remove processed bitmap.
161 (rdg_build_partitions): Simplify.
162
5de989ed
RB
1632013-10-15 Richard Biener <rguenther@suse.de>
164
165 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
166 Restructure forwarding through conversions and copies to
167 avoid performing copy-propagation the wrong way. Adjust
168 recursion invocations.
169 (forward_propagate_addr_expr): Add argument stating if we
170 are recursing from a single-use.
171 (ssa_forward_propagate_and_combine): Adjust.
172
47e0da37
DM
1732013-10-14 David Malcolm <dmalcolm@redhat.com>
174
175 * dumpfile.h (gcc::dump_manager): New class, to hold state
176 relating to dumpfile management.
177 (get_dump_file_name): Remove in favor of method of dump_manager.
178 (dump_initialized_p): Likewise.
179 (dump_start): Likewise.
180 (dump_finish): Likewise.
181 (dump_switch_p): Likewise.
182 (dump_register): Likewise.
183 (get_dump_file_info): Likewise.
184 * context.c (gcc::context::context): Construct the dump_manager
185 instance.
186 * context.h (gcc::context::get_dumps): New.
187 (gcc::context::m_dumps): New.
188 * coverage.c (coverage_init): Port to dump_manager API.
189 * dumpfile.c (extra_dump_files): Convert to field of
190 gcc::dump_manager.
191 (extra_dump_files_in_use): Likewise.
192 (extra_dump_files_alloced): Likewise.
193 (gcc::dump_manager::dump_manager): New.
194 (dump_register): Convert to...
195 (gcc::dump_manager::dump_register): ...method, replacing
196 function-static next_dump with m_next_dump field.
197 (get_dump_file_info): Convert to...
198 (gcc::dump_manager::get_dump_file_info): ...method.
199 (get_dump_file_name): Convert to...
200 (gcc::dump_manager::get_dump_file_name): ...method.
201 (dump_start): Convert to...
202 (gcc::dump_manager::dump_start): ...method.
203 (dump_finish): Convert to...
204 (gcc::dump_manager::dump_finish): ...method.
205 (dump_begin): Replace body with...
206 (gcc::dump_manager::dump_begin): ...new method.
207 (dump_phase_enabled_p): Convert to...
208 (gcc::dump_manager::dump_phase_enabled_p): ...method.
209 (dump_phase_enabled_p): Convert to...
210 (gcc::dump_manager::dump_phase_enabled_p): ...method.
211 (dump_initialized_p): Convert to...
212 (gcc::dump_manager::dump_initialized_p): ...method.
213 (dump_flag_name): Replace body with...
214 (gcc::dump_manager::dump_flag_name): ...new method.
215 (dump_enable_all): Convert to...
216 (gcc::dump_manager::dump_enable_all): ...new method.
217 (opt_info_enable_passes): Convert to...
218 (gcc::dump_manager::opt_info_enable_passes): ...new method.
219 (dump_switch_p_1): Convert to...
220 (gcc::dump_manager::dump_switch_p_1): ...new method.
221 (dump_switch_p): Convert to...
222 (gcc::dump_manager::dump_switch_p): ...new method.
223 (opt_info_switch_p): Port to dump_manager API.
224 (enable_rtl_dump_file): Likewise.
225 * opts-global.c (handle_common_deferred_options): Port to new
226 dump_manager API.
227 * passes.c (pass_manager::finish_optimization_passes): Likewise.
228 (pass_manager::register_one_dump_file): Likewise.
229 (pass_manager::register_pass): Likewise.
230 (pass_init_dump_file): Likewise.
231 (pass_fini_dump_file): Likewise.
232 * statistics.c (statistics_early_init): Likewise.
233
83fd5d11
RB
2342013-10-14 Richard Biener <rguenther@suse.de>
235
236 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
237 iterative_hash_canonical_type, gimple_canonical_type_hash,
238 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
239 gimple_register_canonical_type, print_gimple_types_stats,
240 free_gimple_type_tables): Move to lto/lto.c
241 (gt-gimple.h): Do not include.
242 * gimple.h (gimple_register_canonical_type,
243 print_gimple_types_stats, free_gimple_type_tables): Remove.
244 * Makefile.in (GTFILES): Remove gimple.c.
245
a6dbd0f7
TS
2462013-10-14 Travis Snoozy <quandary@remstate.com>
247
248 PR target/58716
249 * config/msp430/msp430.c (msp430_option_override): Correct thinko
250 scanning for msp430x targets.
251
b5ccb9ed
EB
2522013-10-14 Eric Botcazou <ebotcazou@adacore.com>
253
254 PR bootstrap/58509
255 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
256 (registers_ok_for_ldd_peep): Move around.
257 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
258 * config/sparc/sparc.md (widening peepholes): Use it.
259
fd7e5084
RB
2602013-10-14 Richard Biener <rguenther@suse.de>
261
262 PR middle-end/58712
263 PR middle-end/55358
264 * gimple.c (iterative_hash_canonical_type): Make sure to
265 record the hash into the correct hashtable slot.
266
3246afaa
EB
2672013-10-13 Eric Botcazou <ebotcazou@adacore.com>
268
269 PR rtl-optimization/58662
270 * combine.c (try_combine): Take into account death nodes on I2 when
271 splitting a PARALLEL of two independent SETs. Fix dump message.
272
5d30dc5b
OE
2732013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
274
275 PR target/51244
276 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
277 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
278 * config/sh/t-sh (sh_treg_combine.o): New entry.
279 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
280 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
281 (register_sh_passes): New function. Register sh_treg_combine pass.
282 (sh_option_override): Invoke it.
283 (sh_canonicalize_comparison): Handle op0_preserve_value.
284 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
285 opportunities. Canonicalize branch condition.
286 (nott): Allow only if pseudos can be created for non-SH2A.
287
37d1c5db
L
2882013-10-12 H.J. Lu <hongjiu.lu@intel.com>
289
290 PR target/58690
291 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
292 (ix86_expand_movmem): Replace copy_addr_to_reg with
293 ix86_copy_addr_to_reg.
294 (ix86_expand_setmem): Likewise.
295
b86a70ff
AM
2962013-10-12 Alexander Monakov <amonakov@ispras.ru>
297
298 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
299 provided by ix86_fp_compare_mode instead of CCFPUmode.
300
6e1d5961
JG
3012013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
302
303 * config/aarch64/arm_neon.h
304 (vtbx<1,3>_<psu>8): Fix register constriants.
305
ef3cfba2
JL
3062013-10-11 Jeff Law <law@redhat.com>
307
308 PR tree-optimization/58640
adcfd489
UB
309 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
310 threading paths that cross over two loop entry points.
ef3cfba2 311
6e8b7d9c
BS
3122013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
313
314 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
315 handle vector float as well.
316 (*vsx_le_perm_load_v4si): Likewise.
317 (*vsx_le_perm_store_v2di): Likewise.
318 (*vsx_le_perm_store_v4si): Likewise.
319
f200869a
BS
3202013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
321
322 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
323 directly to circumvent subtract from splat{31} workaround.
324 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
325 prototype.
326 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
327 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
328 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
329 (altivec_vperm_<mode>): Convert to define_insn_and_split to
330 separate big and little endian logic.
331 (*altivec_vperm_<mode>_internal): New define_insn.
332 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
333 separate big and little endian logic.
334 (*altivec_vperm_<mode>_uns_internal): New define_insn.
335 (vec_permv16qi): Add little endian logic.
336
8d28e3fc
MG
3372013-10-11 Marc Glisse <marc.glisse@inria.fr>
338
339 * doc/extend.texi (returns_nonnull): Remove arguments.
340
3c87b77b
AI
3412013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
342 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
343 Sergey Lega <sergey.s.lega@intel.com>
344 Anna Tikhonova <anna.tikhonova@intel.com>
345 Ilya Tocar <ilya.tocar@intel.com>
346 Andrey Turetskiy <andrey.turetskiy@intel.com>
347 Ilya Verbin <ilya.verbin@intel.com>
348 Kirill Yukhin <kirill.yukhin@intel.com>
349 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
350
351 * config/i386/sse.md (VI48F_256_512): New.
352 (avx2_permvar<mode>): Change to ...
353 (<avx2_avx512f>_permvar<mode>): This.
354
50e60d7d
AI
3552013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
356 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
357 Sergey Lega <sergey.s.lega@intel.com>
358 Anna Tikhonova <anna.tikhonova@intel.com>
359 Ilya Tocar <ilya.tocar@intel.com>
360 Andrey Turetskiy <andrey.turetskiy@intel.com>
361 Ilya Verbin <ilya.verbin@intel.com>
362 Kirill Yukhin <kirill.yukhin@intel.com>
363 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
364
365 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
366 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
367 * config/i386/sse.md (VI4_AVX): New.
368 (sf2simodelower): Ditto.
369 (sse2_cvtps2dq): Change to ...
370 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
371
f62ce24f
AI
3722013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
373 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
374 Sergey Lega <sergey.s.lega@intel.com>
375 Anna Tikhonova <anna.tikhonova@intel.com>
376 Ilya Tocar <ilya.tocar@intel.com>
377 Andrey Turetskiy <andrey.turetskiy@intel.com>
378 Ilya Verbin <ilya.verbin@intel.com>
379 Kirill Yukhin <kirill.yukhin@intel.com>
380 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
381
382 * config/i386/sse.md (V_512): New.
383 (VI_512): Ditto.
384 (vcond<V_512:mode><VF_512:mode>): Ditto.
385 (vcond<V_512:mode><VI_512:mode>): Ditto.
386 (vcondu<V_512:mode><VI_512:mode>): Ditto.
387
558d9f79
AI
3882013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
389 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
390 Sergey Lega <sergey.s.lega@intel.com>
391 Anna Tikhonova <anna.tikhonova@intel.com>
392 Ilya Tocar <ilya.tocar@intel.com>
393 Andrey Turetskiy <andrey.turetskiy@intel.com>
394 Ilya Verbin <ilya.verbin@intel.com>
395 Kirill Yukhin <kirill.yukhin@intel.com>
396 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
397
398 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
399 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
400 (FMAMODE): Ditto.
401 (fma<mode>4): Removed condition.
402 (fms<mode>4): Ditto.
403 (fnma<mode>4): Ditto.
404 (fnms<mode>4): Ditto.
405 (fma4i_fmadd_<mode>): Ditto.
406 (*fma_fmadd_<mode>): Ditto.
407 (*fma_fmsub_<mode>): Ditto.
408 (*fma_fnmadd_<mode>): Ditto.
409 (*fma_fnmsub_<mode>): Ditto.
410 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
411 (*fma_fmaddsub_<mode>): Ditto.
412 (*fma_fmsubadd_<mode>): Ditto.
413 (*fmai_fmadd_<mode>): Ditto.
414 (*fmai_fmsub_<mode>): Ditto.
415 (*fmai_fnmadd_<mode>): Ditto.
416 (*fmai_fnmsub_<mode>): Ditto.
417
e8d08206
AI
4182013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
419 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
420 Sergey Lega <sergey.s.lega@intel.com>
421 Anna Tikhonova <anna.tikhonova@intel.com>
422 Ilya Tocar <ilya.tocar@intel.com>
423 Andrey Turetskiy <andrey.turetskiy@intel.com>
424 Ilya Verbin <ilya.verbin@intel.com>
425 Kirill Yukhin <kirill.yukhin@intel.com>
426 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
427
428 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
429 (VI124_256): Changed to ...
430 (VI124_256_48_512): This.
431 (ssepackmode): Extended with wider modes.
432 (<code><mode>3): Changed iterator.
433 (*avx2_<code><mode>3): Ditto.
434 (vec_pack_trunc_<mode>): Ditto.
435
16821545
AI
4362013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
437 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
438 Sergey Lega <sergey.s.lega@intel.com>
439 Anna Tikhonova <anna.tikhonova@intel.com>
440 Ilya Tocar <ilya.tocar@intel.com>
441 Andrey Turetskiy <andrey.turetskiy@intel.com>
442 Ilya Verbin <ilya.verbin@intel.com>
443 Kirill Yukhin <kirill.yukhin@intel.com>
444 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
445
446 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
447 (VI8F_256_512): Ditto.
448 (abs<mode>2): Changed iterator.
449 (avx2_perm<mode>): Changed to ...
450 (<avx2_avx512f>_perm<mode>): This.
451 (avx2_perm<mode>_1): Changed to ...
452 (<avx2_avx512f>_perm<mode>_1): This.
453
5348cff8
AI
4542013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
455 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
456 Sergey Lega <sergey.s.lega@intel.com>
457 Anna Tikhonova <anna.tikhonova@intel.com>
458 Ilya Tocar <ilya.tocar@intel.com>
459 Andrey Turetskiy <andrey.turetskiy@intel.com>
460 Ilya Verbin <ilya.verbin@intel.com>
461 Kirill Yukhin <kirill.yukhin@intel.com>
462 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
463
464 * config/i386/sse.md (VI48_AVX512F): New.
465 (VI48_AVX2): Changed to ...
466 (VI48_AVX2_48_AVX512F): This.
467 (avx2_ashrv<mode>): Changed to ...
468 (<avx2_avx512f>_ashrv<mode>): This.
469 (avx2_<shift_insn>v<mode>): Changed to ...
470 (<avx2_avx512f>_<shift_insn>v<mode>): This.
471
f5f41d88
AI
4722013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
473 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
474 Sergey Lega <sergey.s.lega@intel.com>
475 Anna Tikhonova <anna.tikhonova@intel.com>
476 Ilya Tocar <ilya.tocar@intel.com>
477 Andrey Turetskiy <andrey.turetskiy@intel.com>
478 Ilya Verbin <ilya.verbin@intel.com>
479 Kirill Yukhin <kirill.yukhin@intel.com>
480 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
481
482 * config/i386/sse.md (VI4_AVX512F): New.
483 (VI8_AVX2_AVX512F): Ditto.
484 (mul<mode>3): Extended with wider modes.
485 (*<sse4_1_avx2>_mul<mode>3): Ditto.
486 (mul<mode>3): Ditto.
487 (vec_widen_<s>mult_odd_<mode>): Ditto.
488
3bdf6340
AI
4892013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
490 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
491 Sergey Lega <sergey.s.lega@intel.com>
492 Anna Tikhonova <anna.tikhonova@intel.com>
493 Ilya Tocar <ilya.tocar@intel.com>
494 Andrey Turetskiy <andrey.turetskiy@intel.com>
495 Ilya Verbin <ilya.verbin@intel.com>
496 Kirill Yukhin <kirill.yukhin@intel.com>
497 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
498
499 * config/i386/sse.md (VI2_AVX512F): New.
500 (VI124_AVX512F): Ditto.
501 (sseunpackmode): Extended with wider modes.
502 (sseunpackfltmode): Ditto.
503 (vec_unpacks_float_hi_<mode>): Ditto.
504 (vec_unpacks_float_lo_<mode>): Ditto.
505 (vec_unpacku_float_hi_<mode>): Ditto.
506 (vec_unpacku_float_lo_<mode>): Ditto.
507 (vec_unpacks_lo_<mode>): Ditto.
508 (vec_unpacks_hi_<mode>): Ditto.
509 (vec_unpacku_lo_<mode>): Ditto.
510 (vec_unpacku_hi_<mode>): Ditto.
511
67f783cb
AI
5122013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
513 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
514 Sergey Lega <sergey.s.lega@intel.com>
515 Anna Tikhonova <anna.tikhonova@intel.com>
516 Ilya Tocar <ilya.tocar@intel.com>
517 Andrey Turetskiy <andrey.turetskiy@intel.com>
518 Ilya Verbin <ilya.verbin@intel.com>
519 Kirill Yukhin <kirill.yukhin@intel.com>
520 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
521
522 * config/i386/i386.md (multdiv): New.
523 (multdiv_mnemonic): Ditto.
524 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
525 (<sse>_vm<multdiv_mnemonic><mode>3): This.
526 (<sse>_vmdiv<mode>3): Removed.
527
ec5e777c
AI
5282013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
529 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
530 Sergey Lega <sergey.s.lega@intel.com>
531 Anna Tikhonova <anna.tikhonova@intel.com>
532 Ilya Tocar <ilya.tocar@intel.com>
533 Andrey Turetskiy <andrey.turetskiy@intel.com>
534 Ilya Verbin <ilya.verbin@intel.com>
535 Kirill Yukhin <kirill.yukhin@intel.com>
536 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
537
538 * config/i386/sse.md (V): Extended with wider modes.
539 (VF2): Ditto.
540 (ssehalfvecmode): Ditto.
541 (i128): Ditto.
542 (ssepackfltmode): Ditto.
543 (avx_vec_concat<mode>): Ditto.
544 (V_256_512): New iterator.
545 (VF2_512_256): Ditto.
546 (si2dfmode): New attribute.
547 (si2dfmodelower): Ditto.
548 (sf2dfmode): Ditto.
549 (concat_tg_mode): Ditto.
550 (floatv4siv4df2): Changed to ...
551 (float<si2dfmodelower><mode>2): This.
552 (avx_cvtps2pd256): Changed to ...
553 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
554 (vec_pack_trunc_v4df): Changed to ...
555 (vec_pack_trunc_<mode>): This.
556 (avx_vpermil<mode>): Changed to ...
557 (<sse2_avx_avx512f>_vpermil<mode>): This.
558 (<fixsuffix>fix_truncv8dfv8si2): New.
559 (vec_pack_sfix_trunc_v8df): Ditto.
560 (avx512f_rndscale<mode>): Ditto.
561 (avx512f_roundpd512): Ditto.
562 (vec_pack_ufix_trunc_<mode>): Updated iterator.
563
a9ccbba2
AI
5642013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
565 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
566 Sergey Lega <sergey.s.lega@intel.com>
567 Anna Tikhonova <anna.tikhonova@intel.com>
568 Ilya Tocar <ilya.tocar@intel.com>
569 Andrey Turetskiy <andrey.turetskiy@intel.com>
570 Ilya Verbin <ilya.verbin@intel.com>
571 Kirill Yukhin <kirill.yukhin@intel.com>
572 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
573
574 * config/i386/i386.md (any_fix): New iterator.
575 (fixsuffix): New attribute.
576 * config/i386/sse.md (VF1): Extened with wider modes.
577 (VI): Ditto.
578 (VI_AVX2): Ditto.
579 (VI8): Ditto.
580 (sseintvecmodelower): Ditto.
581 (ssescalarmode): Ditto.
582 (ssescalarnum): Ditto.
583 (VF1_128_256): New.
584 (ssexmmmode): Ditto.
585 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
586 (<sse>_rcp<mode>2): Change iterator.
587 (rsqrt<mode>2): Ditto.
588 (<sse>_rsqrt<mode>2): Ditto.
589 (avx2_vec_dup<mode>): Ditto.
590 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
591 (round<mode>2_sfix): Ditto.
592 (avx2_pbroadcast<mode>): Ditto.
593 (*andnot<mode>3): Handle XI mode.
594 (*<code><mode>3): Ditto.
595 (AVXTOSSEMODE): Removed.
596 (avx_vpermil<mode>): Changed to ...
597 (<sse2_avx_avx512f>_vpermil<mode>): This.
598
2b1ebb0c
AI
5992013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
600 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
601 Sergey Lega <sergey.s.lega@intel.com>
602 Anna Tikhonova <anna.tikhonova@intel.com>
603 Ilya Tocar <ilya.tocar@intel.com>
604 Andrey Turetskiy <andrey.turetskiy@intel.com>
605 Ilya Verbin <ilya.verbin@intel.com>
606 Kirill Yukhin <kirill.yukhin@intel.com>
607 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
608
609 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
610 (<sse>_comi): Ditto.
611 (<sse>_ucomi): Ditto.
612 (sse_cvtss2siq_2): Ditto.
613 (sse2_cvtsd2si): Ditto.
614 (sse2_cvtsd2siq): Ditto.
615 (sse2_cvttsd2si): Ditto.
616 (sse2_cvttsd2siq): Ditto.
617 (<shift_insn><mode>3): Ditto.
618 (sse2_cvtsi2sdq): Update constraint and prefix.
619 (sse_cvtsi2ss): Update prefix.
620 (sse_cvtsi2ssq): Ditto.
621
d89124ed
JJ
6222013-10-11 Jakub Jelinek <jakub@redhat.com>
623
624 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
625 ignore internal calls.
626
e6ad28c3
RB
6272013-10-11 Richard Biener <rguenther@suse.de>
628
629 * tree-pretty-print.c (dump_generic_node): Allow to dump
630 both (D) and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with
631 (OVF) if TREE_OVERFLOW is set.
632
d1227447
TS
6332013-10-11 Thomas Schwinge <thomas@codesourcery.com>
634
1ac4b8e4
TS
635 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
636
7d05cebb
TS
637 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
638 * gimple.h: Likewise.
639
adcfd489 640 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
6545f0b3 641
1a79fb8a
TS
642 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
643 macros.
644
3afd2873
TS
645 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
646
adcfd489 647 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
d1227447
TS
648 * configure: Regenerate.
649
acf0174b
JJ
6502013-10-11 Jakub Jelinek <jakub@redhat.com>
651
652 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
653 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
654 formatting fixes, use pp_colon instead of pp_character (..., ':'),
655 similarly pp_right_paren.
656 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
657 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
658 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
659 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
660 clauses.
661 (omp_declare_simd_clauses_equal,
662 omp_remove_redundant_declare_simd_attrs): New functions.
663 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
664 (walk_tree_1): Handle new OpenMP 4.0 clauses.
665 * tree.h (OMP_LOOP_CHECK): Define.
666 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
667 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
668 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
669 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
670 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
671 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
672 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
673 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
674 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
675 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
676 OMP_CLAUSE_SIMDLEN_EXPR): Define.
677 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
678 (omp_remove_redundant_declare_simd_attrs): New prototype.
679 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
680 GIMPLE_OMP_TEAMS): New codes.
681 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
682 * omp-low.c (struct omp_context): Add cancel_label and cancellable
683 fields.
684 (target_nesting_level): New variable.
685 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
686 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
687 for collapse > 1 static schedule unless ordered.
688 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
689 (determine_parallel_type): Adjust get_ws_args_for caller.
690 (install_var_field): Handle mask & 4 for double indirection.
691 (scan_sharing_clauses): Ignore shared clause on teams construct.
692 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
693 (create_omp_child_function): If inside target or declare target
adcfd489 694 constructs, set "omp declare target" attribute on the child function.
acf0174b
JJ
695 (find_combined_for): New function.
696 (scan_omp_parallel): Handle combined loops.
697 (scan_omp_target, scan_omp_teams): New functions.
698 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
699 restrictions and set ctx->cancellable for cancellable constructs.
700 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
701 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
702 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
adcfd489 703 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
acf0174b
JJ
704 (omp_clause_aligned_alignment): New function.
705 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
706 on decls.
707 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
708 on teams constructs. Handle user defined reductions and new
709 OpenMP 4.0 clauses.
710 (lower_reduction_clauses): Don't set placeholder to address of ref
711 if it has already the right type.
712 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
713 (expand_parallel_call): Use the new non-_start suffixed builtins,
714 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
715 and GOMP_parallel_end after the call.
716 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
717 (expand_omp_for_init_counts): Handle combined loops.
718 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
719 loops.
720 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
721 end of cancellable loops.
722 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
723 Likewise. Handle collapse > 1 loops.
724 (expand_omp_simd): Handle combined loops.
725 (expand_omp_for): Add inner_stmt argument, adjust callers of
726 expand_omp_for* functions, use expand_omp_for_static*chunk even
727 for collapse > 1 unless ordered.
728 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
729 of cancellable sections.
730 (expand_omp_single): Remove need_barrier variable, just rely on
731 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
732 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
733 (expand_omp_atomic_load, expand_omp_atomic_store,
734 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
735 (expand_omp_target): New function.
736 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
737 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
738 (build_omp_regions_1): Immediately close region for
739 GF_OMP_TARGET_KIND_UPDATE.
740 (maybe_add_implicit_barrier_cancel): New function.
741 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
742 cancellation.
743 (lower_omp_single): Likewise. Add clobber after the barrier.
744 (lower_omp_taskgroup): New function.
745 (lower_omp_for): Handle combined loops. Adjust
746 lower_rec_input_clauses caller. Handle cancellation.
747 (lower_depend_clauses): New function.
748 (lower_omp_taskreg): Lower depend clauses. Adjust
749 lower_rec_input_clauses caller. Add clobber after the call. Handle
750 cancellation.
751 (lower_omp_target, lower_omp_teams): New functions.
752 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
753 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
754 and GOMP_cancellation_point calls.
755 (lower_omp): Fold stmts inside of target region.
756 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
757 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
758 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
759 (BT_FN_VOID_OMPFN_PTR_UINT,
760 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
761 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
762 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
763 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
764 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
765 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
766 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
767 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
768 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
769 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
770 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
771 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
772 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
773 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
774 BUILT_IN_GOMP_PARALLEL_END.
775 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
776 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
777 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
778 GF_OMP_FOR_KIND_DISTRIBUTE.
779 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
780 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
781 (dump_gimple_omp_return): Print lhs if it has any.
782 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
783 gimple_omp_atomic_seq_cst_p.
784 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
785 and GIMPLE_OMP_TEAMS.
786 * langhooks.c (lhd_omp_mappable_type): New function.
787 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
788 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
789 hook.
790 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
791 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
792 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
793 ORT_TARGET.
794 (struct gimplify_omp_ctx): Add combined_loop field.
795 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
796 on stmts inside of target region.
797 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
798 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
799 ORT_TARGET and ORT_TARGET_DATA.
800 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
801 Handle GOVD_MAP.
802 (omp_notice_threadprivate_variable): Complain about threadprivate
803 variables in target region.
804 (omp_notice_variable): Complain about vars with non-mappable type
805 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
806 (omp_check_private): Ignore ORT_TARGET* regions.
807 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
808 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
809 (find_combined_omp_for): New function.
810 (gimplify_omp_for): Handle gimplification of combined loops.
811 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
812 OMP_TEAMS.
813 (gimplify_omp_target_update): New function.
814 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
815 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
816 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
817 (gimplify_body): If fndecl has "omp declare target" attribute, add
818 implicit ORT_TARGET context around it.
819 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
820 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
821 * tree-nested.c (convert_nonlocal_reference_stmt,
822 convert_local_reference_stmt, convert_gimple_call): Handle
823 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
824 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
825 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
826 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
827 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
828 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
829 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
830 BUILT_IN_GOMP_LOOP_END_CANCEL,
831 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
832 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
833 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
834 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
835 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
836 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
837 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
838 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
839 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
840 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
841 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
842 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
843 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
844 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
845 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
846 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
847 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
848 gimple_build_omp_teams): New functions.
849 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
850 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
851 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
852 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
853 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
854 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
855 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
856 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
857 GF_OMP_ATOMIC_SEQ_CST): New.
858 (gimple_build_omp_taskgroup, gimple_build_omp_target,
859 gimple_build_omp_teams): New prototypes.
860 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
861 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
862 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
863 GIMPLE_OMP_SINGLE as end of range.
864 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
865 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
866 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
867 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
868 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
869 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
870 gimple_omp_target_kind, gimple_omp_target_set_kind,
871 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
872 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
873 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
874 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
875 gimple_omp_teams_set_clauses): New inlines.
876 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
877 and GIMPLE_OMP_TASKGROUP.
adcfd489 878 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
acf0174b
JJ
879 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
880 enum omp_clause_proc_bind_kind): New.
881 (union omp_clause_subcode): Add depend_kind, map_kind and
882 proc_bind_kind fields.
883 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
884 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
885 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
886 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
887 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
888
67fa7880
TJ
8892013-10-10 Teresa Johnson <tejohnson@google.com>
890
891 * predict.c (tree_estimate_probability): Add new parameter
892 for estimate_bb_frequencies.
893 (estimate_bb_frequencies): Add new parameter to force estimation.
894 (rebuild_frequencies): When max frequency in function is small,
895 recompute counts from frequencies.
896 * predict.h (estimate_bb_frequencies): New parameter.
897
b591a8b7
DM
8982013-10-10 David Malcolm <dmalcolm@redhat.com>
899
900 * ipa-inline.c (ipa_inline): Fix leak of "order" when
901 optimizations are disabled.
902
782f0db2
DM
9032013-10-10 David Malcolm <dmalcolm@redhat.com>
904
905 * coverage.c (coverage_finish): Fix leak of da_file_name.
906
13ef00fa
JH
9072013-10-10 Jan Hubicka <jh@suse.cz>
908
909 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
910 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
911 Bobcat and generic.
912
a1d50386
JJ
9132013-10-10 Jakub Jelinek <jakub@redhat.com>
914
915 PR middle-end/58670
916 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
917 if any labels are in FALLTHRU_BB, use a special label emitted
918 immediately after the asm goto insn rather than label_rtx
919 of the LABEL_DECL.
920 (expand_asm_stmt): Adjust caller.
921 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
922 edge if the last insn in predecessor is a jump with single successor,
923 but it isn't simplejump_p.
924
e2c2fde2
RB
9252013-10-10 Richard Biener <rguenther@suse.de>
926
927 PR tree-optimization/58656
928 * tree-ssa-pre.c (phi_translate): Do not cache failed
929 translations.
930
de6a5608
AM
9312013-10-10 Andrew MacLeod <amacleod@redhat.com>
932
adcfd489
UB
933 * gimplify.c: Include expr.h and tm_p.h for targets with special
934 va-arg padding requirements.
de6a5608 935
b184c8f1
AM
9362013-10-10 Andrew MacLeod <amacleod@redhat.com>
937
938 * tree-flow.h: Move some prototypes to gimple.h.
939 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
940 * gimple.h: Relocate some prototypes from tree-flow.h
941 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
942 Move to gimplify.c.
943 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
944 (build_va_arg_indirect_ref): Relocate and make static.
945 (std_gimplify_va_arg_expr): Relocate here.
946 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
947 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
948
13b72c22
AK
9492013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
950
951 * doc/md.texi: Document the mnemonic attribute.
952
5db40447
AK
9532013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
954
955 PR target/57377
956 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
957 (set_attr_alternative x ...) when searching for user defined
958 mnemonic attribute.
959
ed018d4b
AM
9602013-10-10 Andrew MacLeod <amacleod@redhat.com>
961
962 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
963
4d5b5e9f
ER
9642013-10-09 Easwaran Raman <eraman@google.com>
965
966 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
967 * cfgexpand.c (defer_stack_allocation): ...use here
968 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
969
c9ef86a1
ZC
9702013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
971
972 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
973 (operand_equal_for_value_replacement): New function, extracted from
974 value_replacement and enhanced to catch more cases.
975 (value_replacement): Use operand_equal_for_value_replacement.
976
2431114f
AM
9772013-10-09 Andrew MacLeod <amacleod@redhat.com>
978
adcfd489 979 * loop-doloop.c (doloop_modify, doloop_optimize): Use
2431114f
AM
980 get_max_loop_iterations.
981
1dd2a9a0
KT
9822013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
983
984 * config/arm/aarch-common.c (arm_early_load_addr_dep):
985 Place comment above function.
986
c1bf2a39
AM
9872013-10-09 Andrew MacLeod <amacleod@redhat.com>
988
989 * tree-flow.h: Remove all remaining prototypes, enums and structs that
990 are not related to tree-cfg.c.
991 * tree-ssa-address.h: New file. Relocate prototypes.
992 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
993 (addr_for_mem_ref): New. Combine call to get_address_description and
994 return addr_for_mem_ref.
995 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
996 * tree-ssa-live.h: Adjust prototypes.
997 * passes.c: Include tree-ssa-live.h.
998 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
999 * graphite.c (graphite_transform_loops): Make static.
1000 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
adcfd489 1001 make_pass_graphite, pass_data_graphite_transforms,
c1bf2a39
AM
1002 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
1003 * ipa-pure-const.c (warn_function_noreturn): Make static.
1004 (execute_warn_function_noreturn, gate_warn_function_noreturn,
1005 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
1006 Relocate from tree-cfg.c
1007 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
1008 static.
1009 (execute_warn_function_noreturn, gate_warn_function_noreturn,
1010 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
1011 Move to ipa-pure-const.c.
adcfd489
UB
1012 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
1013 Relocate from tree-optimize.c.
c1bf2a39
AM
1014 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
1015 make_pass_fixup_cfg): Move to tree-cfg.c.
1016 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
1017 Relocate some prototypes.
1018 * tree-data-ref.h (tree_check_data_deps) Add prototype.
1019 * tree-dump.c (dump_function_to_file): Remove prototype.
1020 Add tree-flow.h to the include file.
1021 * tree-dump.h: Remove prototype.
1022 * tree-parloops.h: New File. Add prototypes.
1023 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
1024 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
1025 from tree-ssa-loop.c.
1026 * tree-predcom.c (run_tree_predictive_commoning,
1027 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
1028 Relocate here from tree-ssa-loop.c.
adcfd489 1029 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
c1bf2a39
AM
1030 ssa_name_values.release ().
1031 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
1032 (ssa_name_values): Relocate from tree-flow.h.
1033 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
1034 * tree-ssa-loop.c (run_tree_predictive_commoning,
1035 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
1036 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
1037 make_pass_graphite, pass_data_graphite_transforms,
1038 make_pass_graphite_transforms, gate_tree_parallelize_loops,
1039 tree_parallelize_loops, pass_data_parallelize_loops,
1040 make_pass_parallelize_loops): Move to other files.
1041 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
1042 moved here.
1043 * tree.h: Remove prototypes from tree-address.c.
1044
cc524fc7
AM
10452013-10-09 Andrew MacLeod <amacleod@redhat.com>
1046
1047 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
1048 (struct int_tree_map): Move to tree-hasher.h
1049 (SCALE, LABEL, PERCENT): Move to gimple.h
1050 * tree-flow-inline.h: Delete. Move functions to other files.
1051 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
1052 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
1053 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
1054 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
1055 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
1056 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
1057 * tree-hasher.h: Don't include tree-flow.h.
1058 (struct int_tree_map): Relocate from tree-flow.h.
1059 * tree-sra.c (contains_view_convert_expr_p): Relocate from
1060 tree-flow-inline.h and make static.
adcfd489
UB
1061 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
1062 tree-flow-inline.h.
cc524fc7
AM
1063 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
1064 tree-flow-inline.h and make static.
1065 * tree.h (is_global_var, may_be_aliased): Relocate from
1066 tree-flow-inline.h.
1067 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
1068 * value-prof.c: No longer include tree-flow-inline.h.
1069 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
1070
71343877
AM
10712013-10-09 Andrew MacLeod <amacleod@redhat.com>
1072
1073 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
1074 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
1075 (enum move_pos): Move to tree-ssa-loop-im.h
1076 * cfgloop.h: Move some prototypes.
1077 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
1078 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
1079 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
1080 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
1081 (loop_containing_stmt): Relocate from tree-flow-inline.h.
1082 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
1083 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
1084 (enum move_pos): Relocate here.
1085 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
1086 tree-ssa-loop.c.
1087 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
adcfd489
UB
1088 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
1089 make_pass_lim): Relocate here from tree-ssa-loop.c.
1090 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
71343877
AM
1091 tree-ssa-loop.c.
1092 (loop_edge_to_cancel, unloop_loops): Make static.
1093 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
1094 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
1095 (tree_complete_unroll, gate_tree_complete_unroll,
1096 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
1097 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
1098 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
1099 * tree-ssa-loop-ivopts.c: Remove local prototypes.
1100 (stmt_invariant_in_loop_p): Remove unused function.
1101 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
1102 * tree-ssa-loop-manip.h: New file. Add prototypes.
1103 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
1104 (gcov_type_to_double_int): Move to cfgloop.h.
1105 (double_int_cmp, bound_index,
1106 estimate_numbers_of_iterations_loop): Make static.
1107 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
1108 (max_loop_iterations): Factor out get_max_loop_iterations.
1109 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
1110 cfgloop.c.
1111 * tree-ssa-loop-niter.h: New file. Add prototypes.
1112 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
1113 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
1114 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
1115 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
1116 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
1117 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
1118 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
1119 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
1120 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
1121 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
1122 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
1123 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
1124 pass_data_complete_unroll, make_pass_complete_unroll,
1125 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
1126 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
1127 tree-ssa-loop-ivcanon.c.
1128 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
1129 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
1130 tree-ssa-loop-prefetch.c.
1131 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
1132 tree-ssa-loop-im.c.
1133 (get_lsm_tmp_name): Relocate and add suffix parameter.
1134 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
1135 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
1136 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
1137 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
adcfd489 1138 (get_estimated_loop_iterations): Factor out accessor from
71343877 1139 estimated_loop_iterations in tree-ssa-loop-niter.c.
adcfd489
UB
1140 (get_max_loop_iterations): Factor out accessor from
1141 _max_loop_iterations in tree-ssa-niter.c.
71343877
AM
1142 * loop-unroll.c (decide_unroll_constant_iterations,
1143 decide_unroll_runtime_iterations, decide_peel_simple,
1144 decide_unroll_stupid): Use new get_* accessors.
1145
826cacfe
MG
11462013-10-09 Marc Glisse <marc.glisse@inria.fr>
1147
1148 PR tree-optimization/20318
1149 * doc/extend.texi (returns_nonnull): New function attribute.
1150 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
1151 attribute.
1152 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
1153 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
1154
378f8976
EB
11552013-10-09 Eric Botcazou <ebotcazou@adacore.com>
1156
1157 PR middle-end/58570
1158 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
1159 false if both components are bitfields.
1160
0fe04f5c
AV
11612013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1162
1163 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
1164 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
1165 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
1166 * config/aarch64/aarch64.h
1167 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
1168 * config/aarch64/aarch64-simd-builtins.def
1169 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
1170
bed9bae4
AV
11712013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1172
1173 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
1174
7f3d8b19
AV
11752013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1176
1177 * config/aarch64/arm_neon.h (vdiv_f64): Added.
1178
7df625a6
AV
11792013-10-09 Alex Velenko <Alex.Velenko@arm.com>
1180
1181 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
1182 (vneg_f64): New intrinsic.
1183 (vneg_s8): Asm replaced with C.
1184 (vneg_s16): Likewise.
1185 (vneg_s32): Likewise.
1186 (vneg_s64): New intrinsic.
1187 (vnegq_f32): Asm replaced with C.
1188 (vnegq_f64): Likewise.
1189 (vnegq_s8): Likewise.
1190 (vnegq_s16): Likewise.
1191 (vnegq_s32): Likewise.
1192 (vnegq_s64): Likewise.
1193
2b86fca7
RL
11942013-10-09 Renlin Li <Renlin.Li@arm.com>
1195
1196 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
1197
e179df83
AK
11982013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1199
1200 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
1201 packed stack special handling.
1202 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
1203 back to fixed stack slots for FPRs saved due to stdarg.
1204
74129172
AK
12052013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1206
1207 * config/s390/s390.c (s390_frame_info): Restructure function.
1208
6455a49e
AK
12092013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1210
1211 * config/s390/s390.c (struct s390_frame_layout): New field
1212 gpr_save_slots.
1213 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
1214 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
1215 regs_ever_clobbered to char*.
adcfd489
UB
1216 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
1217 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
6455a49e
AK
1218 (s390_register_info): Enable FPR save slots. Move/Copy some
1219 functionality into ...
1220 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
1221 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
1222 function.
1223 (s390_frame_info): Do gpr slot allocation here now. stdarg does
1224 not imply a stack frame.
1225 (s390_init_frame_layout): Remove variable clobbered_regs.
1226 (s390_update_register_info): Remove function.
1227 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
1228 cannot be used for register renaming.
1229 (s390_hard_regno_scratch_ok): New function.
1230 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
1231 (s390_initial_elimination_offset): Change offset calculation of
1232 the return address pointer.
adcfd489 1233 (save_gprs): Deal with only r6 being saved from the call-saved regs.
6455a49e 1234 (restore_gprs): Set frame related flag.
adcfd489 1235 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
6455a49e
AK
1236 (s390_emit_prologue): Call s390_register_info instead of
1237 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
1238 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
1239 (s390_optimize_prologue): Call s390_optimize_register_info.
1240 Try to remove also FPR slot save/restore INSNs. Remove frame
1241 related flags from restore INSNs.
1242
59d96342
DD
12432013-10-08 DJ Delorie <dj@redhat.com>
1244
0dc7adad
DD
1245 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
1246 (movhi): Likewise.
1247
59d96342
DD
1248 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
1249 avoid conflict with the MI use of %c.
1250 * config/rl78/rl78-real.md: change %c to %C throughout.
1251 * config/rl78/rl78-virt.md: Likewise.
1252
a81169d8
JH
12532013-10-08 Jan Hubicka <jh@suse.cz>
1254
1255 * config/i386/i386.c (ix86_option_override_internal): Switch
1256 to SSE math for -ffast-math when target ISA supports SSE2.
1257
481d1b81
AM
12582013-10-08 Andrew MacLeod <amacleod@redhat.com>
1259
1260 * tree-flow.h: Remove some prototypes.
1261 * tree.h: Remove some protypes, add a couple.
1262 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
1263 using_eh_for_cleanups_p): Add interface routines for front ends.
1264 * tree-eh.h: New file. Add protoptyes.
1265 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
1266 (add_stmt_to_eh_lp_fn): Make static.
1267 (lower_try_finally): Use new using_eh_for_cleanups_p.
1268 * emit-rtl.c: Include tree-eh.h.
1269 * gimple.h: Include tree-eh.h.
1270
0e6a0e48
MG
12712013-10-08 Marc Glisse <marc.glisse@inria.fr>
1272
1273 PR tree-optimization/58480
1274 * tree-vrp.c (infer_nonnull_range): New function.
1275 (infer_value_range): Call infer_nonnull_range.
1276
ef6179d1
DC
12772013-10-08 Dehao Chen <dehao@google.com>
1278
1279 PR tree-optimization/58619
1280 * tree-inline.c (copy_phis_for_bb): Combine location data
1281 only if non-null.
1282
07d964d5
ZC
12832013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1284
1285 PR target/58423
1286 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
1287 RTX_FRAME_RELATED_P on INSN.
1288
19e9b2a3
BS
12892013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1290
1291 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
1292 (altivec_expand_vec_perm_const): Call it.
1293
0cf68694
BS
12942013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1295
1296 * config/rs6000/vector.md (mov<mode>): Emit permuted move
1297 sequences for LE VSX loads and stores at expand time.
1298 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
1299 prototype.
1300 * config/rs6000/rs6000.c (rs6000_const_vec): New.
1301 (rs6000_gen_le_vsx_permute): New.
1302 (rs6000_gen_le_vsx_load): New.
1303 (rs6000_gen_le_vsx_store): New.
1304 (rs6000_gen_le_vsx_move): New.
1305 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
1306 (*vsx_le_perm_load_v4si): New.
1307 (*vsx_le_perm_load_v8hi): New.
1308 (*vsx_le_perm_load_v16qi): New.
1309 (*vsx_le_perm_store_v2di): New.
1310 (*vsx_le_perm_store_v4si): New.
1311 (*vsx_le_perm_store_v8hi): New.
1312 (*vsx_le_perm_store_v16qi): New.
1313 (*vsx_xxpermdi2_le_<mode>): New.
1314 (*vsx_xxpermdi4_le_<mode>): New.
1315 (*vsx_xxpermdi8_le_V8HI): New.
1316 (*vsx_xxpermdi16_le_V16QI): New.
1317 (*vsx_lxvd2x2_le_<mode>): New.
1318 (*vsx_lxvd2x4_le_<mode>): New.
1319 (*vsx_lxvd2x8_le_V8HI): New.
1320 (*vsx_lxvd2x16_le_V16QI): New.
1321 (*vsx_stxvd2x2_le_<mode>): New.
1322 (*vsx_stxvd2x4_le_<mode>): New.
1323 (*vsx_stxvd2x8_le_V8HI): New.
1324 (*vsx_stxvd2x16_le_V16QI): New.
1325
9520e1eb
RL
13262013-10-07 Renlin Li <Renlin.Li@arm.com>
1327
1328 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
1329
36c0bd4f
AK
13302013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1331
1332 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
1333 loop to work also for 31bit ABI.
1334 Save the stack pointer for frame_size > 0.
1335
ee163e72
AK
13362013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1337
1338 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
1339 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
1340 constraint letters from expanders.
1341 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
1342 retry count to general_operand.
1343 ("tabort"): Give operand 0 a mode.
1344 ("tabort_1"): Add mode and constraint letter for operand 0.
1345 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
1346
45d99234
JL
13472013-10-04 Jeff Law <law@redhat.com>
1348
1349 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
1350
adcfd489
UB
1351 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
1352 out of ...
45d99234
JL
1353 (thread_across_edge): Here. Call it.
1354
7c327f7b
CC
13552013-10-04 Cary Coutant <ccoutant@google.com>
1356
1357 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
adcfd489 1358 discarding a location list expression (or a piece of one).
7c327f7b 1359
6867e128
JH
13602013-10-03 Jan Hubicka <jh@suse.cz>
1361
65efa7e7
UB
1362 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
1363 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
3700bce3 1364 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
6867e128 1365
c7f36d55
JH
13662013-10-03 Jan Hubicka <jh@suse.cz>
1367
65efa7e7 1368 * config/i386/i386.c (ix86_option_override_internal): Do not enable
c7f36d55
JH
1369 accumulate-outgoing-args when producing unwind info.
1370
4f0bee4c
WM
13712013-10-03 Wei Mi <wmi@google.com>
1372
1373 * lra-constraints.c (insert_move_for_subreg): New function
1374 extracted from simplify_operand_subreg.
1375 (simplify_operand_subreg): Add reload for paradoxical subreg.
1376
111c3f39
RX
13772013-10-03 Rong Xu <xur@google.com>
1378
65efa7e7
UB
1379 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
1380 the candidate of builtin_expect such that we should fix the
1381 size/time estimation.
1382 (estimate_function_body_sizes): Do the acutally size/time fix-up
1383 for builtin_expect.
111c3f39 1384
942df739
RX
13852013-10-03 Rong Xu <xur@google.com>
1386
65efa7e7
UB
1387 * predict.c (tree_predict_by_opcode): Get the probability
1388 for builtin_expect from param builtin_expect_probability.
1389 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
1390 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
1391 * doc/invoke.texi: Add documentation for builtin-expect-probability.
942df739 1392
2284b034
MG
13932013-10-03 Marc Glisse <marc.glisse@inria.fr>
1394
1395 PR c++/19476
1396 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
1397 * calls.c (alloca_call_p): Use get_callee_fndecl.
1398 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
1399 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
1400 Likewise.
1401 (vrp_visit_stmt): Remove duplicated code.
1402
0609bdf2
MM
14032013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
1404
1405 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
1406 ceildf2, btruncdf2, instead of vsx_* name.
1407
1408 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
1409 iterators to only do V2DF and V4SF here. Move the DF code to
1410 rs6000.md where it is combined with SF mode. Replace <VSv> with
1411 just 'v' since only vector operations are handled with these insns
1412 after moving the DF support to rs6000.md.
1413 (vsx_sub<mode>3): Likewise.
1414 (vsx_mul<mode>3): Likewise.
1415 (vsx_div<mode>3): Likewise.
1416 (vsx_fre<mode>2): Likewise.
1417 (vsx_neg<mode>2): Likewise.
1418 (vsx_abs<mode>2): Likewise.
1419 (vsx_nabs<mode>2): Likewise.
1420 (vsx_smax<mode>3): Likewise.
1421 (vsx_smin<mode>3): Likewise.
1422 (vsx_sqrt<mode>2): Likewise.
1423 (vsx_rsqrte<mode>2): Likewise.
1424 (vsx_fms<mode>4): Likewise.
1425 (vsx_nfma<mode>4): Likewise.
1426 (vsx_copysign<mode>3): Likewise.
1427 (vsx_btrunc<mode>2): Likewise.
1428 (vsx_floor<mode>2): Likewise.
1429 (vsx_ceil<mode>2): Likewise.
1430 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
1431 (vsx_sminsf3): Likewise.
1432 (vsx_fmadf4): Likewise.
1433 (vsx_fmsdf4): Likewise.
1434 (vsx_nfmadf4): Likewise.
1435 (vsx_nfmsdf4): Likewise.
1436 (vsx_cmpdf_internal1): Likewise.
1437
1438 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
1439 simpler to select whether a target has SPE or traditional floating
1440 point support in iterators.
1441 (TARGET_DF_SPE): Likewise.
1442 (TARGET_SF_FPR): Likewise.
1443 (TARGET_DF_FPR): Likewise.
1444 (TARGET_SF_INSN): Macros to say whether floating point support
1445 exists for a given operation for expanders.
1446 (TARGET_DF_INSN): Likewise.
1447
1448 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
1449 combining of SF/DF mode operations, using both traditional and VSX
1450 registers.
1451 (Fvsx): Likewise.
1452 (Ff): Likewise.
1453 (Fv): Likewise.
1454 (Fs): Likewise.
1455 (Ffre): Likewise.
1456 (FFRE): Likewise.
1457 (abs<mode>2): Combine SF/DF modes using traditional floating point
1458 instructions. Add support for using the upper DF registers with
1459 VSX support, and SF registers with power8-vector support. Update
1460 expanders for operations supported by both the SPE and traditional
1461 floating point units.
1462 (abs<mode>2_fpr): Likewise.
1463 (nabs<mode>2): Likewise.
1464 (nabs<mode>2_fpr): Likewise.
1465 (neg<mode>2): Likewise.
1466 (neg<mode>2_fpr): Likewise.
1467 (add<mode>3): Likewise.
1468 (add<mode>3_fpr): Likewise.
1469 (sub<mode>3): Likewise.
1470 (sub<mode>3_fpr): Likewise.
1471 (mul<mode>3): Likewise.
1472 (mul<mode>3_fpr): Likewise.
1473 (div<mode>3): Likewise.
1474 (div<mode>3_fpr): Likewise.
1475 (sqrt<mode>3): Likewise.
1476 (sqrt<mode>3_fpr): Likewise.
1477 (fre<Fs>): Likewise.
1478 (rsqrt<mode>2): Likewise.
1479 (cmp<mode>_fpr): Likewise.
1480 (smax<mode>3): Likewise.
1481 (smin<mode>3): Likewise.
1482 (smax<mode>3_vsx): Likewise.
1483 (smin<mode>3_vsx): Likewise.
1484 (negsf2): Delete SF operations that are merged with DF.
1485 (abssf2): Likewise.
1486 (addsf3): Likewise.
1487 (subsf3): Likewise.
1488 (mulsf3): Likewise.
1489 (divsf3): Likewise.
1490 (fres): Likewise.
1491 (fmasf4_fpr): Likewise.
1492 (fmssf4_fpr): Likewise.
1493 (nfmasf4_fpr): Likewise.
1494 (nfmssf4_fpr): Likewise.
1495 (sqrtsf2): Likewise.
1496 (rsqrtsf_internal1): Likewise.
1497 (smaxsf3): Likewise.
1498 (sminsf3): Likewise.
1499 (cmpsf_internal1): Likewise.
1500 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
1501 (negdf2): Delete DF operations that are merged with SF.
1502 (absdf2): Likewise.
1503 (nabsdf2): Likewise.
1504 (adddf3): Likewise.
1505 (subdf3): Likewise.
1506 (muldf3): Likewise.
1507 (divdf3): Likewise.
1508 (fred): Likewise.
1509 (rsqrtdf_internal1): Likewise.
1510 (fmadf4_fpr): Likewise.
1511 (fmsdf4_fpr): Likewise.
1512 (nfmadf4_fpr): Likewise.
1513 (nfmsdf4_fpr): Likewise.
1514 (sqrtdf2): Likewise.
1515 (smaxdf3): Likewise.
1516 (smindf3): Likewise.
1517 (cmpdf_internal1): Likewise.
1518 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
1519 (btrunc<mode>2): Delete separate expander, and combine with the
1520 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
1521 (btrunc<mode>2_fpr): Likewise.
1522 (ceil<mode>2): Likewise.
1523 (ceil<mode>2_fpr): Likewise.
1524 (floor<mode>2): Likewise.
1525 (floor<mode>2_fpr): Likewise.
1526 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
1527 Add support for using the upper registers with VSX and
1528 power8-vector. Move insns to be closer to the define_expands. On
1529 VSX systems, prefer the traditional form of FMA over the VSX
1530 version, since the traditional form allows the target not to
1531 overlap with the inputs.
1532 (fms<mode>4_fpr): Likewise.
1533 (nfma<mode>4_fpr): Likewise.
1534 (nfms<mode>4_fpr): Likewise.
1535
5bea0c6c 15362013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65efa7e7 1537 Richard Earnshaw <richard.earnshaw@arm.com>
5bea0c6c
KT
1538
1539 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
1540 (struct mult_cost_table): Likewise.
1541 (struct mem_cost_table): Likewise.
1542 (struct fp_cost_table): Likewise.
1543 (struct vector_cost_table): Likewise.
1544 (cpu_cost_table): Likewise.
1545 * config/arm/arm.opt (mold-rts-costs): New option.
1546 (mnew-generic-costs): Likewise.
1547 * config/arm/arm.c (generic_extra_costs): New table.
1548 (cortexa15_extra_costs): Likewise.
1549 (arm_slowmul_tune): Use NULL as new costs.
1550 (arm_fastmul_tune): Likewise.
1551 (arm_strongarm_tune): Likewise.
1552 (arm_xscale_tune): Likewise.
1553 (arm_9e_tune): Likewise.
1554 (arm_v6t2_tune): Likewise.
1555 (arm_cortex_a5_tune): Likewise.
1556 (arm_cortex_a9_tune): Likewise.
1557 (arm_v6m_tune): Likewise.
1558 (arm_fa726te_tune): Likewise.
1559 (arm_cortex_a15_tune): Use cortex15_extra_costs.
1560 (arm_cortex_tune): Use generict_extra_costs.
1561 (shifter_op_p): New function.
1562 (arm_unspec_cost): Likewise.
1563 (LIBCALL_COST): Define.
1564 (arm_new_rtx_costs): New function.
1565 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
1566 table is available. Use old costs otherwise unless mnew-generic-costs
1567 is specified.
1568 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
1569 (cpu_cost_table): Declare.
1570
24c56925
MS
15712013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
1572
1573 PR target/58460
1574 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
1575 (*subs_mul_imm_<mode>)
1576 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
1577 (*sub_<shift>_<mode>)
1578 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
1579 Remove k constraint.
1580
2ab8f063
IB
15812013-10-03 Ian Bolton <ian.bolton@arm.com>
1582
1583 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
1584 code.
1585 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
1586
79221839
TJ
15872013-10-02 Teresa Johnson <tejohnson@google.com>
1588
1589 * predict.c (probably_never_executed): New function.
1590 (probably_never_executed_bb_p): Invoke probably_never_executed.
1591 (probably_never_executed_edge_p): Ditto.
1592 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1593 Treat profile insanities conservatively.
1594
d441afe0
JDA
15952013-10-02 John David Anglin <danglin@gcc.gnu.org>
1596
1597 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
1598
80f466c4
VM
15992013-10-02 Vladimir Makarov <vmakarov@redhat.com>
1600
1601 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
1602 use it. Use smaller increase for scratch. Don't increase reject
1603 for early clobber scratch.
1604 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
1605 setting eliminated regs except setting fp from hfp.
1606 (lra_eliminate): Check lra_insn_recog_data on NULL.
1607
6e228b4b
MM
16082013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1609
1610 PR target/58587
1611 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
65efa7e7 1612 setting -mvsx-timode by default until the underlying problem is fixed.
6e228b4b
MM
1613 (RS6000_CPU, power7 defaults): Likewise.
1614
11b54a5a
UB
16152013-10-02 Uros Bizjak <ubizjak@gmail.com>
1616
1617 * config/x-linux (host-linux.o): Remove header dependencies.
1618 Use $(COMPILE) and $(POSTCOMPILE).
1619 * config/t-linux-android (linux-android.o): Ditto.
1620
bbc02b69
UB
16212013-10-02 Uros Bizjak <ubizjak@gmail.com>
1622
1623 * Makefile.in (expmed.o-warn): Remove.
1624
440917de
AM
16252013-10-02 Andrew MacLeod <amacleod@redhat.com>
1626
1627 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
1628 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
1629
99206ca9
TJ
16302013-10-02 Teresa Johnson <tejohnson@google.com>
1631
1632 * dojump.c (do_jump_1): Divide probability between
1633 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
1634
56e82b14
TT
16352013-10-02 Tom Tromey <tromey@redhat.com>
1636
1637 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
1638
3d9c733e
AM
16392013-10-02 Andrew MacLeod <amacleod@redhat.com>
1640
1641 * tree-flow.h: Remove some prototypes.
1642 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
1643 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
1644 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
1645 mark_virtual_phi_result_for_renaming): Relocate here.
1646 * tree-into-ssa.h: Add prototypes.
bbc02b69 1647 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
3d9c733e
AM
1648 single_pred_before_succ_order.
1649 (blocks_in_phiopt_order): Rename and move to cfganal.c.
1650 (nonfreeing_call_p) Move to gimple.c.
1651 * cfganal.c (single_pred_before_succ_order): Move and renamed from
1652 tree-ssa-phiopt.c.
1653 * basic-block.h (single_pred_before_succ_order): Add prototype.
1654 * gimple.c (nonfreeing_call_p): Relocate here.
1655 * gimple.h: Add prototype.
1656 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
1657 * tree-ssa-dom.h: New file. Relocate prototypes here.
1658 * tree-ssa.h: Include tree-ssa-dom.h.
1659
78cedfb1
UB
16602013-10-02 Uros Bizjak <ubizjak@gmail.com>
1661
1662 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
1663 Use $(COMPILE) and $(POSTCOMPILE).
1664
1665 * config/alpha/x-alpha (driver-alpha.o): Ditto.
1666
744730a4
AM
16672013-10-02 Andrew MacLeod <amacleod@redhat.com>
1668
1669 * tree-flow.h: Remove some prototypes.
1670 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
1671 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1672 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
1673 propagate_tree_value*): Move from here to...
1674 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
1675 propagate_tree_value*): Relocate here.
1676 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
1677 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
1678 * gimple-fold.c: Remove gimple-fold.h from include list.
1679 * tree-vrp.c: Remove gimple-fold.h from include list.
1680 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
1681 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
1682 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
1683 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
1684 * sese.c: Add tree-ssa-propagate.h to include list.
1685
826a536d
RB
16862013-10-02 Richard Biener <rguenther@suse.de>
1687
1688 * tree-loop-distribution.c: Include tree-vectorizer.h for
1689 find_loop_location.
1690 (enum partition_kind): Remove PKIND_REDUCTION.
78cedfb1 1691 (struct partition_s): Remove has_writes member, add reduction_p member.
826a536d
RB
1692 (partition_alloc): Adjust.
1693 (partition_builtin_p): Likewise.
1694 (partition_has_writes): Remove.
1695 (partition_reduction_p): New function.
1696 (partition_merge_into): Likewise.
1697 (generate_code_for_partition): Commonize builtin partition
1698 handling tail.
1699 (rdg_cannot_recompute_vertex_p): Remove.
1700 (already_processed_vertex_p): Likewise.
1701 (rdg_flag_vertex): Do not set has_writes.
1702 (classify_partition): Adjust.
1703 (rdg_build_partitions): Do not set has_writes, treat all
1704 partitions as useful.
78cedfb1 1705 (distribute_loop): Record number of library calls generated. Adjust.
826a536d
RB
1706 (tree_loop_distribution): Report number of loops and library
1707 calls generated as opt-info.
1708
4b403ece
AM
17092013-10-02 Andrew MacLeod <amacleod@redhat.com>
1710
1711 * tree-flow.h: Include new .h files. Move prototypes.
1712 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
1713 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
1714 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
1715 * tree-pretty-print.h: Add prototypes from tree-flow.h.
1716 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
1717 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
1718 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
1719 * tree.h (get_ref_base_and_extent): Move prototype out.
78cedfb1 1720 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
4b403ece
AM
1721 tree-dfa.h.
1722 * gimple-low.h: New File. Add prototypes from tree-flow.h.
1723 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
1724 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
1725 * tree-scalar-evolution.c: Include tree.h.
1726 * sese.c: Include tree.h.
1727 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
1728 * dwarf2out.c: Include tree-dfa.h.
1729 * tree-chrec.c: Include tree.h.
1730 * tree-data-ref.c: Include tree.h.
1731
1d2151c6
YZ
17322013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
1733
1734 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
1735 Fix whitespace.
1736
441ad147
RO
17372013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1738
1739 * config/t-sol2 (sol2-c.o): Remove header dependencies.
1740 Use $(COMPILE) and $(POSTCOMPILE).
1741 (sol2-cxx.o): Likewise.
1742 (sol2-stubs.o): Likewise.
1743 (sol2.o): Likewise.
1744 * config/x-solaris (host-solaris.o): Likewise.
1745
1746 * config/sparc/t-sparc (sparc.o): Remove.
1747 (sparc-c.o): Remove header dependencies.
1748 Use $(COMPILE) and $(POSTCOMPILE).
1749 * config/sparc/x-sparc: Likewise.
1750
2deaf8b0
JR
17512013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
1752
1753 * config/arc/arc-opts.h: Add 2013 to Copyright years.
1754 * config/arc/arc700.md: Likewise.
1755 * config/arc/arc-modes.def: Likewise.
1756 * config/arc/arc-simd.h: Likewise.
1757 * config/arc/t-arc-uClibc: Likewise.
1758 * config/arc/t-arc-newlib: Likewise.
1759
f6fe771a
RL
17602013-10-02 Renlin Li <renlin.li@arm.com>
1761
78cedfb1
UB
1762 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
1763 plus_constant.
f6fe771a
RL
1764 (aarch64_expand_epilogue): Likewise.
1765
0916f876
YZ
17662013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1767 Yufeng Zhang <yufeng.zhang@arm.com>
1768
1769 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
1770 declaration.
1771 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
1772 'base_in' represent a conversion and legal_cast_p_1 holds; set
1773 'base_in' with the returned value from get_unwidened.
1774
ebfcd719
KT
17752013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1776
1777 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
1778 plus_constant is not used.
1779
157ca3e9
WM
17802013-10-01 Wei Mi <wmi@google.com>
1781
78cedfb1 1782 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
157ca3e9
WM
1783 * config/i386/i386.md: Add define_peephole2 to
1784 break partial reg stall for cvtss2sd/cvtsd2ss.
1785
cd4dd8f0
JR
17862013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1787
1788 * config/arc/arc.c (pass_arc_ifcvt::clone):
78cedfb1 1789 Update for ctxt_ -> m_ctxt change.
cd4dd8f0 1790
1465e5cf
JL
17912013-10-01 Jeff Law <law@redhat.com>
1792
1793 * tree-ssa-threadupdate.c (struct redirection_data): Delete
1794 outgoing_edge and intermediate_edge fields. Instead store the path.
1795 (redirection_data::hash): Hash on the last edge's destination index.
1796 (redirection_data::equal): Check the entire thread path.
1797 (lookup_redirectio_data): Corresponding changes.
1798 (create_edge_and_update_destination_phis): Likewise.
1799 (thread_single_edge): Likewise.
1800
25c606cb 18012013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
0ccbc132 1802 Diego Novillo <dnovillo@google.com>
25c606cb
JR
1803
1804 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
1805 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
1806 (vld32wh_insn, vld32wl_insn): Delete commented-out old
1807 versions of these patterns.
1808
0ccbc132
JR
1809 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
1810 (__builtin_arc_aligned): Likewise.
1811
f55d4a20
JR
1812 * config/arc/arc.md: Expand adc_0 comment stating the intended
1813 purpose and why it isn't ready.
1814 Replace commented out call_value_via_label_mixed with a
1815 plain comment about bl_s.
1816
5719867d 1817 * config/arc/arc.c (stdio.h): Don't include directly.
5719867d
JR
1818 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
1819 Remove if (1) condition.
1820 (arc_encode_section_info): Fix comment.
1821
6462fab0
JR
18222013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1823
1824 * config/arc/arc.c (arc_conditional_register_usage):
1825 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
1826 Also set reg_alloc_order for DMA config regs.
1827
5d5f6720
JR
18282013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1829 Jeremy Bennett <jeremy.bennett@embecosm.com>
1830
1831 * doc/install.texi (--with-cpu): Mention ARC.
1832 (arc-*-elf32): New paragraph.
1833 (arc-linux-uclibc): Likewise.
1834 * doc/md.texi (Machine Constraints): Add ARC part.
1835 * doc/invoke.texi: (menu): Add ARC Options.
1836 (Machine Dependent Options) <ARC Options>: Add synopsis.
1837 (node ARC Options): Add.
1838 * doc/extend.texi (long_call / short_call attribute): Add ARC.
1839 (ARC Built-in Functions): New section defining
1840 generic ARC built-in functions.
1841 (ARC SIMD Built-in Functions): New section defining SIMD specific
1842 built-in functions.
1843 (Declaring Attributes of Functions): Extended
1844 description of short_call and long_call attributes for ARC and
1845 added index entries.
1846
526b7aee
SV
18472013-10-01 Saurabh Verma <saurabh.verma@codito.com>
1848 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
1849 Joern Rennecke <joern.rennecke@embecosm.com>
1850 Muhammad Khurram Riaz <khurram.riaz@arc.com>
1851 Brendan Kehoe <brendan@zen.org>
1852 Michael Eager <eager@eagercon.com>
1853 Simon Cook <simon.cook@embecosm.com>
1854 Jeremy Bennett <jeremy.bennett@embecosm.com>
1855
1856 * config/arc, common/config/arc: New directories.
1857
53426f6c
JR
18582013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1859 Brendan Kehoe <brendan@zen.org>
1860 Simon Cook <simon.cook@embecosm.com>
1861
1862 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
1863
1df9f5a9
AM
18642013-10-01 Andrew MacLeod <amacleod@redhat.com>
1865
1866 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
1867 * tree-ssa-coalesce.h: New. Move prototype to here.
1868 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
1869 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
1870 (gimple_can_coalesce_p): Move to...
1871 * gimple.c (gimple_can_coalesce_p): Here.
1872
80560f95
AM
18732013-10-01 Andrew MacLeod <amacleod@redhat.com>
1874
1875 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
1876 (dump_decl_set): Move to gimple.c.
1877 * gimple.h: Don't include tree-ssa-operands.h.
1878 (dump_decl_set): Add prototype.
1879 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
1880 Move to gimple-ssa.h.
1881 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
1882 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
1883 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
1884 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
1885 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
1886 than PHI_ARG_DEF.
1887 (dump_decl_set): Relocate here.
1888 * gimple-ssa.h: New file.
1889 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
1890 Relocate from gimple.h.
1891 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
1892 * tree-ssa-operands.c (swap_ssa_operands): Rename from
1893 swap_tree_operands and remove non-ssa path.
1894 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
1895 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
1896 swap_ssa_operands.
1897 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
1898 vect_is_simple_reduction_1): Use swap_ssa_operands.
1899 * tree-flow.h: Move various prototypes to tree-phinodes.h.
1900 (enum need_phi_state): Move to tree-into-ssa.c.
1901 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
1902 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
1903 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
1904 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
1905 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
1906 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
1907 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
1908 num_imm_uses): Move to ssa-iterators.h.
1909 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
1910 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
1911 tree-phinodes.h.
1912 (op_iter_done, op_iter_next_def, op_iter_next_tree,
1913 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
1914 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
1915 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
1916 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
1917 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
1918 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
1919 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
1920 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
1921 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
1922 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
1923 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
1924 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
1925 (set_phi_nodes): Move to tree-phinodes.h.
1926 * tree-ssa-operands.h (enum ssa_op_iter_type,
1927 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
1928 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
1929 (dump_decl_set): Remove prototype.
1930 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
1931 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
1932 (set_phi_nodes): Relocate from tree-flow-inline.h.
1933 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
1934 tree-flow-inline.h
1935 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
1936 include list. Temporarily add gimple.h to include list.
1937 * ssa-iterators.h: New file.
1938 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
1939 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
1940 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
1941 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
1942 Relocate from tree-ssa-operands.h.
1943 (delink_imm_use, link_imm_use_to_list, link_imm_use,
1944 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
1945 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
1946 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
1947 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
1948 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
1949 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
1950 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
1951 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
1952 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
1953 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
1954 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
1955 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
1956 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
1957 Relocate from tree-flow-inline.h.
1958 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
1959
8da00d65
VP
19602013-10-01 Vidya Praveen <vidyapraveen@arm.com>
1961
1962 * aarch64-simd.md
1963 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
1964 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
1965 Insert '\t' to output template.
1966 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
1967 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
1968 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
1969 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
1970
e2ebe1c2
UB
19712013-10-01 Uros Bizjak <ubizjak@gmail.com>
1972
1973 * doc/install.texi (Host/target specific installation notes for GCC):
1974 Put @anchor before @heading.
1975 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
1976 Use @email for email addresses.
1977
aee2d611
JL
19782013-10-01 Jeff Law <law@redhat.com>
1979
1980 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
1981 a vec. Only delete the path if we create one without successfully
1982 registering a jump thread.
1983 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
1984 as a pointer.
1985 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
1986 (paths): New vector of jump threading paths.
1987 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
1988 (THREAD_PATH): New accessor macro for the entire thread path.
1989 (lookup_redirection_data): Get intermediate and final outgoing edge
1990 from the thread path.
1991 (create_edge_and_update_destination_phis): Copy the threading path.
1992 (ssa_fix_duplicate_block_edges): Get edges and block types from the
1993 jump threading path.
1994 (ssa_redirect_edges): Get edges and block types from the jump threading
1995 path. Free the path vector.
1996 (thread_block): Get edges from the jump threading path. Look at the
1997 entire path to see if we thread to a loop exit. If we cancel a jump
1998 thread request, then free the path vector.
1999 (thread_single_edge): Get edges and block types from the jump threading
2000 path. Free the path vector.
2001 (thread_through_loop_header): Get edges and block types from the jump
2002 threading path. Free the path vector.
2003 (mark_threaded_blocks): Iterate over the vector of paths and store
2004 the path on the appropriate edge. Get edges and block types from the
2005 jump threading path.
2006 (mark_threaded_blocks): Get edges and block types from the jump
2007 threading path. Free the path vector.
2008 (thread_through_all_blocks): Use the vector of paths rather than
2009 a vector of 3-edge sets.
2010 (register_jump_thread): Accept pointer to a path vector rather
2011 than the path vector itself. Store the path vector for later use.
2012 Simplify.
2013
966f97ac 20142013-10-01 Jakub Jelinek <jakub@redhat.com>
8da00d65 2015 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
966f97ac
JJ
2016
2017 PR target/58574
2018 * config/s390/s390.c (s390_split_branches): Modify check for table
2019 jump insns.
2020 (s390_chunkify_start): Rearrange table jump insn check in order to
2021 deal with compare and branch insns correctly.
2022
3a323a38
KV
20232013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
2024
2025 PR target/58578
2026 Revert
2027 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
2028 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
2029 define_insn_and_split.
2030 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2031 (shiftsi3_compare): New pattern.
2032 (rrx): New pattern.
2033 * config/arm/unspecs.md (UNSPEC_RRX): New.
2034
90444831
AM
20352013-10-01 Alan Modra <amodra@gmail.com>
2036
2037 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
2038 casing inout operands.
2039
818625cf
RB
20402013-10-01 Richard Biener <rguenther@suse.de>
2041
2042 PR tree-optimization/58553
2043 * tree-loop-distribution.c (struct partition_s): Add niter member.
2044 (classify_partition): Populate niter member for the partition
2045 and properly identify whether the relevant store happens before
2046 or after the loop exit.
2047 (generate_memset_builtin): Use niter member from the partition.
2048 (generate_memcpy_builtin): Likewise.
2049
30f641cd
RS
20502013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
2051
2052 * vec.h (vec_prefix, vec): Prefix member names with "m_".
2053 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
2054
65d3284b
RS
20552013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
2056
2057 * basic-block.h (edge_list): Prefix member names with "m_".
2058 * context.h (context): Likewise.
2059 * domwalk.h (dom_walker): Likewise.
2060 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
2061 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
2062 * hash-table.h (hash_table): Likewise.
2063 * machmode.h (bit_field_mode_iterator): Likewise.
2064 * pass_manager.h (pass_list): Likewise.
2065 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
2066 * tree-pass.h (pass_data): Likewise.
2067 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
2068 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
2069 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
2070 * asan.c (pass_data_asan): Update accordingly.
2071 * cfganal.c (control_dependences::find_control_dependence): Likewise.
2072 (control_dependences::control_dependences): Likewise.
2073 (control_dependences::~control_dependences): Likewise.
2074 (control_dependences::~control_dependences): Likewise.
2075 (control_dependences::get_edges_dependent_on): Likewise.
2076 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
2077 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
2078 * context.c (gcc::context::context): Likewise.
2079 * cprop.c (pass_rtl_cprop::clone): Likewise.
2080 * domwalk.c (dom_walker::walk): Likewise.
2081 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
2082 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
2083 * mode-switching.c (pass_mode_switching::clone): Likewise.
2084 * passes.c (opt_pass::opt_pass): Likewise.
2085 (pass_manager::pass_manager): Likewise.
2086 * predict.c (pass_strip_predict_hints::clone): Likewise.
2087 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
2088 (pass_split_all_insns::clone): Likewise.
2089 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
2090 Likewise.
2091 (bit_field_mode_iterator::next_mode): Likewise.
2092 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
2093 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
2094 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
2095 * tree-complex.c (pass_lower_complex::clone): Likewise.
2096 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
2097 * tree-object-size.c (pass_object_sizes::clone): Likewise.
2098 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
2099 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
2100 (pass_fold_builtins::clone): Likewise.
2101 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
2102 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
2103 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
2104 (pass_cd_dce::clone): Likewise.
2105 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
2106 (pass_phi_only_cprop::clone): Likewise.
2107 * tree-ssa-dse.c (pass_dse::clone): Likewise.
2108 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
2109 * tree-ssa-loop.c (pass_lim::clone): Likewise.
2110 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
2111 * tree-ssa-pre.c (pass_fre::clone): Likewise.
2112 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
2113 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
2114 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
2115 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
2116 * tree-vrp.c (pass_vrp::clone): Likewise.
2117 * tsan.c (pass_tsan::clone): Likewise.
2118
f66d0891
JJ
21192013-09-30 Jakub Jelinek <jakub@redhat.com>
2120
d2a365a8
JJ
2121 PR middle-end/58564
2122 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
2123 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
2124
f66d0891
JJ
2125 PR middle-end/58564
2126 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
2127 optimization, punt if sign_bit_p looked through any zero extension.
2128
05357ac3
TJ
21292013-09-30 Teresa Johnson <tejohnson@google.com>
2130
2131 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
2132 Update redirected out edge count in joiner case.
2133 (ssa_redirect_edges): Common the joiner and non-joiner cases
2134 so that joiner case gets profile updates.
2135
ca406576
RB
21362013-09-30 Richard Biener <rguenther@suse.de>
2137
2138 PR tree-optimization/58554
e2ebe1c2
UB
2139 * tree-loop-distribution.c (classify_partition): Require
2140 unconditionally executed stores for memcpy and memset recognition.
ca406576
RB
2141 (tree_loop_distribution): Calculate dominance info.
2142
92d649c4
VK
21432013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2144
2145 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
2146 (NO_PROFILE_COUNTERS): Likewise.
2147 (PROFILE_HOOK): Likewise.
2148 (FUNCTION_PROFILER): Likewise.
2149 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
2150
bd9534e2
IS
21512013-09-30 Iain Sandoe <iain@codesourcery.com>
2152
2153 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
2154 calls and defines in TARGET_MACHO conditional.
2155 (load_macho_picbase_di): Likewise.
2156 (reload_macho_picbase): Likewise.
2157 (reload_macho_picbase_si): Likewise.
2158 (reload_macho_picbase_di): Likewise.
2159 (nonlocal_goto_receiver): Likewise.
2160
4494fbc9
NC
21612013-09-30 Nick Clifton <nickc@redhat.com>
2162
2163 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
2164 that use the MSP430X ISA.
2165 (msp430_option_override): Scan -mmcu command line option for any
2166 MCU name that supports the MSP430X ISA.
2167 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
2168 -mmcu options which enable the MSP430X ISA.
2169
791d9044
RB
21702013-09-30 Richard Biener <rguenther@suse.de>
2171
2172 PR middle-end/58532
2173 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
2174 before looking for setjmp-like calls.
2175
e1c5c877
IS
21762013-09-29 Iain Sandoe <iain@codesourcery.com>
2177
2178 PR target/10901
2179 * config/darwin-protos.h (machopic_get_function_picbase): New.
2180 * config/darwin.c (machopic_get_function_picbase): New.
2181 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
2182 label for a new func. (load_macho_picbase_di): Likewise.
2183 (reload_macho_picbase): New expand.
2184 (reload_macho_picbase_si): New insn.
2185 (reload_macho_picbase_di): New insn.
2186 (nonlocal_goto_receiver): New define and split.
2187 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
2188 (unspecv enum): Add UNSPECV_NLGR.
2189
749278c5
IS
21902013-09-29 Iain Sandoe <iain@codesourcery.com>
2191
2192 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
2193 that altivec registers are correctly sized on Darwin.
2194
2c43a51c
IS
21952013-09-29 Iain Sandoe <iain@codesourcery.com>
2196
2197 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
2198 darwin-driver.o): Use COMPILE and POSTCOMPILE.
2199 * config/x-darwin (host-darwin.o): Likewise.
2200 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2201 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2202 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2203
7a5911d3
UB
22042013-09-29 Uros Bizjak <ubizjak@gmail.com>
2205
2206 * doc/invoke.texi: Fix usage of @tie{} command.
2207
3f67a73d
EB
22082013-09-29 Eric Botcazou <ebotcazou@adacore.com>
2209
2210 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
2211
9ac2f538
JH
22122013-09-28 Jan Hubicka <jh@suse.cz>
2213
2214 * config/i386/x86-tune.def: Add documentation for each of the options;
2215 add whitespace.
2216
b0ff06da
JH
22172013-09-28 Jan Hubicka <jh@suse.cz>
2218
7a5911d3
UB
2219 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
2220 generic.
b0ff06da
JH
2221 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
2222 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
2223 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
2224 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
2225 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
2226
c3284718
RS
22272013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
2228
2229 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
2230 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
2231 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
2232 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
2233 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
2234 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
2235 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
2236 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
2237 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
2238 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
2239 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
2240 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
2241 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
2242 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
2243 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
2244 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
2245 gimple.h, godump.c, graphite-clast-to-gimple.c,
2246 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
2247 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
2248 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
2249 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
2250 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
2251 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
2252 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
2253 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
2254 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
2255 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
2256 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
2257 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
2258 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
2259 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
2260 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
2261 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
2262 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
2263 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
2264 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
2265 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
2266 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
2267 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
2268 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
2269 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
2270 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
2271 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
2272 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
2273 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
2274 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2275 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
2276 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
2277 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
2278 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
2279 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
2280 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
2281 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
2282 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
2283 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
2284 whitespace before "(".
2285
c6285bd7
SL
22862013-09-28 Sandra Loosemore <sandra@codesourcery.com>
2287
2288 * expr.h (extract_bit_field): Remove packedp parameter.
2289 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
2290 from forward declaration.
2291 (store_split_bit_field): Remove packedp arg from calls to
2292 extract_fixed_bit_field.
2293 (extract_bit_field_1): Remove packedp parameter and packedp
2294 argument from recursive calls and calls to extract_fixed_bit_field.
2295 (extract_bit_field): Remove packedp parameter and corresponding
2296 arg to extract_bit_field_1.
2297 (extract_fixed_bit_field): Remove packedp parameter. Remove code
2298 to issue warnings.
2299 (extract_split_bit_field): Remove packedp arg from call to
2300 extract_fixed_bit_field.
2301 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
2302 (copy_blkmode_from_reg): Likewise.
2303 (copy_blkmode_to_reg): Likewise.
2304 (read_complex_part): Likewise.
2305 (store_field): Likewise.
2306 (expand_expr_real_1): Likewise.
2307 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
2308 to extract_bit_field.
2309 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
2310 call to extract_bit_field.
2311 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
2312 call to extract_bit_field.
2313 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
2314 and special packedp behavior from -fstrict-volatile-bitfields
2315 documentation.
2316
522d4efc
JBG
23172013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2318
2319 * lra-eliminations.c (init_elim_table): Guard value_p.
2320
19cdb489
MM
23212013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2322
2323 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
2324 DFmode, DImode, and SFmode in the upper VSX registers based on the
2325 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
2326 if -mpower8-vector. Combine -mvsx-timode handling with the rest
2327 of the VSX register handling.
2328
2329 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
2330 (f32_sv): Likewise.
2331 (zero_extendsidi2_lfiwzx): Add support for loading into the
2332 Altivec registers with -mpower8-vector. Use wu/wv constraints to
2333 only do VSX memory options on Altivec registers.
2334 (extendsidi2_lfiwax): Likewise.
2335 (extendsfdf2_fpr): Likewise.
2336 (mov<mode>_hardfloat, SF/SD modes): Likewise.
2337 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
2338 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
2339 (movdi_internal64): Likewise.
2340
d6d11272
XDL
23412013-09-27 Xinliang David Li <davidxl@google.com>
2342
2343 * opts.c (finish_options): Adjust parameters
2344 according to vect cost model.
2345 (common_handle_option): Set dynamic vect cost
2346 model for FDO.
2347 targhooks.c (default_add_stmt_cost): Compute stmt cost
2348 unconditionally.
2349 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
2350 Use helper function.
2351 * tree-vectorizer.h (unlimited_cost_model): New function.
2352 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
2353 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
2354 function.
2355 (vect_enhance_data_refs_alignment): Ditto.
2356 * flag-types.h: New enum.
2357 * common/config/i386/i386-common.c (ix86_option_init_struct):
2358 No need to initialize vect_cost_model flag.
2359 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
2360 unconditionally.
2361
ac1857a3
DN
23622013-09-27 Diego Novillo <dnovillo@google.com>
2363
2364 * gimple.h (enum ssa_mode): Remove.
2365
3c468b4c
PM
23662013-09-27 Paulo Matos <pmatos@broadcom.com>
2367
2368 PR middle-end/58463
2369 * gcc.dg/pr58463.c: New test.
2370
0d0e2af6
PM
23712013-09-27 Paulo Matos <pmatos@broadcom.com>
2372
2373 * cfgloop.h (number_of_loops): Fix typo in check for null.
2374
09dc585e
JJ
23752013-09-27 Jakub Jelinek <jakub@redhat.com>
2376
2377 PR middle-end/58551
2378 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
2379 are children of outermost saved_cfun's loop, and set it up to
2380 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
2381 if loop != loop0 and SESE region contains bbs that belong to loop0.
2382
ec5a3504
RS
23832013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2384
2385 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
2386 (binary_scale_code_p, get_base_term, get_index_term): New functions.
2387 (set_address_segment, set_address_base, set_address_index)
2388 (set_address_disp): Accept the argument unconditionally.
2389 (baseness): Remove must_be_base_p and must_be_index_p checks.
2390 (decompose_normal_address): Classify as much as possible in the
2391 main loop.
2392
f91aec98
RS
23932013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2394
2395 * cse.c (count_reg_usage): Handle INT_LIST.
2396 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
2397 * reginfo.c (reg_scan_mark_refs): Likewise.
2398 * reload1.c (eliminate_regs_1): Likewise.
2399
a9195970
IS
24002013-09-27 Iain Sandoe <iain@codesourcery.com>
2401
2402 PR middle-end/58547
2403 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
2404 signed.
2405
e6f1c509
RB
24062013-09-27 Richard Biener <rguenther@suse.de>
2407
2408 PR tree-optimization/58459
2409 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
2410 restriction not propagating into loops.
2411
84f48495
FW
24122013-09-26 Florian Weimer <fw@deneb.enyo.de>
2413
2414 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
2415 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
2416 * doc/tree-ssa.texi (Walking use-def chains): Delete.
2417
74fc8b8a
RB
24182013-09-26 Richard Biener <rguenther@suse.de>
2419
7a5911d3 2420 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
74fc8b8a 2421
b4ada065
RB
24222013-09-26 Richard Biener <rguenther@suse.de>
2423
2424 * alias.h (component_uses_parent_alias_set): Rename to ...
2425 (component_uses_parent_alias_set_from): ... this.
2426 * alias.c (component_uses_parent_alias_set): Rename to ...
2427 (component_uses_parent_alias_set_from): ... this and return
2428 the desired parent.
2429 (reference_alias_ptr_type_1): Use the result from
2430 component_uses_parent_alias_set_from instead of stripping
2431 components one at a time.
2432 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
2433
78bca40d
AM
24342013-09-26 Andrew MacLeod <amacleod@redhat.com>
2435
7a5911d3
UB
2436 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
2437 Move prototypes to...
78bca40d
AM
2438 * tree-ssa-ter.h: New File. Move prototypes here.
2439 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
2440 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
2441 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
7a5911d3 2442 from is_replaceable_p.
78bca40d
AM
2443 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
2444 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
2445 (process_replaceable): Use ter_is_replaceable_p.
2446 (find_replaceable_in_bb): Use ter_is_replaceable_p.
2447 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
2448 newly refactored ssa_is_replaceable_p.
2449 * cfgexpand.c: Include tree-outof-ssa.h.
2450 * ssaexpand.h: Delete.
2451
ff2a63a7
AM
24522013-09-26 Andrew MacLeod <amacleod@redhat.com>
2453
2454 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
2455 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
2456 tree-ssa.c
2457 (create_gimple_tmp): Delete.
2458 (get_expr_type, build_assign, build_type_cast): Move to...
2459 * gimple-builder.c: New File.
2460 (get_expr_type): Relocate from gimple.c.
2461 (build_assign, build_type_cast): Change to only create ssanames.
2462 * gimple.h: Move prototypes to...
2463 * gimple-builder.h: New File. Here.
2464 * tree-ssa.h: And here.
2465 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
2466 count_uses_and_derefs): Relocate from gimple.c.
2467 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
2468 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
2469 * tree-ssa-math-opts (execute_cse_reciprocals): Use
2470 gimple_replace_ssa_lhs.
2471 * asan.c: Include gimple-builder.h.
2472 * Makefile.in: Add gimple-builder.o.
2473
a2544177
RB
24742013-09-26 Richard Biener <rguenther@suse.de>
2475
2476 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
2477 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
2478 (loe_visit_block): Use gcc_checking_assert.
2479 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
2480 gimple_assign_ssa_name_copy_p.
2481 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
2482 change.
2483
6d1ca9a0
DE
24842013-09-26 David Edelsohn <dje.gcc@gmail.com>
2485
2486 * config/rs6000/t-rs6000 (rs6000.o): Remove.
2487 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
2488
46e950db
RB
24892013-09-26 Richard Biener <rguenther@suse.de>
2490
2491 PR tree-optimization/58539
2492 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
2493 the fact that debug statements are not taking part in loop-closed
2494 SSA construction.
2495
40ada30a
NC
24962013-09-26 Nick Clifton <nickc@redhat.com>
2497
2498 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
2499 time warning message.
2500 (msp430_print_operand_raw): Delete unused letter parameter.
2501 (TARGET_PRINT_OPERAND_ADDRESS): Define.
2502 (msp430_print_operand_address): New function.
2503 (msp430_print_operand): Move address printing code from here to
2504 new function.
2505 * config/msp430/msp430.md (movsipsi2): Add comment in generated
2506 assembler.
2507 (zero_extendpsisi2): Likewise.
2508 (extendpsisi2): New pattern.
2509 (andneghi3): New pattern.
2510
38e8f663
YR
25112013-09-26 Yvan Roux <yvan.roux@linaro.org>
2512
2513 * config/aarch64/aarch64.opt (mlra): New option.
2514 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
2515 (TARGET_LRA_P): Define.
2516
4167e8d4
EB
25172013-09-26 Eric Botcazou <ebotcazou@adacore.com>
2518
2519 * expr.c (expand_assignment): Remove obsolete comment.
2520
5254eac4
JL
25212013-09-25 Jeff Law <law@redhat.com>
2522
2523 * tree-flow.h (thread_through_all_blocks): Prototype moved into
2524 tree-ssa-threadupdate.h.
2525 (register_jump_thread): Similarly.
2526 * tree-ssa-threadupdate.h: New header file.
2527 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
2528 * tree-vrp.c: Likewise.
2529 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
2530 (thread_around_empty_blocks): Change type of path vector argument to
2531 an edge,type pair from just an edge. Initialize both elements when
2532 appending to a jump threading path. Tweak references to elements
2533 appropriately.
2534 (thread_across_edge): Similarly. Release memory for the elements
2535 as needed.
2536 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
2537 (dump_jump_thread_path): New function broken out from
2538 register_jump_thread.
2539 (register_jump_thread): Use dump_jump_thread_path. Change type of
2540 path vector entries. Search the path for NULL edges and dump
2541 the path if one is found. Tweak the conversion of path to 3-edge
2542 form to use the block copy type information embedded in the path.
2543
20f114a3
YR
25442013-09-25 Yvan Roux <yvan.roux@linaro.org>
2545
2546 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
2547
3936bafc
YR
25482013-09-25 Yvan Roux <yvan.roux@linaro.org>
2549 Vladimir Makarov <vmakarov@redhat.com>
2550
2551 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
2552 from the least significant bit.
2553 (strip_address_mutations): Add bitfield operations handling.
2554 (must_be_index_p): Add shifting and rotate operations handling.
2555 (set_address_base): Use must_be_base_p predicate.
4167e8d4 2556 (set_address_index): Use must_be_index_p predicate.
3936bafc 2557
b86f6e9e
AI
25582013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
2559 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
2560 Sergey Lega <sergey.s.lega@intel.com>
2561 Anna Tikhonova <anna.tikhonova@intel.com>
2562 Ilya Tocar <ilya.tocar@intel.com>
2563 Andrey Turetskiy <andrey.turetskiy@intel.com>
2564 Ilya Verbin <ilya.verbin@intel.com>
2565 Kirill Yukhin <kirill.yukhin@intel.com>
2566 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
2567
2568 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2569 Use new names.
2570 (ix86_expand_vector_move_misalign): Support new unaligned load and
2571 stores and use new names.
2572 (CODE_FOR_sse2_storedqu): Rename to ...
2573 (CODE_FOR_sse2_storedquv16qi): ... this.
2574 (CODE_FOR_sse2_loaddqu): Rename to ...
2575 (CODE_FOR_sse2_loaddquv16qi): ... this.
2576 (CODE_FOR_avx_loaddqu256): Rename to ...
2577 (CODE_FOR_avx_loaddquv32qi): ... this.
2578 (CODE_FOR_avx_storedqu256): Rename to ...
2579 (CODE_FOR_avx_storedquv32qi): ... this.
2580 * config/i386/i386.md (fpint_logic): New.
2581 * config/i386/sse.md (VMOVE): Extend for AVX512.
2582 (VF): Ditto.
2583 (VF_128_256): New.
2584 (VF_512): Ditto.
2585 (VI_UNALIGNED_LOADSTORE): Ditto.
2586 (sse2_avx_avx512f): Ditto.
2587 (sse2_avx2): Extend for AVX512.
2588 (sse4_1_avx2): Ditto.
2589 (avx2_avx512f): New.
2590 (sse): Extend for AVX512.
2591 (sse2): Ditto.
2592 (sse4_1): Ditto.
2593 (avxsizesuffix): Ditto.
2594 (sseintvecmode): Ditto.
2595 (ssePSmode): Ditto.
2596 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
2597 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
2598 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2599 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
2600 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
2601 (<sse2_avx_avx512f>_storedqu<mode): ... this.
2602 (<sse>_movnt<mode>): Replace constraint "x" with "v".
2603 (STORENT_MODE): Extend for AVX512.
2604 (*absneg<mode>2): Replace constraint "x" with "v".
2605 (*mul<mode>3): Ditto.
2606 (*ieee_smin<mode>3): Ditto.
2607 (*ieee_smax<mode>3): Ditto.
2608 (avx_cmp<mode>3): Replace VF with VF_128_256.
2609 (*<sse>_maskcmp<mode>3_comm): Ditto.
2610 (<sse>_maskcmp<mode>3): Ditto.
2611 (<sse>_andnot<mode>3): Extend for AVX512.
2612 (<code><mode>3, anylogic): Replace VF with VF_128_256.
2613 (<code><mode>3, fpint_logic): New.
2614 (*<code><mode>3): Extend for AVX512.
2615 (avx512flogicsuff): New.
2616 (avx512f_<logic><mode>): Ditto.
2617 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
2618 VF_128_256.
2619 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
2620 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
2621 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
2622 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
2623 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
2624 (xop_vpermil2<mode>3): Ditto.
2625 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
2626 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
2627 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
2628 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
2629
4d44d03c
TT
26302013-09-25 Tom Tromey <tromey@redhat.com>
2631
2632 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
2633 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
2634 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
2635 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
2636 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
2637 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
2638 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
2639 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
2640 (GRAPHITE_HTAB_H): Remove.
2641
86aaf68d
TT
26422013-09-25 Tom Tromey <tromey@redhat.com>
2643
2644 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
2645
c987deb8
TT
26462013-09-25 Tom Tromey <tromey@redhat.com>
2647
2648 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
2649
9439747e
TT
26502013-09-25 Tom Tromey <tromey@redhat.com>
2651
2652 * config/i386/t-i386 (i386.o): Remove.
2653 (i386-c.o): Use COMPILE and POSTCOMPILE.
2654
aefc31a1
TT
26552013-09-25 Tom Tromey <tromey@redhat.com>
2656
2657 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
2658
b6541edc
TT
26592013-09-25 Tom Tromey <tromey@redhat.com>
2660
2661 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
2662 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
2663 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
2664 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
2665 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
2666 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
2667 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
2668 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
2669 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
2670 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
2671 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
2672 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
2673 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
2674 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
2675 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
2676 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
2677 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
2678 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
2679 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
2680 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
2681 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
2682 (tree-ssa-pre.o, tree-ssa-sccvn.o)
2683 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
2684 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
2685 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
2686 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
2687 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
2688 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
2689 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
2690 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
2691 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
2692 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
2693 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
2694 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
2695 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
2696 (graphite-clast-to-gimple.o, graphite-dependences.o)
2697 (graphite-interchange.o, graphite-poly.o)
2698 (graphite-scop-detection.o, graphite-sese-to-poly.o)
2699 (graphite-optimize-isl.o, tree-vect-loop.o)
2700 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
2701 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
2702 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
2703 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
2704 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
2705 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
2706 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
2707 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
2708 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
2709 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
2710 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
2711 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
2712 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
2713 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
2714 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
2715 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
2716 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
2717 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
2718 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
2719 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
2720 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
2721 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
2722 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
2723 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
2724 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
2725 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
2726 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
2727 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
2728 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
2729 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
2730 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
2731 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
2732 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
2733 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
2734 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
2735 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
2736 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
2737 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
2738 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
2739 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
2740 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
2741 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
2742 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
2743 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
2744 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
2745 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
2746 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
2747 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
2748 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
2749 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
2750 (gcov-dump.o): Remove.
2751 (default-c.o): Use COMPILE and POSTCOMPILE.
2752 (CFLAGS-gcc.o): New variable.
2753 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
2754
8c796d19
TT
27552013-09-25 Tom Tromey <tromey@redhat.com>
2756
2757 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
2758 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
2759 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
2760 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
2761 (c-family/c-pragma.o, c-family/c-pretty-print.o)
2762 (c-family/c-semantics.o, c-family/c-ada-spec.o)
2763 (c-family/array-notation-common.o, c-family/stub-objc.o)
2764 (c-family/c-ubsan.o): Remove.
2765
0a6c2227
TT
27662013-09-25 Tom Tromey <tromey@redhat.com>
2767
2768 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
2769
f3bc55f0
TT
27702013-09-25 Tom Tromey <tromey@redhat.com>
2771
2772 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
2773 to add -DENABLE_SHARED_LIBGCC.
2774 (gcc.o): Don't use subshell.
2775
c11c795e
TT
27762013-09-25 Tom Tromey <tromey@redhat.com>
2777
2778 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
2779 * configure.ac: Don't invoke AM_PROG_CC_C_O.
2780 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
2781 * configure, config.in: Rebuild.
2782
043378c3
TT
27832013-09-25 Tom Tromey <tromey@redhat.com>
2784
2785 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
2786 (COMPILE, POSTCOMPILE): New variables.
2787 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
2788 (DEPFILES): New variable.
2789 Include ".Po" files.
2790 * configure.ac: Add checks for dependency checking.
2791 * configure, aclocal.m4: Regenerate.
2792
eab34643
TT
27932013-09-25 Tom Tromey <tromey@redhat.com>
2794
2795 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
7a5911d3 2796 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
eab34643 2797
d2db5e91
TT
27982013-09-25 Tom Tromey <tromey@redhat.com>
2799
2800 * Makefile.in (generated_files): Add options.h,
2801 target-hooks-def.h, insn-opinit.h,
2802 common/common-target-hooks-def.h, pass-instances.def,
2803 c-family/c-target-hooks-def.h.
2804
af33629e
JL
28052013-09-25 Jeff Law <law@redhat.com>
2806
2807 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
2808 than foo[foo.length () - 1] to access last member in a vec.
2809 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
2810
ed0d3051
RB
28112013-09-25 Richard Biener <rguenther@suse.de>
2812
2813 PR middle-end/58521
2814 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
2815
123485ca
JH
28162013-09-25 Jan Hubicka <jh@suse.cz>
2817
2818 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
2819 test.
2820
d70b0f1f
MP
28212013-09-25 Marek Polacek <polacek@redhat.com>
2822
2823 PR sanitizer/58420
2824 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
2825 when determining the type name.
2826
e3f02798
OE
28272013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
2828
2829 * config/sh/sh.md: Fix formatting.
2830
7a5911d3 28312013-09-24 Xinliang David Li <davidxl@google.com>
4f17aa0b 2832
7a5911d3
UB
2833 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
2834 max peel iterations parameter.
4f17aa0b
XDL
2835 * param.def: New parameter.
2836 * doc/invoke.texi: Document New parameter.
2837
0498471b
CL
28382013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
2839
2840 * gimple-pretty-print.c: Various whitespace tweaks.
2841 * tree-core.h: Likewise.
2842 * tree-pretty-print.c: Likewise.
2843 * tree-ssa-alias.c: Likewise.
2844 * tree-ssa-copy.c: Likewise.
2845 * tree-ssanames.c: Likewise.
2846 * tree-ssanames.h: Likewise.
2847 * tree-vrp.c: Likewise.
2848
5a8c2b57
AM
28492013-09-24 Alan Modra <amodra@gmail.com>
2850
2851 PR middle-end/57134
2852 PR middle-end/57586
7a5911d3
UB
2853 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
2854 for output operands that disallow regs. Don't use EXPAND_WRITE on
2855 inout operands.
5a8c2b57 2856
f40333af
RB
28572013-09-24 Richard Biener <rguenther@suse.de>
2858
2859 PR middle-end/58513
2860 * tree.c (reference_alias_ptr_type): Move ...
2861 * alias.c (reference_alias_ptr_type): ... here and implement
2862 in terms of the new reference_alias_ptr_type_1.
2863 (ref_all_alias_ptr_type_p): New helper.
2864 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
2865 use ref_all_alias_ptr_type_p.
2866 (get_deref_alias_set): Add flag_strict_aliasing check here.
2867 (reference_alias_ptr_type_1): New function, split out from ...
2868 (get_alias_set): ... here.
2869 (alias_ptr_types_compatible_p): New function.
2870 * alias.h (reference_alias_ptr_type): Declare.
2871 (alias_ptr_types_compatible_p): Likewise.
2872 * tree.h (reference_alias_ptr_type): Remove.
2873 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
2874 to compare MEM_REF alias types.
2875
583e8bf5
RB
28762013-09-24 Richard Biener <rguenther@suse.de>
2877
2878 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
2879
5e8586d7
MM
28802013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2881
19c3e797
MM
2882 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
2883 reload helper function arrays into a single array reg_addr.
2884 (reload_fpr_gpr): Likewise.
2885 (reload_gpr_vsx): Likewise.
2886 (reload_vsx_gpr): Likewise.
2887 (struct rs6000_reg_addr): Likewise.
2888 (reg_addr): Likewise.
2889 (rs6000_debug_reg_global): Change rs6000_vector_reload,
2890 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
2891 (rs6000_init_hard_regno_mode_ok): Likewise.
2892 (rs6000_secondary_reload_direct_move): Likewise.
2893 (rs6000_secondary_reload): Likewise.
2894
5e8586d7
MM
2895 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
2896 constraints: wu, ww, and wy. Repurpose wv constraint added during
2897 power8 changes. Put wg constraint in alphabetical order.
2898
2899 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
2900 for future work to add ISA 2.07 VSX single precision support.
2901 (-mvsx-scalar-double): Change default from -1 to 1, update
2902 documentation comment.
2903 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
2904 (-mupper-regs-df): New debug switch to control whether DF values
2905 can go in the traditional Altivec registers.
2906 (-mupper-regs-sf): New debug switch to control whether SF values
2907 can go in the traditional Altivec registers.
2908
2909 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
2910 and wy constraints.
2911 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
2912 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
2913 Add new constraints, wu/ww/wy. Repurpose wv constraint.
2914 (rs6000_debug_legitimate_address_p): Print if we are running
2915 before, during, or after reload.
2916 (rs6000_secondary_reload): Add a comment.
2917 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
2918
2919 * config/rs6000/constraints.md (wa constraint): Sort w<x>
2920 constraints. Update documentation string.
2921 (wd constraint): Likewise.
2922 (wf constraint): Likewise.
2923 (wg constraint): Likewise.
2924 (wn constraint): Likewise.
2925 (ws constraint): Likewise.
2926 (wt constraint): Likewise.
2927 (wx constraint): Likewise.
2928 (wz constraint): Likewise.
2929 (wu constraint): New constraint for ISA 2.07 SFmode scalar
2930 instructions.
2931 (ww constraint): Likewise.
2932 (wy constraint): Likewise.
2933 (wv constraint): Repurpose ISA 2.07 constraint that we not used in
2934 the previous submissions.
2935 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
2936
e5af9ddd
RS
29372013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
2938
2939 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
2940 (REG_BR_PROB): Say that the probability is stored in an int_list.
2941 * reg-notes.def: Update commentary to mention INT_LIST.
2942 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
2943 (INT_LIST): New rtx.
2944 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
2945 * rtlanal.c (int_reg_note_p): New function.
2946 (alloc_reg_note): Assert that the note does not have an int argument.
2947 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
2948 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
2949 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
2950 rather than an INSN_LIST. Handle INT_LIST.
2951 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
2952 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
2953 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
2954 Manipulate them as ints rather than rtxes.
2955 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
2956 * regmove.c (copy_src_to_dest): Likewise.
2957 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
2958
2959 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
2960 into the cases that need it.
2961 * config/arm/arm.c (arm_unwind_emit): Likewise.
2962
2963 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
2964 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
2965 * loop-doloop.c (add_test, doloop_modify): Likewise.
2966 * loop-unswitch.c (compare_and_jump_seq): Likewise.
2967 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
2968 * predict.c (combine_predictions_for_insn): Likewise.
2969 * print-rtl.c (print_rtx): Handle INT_LIST.
2970 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
2971 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
2972 * config/arm/arm.c (emit_unlikely_jump): Likewise.
2973 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
2974 (ix86_split_fp_branch, predict_jump): Likewise.
2975 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
2976 * config/sh/sh.c (expand_cbranchsi4): Likewise.
2977 * config/spu/spu.c (ea_load_store_inline): Likewise.
2978
2979 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
2980 value of a REG_BR_PROB note.
2981 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2982 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
2983 * emit-rtl.c (try_split): Likewise.
2984 * predict.c (br_prob_note_reliable_p): Likewise.
2985 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
2986 * reorg.c (mostly_true_jump): Likewise.
2987 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
2988 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
2989 * config/i386/i386.c (ix86_print_operand): Likewise.
2990 * config/ia64/ia64.c (ia64_print_operand): Likewise.
2991 * config/mmix/mmix.c (mmix_print_operand): Likewise.
2992 * config/rs6000/rs6000.c (output_cbranch): Likewise.
2993 * config/s390/s390.c (s390_expand_tbegin): Likewise.
2994 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
2995 * config/sparc/sparc.c (output_cbranch): Likewise.
2996 * config/spu/spu.c (get_branch_target): Likewise.
2997 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
2998 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
2999
450ad0cd
JH
30002013-09-23 Jan Hubicka <jh@suse.cz>
3001
3002 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
3003 for ipa-devirt.
3004 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
3005 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
3006 of external calls
3007 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
3008 (gimple_fold_call): Dump inconsistent devirtualizations; add
3009 sanity check for type based devirtualizations.
3010 * ipa-prop.c: Include ipa-utils.h
3011 (ipa_intraprocedural_devirtualization): Add sanity check.
3012 (try_make_edge_direct_virtual_call): Likewise.
3013
cefce769
EB
30142013-09-23 Eric Botcazou <ebotcazou@adacore.com>
3015
3016 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
3017 assignment statements.
3018
a895a2b8
KV
30192013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
3020
3021 * gimple-pretty-print.c (dump_ssaname_info): New function.
3022 (dump_gimple_phi): Call it.
3023 (pp_gimple_stmt_1): Likewise.
3024 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
3025 (range_info_def): Declare.
3026 * tree-pretty-print.c (pp_double_int): New function.
3027 (dump_generic_node): Call it.
3028 * tree-pretty-print.h (pp_double_int): Declare.
3029 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
3030 * tree-ssanames.h (range_info_def): New structure.
3031 (value_range_type): Move definition here.
3032 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
3033 Declare.
3034 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
3035 initialization.
3036 (set_range_info): New function.
3037 (get_range_info): Likewise.
3038 (duplicate_ssa_name_range_info): Likewise.
3039 (duplicate_ssa_name_fn): Check pointer type and call
3040 duplicate_ssa_name_range_info.
3041 * tree-ssa-copy.c (fini_copy_prop): Likewise.
3042 * tree-vrp.c (value_range_type): Remove definition, now in
3043 tree-ssanames.h.
7a5911d3 3044 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
a895a2b8
KV
3045 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
3046 (SSA_NAME_RANGE_INFO): New macro.
3047
984af6ac
RB
30482013-09-23 Richard Biener <rguenther@suse.de>
3049
3050 PR tree-optimization/58464
3051 * tree-ssa-pre.c (phi_trans_lookup): Remove.
7a5911d3 3052 (phi_trans_add): Change to add conditionally on being not present.
984af6ac
RB
3053 (phi_translate_1): Remove recursion detection here.
3054 (phi_translate): Pre-seed the cache with NULL to catch
3055 recursion here in a more generic way.
3056 (bitmap_find_leader): Adjust comment.
3057 (get_representative_for): Dump value-numbers.
3058 (create_expression_by_pieces): Likewise.
3059 (insert_into_preds_of_block): Likewise.
3060
0e26cf79
CB
30612013-09-23 Christian Bruel <christian.bruel@st.com>
3062
3063 PR target/58475
3064 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
3065 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
3066
4d0e5b54
JG
30672013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
3068
3069 Revert r202780:
3070 2013-09-20 Renlin Li <renlin.li@arm.com>
3071
7a5911d3
UB
3072 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
3073 plus_constant.
4d0e5b54
JG
3074 (aarch64_expand_epilogue): Likewise.
3075 (aarch64_legitimize_reload_address): Likewise.
3076
ca081cc8
EB
30772013-09-22 Eric Botcazou <ebotcazou@adacore.com>
3078
3079 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
3080 NULL_TREE before pushing them onto the vector. Likewise for labels.
3081
8fc53a5f
EB
30822013-09-21 Eric Botcazou <ebotcazou@adacore.com>
3083
3084 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
3085 comparison operators when -fno-trapping-math is in effect.
3086 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
3087 comparison operators in TFmode and assert that unsupported operators
3088 cannot reach here.
3089 (ia64_print_operand): Likewise.
3090
30912013-09-21 Jan Hubicka <jh@suse.cz>
0ca6c49f
JH
3092
3093 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
3094 (sse_typeless_stores): Enable for core
3095 (sse_load0_by_pxor): Likewise.
3096 (four_jump_limit): Disable for core.
3097 (pad_returns): Likewise.
3098 (avoid_vector_decode): Likewise.
3099 (fuse_cmp_and_branch): Enable for cores.
3100 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
3101
578e51e6
JDA
31022013-09-20 John David Anglin <danglin@gcc.gnu.org>
3103
96ce28a3
JDA
3104 PR middle-end/56791
3105 * config/pa/pa.c (pa_option_override): Disable auto increment and
3106 decrement instructions until reload is completed.
3107
578e51e6
JDA
3108 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
3109 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
3110 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
3111
6fcd3a13 31122013-09-20 DJ Delorie <dj@redhat.com>
7a5911d3 3113 Nick Clifton <nickc@redhat.com>
6fcd3a13
DD
3114
3115 * config/rl78/rl78.c: Various whitespace and comment tweaks.
3116 (need_to_save): Save bank 0 on interrupts.
3117 (characterize_address): Strip far address wrappers.
3118 (rl78_as_legitimate_address): Likewise.
3119 (transcode_memory_rtx): Likewise.
3120 (rl78_peep_movhi_p): Disable this peephole after devirt.
3121 (rl78_propogate_register_origins): Forget all origins when a
3122 CLOBBER is seen.
3123 * config/rl78/rl78-virt.md: Various whitespace tweaks.
3124 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
3125 peephole2's.
3126 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
3127 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
3128 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
3129 relocating.
3130 * config/rl78/constraints.md: Various whitespace and paren tweaks.
3131
4a08db33
JDA
31322013-09-20 John David Anglin <danglin@gcc.gnu.org>
3133
3134 * config/pa/pa.md: In "scc" insn patterns, change output template to
3135 handle const0_rtx in reg_or_0_operand operands.
3136
7691132c
JBG
31372013-09-20 Martin Husemann <martin@NetBSD.org>
3138
3139 PR target/56875
3140 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
3141 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
3142
a3cc13cc
RB
31432013-09-20 Richard Biener <rguenther@suse.de>
3144
3145 PR middle-end/58484
3146 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
3147 remembering SSA name version and block index.
3148 (new_scev_info_str): Adjust.
3149 (hash_scev_info): Likewise. Also hash the block index.
3150 (eq_scev_info): Adjust.
3151 (find_var_scev_info): Likewise.
3152 (struct instantiate_cache_entry): Remove.
3153 (struct instantiate_cache_type): Use a htab to map name, block
3154 to chrec.
3155 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3156 (get_instantiated_value_entry): Likewise.
3157 (hash_idx_scev_info, eq_idx_scev_info): New functions.
3158 (instantiate_scev_name): Adjust.
3159
925f3871
JL
31602013-09-20 Jeff Law <law@redhat.com>
3161
3162 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
3163
2888c331
YZ
31642013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
3165
3166 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
3167 Call aarch64_simd_expand_args to update op[argc].
3168
0a811e96
BS
31692013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3170
7a5911d3
UB
3171 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
3172 plugin argument.
0a811e96 3173
0078f462
BS
31742013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
3175
7a5911d3
UB
3176 * gengtype.c (file_rules): Added rule for *.cc files.
3177 (get_output_file_with_visibility): Give fatal message when no
3178 rules found.
0078f462 3179
d20e48b0
RL
31802013-09-20 Renlin Li <renlin.li@arm.com>
3181
3182 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
3183 (aarch64_expand_epilogue): Likewise.
3184 (aarch64_legitimize_reload_address): Likewise.
3185
59bb1544
BE
31862013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3187
3188 PR middle-end/57748
3189 * expr.c (expand_assignment): Remove misalignp code path.
3190
a5430019
MP
31912013-09-20 Marek Polacek <polacek@redhat.com>
3192
3193 PR sanitizer/58413
3194 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
3195 TYPE_PRECISION. Add asserts.
3196
9fed7f3a
RB
31972013-09-20 Richard Biener <rguenther@suse.de>
3198
3199 PR tree-optimization/58453
3200 * tree-loop-distribution.c (distribute_loop): Apply the cost
3201 model for -ftree-loop-distribute-patterns, too.
3202
a820c834
RB
32032013-09-20 Richard Biener <rguenther@suse.de>
3204
3205 PR middle-end/58473
3206 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
3207 make type comparison less strict.
3208
3cbe17f7
AM
32092013-09-20 Alan Modra <amodra@gmail.com>
3210
3211 * configure: Regenerate.
3212 * aclocal.m4: Regenerate.
3213
87fccdbb
MP
32142013-09-20 Marek Polacek <polacek@redhat.com>
3215
3216 PR other/58467
3217 * doc/extend.texi: Document that attribute used is meant to be used
3218 on variables with static storage duration.
3219
8928eff3
JJ
32202013-09-19 Jakub Jelinek <jakub@redhat.com>
3221
3222 PR tree-optimization/58472
3223 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
3224 simd_lane_access set inv_p = false.
3225 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
3226 the simduid magic VAR_DECL.
3227
b7b28c53
JH
32282013-09-19 Jan Hubicka <jh@suse.cz>
3229
3230 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
3231
83ae86f5
JL
32322013-09-17 Jeff Law <law@redhat.com>
3233
3234 * tree-ssa-dom.c (record_temporary_equivalences): New function
3235 split out of dom_opt_dom_walker::after_dom_children.
3236 (dom_opt_dom_walker::thread_across_edge): Move common code
3237 in here from dom_opt_dom_walker::after_dom_children.
3238 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
3239
9d532162
JH
32402013-09-19 Jan Hubicka <jh@suse.cz>
3241
3242 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
3243 (TARGET_GENERIC): Use PROCESOR_GENERIC
3244 (enum processor_type): Unify generic32 and 64.
3245 * i386.md (cpu): Likewise.
3246 * x86-tune.def (use_leave): Enable for generic32.
3247 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
3248 * athlon.md: Change generic64 to generic in all occurences.
3249 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
3250 (ix86_target_macros_internal): Likewise.
3251 * driver-i386.c (host_detect_local_cpu): Likewise.
7a5911d3
UB
3252 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
3253 to ..
9d532162
JH
3254 (generic_memcpy, generic_memset, generic_cost): This one.
3255 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
3256 (m_GENERIC32, m_GENERIC64): Remove.
3257 (m_GENERIC): Turn into one flag.
3258 (processor_target): Unify generic tunnings.
3259 (ix86_option_override_internal): Replace generic32/64 by generic.
3260 (ix86_issue_rate): Likewise.
3261 (ix86_adjust_cost): Likewise.
3262
188c7d00
JH
32632013-09-19 Jan Hubicka <jh@suse.cz>
3264
3265 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
3266 of speculative flag.
3267
4befd127
JJ
32682013-09-19 Jakub Jelinek <jakub@redhat.com>
3269
3270 * omp-low.c (expand_omp_sections): Always pass len - 1 to
3271 GOMP_sections_start, even if !exit_reachable.
3272
8a26ad39
VM
32732013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3274
3275 * lra-constraints.c (need_for_all_save_p): Use macro
3276 HARD_REGNO_CALL_PART_CLOBBERED.
3277 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
3278 set up pseudo conflict hard regs.
3279
09487185
MM
32802013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3281
3282 PR target/58452
3283 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
3284 operands.
3285
080cbf9e
VM
32862013-09-18 Vladimir Makarov <vmakarov@redhat.com>
3287
3288 PR rtl-optimization/58438
3289 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
3290 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
3291 from previous subpasses.
3292
a0f70fcb
RE
32932013-09-18 Richard Earnshaw <rearnsha@arm.com>
3294
3295 * arm.c (arm_get_frame_offsets): Validate architecture supports
3296 LDRD/STRD before accepting the tuning preference.
3297 (arm_expand_prologue): Likewise.
3298 (arm_expand_epilogue): Likewise.
3299
0547c9b6
RB
33002013-09-18 Richard Biener <rguenther@suse.de>
3301
3302 PR tree-optimization/58417
3303 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
3304 have chrecs with symbols defined in the loop as operands.
3305 (chrec_fold_multiply): Likewise.
3306 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
3307 parameters before folding binary operations.
3308 (struct instantiate_cache_entry_hasher): Remove.
3309 (struct instantiate_cache_type): Use a pointer-map.
3310 (instantiate_cache_type::instantiate_cache_type): New function.
3311 (instantiate_cache_type::get): Likewise.
3312 (instantiate_cache_type::set): Likewise.
3313 (instantiate_cache_type::~instantiate_cache_type): Adjust.
3314 (get_instantiated_value_entry): Likewise.
3315 (global_cache): New global.
3316 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
3317 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
3318 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
3319 (instantiate_scev_name): Adjust.
3320 (instantiate_scev): Construct global instead of local cache.
3321 (resolve_mixers): Likewise.
3322
309dc1aa
DM
33232013-09-18 Daniel Morris <danielm@ecoscentric.com>
3324 Paolo Carlini <paolo.carlini@oracle.com>
3325
3326 PR c++/58458
3327 * doc/implement-cxx.texi: Fix references to the C++ standards.
3328
995a1b4a
JJ
33292013-09-18 Jakub Jelinek <jakub@redhat.com>
3330
3331 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
3332 * tree-vect-data-refs.c (vect_analyze_data_refs): For
3333 simd_lane_access drs, update also DR_ALIGNED_TO.
3334
ce6923c5
MP
33352013-09-18 Marek Polacek <polacek@redhat.com>
3336
3337 PR sanitizer/58411
3338 * doc/extend.texi: Document no_sanitize_undefined attribute.
3339 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
3340 no_sanitize_undefined attribute.
3341
d30d00a2
NC
33422013-09-18 Nick Clifton <nickc@redhat.com>
3343
3344 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
3345 (ASM_DECLARE_FUNCTION_NAME): Define.
3346
4d9192b5
TS
33472013-09-17 Trevor Saunders <tsaunders@mozilla.com>
3348
3349 * compare-elim.c (find_comparison_dom_walker): New class
3350 (find_comparisons_in_bb): Rename to
3351 find_comparison_dom_walker::before_dom_children
3352 (find_comparisons): Adjust
3353 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
3354 adjust.
3355 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
3356 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
3357 (init_walk_dominator_tree): Remove declaration.
3358 (fini_walk_dominator_tree): Remove declaration.
3359 * fwprop.c (single_def_use_dom_walker): New class
3360 (single_def_use_enter_block): Convert to
3361 single_def_use_dom_walker::before_dom_children.
3362 (single_def_use_leave_block): Convert to
3363 single_def_use_dom_walker::after_dom_children.
3364 (build_single_def_use_links): Adjust.
3365 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
3366 class.
3367 (find_candidates_in_block): Convert to
3368 find_candidates_dom_walker::before_dom_children.
3369 (execute_strength_reduction): Adjust.
3370 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
3371 (sese_dom_walker): New class.
3372 (sese_dom_walker::sese_dom_walker): New constructor.
3373 (sese_dom_walker::~sese_dom_walker): New destructor.
3374 (build_sese_conditions_before): Convert to
3375 sese_dom_walker::before_dom_children.
3376 (build_sese_conditions_after): Convert to
3377 sese_dom_walker::after_dom_children.
3378 (build_poly_scop): Adjust
3379 * tree-into-ssa.c (rewrite_dom_walker): New class
3380 (rewrite_enter_block): Convert to
3381 rewrite_dom_walker::before_dom_children.
3382 (rewrite_leave_block): Convert to
3383 rewrite_dom_walker::after_dom_children.
3384 (rewrite_update_dom_walker): New class.
3385 (rewrite_update_enter_block): Convert to
3386 rewrite_update_dom_walker::before_dom_children.
3387 (rewrite_update_leave_block): Convert to
3388 rewrite_update_dom_walker::after_dom_children.
3389 (rewrite_blocks, rewrite_into_ssa): Adjust.
3390 (mark_def_dom_walker): New class.
3391 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
3392 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
3393 (mark_def_sites_blocks): Convert to
3394 mark_def_dom_walker::before_dom_children.
3395 (mark_def_site_blocks): Remove.
3396 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
3397 (tree_ssa_dominator_optimize): Adjust.
3398 (dom_thread_across_edge): Convert to method
3399 dom_opt_dom_walker::thread_across_edge.
3400 (dom_opt_enter_block): Convert to member function
3401 dom_opt_dom_walker::before_dom_children.
3402 (dom_opt_leave_block): Convert to member function
3403 dom_opt_dom_walker::after_dom_children.
3404 * tree-ssa-dse.c (dse_dom_walker): New class.
3405 (dse_enter_block): Convert to member function
3406 dse_dom_walker::before_dom_children.
3407 (tree_ssa_dse): Adjust.
3408 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
3409 (determine_invariantness_stmt): Convert to method
3410 invariantness_dom_walker::before_dom_children.
3411 (determine_invariantness): Remove
3412 (move_computations_dom_walker): New class.
3413 (move_computations_stmt): Convert to method
3414 move_computations_dom_walker::before_dom_children.
3415 (move_computations, tree_ssa_lim): Adjust.
3416 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
3417 (nt_init_block): Make method
3418 notrappping_dom_walker::before_dom_children.
3419 (nt_fini_block): Make
3420 method nontrapping_dom_walker::after_dom_children.
3421 (get_non_trapping): Adjust.
3422 * tree-ssa-pre.c (eliminate_dom_walker): New class.
3423 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
3424 (eliminate_leave_block): Make method.
3425 eliminate_dom_walker::after_dom_children.
3426 (eliminate): Adjust
3427 * tree-ssa-strlen.c (strlen_dom_walker): New class.
3428 (strlen_enter_block): Make method
3429 strlen_dom_walker::before_dom_children.
3430 (strlen_leave_block): Make
3431 method strlen_dom_walker::after_dom_children.
3432 (tree_ssa_strlen): Adjust.
3433 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
3434 (tree_ssa_uncprop): Adjust.
3435 (uncprop_leave_block): Make method
3436 uncprop_dom_walker::after_dom_children.
3437 (uncprop_leave_block): Make method
3438 uncprop_dom_walker::before_dom_children.
3439
3b3cc26b
BC
34402013-09-18 Bin Cheng <bin.cheng@arm.com>
3441
7a5911d3
UB
3442 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
3443 branch in same basic block. Check both src and dest of the move insn.
3b3cc26b 3444
b5ba3a9b
NC
34452013-09-17 Nick Clifton <nickc@redhat.com>
3446
3447 * config/rl78/rl78-real.md (bf): New pattern.
3448 (bt): New pattern.
3449 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
3450 (rl78_print_operand): Do not put a # before a %B.
3451 * config/rl78/rl78.opt: Tweak doc strings.
3452
09d5094b
DD
34532013-09-17 DJ Delorie <dj@redhat.com>
3454
3455 * config/rl78/constraints.md (Wcv): Allow up to $r31.
3456 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
3457 (rl78_option_override): Likewise, if -mallregs.
3458 (is_virtual_register): Likewise.
3459 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
3460 (REGNO_OK_FOR_BASE_P): Likewise.
3461 * config/rl78/rl78.opt (-mallregs): New.
3462
2ba1dca1
NC
34632013-09-17 Nick Clifton <nickc@redhat.com>
3464
3465 * config/rl78/rl78.c (need_to_save): Change return type to bool.
3466 For interrupt functions: save all call clobbered registers if the
3467 interrupt handler is not a leaf function.
3468 (rl78_expand_prologue): Always recompute the frame information.
3469 For interrupt functions: only select bank 0 if one of the bank 0
3470 registers is going to be psuhed.
3471
2e7c3f21
DD
34722013-09-17 DJ Delorie <dj@redhat.com>
3473
3474 * config/rl78/constraints.md: For each W* constraint, rename to C*
3475 and create a W* constraint that checks for an optional ES: prefix
3476 pattern also.
3477 * config/rl78/rl78.md (UNS_ES_ADDR): New.
3478 (es_addr): New. Used to wrap far addresses.
3479 * config/rl78/rl78-protos.h (rl78_es_addr): New.
3480 (rl78_es_base): New.
3481 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
3482 wrapped far addresses.
3483 (rl78_print_operand_1): Unwrap far addresses before processing.
3484 (rl78_lo16): Wrap far addresses in unspecs.
3485 (rl78_es_addr): New.
3486 (rl78_es_base): New.
3487 (insn_ok_now): Check for not-yet-wrapped far addresses.
3488 (transcode_memory_rtx): Properly re-wrap far addresses.
3489
5c26a69a
SH
34902013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
3491
3492 * config/sparc/t-rtems: Add leon3 multilibs.
3493
181f5f3e
CH
34942013-09-17 Cong Hou <congh@google.com>
3495
3496 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
3497 when checking the dot production pattern. The type of rhs operand
3498 of multiply is now checked correctly.
3499
8d34e421
JL
35002013-09-17 Jeff Law <law@redhat.com>
3501
3502 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
3503 edge implied equivalences into successor phis.
3504 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
3505 here from tree-ssa-threadedge.c.
3506 (mark_threaded_blocks): When threading through a joiner, if both
3507 successors of the joiner's clone reach the same block, verify the
3508 PHI arguments are equal. If not, cancel the jump threading request.
3509 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
3510 tree-ssa-threadupdate.c
3511 (thread_across_edge): Don't check PHI argument equality when
3512 threading through joiner block here.
7a5911d3 3513
c152901f
AM
35142013-09-17 Andrew MacLeod <amacleod@redhat.com>
3515
3516 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
3517 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
7a5911d3
UB
3518 (warn_uninit, warn_uninitialized_vars,
3519 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3520 Move to tree-ssa-uninit.c.
78cedfb1 3521 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
7a5911d3 3522 (has_undefined_value_p): New. Pass dependant parts of
c152901f
AM
3523 ssa_undefined_value_p.
3524 (uninit_undefined_value_p): Use has_undefined_value_p.
7a5911d3
UB
3525 (warn_uninit, warn_uninitialized_vars,
3526 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
3527 Move from tree-ssa.c.
3528 * tree-ssa.h: Adjust prototypes.
c152901f 3529
b631d45a
JH
35302013-09-17 Jan Hubicka <jh@suse.cz>
3531
3532 PR middle-end/58332
3533 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
3534 * ipa-inline.c (can_inline_edge_p): Do not downgrade
3535 FUNCTION_NOT_OPTIMIZED.
3536 * ipa-inline-analysis.c (compute_inline_parameters): Function
3537 not optimized is not inlinable unless it is alwaysinline.
3538 (inline_analyze_function): Force calls in not optimized
3539 function not inlinable.
3540
5b79657a
JH
35412013-09-17 Jan Hubicka <jh@suse.cz>
3542
3543 PR middle-end/58329
3544 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
3545 to return NULL.
3546 * ipa.c (function_and_variable_visibility): Likewise.
3547 * ipa-profile.c (ipa_profile): Likewise.
3548
27442c24
BE
35492013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
3550
3551 PR ipa/58398
3552 * cgraph.c (cgraph_function_body_availability): Check for ifunc
3553 attribute, and don't inline the resolver in this case.
3554
753b9bc3
TJ
35552013-09-17 Teresa Johnson <tejohnson@google.com>
3556
3557 * coverage.c (get_coverage_counts): Add missing newline.
3558
e3d3cfb4
KT
35592013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3560
3561 PR tree-optimization/58088
3562 * fold-const.c (mask_with_trailing_zeros): New function.
3563 (fold_binary_loc): Make sure we don't recurse infinitely
3564 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
3565 Use mask_with_trailing_zeros where appropriate.
3566
9a0ac98f
YR
35672013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
3568
3569 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
3570 of 'prev' var to get better distance estimation.
3571
78bbd765
EB
35722013-09-17 Eric Botcazou <ebotcazou@adacore.com>
3573
3574 * tree-inline.h (struct copy_body_data): Add transform_parameter.
3575 * tree-inline.c (is_parameter_of): New predicate.
3576 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
3577 a parameter has been remapped.
3578 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
3579 (optimize_inline_calls): Initialize transform_parameter.
3580 (copy_gimple_seq_and_replace_locals): Likewise.
3581 (tree_function_versioning): Likewise.
3582 (maybe_inline_call_in_expr): Likewise.
3583
cad055a4
NC
35842013-09-17 Nick Clifton <nickc@redhat.com>
3585
3586 * config/msp430/msp430-protos.h: Add prototypes for new functions.
3587 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
3588 interrupt handlers.
3589 (is_attr_func): New function.
3590 (msp430_is_interrupt_func): New function.
3591 (is_naked_func): New function.
3592 (is_reentrant_func): New function.
3593 (is_critical_func): New function.
3594 (msp430_start_function): Add annotations for function attributes.
3595 (msp430_attr): New function.
3596 (msp430_attribute_table): New.
3597 (msp430_function_section): New function.
3598 (TARGET_ASM_FUNCTION_SECTION): Define.
3599 (msp430_builtin): New enum.
3600 (msp430_init_builtins): New function.
3601 (msp430_builtin_devl): New function.
3602 (msp430_expand_builtin): New function.
3603 (TARGET_INIT_BUILTINS): Define.
3604 (TARGET_EXPAND_BUILTINS): Define.
3605 (TARGET_BUILTIN_DECL): Define.
3606 (msp430_expand_prologue): Add support for naked, interrupt,
3607 critical and reentrant functions.
3608 (msp430_expand_epilogue): Likewise.
3609 (msp430_print_operand): Handle 'O' character.
3610 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
3611 NO_TRAMPOLINES.
3612 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
3613 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
3614 (pushm): Use a 'n' rather than an 'i' constraint.
3615 (msp_return): Add generation of the interrupt return instruction.
3616 (disable_interrupts): New pattern.
3617 (enable_interrupts): New pattern.
3618 (push_intr_state): New pattern.
3619 (pop_intr_state): New pattern.
3620 (bic_SR): New pattern.
3621 (bis_SR): New pattern.
3622 * doc/extend.texi: Document MSP430 function attributes and builtin
3623 functions.
3624
deb6c11a
RB
36252013-09-17 Richard Biener <rguenther@suse.de>
3626
3627 PR tree-optimization/58432
3628 * tree-loop-distribution.c (tree_loop_distribution): Also
3629 scan PHIs for outside loop uses and seed a partition from them.
3630
c068654b
BC
36312013-09-17 Bin Cheng <bin.cheng@arm.com>
3632
3633 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
3634 (restructure_reference): Call backtrace_base_for_ref.
3635
567969e4
AM
36362013-09-17 Alan Modra <amodra@gmail.com>
3637
3638 PR target/57589
7a5911d3
UB
3639 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
3640 patch.
567969e4 3641
5c0029de
DD
36422013-09-16 DJ Delorie <dj@redhat.com>
3643
3644 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
3645 vregs location for RL78/G10.
3646 (rl78_expand_prologue): Avoid SEL on G10.
3647 (rl78_expand_epilogue): Likewise.
3648 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
3649 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
3650 __RL78_G10__ when appropriate.
3651 (ASM_SPEC): Pass -mg10 along to the assembler.
3652 * config/rl78/rl78.md (sel_rb): Disable for G10.
3653 * config/rl78/rl78.opt: Add -mg10 option.
3654 * config/rl78/t-rl78: Add -mg10 multilib.
3655
ea0f3e87
XDL
36562013-09-16 Xinliang David Li <davidxl@google.com>
3657
3658 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
3659 * omp-low.c (omp_max_vf): Ditto.
3660 (expand_omp_simd): Ditto.
3661 * tree-vectorizer.c (vectorize_loops): Ditto.
3662 (gate_vect_slp): Ditto.
3663 (gate_increase_alignment): Ditto.
3664 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
3665 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
3666 (gate_tree_vectorize): Name change.
3667 (tree_vectorize): Ditto.
3668 (pass_vectorize::gate): Call new function.
3669 (pass_vectorize::execute): Ditto.
7a5911d3 3670 * opts.c: O3 default setting change.
ea0f3e87
XDL
3671 (finish_options): Check new flag.
3672 * doc/invoke.texi: Document new flags.
3673 * common.opt: New flags.
3674
4f3da2e5
AS
36752013-09-16 Andreas Schwab <schwab@linux-m68k.org>
3676
3677 * doc/tm.texi.in (Cond Exec Macros): Remove node.
3678 (Condition Code): Don't reference it.
3679 * doc/tm.texi: Regenerate.
3680
aa940f7c
VM
36812013-09-16 Vladimir Makarov <vmakarov@redhat.com>
3682
3683 PR middle-end/58418
3684 * lra-constraints.c (undo_optional_reloads): Consider all optional
3685 reload even if it did not get a hard reg.
3686
e645e942
TJ
36872013-09-16 Teresa Johnson <tejohnson@google.com>
3688
3689 * dumpfile.c (dump_loc): Remove newline emission.
3690 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
3691 emission to dump_printf_loc calls where missing.
3692 (vect_mark_for_runtime_alias_test): Ditto.
3693 (vect_analyze_data_ref_dependence): Ditto.
3694 (vect_analyze_data_ref_dependences): Ditto.
3695 (vect_slp_analyze_data_ref_dependence): Ditto.
3696 (vect_slp_analyze_data_ref_dependences): Ditto.
3697 (vect_compute_data_ref_alignment): Ditto.
3698 (vect_update_misalignment_for_peel): Ditto.
3699 (vect_verify_datarefs_alignment): Ditto.
3700 (vector_alignment_reachable_p): Ditto.
3701 (vect_get_data_access_cost): Ditto.
3702 (vect_enhance_data_refs_alignment): Ditto.
3703 (vect_find_same_alignment_drs): Ditto.
3704 (vect_analyze_data_refs_alignment): Ditto.
3705 (vect_analyze_group_access): Ditto.
3706 (vect_analyze_data_ref_access): Ditto.
3707 (vect_analyze_data_ref_accesses): Ditto.
3708 (vect_prune_runtime_alias_test_list): Ditto.
3709 (vect_analyze_data_refs): Ditto.
3710 (vect_create_addr_base_for_vector_ref): Ditto.
3711 (vect_create_data_ref_ptr): Ditto.
3712 (vect_grouped_store_supported): Ditto.
3713 (vect_grouped_load_supported): Ditto.
3714 * value-prof.c (check_counter): Ditto.
3715 (check_ic_target): Ditto.
3716 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
3717 (vect_recog_widen_mult_pattern): Ditto.
3718 (vect_recog_widen_sum_pattern): Ditto.
3719 (vect_recog_over_widening_pattern): Ditto.
3720 (vect_recog_widen_shift_pattern): Ditto.
3721 (vect_recog_rotate_pattern): Ditto.
3722 (vect_recog_vector_vector_shift_pattern): Ditto.
3723 (vect_recog_divmod_pattern): Ditto.
3724 (vect_recog_mixed_size_cond_pattern): Ditto.
3725 (vect_recog_bool_pattern): Ditto.
3726 (vect_pattern_recog_1): Ditto.
3727 (vect_pattern_recog): Ditto.
3728 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
3729 (vect_is_simple_iv_evolution): Ditto.
3730 (vect_analyze_scalar_cycles_1): Ditto.
3731 (vect_get_loop_niters): Ditto.
3732 (vect_analyze_loop_1): Ditto.
3733 (vect_analyze_loop_form): Ditto.
3734 (vect_analyze_loop_operations): Ditto.
3735 (vect_analyze_loop_2): Ditto.
3736 (vect_analyze_loop): Ditto.
3737 (report_vect_op): Ditto.
3738 (vect_is_slp_reduction): Ditto.
3739 (vect_is_simple_reduction_1): Ditto.
3740 (vect_get_known_peeling_cost): Ditto.
3741 (vect_estimate_min_profitable_iters): Ditto.
3742 (vect_model_reduction_cost): Ditto.
3743 (vect_model_induction_cost): Ditto.
3744 (get_initial_def_for_induction): Ditto.
3745 (vect_create_epilog_for_reduction): Ditto.
3746 (vectorizable_reduction): Ditto.
3747 (vectorizable_induction): Ditto.
3748 (vectorizable_live_operation): Ditto.
3749 (vect_loop_kill_debug_uses): Ditto.
3750 (vect_transform_loop): Ditto.
3751 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
3752 (vect_stmt_relevant_p): Ditto.
3753 (process_use): Ditto.
3754 (vect_mark_stmts_to_be_vectorized): Ditto.
3755 (vect_model_simple_cost): Ditto.
3756 (vect_model_promotion_demotion_cost): Ditto.
3757 (vect_model_store_cost): Ditto.
3758 (vect_get_store_cost): Ditto.
3759 (vect_model_load_cost): Ditto.
3760 (vect_get_load_cost): Ditto.
3761 (vect_init_vector_1): Ditto.
3762 (vect_get_vec_def_for_operand): Ditto.
3763 (vect_finish_stmt_generation): Ditto.
3764 (vectorizable_call): Ditto.
3765 (vectorizable_conversion): Ditto.
3766 (vectorizable_assignment): Ditto.
3767 (vectorizable_shift): Ditto.
3768 (vectorizable_operation): Ditto.
3769 (vectorizable_store): Ditto.
3770 (vectorizable_load): Ditto.
3771 (vectorizable_condition): Ditto.
3772 (vect_analyze_stmt): Ditto.
3773 (vect_transform_stmt): Ditto.
3774 (vect_is_simple_use): Ditto.
3775 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
3776 (vect_can_advance_ivs_p): Ditto.
3777 (vect_update_ivs_after_vectorizer): Ditto.
3778 (vect_do_peeling_for_loop_bound): Ditto.
3779 (vect_gen_niters_for_prolog_loop): Ditto.
3780 (vect_update_inits_of_drs): Ditto.
3781 (vect_create_cond_for_alias_checks): Ditto.
3782 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
3783 (vect_build_slp_tree_1): Ditto.
3784 (vect_supported_load_permutation_p): Ditto.
3785 (vect_analyze_slp_instance): Ditto.
3786 (vect_analyze_slp): Ditto.
3787 (vect_make_slp_decision): Ditto.
3788 (vect_detect_hybrid_slp): Ditto.
3789 (vect_bb_vectorization_profitable_p): Ditto.
3790 (vect_slp_analyze_bb_1): Ditto.
3791 (vect_update_slp_costs_according_to_vf): Ditto.
3792 (vect_get_mask_element): Ditto.
3793 (vect_transform_slp_perm_load): Ditto.
3794 (vect_schedule_slp_instance): Ditto.
3795 (vect_schedule_slp): Ditto.
3796 (vect_slp_transform_bb): Ditto.
3797 * profile.c (read_profile_edge_counts): Ditto.
3798 (compute_branch_probabilities): Ditto.
3799 * coverage.c (get_coverage_counts): Ditto.
3800
46f851f3
DN
38012013-09-16 Diego Novillo <dnovillo@google.com>
3802
7a5911d3 3803 * tree-core.h: Add missing comment lines from refactoring of tree.h.
46f851f3 3804
1632a686
JH
38052013-09-16 Jan Hubicka <jh@suse.cz>
3806
3807 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
7a5911d3 3808 abstract functions; for static functions check the presence of body.
1632a686 3809
828e70c1
JG
38102013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3811
3812 * config/aarch64/aarch64-simd-builtins.def (fma): New.
3813 * config/aarch64/aarch64-simd.md
3814 (aarch64_mla_elt<mode>): New.
3815 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
3816 (aarch64_mls_elt<mode>): Likewise.
3817 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
3818 (aarch64_fma4_elt<mode>): Likewise.
3819 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
3820 (aarch64_fma4_elt_to_128v2df): Likewise.
3821 (aarch64_fma4_elt_to_64df): Likewise.
3822 (fnma<mode>4): Likewise.
3823 (aarch64_fnma4_elt<mode>): Likewise.
3824 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
3825 (aarch64_fnma4_elt_to_128v2df): Likewise.
3826 (aarch64_fnma4_elt_to_64df): Likewise.
3827 * config/aarch64/iterators.md (VDQSF): New.
3828 * config/aarch64/arm_neon.h
3829 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
3830 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
3831
779aea46
JG
38322013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3833
3834 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
3835 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
3836 (aarch64_mul3_elt_to_128df): Likewise.
3837 (aarch64_mul3_elt_to_64v2df): Likewise.
3838 * config/aarch64/iterators.md (VEL): Also handle DFmode.
3839 (VMUL): New.
3840 (VMUL_CHANGE_NLANES) Likewise.
3841 (h_con): Likewise.
3842 (f): Likewise.
3843 * config/aarch64/arm_neon.h
3844 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
3845
a407a750
JG
38462013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
3847
3848 * config/aarch64/arm_neon.h
3849 (vcvtx_high_f32_f64): Fix parameters.
3850
f77e2d2d 38512013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 3852 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 3853
a5bd71fa 3854 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 3855
36875e8f
RB
38562013-09-16 Richard Biener <rguenther@suse.de>
3857
3858 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
3859 (dot_rdg_1): Handle control_dd.
3860 (create_edge_for_control_dependence): New function.
3861 (create_rdg_edges): Add control dependences if asked for.
3862 (build_rdg): Likewise.
3863 (generate_loops_for_partition): If there are not necessary
3864 control stmts remove all their dependencies.
3865 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
3866 (distribute_loop): Pass on control dependences.
3867 (tree_loop_distribution): Compute control dependences and remove
3868 restriction on number of loop nodes.
3869
96e24d49
JJ
38702013-09-16 Jakub Jelinek <jakub@redhat.com>
3871
3872 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
3873 for internal calls.
3874
40dbb05c
RS
38752013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
3876
3877 * cse.c (try_const_anchors): Punt on CC modes.
3878
97191ad0
JBG
38792013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3880
3881 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
3882
403a3fb7
JDA
38832013-09-14 John David Anglin <danglin@gcc.gnu.org>
3884
3885 PR target/58382
3886 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
3887 calls to word_mode.
3888
fb5610fb
IS
38892013-09-14 Iain Sandoe <iain@codesourcery.com>
3890
3891 PR target/48094
3892 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
3893 seen.
3894 (darwin_objc1_section): Likewise.
fb5610fb
IS
3895 (darwin_file_end): Emit Image Info section when required.
3896
afdec9bd
JH
38972013-09-14 Jan Hubicka <jh@suse.cz>
3898
3899 * tree-into-ssa.c (gate_into_ssa): New.
3900 (pass_data_build_ssa): Use it.
3901 * cgraph.h (expand_thunk): Update prototype.
3902 * cgraphunit.c (analyze_function): Expand thunks early.
3903 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
3904 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
3905 set lowered flag; do not add new function.
3906 (assemble_thunks_and_aliases): Update.
3907 * tree-ssa.c (gate_init_datastructures): New gate.
3908 (pass_data_init_datastructures): Use it.
3909
492d1e0a
IS
39102013-09-14 Iain Sandoe <iain@codesourcery.com>
3911
3912 PR target/58269
f77e2d2d 3913 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
3914 xmm register set described in the psABI.
3915
d13c6b70
EG
39162013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
3917
f77e2d2d
JBG
3918 * dwarf2out.c (should_emit_struct_debug): Add check
3919 for type_decl variable is not NULL.
d13c6b70 3920
88b0e79e
JC
39212013-09-13 Jacek Caban <jacek@codeweavers.com>
3922
3923 * config.gcc: Use new winnt-c.c target hooks
3924 * config/t-winnt: New file
3925 * config/winnt-c.c: New file
3926 * doc/tm.texi.in: Document new hook
3927 * doc/tm.texi: Regenerated
3928
19ba6aab
JH
39292013-09-13 Jan Hubicka <jh@suse.cz>
3930
3931 PR middle-end/58094
3932 * ipa-inline.c (check_callers): New function.
3933 (check_caller_edge): Remove.
3934 (want_inline_function_to_all_callers_p): Also permit alises that are
3935 called dirrectly.
3936 (inline_to_all_callers): Terminate the walk when devirtualization
3937 introduce new calls.
3938
a93c18c8
JH
39392013-09-13 Jan Hubicka <jh@suse.cz>
3940
3941 * ipa-inline-analysis.c (struct growth_data): Add node.
3942 (do_estimate_growth_1): Fix detection of recursion.
3943
f3b331d1
JJ
39442013-09-13 Jakub Jelinek <jakub@redhat.com>
3945
3946 PR tree-optimization/58392
3947 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
3948 to avoid shadowing of outer loop variable. If
3949 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
3950 replace_by_duplicate_decl simduid of loops that have it set and
3951 set dest_cfun->has_simduid_loops and/or
3952 dest_cfun->has_force_vect_loops.
3953 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
3954 instead of maybe_lookup_decl.
3955 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
3956 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
3957 call. Copy over force_vect and copy and remap simduid. Set
3958 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
3959 (copy_cfg_body): Remove blocks_to_copy argument. Use
3960 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
3961 caller. Don't set cfun->has_simduid_loops and/or
3962 cfun->has_force_vect_loops here.
3963 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
3964 caller.
3965 (expand_call_inline, tree_function_versioning): Adjust copy_body
3966 callers.
3967
ae6d0907
MJ
39682013-09-13 Martin Jambor <mjambor@suse.cz>
3969
3970 PR bootstrap/58388
3971 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
3972 the assert if the edge was a speculative one.
3973
2fd5894f
RB
39742013-09-13 Richard Biener <rguenther@suse.de>
3975
3976 * tree-data-ref.h (known_dependences_p): Move here ...
3977 * tree-loop-distribution.c (known_dependences_p): ... from here.
3978 (dump_rdg_component, debug_rdg_component): Remove.
3979 (dump_rdg): Adjust.
3980 (generate_loops_for_partition): Use gimple_uid instead of
3981 relying on matching stmt visit order.
3982 (rdg_build_partitions): Take starting stmt vector.
3983 (ldist_gen): Merge into ...
3984 (distribute_loop): ... this function. Do not compute starting
3985 vertices vector.
3986 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
3987
86eb4bd7
KT
39882013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3989
3990 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
3991 Set type attribute correctly. Set predicable_short_it attribute.
3992 (cmpsi_shiftsi): Remove %? from output template.
3993
83a95546
RB
39942013-09-13 Richard Biener <rguenther@suse.de>
3995
3996 * tree-loop-distribution.c (struct rdg_component,
3997 rdg_defs_used_in_other_loops_p, free_rdg_components,
3998 rdg_build_components): Remove.
3999 (stmts_from_loop): Do not record virtual PHIs.
4000 (generate_loops_for_partition): Skip virtual PHIs.
4001 (build_rdg_partition_for_component): Rename to ...
4002 (build_rdg_partition_for_vertex): ... this and adjust.
4003 (rdg_build_partitions): Take a vector of starting vertices
4004 instead of components. Remove unnecessary leftover handling.
4005 (ldist_gen): Do not build components or record other stores.
4006 (distribute_loop): Do not distribute loops containing stmts
4007 with side-effects.
4008
c0ecf7f1
CB
40092013-09-13 Christian Bruel <christian.bruel@st.com>
4010
4011 PR target/58314
4012 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
4013
34f56efc
KT
40142013-09-13 Kai Tietz <ktietz@redhat.com>
4015
740f2bf3
KT
4016 * config.gcc: Separate cases for mingw and cygwin targets,
4017 and add 64-bit cygwin target case.
4018
34f56efc
KT
4019 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
4020 dll-export inline-functions.
4021 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
4022
4023
40242013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
4025
4026 PR middle-end/58387
4027 Revert:
4028 2013-09-06 Jeff Law <law@redhat.com>
4029
4030 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4031 edge implied equivalences into successor phis.
4032
aadb52ad
DD
40332013-09-12 DJ Delorie <dj@redhat.com>
4034
4035 * config/rl78/rl78-virt.md: Change from | to \; for asm line
4036 separators.
4037
90ae7019
BM
40382013-09-12 Brooks Moses <bmoses@google.com>
4039
4040 PR driver/42955
4041 * Makefile.in: Do not install driver binaries in $(target)/bin.
4042
17b2557c
DD
40432013-09-12 DJ Delorie <dj@redhat.com>
4044
c5215a9b
DD
4045 * config/rl78/rl78.opt (mrelax): New.
4046 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
4047 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
4048
17b2557c
DD
4049 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
4050 between SP and FP.
4051 (rl78_expand_epilogue): Likewise.
4052
ecafcf05
VM
40532013-09-12 Vladimir Makarov <vmakarov@redhat.com>
4054
4055 PR middle-end/58335
84f6d9fa 4056 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
4057 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
4058 pointer elimination with using remove_reg_equal_offset_note.
4059
8369f38a
DD
40602013-09-12 DJ Delorie <dj@redhat.com>
4061
f6a83b4a
DD
4062 * config/msp430/: New port.
4063 * config.gcc (msp430): Added.
4064 * doc/invoke.texi: Document MSP430 options.
4065 * doc/install.texi: Document msp430-elf
4066 * doc/md.texi: Document msp430-elf
4067 * doc/contrib.texi: Document msp430-elf
4068
8369f38a
DD
4069 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
4070 PSImode.
4071
a854f856
MJ
40722013-09-12 Martin Jambor <mjambor@suse.cz>
4073
4074 PR ipa/58389
4075 * ipa-prop.c (remove_described_reference): Give up if the edge in the
4076 reference descriptor is NULL.
4077 (ipa_edge_removal_hook): If owning a reference descriptor, set its
4078 edge to NULL.
4079
b12ebd96
AM
40802013-09-12 Andrew MacLeod <amacleod@redhat.com>
4081
4082 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
4083 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
4084 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
4085 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
4086 make_temp_ssa_name): move to tree-ssanames.h
4087 * tree-ssa-alias.h: Move prototype.
4088 * tree-ssa.h: Include tree-ssanames.h.
4089 * tree-ssanames.c (FREE_SSANAMES): Move to here.
4090 * tree-ssanames.h: New. Move items from tree-flow*.h
4091 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
4092
e1fb4ad3
RB
40932013-09-12 Richard Biener <rguenther@suse.de>
4094
4095 PR tree-optimization/58404
4096 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
4097 propagate non-invariant addresses into dereferences wrapped
4098 in component references.
4099
154c9188
RB
41002013-09-12 Richard Biener <rguenther@suse.de>
4101
4102 PR tree-optimization/58402
4103 * passes.def: Move pass_late_warn_uninitialized later.
4104
7a300452
AM
41052013-09-12 Andrew MacLeod <amacleod@redhat.com>
4106
4107 * tree-ssa.h: New. Move content from tree-flow.h and
4108 tree-flow-inline.h.
4109 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
4110 Move prototypes belonging to tree-ssa.c.
f77e2d2d 4111 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
4112 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
4113 tree-ssa.h.
4114 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
4115 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
4116 to...
4117 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
4118 * tree.h: Move prototype to tree-ssa.h.
4119 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
4120 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
4121 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
4122 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
4123 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
4124 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
4125 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
4126 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
4127 graphite-blocking.c, graphite-clast-to-gimple.c,
4128 graphite-dependences.c, graphite-interchange.c,
4129 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
4130 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
4131 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
4132 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
4133 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
4134 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
4135 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
4136 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
4137 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
4138 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
4139 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
4140 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
4141 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
4142 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
4143 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
4144 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
4145 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
4146 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
4147 value-prof.c, var-tracking.c,
4148 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
4149
97463b2b
RB
41502013-09-12 Richard Biener <rguenther@suse.de>
4151
4152 PR tree-optimization/58396
4153 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
4154 (build_rdg): Take a loop-nest parameter, fix memleaks.
4155 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
4156
80ecd89d
YR
41572013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4158
4159 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
4160 for SLM.
4161
893e85fa
CM
41622013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
4163
4164 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
4165 The FMA instruction names should have a 'v' prefix.
4166
174ec470
RB
41672013-09-12 Richard Biener <rguenther@suse.de>
4168
4169 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
4170 (dot_rdg): Use popen instead of system in optional code.
4171 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
4172 (already_processed_vertex_p): Adjust.
4173 (has_anti_or_output_dependence, predecessor_has_mem_write,
4174 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
4175 rdg_flag_uses): Remove.
4176 (rdg_flag_vertex): Simplify.
4177 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
4178 remove recursion.
4179 (build_rdg_partition_for_component): Process the first vertex
4180 of a component only.
4181 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
4182
38c89763
AM
41832013-09-12 Alan Modra <amodra@gmail.com>
4184
4185 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
4186
3e3d9d17
DD
41872013-09-11 DJ Delorie <dj@redhat.com>
4188 Nick Clifton <nickc@redhat.com>
4189
4190 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
4191 (rl78_stack_based_mem): New.
4192 * config/rl78/constraints.md (Iv08): New.
4193 (Iv16): New.
4194 (Iv24): New.
4195 (Is09): New.
4196 (Is17): New.
4197 (Is25): New.
4198 (ISsi): New.
4199 (IShi): New.
4200 (ISqi): New.
4201 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
4202 (movhi): Likewise.
4203 (movsi): Change from expand to insn-and-split.
4204 (ashrsi3): Clobber AX.
4205 (lshrsi3): New.
4206 (ashlsi3): New.
4207 (cbranchsi4): New.
4208 * config/rl78/rl78.md (CC_REG): Fix.
4209 (addsi3): Allow memory and immediate operands.
4210 (addsi3_internal): Split into...
4211 (addsi3_internal_virt): ...new, and ...
4212 (addsi3_internal_real): ...new.
4213 (subsi): New.
4214 (subsi3_internal_virt): New.
4215 (subsi3_internal_real): New.
4216 (mulsi3): Add memory operand.
4217 (mulsi3_rl78): Likewise.
4218 (mulsi3_g13): Likewise.
4219 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
4220 (cbranchqi4_real): Add more constraint options.
4221 (cbranchhi4_real): Expand pattern.
4222 (cbranchhi4_real_signed): New.
4223 (cbranchhi4_real_inverted): New.
4224 (cbranchsi4_real_lt): New.
4225 (cbranchsi4_real_ge): New.
4226 (cbranchsi4_real_signed): New.
4227 (cbranchsi4_real): New.
4228 (peephole2): New.
893e85fa
CM
4229 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
4230 constant shifts.
3e3d9d17
DD
4231 (lshrsi3_virt): Likewise.
4232 (ashlsi3_virt): Likewise.
4233 (cbranchqi4_virt_signed): New.
4234 (cbranchhi4_virt_signed): New.
4235 (cbranchsi4_virt): New.
4236 * config/rl78/rl78.c: Whitespace fixes throughout.
4237 (move_elim_pass): New.
4238 (pass_data_rl78_move_elim): New.
4239 (pass_rl78_move_elim): New.
4240 (make_pass_rl78_move_elim): New.
4241 (rl78_devirt_info): Run devirt earlier.
4242 (rl78_move_elim_info): New.
4243 (rl78_asm_file_start): Register it.
4244 (rl78_split_movsi): New.
4245 (rl78_as_legitimate_address): Allow virtual base registers when
4246 appropriate.
4247 (rl78_addr_space_convert): Remove spurious debug stuff.
4248 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
4249 (rl78_print_operand): More cases for not printing '#'.
4250 (rl78_expand_compare): Remove most of the logic.
4251 (content_memory): New.
4252 (clear_content_memory): New.
4253 (get_content_index): New.
4254 (get_content_name): New.
4255 (display_content_memory): New.
4256 (update_content): New.
4257 (record_content): New.
4258 (already_contains): New.
4259 (insn_ok_now): Re-recog insns with virtual registers.
4260 (add_postponed_content_update): New.
4261 (process_postponed_content_update): New.
4262 (gen_and_emit_move): New.
893e85fa
CM
4263 (transcode_memory_rtx): Record new location content.
4264 Use gen_and_emit_move.
3e3d9d17
DD
4265 (force_into_acc): New.
4266 (move_to_acc): Use gen_and_emit_move.
4267 (move_from_acc): Likewise.
4268 (move_acc_to_reg): Likewise.
4269 (move_to_x): Likewise.
4270 (move_to_hl): Likewise.
4271 (move_to_de): Likewise.
4272 (rl78_alloc_physical_registers_op1): Record location content.
4273 (has_constraint): New.
4274 (rl78_alloc_physical_registers_op2): Record location content.
4275 Optimize use of HL.
4276 (rl78_alloc_physical_registers_ro1): Likewise.
4277 (rl78_alloc_physical_registers_cmp): Likewise.
4278 (rl78_alloc_physical_registers_umul): Likewise.
4279 (rl78_alloc_address_registers_macax): New.
4280 (rl78_alloc_physical_registers): Initialize and set location
4281 content memory as needed.
4282 (rl78_reorg): Make sure split2 is called.
4283 (rl78_rtx_costs): New.
4284
088845a5
RS
42852013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
4286
4287 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
4288 for (not (neg ...)) and (neg (not ...)) cases.
4289
5c2961cf
RB
42902013-09-11 Richard Biener <rguenther@suse.de>
4291
4292 PR middle-end/58377
4293 * passes.def: Split critical edges before late uninit warning passes.
4294 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
4295
427e6a14
JJ
42962013-09-11 Jakub Jelinek <jakub@redhat.com>
4297
4298 PR tree-optimization/58385
4299 * fold-const.c (build_range_check): If both low and high are NULL,
4300 use omit_one_operand_loc to preserve exp side-effects.
4301
df45c0cc
KT
43022013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4303
4304 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
4305
80ab0b19
RB
43062013-09-11 Richard Biener <rguenther@suse.de>
4307
4308 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
4309 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
4310 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
4311 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
4312 stmts_from_loop, known_dependences_p, build_empty_rdg,
4313 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
4314 * tree-loop-distribution.c: ... here.
4315 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
4316 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
4317 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
4318 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
4319 * tree-loop-distribution.c: ... here.
4320 * tree-loop-distribution.c: Include gimple-pretty-print.h.
4321 (struct partition_s): Add loops member.
4322 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
4323 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
4324 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
4325
85a77221
AI
43262013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4327 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
4328 Sergey Lega <sergey.s.lega@intel.com>
4329 Anna Tikhonova <anna.tikhonova@intel.com>
4330 Ilya Tocar <ilya.tocar@intel.com>
4331 Andrey Turetskiy <andrey.turetskiy@intel.com>
4332 Ilya Verbin <ilya.verbin@intel.com>
4333 Kirill Yukhin <kirill.yukhin@intel.com>
4334 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
4335
4336 * config/i386/constraints.md (k): New.
4337 (Yk): Ditto.
4338 * config/i386/i386.c (const regclass_map): Add new mask registers.
4339 (dbx_register_map): Ditto.
4340 (dbx64_register_map): Ditto.
4341 (svr4_dbx_register_map): Ditto.
4342 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
4343 disabled.
4344 (ix86_preferred_reload_class): Disable constants for mask registers.
4345 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
4346 (ix86_hard_regno_mode_ok): Support new mask registers.
4347 (x86_order_regs_for_local_alloc): Ditto.
4348 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
4349 (FIXED_REGISTERS): Add new mask registers.
4350 (CALL_USED_REGISTERS): Ditto.
4351 (REG_ALLOC_ORDER): Ditto.
4352 (VALID_MASK_REG_MODE): New.
4353 (FIRST_MASK_REG): Ditto.
4354 (LAST_MASK_REG): Ditto.
4355 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
4356 (MAYBE_MASK_CLASS_P): New.
4357 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
4358 (REG_CLASS_CONTENTS): Ditto.
4359 (MASK_REGNO_P): New.
4360 (ANY_MASK_REG_P): Ditto.
4361 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
4362 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
4363 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
4364 mask registers.
85a77221
AI
4365 (attribute "type"): Add mskmov, msklog.
4366 (attribute "length_immediate"): Support them.
4367 (attribute "memory"): Ditto.
4368 (attribute "prefix_0f"): Ditto.
4369 (*movhi_internal): Support new mask registers.
4370 (*movqi_internal): Ditto.
4371 (define_split): Split out clobber pattern is a logic
4372 insn on mask registers.
4373 (*k<logic><mode>): New.
4374 (*andhi_1): Extend to support mask regs.
4375 (*andqi_1): Extend to support mask regs.
4376 (kandn<mode>): New.
4377 (define_split): Split and-not to and and not if operands
4378 are not mask regs.
4379 (*<code><mode>_1): Separate HI mode to new pattern...
4380 (*<code>hi_1): This.
4381 (*<code>qi_1): Extend to support mask regs.
4382 (kxnor<mode>): New.
4383 (kortestzhi): Ditto.
4384 (kortestchi): Ditto.
4385 (kunpckhi): Ditto.
4386 (*one_cmpl<mode>2_1): Remove HImode and handle it...
4387 (*one_cmplhi2_1): ...Here, now with mask registers support.
4388 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
4389 (HI/QImode arithmetics splitter): Don't split if mask registers
4390 are used.
85a77221
AI
4391 (HI/QImode not splitter): Ditto.
4392 * config/i386/predicated.md (mask_reg_operand): New.
4393 (general_reg_operand): Ditto.
4394
7e570821
AI
43952013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
4396
4397 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
4398 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
4399
9e1376e9
JL
44002013-09-10 Jeff Law <law@redhat.com>
4401
4402 PR tree-optimization/58380
4403 * tree-ssa-threadupdate.c (thread_block): Recognize another case
4404 of threading through a buried loop header.
4405
4406 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
4407 return value for single successor case.
4408
5bbcb888
JH
44092013-09-10 Jan Hubicka <jh@suse.cz>
4410
4411 * ipa-devirt.c (ipa_devirt): Enable with LTO.
4412
d742ff4b
RE
44132013-09-10 Richard Earnshaw <rearnsha@arm.com>
4414
4415 PR target/58361
4416 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
4417 support conditional execution.
4418 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
4419
b0681c9e
VM
44202013-09-10 Vladimir Makarov <vmakarov@redhat.com>
4421
4422 * lra.c (lra): Clear lra_optional_reload_pseudos before every
4423 constraint pass.
f77e2d2d
JBG
4424 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
4425 Check destination too to check move insn.
b0681c9e 4426 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
4427 changed its allocation and the optional reload was inherited on last
4428 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
4429 (lra_undo_inheritance): Add check that inherited pseudo still in
4430 memory.
4431
c9b1c957
JG
44322013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
4433
4434 * config/aarch64/aarch64.md (generic_sched): New.
4435 * config/aarch64/aarch64-generic.md (load): Make conditional
4436 on generic_sched attribute.
4437 (nonload): Likewise.
4438
82d618d3
JH
44392013-09-10 Jan Hubicka <jh@suse.cz>
4440
4441 * lto-cgraph.c: Include ipa-utils.h.
4442 (compute_ltrans_boundary): Also add possible targets into the boundary.
4443
668b6894
JH
44442013-09-10 Jan Hubicka <jh@suse.cz>
4445
4446 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
4447 VAR_DECL of vtable rather than full expression.
4448
4f90d3e0
JH
44492013-09-10 Jan Hubicka <jh@suse.cz>
4450 Paolo Carlini <paolo.carlini@oracle.com>
4451
4452 * cgraphunit.c (analyze_functions): Save input_location, set it
4453 to UNKNOWN_LOCATION and restore it at the end.
4454
39e87baf
MJ
44552013-09-10 Martin Jambor <mjambor@suse.cz>
4456
4457 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
4458 represented by a thunk.
4459
581aedec
JL
44602013-09-10 Jeff Law <law@redhat.com>
4461
4462 PR tree-optimization/58343
4463 * tree-ssa-threadupdate.c (thread_block): Identify and disable
4464 jump threading requests through loop headers buried in the middle
4465 of a jump threading path.
4466
4467 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
4468 in return value/type.
4469
84cf4ab6
JJ
44702013-09-10 Jakub Jelinek <jakub@redhat.com>
4471
4472 PR rtl-optimization/58365
4473 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
4474 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
4475 it differs.
4476
447dd906
RB
44772013-09-10 Richard Biener <rguenther@suse.de>
4478
4479 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
4480 * tree-data-ref.c (create_rdg_vertices): Collect all data
4481 references, signal failure to the caller, use data-ref API.
893e85fa
CM
4482 (build_rdg): Compute data references only once. Maintain lifetime
4483 of data references and data dependences from within RDG.
447dd906
RB
4484 (free_rdg): Free dependence relations.
4485 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
4486 inventing extra dependences.
4487 (distribute_loop): Update for RDG API changes.
4488
f14a7324
KT
44892013-09-10 Kai Tietz <ktietz@redhat.com>
4490
4491 * doc/invoke.texi (fms-extensions): Document changed
4492 behavior for ms-abi targets.
4493 * config/i386/i386.c (ix86_option_override_internal):
4494 Set default value of option -fms-extension for ms-abi targets.
4495
ff131f26
MZ
44962013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
4497
4498 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
4499
33115a2c
AM
45002013-09-10 Alan Modra <amodra@gmail.com>
4501
4502 PR target/58330
4503 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
4504
b6872a13
AM
45052013-09-10 Alan Modra <amodra@gmail.com>
4506
4507 * config/rs6000/predicates.md (add_cint_operand): New.
4508 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
4509 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
4510 using add_cint_operand.
4511 (largetoc_high_plus_aix): Likewise.
4512
28fd0ba2
JJ
45132013-09-09 Jakub Jelinek <jakub@redhat.com>
4514
4515 PR tree-optimization/58364
4516 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
4517 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
4518 the current range can't be an unconditional true or false.
4519
552d99fe
JG
45202013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
4521
4522 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
4523
f43245d1
UB
45242013-09-09 Uros Bizjak <ubizjak@gmail.com>
4525
4526 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
4527
c9b0866a
PC
45282013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
4529
4530 PR c++/43452
4531 * doc/invoke.texi (-Wdelete-incomplete): Document it.
4532
78d8b9f0
IB
45332013-09-09 Ian Bolton <ian.bolton@arm.com>
4534
4535 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
4536 NO_REGS for immediate that can't be moved directly into FP_REGS.
4537
274b2532
KT
45382013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4539
4540 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
4541 comparison with negated operand.
c9b0866a
PC
4542 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
4543 RTL form.
274b2532 4544
467a3558
RB
45452013-09-09 Richard Biener <rguenther@suse.de>
4546
4547 PR middle-end/58326
4548 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
4549 of a subloop record all its block as affecting loop-closed SSA form.
4550
088c5368
RS
45512013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4552
4553 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
4554 of an rtx/bitpos pair.
4555 (store_fixed_bit_field): Update accordingly.
4556
69db2d57
RS
45572013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4558
4559 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
4560 GEN_INT.
4561 * builtins.c (expand_errno_check): Likewise.
4562 * dwarf2cfi.c (init_return_column_size): Likewise.
4563 * except.c (sjlj_mark_call_sites): Likewise.
4564 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
4565 * lra-constraints.c (emit_inc): Likewise.
4566 * ree.c (combine_set_extension): Likewise.
4567 * regmove.c (fixup_match_2): Likewise.
4568 * reload1.c (inc_for_reload): Likewise.
4569
69a59f0f
RS
45702013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4571
4572 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
4573 (force_to_mode, simplify_shift_const_1, simplify_comparison):
4574 Use gen_int_mode with the mode of the associated simplify_* call.
4575 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
4576 * expmed.c (expand_shift_1): Likewise.
4577 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4578 * loop-iv.c (iv_number_of_iterations): Likewise.
4579 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4580 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4581
2f1cd2eb
RS
45822013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4583
4584 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
4585 of the associated expand_* call.
4586 (asan_emit_stack_protection): Likewise.
4587 * builtins.c (round_trampoline_addr): Likewise.
4588 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
4589 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
4590 (emit_store_flag): Likewise.
4591 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
4592 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
4593 Likewise.
4594 * function.c (instantiate_virtual_regs_in_insn): Likewise.
4595 * ifcvt.c (noce_try_store_flag_constants): Likewise.
4596 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
4597 * modulo-sched.c (generate_prolog_epilog): Likewise.
4598 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
4599 (expand_ctz, expand_ffs, expand_unop): Likewise.
4600
4789c0ce
RS
46012013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4602
4603 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
4604 of the associated gen_rtx_* call.
4605 * caller-save.c (init_caller_save): Likewise.
4606 * combine.c (find_split_point, make_extraction): Likewise.
4607 (make_compound_operation): Likewise.
4608 * dwarf2out.c (mem_loc_descriptor): Likewise.
4609 * explow.c (plus_constant, probe_stack_range): Likewise.
4610 * expmed.c (expand_mult_const): Likewise.
4611 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
4612 * reload1.c (init_reload): Likewise.
4613 * valtrack.c (cleanup_auto_inc_dec): Likewise.
4614 * var-tracking.c (adjust_mems): Likewise.
4615 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
4616 rather than gen_rtx_fmt_ee.
4617
a811f7cb
JH
46182013-09-09 Jan Hubicka <jh@suse.cz>
4619
4620 PR middle-end/58294
4621 * value-prof.c (gimple_ic): Copy also abnormal edges.
4622
dcad1dd3
RS
46232013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
4624
4625 * asan.c (asan_shadow_cst): Use gen_int_mode.
4626
daf5c770
JH
46272013-09-08 Jan Hubicka <jh@suse.cz>
4628
4629 * ipa-profile.c: Add toplevel comment.
4630 (ipa_propagate_frequency_1): Be more conservative when profile is read.
4631 (contains_hot_call_p): New function.
4632 (ipa_propagate_frequency): Set frequencies based on counts when
4633 profile is read.
4634 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
4635 profile; do not tamper with profile after inlining if it is read.
4636
a12cd2db
JH
46372013-09-08 Jan Hubicka <jh@suse.cz>
4638
4639 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
4640 speculative edges.
4641
856a1588
JH
46422013-09-08 Jan Hubicka <jh@suse.cz>
4643
4644 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
4645 summary generation.
4646
4f4b0b73
JL
46472013-09-08 Jeff Law <law@redhat.com>
4648
4649 PR bootstrap/58340
4650 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
4651 of 'found'.
4652
cc4029ee
AK
46532013-09-08 Andi Kleen <ak@linux.intel.com>
4654
4655 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
4656
7b395ddd
JH
46572013-09-08 Jan Hubicka <jh@suse.cz>
4658
4659 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
4660
c34c46dd
RS
46612013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
4662
4663 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
4664 for non-debug insns.
4665 * lra.c (new_insn_reg): Take the containing insn as a parameter.
4666 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
4667 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
4668 accordingly.
4669
3462aa02
JH
46702013-09-08 Jan Hubicka <jh@suse.cz>
4671
4672 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
4673 targets and devirtualize to BUILT_IN_UNREACHABLE.
4674 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
4675 * ipa.c (walk_polymorphic_call_targets): New function.
4676 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
4677 functions; use the new timevar.
4678 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
4679 was removed from the program.
4680 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
4681 not consider it in the walk when its vtable is dead.
4682 (possible_polymorphic_call_targets_1): Pass anonymous flag to
4683 record_binfo.
4684 (devirt_variable_node_removal_hook): New function.
4685 (possible_polymorphic_call_targets): Also register
4686 devirt_variable_node_removal_hook.
4687 (ipa_devirt): Do not do non-speculative devirtualization.
4688 (gate_ipa_devirt): One execute if devirtualizing speculatively.
4689
26e5b0fd
JH
46902013-09-08 Jan Hubicka <jh@suse.cz>
4691
4692 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
4693 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
4694 varpool_remove_variable_insertion_hook): Declare.
4695 * varpool.c (varpool_node_hook_list): New structure.
4696 (first_varpool_node_removal_hook,
4697 first_varpool_variable_insertion_hook): New variables.
4698 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
4699 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
4700 varpool_remove_variable_insertion_hook,
4701 varpool_call_variable_insertion_hooks): New functions.
4702 (varpool_remove_node): Use it.
4703
97f1f314 47042013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 4705
97f1f314
PC
4706 PR c++/54941
4707 * diagnostic.c (diagnostic_build_prefix): When s.file is
4708 "<built-in>" don't output line and column numbers.
6df2ca09 4709
bcb650cb
JH
47102013-09-06 Jan Hubicka <jh@suse.cz>
4711
4712 * cgraphunit.c (expand_thunk): Get body before touching arguments.
4713 * lto-streamer-out.c: Stream thunks, too.
4714 * lto-streamer-in.c (input_function): Pop cfun here
4715 (lto_read_body): Instead of here.
4716
87f3fea8
CT
47172013-09-06 Caroline Tice <cmtice@google.com>
4718
4719 * doc/install.texi: Add documentation for the --enable-vtable-verify
4720 and the --disable-libvtv configure options.
4721
5e8d9b45
JL
47222013-09-06 Jeff Law <law@redhat.com>
4723
4724 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
4725 edge implied equivalences into successor phis.
4726
3a001aff
JR
47272013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
4728
4729 * resource.c (mark_referenced_resources): Handle COND_EXEC.
4730
47312013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
4732
4733 * resource.c (mark_target_live_regs): Compute resources taking
4734 into account if a call is predicated or not.
4735
2c641f8b
EB
47362013-09-06 Eric Botcazou <ebotcazou@adacore.com>
4737
4738 * toplev.c (output_stack_usage): Be prepared for suffixes created by
4739 the compiler in the function names.
4740
a81b0a3d
JH
47412013-09-06 Jan Hubicka <jh@suse.cz>
4742
4743 PR middle-end/58094
4744 * ipa-inline.c (has_caller_p): New function.
4745 (want_inline_function_to_all_callers_p): Use it.
4746 (sum_callers, inline_to_all_callers): Break out from ...
4747 (ipa_inline): ... here.
4748
68e4ca7e
JH
47492013-09-06 Jan Hubicka <jh@suse.cz>
4750
2c641f8b
EB
4751 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
4752 only when AVX is enabled.
68e4ca7e 4753
3c73e2fe
JG
47542013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4755
4756 * config/aarch64/aarch64.md
4757 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
4758 is fpsimd_<load/store>2.
4759 (load_pair<mode>): Likewise.
4760 (store_pair<mode>): Likewise.
4761
8c48eecd
JG
47622013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4763
4764 * config/arm/types.md (type): Add "mrs" type.
4765 * config/aarch64/aarch64.md
4766 (aarch64_load_tp_hard): Make type "mrs".
4767 * config/arm/arm.md
4768 (load_tp_hard): Make type "mrs".
4769 * config/arm/cortex-a15.md: Update with new attributes.
4770 * config/arm/cortex-a5.md: Update with new attributes.
4771 * config/arm/cortex-a53.md: Update with new attributes.
4772 * config/arm/cortex-a7.md: Update with new attributes.
4773 * config/arm/cortex-a8.md: Update with new attributes.
4774 * config/arm/cortex-a9.md: Update with new attributes.
4775 * config/arm/cortex-m4.md: Update with new attributes.
4776 * config/arm/cortex-r4.md: Update with new attributes.
4777 * config/arm/fa526.md: Update with new attributes.
4778 * config/arm/fa606te.md: Update with new attributes.
4779 * config/arm/fa626te.md: Update with new attributes.
4780 * config/arm/fa726te.md: Update with new attributes.
4781
9ea187a5
JG
47822013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4783
4784 * config/aarch64/aarch64.md
4785 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
4786 (*movtf_aarch64): Likewise.
4787 * config/arm/arm.md
4788 (thumb1_movdi_insn): Use "multiple" for type where more than one
4789 instruction is used for a move.
4790 (*arm32_movhf): Likewise.
4791 (*thumb_movdf_insn): Likewise.
4792
292b89b3
JG
47932013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4794
4795 * config/arm/types.md (type): Rename fcpys to fmov.
4796 * config/arm/vfp.md
4797 (*arm_movsi_vfp): Rename type fcpys as fmov.
4798 (*thumb2_movsi_vfp): Likewise
4799 (*movhf_vfp_neon): Likewise
4800 (*movhf_vfp): Likewise
4801 (*movsf_vfp): Likewise
4802 (*thumb2_movsf_vfp): Likewise
4803 (*movsfcc_vfp): Likewise
4804 (*thumb2_movsfcc_vfp): Likewise
4805 * config/aarch64/aarch64-simd.md
4806 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
4807 * config/aarch64/aarch64.md
4808 (*movsi_aarch64): Replace type mov_reg with fmovs.
4809 (*movdi_aarch64): Likewise
4810 (*movsf_aarch64): Likewise
4811 (*movdf_aarch64): Likewise
4812 * config/arm/arm.c
4813 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
4814 * config/arm/iwmmxt.md
4815 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
4816 * config/arm/arm1020e.md: Update with new attributes.
4817 * config/arm/cortex-a15-neon.md: Update with new attributes.
4818 * config/arm/cortex-a5.md: Update with new attributes.
4819 * config/arm/cortex-a53.md: Update with new attributes.
4820 * config/arm/cortex-a7.md: Update with new attributes.
4821 * config/arm/cortex-a8-neon.md: Update with new attributes.
4822 * config/arm/cortex-a9.md: Update with new attributes.
4823 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4824 * config/arm/cortex-r4f.md: Update with new attributes.
4825 * config/arm/marvell-pj4.md: Update with new attributes.
4826 * config/arm/vfp11.md: Update with new attributes.
4827
6a24a83e
JG
48282013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4829
4830 * config/aarch64/aarch64.md
4831 (*madd<mode>): Fix type attribute.
4832 (*maddsi_uxtw): Likewise.
4833 (*msub<mode>): Likewise.
4834 (*msubsi_uxtw): Likewise.
4835 (<su_optab>maddsidi4): Likewise.
4836 (<su_optab>msubsidi4): Likewise.
4837
b86923f0
JG
48382013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4839
4840 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
4841 * config/arm/arm.md (core_cycles): Remove fdiv.
4842 * config/arm/vfp.md:
4843 (*sqrtsf2_vfp): Update for attribute changes.
4844 (*sqrtdf2_vfp): Likewise.
4845 * config/aarch64/aarch64.md:
4846 (sqrt<mode>2): Update for attribute changes.
4847 * config/arm/arm1020e.md: Update with new attributes.
4848 * config/arm/cortex-a15-neon.md: Update with new attributes.
4849 * config/arm/cortex-a5.md: Update with new attributes.
4850 * config/arm/cortex-a53.md: Update with new attributes.
4851 * config/arm/cortex-a7.md: Update with new attributes.
4852 * config/arm/cortex-a8-neon.md: Update with new attributes.
4853 * config/arm/cortex-a9.md: Update with new attributes.
4854 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4855 * config/arm/cortex-r4f.md: Update with new attributes.
4856 * config/arm/marvell-pj4.md: Update with new attributes.
4857 * config/arm/vfp11.md: Update with new attributes.
4858
7b49c9e1
JG
48592013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4860
4861 * config/arm/types.md
4862 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
4863 * config/aarch64/aarch64.md
4864 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
4865 new attributes.
4866 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
4867 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
4868 (float<GPI:mode><GPF:mode>2): Likewise.
4869 * config/arm/vfp.md
4870 (*truncsisf2_vfp): Update with new attributes.
4871 (*truncsidf2_vfp): Likewise.
4872 (fixuns_truncsfsi2): Likewise.
4873 (fixuns_truncdfsi2): Likewise.
4874 (*floatsisf2_vfp): Likewise.
4875 (*floatsidf2_vfp): Likewise.
4876 (floatunssisf2): Likewise.
4877 (floatunssidf2): Likewise.
4878 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
4879 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
4880 * config/arm/arm1020e.md: Update with new attributes.
4881 * config/arm/cortex-a15-neon.md: Update with new attributes.
4882 * config/arm/cortex-a5.md: Update with new attributes.
4883 * config/arm/cortex-a53.md: Update with new attributes.
4884 * config/arm/cortex-a7.md: Update with new attributes.
4885 * config/arm/cortex-a8-neon.md: Update with new attributes.
4886 * config/arm/cortex-a9.md: Update with new attributes.
4887 * config/arm/cortex-m4-fpu.md: Update with new attributes.
4888 * config/arm/cortex-r4f.md: Update with new attributes.
4889 * config/arm/marvell-pj4.md: Update with new attributes.
4890 * config/arm/vfp11.md: Update with new attributes.
4891
e7df8af8
JG
48922013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4893
4894 * config/aarch64/arm_neon.h
4895 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
4896 (vqtbx<1,2,3,4><q>_s8): Likewise.
4897
594726e4
JG
48982013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
4899
f43245d1
UB
4900 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
4901 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
4902 (add<mode>3): Add type attribute.
4903 (add<mode>3): Likewise.
4904 (usadd<mode>3): Likewise.
4905 (ssadd<mode>3): Likewise.
4906 (sub<mode>3): Likewise.
4907 (sub<mode>3): Likewise.
4908 (ussub<mode>3): Likewise.
4909 (sssub<mode>3): Likewise.
4910 (ssmulsa3): Likewise.
4911 (usmulusa3): Likewise.
4912 (arm_usatsihi): Likewise.
4913 * config/arm/vfp.md
4914 (*movdi_vfp): Add types for all instructions.
4915 (*movdi_vfp_cortexa8): Likewise.
4916 (*movhf_vfp_neon): Likewise.
4917 (*movhf_vfp): Likewise.
4918 (*movdf_vfp): Likewise.
4919 (*thumb2_movdf_vfp): Likewise.
4920 (*thumb2_movdfcc_vfp): Likewise.
4921 * config/arm/arm.md: Add type attribute to all insn patterns.
4922 (*thumb1_adddi3): Add type attribute.
4923 (*arm_adddi3): Likewise.
4924 (*adddi_sesidi_di): Likewise.
4925 (*adddi_zesidi_di): Likewise.
4926 (*thumb1_addsi3): Likewise.
4927 (addsi3_compare0): Likewise.
4928 (*addsi3_compare0_scratch): Likewise.
4929 (*compare_negsi_si): Likewise.
4930 (cmpsi2_addneg): Likewise.
4931 (*addsi3_carryin_<optab>): Likewise.
4932 (*addsi3_carryin_alt2_<optab>): Likewise.
4933 (*addsi3_carryin_clobercc_<optab>): Likewise.
4934 (*subsi3_carryin): Likewise.
4935 (*subsi3_carryin_const): Likewise.
4936 (*subsi3_carryin_compare): Likewise.
4937 (*subsi3_carryin_compare_const): Likewise.
4938 (*arm_subdi3): Likewise.
4939 (*thumb_subdi3): Likewise.
4940 (*subdi_di_zesidi): Likewise.
4941 (*subdi_di_sesidi): Likewise.
4942 (*subdi_zesidi_di): Likewise.
4943 (*subdi_sesidi_di): Likewise.
4944 (*subdi_zesidi_ze): Likewise.
4945 (thumb1_subsi3_insn): Likewise.
4946 (*arm_subsi3_insn): Likewise.
4947 (*anddi3_insn): Likewise.
4948 (*anddi_zesidi_di): Likewise.
4949 (*anddi_sesdi_di): Likewise.
4950 (*ne_zeroextracts): Likewise.
4951 (*ne_zeroextracts): Likewise.
4952 (*ite_ne_zeroextr): Likewise.
4953 (*ite_ne_zeroextr): Likewise.
4954 (*anddi_notdi_di): Likewise.
4955 (*anddi_notzesidi): Likewise.
4956 (*anddi_notsesidi): Likewise.
4957 (andsi_notsi_si): Likewise.
4958 (thumb1_bicsi3): Likewise.
4959 (*iordi3_insn): Likewise.
4960 (*iordi_zesidi_di): Likewise.
4961 (*iordi_sesidi_di): Likewise.
4962 (*thumb1_iorsi3_insn): Likewise.
4963 (*xordi3_insn): Likewise.
4964 (*xordi_zesidi_di): Likewise.
4965 (*xordi_sesidi_di): Likewise.
4966 (*arm_xorsi3): Likewise.
4967 (*andsi_iorsi3_no): Likewise.
4968 (*smax_0): Likewise.
4969 (*smax_m1): Likewise.
4970 (*arm_smax_insn): Likewise.
4971 (*smin_0): Likewise.
4972 (*arm_smin_insn): Likewise.
4973 (*arm_umaxsi3): Likewise.
4974 (*arm_uminsi3): Likewise.
4975 (*minmax_arithsi): Likewise.
4976 (*minmax_arithsi_): Likewise.
4977 (*satsi_<SAT:code>): Likewise.
4978 (arm_ashldi3_1bit): Likewise.
4979 (arm_ashrdi3_1bit): Likewise.
4980 (arm_lshrdi3_1bit): Likewise.
4981 (*arm_negdi2): Likewise.
4982 (*thumb1_negdi2): Likewise.
4983 (*arm_negsi2): Likewise.
4984 (*thumb1_negsi2): Likewise.
4985 (*negdi_extendsid): Likewise.
4986 (*negdi_zero_extend): Likewise.
4987 (*arm_abssi2): Likewise.
4988 (*thumb1_abssi2): Likewise.
4989 (*arm_neg_abssi2): Likewise.
4990 (*thumb1_neg_abss): Likewise.
4991 (one_cmpldi2): Likewise.
4992 (extend<mode>di2): Likewise.
4993 (*compareqi_eq0): Likewise.
4994 (*arm_extendhisi2addsi): Likewise.
4995 (*arm_movdi): Likewise.
4996 (*thumb1_movdi_insn): Likewise.
4997 (*arm_movt): Likewise.
4998 (*thumb1_movsi_insn): Likewise.
4999 (pic_add_dot_plus_four): Likewise.
5000 (pic_add_dot_plus_eight): Likewise.
5001 (tls_load_dot_plus_eight): Likewise.
5002 (*thumb1_movhi_insn): Likewise.
5003 (*thumb1_movsf_insn): Likewise.
5004 (*movdf_soft_insn): Likewise.
5005 (*thumb_movdf_insn): Likewise.
5006 (cbranchsi4_insn): Likewise.
5007 (cbranchsi4_scratch): Likewise.
5008 (*negated_cbranchsi4): Likewise.
5009 (*tbit_cbranch): Likewise.
5010 (*tlobits_cbranch): Likewise.
5011 (*tstsi3_cbranch): Likewise.
5012 (*cbranchne_decr1): Likewise.
5013 (*addsi3_cbranch): Likewise.
5014 (*addsi3_cbranch_scratch): Likewise.
5015 (*arm_cmpdi_insn): Likewise.
5016 (*arm_cmpdi_unsig): Likewise.
5017 (*arm_cmpdi_zero): Likewise.
5018 (*thumb_cmpdi_zero): Likewise.
5019 (*deleted_compare): Likewise.
5020 (*mov_scc): Likewise.
5021 (*mov_negscc): Likewise.
5022 (*mov_notscc): Likewise.
5023 (*cstoresi_eq0_thumb1_insn): Likewise.
5024 (cstoresi_nltu_thumb1): Likewise.
5025 (cstoresi_ltu_thu): Likewise.
5026 (thumb1_addsi3_addgeu): Likewise.
5027 (*arm_jump): Likewise.
5028 (*thumb_jump): Likewise.
5029 (*check_arch2): Likewise.
5030 (arm_casesi_internal): Likewise.
5031 (thumb1_casesi_dispatch): Likewise.
5032 (*arm_indirect_jump): Likewise.
5033 (*thumb1_indirect_jump): Likewise.
5034 (nop): Likewise.
5035 (*and_scc): Likewise.
5036 (*ior_scc): Likewise.
5037 (*compare_scc): Likewise.
5038 (*cond_move): Likewise.
5039 (*cond_arith): Likewise.
5040 (*cond_sub): Likewise.
5041 (*cmp_ite0): Likewise.
5042 (*cmp_ite1): Likewise.
5043 (*cmp_and): Likewise.
5044 (*cmp_ior): Likewise.
5045 (*ior_scc_scc): Likewise.
5046 (*ior_scc_scc_cmp): Likewise.
5047 (*and_scc_scc): Likewise.
5048 (*and_scc_scc_cmp): Likewise.
5049 (*and_scc_scc_nod): Likewise.
5050 (*negscc): Likewise.
5051 (movcond_addsi): Likewise.
5052 (movcond): Likewise.
5053 (*ifcompare_plus_move): Likewise.
5054 (*if_plus_move): Likewise.
5055 (*ifcompare_move_plus): Likewise.
5056 (*if_move_plus): Likewise.
5057 (*ifcompare_arith_arith): Likewise.
5058 (*if_arith_arith): Likewise.
5059 (*ifcompare_arith_move): Likewise.
5060 (*if_arith_move): Likewise.
5061 (*ifcompare_move_arith): Likewise.
5062 (*if_move_arith): Likewise.
5063 (*ifcompare_move_not): Likewise.
5064 (*if_move_not): Likewise.
5065 (*ifcompare_not_move): Likewise.
5066 (*if_not_move): Likewise.
5067 (*ifcompare_shift_move): Likewise.
5068 (*if_shift_move): Likewise.
5069 (*ifcompare_move_shift): Likewise.
5070 (*if_move_shift): Likewise.
5071 (*ifcompare_shift_shift): Likewise.
5072 (*ifcompare_not_arith): Likewise.
5073 (*ifcompare_arith_not): Likewise.
5074 (*if_arith_not): Likewise.
5075 (*ifcompare_neg_move): Likewise.
5076 (*if_neg_move): Likewise.
5077 (*ifcompare_move_neg): Likewise.
5078 (*if_move_neg): Likewise.
5079 (prologue_thumb1_interwork): Likewise.
5080 (*cond_move_not): Likewise.
5081 (*sign_extract_onebit): Likewise.
5082 (*not_signextract_onebit): Likewise.
5083 (stack_tie): Likewise.
5084 (align_4): Likewise.
5085 (align_8): Likewise.
5086 (consttable_end): Likewise.
5087 (consttable_1): Likewise.
5088 (consttable_2): Likewise.
5089 (consttable_4): Likewise.
5090 (consttable_8): Likewise.
5091 (consttable_16): Likewise.
5092 (*thumb1_tablejump): Likewise.
5093 (prefetch): Likewise.
5094 (force_register_use): Likewise.
5095 (thumb_eh_return): Likewise.
5096 (load_tp_hard): Likewise.
5097 (load_tp_soft): Likewise.
5098 (tlscall): Likewise.
5099 (*arm_movtas_ze): Likewise.
5100 (*arm_rev): Likewise.
5101 (*arm_revsh): Likewise.
5102 (*arm_rev16): Likewise.
5103 * config/arm/thumb2.md
5104 (*thumb2_smaxsi3): Likewise.
5105 (*thumb2_sminsi3): Likewise.
5106 (*thumb32_umaxsi3): Likewise.
5107 (*thumb2_uminsi3): Likewise.
5108 (*thumb2_negdi2): Likewise.
5109 (*thumb2_abssi2): Likewise.
5110 (*thumb2_neg_abss): Likewise.
5111 (*thumb2_movsi_insn): Likewise.
5112 (tls_load_dot_plus_four): Likewise.
5113 (*thumb2_movhi_insn): Likewise.
5114 (*thumb2_mov_scc): Likewise.
5115 (*thumb2_mov_negs): Likewise.
5116 (*thumb2_mov_negs): Likewise.
5117 (*thumb2_mov_nots): Likewise.
5118 (*thumb2_mov_nots): Likewise.
5119 (*thumb2_movsicc_): Likewise.
5120 (*thumb2_movsfcc_soft_insn): Likewise.
5121 (*thumb2_indirect_jump): Likewise.
5122 (*thumb2_and_scc): Likewise.
5123 (*thumb2_ior_scc): Likewise.
5124 (*thumb2_ior_scc_strict_it): Likewise.
5125 (*thumb2_cond_move): Likewise.
5126 (*thumb2_cond_arith): Likewise.
5127 (*thumb2_cond_ari): Likewise.
5128 (*thumb2_cond_sub): Likewise.
5129 (*thumb2_negscc): Likewise.
5130 (*thumb2_movcond): Likewise.
5131 (thumb2_casesi_internal): Likewise.
5132 (thumb2_casesi_internal_pic): Likewise.
5133 (*thumb2_alusi3_short): Likewise.
5134 (*thumb2_mov<mode>_shortim): Likewise.
5135 (*thumb2_addsi_short): Likewise.
5136 (*thumb2_subsi_short): Likewise.
5137 (thumb2_addsi3_compare0): Likewise.
5138 (*thumb2_cbz): Likewise.
5139 (*thumb2_cbnz): Likewise.
5140 (*thumb2_one_cmplsi2_short): Likewise.
5141 (*thumb2_negsi2_short): Likewise.
5142 (*orsi_notsi_si): Likewise.
5143 * config/arm/arm1020e.md: Update with new attributes.
5144 * config/arm/arm1026ejs.md: Update with new attributes.
5145 * config/arm/arm1136jfs.md: Update with new attributes.
5146 * config/arm/arm926ejs.md: Update with new attributes.
5147 * config/arm/cortex-a15.md: Update with new attributes.
5148 * config/arm/cortex-a5.md: Update with new attributes.
5149 * config/arm/cortex-a53.md: Update with new attributes.
5150 * config/arm/cortex-a7.md: Update with new attributes.
5151 * config/arm/cortex-a8.md: Update with new attributes.
5152 * config/arm/cortex-a9.md: Update with new attributes.
5153 * config/arm/cortex-m4.md: Update with new attributes.
5154 * config/arm/cortex-r4.md: Update with new attributes.
5155 * config/arm/fa526.md: Update with new attributes.
5156 * config/arm/fa606te.md: Update with new attributes.
5157 * config/arm/fa626te.md: Update with new attributes.
5158 * config/arm/fa726te.md: Update with new attributes.
5159
1c83b673
JG
51602013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
5161
5162 * config/aarch64/aarch64-simd.md
5163 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
5164 <vwx> iterator to ensure correct register choice.
5165 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
5166 (aarch64_sqdmull_n<mode>): Likewise.
5167 (aarch64_sqdmull2_n<mode>_internal): Likewise.
5168 * config/aarch64/arm_neon.h
5169 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
5170 (vml<as><q>_n_<su>16): Likewise.
5171 (vml<as>l_high_lane<q>_<su>16): Likewise.
5172 (vml<as>l_high_n_<su>16): Likewise.
5173 (vml<as>l_lane<q>_<su>16): Likewise.
5174 (vml<as>l_n_<su>16): Likewise.
5175 (vmul<q>_lane<q>_<su>16): Likewise.
5176 (vmul<q>_n_<su>16): Likewise.
5177 (vmull_lane<q>_<su>16): Likewise.
5178 (vmull_n_<su>16): Likewise.
5179 (vmull_high_lane<q>_<su>16): Likewise.
5180 (vmull_high_n_<su>16): Likewise.
5181 (vqrdmulh<q>_n_s16): Likewise.
5182
bb1ae543
TB
51832013-09-06 Tejas Belagod <tejas.belagod@arm.com>
5184
5185 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
5186 have the correct lane parameter.
5187
f23c0742
RB
51882013-09-06 Richard Biener <rguenther@suse.de>
5189
5190 * cfganal.c (control_dependences::~control_dependences):
5191 Properly free all of the vector.
5192
c1d49770
KY
51932013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
5194
5195 PR target/58269
5196 * config/i386/i386.c (ix86_conditional_register_usage):
5197 Proper initialize extended SSE registers.
5198
6da47f52
JH
51992013-09-06 Jan Hubicka <jh@suse.cz>
5200
5201 PR tree-optimization/58311
5202 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
5203
52042013-09-06 Jan Hubicka <jh@suse.cz>
5205
5206 * Makefile.in (tree-sra.o): Update dependencies.
5207 * tree-sra.c: Include ipa-utils.h
5208 (scan_function): Use recursive_call_p.
5209 (has_caller_p): New function.
5210 (cgraph_for_node_and_aliases): Count also callers of aliases.
5211
fc11f321
JH
52122013-09-06 Jan Hubicka <jh@suse.cz>
5213
5214 PR middle-end/58094
5215 * cgraph.h (symtab_semantically_equivalent_p): Declare.
5216 * tree-tailcall.c: Include ipa-utils.h.
5217 (find_tail_calls): Use it.
5218 * ipa-pure-const.c (check_call): Likewise.
5219 * ipa-utils.c (recursive_call_p): New function.
5220 * ipa-utils.h (recursive_call_p): Dclare.
5221 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
5222 (symtab_semantically_equivalent_p): New function.
5223 * Makefile.in (tree-tailcall.o): Update dependencies.
5224
9a6af450
EB
52252013-09-06 Eric Botcazou <ebotcazou@adacore.com>
5226
5227 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
5228 non-inlinable part.
5229
35f32ad4
RB
52302013-09-06 Richard Biener <rguenther@suse.de>
5231
5232 * lto-streamer.h (lto_global_var_decls): Remove.
5233 * Makefile.in (OBJS): Remove lto-symtab.o.
5234 (lto-symtab.o): Remove.
5235 (GTFILES): Remove lto-symtab.c
5236 * lto-symtab.c: Move to lto/
5237
d12a76f3
AK
52382013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5239
5240 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
5241 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
5242 (UNSPEC_FPINT_RINT): New constant definitions.
5243 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
5244 definition with 2 attributes.
5245 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
5246 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
5247 definitions.
5248
52492013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5250
f43245d1 5251 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
5252 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
5253 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
5254 attribute to "z196_alone".
5255 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
5256 "zEC12_simple".
5257
c8e9d8c3
RB
52582013-09-06 Richard Biener <rguenther@suse.de>
5259
5260 * basic-block.h (class control_dependences): New.
5261 * tree-ssa-dce.c (control_dependence_map): Remove.
5262 (cd): New global.
5263 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
5264 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
5265 find_pdom, find_control_dependence, find_all_control_dependences):
5266 Move to cfganal.c.
f43245d1
UB
5267 (mark_control_dependent_edges_necessary,
5268 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
5269 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
5270 * cfganal.c (set_control_dependence_map_bit,
5271 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
5272 find_all_control_dependences): Move from tree-ssa-dce.c and
5273 implement as methods of control_dependences class.
5274 (control_dependences::control_dependences): New.
5275 (control_dependences::~control_dependences): Likewise.
5276 (control_dependences::get_edges_dependent_on): Likewise.
5277 (control_dependences::get_edge): Likewise.
5278
7d2ba471
JH
52792013-09-04 Jan Hubicka <jh@suse.cz>
5280
5281 * tree.c (types_same_for_odr): Drop overactive check.
5282 * ipa-devirt.c (hash_type_name): Likewise.
5283
e18412fc
JH
52842013-09-04 Jan Hubicka <jh@suse.cz>
5285
5286 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
5287 (analyze_functions): ... here.
5288
d352b245
JH
52892013-09-04 Jan Hubicka <jh@suse.cz>
5290
5291 PR middle-end/58201
5292 * cgraphunit.c (analyze_functions): Clear AUX fields
5293 after processing; initialize assembler name has.
5294
770da076
JL
52952013-09-05 Jeff Law <law@redhat.com>
5296
5297 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
5298 from thread_around_empty_block. Record threading path into PATH.
5299 Recurse if threading through the initial block is successful.
5300 (thread_across_edge): Corresponding changes to slightly simplify.
5301
fe6f68e2
JG
53022013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5303
5304 * config/aarch64/aarch64.md
5305 (type): Remove frecpe, frecps, frecpx.
5306 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
5307 fix to be a TARGET_SIMD instruction.
5308 (aarch64_frecps): Remove.
5309 * config/aarch64/aarch64-simd.md
5310 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
5311 (aarch64_frecps<mode>): Handle all float/vector of float modes.
5312
6e4150e1
JG
53132013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5314 Sofiane Naci <sofiane.naci@arm.com>
5315
f43245d1 5316 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 5317 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
5318 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
5319 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
5320 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
5321 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
5322 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
5323 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
5324 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 5325 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 5326 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
5327 shift* types.
5328 * config/arm/arm-fixed.md: Update for attribute changes
5329 all occurrences of arlo_* types.
5330 * config/arm/thumb2.md: Update for attribute changes all occurrences
5331 of arlo_* types.
5332 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
5333 (cortexa7_older_only): Likewise.
5334 (cortexa7_younger): Likewise.
5335 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
5336 (1020alu_shift_op): Likewise.
5337 (1020alu_shift_reg_op): Likewise.
5338 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
5339 (alu_shift_op): Likewise.
5340 (alu_shift_reg_op): Likewise.
f43245d1 5341 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
5342 (11_alu_shift_op): Likewise.
5343 (11_alu_shift_reg_op): Likewise.
5344 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
5345 (9_alu_shift_reg_op): Likewise.
5346 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
5347 attribute changes.
5348 (cortex_a15_alu_shift): Likewise.
5349 (cortex_a15_alu_shift_reg): Likewise.
5350 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
5351 attribute changes.
5352 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
5353 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
5354 attribute changes.
6e4150e1 5355 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
5356 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
5357 attribute changes.
6e4150e1
JG
5358 (cortex_a7_alu_reg): Likewise.
5359 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
5360 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
5361 attribute changes.
6e4150e1
JG
5362 (cortex_a8_alu_shift): Likewise.
5363 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 5364 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 5365 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
5366 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
5367 attribute changes.
6e4150e1
JG
5368 * config/arm/cortex-r4.md
5369 (cortex_r4_alu): Update for attribute changes.
5370 (cortex_r4_mov): Likewise.
5371 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 5372 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 5373 (526_alu_shift_op): Likewise.
f43245d1
UB
5374 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
5375 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 5376 (626te_alu_shift_op): Likewise.
f43245d1 5377 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
5378 (726te_alu_shift_op): Likewise.
5379 (726te_alu_shift_reg_op): Likewise.
5380 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
5381 (mp626_alu_shift_op): Likewise.
5382 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
5383 (pj4_alu_conds): Likewise.
5384 (pj4_shift): Likewise.
5385 (pj4_shift_conds): Likewise.
5386 (pj4_alu_shift): Likewise.
5387 (pj4_alu_shift_conds): Likewise.
5388 * config/aarch64/aarch64.md: Update for attribute change
5389 all occurrences of arlo_* and shift* types.
5390
e6523306
MS
53912013-09-05 Mike Stump <mikestump@comcast.net>
5392
5393 * tree.h: Move documentation for tree_function_decl to tree-core.h
5394 with the declaration.
5395
80a18161
PB
53962013-09-05 Peter Bergner <bergner@vnet.ibm.com>
5397
5398 PR target/58139
5399 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
5400 looking for widest mode.
5401
6994430a
EB
54022013-09-05 Eric Botcazou <ebotcazou@adacore.com>
5403
5404 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
5405
e67f39f7
RB
54062013-09-05 Richard Biener <rguenther@suse.de>
5407
5408 PR tree-optimization/58137
5409 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5410 Do not create vectors of pointers.
5411 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
5412 types for the components of the vector initializer.
5413 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
5414 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
5415
568cda29
MJ
54162013-09-05 Martin Jambor <mjambor@suse.cz>
5417
5418 * ipa-prop.c (remove_described_reference): Accept missing references,
5419 return false if that hppens, otherwise return true.
5420 (cgraph_node_for_jfunc): New function.
5421 (try_decrement_rdesc_refcount): Likewise.
5422 (try_make_edge_direct_simple_call): Use them.
5423 (ipa_edge_removal_hook): Remove references from rdescs.
5424 (ipa_edge_duplication_hook): Clone rdescs and their references
5425 when the new edge has the same caller as the old one.
5426 * cgraph.c (cgraph_resolve_speculation): Remove speculative
5427 reference before removing any edges.
5428
5a200acb
RE
54292013-09-05 Richard Earnshaw <rearnsha@arm.com>
5430
5431 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
5432 initial store.
5433 * thumb2.md (thumb2_storewb_parisi): New pattern.
5434
5922847b
YZ
54352013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
5436
5437 * config/aarch64/aarch64-option-extensions.def: Add
5438 AARCH64_OPT_EXTENSION of 'crc'.
5439 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
5440 (AARCH64_ISA_CRC): Ditto.
5441 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
5442 description of the CRC extension.
5443
996746aa
AI
54442013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
5445
5446 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
5447 * config/rs6000/linux.h: Ditto.
5448 * alpha/linux.h: Ditto.
5449 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
5450 no_c99_libc_has_function.
5451 * config/c6x/uclinux-elf.h: Ditto.
5452 * config/lm32/uclinux-elf.h: Ditto.
5453 * config/m68k/uclinux.h: Ditto.
5454 * config/moxie/uclinux.h: Ditto.
5455 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
5456 (crisv32-*-linux*, cris-*-linux*): Ditto.
5457 * config/bfin/bfin.c: Include "tm_p.h".
5458
c370d99f
RB
54592013-09-05 Richard Biener <rguenther@suse.de>
5460
5461 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
5462 check for a definition without a basic-block.
5463
003bb7f3
JG
54642013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
5465 Sofiane Naci <sofiane.naci@arm.com>
5466
5467 * config/aarch64/aarch64.md
5468 (*movti_aarch64): Rename r_2_f and f_2_r.
5469 (*movsf_aarch64): Likewise.
5470 (*movdf_aarch64): Likewise.
5471 (*movtf_aarch64): Likewise.
5472 (aarch64_movdi_<mode>low): Likewise.
5473 (aarch64_movdi_<mode>high): Likewise.
5474 (aarch64_mov<mode>high_di): Likewise.
5475 (aarch64_mov<mode>low_di): Likewise.
5476 (aarch64_movtilow_tilow): Likewise.
5477 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
5478 values to config/arm/types.md
5479 (attribute "conds"): Update for attribute change.
5480 (anddi3_insn): Likewise.
5481 (iordi3_insn): Likewise.
5482 (xordi3_insn): Likewise.
5483 (one_cmpldi2): Likewise.
5484 * config/arm/types.md (type): Add Neon types.
5485 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
5486 use "type" attribute.
5487 (movmisalign<mode>_neon_store): Likewise.
5488 (movmisalign<mode>_neon_load): Likewise.
5489 (vec_set<mode>_internal): Likewise.
5490 (vec_setv2di_internal): Likewise.
5491 (vec_extract<mode>): Likewise.
5492 (vec_extractv2di): Likewise.
5493 (add<mode>3_neon): Likewise.
5494 (adddi3_neon): Likewise.
5495 (sub<mode>3_neon): Likewise.
5496 (subdi3_neon): Likewise.
5497 (mul<mode>3_neon): Likewise.
5498 (mul<mode>3add<mode>_neon): Likewise.
5499 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
5500 (fma<VCVTF:mode>4)): Likewise.
5501 (fma<VCVTF:mode>4_intrinsic): Likewise.
5502 (fmsub<VCVTF:mode>4)): Likewise.
5503 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
5504 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
5505 (ior<mode>3): Likewise.
5506 (and<mode>3): Likewise.
5507 (anddi3_neon): Likewise.
5508 (orn<mode>3_neon): Likewise.
5509 (orndi3_neon): Likewise.
5510 (bic<mode>3_neon): Likewise.
5511 (bicdi3_neon): Likewise.
5512 (xor<mode>3): Likewise.
5513 (one_cmpl<mode>2): Likewise.
5514 (abs<mode>2): Likewise.
5515 (neg<mode>2): Likewise.
5516 (umin<mode>3_neon): Likewise.
5517 (umax<mode>3_neon): Likewise.
5518 (smin<mode>3_neon): Likewise.
5519 (smax<mode>3_neon): Likewise.
5520 (vashl<mode>3): Likewise.
5521 (vashr<mode>3_imm): Likewise.
5522 (vlshr<mode>3_imm): Likewise.
5523 (ashl<mode>3_signed): Likewise.
5524 (ashl<mode>3_unsigned): Likewise.
5525 (neon_load_count): Likewise.
5526 (ashldi3_neon_noclobber): Likewise.
5527 (signed_shift_di3_neon): Likewise.
5528 (unsigned_shift_di3_neon): Likewise.
5529 (ashrdi3_neon_imm_noclobber): Likewise.
5530 (lshrdi3_neon_imm_noclobber): Likewise.
5531 (widen_ssum<mode>3): Likewise.
5532 (widen_usum<mode>3): Likewise.
5533 (quad_halves_<code>v4si): Likewise.
5534 (quad_halves_<code>v4sf): Likewise.
5535 (quad_halves_<code>v8hi): Likewise.
5536 (quad_halves_<code>v16qi): Likewise.
5537 (reduc_splus_v2di): Likewise.
5538 (neon_vpadd_internal<mode>): Likewise.
5539 (neon_vpsmin<mode>): Likewise.
5540 (neon_vpsmax<mode>): Likewise.
5541 (neon_vpumin<mode>): Likewise.
5542 (neon_vpumax<mode>): Likewise.
5543 (ss_add<mode>_neon): Likewise.
5544 (us_add<mode>_neon): Likewise.
5545 (ss_sub<mode>_neon): Likewise.
5546 (us_sub<mode>_neon): Likewise.
5547 (neon_vadd<mode>_unspec): Likewise.
5548 (neon_vaddl<mode>): Likewise.
5549 (neon_vaddw<mode>): Likewise.
5550 (neon_vhadd<mode>): Likewise.
5551 (neon_vqadd<mode>): Likewise.
5552 (neon_vaddhn<mode>): Likewise.
5553 (neon_vmul<mode>): Likewise.
5554 (neon_vmla<mode>): Likewise.
5555 (neon_vmlal<mode>): Likewise.
5556 (neon_vmls<mode>): Likewise.
5557 (neon_vmlsl<mode>): Likewise.
5558 (neon_vqdmulh<mode>): Likewise.
5559 (neon_vqdmlal<mode>): Likewise.
5560 (neon_vqdmlsl<mode>): Likewise.
5561 (neon_vmull<mode>): Likewise.
5562 (neon_vqdmull<mode>): Likewise.
5563 (neon_vsub<mode>_unspec): Likewise.
5564 (neon_vsubl<mode>): Likewise.
5565 (neon_vsubw<mode>): Likewise.
5566 (neon_vqsub<mode>): Likewise.
5567 (neon_vhsub<mode>): Likewise.
5568 (neon_vsubhn<mode>): Likewise.
5569 (neon_vceq<mode>): Likewise.
5570 (neon_vcge<mode>): Likewise.
5571 (neon_vcgeu<mode>): Likewise.
5572 (neon_vcgt<mode>): Likewise.
5573 (neon_vcgtu<mode>): Likewise.
5574 (neon_vcle<mode>): Likewise.
5575 (neon_vclt<mode>): Likewise.
5576 (neon_vcage<mode>): Likewise.
5577 (neon_vcagt<mode>): Likewise.
5578 (neon_vtst<mode>): Likewise.
5579 (neon_vabd<mode>): Likewise.
5580 (neon_vabdl<mode>): Likewise.
5581 (neon_vaba<mode>): Likewise.
5582 (neon_vabal<mode>): Likewise.
5583 (neon_vmax<mode>): Likewise.
5584 (neon_vmin<mode>): Likewise.
5585 (neon_vpaddl<mode>): Likewise.
5586 (neon_vpadal<mode>): Likewise.
5587 (neon_vpmax<mode>): Likewise.
5588 (neon_vpmin<mode>): Likewise.
5589 (neon_vrecps<mode>): Likewise.
5590 (neon_vrsqrts<mode>): Likewise.
5591 (neon_vqabs<mode>): Likewise.
5592 (neon_vqneg<mode>): Likewise.
5593 (neon_vcls<mode>): Likewise.
5594 (clz<mode>2): Likewise.
5595 (popcount<mode>2): Likewise.
5596 (neon_vrecpe): Likewise.
5597 (neon_vrsqrte): Likewise.
5598 (neon_vget_lane<mode>_sext_internal): Likewise.
5599 (neon_vget_lane<mode>_zext_internal): Likewise.
5600 (neon_vdup_n<mode>): Likewise.
5601 (neon_vdup_nv2di): Likewise.
5602 (neon_vdpu_lane<mode>_internal): Likewise.
5603 (neon_vswp<mode>): Likewise.
5604 (float<mode><V_cvtto>2): Likewise.
5605 (floatuns<mode><V_cvtto>2): Likewise.
5606 (fix_trunc<mode><V_cvtto>)2): Likewise
5607 (fixuns_trunc<mode><V_cvtto)2): Likewise.
5608 (neon_vcvt<mode>): Likewise.
5609 (neon_vcvtv4sfv4hf): Likewise.
5610 (neon_vcvtv4hfv4sf): Likewise.
5611 (neon_vcvt_n<mode>): Likewise.
5612 (neon_vmovn<mode>): Likewise.
5613 (neon_vqmovn<mode>): Likewise.
5614 (neon_vqmovun<mode>): Likewise.
5615 (neon_vmovl<mode>): Likewise.
5616 (neon_vmul_lane<mode>): Likewise.
5617 (neon_vmull_lane<mode>): Likewise.
5618 (neon_vqdmull_lane<mode>): Likewise.
5619 (neon_vqdmulh_lane<mode>): Likewise.
5620 (neon_vmla_lane<mode>): Likewise.
5621 (neon_vmlal_lane<mode>): Likewise.
5622 (neon_vqdmlal_lane<mode>): Likewise.
5623 (neon_vmls_lane<mode>): Likewise.
5624 (neon_vmlsl_lane<mode>): Likewise.
5625 (neon_vqdmlsl_lane<mode>): Likewise.
5626 (neon_vext<mode>): Likewise.
5627 (neon_vrev64<mode>): Likewise.
5628 (neon_vrev32<mode>): Likewise.
5629 (neon_vrev16<mode>): Likewise.
5630 (neon_vbsl<mode>_internal): Likewise.
5631 (neon_vshl<mode>): Likewise.
5632 (neon_vqshl<mode>): Likewise.
5633 (neon_vshr_n<mode>): Likewise.
5634 (neon_vshrn_n<mode>): Likewise.
5635 (neon_vqshrn_n<mode>): Likewise.
5636 (neon_vqshrun_n<mode>): Likewise.
5637 (neon_vshl_n<mode>): Likewise.
5638 (neon_vqshl_n<mode>): Likewise.
5639 (neon_vqshlu_n<mode>): Likewise.
5640 (neon_vshll_n<mode>): Likewise.
5641 (neon_vsra_n<mode>): Likewise.
5642 (neon_vsri_n<mode>): Likewise.
5643 (neon_vsli_n<mode>): Likewise.
5644 (neon_vtbl1v8qi): Likewise.
5645 (neon_vtbl2v8qi): Likewise.
5646 (neon_vtbl3v8qi): Likewise.
5647 (neon_vtbl4v8qi): Likewise.
5648 (neon_vtbx1v8qi): Likewise.
5649 (neon_vtbx2v8qi): Likewise.
5650 (neon_vtbx3v8qi): Likewise.
5651 (neon_vtbx4v8qi): Likewise.
5652 (neon_vtrn<mode>_internal): Likewise.
5653 (neon_vzip<mode>_internal): Likewise.
5654 (neon_vuzp<mode>_internal): Likewise.
5655 (neon_vld1<mode>): Likewise.
5656 (neon_vld1_lane<mode>): Likewise.
5657 (neon_vld1_dup<mode>): Likewise.
5658 (neon_vld1_dupv2di): Likewise.
5659 (neon_vst1<mode>): Likewise.
5660 (neon_vst1_lane<mode>): Likewise.
5661 (neon_vld2<mode>): Likewise.
5662 (neon_vld2_lane<mode>): Likewise.
5663 (neon_vld2_dup<mode>): Likewise.
5664 (neon_vst2<mode>): Likewise.
5665 (neon_vst2_lane<mode>): Likewise.
5666 (neon_vld3<mode>): Likewise.
5667 (neon_vld3qa<mode>): Likewise.
5668 (neon_vld3qb<mode>): Likewise.
5669 (neon_vld3_lane<mode>): Likewise.
5670 (neon_vld3_dup<mode>): Likewise.
5671 (neon_vst3<mode>): Likewise.
5672 (neon_vst3qa<mode>): Likewise.
5673 (neon_vst3qb<mode>): Likewise.
5674 (neon_vst3_lane<mode>): Likewise.
5675 (neon_vld4<mode>): Likewise.
5676 (neon_vld4qa<mode>): Likewise.
5677 (neon_vld4qb<mode>): Likewise.
5678 (neon_vld4_lane<mode>): Likewise.
5679 (neon_vld4_dup<mode>): Likewise.
5680 (neon_vst4<mode>): Likewise.
5681 (neon_vst4qa<mode>): Likewise.
5682 (neon_vst4qb<mode>): Likewise.
5683 (neon_vst4_lane<mode>): Likewise.
5684 (neon_vec_unpack<US>_lo_<mode>): Likewise.
5685 (neon_vec_unpack<US>_hi_<mode>): Likewise.
5686 (neon_vec_<US>mult_lo_<mode>): Likewise.
5687 (neon_vec_<US>mult_hi_<mode>): Likewise.
5688 (neon_vec_<US>shiftl_<mode>): Likewise.
5689 (neon_unpack<US>_<mode>): Likewise.
5690 (neon_vec_<US>mult_<mode>): Likewise.
5691 (vec_pack_trunc_<mode>): Likewise.
5692 (neon_vec_pack_trunk_<mode>): Likewise.
5693 (neon_vabd<mode>_2): Likewise.
5694 (neon_vabd<mode>_3): Likewise.
5695 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
5696 (thumb2_movsi_vfp): Likewise.
5697 (movdi_vfp): Likewise.
5698 (movdi_vfp_cortexa8): Likewise.
5699 (movhf_vfp_neon): Likewise.
5700 (movhf_vfp): Likewiwse.
5701 (movsf_vfp): Likewiwse.
5702 (thumb2_movsf_vfp): Likewiwse.
5703 (movdf_vfp): Likewise.
5704 (thumb2_movdf_vfp): Likewise.
5705 (movsfcc_vfp): Likewise.
5706 (thumb2_movsfcc_vfp): Likewise.
5707 (movdfcc_vfp): Likewise.
5708 (thumb2_movdfcc_vfp): Likewise.
5709 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
5710 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
5711 (v10_v2c): Likewise.
5712 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
5713 attribute change.
5714 (cortex_a15_neon_int_2): Likewise.
5715 (cortex_a15_neon_int_3): Likewise.
5716 (cortex_a15_neon_int_4): Likewise.
5717 (cortex_a15_neon_int_5): Likewise.
5718 (cortex_a15_neon_vqneg_vqabs): Likewise.
5719 (cortex_a15_neon_vmov): Likewise.
5720 (cortex_a15_neon_vaba): Likewise.
5721 (cortex_a15_neon_vaba_qqq): Likewise.
5722 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5723 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
5724 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
5725 scalar_64_32_long_scalar): Likewise.
5726 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5727 (cortex_a15_neon_mla_qqq_8_16): Likewise.
5728 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5729 lotype_qdd_64_32_long): Likewise.
5730 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5731 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5732 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
5733 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5734 (cortex_a15_neon_shift_1): Likewise.
5735 (cortex_a15_neon_shift_2): Likewise.
5736 (cortex_a15_neon_shift_3): Likewise.
5737 (cortex_a15_neon_vshl_ddd): Likewise.
5738 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5739 (cortex_a15_neon_vsra_vrsra): Likewise.
5740 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
5741 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
5742 (cortex_a15_neon_fp_vmul_ddd): Likewise.
5743 (cortex_a15_neon_fp_vmul_qqd): Likewise.
5744 (cortex_a15_neon_fp_vmla_ddd): Likewise.
5745 (cortex_a15_neon_fp_vmla_qqq): Likewise.
5746 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
5747 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
5748 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5749 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5750 (cortex_a15_neon_bp_simple): Likewise.
5751 (cortex_a15_neon_bp_2cycle): Likewise.
5752 (cortex_a15_neon_bp_3cycle): Likewise.
5753 (cortex_a15_neon_vld1_1_2_regs): Likewise.
5754 (cortex_a15_neon_vld1_3_4_regs): Likewise.
5755 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5756 (cortex_a15_neon_vld2_4_regs): Likewise.
5757 (cortex_a15_neon_vld3_vld4): Likewise.
5758 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5759 (cortex_a15_neon_vst1_3_4_regs): Likewise.
5760 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
5761 (cortex_a15_neon_vst3_vst4): Likewise.
5762 (cortex_a15_neon_vld1_vld2_lane): Likewise.
5763 (cortex_a15_neon_vld3_vld4_lane" 10
5764 (cortex_a15_neon_vst1_vst2_lane): Likewise.
5765 (cortex_a15_neon_vst3_vst4_lane): Likewise.
5766 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
5767 (cortex_a15_neon_ldm_2): Likewise.0
5768 (cortex_a15_neon_stm_2): Likewise.
5769 (cortex_a15_neon_mcr): Likewise.
5770 (cortex_a15_neon_mcr_2_mcrr): Likewise.
5771 (cortex_a15_neon_mrc): Likewise.
5772 (cortex_a15_neon_mrrc): Likewise.
5773 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
5774 change.
5775 (cortex_a15_alu_shift): Likewise.
5776 (cortex_a15_alu_shift_reg): Likewise.
5777 (cortex_a15_mult32): Likewise.
5778 (cortex_a15_mult64): Likewise.
5779 (cortex_a15_block): Likewise.
5780 (cortex_a15_branch): Likewise.
5781 (cortex_a15_load1): Likewise.
5782 (cortex_a15_load3): Likewise.
5783 (cortex_a15_store1): Likewise.
5784 (cortex_a15_store3): Likewise.
5785 (cortex_a15_call): Likewise.
f43245d1 5786 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
5787 (cortex_a5_f2r): Likewise.
5788 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
5789 change.
5790 (cortex_a53_f2r): Likewise.
5791 * config/arm/cortex-a7.md
5792 (cortex_a7_branch): Update for attribute change.
5793 (cortex_a7_call): Likewise.
5794 (cortex_a7_alu_imm): Likewise.
5795 (cortex_a7_alu_reg): Likewise.
5796 (cortex_a7_alu_shift): Likewise.
5797 (cortex_a7_mul): Likewise.
5798 (cortex_a7_load1): Likewise.
5799 (cortex_a7_store1): Likewise.
5800 (cortex_a7_load2): Likewise.
5801 (cortex_a7_store2): Likewise.
5802 (cortex_a7_load3): Likewise.
5803 (cortex_a7_store3): Likewise.
5804 (cortex_a7_load4): Likewise.
5805 (cortex_a7_store4): Likewise.
5806 (cortex_a7_fpalu): Likewise.
5807 (cortex_a7_fconst): Likewise.
5808 (cortex_a7_fpmuls): Likewise.
5809 (cortex_a7_neon_mul): Likewise.
5810 (cortex_a7_fpmacs): Likewise.
5811 (cortex_a7_neon_mla: Likewise.
5812 (cortex_a7_fpmuld: Likewise.
5813 (cortex_a7_fpmacd: Likewise.
5814 (cortex_a7_fpfmad: Likewise.
5815 (cortex_a7_fdivs: Likewise.
5816 (cortex_a7_fdivd: Likewise.
5817 (cortex_a7_r2f: Likewise.
5818 (cortex_a7_f2r: Likewise.
5819 (cortex_a7_f_flags: Likewise.
5820 (cortex_a7_f_loads: Likewise.
5821 (cortex_a7_f_loadd: Likewise.
5822 (cortex_a7_f_stores: Likewise.
5823 (cortex_a7_f_stored: Likewise.
5824 (cortex_a7_neon): Likewise.
5825 * config/arm/cortex-a8-neon.md
5826 (cortex_a8_neon_mrc): Update for attribute change.
5827 (cortex_a8_neon_mrrc): Likewise.
5828 (cortex_a8_neon_int_1): Likewise.
5829 (cortex_a8_neon_int_2): Likewise.
5830 (cortex_a8_neon_int_3): Likewise.
5831 (cortex_a8_neon_int_4): Likewise.
5832 (cortex_a8_neon_int_5): Likewise.
5833 (cortex_a8_neon_vqneg_vqabs): Likewise.
5834 (cortex_a8_neon_vmov): Likewise.
5835 (cortex_a8_neon_vaba): Likewise.
5836 (cortex_a8_neon_vaba_qqq): Likewise.
5837 (cortex_a8_neon_vsma): Likewise.
5838 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5839 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
5840 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
5841 long_scalar): Likewise.
003bb7f3
JG
5842 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5843 (cortex_a8_neon_mla_qqq_8_16): Likewise.
5844 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5845 long_scalar_qdd_64_32_long): Likewise.
5846 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5847 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5848 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
5849 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5850 (cortex_a8_neon_shift_1): Likewise.
5851 (cortex_a8_neon_shift_2): Likewise.
5852 (cortex_a8_neon_shift_3): Likewise.
5853 (cortex_a8_neon_vshl_ddd): Likewise.
5854 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5855 (cortex_a8_neon_vsra_vrsra): Likewise.
5856 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
5857 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
5858 (cortex_a8_neon_fp_vsum): Likewise.
5859 (cortex_a8_neon_fp_vmul_ddd): Likewise.
5860 (cortex_a8_neon_fp_vmul_qqd): Likewise.
5861 (cortex_a8_neon_fp_vmla_ddd): Likewise.
5862 (cortex_a8_neon_fp_vmla_qqq): Likewise.
5863 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
5864 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
5865 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5866 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5867 (cortex_a8_neon_bp_simple): Likewise.
5868 (cortex_a8_neon_bp_2cycle): Likewise.
5869 (cortex_a8_neon_bp_3cycle): Likewise.
5870 (cortex_a8_neon_ldr): Likewise.
5871 (cortex_a8_neon_str): Likewise.
5872 (cortex_a8_neon_vld1_1_2_regs): Likewise.
5873 (cortex_a8_neon_vld1_3_4_regs): Likewise.
5874 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5875 (cortex_a8_neon_vld2_4_regs): Likewise.
5876 (cortex_a8_neon_vld3_vld4): Likewise.
5877 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5878 (cortex_a8_neon_vst1_3_4_regs): Likewise.
5879 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
5880 (cortex_a8_neon_vst3_vst4): Likewise.
5881 (cortex_a8_neon_vld1_vld2_lane): Likewise.
5882 (cortex_a8_neon_vld3_vld4_lane): Likewise.
5883 (cortex_a8_neon_vst1_vst2_lane): Likewise.
5884 (cortex_a8_neon_vst3_vst4_lane): Likewise.
5885 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
5886 (cortex_a8_neon_mcr): Likewise.
5887 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 5888 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
5889 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
5890 change.
5891 (ca9_neon_mrrc): Likewise.
5892 (cortex_a9_neon_int_1): Likewise.
5893 (cortex_a9_neon_int_2): Likewise.
5894 (cortex_a9_neon_int_3): Likewise.
5895 (cortex_a9_neon_int_4): Likewise.
5896 (cortex_a9_neon_int_5): Likewise.
5897 (cortex_a9_neon_vqneg_vqabs): Likewise.
5898 (cortex_a9_neon_vmov): Likewise.
5899 (cortex_a9_neon_vaba): Likewise.
5900 (cortex_a9_neon_vaba_qqq): Likewise.
5901 (cortex_a9_neon_vsma): Likewise.
5902 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5903 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
5904 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
5905 long_scalar): Likewise.
003bb7f3
JG
5906 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
5907 (cortex_a9_neon_mla_qqq_8_16): Likewise.
5908 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
5909 long_scalar_qdd_64_32_long): Likewise.
5910 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
5911 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
5912 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
5913 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
5914 (cortex_a9_neon_shift_1): Likewise.
5915 (cortex_a9_neon_shift_2): Likewise.
5916 (cortex_a9_neon_shift_3): Likewise.
5917 (cortex_a9_neon_vshl_ddd): Likewise.
5918 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
5919 (cortex_a9_neon_vsra_vrsra): Likewise.
5920 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
5921 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
5922 (cortex_a9_neon_fp_vsum): Likewise.
5923 (cortex_a9_neon_fp_vmul_ddd): Likewise.
5924 (cortex_a9_neon_fp_vmul_qqd): Likewise.
5925 (cortex_a9_neon_fp_vmla_ddd): Likewise.
5926 (cortex_a9_neon_fp_vmla_qqq): Likewise.
5927 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
5928 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
5929 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
5930 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
5931 (cortex_a9_neon_bp_simple): Likewise.
5932 (cortex_a9_neon_bp_2cycle): Likewise.
5933 (cortex_a9_neon_bp_3cycle): Likewise.
5934 (cortex_a9_neon_ldr): Likewise.
5935 (cortex_a9_neon_str): Likewise.
5936 (cortex_a9_neon_vld1_1_2_regs): Likewise.
5937 (cortex_a9_neon_vld1_3_4_regs): Likewise.
5938 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
5939 (cortex_a9_neon_vld2_4_regs): Likewise.
5940 (cortex_a9_neon_vld3_vld4): Likewise.
5941 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
5942 (cortex_a9_neon_vst1_3_4_regs): Likewise.
5943 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
5944 (cortex_a9_neon_vst3_vst4): Likewise.
5945 (cortex_a9_neon_vld1_vld2_lane): Likewise.
5946 (cortex_a9_neon_vld3_vld4_lane): Likewise.
5947 (cortex_a9_neon_vst1_vst2_lane): Likewise.
5948 (cortex_a9_neon_vst3_vst4_lane): Likewise.
5949 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
5950 (cortex_a9_neon_mcr): Likewise.
5951 (cortex_a9_neon_mcr_2_mcrr): Likewise.
5952 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
5953 (cortex_a9_fps): Likewise.
5954 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
5955 change.
5956 (cortex_m4_fmuls): Likewise.
5957 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
5958 change.
5959 (cortex_r4_mrc): Likewise.
5960 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 5961 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 5962 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
5963 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
5964 attribute change.
003bb7f3
JG
5965 (pj4_core_to_vfp): Likewise.
5966 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
5967 attribute change.
5968 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
5969 (vfp_fstore): Likewise.
5970 * doc/md.texi: Change references to neon_type to refer to type.
5971
fbe0dc78
DS
59722013-09-04 Dodji Seketeli <dodji@redhat.com>
5973
5974 * tree.h (DECL_BUILT_IN): Fix typo in comment.
5975
c167bc5b
DE
59762013-09-04 David Edelsohn <dje.gcc@gmail.com>
5977
5978 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
5979 lglobl if not weak.
5980
035cb59f
ER
59812013-09-04 Easwaran Raman <eraman@google.com>
5982
5983 PR middle-end/57370
5984 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
5985 (build_and_add_sum): Use it.
5986 (appears_later_in_bb): Simplify code.
5987
71191083
TJ
59882013-09-04 Teresa Johnson <tejohnson@google.com>
5989
5990 * dumpfile.c (dump_finish): Don't close stderr/stdout.
5991
0c488213
JG
59922013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
5993
5994 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
5995
61a74079
JH
59962013-09-04 Jan Hubicka <jh@suse.cz>
5997
5998 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
5999 * ipa-devirt.c: Include diganostic.h
6000 (odr_type_d): Add types and types_set.
6001 (hash_type_name): Work for types with vtables during LTO.
6002 (odr_hasher::remove): Fix comment; destroy types_set.
6003 (add_type_duplicate): New function,
6004 (get_odr_type): Use it.
6005 (dump_type_inheritance_graph): Dump type duplicates.
6006 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
6007 graph.
6008 * tree.c (types_same_for_odr): Give exact answers on types with
6009 virtual tables.
6010
24ba8195
DS
60112013-09-04 Dodji Seketeli <dodji@redhat.com>
6012
6013 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
7a5911d3 6014 explaining their differences.
24ba8195 6015
0a04869e
SKS
60162013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
6017
6018 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
6019
3b18bc42
JL
60202013-09-03 Jeff Law <law@redhat.com>
6021
6022 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
6023 when not threading through a joiner block. Pass joiner/no joiner
6024 state to register_jump_thread.
6025 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
6026 state from argument rather than implying on path length.
6027 Dump the entire jump thread path into debugging dump.
6028 * tree-flow.h (register_jump_thread): Update prototype.
6029
ae84e151
XDL
60302013-08-29 Xinliang David Li <davidxl@google.com>
6031
6032 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6033 Remove a trivial gcc_assert.
6034
c716e67f
XDL
60352013-08-29 Xinliang David Li <davidxl@google.com>
6036
6037 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
6038 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
6039 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6040 Delay base decl alignment adjustment.
6041 * tree-vectorizer.c (vect_destroy_datarefs): New function.
6042 * tree-vectorizer.h: New data structure.
6043 (set_dr_misalignment): New function.
6044 (dr_misalignment): Ditto.
6045 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
6046 (vectorizable_load): Ditto.
6047 (ensure_base_align): New function.
6048 (vectorize_loops): Add dbg_cnt support.
6049 (execute_vect_slp): Ditto.
6050 * dbgcnt.def: New debug counter.
6051 * Makefile: New dependency.
6052
db8800bc
MI
60532013-09-03 Meador Inge <meadori@codesourcery.com>
6054
6055 Revert:
6056
6057 2013-08-30 Meador Inge <meadori@codesourcery.com>
6058
6059 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
6060
0d9b4f5c
DE
60612013-09-03 David Edelsohn <dje.gcc@gmail.com>
6062
6063 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
6064 function descriptor.
6065
29e810b9
RB
60662013-09-03 Richard Biener <rguenther@suse.de>
6067
6068 * tree-affine.c (add_elt_to_tree): Fix association issue,
6069 avoid useless converts and make sure to always return a
6070 properly typed result.
6071
dbfc2894
RB
60722013-09-03 Richard Biener <rguenther@suse.de>
6073
6074 PR middle-end/57656
6075 * fold-const.c (negate_expr_p): Fix division case.
6076 (negate_expr): Likewise.
6077
fa3bf4ce
RB
60782013-09-03 Richard Biener <rguenther@suse.de>
6079
6080 PR lto/58285
6081 * tree-streamer-out.c: Include tm.h.
6082 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
6083
a64bbb3f
JH
60842013-09-03 Jan Hubicka <jh@suse.cz>
6085
6086 * tree-profile.c (tree_profiling): Cleanup CFG when done.
6087
93ed07e2
AM
60882013-09-03 Alan Modra <amodra@gmail.com>
6089
6090 * config.gcc (powerpc*-*-linux*): Add support for little-endian
6091 multilibs to big-endian target and vice versa.
6092 * config/rs6000/t-linux64: Use := assignment on all vars.
6093 (MULTILIB_EXTRA_OPTS): Remove fPIC.
6094 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
6095 * config/rs6000/t-linux64le: New file.
6096 * config/rs6000/t-linux64bele: New file.
6097 * config/rs6000/t-linux64lebe: New file.
6098
07d6cd64
JH
60992013-09-02 Jan Hubicka <jh@suse.cz>
6100
6101 * ipa-inline-transform.c (inline_transform): Do not
6102 optimize_inline_calls when not optimizing.
6103
8e4c9a10
JH
61042013-09-02 Jan Hubicka <jh@suse.cz>
6105
6106 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
6107 duplicated nodes for assembler names.
6108 * symtab.c (symtab_unregister_node): Do not attempt to unlink
6109 hard registers from assembler name hash.
6110
c91061e6
JH
61112013-09-02 Jan Hubicka <jh@suse.cz>
6112
6113 * ipa-split.c (execute_split_functions): Split externally visible
6114 functions called once.
6115
2fd0985c
MJ
61162013-09-02 Martin Jambor <mjambor@suse.cz>
6117
6118 PR ipa/58106
6119 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
6120 linked list. When finding the correct duplicate, also consider also
6121 the caller in additon to its inlined_to node.
6122
91bd4114
JG
61232013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
6124
6125 * config/aarch64/aarch64-simd-builtins.def
6126 (dup_lane_scalar): Remove.
6127 * config/aarch64/aarch64-simd.md
6128 (aarch64_simd_dup): Add 'w->w' alternative.
6129 (aarch64_dup_lane<mode>): Allow for VALL.
6130 (aarch64_dup_lane_scalar<mode>): Remove.
6131 (aarch64_dup_lane_<vswap_width_name><mode>): New.
6132 (aarch64_get_lane_signed<mode>): Add w->w altenative.
6133 (aarch64_get_lane_unsigned<mode>): Likewise.
6134 (aarch64_get_lane<mode>): Likewise.
6135 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
6136 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
6137 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
6138 (VCON): Change container of V2SF.
6139 (vswap_width_name): Likewise.
6140 * config/aarch64/arm_neon.h
6141 (__aarch64_vdup_lane_any): New.
6142 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6143 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
6144 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
6145
d617d2d8
EB
61462013-09-02 Eric Botcazou <ebotcazou@adacore.com>
6147
6148 PR middle-end/56382
6149 * expr.c (emit_move_complex): Do not move complex FP values as parts if
6150 the source or the destination is a single hard register.
6151
63fdb7be
RB
61522013-09-02 Richard Biener <rguenther@suse.de>
6153
6154 PR middle-end/57511
6155 * tree-scalar-evolution.c (instantiate_scev_name): Allow
6156 non-linear SCEVs.
6157
78de2333
RB
61582013-09-02 Richard Biener <rguenther@suse.de>
6159
6160 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
6161 arithmetic to sizetype.
6162
85ff4ec6
BC
61632013-09-02 Bin Cheng <bin.cheng@arm.com>
6164
6165 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
6166 Find auto-increment use both before and after candidate.
6167
576016fe
MP
61682013-09-02 Marek Polacek <polacek@redhat.com>
6169
6170 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
6171
08f835dc
JH
61722013-09-01 Jan Hubicka <jh@suse.cz>
6173
6174 * Makefile.in: Add ipa-profile.o
6175 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
6176 * cgraph.c (struct cgraph_propagate_frequency_data,
6177 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
6178 ipa-profile.c; replace cgraph_ by ipa_ prefix.
6179 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
6180 * ipa-inline-analysis.c: Include ipa-utils.h;
6181 drop duplicated cfgloop.h.
08f835dc
JH
6182 (inline_update_callee_summaries): Update.
6183 * ipa-profile.c: New file.
6184 * ipa-utils.h (ipa_propagate_frequency): Declare.
6185 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 6186 data-streamer.h, value-prof.h.
08f835dc
JH
6187 (symtab_remove_unreachable_nodes): Update profile.
6188 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
6189 account_time_size, cmp_counts, dump_histogram,
6190 ipa_profile_generate_summary, ipa_profile_write_summary,
6191 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
6192 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 6193 Move to ipa-profile.c.
08f835dc 6194
cec8583c
JDA
61952013-09-01 John David Anglin <danglin@gcc.gnu.org>
6196
6197 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
6198
bbc9396b
JH
61992013-09-01 Jan Hubicka <jh@suse.cz>
6200
6201 * common.opt (fdevirtualize-speculatively): New function.
6202 * invoke.texi (fdevirtualize-speculatively): Document.
6203 * ipa-devirt.c: Include ipa-inline.h
6204 (likely_target_p): New function.
6205 (ipa_devirt): New function.
6206 (gate_ipa_devirt): New function.
6207 (pass_data_ipa_devirt): New static var.
6208 (pass_ipa_devirt): Likewise.
6209 (make_pass_ipa_devirt): New function.
6210 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
6211 (common_handle_option): Disable devirtualization when
6212 value range profiling is available.
6213 * passes.def (pass_ipa_devirt): Add.
6214 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 6215 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 6216
0cea211e
IS
62172013-09-01 Iain Sandoe <iain@codesourcery.com>
6218
6219 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
6220 include sanitize(undefined).
6221
5e351e96
DN
62222013-08-31 Diego Novillo <dnovillo@google.com>
6223
6224 * Makefile.in (TREE_CORE_H): Define.
6225 (TREE_H): Use.
6226 (GTFILES): Add tree-core.h.
6227 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
6228 size the array.
6229 * tree-core.h: New file.
6230 Move all data structures, enum, typedefs, global
6231 declarations and constants from ...
6232 * tree.h: ... here.
6233
63bf9a90
JH
62342013-08-31 Jan Hubicka <jh@suse.cz>
6235
6236 * bulitins.c (expand_builtin): Do not early exit for gcov
6237 instrumented functions.
6238
5c0abd6a
MP
62392013-08-31 Marek Polacek <polacek@redhat.com>
6240
6241 * ubsan.c: Include tm_p.h.
6242
4843f032
JH
62432013-08-31 Jan Hubicka <jh@suse.cz>
6244
8356c89c
JH
6245 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
6246 warning.
6247
4843f032
JH
6248 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
6249 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 6250 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
6251 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
6252 (ipa_merge_profiles): New function.
6253 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
6254 (lto_input_function_body): Likewise.
5e581212
JH
6255 * ipa-utils.h (ipa_merge_profiles): Declare.
6256 * lto-streamer.h (lto_input_function_body): Update prototype.
6257 (emit_label_in_global_context_p): Remove.
6258 * lto-symtab.c: Include ipa-utils.h
6259 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 6260
57292ce9
JH
62612013-08-31 Jan Hubicka <jh@suse.cz>
6262
6263 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
6264
b9cbfeeb
JH
62652013-08-31 Jan Hubicka <jh@suse.cz>
6266
6267 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
6268
41dedebd
UB
62692013-08-31 Uros Bizjak <ubizjak@gmail.com>
6270
6271 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
6272 "cmp" RTX before signed_comparison_operator check to account
6273 for "code" changes.
6274
06d65050
JH
62752013-08-30 Jan Hubicka <jh@suse.cz>
6276
41dedebd 6277 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
6278 (detect_type_change_1): Rename to ...
6279 (detect_type_change): ... this one; early return on non-polymorphic
6280 types.
41dedebd 6281 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
6282 use of detect_type_change.
6283 (compute_complex_assign_jump_func): Add param_type parameter;
6284 update use of detect_type_change_ssa.
6285 (compute_complex_ancestor_jump_func): Likewise.
6286 (ipa_get_callee_param_type): New function.
6287 (ipa_compute_jump_functions_for_edge): Compute parameter type;
6288 update calls to the jump function computation functions.
6289
600b5b1d
TJ
62902013-08-30 Teresa Johnson <tejohnson@google.com>
6291 Steven Bosscher <steven@gcc.gnu.org>
6292
6293 * cfgrtl.c (fixup_new_cold_bb): New routine.
6294 (commit_edge_insertions): Invoke fixup_partitions.
6295 (find_partition_fixes): New routine.
6296 (fixup_partitions): Ditto.
6297 (verify_hot_cold_block_grouping): Update comments.
6298 (rtl_verify_edges): Invoke find_partition_fixes.
6299 (rtl_verify_bb_pointers): Update comments.
6300 (rtl_verify_bb_layout): Ditto.
6301 * basic-block.h (probably_never_executed_edge_p): Declare.
6302 (fixup_partitions): Ditto.
6303 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
6304 * bb-reorder.c (sanitize_hot_paths): New function.
6305 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
6306 sanitize_hot_paths.
6307 * predict.c (probably_never_executed_edge_p): New routine.
6308 * cfg.c (check_bb_profile): Add partition insanity warnings.
6309
0a6ea5c9
MI
63102013-08-30 Meador Inge <meadori@codesourcery.com>
6311
6312 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
6313
de5a5fa1
MP
63142013-08-30 Marek Polacek <polacek@redhat.com>
6315
6316 * Makefile.in (ubsan.o): Add.
6317 (c-family/c-ubsan.o): Add.
6318 (builtins.o): Add ubsan.h dependency.
6319 * ubsan.h: New file.
6320 * ubsan.c: New file.
6321 * common.opt: Add -fsanitize=undefined option.
6322 (flag_sanitize): Add variable.
6323 (fsanitize=): Add option. Add Driver.
6324 (fsanitize=thread): Remove option.
6325 (fsanitize=address): Likewise.
6326 (static-libubsan): New option.
6327 * doc/invoke.texi: Document the new flag and -static-libubsan.
6328 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
6329 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
6330 * builtin-attrs.def (ATTR_COLD): Define.
6331 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6332 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
6333 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
6334 * flag-types.h (sanitize_code): New enum.
6335 * opts.c (common_handle_option): Parse command line arguments
6336 of -fsanitize=. Add -fsanitize=unreachable option.
6337 * varasm.c (get_variable_section): Adjust.
6338 (assemble_noswitch_variable): Likewise.
6339 (assemble_variable): Likewise.
6340 (output_constant_def_contents): Likewise.
6341 (categorize_decl_for_section): Likewise.
6342 (place_block_symbol): Likewise.
6343 (output_object_block): Likewise.
6344 * builtins.def: Likewise.
6345 * toplev.c (compile_file): Likewise.
6346 (process_options): Likewise.
6347 * cppbuiltin.c: Likewise.
6348 * tsan.c (tsan_pass): Likewise.
6349 (tsan_gate): Likewise.
6350 (tsan_gate_O0): Likewise.
6351 * cfgexpand.c (partition_stack_vars): Likewise.
6352 (expand_stack_vars): Likewise.
6353 (defer_stack_allocation): Likewise.
6354 (expand_used_vars): Likewise.
6355 * cfgcleanup.c (old_insns_match_p): Likewise.
6356 * asan.c (asan_finish_file): Likewise.
6357 (asan_instrument): Likewise.
6358 (gate_asan): Likewise.
6359 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
6360 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
6361 (asan_global_struct): Use pointer_sized_int_node instead
6362 calling build_nonstandard_integer_type.
6363 (initialize_sanitizer_builtins): Likewise.
6364 (asan_finish_file): Likewise.
6365 * gcc.c: Document %{%:function(args):X}.
6366 (static_spec_functions): Add sanitize.
6367 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
6368 store funcval != NULL there.
6369 (do_spec_1): Adjust handle_spec_function caller.
6370 (handle_braces): Allow %:function(args) as condition.
6371 (sanitize_spec_function): New function.
6372 (ADD_STATIC_LIBUBSAN_LIBS): Define.
6373 (LIBUBSAN_SPEC): Likewise.
6374 (LIBUBSAN_EARLY_SPEC): Likewise.
6375 (SANITIZER_SPEC): Handle libubsan.
6376 (SANITIZER_EARLY_SPEC): Likewise.
6377 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
6378 instead of fsanitize=address.
6379 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
6380 instead of fsanitize=address*.
6381 * builtins.c: Include ubsan.h.
6382 (fold_builtin_0): Instrument __builtin_unreachable.
6383 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
6384 instead of flag_asan.
6385 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
6386 (pointer_sized_int_node): Define.
41dedebd 6387 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 6388
f07f30cf
MS
63892013-08-30 Mike Stump <mikestump@comcast.net>
6390
6391 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
6392 with RE patterns.
6393
8a41354f
JH
63942013-08-29 Jan Hubicka <jh@suse.cz>
6395
6396 * cgraph.c (cgraph_function_body_availability): Handle weakref
6397 correctly.
6398 * passes.def: Remove pass_fixup_cfg.
6399 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
6400 track when we need to remove functions.
6401 (gate_ipa_inline): Execute inlining always; add comment why.
6402 (pass_data_ipa_inline): Remove TODO_remove_functions.
6403 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
6404 do not produce summaries.
6405 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
6406 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
6407 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
6408 constant pool and vtable.
6409
dc8d7a0f
TB
64102013-08-30 Tejas Belagod <tejas.belagod@arm.com>
6411
41dedebd
UB
6412 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
6413 New arm_neon.h's internal macros to specify 64-bit constants.
6414 Avoid using stdint.h's macros.
dc8d7a0f 6415
ac7eacd2
JR
64162013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
6417
6418 * recog.c (verify_changes): Verify that changes[i].old is non-zero
6419 before applying REG_P.
6420
8b29fd4e
JJ
64212013-08-30 Jakub Jelinek <jakub@redhat.com>
6422
6423 PR tree-optimization/58277
6424 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
6425 after seeing too many stmts with vdef in between dombb and current
6426 bb, invalidate everything.
6427
26d75703
RB
64282013-08-30 Richard Biener <rguenther@suse.de>
6429
6430 * fold-const.c (fold_single_bit_test): Fix overflow test.
6431
f7e088e7
EB
64322013-08-30 Eric Botcazou <ebotcazou@adacore.com>
6433
6434 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
6435 and which can live in a register, always retrieve the value on entry.
6436 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
6437 passed by invisible reference specially.
6438 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
6439 (vt_add_function_parameter): Correctly deal with a parameter passed by
6440 invisible reference.
6441
64422013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
6443
6444 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
6445
6e8dad05
RB
64462013-08-30 Richard Biener <rguenther@suse.de>
6447
6448 PR tree-optimization/58228
6449 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
6450 allow invariant loads in nested loop vectorization.
6451
062ef2c8
RB
64522013-08-30 Richard Biener <rguenther@suse.de>
6453
6454 PR tree-optimization/58223
6455 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
6456 (has_anti_or_output_dependence): ... this and adjust to also
6457 look for output dependences.
6458 (mark_nodes_having_upstream_mem_writes): Adjust.
6459 (rdg_flag_uses): Likewise.
6460
7a764c60
RB
64612013-08-30 Richard Biener <rguenther@suse.de>
6462
6463 PR tree-optimization/58010
6464 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
6465 assert that we have a loop-closed PHI.
6466
82e9d642
JH
64672013-08-29 Jan Hubicka <jh@suse.cz>
6468
6469 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
6470 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
6471 * lto-section-in.c (lto_free_function_in_decl_state): New function.
6472 (lto_free_function_in_decl_state_for_node): New function.
6473
9cc1fb4b
XDL
64742013-08-29 Xinliang David Li <davidxl@google.com>
6475
41dedebd 6476 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
6477 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
6478 Emit alignment peeling message with default -fopt-info.
6479 (vect_loop_versioning): Emit loop version info message.
41dedebd 6480 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
6481 (execute_vect_slp): Ditto.
6482
440a5082
EB
64832013-08-29 Eric Botcazou <ebotcazou@adacore.com>
6484
6485 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
6486 of the clone from the DECL_NAME of the original function.
6487
3fa3690d
OE
64882013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
6489
6490 * passes.c (register_pass): Add overload.
6491 * tree-pass.h (register_pass): Forward declare it. Add comment.
6492
0170f33c
JH
64932013-08-29 Jan Hubicka <jh@suse.cz>
6494
41dedebd
UB
6495 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
6496 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
6497 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
6498 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6499 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
6500 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 6501 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
6502 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
6503
103ff0d6
TJ
65042013-08-29 Teresa Johnson <tejohnson@google.com>
6505
6506 * dumpfile.c (dump_loc): Output column number.
6507 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
6508 * doc/invoke.texi: Document optall -fopt-info flag.
6509 * profile.c (read_profile_edge_counts): Use new dump framework.
6510 (compute_branch_probabilities): Ditto.
6511 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
6512 when pass not in any opt group.
6513 * pass_manager.h (pass_manager::get_pass_profile): New method.
6514 * value-prof.c (check_counter): Use new dump framework.
6515 (check_ic_target): Ditto.
6516 * coverage.c (get_coverage_counts): Ditto.
6517 (coverage_init): Setup new dump framework.
6518
301bbc16
RB
65192013-08-29 Richard Biener <rguenther@suse.de>
6520
6521 PR tree-optimization/58246
6522 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
6523 handle the dominance check inside a basic-block.
6524
1b275000
RB
65252013-08-29 Richard Biener <rguenther@suse.de>
6526
6527 PR middle-end/57287
6528 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
6529 of default defs that appear in abnormal PHI nodes.
6530
6b1184ba
RB
65312013-08-29 Richard Biener <rguenther@suse.de>
6532
6533 PR tree-optimization/57685
6534 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
6535 single-use operands to avoid exponential complexity.
6536
1b08b734
DC
65372013-08-28 Dehao Chen <dehao@google.com>
6538
6539 * ipa-inline.c (edge_badness): Fix integer underflow.
6540
48a3fa69
UB
65412013-08-28 Uros Bizjak <ubizjak@gmail.com>
6542
6543 * gtm-builtins.def (_ITM_free): Declare leaf.
6544
215f73e6
JJ
65452013-08-28 Jakub Jelinek <jakub@redhat.com>
6546
6547 PR target/58067
6548 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
6549 (*tls_local_dynamic_base_64_largepic): Likewise.
6550 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
6551 Remove predicate from call operand.
6552 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
6553 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
6554
34554d1a
JL
65552013-08-28 Jeff Law <law@redhat.com>
6556
6557 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
6558 checks for the number of predecessors and successors allowed.
6559 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
6560 which require copying a joiner block if there is a request which
6561 is a subpath that requires no joiner block copying.
6562
c01c111b
JH
65632013-08-28 Jan Hubicka <jh@suse.cz>
6564
6565 * lto-streamer-out.c (DFS_write_tree_body): Drop
6566 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
6567 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
6568 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
6569 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
6570 Do not read DECL_ERROR_ISSUED.
6571 (unpack_ts_decl_with_vis_value_fields): Do not read
6572 DECL_DEFER_OUTPUT.
48a3fa69
UB
6573 (lto_input_ts_binfo_tree_pointers): Do not read
6574 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
6575 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
6576 write DECL_ERROR_ISSUED..
6577 (pack_ts_decl_with_vis_value_fields): Do not write
6578 DECL_DEFER_OUTPUT.
6579 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 6580 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
6581 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
6582 * tree.h (tree_decl_common): Update comment.
6583 (DECL_ERROR_ISSUED): Remove.
6584
4b128ece
JJ
65852013-08-28 Jakub Jelinek <jakub@redhat.com>
6586
6587 PR middle-end/58257
6588 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
6589
12211b99 65902013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
6591
6592 * builtins.def (free): Declare leaf.
6593
8dce4dbc
DM
65942013-08-27 David Malcolm <dmalcolm@redhat.com>
6595
6596 * gdbhooks.py: New.
6597 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
6598 * configure: Regenerate.
6599
b8f6e610
MJ
66002013-08-27 Martin Jambor <mjambor@suse.cz>
6601
6602 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
6603 (ipa_ancestor_jf_data): Likewise.
6604 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
6605 (ipa_get_jf_pass_through_type_preserved): New function.
6606 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
6607 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 6608 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
6609 (ipa_get_jf_ancestor_result): Likewise.
6610 (propagate_vals_accross_pass_through): Use
6611 ipa_get_jf_pass_through_result to do all the value mappings.
6612 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
6613 type_preserved flag.
6614 (ipa_set_jf_cst_copy): New function.
6615 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
6616 (ipa_set_jf_arith_pass_through): Likewise.
6617 (ipa_set_ancestor_jf): Likewise.
6618 (compute_complex_assign_jump_func): Set type_preserved instead of
6619 punting.
6620 (ipa_compute_jump_functions_for_edge): Likewise.
6621 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
6622 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 6623 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
6624 (ipa_write_jump_function): Stream the type_preserved flags.
6625 (ipa_read_jump_function): Likewise.
6626
74bf76ed
JJ
66272013-08-27 Jakub Jelinek <jakub@redhat.com>
6628 Aldy Hernandez <aldyh@redhat.com>
6629
6630 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
6631 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
6632 * function.h (struct function): Add has_force_vect_loops and
6633 has_simduid_loops.
12211b99 6634 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
6635 * gimple.c (gimple_build_omp_critical): Add KIND argument and
6636 handle it.
6637 * gimple.def: Update CLAUSES comments.
6638 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
6639 (gimple_build_omp_for): Add argument to prototype.
6640 (gimple_omp_for_kind): New.
6641 (gimple_omp_for_set_kind): New.
6642 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
6643 GOVD_DATA_SHARE_CLASS.
6644 (enum omp_region_type): Add ORT_SIMD.
6645 (gimple_add_tmp_var): Handle ORT_SIMD.
6646 (gimplify_var_or_parm_decl): Same.
6647 (is_gimple_stmt): Same.
6648 (omp_firstprivatize_variable): Same.
6649 (omp_add_variable): Only use splay_tree_insert if lookup failed.
6650 (omp_notice_variable): Handle ORT_SIMD.
12211b99 6651 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
6652 (omp_check_private): Handle ORT_SIMD.
6653 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6654 OMP_CLAUSE_SAFELEN.
6655 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
6656 Handle OMP_CLAUSE_LASTPRIVATE.
6657 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
6658 OMP_CLAUSE_SAFELEN.
6659 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
6660 (gimplify_expr): Handle OMP_SIMD.
6661 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
6662 (expand_GOMP_SIMD_VF): New.
6663 (expand_GOMP_SIMD_LAST_LANE): New.
6664 * internal-fn.def (GOMP_SIMD_LANE): New.
6665 (GOMP_SIMD_VF): New.
6666 (GOMP_SIMD_LAST_LANE): New.
6667 * omp-low.c: Include target.h.
6668 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
6669 OMP_CLAUSE_SAFELEN.
6670 (check_omp_nesting_restrictions): Same.
6671 (omp_max_vf): New.
6672 (lower_rec_simd_input_clauses): New.
6673 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
6674 OMP_CLAUSE_LINEAR.
6675 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
6676 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
6677 (expand_omp_build_assign): New.
6678 (expand_omp_for_init_counts): New.
6679 (expand_omp_for_init_vars): New.
6680 (extract_omp_for_update_vars): New.
6681 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
6682 and rewrite accordingly.
6683 (expand_omp_simd): New.
6684 (expand_omp_for): Use expand_omp_simd.
6685 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
6686 (lower_omp_for): Do not lower the body.
6687 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
6688 in their own loops.
6689 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
6690 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
6691 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
6692 (gate_tree_if_conversion): Similarly.
6693 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
6694 gimple_build_omp_for.
6695 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
6696 * tree-parloops (create_parallel_loop): Pass kind argument to
6697 gimple_build_omp_for.
6698 * tree-pretty-print.c (dump_omp_clause): Add cases for
6699 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
6700 OMP_CLAUSE__SIMDUID_.
6701 (dump_generic_node): Handle OMP_SIMD.
6702 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
6703 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
6704 unroll OMP_SIMD loops here.
12211b99 6705 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 6706 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 6707 loop->safelen.
74bf76ed
JJ
6708 (vect_analyze_data_refs): Handle simd loops.
6709 * tree-vect-loop.c (vectorizable_live_operation): Handle
6710 IFN_GOMP_SIMD*.
12211b99 6711 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
6712 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
6713 (vectorizable_load): Same.
12211b99 6714 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
6715 (struct simduid_to_vf): New.
6716 (simduid_to_vf::hash): New.
6717 (simduid_to-vf::equal): New.
6718 (struct simd_array_to_simduid): New.
6719 (simd_array_to_simduid::hash): New.
6720 (simd_array_to_simduid::equal): New.
6721 (adjust_simduid_builtins): New.
6722 (struct note_simd_array_uses_struct): New.
6723 (note_simd_array_uses_cb): New.
6724 (note_simd_array_uses): New.
6725 (vectorize_loops): Handle simd hints and adjust simd builtins
6726 accordingly.
6727 * tree-vectorizer.h (struct _stmt_vec_info): Add
6728 simd_lane_access_p field.
6729 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
6730 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
6731 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
6732 (omp_clause_code_name): Same.
6733 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
6734 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
6735 * tree.def (OMP_SIMD): New entry.
12211b99
UB
6736 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
6737 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
6738 (OMP_CLAUSE_DECL): Adjust range for new clauses.
6739 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
6740 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
6741 (OMP_CLAUSE_LINEAR_STEP): New.
6742 (OMP_CLAUSE_SAFELEN_EXPR): New.
6743 (OMP_CLAUSE__SIMDUID__DECL): New.
6744 (find_omp_clause): New prototype.
6745
d0cf4e84
L
67462013-08-27 H.J. Lu <hongjiu.lu@intel.com>
6747
6748 * config/i386/driver-i386.c (host_detect_local_cpu): Update
6749 Haswell processor detection.
6750
992592ec
CW
67512013-08-27 Christian Widmer <shadow@umbrox.de>
6752
6753 PR target/57927
6754 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
6755 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
6756 AVX2 capable processors.
6757
9116eb22
TB
67582013-08-27 Tejas Belagod <tejas.belagod@arm.com>
6759
6760 * config/aarch64/arm_neon.h: Replace all inline asm implementations
6761 of vget_low_* with implementations in terms of other intrinsics.
6762
1c5abb53
MG
67632013-08-27 Marc Glisse <marc.glisse@inria.fr>
6764
6765 PR middle-end/57219
6766 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
6767 values to -1, 0 and 1.
6768
2e100703
VP
67692013-08-27 Vidya Praveen <vidyapraveen@arm.com>
6770
6771 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
6772 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
6773 (<optab><mode>3_insn): Remove.
6774 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
6775 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6776 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
6777 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
6778 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
6779 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
6780 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
6781 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
6782 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
6783 (ror<mode>3_insn): Likewise.
6784 * config/aarch64/predicates.md (aarch64_simd_register): New.
6785
4ded8276
RB
67862013-08-27 Richard Biener <rguenther@suse.de>
6787
6788 PR tree-optimization/57521
6789 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
6790 one edge is non-critical.
6791 (find_phi_replacement_condition): Make sure to use a non-critical
6792 edge. Cleanup and remove old bug workarounds.
6793 (bb_postdominates_preds): Remove.
6794 (if_convertible_loop_p_1): Do not compute post-dominators.
6795 (combine_blocks): Do not free post-dominators.
6796 (main_tree_if_conversion): Likewise.
6797 (pass_data_if_conversion): Add TODO_verify_ssa.
6798
5aa11061
DD
67992013-08-27 DJ Delorie <dj@redhat.com>
6800
6801 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
6802
fd91cfe3
YZ
68032013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
6804
6805 * function.c (assign_parm_find_data_types): Set passed_mode and
6806 nominal_mode to the TYPE_MODE of nominal_type for the built
6807 pointer type in case of the struct-pass-by-reference.
6808
907555ce
JR
68092013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6810
6811 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
6812 (UINT16_TYPE): Change default to "unsigned int".
6813
67518c93
JR
6814 * config/avr/avr.opt (mfract-convert-truncate): New option.
6815 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
6816 is set, round negative fractional integers according to n1169
6817 when converting to integer types.
6818
d6d989fc
JH
68192013-08-26 Jan Hubicka <jh@suse.cz>
6820
6821 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
6822 methods can not be called indirectly when their address is not taken.
6823
2aa3da06
JH
68242013-08-26 Jan Hubicka <jh@suse.cz>
6825
12211b99
UB
6826 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
6827 ctor_for_folding.
2aa3da06 6828
0987ffe7
JH
68292013-08-26 Jan Hubicka <jh@suse.cz>
6830
6831 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
6832 can be unshared.
6833
befe8647
JR
68342013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6835
6836 * reload.c (find_valid_class): Allow classes that do not include
6837 FIRST_PSEUDO_REGISTER - 1.
6838
a21e735e
JH
68392013-08-26 Jan Hubicka <jh@suse.cz>
6840
6841 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
6842 fix edge count/frequency when speculation failed; fix type check
6843 for the direct call.
6844
e067bd43
JH
68452013-08-26 Jan Hubicka <jh@suse.cz>
6846
6847 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
6848
e8aec975
JH
68492013-08-26 Jan Hubicka <jh@suse.cz>
6850
6851 * ipa-inline-transform.c (inline_transform): Be ready for basic block
6852 to be changed by edge redirection.
6853
d0b66480
JH
68542013-08-26 Jan Hubicka <jh@suse.cz>
6855
12211b99
UB
6856 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
6857 formating; add sanity check.
d0b66480
JH
6858 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
6859 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
6860 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
6861 (resolve_noninline_speculation): Update callee keys, too.
6862
0f9aaac7
JH
68632013-08-26 Jan Hubicka <jh@suse.cz>
6864
6865 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
6866 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
6867
4b37444e
JR
68682013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
6869
6870 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
6871 into proper place.
6872
5339fc0c
UB
68732013-08-26 Uros Bizjak <ubizjak@gmail.com>
6874
6875 * config/i386/i386.c (ix86_debug_options): Remove prototype.
6876 (x86_64_elf_select_section): Ditto.
6877 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
6878 arguments.
6879 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
6880 (output_set_got): Ditto.
6881 (ix86_unary_operator_ok): Ditto.
6882 (ix86_expand_builtin): Ditto.
6883
d5c3d3ef
JH
68842013-08-23 Jan Hubicka <jh@suse.cz>
6885
5339fc0c 6886 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 6887
5b1e7435
JH
68882013-08-23 Jan Hubicka <jh@suse.cz>
6889
6890 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
6891 (tree_decl_with_vis): Add FINAL field.
6892
ead69dac
JL
68932013-08-23 Jeff Law <law@redhat.com>
6894
6895 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
6896 the debugging dump when the expression is fully redundant.
6897
025311c4
GDR
68982013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
6899
6900 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
6901 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
6902 * pretty-print.c (pp_formatted_text_data): Likewise.
6903 (pp_write_text_to_stream): Likewise.
6904 (pp_write_text_as_dot_label_to_stream): Likewise.
6905 (pp_append_r): Likewise.
6906 (pp_format): Likewise.
6907 (pp_flush): Likewise.
6908 (pp_clear_output_area): Likewise.
6909 (pp_append_text): Likewise.
6910 (pp_formatted_text): Likewise.
6911 (pp_remaining_character_count_for_line): Likewise.
6912 (pp_newline): Likewise.
6913 (pp_character): Likewise.
6914 (output_buffer::~output_buffer): Define.
6915 (pretty_printer::~pretty_printer): Destruct output buffer.
6916 * pretty-print.h (output_buffer::~output_buffer): Declare.
6917 (pretty_printer::~pretty_printer): Declare virtual.
6918
0cadbfaa
MG
69192013-08-24 Marc Glisse <marc.glisse@inria.fr>
6920
6921 PR other/57324
6922 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
6923 HOST_WIDE_INT_M1U): New macros.
6924 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
6925 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
6926 unsigned -1 for lshift.
6927 * cse.c (cse_insn): Likewise.
6928 * double-int.c (rshift_double, lshift_double): Likewise.
6929 * builtins.c (fold_builtin_bitop): Likewise.
6930 * combine.c (force_to_mode): Likewise.
6931 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
6932 * simplify-rtx.c (simplify_const_unary_operation,
6933 simplify_const_binary_operation): Likewise.
6934 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
6935 check_va_list_escapes): Likewise.
6936 * rtlanal.c (nonzero_bits1): Likewise.
6937 * expmed.c (expand_smod_pow2): Likewise.
6938 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
6939
009e5353
JH
69402013-08-23 Jan Hubicka <jh@suse.cz>
6941
6942 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
6943 as having address taken.
6944
c4be6568
JH
69452013-08-23 Jan Hubicka <jh@suse.cz>
6946
64cbf23d
JH
6947 * ipa-utils.h (method_class_type): Declare.
6948 * ipa-devirt.c (method_class_type): Export.
6949
c4be6568
JH
6950 * cgraphunit.c (analyze_functions): Do basic devirtualization;
6951 do not walk base classes of anonymous types.
6952
97aba8e9
KK
69532013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
6954
6955 PR rtl-optimization/58220
6956 PR regression/58221
6957 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
6958 handle SEQUENCE insns properly.
6959
0fc80001
GDR
69602013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
6961
6962 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
6963 definition.
6964 (pp_newline_and_indent): Likewise.
6965 (pp_separate_with): Likewise.
6966 * pretty-print.c (pp_newline_and_flush): Define.
6967 (pp_newline_and_indent): Likewise.
6968 (pp_separate_with): Likewise.
6969
520a5868
JJ
69702013-08-23 Jakub Jelinek <jakub@redhat.com>
6971
6972 PR target/58218
6973 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
6974 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
6975
e500c62a
KY
69762013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
6977
f43245d1
UB
6978 * config/i386/predicates.md (ext_sse_reg_operand): New.
6979 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
6980 predicate to determine if EVEX is needed.
6981 (*movsi_internal): Ditto.
6982 (*movdf_internal): Ditto.
6983 (*movsf_internal): Ditto.
f43245d1 6984 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 6985
6b00d7dd
JJ
69862013-08-23 Jakub Jelinek <jakub@redhat.com>
6987
6988 PR tree-optimization/58209
6989 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
6990 (find_tail_calls): Give up for pointer result types if m is non-NULL.
6991 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
6992 emit POINTER_PLUS_EXPR.
6993 (create_tailcall_accumulator): For pointer result type accumulate in
6994 sizetype type.
6995
4f2a9f90
PC
69962013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
6997
6998 * configure.ac: Add backslashes missing from the last change.
6999 * configure: Regenerate.
7000
7bf4274e
JH
70012013-08-22 Jan Hubicka <jh@susue.cz>
7002
4f2a9f90
PC
7003 * ipa.c (function_and_variable_visibility): First remember function
7004 was global and then make it local.
7bf4274e 7005
1bea243d
JB
70062013-08-22 Julian Brown <julian@codesourcery.com>
7007
7008 * configure.ac: Add aarch64 to list of arches which use "nop" in
7009 debug_line test.
7010 * configure: Regenerate.
7011
bcba7ecc
AK
70122013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7013
7014 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
7015 gnu_libc_has_function.
7016 * config/s390/tpf.h: Likewise.
7017
4c495b0d
JH
70182013-08-22 Jan Hubicka <jh@susue.cz>
7019
7020 * timevar.c (validate_phases): Add cast.
7021
5e302bca
JH
70222013-08-22 Jan Hubicka <jh@susue.cz>
7023
7024 * timevar.c (validate_phases): Use size_t for memory.
7025 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
7026
da6ca2b5
GDR
70272013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
7028
7029 * pretty-print.h (output_buffer::output_buffer): Declare.
7030 (pretty_printer::pretty_printer): Likewise.
7031 (pp_construct): Remove.
7032 * pretty-print.c (output_buffer::output_buffer): Define.
7033 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
7034 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
7035 (print_gimple_expr): Likewise.
7036 (print_gimple_seq): Likewise.
7037 (gimple_dump_bb): Likewise.
7038 * sched-vis.c (dump_value_slim): Likewise.
7039 (dump_insn_slim): Likewise.
7040 (dump_rtl_slim): Likewise.
7041 (str_pattern_slim): Likewise.
7042 * tree-mudflap.c (mf_varname_tree): Likewise.
7043 * graph.c (print_graph_cfg): Likewise.
7044 (start_graph_dump): Likewise.
7045 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
7046 placement-new.
7047 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
7048 pretty printer initialization.
7049 * coretypes.h (diagnostic_context): Remove superflous type alias
7050 declaration.
7051 (pretty_printer): Likewise. Declare directly as a class.
7052 (pretty_print_info): Remove declaration as class.
7053 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
7054 and pp_clear_output_area.
7055 (asan_add_global): Likewise.
7056
0e1474e5
JH
70572013-08-22 Jan Hubicka <jh@suse.cz>
7058
7059 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
7060 * ipa-utils.h (update_type_inheritance_graph): Declare.
7061 (possible_polymorphic_call_target_p): Declare.
7062 (possible_polymorphic_call_target_p): New.
7063 * ipa-devirt.c: Update toplevel comments.
7064 (cached_polymorphic_call_targets): Move up.
7065 (odr_type_d): Move ID down.
7066 (polymorphic_type_binfo_p): Update comment.
7067 (odr_hasher::remove): Likewise;
7068 (get_odr_type): Set anonymous_namespace.
7069 (dump_odr_type): Dump it.
7070 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
7071 (maybe_record_node): Record node in cached_polymorphic_call_targets.
7072 (record_binfo): Add comment.
5339fc0c
UB
7073 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
7074 built.
0e1474e5
JH
7075 (devirt_node_removal_hook): Do not iCE when cache is freed.
7076 (possible_polymorphic_call_target_p): New predicate.
7077 (update_type_inheritance_graph): New function.
7078
3f97cb0b
AI
70792013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
7080 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
7081 Sergey Lega <sergey.s.lega@intel.com>
7082 Anna Tikhonova <anna.tikhonova@intel.com>
7083 Ilya Tocar <ilya.tocar@intel.com>
7084 Andrey Turetskiy <andrey.turetskiy@intel.com>
7085 Ilya Verbin <ilya.verbin@intel.com>
7086 Kirill Yukhin <kirill.yukhin@intel.com>
7087 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
7088
7089 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
7090 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
7091 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
7092 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
7093 (OPTION_MASK_ISA_AVX2_UNSET): Update.
7094 (OPTION_MASK_ISA_AVX512F_UNSET): New.
7095 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
7096 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
7097 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
7098 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
7099 OPT_mavx512pf, OPT_mavx512er cases.
7100 * config/i386/constraints.md (v): New constraint.
7101 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
7102 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
7103 (bit_AVX512CD): New.
7104 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7105 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
7106 * config/i386/i386-c.c (ix86_target_macros_internal):
7107 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
7108 __AVX512PF__.
7109 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
7110 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
7111 * config/i386/i386.c (regclass_map, dbx_register_map)
7112 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
7113 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
7114 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
7115 -mavx512pf options.
7116 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
7117 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
7118 -mavx512pf options. Fix formatting.
7119 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
7120 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
7121 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
7122 -mavx512cd, -mavx512pf options.
7123 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
7124 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
7125 (ix86_preferred_output_reload_class): Replace SSE_REGS with
7126 ALL_SSE_REGS.
7127 (ix86_hard_regno_mode_ok): Support 512-bit registers.
7128 (ix86_set_reg_reg_cost): Ditto.
7129 (x86_order_regs_for_local_alloc): Ditto.
7130 (MAX_VECT_LEN): Extend to 64-byte.
7131 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
7132 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
7133 (TARGET_AVX512ER, TARGET_AVX512CD): New.
7134 (BIGGEST_ALIGNMENT): Extend to 512-bits.
7135 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
7136 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
7137 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
7138 (SSE_REG_MODE_P): Support new modes.
7139 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
7140 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
7141 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
7142 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
7143 (REG_CLASS_CONTENTS): Add new registers.
7144 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
7145 (EXT_REX_SSE_REGNO_P): New.
7146 (HI_REGISTER_NAMES): Add new registers.
7147 * config/i386/i386.md: Define constants for new registers.
7148 (mode): Add new 512-bit modes.
7149 (prefix): Support evex prefix.
7150 (isa): Support avx512f, noavx512f, fma_avx512f.
7151 (ssemodesuffix): Add new 512-bit modes.
7152 (movxi): New.
7153 (*movxi_internal_avx512f): Ditto.
7154 (*movdi_internal): Replace constraint "x" with the new constraint "v".
7155 Support MODE_XI.
7156 (*movsi_internal): Likewise.
7157 (*movdf_internal): Likewise.
7158 (*movsf_internal): Likewise.
7159 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
7160 (<code><mode>3): Likewise.
5339fc0c
UB
7161 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
7162 New.
3f97cb0b
AI
7163 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
7164 with the new constraint "v".
7165 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
7166 modes.
7167 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
7168 with the new constraint "v".
7169 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
7170 (<sse2>_storedqu<avxsizesuffix>): Likewise.
7171 (*<plusminus_insn><mode>3): Likewise.
7172 (<sse>_vm<plusminus_insn><mode>3): Likewise.
7173 (*mul<mode>3): Likewise.
7174 (<sse>_vmmul<mode>3): Likewise.
7175 (<sse>_div<mode>3): Likewise.
7176 (<sse>_vmdiv<mode>3): Likewise.
7177 (<sse>_sqrt<mode>2): Likewise.
7178 (<sse>_vmsqrt<mode>2): Likewise.
7179 (*<code><mode>3_finite): Likewise.
7180 (*<code><mode>3) <smaxmin>: Likewise.
7181 (<sse>_vm<code><mode>3): Likewise.
7182 (*<code><mode>3) <any_logic>: Likewise.
7183 (*fma_fmadd_<mode>): Likewise.
7184 (*fma_fmsub_<mode>): Likewise.
7185 (*fma_fnmadd_<mode>): Likewise.
7186 (*fma_fnmsub_<mode>): Likewise.
7187 (*fma_fmaddsub_<mode>): Likewise.
7188 (*fma_fmsubadd_<mode>): Likewise.
7189 (*fmai_fmadd_<mode>): Likewise.
7190 (*fmai_fmsub_<mode>): Likewise.
7191 (*fmai_fnmadd_<mode>): Likewise.
7192 (*fmai_fnmsub_<mode>): Likewise.
7193 (sse_cvtsi2ss): Likewise.
7194 (sse_cvtsi2ssq): Likewise.
7195 (sse_cvtss2si): Likewise.
7196 (sse_cvtss2si_2): Likewise.
7197 (sse_cvtss2siq): Likewise.
7198 (sse_cvtss2siq_2): Likewise.
7199 (sse_cvttss2si): Likewise.
7200 (sse_cvtss2siq_2): Likewise.
7201 (float<sseintvecmodelower><mode>2): Likewise.
7202 (sse2_cvtsd2si_2): Likewise.
7203 (sse2_cvtsd2siq_2): Likewise.
7204 (*<plusminus_insn><mode>3): Likewise.
7205 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
7206 (*<sse4_1_avx2>_mul<mode>3): Likewise.
7207 (ashr<mode>3): Likewise.
7208 (<shift_insn><mode>3): Likewise.
7209 (avx2_<code><mode>3): Likewise.
7210 (*avx2_<code><mode>3): Likewise.
7211 (*andnot<mode>3): Likewise.
7212 (*<code><mode>3) <any_logic>: Likewise.
7213 (abs<mode>2): Likewise.
7214 (avx2_permvar<mode>): Likewise.
7215 (avx2_perm<mode>_1): Likewise.
7216 (*avx_vpermilp<mode>): Likewise.
7217 (avx_vpermilvar<mode>3): Likewise.
7218 (avx2_ashrv<mode>): Likewise.
7219 (avx2_<shift_insn>v<mode>): Likewise.
7220 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
7221 -mavx512cd.
7222 * doc/rtl.texi: Document XImode.
7223
dd5e8423
JL
72242013-08-21 Jeff Law <law@redhat.com>
7225
b9ebee5d
JL
7226 * tree-flow.h (register_jump_thread): Pass vector of edges
7227 instead of each important edge.
7228 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
7229 thread path into a vector and pass that to register_jump_thread.
7230 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
7231 passed in edge vector to the current 3-edge form.
7232
dd5e8423
JL
7233 Revert:
7234 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7235
9bb6628e 7236 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
7237 delete_unmarked_insns removed anything.
7238
445dc8df
JR
72392013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
7240
7241 * reload.h (struct reg_equivs): Rename to ..
7242 (struct reg_equivs_s): .. this.
7243
e0df53dd
ML
72442013-08-20 Martin Liska <marxin.liska@gmail.com>
7245
7246 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
7247
e7d1d3eb
RO
72482013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7249
5339fc0c 7250 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 7251
5562e26e
JL
72522013-08-21 Jeff Law <law@redhat.com>
7253
7254 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
7255 simplify assignments too. If the RHS collapses to a singleton
7256 range, then return the value for the range.
7257
c7ecdec6
KY
72582013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
7259
7a5911d3
UB
7260 * config/i386/sse.md (V16): Rename to...
7261 (VMOVE): this.
7262 (mov<mode>): Update iterator name.
7263 (*mov<mode>_internal): Ditto.
7264 (push<mode>1): Ditto.
7265 (movmisalign<mode>): Ditto.
c7ecdec6 7266
bfa3b50a
JH
72672013-08-20 Jan Hubicka <jh@suse.cz>
7268
7269 PR bootstrap/58186
7270 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
7271 entry for direct edges.
7272 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
7273
6cd4d135
DM
72742013-08-20 David Malcolm <dmalcolm@redhat.com>
7275
7276 Revert my last two changes, r201865 and r201864:
7277
7278 Revert r201865:
7279 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7280
7281 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7282 instances can own GC refs.
7283
7284 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7285 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7286 (gcc::context::gt_pch_nx): Likewise.
7287 (gcc::context::gt_pch_nx): Likewise.
7288 * ggc.h (gt_ggc_mx <T>): New.
7289 (gt_pch_nx_with_op <T>): New.
7290 (gt_pch_nx <T>): New.
7291 * passes.c (opt_pass::gt_ggc_mx): New.
7292 (opt_pass::gt_pch_nx): New.
7293 (opt_pass::gt_pch_nx_with_op): New.
7294 (pass_manager::gt_ggc_mx): New.
7295 (pass_manager::gt_pch_nx): New.
7296 (pass_manager::gt_pch_nx_with_op): New.
7297 (pass_manager::operator new): Use
7298 ggc_internal_cleared_alloc_stat rather than xcalloc.
7299 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7300 (pass_manager::gt_ggc_mx): New.
7301 (pass_manager::gt_pch_nx): New.
7302 (pass_manager::gt_pch_nx_with_op): New.
7303 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7304 (opt_pass::operator new): New.
7305 (opt_pass::gt_ggc_mx): New.
7306 (opt_pass::gt_pch_nx): New.
7307 (opt_pass::gt_pch_nx_with_op): New.
7308
7309 Revert r201864:
7310 2013-08-20 David Malcolm <dmalcolm@redhat.com>
7311
7312 * Makefile.in (GTFILES): Add context.h.
7313 * context.c (gcc::context::operator new): New.
7314 (gcc::context::gt_ggc_mx): New.
7315 (gcc::context::gt_pch_nx): New.
7316 (gcc::context::gt_pch_nx): New.
7317 * context.h (gcc::context): Add GTY((user)) marking.
7318 (gcc::context::operator new): New.
7319 (gcc::context::gt_ggc_mx): New.
7320 (gcc::context::gt_pch_nx): New.
7321 (gcc::context::gt_pch_nx): New.
7322 (g): Add GTY marking.
7323 (gt_ggc_mx (gcc::context *)): New.
7324 (gt_pch_nx (gcc::context *)): New.
7325 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7326 void *cookie)): New.
7327 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7328
a046136a
AM
73292013-08-20 Alexey Makhalov <makhaloff@gmail.com>
7330
7331 * dce.c (fini_dce): Call df_analyze again just in case
7332 delete_unmarked_insns removed anything.
7333
67598720
TJ
73342013-08-20 Teresa Johnson <tejohnson@google.com>
7335
7336 PR rtl-optimizations/57451
7337 * final.c (reemit_insn_block_notes): Prevent lexical blocks
7338 from crossing split section boundaries.
7339
f8693faf
MGD
73402013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
7341
7342 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
7343 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
7344 with MULTLIB_DEFAULTS.
7345
7d0b9a9c
NC
73462013-08-20 Nick Clifton <nickc@redhat.com>
7347
7348 * target.def (narrow_volatile_bitfield): Note that the default
7349 value is false, not !TARGET_STRICT_ALIGN.
7350 * doc/tm.texi: Regenerate.
7351
8edb8dc8
PC
73522013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
7353
7354 Fix LIB_SPEC for systems without libpthread.
7355
7356 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
7357 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
7358 for Android.
7359 * config/i386/linux-common.h: Likewise.
7360 * config/mips/linux-common.h: Likewise.
7361
12211b99 73622013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
7363
7364 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
7365 checks.
7366
e42c64cb
DM
73672013-08-20 David Malcolm <dmalcolm@redhat.com>
7368
7369 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
7370 instances can own GC refs.
7371
7372 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
7373 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
7374 (gcc::context::gt_pch_nx): Likewise.
7375 (gcc::context::gt_pch_nx): Likewise.
7376 * ggc.h (gt_ggc_mx <T>): New.
7377 (gt_pch_nx_with_op <T>): New.
7378 (gt_pch_nx <T>): New.
7379 * passes.c (opt_pass::gt_ggc_mx): New.
7380 (opt_pass::gt_pch_nx): New.
7381 (opt_pass::gt_pch_nx_with_op): New.
7382 (pass_manager::gt_ggc_mx): New.
7383 (pass_manager::gt_pch_nx): New.
7384 (pass_manager::gt_pch_nx_with_op): New.
7385 (pass_manager::operator new): Use
7386 ggc_internal_cleared_alloc_stat rather than xcalloc.
7387 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
7388 (pass_manager::gt_ggc_mx): New.
7389 (pass_manager::gt_pch_nx): New.
7390 (pass_manager::gt_pch_nx_with_op): New.
7391 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
7392 (opt_pass::operator new): New.
7393 (opt_pass::gt_ggc_mx): New.
7394 (opt_pass::gt_pch_nx): New.
7395 (opt_pass::gt_pch_nx_with_op): New.
7396
910c02a0
DM
73972013-08-20 David Malcolm <dmalcolm@redhat.com>
7398
7399 * Makefile.in (GTFILES): Add context.h.
7400 * context.c (gcc::context::operator new): New.
7401 (gcc::context::gt_ggc_mx): New.
7402 (gcc::context::gt_pch_nx): New.
7403 (gcc::context::gt_pch_nx): New.
7404 * context.h (gcc::context): Add GTY((user)) marking.
7405 (gcc::context::operator new): New.
7406 (gcc::context::gt_ggc_mx): New.
7407 (gcc::context::gt_pch_nx): New.
7408 (gcc::context::gt_pch_nx): New.
7409 (g): Add GTY marking.
7410 (gt_ggc_mx (gcc::context *)): New.
7411 (gt_pch_nx (gcc::context *)): New.
7412 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
7413 void *cookie)): New.
7414 * gengtype.c (open_base_files) <ifiles>: Add context.h.
7415
af4b4236
AM
74162013-08-20 Alan Modra <amodra@gmail.com>
7417
7418 PR target/57865
7419 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
7420 (rs6000_emit_epilogue): Likewise.
7421
12211b99 74222013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
7423
7424 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
7425
e2323f5b
PB
74262013-08-19 Peter Bergner <bergner@vnet.ibm.com>
7427 Jakub Jelinek <jakub@redhat.com>
7428
7429 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
7430 (BUILT_IN_FABSD64): Likewise.
7431 (BUILT_IN_FABSD128): Likewise.
7432 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
7433 (fold_builtin_1): Likewise.
5339fc0c
UB
7434 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
7435 destination and source operands.
e2323f5b
PB
7436 (*abstd2_fpr): Likewise.
7437 (*nabstd2_fpr): Likewise.
7438
cfbf3ee8
RS
74392013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
7440
7441 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
7442 JUMP_P and INSN_P.
7443
d3136aeb
AH
74442013-08-19 Aldy Hernandez <aldyh@redhat.com>
7445
7446 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
7447 incomplete.
7448
d33d9e47
AI
74492013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
7450
7451 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
7452 * builtins.c (default_libc_has_function): New.
7453 (gnu_libc_has_function): Ditto.
7454 (no_c99_libc_has_function): Ditto.
7455 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
7456 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
7457 (fold_builtin_sincos): Likewise.
7458 (fold_builtin_cexp): Likewise.
7459 * builtins.def (DEF_C94_BUILTIN): Likewise.
7460 (DEF_C99_BUILTIN): Likewise.
7461 (DEF_C99_C90RES_BUILTIN): Likewise.
7462 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
7463 definitions to using this define.
7464 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 7465 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
7466 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
7467 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
7468 * config/darwin.h: Ditto.
7469 * config/elfos.h: Ditto.
7470 * config/freebsd.h: Ditto.
7471 * config/i386/cygming.h: Ditto.
7472 * config/i386/djgpp.h: Ditto.
7473 * config/i386/i386-interix.h: Ditto.
7474 * config/microblaze/microblaze.h: Ditto.
7475 * config/mmix/mmix.h: Ditto.
7476 * config/gnu-user.h: Ditto.
7477 * config/ia64/hpux.h: Ditto.
7478 * config/pa/pa-hpux.h: Ditto.
7479 * config/pdp11/pdp11.h: Ditto.
7480 * config/picochip/picochip.h: Ditto.
7481 * config/linux.h: Ditto.
7482 * config/netbsd.h: Ditto.
7483 * config/openbsd.h: Ditto.
7484 * config/rs6000/aix43.h: Ditto.
7485 * config/rs6000/aix51.h: Ditto.
7486 * config/rs6000/aix52.h: Ditto.
7487 * config/rs6000/aix53.h: Ditto.
7488 * config/rs6000/aix61.h: Ditto.
7489 * config/rs6000/darwin.h: Ditto.
7490 * config/rs6000/linux.h: Ditto.
7491 * config/rs6000/linux64.h: Ditto.
7492 * config/s390/tpf.h: Ditto.
7493 * config/sol2-10.h: Ditto.
7494 * config/sol2.h: Ditto.
7495 * config/vms/vms.h: Ditto.
7496 * config/vxworks.h: Ditto.
7497 * config/linux-android.c (linux_android_libc_has_function):
7498 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
7499 * config/linux-protos.h (linux_android_libc_has_function):
7500 New declaration.
7501 * config/i386/i386.c (ix86_libc_has_function): New.
7502 * config/i386/i386-protos.h
7503 (ix86_libc_has_function): New declaration.
7504 * config/i386/i386.md
7505 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
7506 ("isinf<mode>2): Likewise.
7507 * convert.c (convert_to_integer): Using new target hook
7508 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
7509 TARGET_C99_FUNCTIONS.
7510 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
7511 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
7512 * coretypes.h (function_class): New enum for different
7513 classes of functions.
7514 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
7515 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
7516 (TARGET_HAS_SINCOS): Likewise.
7517 (TARGET_LIBC_HAS_FUNCTION): New.
7518 * doc/tm.texi: Regenerated.
7519 * targhooks.h (default_libc_has_function): New declaration.
7520 (no_c99_libc_has_function): Ditto.
7521 (gnu_libc_has_function): Ditto.
7522 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
7523 and TARGET_HAS_SINCOS.
7524
eefe9a99
JH
75252013-08-18 Jan Hubicka <jh@suse.cz>
7526
7527 * Makeifle-in (ipa-devirt.o): New.
7528 (GTFILES): Add ipa-utils.h and ipa-devirt.c
7529 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
7530 (analyze_functions): Look into possible targets of polymorphic call.
7531 * dumpfile.c (dump_files): Add type-inheritance dump.
7532 * dumpfile.h (TDI_inheritance): New.
7533 * ipa-devirt.c: New file.
7534 * ipa-utils.h (odr_type_d): Forward declare.
7535 (odr_type): New type.
7536 (build_type_inheritance_graph): Declare.
7537 (possible_polymorphic_call_targets): Declare and introduce inline
7538 variant when only edge is pased.
7539 (dump_possible_polymorphic_call_targets): Likewise.
7540 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
7541 * tree.c (type_in_anonymous_namespace_p): Break out from ...
7542 (types_same_for_odr): ... here.
7543 * tree.h (type_in_anonymous_namespace_p): Declare.
7544
29b89442
JJ
75452013-08-18 Jakub Jelinek <jakub@redhat.com>
7546
7547 PR tree-optimization/58006
7548 * tree-parloops.c (take_address_of): Don't ICE if get_name
7549 returns NULL.
7550 (eliminate_local_variables_stmt): Remove clobber stmts.
7551
4f219961
EB
75522013-08-18 Eric Botcazou <ebotcazou@adacore.com>
7553
7554 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
7555 error message is issued for an alias to undefined symbol.
7556
1d5755ef
JH
75572013-08-18 Jan Hubicka <jh@suse.cz>
7558
7559 * cgraph.c (cgraph_create_indirect_edge): Discover
7560 polymorphic calls and record basic info into indirect_info.
7561 * gimple-fold.c (gimple_fold_call): When doing BINFO based
7562 devirtualization, ignore objc function calls.
7563 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
7564 call with no parm index info.
7565 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
7566 * tree.c (virtual_method_call_p): New function.
7567 * tree.h (virtual_method_call_p): Declare.
7568
5945bebf
JH
75692013-08-16 Jan Hubicka <jh@suse.cz>
7570
7571 PR middle-end/58179
7572 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
7573
47fa5d23
DE
75742013-08-16 David Edelsohn <dje.gcc@gmail.com>
7575
7576 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
7577 attribute.
7578
c74f54a0
DM
75792013-08-16 David Malcolm <dmalcolm@redhat.com>
7580
7581 * gengtype.c (type_for_name): Add special-case support for
7582 locating types within the "gcc::" namespace.
7583 (open_base_files): Emit a "using namespace gcc" directive.
7584
f758f299
MM
75852013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
7586
7587 PR target/58160
7588 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
7589 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
7590
7591 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
7592 array instead of each individual operand as a separate argument.
7593 (emit_fusion_gpr_load): Likewise.
7594 (expand_fusion_gpr_load): Add new function declaration.
7595
7596 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
7597 signature to have the operands passed as an array, instead of as
7598 separate arguments. Allow ZERO_EXTEND to be in the memory
7599 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
7600 depend on the register live/dead flags when peepholes are run.
7601 (expand_fusion_gpr_load): New function to be called from the
7602 peephole2 pass, to change the register that addis sets to be the
7603 target register.
7604 (emit_fusion_gpr_load): Change the calling signature to have the
7605 operands passed as an array, instead of as separate arguments.
7606 Allow ZERO_EXTEND to be in the memory address, and also
7607 SIGN_EXTEND if -mpower8-fusion-sign.
7608
7609 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
7610 unspec enumeration.
7611 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
7612 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 7613 depend on the register live/dead state when the peephole pass is done.
f758f299 7614
158f4e4f
DM
76152013-08-16 David Malcolm <dmalcolm@redhat.com>
7616
7617 * gengtype.c (create_user_defined_type): Ensure that the kind
7618 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
7619 declaration is seen before the GTY((user)) marking.
7620
22f8cea5
BE
76212013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
7622
7623 PR target/58105
7624 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
7625
c49bdb2e
JH
76262013-08-16 Jan Hubicka <jh@suse.cz>
7627
7628 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
7629 arugment expected_type.
7630 (gimple_fold_call): Use it.
7631 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
7632 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 7633 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
7634 (try_make_edge_direct_virtual_call): Likewise.
7635 * tree.c (obj_type_ref_class): New.
7636 * tree.h (obj_type_ref_class): Use it.
7637
4042dca9
GDR
76382013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
7639
7640 * sched-vis.c (rtl_slim_pp_initialized): Remove.
7641 (rtl_slim_pp): Likewise.
7642 (init_rtl_slim_pretty_print): Likewise.
7643 (dump_value_slim): Don't call it. Use local pretty printer.
7644 (dump_insn_slim): Likewise.
7645 (dump_rtl_slim): Likewise.
7646 (str_pattern_slim): Likewise.
7647 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
7648 Simplify.
7649
7a460594
JJ
76502013-08-16 Jakub Jelinek <jakub@redhat.com>
7651
639dc669
JJ
7652 PR tree-optimization/58164
7653 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
7654 walk gimple_goto_dest of GIMPLE_GOTO.
7655
7a460594
JJ
7656 PR tree-optimization/58165
7657 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
7658 bi_call must be the last stmt in a bb, don't split_block, instead
7659 use fallthru edge from it and give up if there is none.
7660 Release conds vector when returning early.
7661
e3c02cc7
XDL
76622013-08-14 Xinliang David Li <davidxl@google.com>
7663
7664 * config/i386/i386.c (ix86_option_override_internal):
7665 Remove unused variable and field.
7666
6469da2c
BS
76672013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7668
7669 PR target/57949
22f8cea5 7670 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
7671 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
7672 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
7673 and Linux, correct BLKmode alignment when 128-bit alignment is
7674 required and compatibility flag is not set.
22f8cea5
BE
7675 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
7676 for zero-size arguments when compatibility flag is not set.
6469da2c 7677
4ca890e2
JJ
76782013-08-14 Jakub Jelinek <jakub@redhat.com>
7679
7680 PR tree-optimization/58145
7681 * tree-sra.c (build_ref_for_offset): If prev_base has
7682 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
7683
daec1759 76842013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 7685
daec1759 7686 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 7687 Fix uninitialized variable error.
daec1759 7688
3ad20bd4
XDL
76892013-08-14 Xinliang David Li <davidxl@google.com>
7690
7691 * config/i386/i386.opt: Define two new options.
7692 * config/i386/x86-tune.def: Add arch selector field in macros.
7693 * config/i386/i386.h: Adjust macro definition.
7694 * config/i386/i386.c (ix86_option_override_internal):
7695 Refactor the code.
7696 (parse_mtune_ctrl_str): New function.
7697 (set_ix86_tune_features): New function.
7698 (ix86_function_specific_restore): Call the new helper function.
7699
e839e2a9
AB
77002013-08-14 Andrey Belevantsev <abel@ispras.ru>
7701
7702 PR rtl-optimization/57662
7703 * sel-sched.c (code_motion_process_successors): When the current insn
7704 is removed after the recursive traversal, break from the loop.
7705 Add comments and debug printouts.
7706
27ed665f
JJ
77072013-08-14 Jakub Jelinek <jakub@redhat.com>
7708 Alexandre Oliva <aoliva@redhat.com>
7709
7710 PR target/58067
7711 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
7712 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
7713 there also UNSPEC_PLTOFF.
7714
61c1a609
MP
77152013-08-14 Marek Polacek <polacek@redhat.com>
7716
7717 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
7718 NUM_CONDITIONS bit positions.
7719
0e901c67
CC
77202013-08-13 Cary Coutant <ccoutant@google.com>
7721
7722 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
7723 (attr_checksum): Hash vector contents instead of pointer.
7724 (attr_checksum_ordered): Likewise.
7725
061eff6d
UB
77262013-08-13 Uros Bizjak <ubizjak@gmail.com>
7727
7728 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
7729 when Pmode != word_mode. Add length_address attribute.
7730 (sse3_monitor_<mode>): Merge from sse3_monitor and
7731 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
7732 Pmode != word_mode. Update insn length attribute.
7733 * config/i386/i386.c (ix86_option_override_internal): Update
7734 ix86_gen_monitor selection for merged sse3_monitor insn.
7735
8ec9249b
JB
77362013-08-13 Julian Brown <julian@codesourcery.com>
7737
7738 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7739 perform invalid legitimization on greater-than-word-size modes for
7740 TARGET_E500_DOUBLE.
7741
761a8eb7
VM
77422013-08-13 Vladimir Makarov <vmakarov@redhat.com>
7743
7744 * ira.c (setup_class_translate_array): Use aclass instead of cl
7745 for classes not fully covered by allocno classes.
7746
99c2bd54
JJ
77472013-08-13 Jakub Jelinek <jakub@redhat.com>
7748
4029a5e0
JJ
7749 PR tree-optimization/57661
7750 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
7751 * tree-inline.c (tree_function_versioning): Initialize it.
7752 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
7753 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
7754 that is not being copied.
7755
99c2bd54
JJ
7756 PR sanitizer/56417
7757 * asan.c (instrument_strlen_call): Fix typo in comment.
7758 Use char * type even for the lhs of POINTER_PLUS_EXPR.
7759
b5f8f063
SE
77602013-08-13 Steve Ellcey <sellcey@mips.com>
7761
7762 * config/mips/mips.md (prefetch): Use lw instead of ld on
7763 loongson in 32bit mode.
7764
4de80584
NC
77652013-08-13 Nick Clifton <nickc@redhat.com>
7766
7767 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
7768
09ce3660
JH
77692013-08-13 Jan Hubicka <jh@suse.cz>
7770
7771 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
7772 introduced edge; fix typo in sanity check.
7773 (cgraph_resolve_speculation): Export; improve diagnostic.
7774 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
7775 speculation at type mismatch.
7776 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
7777 (cgraph_resolve_speculation): Declare.
7778 (symtab_can_be_discarded): New function.
7779 * value-prof.c (gimple_ic_transform): Remove actual transform code.
7780 * ipa-inline-transform.c (speculation_removed): New global var.
7781 (clone_inlined_nodes): See if speculation can be removed.
7782 (inline_call): If speculations was removed, we growths may not match.
7783 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
7784 (speculation_useful_p): New function.
7785 (resolve_noninline_speculation): New function.
7786 (inline_small_functions): Resolve useless speculations.
7787 * ipa-inline.h (speculation_useful_p): Declare
7788 * ipa.c (can_replace_by_local_alias): Simplify.
7789 (ipa_profile): Produce speculative calls in non-lto, too;
7790 add simple cost model; produce local aliases.
7791
f971dc24
DM
77922013-08-13 David Malcolm <dmalcolm@redhat.com>
7793
7794 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 7795 PASS_MANAGER_H.
f971dc24 7796
2e507b9a
PC
77972013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
7798
7799 * config/i386/i386.c (ix86_function_versions): Use error + inform.
7800
c97fd4b8
UB
78012013-08-12 Uros Bizjak <ubizjak@gmail.com>
7802
7803 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
7804 iterator instead of X87MODEF.
7805
78062013-08-12 Perez Read <netfirewall@gmail.com>
7807
7808 PR target/58132
7809 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
7810 operand 0 for intel asm alternative.
7811 (*movabs<mode>_2): Ditto for operand 1.
7812
f4f4204c
JG
78132013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
7814
7815 * config/aarch64/arm_none.h
7816 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
7817
133b1a8e
NC
78182013-08-12 Nick Clifton <nickc@redhat.com>
7819
7820 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
7821
15dd8b3a
YR
78222013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
7823
7824 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
7825 expand for QI/HImode operand to produce more effictive code for
7826 unsigned char(short) --> float(double) conversion.
7827
94109a6a
AM
78282013-08-12 Alexander Monakov <amonakov@ispras.ru>
7829
7830 * doc/invoke.texi: Mention that -ftls-model does not force the final
7831 model.
7832
4e115102
MP
78332013-08-12 Marek Polacek <polacek@redhat.com>
7834 Marc Glisse <marc.glisse@inria.fr>
7835
7836 PR tree-optimization/57980
7837 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
7838 when creating -1 constant.
7839
748d71f3
JH
78402013-08-10 Jan Hubicka <jh@suse.cz>
7841
1f97e193 7842 Workaround binutils PR14342.
748d71f3
JH
7843 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
7844 (gimple_init_edge_profiler): Likewise.
7845 (gimple_gen_ic_func_profiler): Likewise.
7846
5979aa54
JH
78472013-08-09 Jan Hubicka <jh@suse.cz>
7848
7849 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
7850
ad83025e
XDL
78512013-08-09 Xinliang David Li <davidxl@google.com>
7852
7853 * config/i386/stringop.def: New file.
7854 * config/i386/stringop.opt: New file.
7855 * config/i386/i386-opts.h: Include stringopt.def.
7856 * config/i386/i386.opt: Include stringopt.opt.
7857 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 7858 Override default size based stringop inline strategies with options.
ad83025e
XDL
7859 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
7860 New function.
7861
e59df5fd
JH
78622013-08-09 Jan Hubicka <jh@suse.cz>
7863
c97fd4b8 7864 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 7865
634ab819
JH
78662013-08-09 Jan Hubicka <jh@suse.cz>
7867
7868 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
7869 CGRAPH_FREQ_MAX.
7870 (dump_cgraph_node): Dump profile-id.
7871 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
7872 and common_target_probability.
7873 * lto-cgraph.c (lto_output_edge): Stream common targets.
7874 (lto_output_node): Stream profile ids.
7875 (input_node): Stream profile ids.
7876 (input_edge): Stream common targets.
7877 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
7878 * ipa.c: Include value-prof.h
7879 (ipa_profile_generate_summary): Turn indirect call statement histograms
7880 into common targets.
7881 (ipa_profile): Turn common targets into speculative edges.
7882
2fa3d31b
JH
78832013-08-09 Jan Hubicka <jh@suse.cz>
7884
7885 * cgraph.h (cgraph_node): Add profile_id.
7886 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 7887 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
7888 (del_node_map): Update.
7889 (find_func_by_funcdef_no): Replace by ...
7890 (find_func_by_profile_id): ... this one.
7891 (gimple_ic_transform): Do not remove useful histograms when
7892 speculation is not done; dump info when indirect call removal
7893 can happen at LTO.
7894 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
7895 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
7896 (__gcov_indirect_call_profiler_v2): .. this one.
7897 * profile.h (init_node_map): Update.
7898 * coverage.c (coverage_compute_profile_id): New function.
7899 * coverage.h (coverage_compute_profile_id): Declare.
7900 * tree-profile.c (init_ic_make_global_vars): Make
7901 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
7902 (gimple_init_edge_profiler): Update prototype of
7903 __gcov_indirect_call_profiler.
7904 (gimple_gen_ic_func_profiler): Simplify.
7905 (tree_profiling): Use init_node_map
7906
042ae7d2
JH
79072013-08-09 Jan Hubicka <jh@suse.cz>
7908
c97fd4b8
UB
7909 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
7910 non-speculative refs.
042ae7d2
JH
7911 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
7912 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
7913 (cgraph_set_call_stmt): Likewise.
7914 (cgraph_create_edge_1): Fix release checking compilatoin;
7915 clear lto_stmt_uid.
7916 (cgraph_free_edge): Free indirect info.
7917 (cgraph_turn_edge_to_speculative): New function.
7918 (cgraph_speculative_call_info): New function.
7919 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 7920 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
7921 (dump_cgraph_node): Dump speculation.
7922 (verify_edge_count_and_frequency): Accept speculative edges.
7923 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
7924 (verify_cgraph_node): Handle speculation.
7925 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
7926 (cgraph_set_call_stmt): Update prototype.
7927 (cgraph_make_edge_direct): Update prototype.
7928 (cgraph_speculative_call_info): Declare.
7929 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
7930 to change; update call of ipa_find_references.
7931 * ipa-ref.c (ipa_record_reference): Fix return value; clear
7932 lto_stmt_uid and speculative flags.
7933 (ipa_dump_references): Dump speculation.
7934 (ipa_clone_references): Clone speculative flag.
7935 (ipa_clone_referring): Likewise.
7936 (ipa_clone_ref): New function.
7937 (ipa_find_reference): Look into lto_stmt_uids
7938 (ipa_clear_stmts_in_references): Do not clear speculative calls.
7939 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
7940 (ipa_find_reference): Update declaration.
7941 (ipa_clone_ref): Declare.
7942 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
7943 stream speculative flag.
7944 (lto_output_ref): Stream statements uids and speculation.
7945 (input_ref): Likewise.
7946 (input_edge): Stream speuclation.
7947 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
7948 (cgraph_set_call_stmt_including_clones): Handle speculation.
7949 * ipa-inline.c (heap_edge_removal_hook): New function.
7950 (inline_small_functions): Register it.
7951 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
7952 also initialize refs.
7953 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
7954 edge to change.
7955 (try_make_edge_direct_simple_call): Likewise.
7956 (try_make_edge_direct_simple_call): Likewise.
7957 (update_indirect_edges_after_inlining): Likewise.
7958 (remove_described_reference): Look proper lto_stmt_uid.
7959 (propagate_controlled_uses): Likewise.
7960 (propagate_controlled_uses): Liekwise.
7961 * tree-inline.c (copy_bb): Copy speculative edges.
7962 (redirect_all_calls): New function.
c97fd4b8
UB
7963 (copy_cfg_body): Do redirection after loop info is updated.
7964 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 7965
aa1e10cc
JH
79662013-08-09 Jan Hubicka <jh@suse.cz>
7967
7968 * lto-streamer-out.c (output_function): Renumber PHIs.
7969 * lto-streamer-in.c (input_function): Likewise.
7970
66adb8eb
JG
79712013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
7972
7973 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
7974 (get_lane_unsigned): Likewise.
7975 (dup_lane_scalar): Likewise.
7976 (get_lane): enable for VALL.
7977 * config/aarch64/aarch64-simd.md
7978 (aarch64_dup_lane_scalar<mode>): Remove.
7979 (aarch64_get_lane_signed<mode>): Likewise.
7980 (aarch64_get_lane_unsigned<mode>): Likewise.
7981 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
7982 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
7983 (aarch64_get_lane<mode>): Enable for all vector modes.
7984 (aarch64_get_lanedi): Remove misleading constraints.
7985 * config/aarch64/arm_neon.h
7986 (__aarch64_vget_lane_any): Define.
7987 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
7988 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
7989 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
7990 * config/aarch64/iterators.md (VDQQH): New.
7991 (VDQQHS): Likewise.
7992 (vwcore): Likewise.
7993
1f65ae7a
EB
79942013-08-09 Eric Botcazou <ebotcazou@adacore.com>
7995
7996 * configure.ac: Add GAS check for LEON instructions on SPARC.
7997 * configure: Regenerate.
7998 * config.in: Likewise.
7999 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
8000 sparc*-*-* block.
8001 * config/sparc/sparc.opt (LEON, LEON3): New masks.
8002 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
8003 for LEON or LEON3.
8004 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
8005 (AS_LEON_FLAG): New macro.
8006 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
8007 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
8008 Deal with LEON and LEON3 for the memory model.
23a6cb78 8009 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
8010 (atomic_compare_and_swap<mode>_1): Likewise.
8011 (*atomic_compare_and_swap<mode>_1): Likewise.
8012
ff522f7f
ZC
80132013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8014
8015 * config/arm/neon.md (vcond): Fix floating-point vector
8016 comparisons against 0.
8017
cb1cca12
VM
80182013-08-08 Vladimir Makarov <vmakarov@redhat.com>
8019
8020 * lra-constraints.c (emit_spill_move): Remove assert.
8021 (process_alt_operands): Add more debugging
8022 output. Increase reject for spilling into memory. Decrease
8023 reject for reloading scratch.
8024 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
8025
a3719e31
SE
80262013-08-08 Steve Ellcey <sellcey@mips.com>
8027
8028 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
8029 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
8030 micromips incompatible. Add nan2008.
8031 (MULTILIB_DIRNAMES): Add nan2008.
8032 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
8033 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
8034 and micromips incompatible. Add nan2008.
8035 (MULTILIB_DIRNAMES): Add nan2008.
8036 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
8037
f40423e2
RS
80382013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
8039
8040 PR rtl-optimization/58079
8041 * combine.c (combine_simplify_rtx): Avoid using SUBST if
8042 simplify_comparison has widened a comparison with an integer.
8043
869b9125
KT
80442013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8045
8046 * config/arm/neon.md (movmisalign<mode>): Disable when we
8047 don't allow unaligned accesses.
8048 (*movmisalign<mode>_neon_store): Likewise.
8049 (*movmisalign<mode>_neon_load): Likewise.
8050 (*movmisalign<mode>_neon_store): Likewise.
8051 (*movmisalign<mode>_neon_load): Likewise.
8052
71cafea9
JH
80532013-08-08 Jan Hubicka <jh@suse.cz>
8054
8055 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
8056 (make_pass_rebuild_cgraph_edges): Also clear references.
8057 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
8058 * ipa-inline-transform.c (inline_transform): Remove all references
8059 after inlining.
c97fd4b8
UB
8060 * cgraphunit.c (expand_function): Remove all references after
8061 expansion.
71cafea9
JH
8062 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
8063 (ipa_find_reference): Rewrite to iterator.
8064 (remove_stmt_references): Likewise.
8065 (ipa_clear_stmts_in_references): New function.
8066 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
8067 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
8068 clear references.
71cafea9
JH
8069 * ipa-split.c (split_function): Remove references in split function.
8070
27d2e612
RE
80712013-08-08 Richard Earnshaw <rearnsha@arm.com>
8072
8073 PR target/57431
1f65ae7a 8074 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
8075 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
8076
5efc661c
RE
80772013-08-08 Richard Earnshaw <rearnsha@arm.com>
8078
8079 PR target/56979
1f65ae7a 8080 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
8081 suggested mode for the assignment isn't compatible with the
8082 registers required.
8083
f276d31d
BE
80842013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
8085
8086 PR target/58065
8087 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
8088
4b8bc035
XDL
80892013-08-07 Xinliang David Li <davidxl@google.com>
8090
8091 * config/i386/i386.opt: New option -mtune-ctrl=.
8092 * config/i386/x86-tune.def: New file.
8093 * config/i386/i386.h: include x86-tune.def.
8094 * config/i386/i386.c (ix86_option_override_internal):
8095 Parsing -mtune-ctrl= option and set tune features.
8096
12211b99 80972013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
8098
8099 PR other/12081
03b0ee0a 8100 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
8101 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
8102 to gen_2arg_fn_t.
8103
5cf6635b
EB
81042013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8105
8106 * rtl.h (update_alignments): Declare.
8107 * final.c (grow_label_align): New function extracted from...
8108 (shorten_branches): ...here. Call it.
8109 (update_alignments): New function.
8110 * reorg.c (sibling_labels): New variable.
8111 (get_label_before): Add SIBLING parameter. If it is non-zero, push
8112 the new label along with it onto the sibling_labels vector.
8113 (fill_simple_delay_slots): Adjust call to get_label_before.
8114 (fill_slots_from_thread): Likewise.
8115 (relax_delay_slots): Likewise.
8116 (make_return_insns): Likewise.
8117 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
8118
3c8ca1ab
EB
81192013-08-07 Eric Botcazou <ebotcazou@adacore.com>
8120
8121 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
8122 document its semantics.
8123 (diagnostic_report_diagnostic): Adjust accordingly.
8124
5ee5b32c
DM
81252013-08-07 David Malcolm <dmalcolm@redhat.com>
8126
03b0ee0a 8127 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
8128 (sparc_option_override): ...and port to new C++ pass API.
8129 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
8130
abd566fa
PB
81312013-08-07 Peter Bergner <bergner@vnet.ibm.com>
8132
8133 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
8134
2077db1b
CT
81352013-08-06 Caroline Tice <cmtice@google.com>
8136
8137 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
8138 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
8139 * tree-pass.h: Add pass_vtable_verify.
8140 * varasm.c (assemble_variable): Add code to properly set the comdat
8141 section and name for the .vtable_map_vars section.
8142 (assemble_vtyv_preinit_initializer): New function.
8143 (default_sectin_type_flags): Make sure .vtable_map_vars section has
8144 LINK_ONCE flag.
8145 * output.h: Add function decl for assemble_vtv_preinit_initializer.
8146 * vtable-verify.c: New file.
8147 * vtable-verify.h: New file.
8148 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
8149 initialiation levels.
8150 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
8151 * passes.def: Insert pass_vtable_verify.
8152 * aclocal.m4: Reorder includes.
8153 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
8154 -fvtv-counts options.
8155 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
8156 as appropriate, if -fvtable-verify=... is used.
8157 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
8158 -fvtable-verify=... is used.
8159 * Makefile.in (OBJS): Add vtable-verify.o to list.
8160 (vtable-verify.o): Add new build rule.
8161 (GTFILES): Add vtable-verify.c to list.
8162 * common.opt (fvtable-verify=): New flag.
8163 (vtv_priority): Values for fvtable-verify= flag.
8164 (fvtv-counts): New flag.
8165 (fvtv-debug): New flag.
8166 * tree.h (save_vtable_map_decl): New extern function decl.
8167
03085d1c
DM
81682013-08-07 David Malcolm <dmalcolm@redhat.com>
8169
8170 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
8171 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
8172 (pass_data_rl78_devirt): ...new pass_data instance and...
8173 (make_pass_rl78_devirt): ...new function.
8174 (rl78_asm_file_start): Port pass registration to new C++ API.
8175
05555c4a
DM
81762013-08-07 David Malcolm <dmalcolm@redhat.com>
8177
8178 * coretypes.h (rtl_opt_pass): Add.
8179 (gcc::context): Add.
8180 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
8181 (epiphany_init): Port to new C++ pass API.
8182 (epiphany_optimize_mode_switching): Likewise.
8183 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
8184 (pass_manager::get_pass_mode_switching): New.
8185 (pass_manager::get_pass_peephole2): New.
8186 * mode-switching.c (pass_mode_switching): Add clone method.
8187 * recog.c (pass_peephole2): Add clone method.
8188 (pass_split_all_insns): Add clone method.
8189
c5a12e26
DM
81902013-08-06 David Malcolm <dmalcolm@redhat.com>
8191
03b0ee0a
UB
8192 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
8193 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 8194
a2e2a668
JH
81952013-08-06 Jan Hubicka <jh@suse.cz>
8196
8197 * cgraph.c (cgraph_get_body): New function based on lto.c
8198 implementation.
8199 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
8200 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
8201 LTO paths.
a2e2a668
JH
8202 * cgraphunit.c (expand_function): Get body prior expanding.
8203 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
8204 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
8205 really need.
a2e2a668
JH
8206 * passes.c (do_per_function_toporder): Get body.
8207 * tree-inline.c (expand_call_inline): Get body prior inlining it.
8208 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
8209
15682f24
MJ
82102013-08-06 Martin Jambor <mjambor@suse.cz>
8211
8212 PR fortran/57987
8213 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
8214 is not re-finalized. Rename second parameter to no_collect.
8215
78f6dd68
MJ
82162013-08-06 Martin Jambor <mjambor@suse.cz>
8217
8218 PR middle-end/58041
8219 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
8220 MEM_REF has proper alignment information.
8221
12211b99 82222013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
8223
8224 PR other/12081
8225 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
8226 class insn_gen_fn.
8227 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
8228 rtx (*) (rtx, ...) with insn_gen_fn.
8229 * genoutput.c (output_insn_data): Cast gen_? function pointers to
8230 insn_gen_fn::stored_funcptr. Add initializer braces.
8231
8ac69a6c
DM
82322013-08-05 David Malcolm <dmalcolm@redhat.com>
8233
8234 Rewrite how instances of passes are cloned to remove assumptions
8235 about their sizes (thus allowing pass subclasses to have
8236 additional data fields, albeit non-GC-managed ones at this point).
8237
8238 * passes.c (make_pass_instance): Now that passes have clone
8239 methods, rewrite this function to eliminate XNEW and memcpy
8240 calls that used hardcoded sizes. Since this function no longer
8241 creates pass instances, rename it to...
03b0ee0a
UB
8242 (add_pass_instance): ...this. Document the old way that passes were
8243 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
8244 (next_pass_1): Add an initial_pass argument for use by
8245 add_pass_instance.
8246 (position_pass): When adding multiple instances of a pass, use
8247 the pass's clone method, rather than relying on the XNEW/memcpy
8248 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
8249 (pass_manager::pass_manager): When invoking next_pass_1, also supply
8250 the initial instance of the current pass within the pass manager.
8ac69a6c 8251
27a4cd48
DM
82522013-08-05 David Malcolm <dmalcolm@redhat.com>
8253
8254 This is the automated part of the conversion of passes from C
8255 structs to C++ classes.
8256
8257 Patch autogenerated by refactor_passes.py from
8258 https://github.com/davidmalcolm/gcc-refactoring-scripts
8259 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
8260
8261 * asan.c (pass_asan): Convert from a global struct to a subclass of
8262 gimple_opt_pass along with...
8263 (pass_data_asan): ...new pass_data instance and...
8264 (make_pass_asan): ...new function.
8265 (pass_asan_O0): Convert from a global struct to a subclass of
8266 gimple_opt_pass along with...
8267 (pass_data_asan_O0): ...new pass_data instance and...
8268 (make_pass_asan_O0): ...new function.
8269 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
8270 subclass of rtl_opt_pass along with...
8271 (pass_data_inc_dec): ...new pass_data instance and...
8272 (make_pass_inc_dec): ...new function.
8273 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
8274 a subclass of rtl_opt_pass along with...
8275 (pass_data_reorder_blocks): ...new pass_data instance and...
8276 (make_pass_reorder_blocks): ...new function.
8277 (pass_duplicate_computed_gotos): Convert from a global struct to a
8278 subclass of rtl_opt_pass along with...
8279 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
8280 (make_pass_duplicate_computed_gotos): ...new function.
8281 (pass_partition_blocks): Convert from a global struct to a subclass of
8282 rtl_opt_pass along with...
8283 (pass_data_partition_blocks): ...new pass_data instance and...
8284 (make_pass_partition_blocks): ...new function.
8285 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
8286 struct to a subclass of rtl_opt_pass along with...
8287 (pass_data_branch_target_load_optimize1): ...new pass_data instance
8288 and...
8289 (make_pass_branch_target_load_optimize1): ...new function.
8290 (pass_branch_target_load_optimize2): Convert from a global struct to a
8291 subclass of rtl_opt_pass along with...
8292 (pass_data_branch_target_load_optimize2): ...new pass_data instance
8293 and...
8294 (make_pass_branch_target_load_optimize2): ...new function.
8295 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
8296 of rtl_opt_pass along with...
8297 (pass_data_jump): ...new pass_data instance and...
8298 (make_pass_jump): ...new function.
8299 (pass_jump2): Convert from a global struct to a subclass of
8300 rtl_opt_pass along with...
8301 (pass_data_jump2): ...new pass_data instance and...
8302 (make_pass_jump2): ...new function.
8303 * cfgexpand.c (pass_expand): Convert from a global struct to a
8304 subclass of rtl_opt_pass along with...
8305 (pass_data_expand): ...new pass_data instance and...
8306 (make_pass_expand): ...new function.
8307 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
8308 of rtl_opt_pass along with...
8309 (pass_data_free_cfg): ...new pass_data instance and...
8310 (make_pass_free_cfg): ...new function.
8311 (pass_into_cfg_layout_mode): Convert from a global struct to a
8312 subclass of rtl_opt_pass along with...
8313 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
8314 (make_pass_into_cfg_layout_mode): ...new function.
8315 (pass_outof_cfg_layout_mode): Convert from a global struct to a
8316 subclass of rtl_opt_pass along with...
8317 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
8318 (make_pass_outof_cfg_layout_mode): ...new function.
8319 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
8320 struct to a subclass of gimple_opt_pass along with...
8321 (pass_data_build_cgraph_edges): ...new pass_data instance and...
8322 (make_pass_build_cgraph_edges): ...new function.
8323 (pass_rebuild_cgraph_edges): Convert from a global struct to a
8324 subclass of gimple_opt_pass along with...
8325 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
8326 (make_pass_rebuild_cgraph_edges): ...new function.
8327 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
8328 subclass of gimple_opt_pass along with...
8329 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
8330 and...
8331 (make_pass_remove_cgraph_callee_edges): ...new function.
8332 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
8333 struct to a subclass of rtl_opt_pass along with...
8334 (pass_data_stack_adjustments): ...new pass_data instance and...
8335 (make_pass_stack_adjustments): ...new function.
8336 * combine.c (pass_combine): Convert from a global struct to a subclass
8337 of rtl_opt_pass along with...
8338 (pass_data_combine): ...new pass_data instance and...
8339 (make_pass_combine): ...new function.
8340 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
8341 global struct to a subclass of rtl_opt_pass along with...
8342 (pass_data_compare_elim_after_reload): ...new pass_data instance
8343 and...
8344 (make_pass_compare_elim_after_reload): ...new function.
8345 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
8346 of rtl_opt_pass along with...
8347 (pass_data_rtl_cprop): ...new pass_data instance and...
8348 (make_pass_rtl_cprop): ...new function.
8349 * cse.c (pass_cse): Convert from a global struct to a subclass of
8350 rtl_opt_pass along with...
8351 (pass_data_cse): ...new pass_data instance and...
8352 (make_pass_cse): ...new function.
8353 (pass_cse2): Convert from a global struct to a subclass of
8354 rtl_opt_pass along with...
8355 (pass_data_cse2): ...new pass_data instance and...
8356 (make_pass_cse2): ...new function.
8357 (pass_cse_after_global_opts): Convert from a global struct to a
8358 subclass of rtl_opt_pass along with...
8359 (pass_data_cse_after_global_opts): ...new pass_data instance and...
8360 (make_pass_cse_after_global_opts): ...new function.
8361 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
8362 of rtl_opt_pass along with...
8363 (pass_data_ud_rtl_dce): ...new pass_data instance and...
8364 (make_pass_ud_rtl_dce): ...new function.
8365 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
8366 rtl_opt_pass along with...
8367 (pass_data_fast_rtl_dce): ...new pass_data instance and...
8368 (make_pass_fast_rtl_dce): ...new function.
8369 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
8370 a subclass of rtl_opt_pass along with...
8371 (pass_data_df_initialize_opt): ...new pass_data instance and...
8372 (make_pass_df_initialize_opt): ...new function.
8373 (pass_df_initialize_no_opt): Convert from a global struct to a
8374 subclass of rtl_opt_pass along with...
8375 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
8376 (make_pass_df_initialize_no_opt): ...new function.
8377 (pass_df_finish): Convert from a global struct to a subclass of
8378 rtl_opt_pass along with...
8379 (pass_data_df_finish): ...new pass_data instance and...
8380 (make_pass_df_finish): ...new function.
8381 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
8382 rtl_opt_pass along with...
8383 (pass_data_rtl_dse1): ...new pass_data instance and...
8384 (make_pass_rtl_dse1): ...new function.
8385 (pass_rtl_dse2): Convert from a global struct to a subclass of
8386 rtl_opt_pass along with...
8387 (pass_data_rtl_dse2): ...new pass_data instance and...
8388 (make_pass_rtl_dse2): ...new function.
8389 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
8390 subclass of rtl_opt_pass along with...
8391 (pass_data_dwarf2_frame): ...new pass_data instance and...
8392 (make_pass_dwarf2_frame): ...new function.
8393 * except.c (pass_set_nothrow_function_flags): Convert from a global
8394 struct to a subclass of rtl_opt_pass along with...
8395 (pass_data_set_nothrow_function_flags): ...new pass_data instance
8396 and...
8397 (make_pass_set_nothrow_function_flags): ...new function.
8398 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
8399 subclass of rtl_opt_pass along with...
8400 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
8401 and...
8402 (make_pass_convert_to_eh_region_ranges): ...new function.
8403 * final.c (pass_compute_alignments): Convert from a global struct to a
8404 subclass of rtl_opt_pass along with...
8405 (pass_data_compute_alignments): ...new pass_data instance and...
8406 (make_pass_compute_alignments): ...new function.
8407 (pass_final): Convert from a global struct to a subclass of
8408 rtl_opt_pass along with...
8409 (pass_data_final): ...new pass_data instance and...
8410 (make_pass_final): ...new function.
8411 (pass_shorten_branches): Convert from a global struct to a subclass of
8412 rtl_opt_pass along with...
8413 (pass_data_shorten_branches): ...new pass_data instance and...
8414 (make_pass_shorten_branches): ...new function.
8415 (pass_clean_state): Convert from a global struct to a subclass of
8416 rtl_opt_pass along with...
8417 (pass_data_clean_state): ...new pass_data instance and...
8418 (make_pass_clean_state): ...new function.
8419 * function.c (pass_instantiate_virtual_regs): Convert from a global
8420 struct to a subclass of rtl_opt_pass along with...
8421 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
8422 (make_pass_instantiate_virtual_regs): ...new function.
8423 (pass_leaf_regs): Convert from a global struct to a subclass of
8424 rtl_opt_pass along with...
8425 (pass_data_leaf_regs): ...new pass_data instance and...
8426 (make_pass_leaf_regs): ...new function.
8427 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
8428 subclass of rtl_opt_pass along with...
8429 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
8430 and...
8431 (make_pass_thread_prologue_and_epilogue): ...new function.
8432 (pass_match_asm_constraints): Convert from a global struct to a
8433 subclass of rtl_opt_pass along with...
8434 (pass_data_match_asm_constraints): ...new pass_data instance and...
8435 (make_pass_match_asm_constraints): ...new function.
8436 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
8437 subclass of rtl_opt_pass along with...
8438 (pass_data_rtl_fwprop): ...new pass_data instance and...
8439 (make_pass_rtl_fwprop): ...new function.
8440 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
8441 rtl_opt_pass along with...
8442 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
8443 (make_pass_rtl_fwprop_addr): ...new function.
8444 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
8445 rtl_opt_pass along with...
8446 (pass_data_rtl_pre): ...new pass_data instance and...
8447 (make_pass_rtl_pre): ...new function.
8448 (pass_rtl_hoist): Convert from a global struct to a subclass of
8449 rtl_opt_pass along with...
8450 (pass_data_rtl_hoist): ...new pass_data instance and...
8451 (make_pass_rtl_hoist): ...new function.
8452 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
8453 subclass of gimple_opt_pass along with...
8454 (pass_data_lower_cf): ...new pass_data instance and...
8455 (make_pass_lower_cf): ...new function.
8456 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
8457 from a global struct to a subclass of gimple_opt_pass along with...
8458 (pass_data_strength_reduction): ...new pass_data instance and...
8459 (make_pass_strength_reduction): ...new function.
8460 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
8461 of rtl_opt_pass along with...
8462 (pass_data_rtl_ifcvt): ...new pass_data instance and...
8463 (make_pass_rtl_ifcvt): ...new function.
8464 (pass_if_after_combine): Convert from a global struct to a subclass of
8465 rtl_opt_pass along with...
8466 (pass_data_if_after_combine): ...new pass_data instance and...
8467 (make_pass_if_after_combine): ...new function.
8468 (pass_if_after_reload): Convert from a global struct to a subclass of
8469 rtl_opt_pass along with...
8470 (pass_data_if_after_reload): ...new pass_data instance and...
8471 (make_pass_if_after_reload): ...new function.
8472 * init-regs.c (pass_initialize_regs): Convert from a global struct to
8473 a subclass of rtl_opt_pass along with...
8474 (pass_data_initialize_regs): ...new pass_data instance and...
8475 (make_pass_initialize_regs): ...new function.
8476 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
8477 of ipa_opt_pass_d along with...
8478 (pass_data_ipa_cp): ...new pass_data instance and...
8479 (make_pass_ipa_cp): ...new function.
8480 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
8481 global struct to a subclass of gimple_opt_pass along with...
8482 (pass_data_inline_parameters): ...new pass_data instance and...
8483 (make_pass_inline_parameters): ...new function.
8484 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
8485 subclass of gimple_opt_pass along with...
8486 (pass_data_early_inline): ...new pass_data instance and...
8487 (make_pass_early_inline): ...new function.
8488 (pass_ipa_inline): Convert from a global struct to a subclass of
8489 ipa_opt_pass_d along with...
8490 (pass_data_ipa_inline): ...new pass_data instance and...
8491 (make_pass_ipa_inline): ...new function.
8492 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
8493 struct to a subclass of gimple_opt_pass along with...
8494 (pass_data_local_pure_const): ...new pass_data instance and...
8495 (make_pass_local_pure_const): ...new function.
8496 (pass_ipa_pure_const): Convert from a global struct to a subclass of
8497 ipa_opt_pass_d along with...
8498 (pass_data_ipa_pure_const): ...new pass_data instance and...
8499 (make_pass_ipa_pure_const): ...new function.
8500 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
8501 to a subclass of ipa_opt_pass_d along with...
8502 (pass_data_ipa_reference): ...new pass_data instance and...
8503 (make_pass_ipa_reference): ...new function.
8504 * ipa-split.c (pass_split_functions): Convert from a global struct to
8505 a subclass of gimple_opt_pass along with...
8506 (pass_data_split_functions): ...new pass_data instance and...
8507 (make_pass_split_functions): ...new function.
8508 (pass_feedback_split_functions): Convert from a global struct to a
8509 subclass of gimple_opt_pass along with...
8510 (pass_data_feedback_split_functions): ...new pass_data instance and...
8511 (make_pass_feedback_split_functions): ...new function.
8512 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
8513 global struct to a subclass of simple_ipa_opt_pass along with...
8514 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
8515 instance and...
8516 (make_pass_ipa_function_and_variable_visibility): ...new function.
8517 (pass_ipa_free_inline_summary): Convert from a global struct to a
8518 subclass of simple_ipa_opt_pass along with...
8519 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
8520 (make_pass_ipa_free_inline_summary): ...new function.
8521 (pass_ipa_whole_program_visibility): Convert from a global struct to a
8522 subclass of ipa_opt_pass_d along with...
8523 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
8524 and...
8525 (make_pass_ipa_whole_program_visibility): ...new function.
8526 (pass_ipa_profile): Convert from a global struct to a subclass of
8527 ipa_opt_pass_d along with...
8528 (pass_data_ipa_profile): ...new pass_data instance and...
8529 (make_pass_ipa_profile): ...new function.
8530 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
8531 ipa_opt_pass_d along with...
8532 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
8533 (make_pass_ipa_cdtor_merge): ...new function.
8534 * ira.c (pass_ira): Convert from a global struct to a subclass of
8535 rtl_opt_pass along with...
8536 (pass_data_ira): ...new pass_data instance and...
8537 (make_pass_ira): ...new function.
8538 (pass_reload): Convert from a global struct to a subclass of
8539 rtl_opt_pass along with...
8540 (pass_data_reload): ...new pass_data instance and...
8541 (make_pass_reload): ...new function.
8542 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
8543 subclass of rtl_opt_pass along with...
8544 (pass_data_cleanup_barriers): ...new pass_data instance and...
8545 (make_pass_cleanup_barriers): ...new function.
8546 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
8547 of rtl_opt_pass along with...
8548 (pass_data_loop2): ...new pass_data instance and...
8549 (make_pass_loop2): ...new function.
8550 (pass_rtl_loop_init): Convert from a global struct to a subclass of
8551 rtl_opt_pass along with...
8552 (pass_data_rtl_loop_init): ...new pass_data instance and...
8553 (make_pass_rtl_loop_init): ...new function.
8554 (pass_rtl_loop_done): Convert from a global struct to a subclass of
8555 rtl_opt_pass along with...
8556 (pass_data_rtl_loop_done): ...new pass_data instance and...
8557 (make_pass_rtl_loop_done): ...new function.
8558 (pass_rtl_move_loop_invariants): Convert from a global struct to a
8559 subclass of rtl_opt_pass along with...
8560 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
8561 (make_pass_rtl_move_loop_invariants): ...new function.
8562 (pass_rtl_unswitch): Convert from a global struct to a subclass of
8563 rtl_opt_pass along with...
8564 (pass_data_rtl_unswitch): ...new pass_data instance and...
8565 (make_pass_rtl_unswitch): ...new function.
8566 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
8567 subclass of rtl_opt_pass along with...
8568 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
8569 and...
8570 (make_pass_rtl_unroll_and_peel_loops): ...new function.
8571 (pass_rtl_doloop): Convert from a global struct to a subclass of
8572 rtl_opt_pass along with...
8573 (pass_data_rtl_doloop): ...new pass_data instance and...
8574 (make_pass_rtl_doloop): ...new function.
8575 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
8576 a subclass of rtl_opt_pass along with...
8577 (pass_data_lower_subreg): ...new pass_data instance and...
8578 (make_pass_lower_subreg): ...new function.
8579 (pass_lower_subreg2): Convert from a global struct to a subclass of
8580 rtl_opt_pass along with...
8581 (pass_data_lower_subreg2): ...new pass_data instance and...
8582 (make_pass_lower_subreg2): ...new function.
8583 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
8584 struct to a subclass of ipa_opt_pass_d along with...
8585 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
8586 (make_pass_ipa_lto_gimple_out): ...new function.
8587 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
8588 of ipa_opt_pass_d along with...
8589 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
8590 (make_pass_ipa_lto_finish_out): ...new function.
8591 * mode-switching.c (pass_mode_switching): Convert from a global struct
8592 to a subclass of rtl_opt_pass along with...
8593 (pass_data_mode_switching): ...new pass_data instance and...
8594 (make_pass_mode_switching): ...new function.
8595 * modulo-sched.c (pass_sms): Convert from a global struct to a
8596 subclass of rtl_opt_pass along with...
8597 (pass_data_sms): ...new pass_data instance and...
8598 (make_pass_sms): ...new function.
8599 * omp-low.c (pass_expand_omp): Convert from a global struct to a
8600 subclass of gimple_opt_pass along with...
8601 (pass_data_expand_omp): ...new pass_data instance and...
8602 (make_pass_expand_omp): ...new function.
8603 (pass_lower_omp): Convert from a global struct to a subclass of
8604 gimple_opt_pass along with...
8605 (pass_data_lower_omp): ...new pass_data instance and...
8606 (make_pass_lower_omp): ...new function.
8607 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
8608 of gimple_opt_pass along with...
8609 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
8610 (make_pass_diagnose_omp_blocks): ...new function.
8611 * passes.c (pass_early_local_passes): Convert from a global struct to
8612 a subclass of simple_ipa_opt_pass along with...
8613 (pass_data_early_local_passes): ...new pass_data instance and...
8614 (make_pass_early_local_passes): ...new function.
8615 (pass_all_early_optimizations): Convert from a global struct to a
8616 subclass of gimple_opt_pass along with...
8617 (pass_data_all_early_optimizations): ...new pass_data instance and...
8618 (make_pass_all_early_optimizations): ...new function.
8619 (pass_all_optimizations): Convert from a global struct to a subclass
8620 of gimple_opt_pass along with...
8621 (pass_data_all_optimizations): ...new pass_data instance and...
8622 (make_pass_all_optimizations): ...new function.
8623 (pass_all_optimizations_g): Convert from a global struct to a subclass
8624 of gimple_opt_pass along with...
8625 (pass_data_all_optimizations_g): ...new pass_data instance and...
8626 (make_pass_all_optimizations_g): ...new function.
8627 (pass_rest_of_compilation): Convert from a global struct to a subclass
8628 of rtl_opt_pass along with...
8629 (pass_data_rest_of_compilation): ...new pass_data instance and...
8630 (make_pass_rest_of_compilation): ...new function.
8631 (pass_postreload): Convert from a global struct to a subclass of
8632 rtl_opt_pass along with...
8633 (pass_data_postreload): ...new pass_data instance and...
8634 (make_pass_postreload): ...new function.
8635 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
8636 subclass of rtl_opt_pass along with...
8637 (pass_data_gcse2): ...new pass_data instance and...
8638 (make_pass_gcse2): ...new function.
8639 * postreload.c (pass_postreload_cse): Convert from a global struct to
8640 a subclass of rtl_opt_pass along with...
8641 (pass_data_postreload_cse): ...new pass_data instance and...
8642 (make_pass_postreload_cse): ...new function.
8643 * predict.c (pass_profile): Convert from a global struct to a subclass
8644 of gimple_opt_pass along with...
8645 (pass_data_profile): ...new pass_data instance and...
8646 (make_pass_profile): ...new function.
8647 (pass_strip_predict_hints): Convert from a global struct to a subclass
8648 of gimple_opt_pass along with...
8649 (pass_data_strip_predict_hints): ...new pass_data instance and...
8650 (make_pass_strip_predict_hints): ...new function.
8651 * recog.c (pass_peephole2): Convert from a global struct to a subclass
8652 of rtl_opt_pass along with...
8653 (pass_data_peephole2): ...new pass_data instance and...
8654 (make_pass_peephole2): ...new function.
8655 (pass_split_all_insns): Convert from a global struct to a subclass of
8656 rtl_opt_pass along with...
8657 (pass_data_split_all_insns): ...new pass_data instance and...
8658 (make_pass_split_all_insns): ...new function.
8659 (pass_split_after_reload): Convert from a global struct to a subclass
8660 of rtl_opt_pass along with...
8661 (pass_data_split_after_reload): ...new pass_data instance and...
8662 (make_pass_split_after_reload): ...new function.
8663 (pass_split_before_regstack): Convert from a global struct to a
8664 subclass of rtl_opt_pass along with...
8665 (pass_data_split_before_regstack): ...new pass_data instance and...
8666 (make_pass_split_before_regstack): ...new function.
8667 (pass_split_before_sched2): Convert from a global struct to a subclass
8668 of rtl_opt_pass along with...
8669 (pass_data_split_before_sched2): ...new pass_data instance and...
8670 (make_pass_split_before_sched2): ...new function.
8671 (pass_split_for_shorten_branches): Convert from a global struct to a
8672 subclass of rtl_opt_pass along with...
8673 (pass_data_split_for_shorten_branches): ...new pass_data instance
8674 and...
8675 (make_pass_split_for_shorten_branches): ...new function.
8676 * ree.c (pass_ree): Convert from a global struct to a subclass of
8677 rtl_opt_pass along with...
8678 (pass_data_ree): ...new pass_data instance and...
8679 (make_pass_ree): ...new function.
8680 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
8681 subclass of rtl_opt_pass along with...
8682 (pass_data_stack_regs): ...new pass_data instance and...
8683 (make_pass_stack_regs): ...new function.
8684 (pass_stack_regs_run): Convert from a global struct to a subclass of
8685 rtl_opt_pass along with...
8686 (pass_data_stack_regs_run): ...new pass_data instance and...
8687 (make_pass_stack_regs_run): ...new function.
8688 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
8689 subclass of rtl_opt_pass along with...
8690 (pass_data_cprop_hardreg): ...new pass_data instance and...
8691 (make_pass_cprop_hardreg): ...new function.
8692 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
8693 subclass of rtl_opt_pass along with...
8694 (pass_data_reginfo_init): ...new pass_data instance and...
8695 (make_pass_reginfo_init): ...new function.
8696 * regmove.c (pass_regmove): Convert from a global struct to a subclass
8697 of rtl_opt_pass along with...
8698 (pass_data_regmove): ...new pass_data instance and...
8699 (make_pass_regmove): ...new function.
8700 * regrename.c (pass_regrename): Convert from a global struct to a
8701 subclass of rtl_opt_pass along with...
8702 (pass_data_regrename): ...new pass_data instance and...
8703 (make_pass_regrename): ...new function.
8704 * reorg.c (pass_delay_slots): Convert from a global struct to a
8705 subclass of rtl_opt_pass along with...
8706 (pass_data_delay_slots): ...new pass_data instance and...
8707 (make_pass_delay_slots): ...new function.
8708 (pass_machine_reorg): Convert from a global struct to a subclass of
8709 rtl_opt_pass along with...
8710 (pass_data_machine_reorg): ...new pass_data instance and...
8711 (make_pass_machine_reorg): ...new function.
8712 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
8713 of rtl_opt_pass along with...
8714 (pass_data_sched): ...new pass_data instance and...
8715 (make_pass_sched): ...new function.
8716 (pass_sched2): Convert from a global struct to a subclass of
8717 rtl_opt_pass along with...
8718 (pass_data_sched2): ...new pass_data instance and...
8719 (make_pass_sched2): ...new function.
8720 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
8721 to a subclass of rtl_opt_pass along with...
8722 (pass_data_stack_ptr_mod): ...new pass_data instance and...
8723 (make_pass_stack_ptr_mod): ...new function.
8724 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
8725 to a subclass of rtl_opt_pass along with...
8726 (pass_data_rtl_store_motion): ...new pass_data instance and...
8727 (make_pass_rtl_store_motion): ...new function.
8728 * tracer.c (pass_tracer): Convert from a global struct to a subclass
8729 of gimple_opt_pass along with...
8730 (pass_data_tracer): ...new pass_data instance and...
8731 (make_pass_tracer): ...new function.
8732 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
8733 to a subclass of gimple_opt_pass along with...
8734 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
8735 (make_pass_diagnose_tm_blocks): ...new function.
8736 (pass_lower_tm): Convert from a global struct to a subclass of
8737 gimple_opt_pass along with...
8738 (pass_data_lower_tm): ...new pass_data instance and...
8739 (make_pass_lower_tm): ...new function.
8740 (pass_tm_init): Convert from a global struct to a subclass of
8741 gimple_opt_pass along with...
8742 (pass_data_tm_init): ...new pass_data instance and...
8743 (make_pass_tm_init): ...new function.
8744 (pass_tm_mark): Convert from a global struct to a subclass of
8745 gimple_opt_pass along with...
8746 (pass_data_tm_mark): ...new pass_data instance and...
8747 (make_pass_tm_mark): ...new function.
8748 (pass_tm_edges): Convert from a global struct to a subclass of
8749 gimple_opt_pass along with...
8750 (pass_data_tm_edges): ...new pass_data instance and...
8751 (make_pass_tm_edges): ...new function.
8752 (pass_tm_memopt): Convert from a global struct to a subclass of
8753 gimple_opt_pass along with...
8754 (pass_data_tm_memopt): ...new pass_data instance and...
8755 (make_pass_tm_memopt): ...new function.
8756 (pass_ipa_tm): Convert from a global struct to a subclass of
8757 simple_ipa_opt_pass along with...
8758 (pass_data_ipa_tm): ...new pass_data instance and...
8759 (make_pass_ipa_tm): ...new function.
8760 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
8761 subclass of gimple_opt_pass along with...
8762 (pass_data_call_cdce): ...new pass_data instance and...
8763 (make_pass_call_cdce): ...new function.
8764 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
8765 subclass of gimple_opt_pass along with...
8766 (pass_data_build_cfg): ...new pass_data instance and...
8767 (make_pass_build_cfg): ...new function.
8768 (pass_split_crit_edges): Convert from a global struct to a subclass of
8769 gimple_opt_pass along with...
8770 (pass_data_split_crit_edges): ...new pass_data instance and...
8771 (make_pass_split_crit_edges): ...new function.
8772 (pass_warn_function_return): Convert from a global struct to a
8773 subclass of gimple_opt_pass along with...
8774 (pass_data_warn_function_return): ...new pass_data instance and...
8775 (make_pass_warn_function_return): ...new function.
8776 (pass_warn_function_noreturn): Convert from a global struct to a
8777 subclass of gimple_opt_pass along with...
8778 (pass_data_warn_function_noreturn): ...new pass_data instance and...
8779 (make_pass_warn_function_noreturn): ...new function.
8780 (pass_warn_unused_result): Convert from a global struct to a subclass
8781 of gimple_opt_pass along with...
8782 (pass_data_warn_unused_result): ...new pass_data instance and...
8783 (make_pass_warn_unused_result): ...new function.
8784 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
8785 a subclass of gimple_opt_pass along with...
8786 (pass_data_merge_phi): ...new pass_data instance and...
8787 (make_pass_merge_phi): ...new function.
8788 * tree-complex.c (pass_lower_complex): Convert from a global struct to
8789 a subclass of gimple_opt_pass along with...
8790 (pass_data_lower_complex): ...new pass_data instance and...
8791 (make_pass_lower_complex): ...new function.
8792 (pass_lower_complex_O0): Convert from a global struct to a subclass of
8793 gimple_opt_pass along with...
8794 (pass_data_lower_complex_O0): ...new pass_data instance and...
8795 (make_pass_lower_complex_O0): ...new function.
8796 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
8797 subclass of gimple_opt_pass along with...
8798 (pass_data_lower_eh): ...new pass_data instance and...
8799 (make_pass_lower_eh): ...new function.
8800 (pass_refactor_eh): Convert from a global struct to a subclass of
8801 gimple_opt_pass along with...
8802 (pass_data_refactor_eh): ...new pass_data instance and...
8803 (make_pass_refactor_eh): ...new function.
8804 (pass_lower_resx): Convert from a global struct to a subclass of
8805 gimple_opt_pass along with...
8806 (pass_data_lower_resx): ...new pass_data instance and...
8807 (make_pass_lower_resx): ...new function.
8808 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
8809 of gimple_opt_pass along with...
8810 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
8811 (make_pass_lower_eh_dispatch): ...new function.
8812 (pass_cleanup_eh): Convert from a global struct to a subclass of
8813 gimple_opt_pass along with...
8814 (pass_data_cleanup_eh): ...new pass_data instance and...
8815 (make_pass_cleanup_eh): ...new function.
8816 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
8817 to a subclass of simple_ipa_opt_pass along with...
8818 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
8819 (make_pass_ipa_lower_emutls): ...new function.
8820 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
8821 a subclass of gimple_opt_pass along with...
8822 (pass_data_if_conversion): ...new pass_data instance and...
8823 (make_pass_if_conversion): ...new function.
8824 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
8825 subclass of gimple_opt_pass along with...
8826 (pass_data_build_ssa): ...new pass_data instance and...
8827 (make_pass_build_ssa): ...new function.
8828 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
8829 global struct to a subclass of gimple_opt_pass along with...
8830 (pass_data_loop_distribution): ...new pass_data instance and...
8831 (make_pass_loop_distribution): ...new function.
8832 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
8833 subclass of gimple_opt_pass along with...
8834 (pass_data_mudflap_1): ...new pass_data instance and...
8835 (make_pass_mudflap_1): ...new function.
8836 (pass_mudflap_2): Convert from a global struct to a subclass of
8837 gimple_opt_pass along with...
8838 (pass_data_mudflap_2): ...new pass_data instance and...
8839 (make_pass_mudflap_2): ...new function.
8840 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
8841 subclass of gimple_opt_pass along with...
8842 (pass_data_mudflap_1): ...new pass_data instance and...
8843 (make_pass_mudflap_1): ...new function.
8844 (pass_mudflap_2): Convert from a global struct to a subclass of
8845 gimple_opt_pass along with...
8846 (pass_data_mudflap_2): ...new pass_data instance and...
8847 (make_pass_mudflap_2): ...new function.
8848 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
8849 gimple_opt_pass along with...
8850 (pass_data_nrv): ...new pass_data instance and...
8851 (make_pass_nrv): ...new function.
8852 (pass_return_slot): Convert from a global struct to a subclass of
8853 gimple_opt_pass along with...
8854 (pass_data_return_slot): ...new pass_data instance and...
8855 (make_pass_return_slot): ...new function.
8856 * tree-object-size.c (pass_object_sizes): Convert from a global struct
8857 to a subclass of gimple_opt_pass along with...
8858 (pass_data_object_sizes): ...new pass_data instance and...
8859 (make_pass_object_sizes): ...new function.
8860 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
8861 global struct to a subclass of gimple_opt_pass along with...
8862 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
8863 and...
8864 (make_pass_cleanup_cfg_post_optimizing): ...new function.
8865 (pass_fixup_cfg): Convert from a global struct to a subclass of
8866 gimple_opt_pass along with...
8867 (pass_data_fixup_cfg): ...new pass_data instance and...
8868 (make_pass_fixup_cfg): ...new function.
8869 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
8870 (make_pass_mudflap_1): ...new function.
8871 (pass_mudflap_2): Replace declaration with that of...
8872 (make_pass_mudflap_2): ...new function.
8873 (pass_asan): Replace declaration with that of...
8874 (make_pass_asan): ...new function.
8875 (pass_asan_O0): Replace declaration with that of...
8876 (make_pass_asan_O0): ...new function.
8877 (pass_tsan): Replace declaration with that of...
8878 (make_pass_tsan): ...new function.
8879 (pass_tsan_O0): Replace declaration with that of...
8880 (make_pass_tsan_O0): ...new function.
8881 (pass_lower_cf): Replace declaration with that of...
8882 (make_pass_lower_cf): ...new function.
8883 (pass_refactor_eh): Replace declaration with that of...
8884 (make_pass_refactor_eh): ...new function.
8885 (pass_lower_eh): Replace declaration with that of...
8886 (make_pass_lower_eh): ...new function.
8887 (pass_lower_eh_dispatch): Replace declaration with that of...
8888 (make_pass_lower_eh_dispatch): ...new function.
8889 (pass_lower_resx): Replace declaration with that of...
8890 (make_pass_lower_resx): ...new function.
8891 (pass_build_cfg): Replace declaration with that of...
8892 (make_pass_build_cfg): ...new function.
8893 (pass_early_tree_profile): Replace declaration with that of...
8894 (make_pass_early_tree_profile): ...new function.
8895 (pass_cleanup_eh): Replace declaration with that of...
8896 (make_pass_cleanup_eh): ...new function.
8897 (pass_sra): Replace declaration with that of...
8898 (make_pass_sra): ...new function.
8899 (pass_sra_early): Replace declaration with that of...
8900 (make_pass_sra_early): ...new function.
8901 (pass_early_ipa_sra): Replace declaration with that of...
8902 (make_pass_early_ipa_sra): ...new function.
8903 (pass_tail_recursion): Replace declaration with that of...
8904 (make_pass_tail_recursion): ...new function.
8905 (pass_tail_calls): Replace declaration with that of...
8906 (make_pass_tail_calls): ...new function.
8907 (pass_tree_loop): Replace declaration with that of...
8908 (make_pass_tree_loop): ...new function.
8909 (pass_tree_loop_init): Replace declaration with that of...
8910 (make_pass_tree_loop_init): ...new function.
8911 (pass_lim): Replace declaration with that of...
8912 (make_pass_lim): ...new function.
8913 (pass_tree_unswitch): Replace declaration with that of...
8914 (make_pass_tree_unswitch): ...new function.
8915 (pass_predcom): Replace declaration with that of...
8916 (make_pass_predcom): ...new function.
8917 (pass_iv_canon): Replace declaration with that of...
8918 (make_pass_iv_canon): ...new function.
8919 (pass_scev_cprop): Replace declaration with that of...
8920 (make_pass_scev_cprop): ...new function.
8921 (pass_empty_loop): Replace declaration with that of...
8922 (make_pass_empty_loop): ...new function.
8923 (pass_record_bounds): Replace declaration with that of...
8924 (make_pass_record_bounds): ...new function.
8925 (pass_graphite): Replace declaration with that of...
8926 (make_pass_graphite): ...new function.
8927 (pass_graphite_transforms): Replace declaration with that of...
8928 (make_pass_graphite_transforms): ...new function.
8929 (pass_if_conversion): Replace declaration with that of...
8930 (make_pass_if_conversion): ...new function.
8931 (pass_loop_distribution): Replace declaration with that of...
8932 (make_pass_loop_distribution): ...new function.
8933 (pass_vectorize): Replace declaration with that of...
8934 (make_pass_vectorize): ...new function.
8935 (pass_slp_vectorize): Replace declaration with that of...
8936 (make_pass_slp_vectorize): ...new function.
8937 (pass_complete_unroll): Replace declaration with that of...
8938 (make_pass_complete_unroll): ...new function.
8939 (pass_complete_unrolli): Replace declaration with that of...
8940 (make_pass_complete_unrolli): ...new function.
8941 (pass_parallelize_loops): Replace declaration with that of...
8942 (make_pass_parallelize_loops): ...new function.
8943 (pass_loop_prefetch): Replace declaration with that of...
8944 (make_pass_loop_prefetch): ...new function.
8945 (pass_iv_optimize): Replace declaration with that of...
8946 (make_pass_iv_optimize): ...new function.
8947 (pass_tree_loop_done): Replace declaration with that of...
8948 (make_pass_tree_loop_done): ...new function.
8949 (pass_ch): Replace declaration with that of...
8950 (make_pass_ch): ...new function.
8951 (pass_ccp): Replace declaration with that of...
8952 (make_pass_ccp): ...new function.
8953 (pass_phi_only_cprop): Replace declaration with that of...
8954 (make_pass_phi_only_cprop): ...new function.
8955 (pass_build_ssa): Replace declaration with that of...
8956 (make_pass_build_ssa): ...new function.
8957 (pass_build_alias): Replace declaration with that of...
8958 (make_pass_build_alias): ...new function.
8959 (pass_build_ealias): Replace declaration with that of...
8960 (make_pass_build_ealias): ...new function.
8961 (pass_dominator): Replace declaration with that of...
8962 (make_pass_dominator): ...new function.
8963 (pass_dce): Replace declaration with that of...
8964 (make_pass_dce): ...new function.
8965 (pass_dce_loop): Replace declaration with that of...
8966 (make_pass_dce_loop): ...new function.
8967 (pass_cd_dce): Replace declaration with that of...
8968 (make_pass_cd_dce): ...new function.
8969 (pass_call_cdce): Replace declaration with that of...
8970 (make_pass_call_cdce): ...new function.
8971 (pass_merge_phi): Replace declaration with that of...
8972 (make_pass_merge_phi): ...new function.
8973 (pass_split_crit_edges): Replace declaration with that of...
8974 (make_pass_split_crit_edges): ...new function.
8975 (pass_pre): Replace declaration with that of...
8976 (make_pass_pre): ...new function.
8977 (pass_profile): Replace declaration with that of...
8978 (make_pass_profile): ...new function.
8979 (pass_strip_predict_hints): Replace declaration with that of...
8980 (make_pass_strip_predict_hints): ...new function.
8981 (pass_lower_complex_O0): Replace declaration with that of...
8982 (make_pass_lower_complex_O0): ...new function.
8983 (pass_lower_complex): Replace declaration with that of...
8984 (make_pass_lower_complex): ...new function.
8985 (pass_lower_vector): Replace declaration with that of...
8986 (make_pass_lower_vector): ...new function.
8987 (pass_lower_vector_ssa): Replace declaration with that of...
8988 (make_pass_lower_vector_ssa): ...new function.
8989 (pass_lower_omp): Replace declaration with that of...
8990 (make_pass_lower_omp): ...new function.
8991 (pass_diagnose_omp_blocks): Replace declaration with that of...
8992 (make_pass_diagnose_omp_blocks): ...new function.
8993 (pass_expand_omp): Replace declaration with that of...
8994 (make_pass_expand_omp): ...new function.
8995 (pass_expand_omp_ssa): Replace declaration with that of...
8996 (make_pass_expand_omp_ssa): ...new function.
8997 (pass_object_sizes): Replace declaration with that of...
8998 (make_pass_object_sizes): ...new function.
8999 (pass_strlen): Replace declaration with that of...
9000 (make_pass_strlen): ...new function.
9001 (pass_fold_builtins): Replace declaration with that of...
9002 (make_pass_fold_builtins): ...new function.
9003 (pass_stdarg): Replace declaration with that of...
9004 (make_pass_stdarg): ...new function.
9005 (pass_early_warn_uninitialized): Replace declaration with that of...
9006 (make_pass_early_warn_uninitialized): ...new function.
9007 (pass_late_warn_uninitialized): Replace declaration with that of...
9008 (make_pass_late_warn_uninitialized): ...new function.
9009 (pass_cse_reciprocals): Replace declaration with that of...
9010 (make_pass_cse_reciprocals): ...new function.
9011 (pass_cse_sincos): Replace declaration with that of...
9012 (make_pass_cse_sincos): ...new function.
9013 (pass_optimize_bswap): Replace declaration with that of...
9014 (make_pass_optimize_bswap): ...new function.
9015 (pass_optimize_widening_mul): Replace declaration with that of...
9016 (make_pass_optimize_widening_mul): ...new function.
9017 (pass_warn_function_return): Replace declaration with that of...
9018 (make_pass_warn_function_return): ...new function.
9019 (pass_warn_function_noreturn): Replace declaration with that of...
9020 (make_pass_warn_function_noreturn): ...new function.
9021 (pass_cselim): Replace declaration with that of...
9022 (make_pass_cselim): ...new function.
9023 (pass_phiopt): Replace declaration with that of...
9024 (make_pass_phiopt): ...new function.
9025 (pass_forwprop): Replace declaration with that of...
9026 (make_pass_forwprop): ...new function.
9027 (pass_phiprop): Replace declaration with that of...
9028 (make_pass_phiprop): ...new function.
9029 (pass_tree_ifcombine): Replace declaration with that of...
9030 (make_pass_tree_ifcombine): ...new function.
9031 (pass_dse): Replace declaration with that of...
9032 (make_pass_dse): ...new function.
9033 (pass_nrv): Replace declaration with that of...
9034 (make_pass_nrv): ...new function.
9035 (pass_rename_ssa_copies): Replace declaration with that of...
9036 (make_pass_rename_ssa_copies): ...new function.
9037 (pass_sink_code): Replace declaration with that of...
9038 (make_pass_sink_code): ...new function.
9039 (pass_fre): Replace declaration with that of...
9040 (make_pass_fre): ...new function.
9041 (pass_check_data_deps): Replace declaration with that of...
9042 (make_pass_check_data_deps): ...new function.
9043 (pass_copy_prop): Replace declaration with that of...
9044 (make_pass_copy_prop): ...new function.
9045 (pass_vrp): Replace declaration with that of...
9046 (make_pass_vrp): ...new function.
9047 (pass_uncprop): Replace declaration with that of...
9048 (make_pass_uncprop): ...new function.
9049 (pass_return_slot): Replace declaration with that of...
9050 (make_pass_return_slot): ...new function.
9051 (pass_reassoc): Replace declaration with that of...
9052 (make_pass_reassoc): ...new function.
9053 (pass_rebuild_cgraph_edges): Replace declaration with that of...
9054 (make_pass_rebuild_cgraph_edges): ...new function.
9055 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
9056 (make_pass_remove_cgraph_callee_edges): ...new function.
9057 (pass_build_cgraph_edges): Replace declaration with that of...
9058 (make_pass_build_cgraph_edges): ...new function.
9059 (pass_local_pure_const): Replace declaration with that of...
9060 (make_pass_local_pure_const): ...new function.
9061 (pass_tracer): Replace declaration with that of...
9062 (make_pass_tracer): ...new function.
9063 (pass_warn_unused_result): Replace declaration with that of...
9064 (make_pass_warn_unused_result): ...new function.
9065 (pass_diagnose_tm_blocks): Replace declaration with that of...
9066 (make_pass_diagnose_tm_blocks): ...new function.
9067 (pass_lower_tm): Replace declaration with that of...
9068 (make_pass_lower_tm): ...new function.
9069 (pass_tm_init): Replace declaration with that of...
9070 (make_pass_tm_init): ...new function.
9071 (pass_tm_mark): Replace declaration with that of...
9072 (make_pass_tm_mark): ...new function.
9073 (pass_tm_memopt): Replace declaration with that of...
9074 (make_pass_tm_memopt): ...new function.
9075 (pass_tm_edges): Replace declaration with that of...
9076 (make_pass_tm_edges): ...new function.
9077 (pass_split_functions): Replace declaration with that of...
9078 (make_pass_split_functions): ...new function.
9079 (pass_feedback_split_functions): Replace declaration with that of...
9080 (make_pass_feedback_split_functions): ...new function.
9081 (pass_strength_reduction): Replace declaration with that of...
9082 (make_pass_strength_reduction): ...new function.
9083 (pass_ipa_lower_emutls): Replace declaration with that of...
9084 (make_pass_ipa_lower_emutls): ...new function.
9085 (pass_ipa_function_and_variable_visibility): Replace declaration with
9086 that of...
9087 (make_pass_ipa_function_and_variable_visibility): ...new function.
9088 (pass_ipa_tree_profile): Replace declaration with that of...
9089 (make_pass_ipa_tree_profile): ...new function.
9090 (pass_early_local_passes): Replace declaration with that of...
9091 (make_pass_early_local_passes): ...new function.
9092 (pass_ipa_whole_program_visibility): Replace declaration with that
9093 of...
9094 (make_pass_ipa_whole_program_visibility): ...new function.
9095 (pass_ipa_lto_gimple_out): Replace declaration with that of...
9096 (make_pass_ipa_lto_gimple_out): ...new function.
9097 (pass_ipa_increase_alignment): Replace declaration with that of...
9098 (make_pass_ipa_increase_alignment): ...new function.
9099 (pass_ipa_inline): Replace declaration with that of...
9100 (make_pass_ipa_inline): ...new function.
9101 (pass_ipa_free_lang_data): Replace declaration with that of...
9102 (make_pass_ipa_free_lang_data): ...new function.
9103 (pass_ipa_free_inline_summary): Replace declaration with that of...
9104 (make_pass_ipa_free_inline_summary): ...new function.
9105 (pass_ipa_cp): Replace declaration with that of...
9106 (make_pass_ipa_cp): ...new function.
9107 (pass_ipa_reference): Replace declaration with that of...
9108 (make_pass_ipa_reference): ...new function.
9109 (pass_ipa_pure_const): Replace declaration with that of...
9110 (make_pass_ipa_pure_const): ...new function.
9111 (pass_ipa_pta): Replace declaration with that of...
9112 (make_pass_ipa_pta): ...new function.
9113 (pass_ipa_lto_finish_out): Replace declaration with that of...
9114 (make_pass_ipa_lto_finish_out): ...new function.
9115 (pass_ipa_tm): Replace declaration with that of...
9116 (make_pass_ipa_tm): ...new function.
9117 (pass_ipa_profile): Replace declaration with that of...
9118 (make_pass_ipa_profile): ...new function.
9119 (pass_ipa_cdtor_merge): Replace declaration with that of...
9120 (make_pass_ipa_cdtor_merge): ...new function.
9121 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
9122 of...
9123 (make_pass_cleanup_cfg_post_optimizing): ...new function.
9124 (pass_init_datastructures): Replace declaration with that of...
9125 (make_pass_init_datastructures): ...new function.
9126 (pass_fixup_cfg): Replace declaration with that of...
9127 (make_pass_fixup_cfg): ...new function.
9128 (pass_expand): Replace declaration with that of...
9129 (make_pass_expand): ...new function.
9130 (pass_instantiate_virtual_regs): Replace declaration with that of...
9131 (make_pass_instantiate_virtual_regs): ...new function.
9132 (pass_rtl_fwprop): Replace declaration with that of...
9133 (make_pass_rtl_fwprop): ...new function.
9134 (pass_rtl_fwprop_addr): Replace declaration with that of...
9135 (make_pass_rtl_fwprop_addr): ...new function.
9136 (pass_jump): Replace declaration with that of...
9137 (make_pass_jump): ...new function.
9138 (pass_jump2): Replace declaration with that of...
9139 (make_pass_jump2): ...new function.
9140 (pass_lower_subreg): Replace declaration with that of...
9141 (make_pass_lower_subreg): ...new function.
9142 (pass_cse): Replace declaration with that of...
9143 (make_pass_cse): ...new function.
9144 (pass_fast_rtl_dce): Replace declaration with that of...
9145 (make_pass_fast_rtl_dce): ...new function.
9146 (pass_ud_rtl_dce): Replace declaration with that of...
9147 (make_pass_ud_rtl_dce): ...new function.
9148 (pass_rtl_dce): Replace declaration with that of...
9149 (make_pass_rtl_dce): ...new function.
9150 (pass_rtl_dse1): Replace declaration with that of...
9151 (make_pass_rtl_dse1): ...new function.
9152 (pass_rtl_dse2): Replace declaration with that of...
9153 (make_pass_rtl_dse2): ...new function.
9154 (pass_rtl_dse3): Replace declaration with that of...
9155 (make_pass_rtl_dse3): ...new function.
9156 (pass_rtl_cprop): Replace declaration with that of...
9157 (make_pass_rtl_cprop): ...new function.
9158 (pass_rtl_pre): Replace declaration with that of...
9159 (make_pass_rtl_pre): ...new function.
9160 (pass_rtl_hoist): Replace declaration with that of...
9161 (make_pass_rtl_hoist): ...new function.
9162 (pass_rtl_store_motion): Replace declaration with that of...
9163 (make_pass_rtl_store_motion): ...new function.
9164 (pass_cse_after_global_opts): Replace declaration with that of...
9165 (make_pass_cse_after_global_opts): ...new function.
9166 (pass_rtl_ifcvt): Replace declaration with that of...
9167 (make_pass_rtl_ifcvt): ...new function.
9168 (pass_into_cfg_layout_mode): Replace declaration with that of...
9169 (make_pass_into_cfg_layout_mode): ...new function.
9170 (pass_outof_cfg_layout_mode): Replace declaration with that of...
9171 (make_pass_outof_cfg_layout_mode): ...new function.
9172 (pass_loop2): Replace declaration with that of...
9173 (make_pass_loop2): ...new function.
9174 (pass_rtl_loop_init): Replace declaration with that of...
9175 (make_pass_rtl_loop_init): ...new function.
9176 (pass_rtl_move_loop_invariants): Replace declaration with that of...
9177 (make_pass_rtl_move_loop_invariants): ...new function.
9178 (pass_rtl_unswitch): Replace declaration with that of...
9179 (make_pass_rtl_unswitch): ...new function.
9180 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
9181 (make_pass_rtl_unroll_and_peel_loops): ...new function.
9182 (pass_rtl_doloop): Replace declaration with that of...
9183 (make_pass_rtl_doloop): ...new function.
9184 (pass_rtl_loop_done): Replace declaration with that of...
9185 (make_pass_rtl_loop_done): ...new function.
9186 (pass_web): Replace declaration with that of...
9187 (make_pass_web): ...new function.
9188 (pass_cse2): Replace declaration with that of...
9189 (make_pass_cse2): ...new function.
9190 (pass_df_initialize_opt): Replace declaration with that of...
9191 (make_pass_df_initialize_opt): ...new function.
9192 (pass_df_initialize_no_opt): Replace declaration with that of...
9193 (make_pass_df_initialize_no_opt): ...new function.
9194 (pass_reginfo_init): Replace declaration with that of...
9195 (make_pass_reginfo_init): ...new function.
9196 (pass_inc_dec): Replace declaration with that of...
9197 (make_pass_inc_dec): ...new function.
9198 (pass_stack_ptr_mod): Replace declaration with that of...
9199 (make_pass_stack_ptr_mod): ...new function.
9200 (pass_initialize_regs): Replace declaration with that of...
9201 (make_pass_initialize_regs): ...new function.
9202 (pass_combine): Replace declaration with that of...
9203 (make_pass_combine): ...new function.
9204 (pass_if_after_combine): Replace declaration with that of...
9205 (make_pass_if_after_combine): ...new function.
9206 (pass_ree): Replace declaration with that of...
9207 (make_pass_ree): ...new function.
9208 (pass_partition_blocks): Replace declaration with that of...
9209 (make_pass_partition_blocks): ...new function.
9210 (pass_match_asm_constraints): Replace declaration with that of...
9211 (make_pass_match_asm_constraints): ...new function.
9212 (pass_regmove): Replace declaration with that of...
9213 (make_pass_regmove): ...new function.
9214 (pass_split_all_insns): Replace declaration with that of...
9215 (make_pass_split_all_insns): ...new function.
9216 (pass_fast_rtl_byte_dce): Replace declaration with that of...
9217 (make_pass_fast_rtl_byte_dce): ...new function.
9218 (pass_lower_subreg2): Replace declaration with that of...
9219 (make_pass_lower_subreg2): ...new function.
9220 (pass_mode_switching): Replace declaration with that of...
9221 (make_pass_mode_switching): ...new function.
9222 (pass_sms): Replace declaration with that of...
9223 (make_pass_sms): ...new function.
9224 (pass_sched): Replace declaration with that of...
9225 (make_pass_sched): ...new function.
9226 (pass_ira): Replace declaration with that of...
9227 (make_pass_ira): ...new function.
9228 (pass_reload): Replace declaration with that of...
9229 (make_pass_reload): ...new function.
9230 (pass_clean_state): Replace declaration with that of...
9231 (make_pass_clean_state): ...new function.
9232 (pass_branch_prob): Replace declaration with that of...
9233 (make_pass_branch_prob): ...new function.
9234 (pass_value_profile_transformations): Replace declaration with that
9235 of...
9236 (make_pass_value_profile_transformations): ...new function.
9237 (pass_postreload_cse): Replace declaration with that of...
9238 (make_pass_postreload_cse): ...new function.
9239 (pass_gcse2): Replace declaration with that of...
9240 (make_pass_gcse2): ...new function.
9241 (pass_split_after_reload): Replace declaration with that of...
9242 (make_pass_split_after_reload): ...new function.
9243 (pass_branch_target_load_optimize1): Replace declaration with that
9244 of...
9245 (make_pass_branch_target_load_optimize1): ...new function.
9246 (pass_thread_prologue_and_epilogue): Replace declaration with that
9247 of...
9248 (make_pass_thread_prologue_and_epilogue): ...new function.
9249 (pass_stack_adjustments): Replace declaration with that of...
9250 (make_pass_stack_adjustments): ...new function.
9251 (pass_peephole2): Replace declaration with that of...
9252 (make_pass_peephole2): ...new function.
9253 (pass_if_after_reload): Replace declaration with that of...
9254 (make_pass_if_after_reload): ...new function.
9255 (pass_regrename): Replace declaration with that of...
9256 (make_pass_regrename): ...new function.
9257 (pass_cprop_hardreg): Replace declaration with that of...
9258 (make_pass_cprop_hardreg): ...new function.
9259 (pass_reorder_blocks): Replace declaration with that of...
9260 (make_pass_reorder_blocks): ...new function.
9261 (pass_branch_target_load_optimize2): Replace declaration with that
9262 of...
9263 (make_pass_branch_target_load_optimize2): ...new function.
9264 (pass_leaf_regs): Replace declaration with that of...
9265 (make_pass_leaf_regs): ...new function.
9266 (pass_split_before_sched2): Replace declaration with that of...
9267 (make_pass_split_before_sched2): ...new function.
9268 (pass_compare_elim_after_reload): Replace declaration with that of...
9269 (make_pass_compare_elim_after_reload): ...new function.
9270 (pass_sched2): Replace declaration with that of...
9271 (make_pass_sched2): ...new function.
9272 (pass_stack_regs): Replace declaration with that of...
9273 (make_pass_stack_regs): ...new function.
9274 (pass_stack_regs_run): Replace declaration with that of...
9275 (make_pass_stack_regs_run): ...new function.
9276 (pass_df_finish): Replace declaration with that of...
9277 (make_pass_df_finish): ...new function.
9278 (pass_compute_alignments): Replace declaration with that of...
9279 (make_pass_compute_alignments): ...new function.
9280 (pass_duplicate_computed_gotos): Replace declaration with that of...
9281 (make_pass_duplicate_computed_gotos): ...new function.
9282 (pass_variable_tracking): Replace declaration with that of...
9283 (make_pass_variable_tracking): ...new function.
9284 (pass_free_cfg): Replace declaration with that of...
9285 (make_pass_free_cfg): ...new function.
9286 (pass_machine_reorg): Replace declaration with that of...
9287 (make_pass_machine_reorg): ...new function.
9288 (pass_cleanup_barriers): Replace declaration with that of...
9289 (make_pass_cleanup_barriers): ...new function.
9290 (pass_delay_slots): Replace declaration with that of...
9291 (make_pass_delay_slots): ...new function.
9292 (pass_split_for_shorten_branches): Replace declaration with that of...
9293 (make_pass_split_for_shorten_branches): ...new function.
9294 (pass_split_before_regstack): Replace declaration with that of...
9295 (make_pass_split_before_regstack): ...new function.
9296 (pass_convert_to_eh_region_ranges): Replace declaration with that
9297 of...
9298 (make_pass_convert_to_eh_region_ranges): ...new function.
9299 (pass_shorten_branches): Replace declaration with that of...
9300 (make_pass_shorten_branches): ...new function.
9301 (pass_set_nothrow_function_flags): Replace declaration with that of...
9302 (make_pass_set_nothrow_function_flags): ...new function.
9303 (pass_dwarf2_frame): Replace declaration with that of...
9304 (make_pass_dwarf2_frame): ...new function.
9305 (pass_final): Replace declaration with that of...
9306 (make_pass_final): ...new function.
9307 (pass_rtl_seqabstr): Replace declaration with that of...
9308 (make_pass_rtl_seqabstr): ...new function.
9309 (pass_release_ssa_names): Replace declaration with that of...
9310 (make_pass_release_ssa_names): ...new function.
9311 (pass_early_inline): Replace declaration with that of...
9312 (make_pass_early_inline): ...new function.
9313 (pass_inline_parameters): Replace declaration with that of...
9314 (make_pass_inline_parameters): ...new function.
9315 (pass_update_address_taken): Replace declaration with that of...
9316 (make_pass_update_address_taken): ...new function.
9317 (pass_convert_switch): Replace declaration with that of...
9318 (make_pass_convert_switch): ...new function.
9319 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
9320 to a subclass of simple_ipa_opt_pass along with...
9321 (pass_data_ipa_tree_profile): ...new pass_data instance and...
9322 (make_pass_ipa_tree_profile): ...new function.
9323 * tree-sra.c (pass_sra_early): Convert from a global struct to a
9324 subclass of gimple_opt_pass along with...
9325 (pass_data_sra_early): ...new pass_data instance and...
9326 (make_pass_sra_early): ...new function.
9327 (pass_sra): Convert from a global struct to a subclass of
9328 gimple_opt_pass along with...
9329 (pass_data_sra): ...new pass_data instance and...
9330 (make_pass_sra): ...new function.
9331 (pass_early_ipa_sra): Convert from a global struct to a subclass of
9332 gimple_opt_pass along with...
9333 (pass_data_early_ipa_sra): ...new pass_data instance and...
9334 (make_pass_early_ipa_sra): ...new function.
9335 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
9336 subclass of gimple_opt_pass along with...
9337 (pass_data_ccp): ...new pass_data instance and...
9338 (make_pass_ccp): ...new function.
9339 (pass_fold_builtins): Convert from a global struct to a subclass of
9340 gimple_opt_pass along with...
9341 (pass_data_fold_builtins): ...new pass_data instance and...
9342 (make_pass_fold_builtins): ...new function.
9343 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
9344 subclass of gimple_opt_pass along with...
9345 (pass_data_copy_prop): ...new pass_data instance and...
9346 (make_pass_copy_prop): ...new function.
9347 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
9348 global struct to a subclass of gimple_opt_pass along with...
9349 (pass_data_rename_ssa_copies): ...new pass_data instance and...
9350 (make_pass_rename_ssa_copies): ...new function.
9351 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
9352 subclass of gimple_opt_pass along with...
9353 (pass_data_dce): ...new pass_data instance and...
9354 (make_pass_dce): ...new function.
9355 (pass_dce_loop): Convert from a global struct to a subclass of
9356 gimple_opt_pass along with...
9357 (pass_data_dce_loop): ...new pass_data instance and...
9358 (make_pass_dce_loop): ...new function.
9359 (pass_cd_dce): Convert from a global struct to a subclass of
9360 gimple_opt_pass along with...
9361 (pass_data_cd_dce): ...new pass_data instance and...
9362 (make_pass_cd_dce): ...new function.
9363 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
9364 subclass of gimple_opt_pass along with...
9365 (pass_data_dominator): ...new pass_data instance and...
9366 (make_pass_dominator): ...new function.
9367 (pass_phi_only_cprop): Convert from a global struct to a subclass of
9368 gimple_opt_pass along with...
9369 (pass_data_phi_only_cprop): ...new pass_data instance and...
9370 (make_pass_phi_only_cprop): ...new function.
9371 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
9372 subclass of gimple_opt_pass along with...
9373 (pass_data_dse): ...new pass_data instance and...
9374 (make_pass_dse): ...new function.
9375 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
9376 a subclass of gimple_opt_pass along with...
9377 (pass_data_forwprop): ...new pass_data instance and...
9378 (make_pass_forwprop): ...new function.
9379 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
9380 struct to a subclass of gimple_opt_pass along with...
9381 (pass_data_tree_ifcombine): ...new pass_data instance and...
9382 (make_pass_tree_ifcombine): ...new function.
9383 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
9384 subclass of gimple_opt_pass along with...
9385 (pass_data_ch): ...new pass_data instance and...
9386 (make_pass_ch): ...new function.
9387 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
9388 subclass of gimple_opt_pass along with...
9389 (pass_data_tree_loop): ...new pass_data instance and...
9390 (make_pass_tree_loop): ...new function.
9391 (pass_tree_loop_init): Convert from a global struct to a subclass of
9392 gimple_opt_pass along with...
9393 (pass_data_tree_loop_init): ...new pass_data instance and...
9394 (make_pass_tree_loop_init): ...new function.
9395 (pass_lim): Convert from a global struct to a subclass of
9396 gimple_opt_pass along with...
9397 (pass_data_lim): ...new pass_data instance and...
9398 (make_pass_lim): ...new function.
9399 (pass_tree_unswitch): Convert from a global struct to a subclass of
9400 gimple_opt_pass along with...
9401 (pass_data_tree_unswitch): ...new pass_data instance and...
9402 (make_pass_tree_unswitch): ...new function.
9403 (pass_predcom): Convert from a global struct to a subclass of
9404 gimple_opt_pass along with...
9405 (pass_data_predcom): ...new pass_data instance and...
9406 (make_pass_predcom): ...new function.
9407 (pass_vectorize): Convert from a global struct to a subclass of
9408 gimple_opt_pass along with...
9409 (pass_data_vectorize): ...new pass_data instance and...
9410 (make_pass_vectorize): ...new function.
9411 (pass_graphite): Convert from a global struct to a subclass of
9412 gimple_opt_pass along with...
9413 (pass_data_graphite): ...new pass_data instance and...
9414 (make_pass_graphite): ...new function.
9415 (pass_graphite_transforms): Convert from a global struct to a subclass
9416 of gimple_opt_pass along with...
9417 (pass_data_graphite_transforms): ...new pass_data instance and...
9418 (make_pass_graphite_transforms): ...new function.
9419 (pass_check_data_deps): Convert from a global struct to a subclass of
9420 gimple_opt_pass along with...
9421 (pass_data_check_data_deps): ...new pass_data instance and...
9422 (make_pass_check_data_deps): ...new function.
9423 (pass_iv_canon): Convert from a global struct to a subclass of
9424 gimple_opt_pass along with...
9425 (pass_data_iv_canon): ...new pass_data instance and...
9426 (make_pass_iv_canon): ...new function.
9427 (pass_scev_cprop): Convert from a global struct to a subclass of
9428 gimple_opt_pass along with...
9429 (pass_data_scev_cprop): ...new pass_data instance and...
9430 (make_pass_scev_cprop): ...new function.
9431 (pass_record_bounds): Convert from a global struct to a subclass of
9432 gimple_opt_pass along with...
9433 (pass_data_record_bounds): ...new pass_data instance and...
9434 (make_pass_record_bounds): ...new function.
9435 (pass_complete_unroll): Convert from a global struct to a subclass of
9436 gimple_opt_pass along with...
9437 (pass_data_complete_unroll): ...new pass_data instance and...
9438 (make_pass_complete_unroll): ...new function.
9439 (pass_complete_unrolli): Convert from a global struct to a subclass of
9440 gimple_opt_pass along with...
9441 (pass_data_complete_unrolli): ...new pass_data instance and...
9442 (make_pass_complete_unrolli): ...new function.
9443 (pass_parallelize_loops): Convert from a global struct to a subclass
9444 of gimple_opt_pass along with...
9445 (pass_data_parallelize_loops): ...new pass_data instance and...
9446 (make_pass_parallelize_loops): ...new function.
9447 (pass_loop_prefetch): Convert from a global struct to a subclass of
9448 gimple_opt_pass along with...
9449 (pass_data_loop_prefetch): ...new pass_data instance and...
9450 (make_pass_loop_prefetch): ...new function.
9451 (pass_iv_optimize): Convert from a global struct to a subclass of
9452 gimple_opt_pass along with...
9453 (pass_data_iv_optimize): ...new pass_data instance and...
9454 (make_pass_iv_optimize): ...new function.
9455 (pass_tree_loop_done): Convert from a global struct to a subclass of
9456 gimple_opt_pass along with...
9457 (pass_data_tree_loop_done): ...new pass_data instance and...
9458 (make_pass_tree_loop_done): ...new function.
9459 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
9460 struct to a subclass of gimple_opt_pass along with...
9461 (pass_data_cse_reciprocals): ...new pass_data instance and...
9462 (make_pass_cse_reciprocals): ...new function.
9463 (pass_cse_sincos): Convert from a global struct to a subclass of
9464 gimple_opt_pass along with...
9465 (pass_data_cse_sincos): ...new pass_data instance and...
9466 (make_pass_cse_sincos): ...new function.
9467 (pass_optimize_bswap): Convert from a global struct to a subclass of
9468 gimple_opt_pass along with...
9469 (pass_data_optimize_bswap): ...new pass_data instance and...
9470 (make_pass_optimize_bswap): ...new function.
9471 (pass_optimize_widening_mul): Convert from a global struct to a
9472 subclass of gimple_opt_pass along with...
9473 (pass_data_optimize_widening_mul): ...new pass_data instance and...
9474 (make_pass_optimize_widening_mul): ...new function.
9475 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
9476 subclass of gimple_opt_pass along with...
9477 (pass_data_phiopt): ...new pass_data instance and...
9478 (make_pass_phiopt): ...new function.
9479 (pass_cselim): Convert from a global struct to a subclass of
9480 gimple_opt_pass along with...
9481 (pass_data_cselim): ...new pass_data instance and...
9482 (make_pass_cselim): ...new function.
9483 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
9484 subclass of gimple_opt_pass along with...
9485 (pass_data_phiprop): ...new pass_data instance and...
9486 (make_pass_phiprop): ...new function.
9487 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
9488 subclass of gimple_opt_pass along with...
9489 (pass_data_pre): ...new pass_data instance and...
9490 (make_pass_pre): ...new function.
9491 (pass_fre): Convert from a global struct to a subclass of
9492 gimple_opt_pass along with...
9493 (pass_data_fre): ...new pass_data instance and...
9494 (make_pass_fre): ...new function.
9495 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
9496 subclass of gimple_opt_pass along with...
9497 (pass_data_reassoc): ...new pass_data instance and...
9498 (make_pass_reassoc): ...new function.
9499 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
9500 subclass of gimple_opt_pass along with...
9501 (pass_data_sink_code): ...new pass_data instance and...
9502 (make_pass_sink_code): ...new function.
9503 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
9504 subclass of gimple_opt_pass along with...
9505 (pass_data_strlen): ...new pass_data instance and...
9506 (make_pass_strlen): ...new function.
9507 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
9508 struct to a subclass of gimple_opt_pass along with...
9509 (pass_data_build_alias): ...new pass_data instance and...
9510 (make_pass_build_alias): ...new function.
9511 (pass_build_ealias): Convert from a global struct to a subclass of
9512 gimple_opt_pass along with...
9513 (pass_data_build_ealias): ...new pass_data instance and...
9514 (make_pass_build_ealias): ...new function.
9515 (pass_ipa_pta): Convert from a global struct to a subclass of
9516 simple_ipa_opt_pass along with...
9517 (pass_data_ipa_pta): ...new pass_data instance and...
9518 (make_pass_ipa_pta): ...new function.
9519 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
9520 subclass of gimple_opt_pass along with...
9521 (pass_data_uncprop): ...new pass_data instance and...
9522 (make_pass_uncprop): ...new function.
9523 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
9524 global struct to a subclass of gimple_opt_pass along with...
9525 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
9526 (make_pass_late_warn_uninitialized): ...new function.
9527 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
9528 to a subclass of gimple_opt_pass along with...
9529 (pass_data_init_datastructures): ...new pass_data instance and...
9530 (make_pass_init_datastructures): ...new function.
9531 (pass_early_warn_uninitialized): Convert from a global struct to a
9532 subclass of gimple_opt_pass along with...
9533 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
9534 (make_pass_early_warn_uninitialized): ...new function.
9535 (pass_update_address_taken): Convert from a global struct to a
9536 subclass of gimple_opt_pass along with...
9537 (pass_data_update_address_taken): ...new pass_data instance and...
9538 (make_pass_update_address_taken): ...new function.
9539 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
9540 struct to a subclass of gimple_opt_pass along with...
9541 (pass_data_release_ssa_names): ...new pass_data instance and...
9542 (make_pass_release_ssa_names): ...new function.
9543 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
9544 subclass of gimple_opt_pass along with...
9545 (pass_data_stdarg): ...new pass_data instance and...
9546 (make_pass_stdarg): ...new function.
9547 * tree-switch-conversion.c (pass_convert_switch): Convert from a
9548 global struct to a subclass of gimple_opt_pass along with...
9549 (pass_data_convert_switch): ...new pass_data instance and...
9550 (make_pass_convert_switch): ...new function.
9551 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
9552 to a subclass of gimple_opt_pass along with...
9553 (pass_data_tail_recursion): ...new pass_data instance and...
9554 (make_pass_tail_recursion): ...new function.
9555 (pass_tail_calls): Convert from a global struct to a subclass of
9556 gimple_opt_pass along with...
9557 (pass_data_tail_calls): ...new pass_data instance and...
9558 (make_pass_tail_calls): ...new function.
9559 * tree-vect-generic.c (pass_lower_vector): Convert from a global
9560 struct to a subclass of gimple_opt_pass along with...
9561 (pass_data_lower_vector): ...new pass_data instance and...
9562 (make_pass_lower_vector): ...new function.
9563 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
9564 gimple_opt_pass along with...
9565 (pass_data_lower_vector_ssa): ...new pass_data instance and...
9566 (make_pass_lower_vector_ssa): ...new function.
9567 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
9568 to a subclass of gimple_opt_pass along with...
9569 (pass_data_slp_vectorize): ...new pass_data instance and...
9570 (make_pass_slp_vectorize): ...new function.
9571 (pass_ipa_increase_alignment): Convert from a global struct to a
9572 subclass of simple_ipa_opt_pass along with...
9573 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
9574 (make_pass_ipa_increase_alignment): ...new function.
9575 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
9576 gimple_opt_pass along with...
9577 (pass_data_vrp): ...new pass_data instance and...
9578 (make_pass_vrp): ...new function.
9579 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
9580 subclass of simple_ipa_opt_pass along with...
9581 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
9582 (make_pass_ipa_free_lang_data): ...new function.
9583 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
9584 gimple_opt_pass along with...
9585 (pass_data_tsan): ...new pass_data instance and...
9586 (make_pass_tsan): ...new function.
9587 (pass_tsan_O0): Convert from a global struct to a subclass of
9588 gimple_opt_pass along with...
9589 (pass_data_tsan_O0): ...new pass_data instance and...
9590 (make_pass_tsan_O0): ...new function.
9591 * var-tracking.c (pass_variable_tracking): Convert from a global
9592 struct to a subclass of rtl_opt_pass along with...
9593 (pass_data_variable_tracking): ...new pass_data instance and...
9594 (make_pass_variable_tracking): ...new function.
9595 * web.c (pass_web): Convert from a global struct to a subclass of
9596 rtl_opt_pass along with...
9597 (pass_data_web): ...new pass_data instance and...
9598 (make_pass_web): ...new function.
9599 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
9600 declaration with that of...
9601 (make_pass_mode_switch_use): ...new function.
9602 (pass_resolve_sw_modes): Replace declaration with that of...
9603 (make_pass_resolve_sw_modes): ...new function.
9604 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
9605 from a global struct to a subclass of rtl_opt_pass along with...
9606 (pass_data_mode_switch_use): ...new pass_data instance and...
9607 (make_pass_mode_switch_use): ...new function.
9608 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
9609 from a global struct to a subclass of rtl_opt_pass along with...
9610 (pass_data_resolve_sw_modes): ...new pass_data instance and...
9611 (make_pass_resolve_sw_modes): ...new function.
9612 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
9613 struct to a subclass of rtl_opt_pass along with...
9614 (pass_data_insert_vzeroupper): ...new pass_data instance and...
9615 (make_pass_insert_vzeroupper): ...new function.
9616 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
9617 global struct to a subclass of rtl_opt_pass along with...
9618 (pass_data_work_around_errata): ...new pass_data instance and...
9619 (make_pass_work_around_errata): ...new function.
9620 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
9621 struct to a subclass of rtl_opt_pass along with...
9622 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
9623 (make_pass_mips_machine_reorg2): ...new function.
9624
6a389ed5
DM
96252013-08-05 David Malcolm <dmalcolm@redhat.com>
9626
9627 * passes.c (pass_manager::operator new): New.
9628
f7695dbf
DM
96292013-08-05 David Malcolm <dmalcolm@redhat.com>
9630
9631 Handwritten part of conversion of passes to C++ classes.
9632
9633 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
9634 (toplev.o): Add dep on PASS_MANAGER_H.
9635 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
9636 of early local pases to reflect this moving from a global to a
9637 member of gcc::pass_manager.
9638 (cgraph_add_new_function): Likewise.
9639 * lto-cgraph.c (lto_output_node): Update for conversion of
9640 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
9641 * passes.c (opt_pass::clone): New.
9642 (opt_pass::gate): New.
9643 (opt_pass::execute): New.
9644 (opt_pass::opt_pass): New.
9645 (pass_manager::execute_early_local_passes): New.
9646 (pass_manager::execute_pass_mode_switching): new.
9647 (finish_optimization_passes): Convert to...
9648 (pass_manager::finish_optimization_passes): ...this.
9649 (finish_optimization_passes): Update for conversion of passes to
9650 C++ classes.
9651 (register_dump_files_1): Use has_gate since we cannot portably
9652 check a vtable entry against NULL.
9653 (dump_one_pass): Likewise.
9654 (ipa_write_summaries_2): Likewise.
9655 (ipa_write_optimization_summaries_1): Likewise.
9656 (ipa_read_summaries_1): Likewise.
9657 (ipa_read_optimization_summaries_1): Likewise.
9658 (execute_ipa_stmt_fixups): Likewise.
9659 (pass_manager::pass_manager): Rewrite pass-creation, invoking
9660 pass-creation functions rather than wiring up globals, and
9661 storing the results in fields of pass_manager generated using
9662 pass-instances.def.
9663 (pass_manager::dump_profile_report): Update for conversion of
9664 passes to C++ classes.
9665 (pass_manager::execute_ipa_summary_passes): Likewise.
9666 (execute_one_ipa_transform_pass): Likewise.
9667 (execute_one_pass): Use has_gate and has_execute since we cannot
9668 portably check a vtable entry against NULL.
9669 * pass_manager.h (pass_manager::finish_optimization_passes): New.
9670 (pass_manager): Use pass-instances.def to add fields for the
9671 various pass instances.
9672 * toplev.c (finalize): Update for move of
9673 finish_optimization_passes to a method of gcc::pass_manager.
9674 * toplev.h (finish_optimization_passes): Move to method of class
9675 pass_manager.
9676 * tree-pass.h (struct pass_data): New.
03b0ee0a 9677 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
9678 (opt_pass::gate): Convert to virtual function.
9679 (opt_pass::~opt_pass): New.
9680 (opt_pass::clone): New.
9681 (opt_pass::execute): Convert to virtual function.
9682 (opt_pass::opt_pass): New.
9683 (opt_pass::ctxt_): new.
9684 (gimple_opt_pass): Convert to subclass of opt_pass.
9685 (gimple_opt_pass::gimple_opt_pass): New.
9686 (rtl_opt_pass): Convert to subclass of opt_pass.
9687 (rtl_opt_pass::rtl_opt_pass): New.
9688 (ipa_opt_pass_d): Convert to subclass of opt_pass.
9689 (ipa_opt_pass_d::ipa_opt_pass_d): New.
9690 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
9691 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
9692 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
9693 invocation of pass_mode_switching to reflect this moving from a
9694 global to a member of gcc::pass_manager.
9695 (ix86_option_override): Rework how pass_insert_vzeroupper is
9696 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 9697 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 9698
d0b2f831
RE
96992013-08-05 Richard Earnshaw <rearnsha@arm.com>
9700
9701 PR rtl-optimization/57708
9702 * recog.c (peep2_find_free_register): Validate all regs in a
9703 multi-reg mode.
9704
51a5c0c2
JH
97052013-08-05 Jan Hubicka <jh@suse.cz>
9706
9707 PR lto/57602
03b0ee0a
UB
9708 * cgraph.c (verify_cgraph_node): Accept local flags from other
9709 partitions.
51a5c0c2
JH
9710 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
9711 (function_and_variable_visibility): Likewise.
9712 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
9713
65f0a120
GDR
97142013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9715
9716 * graph.c (init_graph_slim_pretty_print): Remove.
9717 (print_graph_cfg): Do not call it. Use local pretty printer.
9718 (start_graph_dump): Likewise.
9719
b3f80694
GDR
97202013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9721
9722 * gimple-pretty-print.c (buffer): Remove.
9723 (initialized): Likewise.
9724 (maybe_init_pretty_print): Likewise.
9725 (print_gimple_stmt): Do not call it. Use non-static local
9726 pretty_printer variable.
9727 (print_gimple_expr): Likewise.
9728 (print_gimple_seq): Likewise.
9729 (gimple_dump_bb): Likewise.
9730
11a877b3
GDR
97312013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
9732
9733 * asan.c (asan_pp): Remove.
9734 (asan_pp_initialized): Likewise.
9735 (asan_pp_initialize): Likewise.
9736 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
9737 (asan_emit_stack_protection): Tidy. Use local pretty printer.
9738 (asan_add_global): Likewise.
9739
b066401f
GDR
97402013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
9741
9742 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
9743 * diagnostic.h (diagnostic_flush_buffer): Adjust.
9744 * pretty-print.c (pp_formatted_text_data): Likewise.
9745 (pp_indent): Rename from pp_base_indent.
9746 (pp_format): Rename from pp_base_format.
9747 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
9748 (pp_format_verbatim): Rename from pp_base_format_verbatim.
9749 (pp_flush): Rename from pp_base_flush.
9750 (pp_set_line_maximum_length): Rename from
9751 pp_base_set_line_maximum_length.
9752 (pp_clear_output_area): Rename from pp_base_clear_output_area.
9753 (pp_set_prefix): Rename from pp_base_set_prefix.
9754 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
9755 (pp_emit_prefix): Rename from pp_base_emit_prefix.
9756 (pp_append_text): Rename from pp_base_append_text.
9757 (pp_formatted_text): Rename from pp_base_formatted_text.
9758 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
9759 (pp_remaining_character_count_for_line): Rename from
9760 pp_base_remaining_character_count_for_line.
9761 (pp_newline): Rename from pp_base_newline.
9762 (pp_character): Rename from pp_base_character.
9763 (pp_string): Rename from pp_base_string.
9764 (pp_maybe_space): Rename from pp_base_maybe_space.
9765 * asan.c (asan_pp_string): Adjust.
9766 (asan_emit_stack_protection): Likewise.
9767 (asan_add_global): Likewise.
9768 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
9769 * tree-mudflap.c (mf_varname_tree): Likewise.
9770 * tree-pretty-print.c (pp_tree_identifier): Rename from
9771 pp_base_tree_identifier.
9772 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
9773 Declare as function.
9774
137a1a27
GDR
97752013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
9776
9777 * pretty-print.h (pp_bar_bar): New.
9778 (pp_ampersand_ampersand): Likewise.
9779 (pp_less_equal): Likewise.
9780 (pp_greater_equal): Likewise.
9781 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
9782 printer functions instead of pp_string or operators and punctuators.
9783 (dump_gimple_call): Likewise.
9784 (dump_gimple_omp_for): Likewise.
9785 (dump_gimple_transaction): Likewise.
9786 (dump_gimple_phi): Likewise.
9787 (pp_gimple_stmt_1): Likewise.
9788 * sched-vis.c (print_insn): Likewise.
9789 * tree-mudflap.c (mf_varname_tree): Likewise.
9790 * tree-pretty-print.c (dump_block_node): Likewise.
9791 (dump_generic_node): Likewise.
9792
815effe1
JH
97932013-08-02 Jan Hubicka <jh@suse.cz>
9794
9795 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
9796 boundaries.
9797 * lto-streamer-out.c (tree_is_indexable): Results decls and
9798 parm decls are not indexable.
9799 (DFS_write_tree_body): Do not follow args and results.
9800 (hash_tree): Likewise.
9801 (output_functions): Rearrange so struct function is needed
9802 only when real body is output; be able to also ouptut abstract
9803 functions; output DECL_ARGUMENTS and DECL_RESULT.
9804 (lto_output): When not in WPA, ale store abstract functions.
9805 (write_symbol): Do not care about RESULT_DECL.
9806 (output_symbol_p): Handle correctly sbtract decls.
9807 * lto-streamer-in.c (input_function): Rearrange so struct
9808 function can be NULL at entry; allow streaming of
9809 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
9810 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
9811 sanity check during LTO.
9812 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
9813 RESULT_DECl and DECL_ARGUMENTS.
9814 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
9815 Likewise.
9816
07838b13
GDR
98172013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
9818
9819 * pretty-print.h (pp_underscore): New.
9820 (pp_comma): Tidy.
9821 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
9822 printer functions instead of pp_character.
9823 (dump_binary_rhs): Likewise.
9824 (dump_ternary_rhs): Likewise.
9825 (dump_gimple_call_args): Likewise.
9826 (pp_points_to_solution): Likewise.
9827 (dump_gimple_call): Likewise.
9828 (dump_gimple_switch): Likewise.
9829 (dump_gimple_cond): Likewise.
9830 (dump_gimple_bind): Likewise.
9831 (dump_gimple_try): Likewise.
9832 (dump_gimple_omp_for): Likewise.
9833 (dump_gimple_omp_continue): Likewise.
9834 (dump_gimple_omp_single): Likewise.
9835 (dump_gimple_omp_sections): Likewise.
9836 (dump_gimple_omp_block): Likewise.
9837 (dump_gimple_omp_critical): Likewise.
9838 (dump_gimple_transaction): Likewise.
9839 (dump_gimple_asm): Likewise.
9840 (dump_gimple_phi): Likewise.
9841 (dump_gimple_omp_parallel): Likewise.
9842 (dump_gimple_omp_task): Likewise.
9843 (dump_gimple_omp_atomic_load): Likewise.
9844 (dump_gimple_omp_atomic_store): Likewise.
9845 (dump_gimple_mem_ops): Likewise.
9846 (pp_gimple_stmt_1): Likewise.
9847 (pp_cfg_jump): Likewise.
9848 (dump_implicit_edges): Likewise.
9849 (gimple_dump_bb_for_graph): Likewise.
9850 * graph.c (draw_cfg_node): Likewise.
9851 * langhooks.c (lhd_print_error_function): Likewise.
9852 * sched-vis.c (print_exp): Likewise.
9853 (print_value): Likewise.
9854 (print_pattern): Likewise.
9855 (print_insn): Likewise.
9856 (rtl_dump_bb_for_graph): Likewise.
9857 * tree-pretty-print.c (dump_function_declaration): Likewise.
9858 (dump_array_domain): Likewise.
9859 (dump_omp_clause): Likewise.
9860 (dump_location): Likewise.
9861 (dump_generic_node): Likewise.
9862 (print_struct_decl): Likewise.
9863 * diagnostic.c (diagnostic_show_locus): Use pp_space.
9864
bb0d2039
BS
98652013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9866
9867 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
9868 candidate table when replacing a candidate statement.
9869 (replace_rhs_if_not_dup): Likewise.
9870 (replace_one_candidate): Likewise.
9871
bc0ec027 98722013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 9873 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
9874
9875 * cgraphunit.c (add_new_function): Fix logic when adding from
9876 late IPA pass.
9877 (assemble_thunk): Rename to ...
03b0ee0a
UB
9878 (expand_thunk); .. this one; export; get it working with
9879 general functions; make produced gimple valid.
bc0ec027
JH
9880 * cgraph.h (expand_thunk): Declare.
9881
0e8853ee
JH
98822013-08-02 Jan Hubicka <jh@suse.cz>
9883
03b0ee0a
UB
9884 * ipa-cp.c (gather_context_independent_values): Use
9885 ipa_get_param_move_cost.
9886 (get_replacement_map): Remove PARAM; move parameter folding
9887 into tree-inline.c
0e8853ee
JH
9888 (create_specialized_node): Update.
9889 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
9890 assert that we have gimple body; update move_cost.
9891 (count_formal_params): Assert that we have gimple body.
9892 (ipa_dump_param): New function.
9893 (ipa_alloc_node_params): Break out from ...
9894 (ipa_initialize_node_params): ... here.
9895 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
9896 (ipa_write_node_info): Stream move costs.
9897 (ipa_read_node_info): Read move costs.
9898 (ipa_update_after_lto_read): Do not recompute node params.
9899 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
9900 (ipa_get_param): Check we are not in WPA.
9901 (ipa_get_param_move_cost): New.
9902 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
9903 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
9904 parm numbers to be present.
9905
ecee672b
VM
99062013-08-02 Vladimir Makarov <vmakarov@redhat.com>
9907
9908 PR rtl-optimization/58048
9909 * lra-constraints.c (process_alt_operands): Don't check asm
9910 operand on register.
9911
13ec0527
EB
99122013-08-02 Eric Botcazou <ebotcazou@adacore.com>
9913
9914 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
9915 the implied StoreLoad barrier for atomic operations if before.
9916
af15184a
JH
99172013-08-02 Jan Hubicka <jh@suse.cz>
9918 Martin Liska <marxin.liska@gmail.com>
9919
03b0ee0a
UB
9920 * cgraph.c (cgraph_function_body_availability): Do not check
9921 cgraph flags.
af15184a
JH
9922 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
9923 symtab_node_availability): Declare.
9924 * ipa.c (can_replace_by_local_alias): New.
9925 (function_and_variable_visibility): Use it.
03b0ee0a
UB
9926 * symtab.c (symtab_for_node_and_aliases,
9927 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 9928
01e54ef8
VM
99292013-08-02 Vladimir Makarov <vmakarov@redhat.com>
9930
9931 PR rtl-optimization/57963
03b0ee0a 9932 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
9933 (lra_constraints): Use them.
9934
e2fd7ca7
SN
99352013-08-02 Sofiane Naci <sofiane.naci@arm.com>
9936
03b0ee0a
UB
9937 * config/arm/types.md (define_attr "type"): Add "load_acq"
9938 and "store_rel".
e2fd7ca7
SN
9939 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
9940 changes.
9941 (cortex_a53_store1): Likewise.
9942
0dcc26c3
JH
99432013-08-01 Jan Hubicka <jh@suse.cz>
9944
03b0ee0a
UB
9945 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
9946 partitions are not needed.
0dcc26c3 9947
0bd72901
UB
99482013-08-01 Uros Bizjak <ubizjak@gmail.com>
9949
9950 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
9951 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
9952 MAYBE_NON_Q_CLASS_P where appropriate.
9953
12123452
JH
99542013-08-01 Jan Hubicka <jh@suse.cz>
9955
9956 * cgraph.h (release_function_body): Declare.
9957 * tree.c (free_lang_data_in_decl): Free, parameters and return values
9958 of unused delcarations.
9959
ce852f9c
KT
99602013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9961
03b0ee0a
UB
9962 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
9963 RTL form when subtracting a constant.
ce852f9c 9964
c743b246
KT
99652013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9966
9967 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
9968 Generate canonical plus rtx with negated immediate instead of minus
9969 where appropriate.
9970 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
9971
c0c123ef
JH
99722013-08-01 Jan Hubicka <jh@suse.cz>
9973
9974 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
9975 (cgraph_release_function_body): Likewise.
9976 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
9977 * cgraph.h (cgrpah_node): Rename abstract_and_needed
9978 to used_as_abstract_origin.
9979 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
9980 symbols used as abstract origins.
9981 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
9982 * ipa.c (symtab_remove_unreachable_nodes): Recompute
9983 used_as_abstract_origin.
c0c123ef 9984 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
9985 used_as_abstract_origin; be ready for DECL_RESULT and
9986 DECL_ARGUMENTS to be NULL.
c0c123ef 9987
0bd72901
UB
9988 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
9989 for abstract functions.
9990 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
9991 real symbols.
c0c123ef 9992
1f029433
JH
99932013-08-01 Jan Hubicka <jh@suse.cz>
9994
9995 * profile.c (compute_value_histograms): Fix thinko.
9996
c451f4d6
SN
99972013-08-01 Sofiane Naci <sofiane.naci@arm.com>
9998
9999 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
10000 aarch-common-protos.h to extra_headers.
10001 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
10002 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
10003 * config/aarch64/t-aarch64 (aarch-common.o): Define.
10004
34b512f5
SN
100052013-08-01 Sofiane Naci <sofiane.naci@arm.com>
10006
10007 * config/aarch64/aarch64.md (define_attr "type"): Delete.
10008 Include "../arm/types.md". Define "type" attribute for all patterns.
10009 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
10010 attribute changes.
10011
d86e633a
MM
100122013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
10013
10014 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
10015 to support power8 load fusion.
10016 (fusion_gpr_mem_load): Likewise.
10017
10018 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
10019
10020 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
10021 declarations for power8 load fusion.
10022 (emit_fusion_gpr_load): Likewise.
10023
10024 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
10025 tuning for power8, turn on fusion mode by default. Turn on sign
10026 extending fusion mode if normal fusion mode is on, and we are at
10027 -O2 or -O3.
10028 (fusion_gpr_load_p): New function, return true if we can fuse an
10029 addis instruction with a dependent load to a GPR.
10030 (emit_fusion_gpr_load): Emit the instructions for power8 load
10031 fusion to GPRs.
10032
0bd72901 10033 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
10034 (VSX load fusion peepholes): New peepholes to fuse together an
10035 addi instruction with a VSX load instruction.
10036
10037 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
10038 peepholes to fuse an addis instruction with a load to a GPR base
10039 register. If we are supporting sign extending fusions, convert
10040 sign extending loads to zero extending loads and add an explicit
10041 sign extension.
10042
c3f35647
SN
100432013-07-31 Sofiane Naci <sofiane.naci@arm.com>
10044
10045 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
10046 aarch-common-protos.h to extra_headers.
10047 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
10048 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
10049 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
10050 (arm_no_early_alu_shift_dep): Likewise.
10051 (arm_no_early_alu_shift_value_dep): Likewise.
10052 (arm_no_early_mul_dep): Likewise.
10053 (arm_no_early_store_addr_dep): Likewise.
10054 (arm_mac_accumulator_is_mul_result): Likewise.
10055 (arm_mac_accumulator_is_result): Likewise.
c3f35647 10056 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
10057 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
10058 here to ...
c3f35647 10059 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
10060 (arm_no_early_alu_shift_dep): Likewise.
10061 (arm_no_early_alu_shift_value_dep): Likewise.
10062 (arm_no_early_mul_dep): Likewise.
10063 (arm_no_early_store_addr_dep): Likewise.
10064 (arm_mac_accumulator_is_mul_result): Likewise.
10065 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
10066 * config/arm/aarch-common-protos.h: ... here. New file.
10067 * config/arm/t-arm (aarch-common.o): Define.
10068
100692013-07-31 Sofiane Naci <sofiane.naci@arm.com>
10070
10071 * config/arm/arm.md: Include new file "types.md".
10072 (define_attr "type"): Move from here to ...
10073 (define_attr "mul32"): Likewise.
10074 (define_attr "mul64"): Likewise.
10075 * config/arm/types.md: ... here. New file.
10076
228c1313
SH
100772013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
10078
10079 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
10080 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
10081
d6e9046d 100822013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
10083
10084 * gen-pass-instances.awk: Fix offset of substr().
10085
a167b052
DM
100862013-07-31 David Malcolm <dmalcolm@redhat.com>
10087
10088 * Makefile.in (pass-instances.def): New.
10089 (passes.o): Replace dependency on passes.def with one on
10090 pass-instances.def
10091
10092 * gen-pass-instances.awk: New.
10093
10094 * passes.c (pass_manager::pass_manager): Use pass-instances.def
10095 rather than passes.def, updating local definition of NEXT_PASS
10096 macro to add an extra NUM parameter (currently unused).
10097
315f8c0e
DM
100982013-07-30 David Malcolm <dmalcolm@redhat.com>
10099
10100 * Makefile.in (PASS_MANAGER_H): New.
10101 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
10102 (passes.o): Likewise.
10103 (statistics.o): Likewise.
10104 (cgraphunit.o): Likewise.
10105 (context.o): Depend on PASS_MANAGER_H.
10106
10107 * pass_manager.h: New.
10108
10109 * cgraphunit.c (cgraph_add_new_function): Update for moves
10110 of globals to fields of pass_manager.
10111 (analyze_function): Likewise.
10112 (expand_function): Likewise.
10113 (ipa_passes): Likewise.
10114 (compile): Likewise.
10115
10116 * context.c (context::context): New.
10117 * context.h (context::context): New.
10118 (context::get_passes): New.
10119 (context::passes_): New.
10120
10121 * lto-cgraph.c (input_node): Update for moves of globals to
10122 fields of pass_manager.
10123
10124 * passes.c (all_passes): Remove, in favor of a field of the
10125 same name within the new class pass_manager.
10126 (all_small_ipa_passes): Likewise.
10127 (all_lowering_passes): Likewise.
10128 (all_regular_ipa_passes): Likewise.
10129 (all_late_ipa_passes): Likewise.
10130 (all_lto_gen_passes): Likewise.
10131 (passes_by_id): Likewise.
10132 (passes_by_id_size): Likewise.
10133 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10134 the new class pass_manager.
10135 (set_pass_for_id): Convert to...
10136 (pass_manager::set_pass_for_id): ...method.
10137 (get_pass_for_id): Convert to...
10138 (pass_manager::get_pass_for_id): ...method.
10139 (register_one_dump_file): Move body of implementation into...
10140 (pass_manager::register_one_dump_file): ...here.
10141 (register_dump_files_1): Convert to...
10142 (pass_manager::register_dump_files_1): ...method.
10143 (register_dump_files): Convert to...
10144 (pass_manager::register_dump_files): ...method.
10145 (create_pass_tab): Update for moves of globals to fields of
10146 pass_manager.
10147 (dump_passes): Move body of implementation into...
10148 (pass_manager::dump_passes): ...here.
10149 (register_pass): Move body of implementation into...
10150 (pass_manager::register_pass): ...here.
10151 (init_optimization_passes): Convert into...
10152 (pass_manager::pass_manager): ...constructor for new
10153 pass_manager class, and initialize the pass_lists array.
10154 (check_profile_consistency): Update for moves of globals to
10155 fields of pass_manager.
10156 (dump_profile_report): Move body of implementation into...
10157 (pass_manager::dump_profile_report): ...here.
10158 (ipa_write_summaries_1): Update for moves of pass lists from
10159 being globals to fields of pass_manager.
10160 (ipa_write_optimization_summaries): Likewise.
10161 (ipa_read_summaries): Likewise.
10162 (ipa_read_optimization_summaries): Likewise.
10163 (execute_all_ipa_stmt_fixups): Likewise.
10164
10165 * statistics.c (statistics_fini): Update for moves of globals to
10166 fields of pass_manager.
10167
10168 * toplev.c (general_init): Replace call to
10169 init_optimization_passes with construction of the pass_manager
10170 instance.
10171
10172 * tree-pass.h (all_passes): Remove, in favor of a field of the
10173 same name within the new class pass_manager.
10174 (all_small_ipa_passes): Likewise.
10175 (all_lowering_passes): Likewise.
10176 (all_regular_ipa_passes): Likewise.
10177 (all_lto_gen_passes): Likewise.
10178 (all_late_ipa_passes): Likewise.
10179 (passes_by_id): Likewise.
10180 (passes_by_id_size): Likewise.
10181 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
10182 the new class pass_manager.
10183 (get_pass_for_id): Remove.
10184
02cab1c1
RE
101852013-07-30 Richard Earnshaw <rearnsha@arm.com>
10186
10187 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
10188 configs.
10189
b2d3f886
RE
101902013-07-30 Richard Earnshaw <rearnsha@arm.com>
10191
10192 * arm.md (mulhi3): New expand pattern.
10193
605e86fa
JH
101942013-07-30 Jan Hubicka <jh@suse.cz>
10195 Martin Liska <marxin.liska@gmail.com>
10196
10197 * profile.c (compute_value_histograms): Do not ICE when
10198 there is mismatch only on some counters.
10199
14a87636
ZC
102002013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10201
10202 PR rtl-optimization/57637
10203 * function.c (move_insn_for_shrink_wrap): Also check the
10204 GEN set of the LIVE problem for the liveness analysis
10205 if it exists, otherwise give up.
10206
0100cd3f
BS
102072013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10208
10209 PR tree-optimization/57993
10210 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
10211 replaced statement in the candidate table.
10212 (phi_add_costs): Return infinite cost when the hidden basis does
10213 not dominate all phis on which the candidate is dependent.
10214 (replace_one_candidate): Record replaced statement in the
10215 candidate table.
10216
f0d811f7
JR
102172013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
10218
10219 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
10220 (ashlv2si3): New expander.
10221 (*ashlv2si3_i): New define_insn_and_split.
10222 * predicates.md (float_operation): Allow patterns with three
10223 basic sub-patterns.
10224
bba33211
JR
10225 PR rtl-optimization/58021
10226 * mode-switching.c (create_pre_exit): Always split off preceding
10227 insns if we are not at the basic block head.
10228
ff3f3951
MR
102292013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
10230
10231 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
10232 (UCLIBC_DYNAMIC_LINKER): New macro.
10233 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
10234 `-mnan=2008'.
10235 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
10236 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
10237 `-mnan=2008'.
10238 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
10239 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
10240 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
10241 for SF and DF modes. Use ieee_quad_format for TF mode.
10242 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
10243 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
10244 (mips_option_override): Handle `-mnan=legacy'.
10245 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
10246 `-mabs=2008' and `-mnan=2008'.
10247 (OPTION_DEFAULT_SPECS): Add "nan" default.
10248 (ASM_SPEC): Handle `-mnan='.
10249 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
10250 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
10251 comment accordingly.
10252 (neg<mode>2): Likewise.
10253 * config/mips/mips.opt (mabs, mnan): New options.
10254 * doc/install.texi (Configuration): Document `--with-nan=' option.
10255 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
10256 `-mnan=' options.
10257 (MIPS Options): Document them.
10258 * config.gcc <mips*-*-*>: Handle `--with-nan='.
10259 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
10260 * configure: Regenerate.
10261 * config.in: Regenerate.
10262
576e2f37
UB
102632013-07-29 Uros Bizjak <ubizjak@gmail.com>
10264
10265 * config/i386/i386.md (float post-reload splitters): Do not check
10266 for subregs of SSE registers.
10267
102682013-07-29 Uros Bizjak <ubizjak@gmail.com>
10269 H.J. Lu <hongjiu.lu@intel.com>
10270
10271 PR target/57954
10272 PR target/57988
10273 * config/i386/i386.md (post-reload splitter
10274 to avoid partial SSE reg dependency stalls): New pattern.
10275
a71f0749
DV
102762013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10277
10278 * config/s390/s390.md ("movcc"): Swap load and store instructions.
10279
4c97f1cc
JR
102802013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
10281
10282 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
10283 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
10284
b0c733d8
CC
102852013-07-26 Cary Coutant <ccoutant@google.com>
10286
10287 * dwarf2out.c (die_checksum_ordered): Don't include template
10288 instantiations in signature.
10289 (is_template_parameter): New function.
10290 (is_template_instantiation): New function.
10291 (generate_skeleton_bottom_up): Don't include template instantiations
10292 in type unit DIE.
10293 (generate_skeleton): Likewise.
10294 (break_out_comdat_types): Move recursive call to break out nested
10295 types earlier.
10296 (prune_unused_types_mark_generic_parms_dies): Call
10297 is_template_parameter.
10298
040d8a1c
IB
102992013-07-26 Ian Bolton <ian.bolton@arm.com>
10300
10301 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
10302 uses vector registers.
89fdc743 10303 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 10304
85bd4ac6 103052013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 10306 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
10307
10308 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 10309 where appropriate.
85bd4ac6
KT
10310 * config/arm/arm.md (movcond_addsi): New splitter.
10311
b6051207
SA
103122013-07-25 Sterling Augustine <saugustine@google.com>
10313
10314 * dwarf2out.c (size_of_pubnames): Move code to...
10315 (include_pubname_in_output): ...here. New.
10316 (want_pubnames): Rearrange.
10317 (output_pubnames): Call include_pubname_in_output. Move assertion.
10318
41a7c215
CM
103192013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10320
10321 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
10322
103232013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
10324
10325 PR target/38836
10326 * doc/extend.texi: Remove obsolete builtins. Fix
10327 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
10328
49bde175
JH
103292013-07-25 Jan Hubicka <jh@suse.cz>
10330
10331 * cgraph.c (release_function_body): Break out from ...
10332 (cgraph_release_function_body): ... this one; also release DECL_RESULT
10333 and DECL_ARGUMENTS.
10334 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
10335 old_tree in the map.
10336 (create_specialized_node): Update.
10337 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
10338 into index.
41a7c215
CM
10339 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
10340 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
10341 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
10342 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
10343 DECL_RESULT.
10344
4870352d
KT
103452013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10346
10347 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
10348 addsi3_carryin_alt2_<optab>): Correct output template.
10349
1d6aee1c
KT
103502013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10351
10352 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
10353 Adjust for arm_restrict_it.
10354 Remove trailing whitespace.
10355
c7cafd75
MK
103562013-07-25  Mark Kettenis  <kettenis@openbsd.org>
10357
017d38f5
MK
10358 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
10359 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
10360
c7cafd75
MK
10361 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
10362
00b7527b
VM
103632013-07-25 Vladimir Makarov <vmakarov@redhat.com>
10364
10365 PR rtl-optimization/57960
10366 * lra-constraints.c (process_alt_operands): Use the right mode
10367 when checking strict_low.
10368
4f63dfc6
JH
103692013-07-25 Jan Hubicka <jh@suse.cz>
10370
10371 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
10372 * cgraph.c (cgraph_remove_node): Do not release function body
10373 when in cgraph streaming.
10374 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
10375 in other partitions are not considered reachable; fix handling of
10376 clones.
4f63dfc6 10377
e6dcfa18
RR
103782013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10379
10380 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
10381
0b93d3b6
RR
103822013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10383
10384 PR target/19599
10385 PR target/57731
bb80c2eb 10386 PR target/57837
e6dcfa18 10387 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 10388 Ss with US. Adjust output for v5 and v4t.
41a7c215 10389 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 10390
0b93d3b6
RR
10391 * config/arm/constraints.md ("Ss"): Rename to US.
10392
690688b3
TG
103932013-07-25 Terry Guo <terry.guo@arm.com>
10394
10395 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
10396 shift_add/shift_sub0/shift_sub1 RTXs.
10397
a4ad093b 103982013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 10399 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
10400
10401 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
10402 (altivec_vpks<VI_char>ss): Likewise.
10403 (altivec_vpks<VI_char>us): Likewise.
10404 (altivec_vpku<VI_char>us): Likewise.
10405 (altivec_vpku<VI_char>um): Likewise.
10406
8c5005ce
DM
104072013-07-24 David Malcolm <dmalcolm@redhat.com>
10408
10409 Introduce context class.
10410
10411 * Makefile.in (CONTEXT_H): New.
10412 (OBJS): Add context.o.
10413 (toplev.o): Add CONTEXT_H to dependencies.
10414 (context.o): New.
10415
41a7c215 10416 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
10417
10418 * context.c: New.
10419
10420 * context.h: New.
10421
ce4a9422
JR
104222013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
10423
10424 PR rtl-optimization/57968
10425 * mode-switching.c (create_pre_exit): Allow instructions that
10426 don't set a return register to need a non-exit mode.
10427
493f4c9e 104282013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10429 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 10430
b5860fd3
WS
10431 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
10432 operands to vperm for little endian.
10433 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
10434 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 10435
73792b92 104362013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10437 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
10438
10439 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
10440 two operands for little-endian.
10441
14c21302
SE
104422013-07-23 Steve Ellcey <sellcey@mips.com>
10443
10444 * config/mips/mips.c (mips_case_values_threshold): New.
10445 (TARGET_CASE_VALUES_THRESHOLD): Define.
10446
a6056198 104472013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 10448 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
10449
10450 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
10451 selection of field for vector splat in little endian mode.
10452
dd7a40e1
MM
104532013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10454
10455 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
10456 expanders to rs6000.md.
10457 (ior<mode>3): Likewise.
10458 (and<mode>3): Likewise.
10459 (one_cmpl<mode>2): Likewise.
10460 (nor<mode>3): Likewise.
10461 (andc<mode>3): Likewise.
10462 (eqv<mode>3): Likewise.
10463 (nand<mode>3): Likewise.
10464 (orc<mode>3): Likewise.
10465
10466 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
10467 declaration.
10468
10469 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
10470 to split multi-word logical operations.
10471 (rs6000_split_logical_di): Likewise.
10472 (rs6000_split_logical): Likewise.
10473
10474 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
10475 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
10476 and allow TImode operations in 32-bit.
10477 (vsx_and<mode>3_64bit): Likewise.
10478 (vsx_ior<mode>3_32bit): Likewise.
10479 (vsx_ior<mode>3_64bit): Likewise.
10480 (vsx_xor<mode>3_32bit): Likewise.
10481 (vsx_xor<mode>3_64bit): Likewise.
10482 (vsx_one_cmpl<mode>2_32bit): Likewise.
10483 (vsx_one_cmpl<mode>2_64bit): Likewise.
10484 (vsx_nor<mode>3_32bit): Likewise.
10485 (vsx_nor<mode>3_64bit): Likewise.
10486 (vsx_andc<mode>3_32bit): Likewise.
10487 (vsx_andc<mode>3_64bit): Likewise.
10488 (vsx_eqv<mode>3_32bit): Likewise.
10489 (vsx_eqv<mode>3_64bit): Likewise.
10490 (vsx_nand<mode>3_32bit): Likewise.
10491 (vsx_nand<mode>3_64bit): Likewise.
10492 (vsx_orc<mode>3_32bit): Likewise.
10493 (vsx_orc<mode>3_64bit): Likewise.
10494
10495 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
10496 logical types in GPRs.
10497
10498 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
10499 logical insns to rs6000.md, and allow TImode operations in
10500 32-bit.
10501 (altivec_ior<mode>3): Likewise.
10502 (altivec_xor<mode>3): Likewise.
10503 (altivec_one_cmpl<mode>2): Likewise.
10504 (altivec_nor<mode>3): Likewise.
10505 (altivec_andc<mode>3): Likewise.
10506
10507 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
10508 attributes for moving the 128-bit logical operations into
10509 rs6000.md.
10510 (BOOL_REGS_OUTPUT): Likewise.
10511 (BOOL_REGS_OP1): Likewise.
10512 (BOOL_REGS_OP2): Likewise.
10513 (BOOL_REGS_UNARY): Likewise.
10514 (BOOL_REGS_AND_CR0): Likewise.
10515 (one_cmpl<mode>2): Add support for DI logical operations on
10516 32-bit, splitting the operations to 32-bit.
10517 (anddi3): Likewise.
10518 (iordi3): Likewise.
10519 (xordi3): Likewise.
10520 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
10521 changes to combine the 32/64-bit code, allow logical operations on
10522 TI mode in 32-bit, and to use similar match_operator patterns like
10523 scalar mode uses. Combine the Altivec and VSX code for logical
10524 operations, and move it here.
10525 (ior<mode>3, 128-bit types): Likewise.
10526 (xor<mode>3, 128-bit types): Likewise.
10527 (one_cmpl<mode>3, 128-bit types): Likewise.
10528 (nor<mode>3, 128-bit types): Likewise.
10529 (andc<mode>3, 128-bit types): Likewise.
10530 (eqv<mode>3, 128-bit types): Likewise.
10531 (nand<mode>3, 128-bit types): Likewise.
10532 (orc<mode>3, 128-bit types): Likewise.
10533 (and<mode>3_internal): Likewise.
10534 (bool<mode>3_internal): Likewise.
10535 (boolc<mode>3_internal1): Likewise.
10536 (boolc<mode>3_internal2): Likewise.
10537 (boolcc<mode>3_internal1): Likewise.
10538 (boolcc<mode>3_internal2): Likewise.
10539 (eqv<mode>3_internal1): Likewise.
10540 (eqv<mode>3_internal2): Likewise.
10541 (one_cmpl1<mode>3_internal): Likewise.
10542
12211b99 105432013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
10544
10545 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10546 Rename flag_stack_usage to flag_stack_usage_info.
10547
12211b99 105482013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 10549
a5f257fd
ME
10550 * config/microblaze/sync.md: New file.
10551 * config/microblaze/microblaze.md: Include sync.md
10552 * config/microblaze/microblaze.c: Add print_operand 'y'.
10553 * config/microblaze/constraints.md: Add memory_contraint
10554 'Q' which is a single register.
450b0ebb 10555
49fba14f
EB
105562013-07-23 Eric Botcazou <ebotcazou@adacore.com>
10557
10558 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
10559
c7b3b99f
PCC
105602013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
10561
10562 * reload.c (find_reloads): Exit loop once we find this operand
10563 cannot be reloaded somehow for this alternative.
10564
10565 * reload.c (find_reloads): Exit loop once we find a hard register.
10566
10567 * rtlanal.c (computed_jump_p): Exit loop once we find label
10568 reference is used.
10569
10570 * i386.c (ix86_pad_returns): Exit loop after setting replace.
10571
10572 * cfgloopmanip.c (remove_path): Exit loop after setting
10573 irred_invalidated.
10574
10575 * gensupport.c (subst_dup): Avoid loop if code is not
10576 MATCH_DUP nor MATCH_OP_DUP.
10577
c8fbf1fa
NBJ
105782013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
10579
10580 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
10581
9259db42
YZ
105822013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10583
10584 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
10585 true for SP_REGNUM if mode == ptr_mode.
10586 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
10587 with value R0_REGNUM + 31.
10588
00edcfbe
YZ
105892013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10590
10591 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
10592 pad pointer-typed argument downward.
10593
43be9a95
YZ
105942013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10595
10596 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
10597 and __ILP32__ when the ILP32 model is in use.
10598
28514dda
YZ
105992013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10600
10601 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
10602 (aarch64_load_symref_appropriately): In the case of
10603 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
10604 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
10605 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
10606 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
10607 if 'mode' doesn't equal to 'ptr_mode'.
10608 (aarch64_output_mi_thunk): Add an assertion on the alignment of
10609 'vcall_offset'; change to call aarch64_emit_move differently depending
10610 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
10611 to calculate the upper bound of 'vcall_offset'.
10612 (aarch64_cannot_force_const_mem): Change to also return true if
10613 mode != ptr_mode.
10614 (aarch64_legitimize_reload_address): In the case of large
10615 displacements, add new local variable 'xmode' and an assertion
10616 based on it; change to use 'xmode' to generate the new rtx and
10617 reload.
10618 (aarch64_asm_trampoline_template): Change to generate the template
10619 differently depending on TARGET_ILP32 or not; change to use
10620 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
10621 (aarch64_trampoline_size): Removed.
10622 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
10623 and replace immediate literals with it. Change to use 'ptr_mode'
10624 instead of 'DImode' and call convert_memory_address if the mode
10625 of 'fnaddr' doesn't equal to 'ptr_mode'.
10626 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
10627 to output symbol.
10628 (aarch64_elf_asm_destructor): Likewise.
10629 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
10630 on TARGET_ILP32 instead of aarch64_trampoline_size.
10631 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
10632 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
10633 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
10634 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
10635 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
10636 (storewb_pair<GPI:mode>_<P:mode>): ... this.
10637 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
10638 depending on the value of 'mode'.
10639 (add_losym_<mode>): New.
10640 (ldr_got_small_<mode>): New, based on ldr_got_small.
10641 (ldr_got_small): Remove.
10642 (ldr_got_small_sidi): New.
10643 * config/aarch64/iterators.md (P): New.
10644 (PTR): Change to 'ptr_mode' in the condition.
10645
17a819cb
YZ
106462013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
10647
10648 * config.gcc (aarch64*-*-*): Support --with-abi.
10649 (aarch64*-*-elf): Support --with-multilib-list.
10650 (aarch64*-*-linux*): Likewise.
10651 (supported_defaults): Add abi to aarch64*-*-*.
10652 * configure.ac: Mention AArch64 for --with-multilib-list.
10653 * configure: Re-generated.
10654 * config/aarch64/biarchilp32.h: New file.
10655 * config/aarch64/biarchlp64.h: New file.
10656 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
10657 (ABI_SPEC): Ditto.
10658 (MULTILIB_DEFAULTS): Ditto.
10659 (DRIVER_SELF_SPECS): Ditto.
10660 (ASM_SPEC): Update to also substitute -mabi.
10661 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
10662 file whose name depends on -mabi= and -mbig-endian.
10663 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
10664 TARGET_ILP32.
10665 (POINTER_SIZE): New define.
10666 (POINTERS_EXTEND_UNSIGNED): Ditto.
10667 (enum aarch64_abi_type): New enumeration tag.
10668 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
10669 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
10670 (TARGET_ILP32): New define.
10671 * config/aarch64/aarch64.opt (mabi): New.
10672 (aarch64_abi): New.
10673 (ilp32, lp64): New values for -mabi.
10674 * config/aarch64/t-aarch64 (comma): New define.
10675 (MULTILIB_OPTIONS): Ditto.
10676 (MULTILIB_DIRNAMES): Ditto.
10677 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
10678 * doc/invoke.texi: Document -mabi for AArch64.
10679
9f9cbdce
GJL
106802013-07-23 Georg-Johann Lay <avr@gjlay.de>
10681
10682 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
10683
7061977b 106842013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 10685 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
10686
10687 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
10688 endianness when selecting field to splat.
10689
75a41878
EC
106902013-07-22 Eric Christopher <echristo@gmail.com>
10691
10692 * dwarf2out.c (die_odr_checksum): New function to use
10693 CHECKSUM_ macros and ULEB128 for DIE tag.
10694 (generate_type_signature): Use.
41a7c215 10695
38ae58ca
EB
106962013-07-22 Eric Botcazou <ebotcazou@adacore.com>
10697
10698 * config.gcc (sparc*-*-*): Accept leon3 processor.
10699 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
10700 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
10701 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
10702 * config/sparc/sparc.opt (enum processor_type): Add leon3.
10703 (mfix-ut699): Adjust comment.
10704 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
10705 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
10706 (CPP_CPU_SPEC): Likewise.
10707 (ASM_CPU_SPEC): Likewise.
10708 * config/sparc/sparc.c (leon3_cost): New constant.
10709 (sparc_option_override): Add leon3 support.
10710 (mem_ref): New function.
10711 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
10712 (sparc_do_work_around_errata): Look into the instruction in the delay
10713 slot and adjust accordingly. Add fix for the data cache nullify issues
10714 of the UT699. Change insertion position for the NOP.
10715 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
10716 (leon3_load): New reservation.
10717 (leon_store): Bump latency to 2.
10718 (grfpu): New automaton.
10719 (grfpu_alu): New unit.
10720 (grfpu_ds): Likewise.
10721 (leon_fp_alu): Adjust.
10722 (leon_fp_mult): Delete.
10723 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
10724 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
10725 * config/sparc/sparc.md (cpu): Add leon3.
10726 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
10727 (swapsi): Likewise.
10728 (atomic_test_and_set): Likewise.
10729 (ldstub): Likewise.
10730
04dfc6df
JU
107312013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
10732
10733 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
10734 default for R5900 targets.
10735 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
10736 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
10737 * config/mips/mips.c (mips_option_override): Report an error for
10738 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
10739 for -march=r5900 -mhard-float.
10740
c7b3b99f 107412013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
10742
10743 * df-problems.c (can_move_insns_across): Exit loop once we
10744 find a non-fixed, non-global register.
10745
10746 * ipa-pure-const.c (propagate_nothrow): Exit loop after
10747 setting can_throw.
10748
10749 * omega.c (omega_eliminate_red): Break after setting red_found.
10750 (omega_problem_has_red_equations): Similarly after setting found.
10751 (omega_query_variable): Similarly after setting coupled.
10752
9b6e6981
MP
107532013-07-22 Marek Polacek <polacek@redhat.com>
10754
10755 * gimplify.c: Don't include gimple.h twice.
10756
5e5f7673
KT
107572013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10758
10759 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
10760 instead of TARGET_THUMB1.
10761 (Pz): New constraint.
10762 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
10763 encodings.
10764 (compare_negsi_si): Likewise.
10765 (compare_addsi2_op0): Likewise.
10766 (compare_addsi2_op1): Likewise.
10767 (addsi3_carryin_<optab>): Likewise.
10768 (addsi3_carryin_alt2_<optab>): Likewise.
10769 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
10770 for arm_restrict_it.
10771 (subsi3_carryin): Likewise.
10772 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
10773 (minmax_arithsi): Disable for arm_restrict_it.
10774 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
10775 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
10776 (satsi_<SAT:code>_shift): Likewise.
10777 (arm_shiftsi3): Add alternative for 16-bit encoding.
10778 (arm32_movhf): Disable for arm_restrict_it.
10779 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
10780 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
10781
859abddd
SN
107822013-07-22 Sofiane Naci <sofiane.naci@arm.com>
10783
10784 * config/arm/arm.md (attribute "insn"): Delete.
10785 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
10786 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
10787 (not_shiftsi): Update for attribute change.
10788 (not_shiftsi_compare0): Likewise.
10789 (not_shiftsi_compare0_scratch): Likewise.
10790 (arm_one_cmplsi2): Likewise.
10791 (thumb1_one_cmplsi2): Likewise.
10792 (notsi_compare0): Likewise.
10793 (notsi_compare0_scratch): Likewise.
10794 (thumb1_movdi_insn): Likewise.
10795 (arm_movsi_insn): Likewise.
10796 (movhi_insn_arch4): Likewise.
10797 (movhi_bytes): Likewise.
10798 (arm_movqi_insn): Likewise.
10799 (thumb1_movqi_insn): Likewise.
10800 (arm32_movhf): Likewise.
10801 (thumb1_movhf): Likewise.
10802 (arm_movsf_soft_insn): Likewise.
10803 (thumb1_movsf_insn): Likewise.
10804 (thumb_movdf_insn): Likewise.
10805 (movsicc_insn): Likewise.
10806 (movsfcc_soft_insn): Likewise.
10807 (and_scc): Likewise.
10808 (cond_move): Likewise.
10809 (if_move_not): Likewise.
10810 (if_not_move): Likewise.
10811 (if_shift_move): Likewise.
10812 (if_move_shift): Likewise.
10813 (if_shift_shift): Likewise.
10814 (if_not_arith): Likewise.
10815 (if_arith_not): Likewise.
10816 (cond_move_not): Likewise.
10817 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
10818 (neon_mov<mode>): Likewise.
10819 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
10820 (thumb2_movsi_vfp): Likewise.
10821 (movsf_vfp): Likewise.
10822 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
10823 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
10824 change.
859abddd
SN
10825 (cortexa7_older_only): Likewise.
10826 (cortexa7_younger): Likewise.
10827 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
10828 (1020alu_shift_op): Likewise.
10829 (1020alu_shift_reg_op): Likewise.
10830 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
10831 (alu_shift_op): Likewise.
10832 (alu_shift_reg_op): Likewise.
10833 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
10834 (11_alu_shift_op): Likewise.
10835 (11_alu_shift_reg_op): Likewise.
10836 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
10837 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
10838 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
10839 change.
859abddd
SN
10840 (cortex_a15_alu_shift): Likewise.
10841 (cortex_a15_alu_shift_reg): Likewise.
10842 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
10843 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
10844 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
10845 change.
859abddd 10846 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
10847 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
10848 change.
859abddd
SN
10849 (cortex_a7_alu_reg): Likewise.
10850 (cortex_a7_alu_shift): Likewise.
10851 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
10852 (cortex_a8_alu_shift): Likewise.
10853 (cortex_a8_alu_shift_reg): Likewise.
10854 (cortex_a8_mov): Likewise.
10855 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
10856 (cortex_a9_dp_shift): Likewise.
10857 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
10858 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
10859 (cortex_r4_mov): Likewise.
10860 (cortex_r4_alu_shift): Likewise.
10861 (cortex_r4_alu_shift_reg): Likewise.
10862 * config/arm/fa526.md (526_alu_op): Update for attribute change.
10863 (526_alu_shift_op): Likewise.
10864 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
10865 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
10866 (626te_alu_shift_op): Likewise.
10867 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
10868 (726te_alu_op): Likewise.
10869 (726te_alu_shift_op): Likewise.
10870 (726te_alu_shift_reg_op): Likewise.
10871 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
10872 (mp626_alu_shift_op): Likewise.
10873 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
10874 (pj4_alu_e1_conds): Likewise.
10875 (pj4_alu): Likewise.
10876 (pj4_alu_conds): Likewise.
10877 (pj4_shift): Likewise.
10878 (pj4_shift_conds): Likewise.
10879 (pj4_alu_shift): Likewise.
10880 (pj4_alu_shift_conds): Likewise.
10881
95b97fac
KT
108822013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10883
10884 * config/arm/predicates.md (shiftable_operator_strict_it):
10885 New predicate.
10886 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
10887 Disable cond_exec version for arm_restrict_it.
10888 (thumb2_smaxsi3): Convert to generate cond_exec.
10889 (thumb2_sminsi3): Likewise.
10890 (thumb32_umaxsi3): Likewise.
10891 (thumb2_uminsi3): Likewise.
10892 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
10893 (thumb2_neg_abssi2): Likewise.
10894 (thumb2_mov_scc): Add alternative for 16-bit encoding.
10895 (thumb2_movsicc_insn): Adjust alternatives.
10896 (thumb2_mov_negscc): Disable for arm_restrict_it.
10897 (thumb2_mov_negscc_strict_it): New pattern.
10898 (thumb2_mov_notscc_strict_it): New pattern.
10899 (thumb2_mov_notscc): Disable for arm_restrict_it.
10900 (thumb2_ior_scc): Likewise.
10901 (thumb2_ior_scc_strict_it): New pattern.
10902 (thumb2_cond_move): Adjust for arm_restrict_it.
10903 (thumb2_cond_arith): Disable for arm_restrict_it.
10904 (thumb2_cond_arith_strict_it): New pattern.
10905 (thumb2_cond_sub): Adjust for arm_restrict_it.
10906 (thumb2_movcond): Likewise.
10907 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
10908 (thumb2_zero_extendhisi2_v6): Likewise.
10909 (thumb2_zero_extendqisi2_v6): Likewise.
10910 (orsi_notsi_si): Likewise.
10911 (orsi_not_shiftsi_si): Likewise.
10912
d5a6ef82
GJL
109132013-07-22 Georg-Johann Lay <avr@gjlay.de>
10914
10915 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
10916 instruction sequence is 1 byte shorter.
10917
d9e71154
UB
109182013-07-22 Uros Bizjak <ubizjak@gmail.com>
10919
10920 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
10921 it is not needed after split.
10922
8c6381ec
IS
109232013-07-20 Iain Sandoe <iain@codesourcery.com>
10924
10925 PR target/51784
10926 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
10927 second label for nonlocal goto receivers. Don't output pic base labels
10928 unless we're producing PIC; mark that action unreachable().
10929 (ix86_save_reg): If the function contains a nonlocal label, save the
10930 PIC base reg.
10931 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 10932 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
10933 (update_pic_label_number_if_needed): New.
10934 (machopic_output_function_base_name): Adjust for nonlocal receiver
10935 case.
10936 (machopic_should_output_picbase_label): New.
10937 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
10938 (nonlocal_goto_receiver): New insn and split.
10939
d05d0709
JG
109402013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
10941
10942 * config/aarch64/aarch64-builtins.c
10943 (aarch64_fold_builtin): Fold abs in all modes.
10944 * config/aarch64/aarch64-simd-builtins.def
10945 (abs): Enable for all modes.
10946 * config/aarch64/arm_neon.h
10947 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
10948 (vabs_f64): Add missing intrinsic.
10949
ba590e63
IB
109502013-07-19 Ian Bolton <ian.bolton@arm.com>
10951
10952 * config/aarch64/arm_neon.h (vabs_s64): New function
10953
02371798
GJL
109542013-07-19 Georg-Johann Lay <avr@gjlay.de>
10955
10956 PR target/57516
10957 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
10958 * config/avr/avr.md (adjust_len): Add `round'.
10959 * config/avr/avr-protos.h (avr_out_round): New prototype.
10960 (avr_out_plus): Add `out_label' argument.
10961 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
10962 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
10963 Handle the case where `insn' is just a pattern.
10964 (avr_out_bitop): Handle the case where `insn' is just a pattern.
10965 (avr_out_round): New function.
10966 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
10967
12211b99 109682013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
10969
10970 * config/microblaze/microblaze.c (microblaze_expand_prologue):
10971 Add check for flag_stack_usage to handle -fstack-usage support
10972
12211b99 109732013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
10974
10975 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
10976 interaction for new Power8 flags and VSX.
10977
df9dda2d
ST
109782013-07-18 Sriraman Tallam <tmsriram@google.com>
10979
10980 PR middle-end/57698
10981 * tree-inline.c (expand_call_inline): Emit errors during
10982 early_inlining only if optimization is not turned on.
10983
0f9cdef4
DM
109842013-07-18 David Malcolm <dmalcolm@redhat.com>
10985
10986 * passes.def: New.
10987
10988 * passes.c (init_optimization_passes): Move the construction of
10989 the pass hierarchy into a new passes.def file.
10990
10991 * Makefile.in (passes.o): Add dependency on passes.def.
10992
2efa4087
DM
109932013-07-18 David Malcolm <dmalcolm@redhat.com>
10994
10995 * passes.c (init_optimization_passes): Introduce macros for
10996 constructing the tree of passes (INSERT_PASSES_AFTER,
10997 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
10998 TERMINATE_PASS_LIST).
10999
bc404e1b
VM
110002013-07-18 Vladimir Makarov <vmakarov@redhat.com>
11001 Wei Mi <wmi@google.com>
11002
11003 PR rtl-optimization/57878
11004 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
11005 top.
11006 (reload_pseudo_compare_func): Check nregs first for reload
11007 pseudos.
11008
d675843f
DM
110092013-07-18 David Malcolm <dmalcolm@redhat.com>
11010
11011 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
11012
c7b3b99f 110132013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
11014
11015 * read-rtl.c (validate_const_int): Once an invalid character is
11016 seen, quit the loop.
11017
11018 * gengtype.c (write_roots): Similarly once we find the "deletable"
11019 or "if_marked" option.
11020
52fceb44
SN
110212013-07-18 Sofiane Naci <sofiane.naci@arm.com>
11022
11023 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
11024 "xtab" and "sat". Move value "clz" from here to ...
11025 (attriubte "type"): ... here.
11026 (satsi_<SAT:code>): Delete "insn" attribute.
11027 (satsi_<SAT:code>_shift): Likewise.
11028 (arm_zero_extendqisi2addsi): Likewise.
11029 (arm_extendqisi2addsi): Likewise.
11030 (clzsi2): Update for attribute changes.
11031 (rbitsi2): Likewise.
371e77e3
UB
11032 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
11033 attribute.
52fceb44
SN
11034 (arm_usatsihi): Likewise.
11035 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
11036
006bd006
SN
110372013-07-18 Sofiane Naci <sofiane.naci@arm.com>
11038
11039 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
11040 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
11041 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
11042 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
11043 in alphabetical order.
11044 (attribute "core_cycles"): Update for attribute changes.
11045 (arm_addsi3): Likewise.
11046 (addsi3_compare0): Likewise.
11047 (addsi3_compare0_scratch): Likewise.
11048 (addsi3_compare_op1): Likewise.
11049 (addsi3_compare_op2): Likewise.
11050 (compare_addsi2_op0): Likewise.
11051 (compare_addsi2_op1): Likewise.
11052 (addsi3_carryin_shift_<optab>): Likewise.
11053 (subsi3_carryin_shift): Likewise.
11054 (rsbsi3_carryin_shift): Likewise.
11055 (arm_subsi3_insn): Likewise.
11056 (subsi3_compare0): Likewise.
11057 (subsi3_compare): Likewise.
11058 (arm_andsi3_insn): Likewise.
11059 (thumb1_andsi3_insn): Likewise.
11060 (andsi3_compare0): Likewise.
11061 (andsi3_compare0_scratch): Likewise.
11062 (zeroextractsi_compare0_scratch
11063 (andsi_not_shiftsi_si): Likewise.
11064 (iorsi3_insn): Likewise.
11065 (iorsi3_compare0): Likewise.
11066 (iorsi3_compare0_scratch): Likewise.
11067 (arm_xorsi3): Likewise.
11068 (thumb1_xorsi3_insn): Likewise.
11069 (xorsi3_compare0): Likewise.
11070 (xorsi3_compare0_scratch): Likewise.
11071 (satsi_<SAT:code>_shift): Likewise.
11072 (rrx): Likewise.
11073 (arm_shiftsi3): Likewise.
11074 (shiftsi3_compare0): Likewise.
11075 (not_shiftsi): Likewise.
11076 (not_shiftsi_compare0): Likewise.
11077 (not_shiftsi_compare0_scratch): Likewise.
11078 (arm_one_cmplsi2): Likewise.
11079 (thumb_one_complsi2): Likewise.
11080 (notsi_compare0): Likewise.
11081 (notsi_compare0_scratch): Likewise.
11082 (thumb1_zero_extendhisi2): Likewise.
11083 (arm_zero_extendhisi2): Likewise.
11084 (arm_zero_extendhisi2_v6): Likewise.
11085 (arm_zero_extendhisi2addsi): Likewise.
11086 (thumb1_zero_extendqisi2): Likewise.
11087 (thumb1_zero_extendqisi2_v6): Likewise.
11088 (arm_zero_extendqisi2): Likewise.
11089 (arm_zero_extendqisi2_v6): Likewise.
11090 (arm_zero_extendqisi2addsi): Likewise.
11091 (thumb1_extendhisi2): Likewise.
11092 (arm_extendhisi2): Likewise.
11093 (arm_extendhisi2_v6): Likewise.
11094 (arm_extendqisi): Likewise.
11095 (arm_extendqisi_v6): Likewise.
11096 (arm_extendqisi2addsi): Likewise.
11097 (thumb1_extendqisi2): Likewise.
11098 (thumb1_movdi_insn): Likewise.
11099 (arm_movsi_insn): Likewise.
11100 (movsi_compare0): Likewise.
11101 (movhi_insn_arch4): Likewise.
11102 (movhi_bytes): Likewise.
11103 (arm_movqi_insn): Likewise.
11104 (thumb1_movqi_insn): Likewise.
11105 (arm32_movhf): Likewise.
11106 (thumb1_movhf): Likewise.
11107 (arm_movsf_soft_insn): Likewise.
11108 (thumb1_movsf_insn): Likewise.
11109 (movdf_soft_insn): Likewise.
11110 (thumb_movdf_insn): Likewise.
11111 (arm_cmpsi_insn): Likewise.
11112 (cmpsi_shiftsi): Likewise.
11113 (cmpsi_shiftsi_swp): Likewise.
11114 (arm_cmpsi_negshiftsi_si): Likewise.
11115 (movsicc_insn): Likewise.
11116 (movsfcc_soft_insn): Likewise.
11117 (arith_shiftsi): Likewise.
11118 (arith_shiftsi_compare0
11119 (arith_shiftsi_compare0_scratch
11120 (sub_shiftsi): Likewise.
11121 (sub_shiftsi_compare0
11122 (sub_shiftsi_compare0_scratch
11123 (and_scc): Likewise.
11124 (cond_move): Likewise.
11125 (if_plus_move): Likewise.
11126 (if_move_plus): Likewise.
11127 (if_move_not): Likewise.
11128 (if_not_move): Likewise.
11129 (if_shift_move): Likewise.
11130 (if_move_shift): Likewise.
11131 (if_shift_shift): Likewise.
11132 (if_not_arith): Likewise.
11133 (if_arith_not): Likewise.
11134 (cond_move_not): Likewise.
11135 (thumb1_ashlsi3): Set type attribute.
11136 (thumb1_ashrsi3): Likewise.
11137 (thumb1_lshrsi3): Likewise.
11138 (thumb1_rotrsi3): Likewise.
11139 (shiftsi3_compare0_scratch): Likewise.
11140 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
11141 (neon_mov<mode>): Likewise.
371e77e3
UB
11142 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
11143 attribute changes.
006bd006
SN
11144 (thumb2_movsi_insn): Likewise.
11145 (thumb2_cmpsi_neg_shiftsi): Likewise.
11146 (thumb2_extendqisi_v6): Likewise.
11147 (thumb2_zero_extendhisi2_v6): Likewise.
11148 (thumb2_zero_extendqisi2_v6): Likewise.
11149 (thumb2_shiftsi3_short): Likewise.
11150 (thumb2_addsi3_compare0_scratch): Likewise.
11151 (orsi_not_shiftsi_si): Likewise.
11152 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
11153 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
11154 changes.
11155 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
11156 (1020alu_shift_op): Likewise.
11157 (1020alu_shift_reg_op): Likewise.
11158 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
11159 (alu_shift_op): Likewise.
11160 (alu_shift_reg_op): Likewise.
11161 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
11162 (11_alu_shift_op): Likewise.
11163 (11_alu_shift_reg_op): Likewise.
11164 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
11165 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
11166 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
11167 changes.
006bd006
SN
11168 (cortex_a15_alu_shift): Likewise.
11169 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
11170 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
11171 changes.
006bd006
SN
11172 (cortex_a5_alu_shift): Likewise.
11173 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
11174 changes.
11175 (cortex_a53_alu_shift): Likewise.
11176 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
11177 changes.
11178 (cortex_a7_alu_reg): Likewise.
11179 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
11180 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
11181 changes.
006bd006
SN
11182 (cortex_a8_alu_shift): Likewise.
11183 (cortex_a8_alu_shift_reg): Likewise.
11184 (cortex_a8_mov): Likewise.
11185 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
11186 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
11187 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
11188 changes.
11189 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
11190 changes.
006bd006
SN
11191 (cortex_r4_mov): Likewise.
11192 (cortex_r4_alu_shift): Likewise.
11193 (cortex_r4_alu_shift_reg): Likewise.
11194 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
11195 (526_alu_shift_op): Likewise.
11196 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
11197 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
11198 (626te_alu_shift_op): Likewise.
11199 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
11200 (726te_alu_op): Likewise.
11201 (726te_alu_shift_op): Likewise.
11202 (726te_alu_shift_reg_op): Likewise.
11203 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
11204 (mp626_alu_shift_op): Likewise.
11205 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
11206 (pj4_alu_e1_conds): Likewise.
11207 (pj4_alu): Likewise.
11208 (pj4_alu_conds): Likewise.
11209 (pj4_shift): Likewise.
11210 (pj4_shift_conds): Likewise.
11211 (pj4_alu_shift): Likewise.
11212 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
11213 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
11214 changes.
006bd006
SN
11215 (cortexa7_older_only): Likewise.
11216 (cortexa7_younger): Likewise.
11217
651df1b2
DM
112182013-07-18 David Malcolm <dmalcolm@redhat.com>
11219
11220 * ipa-pure-const.c (generate_summary): Rename to...
11221 (pure_const_generate_summary): ... this.
11222
ea717bd7
IS
112232013-07-17 Iain Sandoe <iain@codesourcery.com>
11224
11225 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
11226
a1259a13
YR
112272013-07-17 Yvan Roux <yvan.roux@linaro.org>
11228
11229 PR target/57909
11230 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
11231 usage in HI mode.
11232
167f68ed
AK
112332013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11234
11235 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
11236 enabled without -march=zEC12.
11237 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
11238 flags to be set.
11239
f900a982
MR
112402013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11241
11242 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
11243 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
11244 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
11245 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
11246 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
11247 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
11248 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
11249 ISA_HAS_FP4.
11250 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
11251 and ISA_HAS_NMADD3_NMSUB3.
11252 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
11253 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
11254 (nmsub4<mode>, nmsub3<mode>): Likewise.
11255 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
11256
d4ed27eb
MR
112572013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11258
11259 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
11260 TARGET_MIPS5400 checking.
11261
7a5add18
PB
112622013-07-16 Jakub Jelinek <jakub@redhat.com>
11263 Peter Bergner <bergner@vnet.ibm.com>
11264
11265 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
11266 registers in the comment.
11267 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
11268 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
11269 rather than FIRST_PSEUDO_REGISTERS.
11270
112712013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
11272
11273 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
11274 enable extra ISA flags with TARGET_HTM.
11275
d2ab0929
MR
112762013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
11277
11278 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
11279 Fix comment typos.
11280
839c74bc
CH
112812013-07-15 Cong Hou <congh@google.com>
11282
11283 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
11284 in compare function for sorting.
11285
7a5add18 112862013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
11287
11288 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
11289 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
11290 * config/rs6000/rs6000.opt: Add -mhtm option.
11291 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
11292 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
11293 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11294 __HTM__ if the HTM instructions are available.
11295 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
11296 htm_spr_reg_operand): New define_predicates.
11297 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
11298 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
11299 Include htm.md.
11300 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
11301 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
11302 HTM builtin functions.
11303 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
11304 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
11305 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
11306 (rs6000_builtin_mask_calculate): Likewise.
11307 (rs6000_option_override_internal): Likewise.
11308 (bdesc_htm): Add new HTM builtin support.
11309 (htm_spr_num): New function.
11310 (htm_spr_regno): Likewise.
11311 (rs6000_htm_spr_icode): Likewise.
11312 (htm_expand_builtin): Likewise.
11313 (htm_init_builtins): Likewise.
11314 (rs6000_expand_builtin): Add support for HTM builtin functions.
11315 (rs6000_init_builtins): Likewise.
371e77e3
UB
11316 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
11317 option.
0258b6e4
PB
11318 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
11319 (TARGET_HTM, MASK_HTM): Define macros.
11320 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
11321 (FIXED_REGISTERS): Likewise.
11322 (CALL_USED_REGISTERS): Likewise.
11323 (CALL_REALLY_USED_REGISTERS): Likewise.
11324 (REG_ALLOC_ORDER): Likewise.
11325 (enum reg_class): Likewise.
11326 (REG_CLASS_NAMES): Likewise.
11327 (REG_CLASS_CONTENTS): Likewise.
11328 (REGISTER_NAMES): Likewise.
11329 (ADDITIONAL_REGISTER_NAMES): Likewise.
11330 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
11331 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
11332 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
11333 * config/rs6000/htm.md: New file.
11334 * config/rs6000/htmintrin.h: New file.
11335 * config/rs6000/htmxlintrin.h: New file.
11336
87dd8ab0
MS
113372013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
11338
11339 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
11340 Define SYMBOL_TINY_GOT, update comment.
11341 * config/aarch64/aarch64.c
11342 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
11343 (aarch64_expand_mov_immediate): Likewise.
11344 (aarch64_print_operand): Likewise.
11345 (aarch64_classify_symbol): Likewise.
11346 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
11347 (ldr_got_tiny): Define.
11348
52d676b6
TG
113492013-07-13 Tobias Grosser <tobias@grosser.es>
11350
11351 PR tree-optimization/54094
11352 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
11353 scheduling dimension for the parallelism check from the polyhedral
11354 information in the AST.
11355 * graphite-dependences.c (carries_deps): Do not assume the schedule is
11356 in 2D + 1 form.
11357
286e8fc1
JM
113582013-07-13 Jason Merrill <jason@redhat.com>
11359
11360 * print-tree.c (debug_vec_tree): Use debug_raw.
11361 (debug_raw (vec<tree, va_gc> &)): New.
11362 (debug_raw (vec<tree, va_gc> *)): New.
11363 * tree.h: Declare them.
11364
e43257e8
BC
113652013-07-13 Bin Cheng <bin.cheng@arm.com>
11366
11367 * ifcvt.c (ifcvt_after_combine): New static variable.
11368 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
11369 for size.
11370 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
11371 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
11372 rest_of_handle_if_after_reload): Pass new argument for if_convert.
11373
da582d46
MR
113742013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
11375
11376 * config/mips/mips.c (mips_expand_call): Remove empty statement.
11377
18b0ea8f
MM
113782013-07-12 Michael Matz <matz@suse.de>
11379
11380 PR middle-end/55771
11381 * convert.c (convert_to_real): Reject non-float inner types.
11382
e4f0f84d
TB
113832013-07-12 Tejas Belagod <tejas.belagod@arm.com>
11384
11385 * config/aarch64/aarch64-protos.h
11386 (aarch64_simd_immediate_valid_for_move): Remove.
11387 * config/aarch64/aarch64.c (simd_immediate_info): New member.
11388 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
11389 cases.
11390 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
11391
76500022
SE
113922013-07-11 Steve Ellcey <sellcey@mips.com>
11393
11394 * config/mips/mips.c (mips_conditional_register_usage): Do not
11395 use t[0-7] registers in MIPS16 mode when optimizing for size.
11396
78039734
ST
113972013-07-11 Sriraman Tallam <tmsriram@google.com>
11398
11399 * config/i386/i386.c (dispatch_function_versions): Fix array
11400 indexing of function_version_info to match actual_versions.
11401
7b24b675
TJ
114022013-07-11 Teresa Johnson <tejohnson@google.com>
11403
11404 * vec.h (struct va_gc): Move release out-of-line.
11405 (va_gc::release): Call ggc_free on released vec.
11406
85d4cbb8
UW
114072013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11408
11409 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
11410 Require GOT register as additional operand in UNSPEC.
11411 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
11412 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11413 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
11414 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
11415 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
11416 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
11417 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
11418
52b3f9e2
GJL
114192013-07-11 Georg-Johann Lay <avr@gjlay.de>
11420
11421 PR target/57631
11422 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
11423 name seen by assembler/linker rather if available.
11424
3f3e266e
AS
114252013-07-11 Andreas Schwab <schwab@suse.de>
11426
11427 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
11428
21231ca6
VM
114292013-07-10 Vladimir Makarov <vmakarov@redhat.com>
11430
371e77e3 11431 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 11432
d331d374
JM
114332013-07-10 Joseph Myers <joseph@codesourcery.com>
11434
673c2f63
JM
11435 * doc/tm.texi.in: Move hook documentation to ....
11436 * target.def: ... here.
11437
d331d374
JM
11438 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
11439 text on @hook line.
11440 * doc/tm.texi: Regenerate.
11441
dfeadaa0
PC
114422013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
11443
11444 PR c++/57869
11445 * doc/invoke.texi: Document -Wconditionally-supported.
11446
bb6f2bac
GJL
114472013-07-10 Georg-Johann Lay <avr@gjlay.de>
11448
11449 PR target/57844
11450 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
11451 of my_fp.
11452
5219b232
GJL
114532013-07-10 Georg-Johann Lay <avr@gjlay.de>
11454
11455 PR target/57506
11456 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
11457 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
11458 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
11459 Remove duplicate devices.
11460 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
11461 * config/avr/t-multilib: Regenerate.
11462 * config/avr/avr-tables.opt: Regenerate.
11463 * doc/avr-mmcu.texi: Regenerate.
11464
283045c0
GJL
114652013-07-10 Georg-Johann Lay <avr@gjlay.de>
11466
11467 PR target/56987
11468 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
11469
ceb2d59f 114702013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 11471
ceb2d59f
GS
11472 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
11473 the cost of MULT when optimizing for size.
11474
055e0a99
JBG
114752013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11476
11477 * config/cr16/cr16-protos.h: Don't include target.h.
11478
ef43e868
JM
114792013-07-09 Joseph Myers <joseph@codesourcery.com>
11480
11481 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
11482 adjust register size for TDmode and TFmode for VSX registers.
11483
4a283fdf
KT
114842013-07-08 Kai Tietz <ktietz@redhat.com>
11485
11486 PR target/56892
11487 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
11488 hook_bool_const_tree_true.
11489
2cf4c39e
AK
114902013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11491
11492 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
11493 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
11494 * config/s390/s390.md: Define FPR*_REGNUM constants.
11495 Fix FPR2_REGNUM constant (18 -> 17).
11496 ("*trunc<BFP:mode><DFP_ALL:mode>2")
11497 ("*trunc<DFP_ALL:mode><BFP:mode>2")
11498 ("trunc<BFP:mode><DFP_ALL:mode>2")
11499 ("trunc<DFP_ALL:mode><BFP:mode>2")
11500 ("*extend<BFP:mode><DFP_ALL:mode>2")
11501 ("*extend<DFP_ALL:mode><BFP:mode>2")
11502 ("extend<BFP:mode><DFP_ALL:mode>2")
11503 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
11504 FPR4_REGNUM.
11505
e6ac0270 115062013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 11507
6a2fa4b2 11508 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 11509
b89b22fc
AK
115102013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11511
11512 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
11513 and cfun_fpr_bit_p to cfun_fpr_save_p.
11514 (s390_frame_area, s390_register_info, s390_frame_info)
11515 (s390_emit_prologue, s390_emit_epilogue)
11516 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
11517 register numbers.
11518 * config/s390/s390.h: Define *_REGNUM macros for floating point
11519 register numbers.
11520
07f398aa
EB
115212013-07-08 Eric Botcazou <ebotcazou@adacore.com>
11522
11523 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
11524
75fefa91
PCC
115252013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
11526
11527 PR rtl-optimization/57786
11528 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
11529 and break out of the loop when it is set to false.
11530
046f1eee
JJ
115312013-07-08 Jakub Jelinek <jakub@redhat.com>
11532
8140c065
JJ
11533 PR target/57819
11534 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
11535 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
11536 (const_int 63)) 0)).
11537 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
11538 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
11539 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
11540
046f1eee
JJ
11541 PR rtl-optimization/57829
11542 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
11543 mask bits outside of mode are just sign-extension from mode to HWI.
11544
930b700b
MZ
115452013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
11546
11547 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
11548 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
11549 adjust_address instead of change_address to keep info about alignment.
11550 (emit_strmov): Remove.
11551 (emit_memmov): New function.
11552 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
11553 (expand_movmem_epilogue): Likewise and return updated rtx for
11554 destination.
11555 (expand_constant_movmem_prologue): Likewise and return updated rtx for
11556 destination and source.
11557 (decide_alignment): Refactor, handle vector_loop.
11558 (ix86_expand_movmem): Likewise.
11559 (ix86_expand_setmem): Likewise.
11560 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
11561
7b9d1bd8
UB
115622013-07-07 Uros Bizjak <ubizjak@gmail.com>
11563
11564 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
11565 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
11566
eabb5f48
UB
115672013-07-06 Uros Bizjak <ubizjak@gmail.com>
11568
11569 * config/i386/sse.md (sse_movlhps): Change alternative 3
11570 of operand 2 to "m".
11571
115722013-07-06 Uros Bizjak <ubizjak@gmail.com>
11573
11574 PR target/57807
11575 * config/i386/sse.md (iptr): New mode attribute.
11576 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
11577 (<sse>_vm<plusminus_insn><mode>3): Ditto.
11578 (<sse>_vmmul<mode>3): Ditto.
11579 (<sse>_vmdiv<mode>3): Ditto.
11580 (sse_vmrcpv4sf2): Ditto.
11581 (<sse>_vmsqrt<mode>2): Ditto.
11582 (sse_vmrsqrtv4sf2): Ditto.
11583 (<sse>_vm<code><mode>3): Ditto.
11584 (avx_vmcmp<mode>3): Ditto.
11585 (<sse>_vmmaskcmp<mode>3): Ditto.
11586 (<sse>_comi): Ditto.
11587 (<sse>_ucomi): Ditto.
11588 (*xop_vmfrcz_<mode>): Ditto.
11589 (*fmai_fmadd_<mode>): Ditto.
11590 (*fmai_fmsub_<mode>): Ditto.
11591 (*fmai_fnmadd_<mode>): Ditto.
11592 (*fmai_fnmsub_<mode>): Ditto.
11593 (*fma4i_vmfmadd_<mode>): Ditto.
11594 (*fma4i_vmfmsub_<mode>): Ditto.
11595 (*fma4i_vmfnmadd_<mode>): Ditto.
11596 (*fma4i_vmfnmsub_<mode>): Ditto.
11597 (*xop_vmfrcz_<mode>): Ditto.
11598 (sse_cvtps2pi): Ditto.
11599 (sse_cvttps2pi): Ditto.
11600 (sse_cvtss2si): Ditto.
11601 (sse_cvtss2si_2): Ditto.
11602 (sse_cvtss2siq_2): Ditto.
11603 (sse_cvttss2si): Ditto.
11604 (sse_cvttss2siq): Ditto.
11605 (sse_cvtsd2si): Ditto.
11606 (sse_cvtsd2si_2): Ditto.
11607 (sse_cvtsd2siq_2): Ditto.
11608 (sse_cvttsd2si): Ditto.
11609 (sse_cvttsd2siq): Ditto.
11610 (sse_cvtsd2ss): Ditto.
11611 (sse_cvtss2sd): Ditto.
11612 (avx2_pbroadcast<mode>): Ditto.
11613 (avx2_pbroadcast<mode>_1): Ditto.
11614 (*avx_vperm_broadcast_v4sf): Ditto.
11615
11616 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
11617 (sse_movlhps): Ditto.
11618 (sse_storehps): Ditto.
11619 (sse_loadhps): Ditto.
11620 (sse_storelps): Ditto.
11621 (sse_loadlps): Ditto.
11622 (*vec_concatv4sf): Ditto.
11623 (*vec_interleave_highv2df): Ditto.
11624 (*vec_interleave_lowv2df): Ditto.
11625 (*vec_extractv2df_1_sse): Ditto.
11626 (*vec_extractv2df_0_sse): Ditto.
11627 (sse2_storelpd): Ditto.
11628 (sse2_loadlpd): Ditto.
11629 (sse2_movsd): Ditto.
11630 (*vec_concatv4si): Ditto.
11631 (vec_concatv2di): Ditto.
11632
11633 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
11634 for Intel asm dialect.
11635 (mmx_punpcklwd): Ditto.
11636 (mmx_punpckldq): Ditto.
11637
11638 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
11639 for intel assembler dialect.
11640
1f6eac90
JJ
116412013-07-06 Jakub Jelinek <jakub@redhat.com>
11642
11643 PR target/29776
11644 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
11645 for BUILT_IN_C{LZ,LRSB}*.
11646 * tree.h (CASE_INT_FN): Add FN##IMAX case.
11647 * tree-vrp.c (extract_range_basic): Handle
11648 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
11649 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
11650 fall thru to code calling set_value*.
11651 * builtins.c (expand_builtin): Remove *IMAX cases.
11652 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
11653 if width is bigger than 2*HWI.
11654
2b778c9d
VM
116552013-07-05 Vladimir Makarov <vmakarov@redhat.com>
11656
11657 PR rtl-optimization/55342
11658 * lra-int.h (lra_subreg_reload_pseudos): New.
11659 * lra.c: Add undoing optional reloads to the block diagram.
11660 (lra_subreg_reload_pseudos): New.
11661 (lra_optional_reload_pseudos): Change comments.
11662 (lra): Init and clear lra_subreg_reload_pseudos. Clear
11663 lra_optional_reload_pseudos after undo transformations.
11664 * lra-assigns.c (pseudo_prefix_title): New.
11665 (lra_setup_reg_renumber): Use it.
11666 (spill_for): Ditto. Check subreg reload pseudos too.
11667 (assign_by_spills): Consider subreg reload pseudos too.
11668 * lra-constraints.c (simplify_operand_subreg): Use
11669 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
11670 (curr_insn_transform): Recognize and do optional reloads.
11671 (undo_optional_reloads): New.
11672 (lra_undo_inheritance): Call undo_optional_reloads.
11673
207156e4
TQ
116742013-07-05 Thomas Quinot <quinot@adacore.com>
11675
11676 * tree-complex.c (expand_complex_operations_1): Fix typo.
11677
8990e73a
TB
116782013-07-04 Tejas Belagod <tejas.belagod@arm.com>
11679
11680 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
11681 (tune_params): New member 'const vec_costs'.
11682 * config/aarch64/aarch64.c (generic_vector_cost): New.
11683 (generic_tunings): New member 'generic_vector_cost'.
11684 (aarch64_builtin_vectorization_cost): New.
11685 (aarch64_add_stmt_cost): New.
11686 (TARGET_VECTORIZE_ADD_STMT_COST): New.
11687 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
11688
f7bc421d
JJ
116892013-07-03 Jakub Jelinek <jakub@redhat.com>
11690
11691 PR target/57777
11692 * config/i386/predicates.md (vsib_address_operand): Disallow
11693 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
11694
e90d1568
HPN
116952013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
11696
11697 PR middle-end/55030
11698 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
11699 expand_builtin_setjmp_receiver.
11700 (expand_label): Adjust, call expand_builtin_setjmp_receiver
11701 with NULL for the label parameter.
11702 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
11703 the frame-pointer. Adjust comments.
11704 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
11705 only if LABEL is non-NULL.
11706
cbd7413b
YZ
117072013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
11708
11709 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
11710 (ARM_ABI_AAPCS64): Ditto.
11711 (arm_abi): Ditto.
11712 (ARM_DEFAULT_ABI): Ditto.
11713
dec11868
JG
117142013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
11715
11716 * config/aarch64/aarch64-builtins.c
11717 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
11718 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
11719 (st1): Likewise.
11720 * config/aarch64/aarch64-simd.md
11721 (aarch64_ld1<VALL:mode>): New.
11722 (aarch64_st1<VALL:mode>): Likewise.
11723 * config/aarch64/arm_neon.h
11724 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
11725
786fb9b6
ST
117262013-07-02 Sriraman Tallam <tmsriram@google.com>
11727
0ba6aff3
UB
11728 * config/i386/i386.c (gate_insert_vzeroupper): Check if
11729 target ISA is AVX.
786fb9b6
ST
11730 (ix86_option_override_internal):Turn on all -mavx target flags by
11731 default as they are dependent on AVX anyway.
11732
4b043553
CC
117332013-07-02 Cary Coutant <ccoutant@google.com>
11734
11735 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
11736 deterministic hash.
11737 (loc_checksum_ordered): Likewise.
11738 (hash_loc_operands): Remove inline keyword.
11739
c4e87a13
JJ
117402013-07-02 Jakub Jelinek <jakub@redhat.com>
11741
11742 PR tree-optimization/57741
11743 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
11744 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
11745 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
11746 Allow REAL_CST step_exprs if flag_associative_math.
11747 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
11748
26366d28
IB
117492013-07-02 Ian Bolton <ian.bolton@arm.com>
11750
0ba6aff3 11751 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 11752
2879bb2b
IB
117532013-07-02 Ian Bolton <ian.bolton@arm.com>
11754
11755 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
11756
afc5e8a6
KT
117572013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11758
11759 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
11760 encoding.
11761 (iorsi3_insn): Likewise.
11762 (arm_xorsi3): Likewise.
11763
31f8442b
SN
117642013-07-01 Sofiane Naci <sofiane.naci@arm.com>
11765
11766 * arm.md (attribute "wtype"): Delete. Move attribute values from here
11767 to ...
11768 (attribute "type"): ... here, and prefix with "wmmx_".
11769 (attribute "core_cycles"): Update for attribute changes.
11770 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
11771 (tbcstv4hi): Likewise.
11772 (tbcstv2si): Likewise.
11773 (iwmmxt_iordi3): Likewise.
11774 (iwmmxt_xordi3): Likewise.
11775 (iwmmxt_anddi3): Likewise.
11776 (iwmmxt_nanddi3): Likewise.
11777 (iwmmxt_arm_movdi): Likewise.
11778 (iwmmxt_movsi_insn): Likewise.
11779 (mov<mode>_internal): Likewise.
11780 (and<mode>3_iwmmxt): Likewise.
11781 (ior<mode>3_iwmmxt): Likewise.
11782 (xor<mode>3_iwmmxt): Likewise.
11783 (add<mode>3_iwmmxt): Likewise.
11784 (ssaddv8qi3): Likewise.
11785 (ssaddv4hi3): Likewise.
11786 (ssaddv2si3): Likewise.
11787 (usaddv8qi3): Likewise.
11788 (usaddv4hi3): Likewise.
11789 (usaddv2si3): Likewise.
11790 (sub<mode>3_iwmmxt): Likewise.
11791 (sssubv8qi3): Likewise.
11792 (sssubv4hi3): Likewise.
11793 (sssubv2si3): Likewise.
11794 (ussubv8qi3): Likewise.
11795 (ussubv4hi3): Likewise.
11796 (ussubv2si3): Likewise.
11797 (mulv4hi3_iwmmxt): Likewise.
11798 (smulv4hi3_highpart): Likewise.
11799 (umulv4hi3_highpart): Likewise.
11800 (iwmmxt_wmacs): Likewise.
11801 (iwmmxt_wmacsz): Likewise.
11802 (iwmmxt_wmacu): Likewise.
11803 (iwmmxt_wmacuz): Likewise.
11804 (iwmmxt_clrdi): Likewise.
11805 (iwmmxt_clrv8qi): Likewise.
11806 (iwmmxt_clr4hi): Likewise.
11807 (iwmmxt_clr2si): Likewise.
11808 (iwmmxt_uavgrndv8qi3): Likewise.
11809 (iwmmxt_uavgrndv4hi3): Likewise.
11810 (iwmmxt_uavgv8qi3): Likewise.
11811 (iwmmxt_uavgv4hi3): Likewise.
11812 (iwmmxt_tinsrb): Likewise.
11813 (iwmmxt_tinsrh): Likewise.
11814 (iwmmxt_tinsrw): Likewise.
11815 (iwmmxt_textrmub): Likewise.
11816 (iwmmxt_textrmsb): Likewise.
11817 (iwmmxt_textrmuh): Likewise.
11818 (iwmmxt_textrmsh): Likewise.
11819 (iwmmxt_textrmw): Likewise.
11820 (iwmxxt_wshufh): Likewise.
11821 (eqv8qi3): Likewise.
11822 (eqv4hi3): Likewise.
11823 (eqv2si3): Likewise.
11824 (gtuv8qi3): Likewise.
11825 (gtuv4hi3): Likewise.
11826 (gtuv2si3): Likewise.
11827 (gtv8qi3): Likewise.
11828 (gtv4hi3): Likewise.
11829 (gtv2si3): Likewise.
11830 (smax<mode>3_iwmmxt): Likewise.
11831 (umax<mode>3_iwmmxt): Likewise.
11832 (smin<mode>3_iwmmxt): Likewise.
11833 (umin<mode>3_iwmmxt): Likewise.
11834 (iwmmxt_wpackhss): Likewise.
11835 (iwmmxt_wpackwss): Likewise.
11836 (iwmmxt_wpackdss): Likewise.
11837 (iwmmxt_wpackhus): Likewise.
11838 (iwmmxt_wpackwus): Likewise.
11839 (iwmmxt_wpackdus): Likewise.
11840 (iwmmxt_wunpckihb): Likewise.
11841 (iwmmxt_wunpckihh): Likewise.
11842 (iwmmxt_wunpckihw): Likewise.
11843 (iwmmxt_wunpckilb): Likewise.
11844 (iwmmxt_wunpckilh): Likewise.
11845 (iwmmxt_wunpckilw): Likewise.
11846 (iwmmxt_wunpckehub): Likewise.
11847 (iwmmxt_wunpckehuh): Likewise.
11848 (iwmmxt_wunpckehuw): Likewise.
11849 (iwmmxt_wunpckehsb): Likewise.
11850 (iwmmxt_wunpckehsh): Likewise.
11851 (iwmmxt_wunpckehsw): Likewise.
11852 (iwmmxt_wunpckelub): Likewise.
11853 (iwmmxt_wunpckeluh): Likewise.
11854 (iwmmxt_wunpckeluw): Likewise.
11855 (iwmmxt_wunpckelsb): Likewise.
11856 (iwmmxt_wunpckelsh): Likewise.
11857 (iwmmxt_wunpckelsw): Likewise.
11858 (ror<mode>3): Likewise.
11859 (ashr<mode>3_iwmmxt): Likewise.
11860 (lshr<mode>3_iwmmxt): Likewise.
11861 (ashl<mode>3_iwmmxt): Likewise.
11862 (ror<mode>3_di): Likewise.
11863 (ashr<mode>3_di): Likewise.
11864 (lshr<mode>3_di): Likewise.
11865 (ashl<mode>3_di): Likewise.
11866 (iwmmxt_wmadds): Likewise.
11867 (iwmmxt_wmaddu): Likewise.
11868 (iwmmxt_tmia): Likewise.
11869 (iwmmxt_tmiaph): Likewise.
11870 (iwmmxt_tmiabb): Likewise.
11871 (iwmmxt_tmiatb): Likewise.
11872 (iwmmxt_tmiabt): Likewise.
11873 (iwmmxt_tmiatt): Likewise.
11874 (iwmmxt_tmovmskb): Likewise.
11875 (iwmmxt_tmovmskh): Likewise.
11876 (iwmmxt_tmovmskw): Likewise.
11877 (iwmmxt_waccb): Likewise.
11878 (iwmmxt_wacch): Likewise.
11879 (iwmmxt_waccw): Likewise.
11880 (iwmmxt_waligni): Likewise.
11881 (iwmmxt_walignr): Likewise.
11882 (iwmmxt_walignr0): Likewise.
11883 (iwmmxt_walignr1): Likewise.
11884 (iwmmxt_walignr2): Likewise.
11885 (iwmmxt_walignr3): Likewise.
11886 (iwmmxt_wsadb): Likewise.
11887 (iwmmxt_wsadh): Likewise.
11888 (iwmmxt_wsadbz): Likewise.
11889 (iwmmxt_wsadhz): Likewise.
11890 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
11891 (iwmmxt_wabsdiffb): Likewise.
11892 (iwmmxt_wabsdiffh): Likewise.
11893 (iwmmxt_wabsdiffw): Likewise.
11894 (iwmmxt_waddsubhx): Likewise
11895 (iwmmxt_wsubaddhx): Likewise.
11896 (addc<mode>3): Likewise.
11897 (iwmmxt_avg4): Likewise.
11898 (iwmmxt_avg4r): Likewise.
11899 (iwmmxt_wmaddsx): Likewise.
11900 (iwmmxt_wmaddux): Likewise.
11901 (iwmmxt_wmaddsn): Likewise.
11902 (iwmmxt_wmaddun): Likewise.
11903 (iwmmxt_wmulwsm): Likewise.
11904 (iwmmxt_wmulwum): Likewise.
11905 (iwmmxt_wmulsmr): Likewise.
11906 (iwmmxt_wmulumr): Likewise.
11907 (iwmmxt_wmulwsmr): Likewise.
11908 (iwmmxt_wmulwumr): Likewise.
11909 (iwmmxt_wmulwl): Likewise.
11910 (iwmmxt_wqmulm): Likewise.
11911 (iwmmxt_wqmulwm): Likewise.
11912 (iwmmxt_wqmulmr): Likewise.
11913 (iwmmxt_wqmulwmr): Likewise.
11914 (iwmmxt_waddbhusm): Likewise.
11915 (iwmmxt_waddbhusl): Likewise.
11916 (iwmmxt_wqmiabb): Likewise.
11917 (iwmmxt_wqmiabt): Likewise.
11918 (iwmmxt_wqmiatb): Likewise.
11919 (iwmmxt_wqmiatt): Likewise.
11920 (iwmmxt_wqmiabbn): Likewise.
11921 (iwmmxt_wqmiabtn): Likewise.
11922 (iwmmxt_wqmiatbn): Likewise.
11923 (iwmmxt_wqmiattn): Likewise.
11924 (iwmmxt_wmiabb): Likewise.
11925 (iwmmxt_wmiabt): Likewise.
11926 (iwmmxt_wmiatb): Likewise.
11927 (iwmmxt_wmiatt): Likewise.
11928 (iwmmxt_wmiabbn): Likewise.
11929 (iwmmxt_wmiabtn): Likewise.
11930 (iwmmxt_wmiatbn): Likewise.
11931 (iwmmxt_wmiattn): Likewise.
11932 (iwmmxt_wmiawbb): Likewise.
11933 (iwmmxt_wmiawbt): Likewise.
11934 (iwmmxt_wmiawtb): Likewise.
11935 (iwmmxt_wmiawtt): Likewise.
11936 (iwmmxt_wmiawbbn): Likewise.
11937 (iwmmxt_wmiawbtn): Likewise.
11938 (iwmmxt_wmiawtbn): Likewise.
11939 (iwmmxt_wmiawttn): Likewise.
11940 (iwmmxt_wmerge): Likewise.
11941 (iwmmxt_tandc<mode>3): Likewise.
11942 (iwmmxt_torc<mode>3): Likewise.
11943 (iwmmxt_torvsc<mode>3): Likewise.
11944 (iwmmxt_textrc<mode>3): Likewise.
11945 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
11946 (wmmxt_pack): Likewise.
11947 (wmmxt_mult_c1): Likewise.
11948 (wmmxt_mult_c2): Likewise.
11949 (wmmxt_alu_c1): Likewise.
11950 (wmmxt_alu_c2): Likewise.
11951 (wmmxt_alu_c3): Likewise.
11952 (wmmxt_transfer_c1): Likewise.
11953 (wmmxt_transfer_c2): Likewise.
11954 (wmmxt_transfer_c3): Likewise.
11955 (marvell_f_iwmmxt_wstr): Likewise.
11956 (marvell_f_iwmmxt_wldr): Likewise.
11957
bdb7bf8a
YZ
119582013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
11959
0ba6aff3 11960 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 11961
e6631d38
VM
119622013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11963
11964 Revert:
11965 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11966 * lra-constraints.c (need_for_split_p): Check call used hard regs
11967 living through calls.
11968
11969 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
11970 call used regs for call insn.
11971
53c1275b
JJ
119722013-06-28 Jakub Jelinek <jakub@redhat.com>
11973
11974 PR target/57736
0ba6aff3
UB
11975 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
11976 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 11977
1141ed3f
BI
119782013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11979
11980 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 11981
e32e4c4a
VM
119822013-06-28 Vladimir Makarov <vmakarov@redhat.com>
11983
11984 * lra-constraints.c (need_for_split_p): Check call used hard regs
11985 living through calls.
11986
f161bfd3
MM
119872013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
11988
11989 PR target/57744
11990 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
11991 to tie with any other modes. Eliminate Altivec vector mode tests,
11992 since these are a subset of ALTIVEC or VSX vector modes. Simplify
11993 code, to return 0 if testing MODE2 for a condition, if we've
11994 already tested MODE1 for the same condition.
11995
7eda14e1
MS
119962013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
11997
11998 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
11999 layout.
12000
c822f852
MS
120012013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
12002
12003 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
12004 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
12005
da4f13a4
MS
120062013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
12007
0ba6aff3
UB
12008 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
12009 Define.
da4f13a4
MS
12010 (aarch64_symbolic_constant_p): Remove.
12011 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
12012 static. Fix line length and white space.
12013 (aarch64_symbolic_constant_p): Remove.
12014 * config/aarch64/predicates.md (aarch64_valid_symref):
12015 Use aarch64_classify_symbol_expression.
12016
956a95a5
KT
120172013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12018
12019 * config/arm/constraints.md (Ts): New constraint.
12020 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
12021 16-bit encodings.
12022 (compare_scc): Use "Ts" constraint for operand 0.
12023 (ior_scc_scc): Likewise.
12024 (and_scc_scc): Likewise.
12025 (and_scc_scc_nodom): Likewise.
12026 (ior_scc_scc_cmp): Likewise for operand 7.
12027 (and_scc_scc_cmp): Likewise.
12028 * config/arm/thumb2.md (thumb2_movsi_insn):
12029 Add alternatives for 16-bit encodings.
12030 (thumb2_movhi_insn): Likewise.
12031 (thumb2_movsicc_insn): Likewise.
12032 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
12033 (thumb2_negscc): Use "Ts" constraint.
12034 Move mvn instruction outside cond_exec block.
12035 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
12036 for 16-bit encodings.
12037
31dfce10
KT
120382013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12039
12040 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
12041 encoding.
12042 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
12043 (mulsi3subsi): Likewise.
12044 (mulsidi3adddi): Likewise.
12045 (mulsidi3_v6): Likewise.
12046 (umulsidi3_v6): Likewise.
12047 (umulsidi3adddi_v6): Likewise.
12048 (smulsi3_highpart_v6): Likewise.
12049 (umulsi3_highpart_v6): Likewise.
12050 (mulhisi3tb): Likewise.
12051 (mulhisi3bt): Likewise.
12052 (mulhisi3tt): Likewise.
12053 (maddhisi4): Likewise.
12054 (maddhisi4tb): Likewise.
12055 (maddhisi4tt): Likewise.
12056 (maddhidi4): Likewise.
12057 (maddhidi4tb): Likewise.
12058 (maddhidi4tt): Likewise.
12059 (zeroextractsi_compare0_scratch): Likewise.
12060 (insv_zero): Likewise.
12061 (insv_t2): Likewise.
12062 (anddi_notzesidi_di): Likewise.
12063 (anddi_notsesidi_di): Likewise.
12064 (andsi_notsi_si): Likewise.
12065 (iordi_zesidi_di): Likewise.
12066 (xordi_zesidi_di): Likewise.
12067 (andsi_iorsi3_notsi): Likewise.
12068 (smax_0): Likewise.
12069 (smax_m1): Likewise.
12070 (smin_0): Likewise.
12071 (not_shiftsi): Likewise.
12072 (unaligned_loadsi): Likewise.
12073 (unaligned_loadhis): Likewise.
12074 (unaligned_loadhiu): Likewise.
12075 (unaligned_storesi): Likewise.
12076 (unaligned_storehi): Likewise.
12077 (extv_reg): Likewise.
12078 (extzv_t2): Likewise.
12079 (divsi3): Likewise.
12080 (udivsi3): Likewise.
12081 (arm_zero_extendhisi2addsi): Likewise.
12082 (arm_zero_extendqisi2addsi): Likewise.
12083 (compareqi_eq0): Likewise.
12084 (arm_extendhisi2_v6): Likewise.
12085 (arm_extendqisi2addsi): Likewise.
12086 (arm_movt): Likewise.
12087 (thumb2_ldrd): Likewise.
12088 (thumb2_ldrd_base): Likewise.
12089 (thumb2_ldrd_base_neg): Likewise.
12090 (thumb2_strd): Likewise.
12091 (thumb2_strd_base): Likewise.
12092 (thumb2_strd_base_neg): Likewise.
12093 (arm_negsi2): Add alternative for 16-bit encoding.
12094 (arm_one_cmplsi2): Likewise.
12095
1572e697
KT
120962013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12097
12098 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
12099 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
12100 (movdfcc): Likewise.
12101 * config/arm/vfp.md (*thumb2_movsf_vfp):
12102 Disable predication for arm_restrict_it.
12103 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
12104 (*thumb2_movdfcc_vfp): Likewise.
12105 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
12106 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
12107 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
12108 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
12109 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
12110 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
12111 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
12112 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
12113 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
12114 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
12115 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
12116 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
12117 Disable predication for arm_restrict_it.
12118
ebf8f0ea
KY
121192013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
12120
12121 * config/i386/bmiintrin.h (_bextr_u32): New.
12122 (_bextr_u64): Ditto.
12123
a290fcda
RS
121242013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
12125
12126 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
12127 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
12128 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
12129 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
12130 * config/mips/n32-elf.h: ...this new file.
12131
ea169996
MG
121322013-06-27 Marc Glisse <marc.glisse@inria.fr>
12133
12134 PR target/57224
12135 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
12136 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
12137
12211b99 121382013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
12139
12140 * config/mips/mips-tables.opt: Regenerate.
12141 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 12142 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 12143 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 12144
2444244e
JJ
121452013-06-27 Jakub Jelinek <jakub@redhat.com>
12146
cd06d2a2
JJ
12147 PR target/57623
12148 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
12149 constraints of operand 1 and 2.
12150
2444244e
JJ
12151 PR target/57623
12152 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
12153 to match RTL canonicalization. Swap predicates and
12154 constraints of operand 1 and 2.
12155
2f259720
VM
121562013-06-27 Vladimir Makarov <vmakarov@redhat.com>
12157
0ba6aff3
UB
12158 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
12159 Process OP_INOUT regs for splitting too.
2f259720 12160
fef4d2b3
JJ
121612013-06-27 Jakub Jelinek <jakub@redhat.com>
12162
12163 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
12164 decl before the loop, initialize to NULL.
12165 (vectorizable_load): Initialize ptr_incr to NULL.
12166
79ee9826
MJ
121672013-06-27 Martin Jambor <mjambor@suse.cz>
12168
12169 PR lto/57208
12170 * ipa-ref.h (ipa_maybe_record_reference): Declare.
12171 * ipa-ref.c (ipa_maybe_record_reference): New function.
12172 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
12173 * ipa-cp.c (create_specialized_node): Record potential references from
12174 aggvals.
12175 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
12176
e18b4a81
YZ
121772013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12178
12179 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
12180 parameter 'mode' of type 'enum machine_mode mode'; change to pass
12181 'mode' to force_reg.
12182 (aarch64_add_offset): Update calls to aarch64_force_temporary.
12183 (aarch64_expand_mov_immediate): Likewise.
12184
9c023bf0
YZ
121852013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
12186
12187 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
12188 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
12189
5a3fe9b6
AK
121902013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12191
12192 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
12193 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12194 (struct machine_function): Add tbegin_p.
12195 (s390_canonicalize_comparison): Fold CC mode compares to
12196 conditional jump if possible.
12197 (s390_emit_jump): Return the emitted jump.
12198 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
12199 Handle CCRAWmode compares.
12200 (s390_option_override): Default to -mhtm if available.
12201 (s390_reg_clobbered_rtx): Handle floating point regs as well.
12202 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
12203 FPRs instead of df_regs_ever_live_p.
12204 (s390_optimize_nonescaping_tx): New function.
12205 (s390_init_frame_layout): Extend clobbered_regs array to cover
12206 FPRs as well.
12207 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
12208 (s390_expand_tbegin): New function.
12209 (enum s390_builtin): New enum definition.
12210 (code_for_builtin): New array definition.
12211 (s390_init_builtins): New function.
12212 (s390_expand_builtin): New function.
12213 (TARGET_INIT_BUILTINS): Define.
12214 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 12215 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
12216 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
12217 (s390_alc_comparison): Likewise.
12218 * config/s390/s390-modes.def: Add CCRAWmode.
12219 * config/s390/s390.h (processor_flags): Add PF_TX.
12220 (TARGET_CPU_HTM): Define macro.
12221 (TARGET_HTM): Define macro.
12222 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
12223 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
12224 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
12225 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 12226 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
12227 (TBEGIN_MASK, TBEGINC_MASK): New constants.
12228 ("*cc_to_int"): Move up.
12229 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
12230 constants other than 0.
12231 ("*ccraw_to_int"): New insn and splitter definition.
12232 ("tbegin", "tbegin_nofloat", "tbegin_retry")
12233 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
12234 ("tx_assist"): New expander.
12235 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
12236 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
12237 * config/s390/s390.opt: Add -mhtm option.
12238 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
12239 * config/s390/htmxlintrin.h: New file.
12240 * config/s390/htmintrin.h: New file.
12241 * config/s390/s390intrin.h: New file.
12242 * doc/extend.texi: Document htm builtins.
12243 * config.gcc: Add the new header files to extra_headers.
12244
9e216629
TS
122452013-06-26 Thomas Schwinge <thomas@codesourcery.com>
12246
12247 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 12248 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 12249
fd8c65e7 122502013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
12251 Pat Haugen <pthaugen@us.ibm.com>
12252 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
12253
12254 * config/rs6000/power8.md: New.
12255 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
12256 setting for power8 entry.
12257 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
12258 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
12259 test for Power4/Power5 only.
12260 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
12261 support.
12262 (force_new_group): Adjust comment.
12263 * config/rs6000/rs6000.md: Include power8.md.
12264
b24a2ce5
GY
122652013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
12266
12267 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
12268 * config/arm/arm-protos.h (arm_max_conditional_execute): New
12269 declaration.
12270 (tune_params): Update comment.
12271 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
12272 (arm_max_conditional_execute): New function.
12273 (thumb2_final_prescan_insn): Use max_insn_skipped and
12274 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
12275
f6fdeb62
JJ
122762013-06-25 Jakub Jelinek <jakub@redhat.com>
12277
12278 PR tree-optimization/57705
12279 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
12280 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 12281 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
12282 (get_initial_def_for_induction): Handle SSA_NAME IV step.
12283
c13bc3d9
MJ
122842013-06-25 Martin Jambor <mjambor@suse.cz>
12285
12286 PR middle-end/57670
12287 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
12288 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
12289 calls in the dump.
12290 (ipa_note_param_call): Initialize member_ptr flag.
12291 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
12292 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
12293 (ipa_write_indirect_edge_info): Stream member_ptr flag.
12294 (ipa_read_indirect_edge_info): Likewise.
12295
8a845901
RB
122962013-06-25 Richard Biener <rguenther@suse.de>
12297
12298 PR middle-end/56977
12299 * passes.c (init_optimization_passes): Move pass_fold_builtins
12300 and pass_dce earlier with -Og.
12301
33be0bec
EB
123022013-06-25 Eric Botcazou <ebotcazou@adacore.com>
12303
12304 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
12305 <BIT_FIELD_REF>: Remove trailing TAB.
12306 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
12307 remove blank line.
12308
5fe8e757
MJ
123092013-06-24 Martin Jambor <mjambor@suse.cz>
12310
12311 PR tree-optimization/57358
12312 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
12313 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
12314 (ipa_analyze_params_uses): Generate pessimistic info when true.
12315
44a60244
MJ
123162013-06-24 Martin Jambor <mjambor@suse.cz>
12317
12318 PR tree-optimization/57539
12319 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
12320 global.inlined_to of the new node to it. All callers changed.
12321 * ipa-inline-transform.c (clone_inlined_nodes): New variable
12322 inlining_into, pass it to cgraph_clone_node.
12323 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
12324 ipa_free_edge_args_substructures.
12325 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
12326 rdesc linked list. Do not assert rdesc edges have inlined caller.
12327 Assert we have found an rdesc in the rdesc list.
12328
7c5848b8
RB
123292013-06-24 Richard Biener <rguenther@suse.de>
12330
0ba6aff3 12331 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
12332 (pointer_set_lookup): Declare.
12333 (class pointer_map): New template class implementing a
12334 generic pointer to T map.
12335 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
12336 pointer_map<T>::contains, pointer_map<T>::insert,
12337 pointer_map<T>::traverse): New functions.
12338 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
12339 (pointer_set_lookup): New function.
12340 (pointer_set_contains): Use pointer_set_lookup.
12341 (pointer_set_insert): Likewise.
12342 (insert_aux): Remove.
12343 (struct pointer_map_t): Embed a pointer_set_t.
12344 (pointer_map_create): Adjust.
12345 (pointer_map_destroy): Likewise.
12346 (pointer_map_contains): Likewise.
12347 (pointer_map_insert): Likewise.
12348 (pointer_map_traverse): Likewise.
12349 * tree-streamer.h (struct streamer_tree_cache_d): Use a
12350 pointer_map<unsigned> instead of a pointer_map_t.
12351 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
12352 (streamer_tree_cache_lookup): Likewise.
12353 (streamer_tree_cache_create): Likewise.
12354 (streamer_tree_cache_delete): Likewise.
12355 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
12356 pointer_map<unsigned> instead of a pointer_map_t.
12357 (lto_init_tree_ref_encoder): Adjust.
12358 (lto_destroy_tree_ref_encoder): Likewise.
12359 * lto-section-out.c (lto_output_decl_index): Likewise.
12360 (lto_record_function_out_decl_state): Likewise.
12361 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
12362
3dbc97a9
RB
123632013-06-24 Richard Biener <rguenther@suse.de>
12364
12365 PR tree-optimization/57488
12366 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
12367
8345965a
AM
123682013-06-24 Alan Modra <amodra@gmail.com>
12369
12370 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
12371 (gen_easy_altivec_constant): Likewise.
12372 * config/rs6000/predicates.md (easy_vector_constant_add_self,
12373 easy_vector_constant_msb): Likewise.
12374
b7df379f
JJ
123752013-06-23 Jakub Jelinek <jakub@redhat.com>
12376
12377 PR target/57688
12378 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
12379 add missing return true.
12380
12211b99 123812013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
12382
12383 PR target/52483
12384 * config/sh/predicates.md (general_extend_operand): Invoke
12385 general_movsrc_operand for memory operands.
12386 (general_movsrc_operand): Allow reg+reg addressing, do not use
12387 general_operand for memory operands.
12388
97db2bf7
ST
123892013-06-23 Sriraman Tallam <tmsriram@google.com>
12390
12391 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
12392 when current target options does not apply.
12393 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
12394 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
12395 * config/i386/bmiintrin.h: Pass appropriate target
12396 attributes to header.
97db2bf7
ST
12397 * config/i386/mmintrin.h: Ditto.
12398 * config/i386/nmmintrin.h: Ditto.
12399 * config/i386/avx2intrin.h: Ditto.
12400 * config/i386/fxsrintrin.h: Ditto.
12401 * config/i386/tbmintrin.h: Ditto.
12402 * config/i386/xsaveintrin.h: Ditto.
12403 * config/i386/f16cintrin.h: Ditto.
12404 * config/i386/xtestintrin.h: Ditto.
12405 * config/i386/xsaveoptintrin.h: Ditto.
12406 * config/i386/bmi2intrin.h: Ditto.
12407 * config/i386/lzcntintrin.h: Ditto.
12408 * config/i386/smmintrin.h: Ditto.
12409 * config/i386/wmmintrin.h: Ditto.
12410 * config/i386/x86intrin.h: Remove all header include guards.
12411 * config/i386/prfchwintrin.h: Ditto.
12412 * config/i386/pmmintrin.h: Ditto.
12413 * config/i386/tmmintrin.h: Ditto.
12414 * config/i386/xmmintrin.h: Ditto.
12415 * config/i386/popcntintrin.h: Ditto.
12416 * config/i386/rdseedintrin.h: Ditto.
12417 * config/i386/ammintrin.h: Ditto.
12418 * config/i386/emmintrin.h: Ditto.
12419 * config/i386/immintrin.h: Remove all header include guards.
12420 * config/i386/fma4intrin.h: Ditto.
12421 * config/i386/lwpintrin.h: Ditto.
12422 * config/i386/xopintrin.h: Ditto.
12423 * config/i386/ia32intrin.h: Ditto.
12424 * config/i386/avxintrin.h: Ditto.
12425 * config/i386/rtmintrin.h: Ditto.
12426 * config/i386/fmaintrin.h: Ditto.
12427 * config/i386/mm3dnow.h: Ditto.
12428
495e6879
ST
124292013-06-22 Sriraman Tallam <tmsriram@google.com>
12430
12431 * common/config/i386/i386-common.c: Handle LZCNT.
12432
11e8f687
AK
124332013-06-22 Andi Kleen <ak@linux.intel.com>
12434
12435 * doc/extend.texi: Use __atomic_store_n instead of
12436 __atomic_store in HLE example.
12437
12211b99 124382013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
12439
12440 * config/sh/sh.c: Remove <cstdlib> workaround.
12441
927f908b
AK
124422013-06-21 Andi Kleen <ak@linux.intel.com>
12443
0ba6aff3 12444 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 12445
cca410b6
AK
124462013-06-21 Andi Kleen <ak@linux.intel.com>
12447
12448 * doc/extend.texi: Document that __atomic_clear and
12449 __atomic_test_and_set should only be used with bool.
12450
d84db1ed
JH
124512013-06-20 Jan Hubicka <jh@suse.cz>
12452
12453 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
12454 types_same_for_odr.
12455 * tree.c (decls_same_for_odr): New function.
12456 (same_for_edr): New function.
12457 (types_same_for_odr): New function.
12458 (get_binfo_at_offset): Use it.
12459 * tree.h (types_same_for_odr): Declare.
12460
12211b99 124612013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
12462 Jason Merrill <jason@redhat.com>
12463
12464 * system.h: Include <cstdlib> as well as <stdlib.h>.
12465
49b4ff63
UB
124662013-06-20 Uros Bizjak <ubizjak@gmail.com>
12467
12468 PR target/57655
12469 * config/i386/i386.c (construct_container): Report error if
12470 long double is used with disabled x87 float returns.
12471
7a89ad00
JH
124722013-06-20 Jan Hubicka <jh@suse.cz>
12473
12474 * lto-cgraph.c (input_symtab): Do not set cgraph state.
12475
12211b99 124762013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
12477
12478 PR rtl-optimization/57425
12479 PR rtl-optimization/57569
12480 * alias.c (write_dependence_p): Remove parameters mem_mode and
12481 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
12482 Changed all callers.
12483 (canon_anti_dependence): Get comments and semantics in sync.
12484 Add parameter mem_canonicalized. Changed all callers.
12485 * rtl.h (canon_anti_dependence): Update prototype.
12486
d16e9a99
RB
124872013-06-20 Richard Biener <rguenther@suse.de>
12488
12489 * data-streamer-in.c (streamer_read_uhwi): Optimize single
12490 byte case, inline streamer_read_uchar and defer section
12491 overrun check.
12492
c3a9b91b
RB
124932013-06-20 Richard Biener <rguenther@suse.de>
12494
12495 PR tree-optimization/57584
12496 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
12497 SSA names into the expanded expression that take part in
12498 abnormal coalescing.
12499
371e77e3 125002013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
12501
12502 * gcov.c (print_usage): Handle new option.
12503 (process_args): Ditto.
12504 (get_gcov_intermediate_filename): New function.
12505 (output_intermediate_file): New function.
12506 (output_gcov_file): New function
12507 (generate_results): Handle new option.
12508 (release_function): Relase demangled name.
12509 (read_graph_file): Handle demangled name.
12510 (output_lines): Ditto.
12511 * doc/gcov.texi: Document gcov intermediate format.
12512
11f5b71a
VM
125132013-06-19 Vladimir Makarov <vmakarov@redhat.com>
12514
12515 PR bootstrap/57604
12516 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
12517 (lra_emit_add): Use the functions. Add comment about Y as an
12518 address segment.
12519
e1f9340b
DE
125202013-06-19 David Edelsohn <dje.gcc@gmail.com>
12521
12522 PR driver/57652
12523 * collect2.c (collect_atexit): New.
12524 (collect_exit): Delete.
12525 (main): Register collect_atexit with atexit.
12526 (collect_wait): Change collect_exit to exit.
12527 (do_wait): Same.
12528 * collect2.h (collect_exit): Delete.
12529 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
12530
e3f9e0ac
WM
125312013-06-19 Wei Mi <wmi@google.com>
12532
12533 PR rtl-optimization/57518
12534 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
12535 if regno is used in paradoxical subreg.
12536 (update_equiv_regs): Check pdx_subregs[regno] before
12537 set a reg to be equivalent with a mem.
12538
a09f1a76
MK
125392013-06-19 Matthias Klose <doko@ubuntu.com>
12540
12541 PR driver/57651
12542 * file-find.h (find_a_file): Add a mode parameter.
12543 * file-find.c (find_a_file): Likewise.
12544 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
12545 with X_OK for the executables.
12546 * collect2.c (main): Call find_a_file with X_OK.
12547
7d18b0ad
SE
125482013-06-19 Steve Ellcey <sellcey@mips.com>
12549
12550 PR target/56942
12551 * config/mips/mips.md (casesi_internal_mips16_<mode>):
12552 Use NEXT_INSN instead of next_real_insn.
12553
6a6dac52
JH
125542013-06-19 Jan Hubicka <jh@suse.cz>
12555
12556 * cgraph.h (const_value_known_p): Replace by ...
12557 (ctor_for_folding): .. this one.
12558 * cgraphunit.c (process_function_and_variable_attributes): Use it.
12559 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
12560 * expr.c (expand_expr_real_1): Likewise.
12561 (string_constant): Likewise.
12562 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
12563 * ipa.c (process_references): Likewise.
12564 (symtab_remove_unreachable_nodes): Likewise.
12565 * ipa-inline-analysis.c (param_change_prob): Likewise.
12566 * gimple-fold.c (canonicalize_constructor_val): Likewise.
12567 (get_base_constructor): Likwise.
12568 * varpool.c (varpool_remove_node): Likewise.
12569 (varpool_remove_initializer): LIkewise.
12570 (dump_varpool_node): LIkwise.
12571 (const_value_known_p): Rewrite to ...
12572 (ctor_for_folding): ... this one.
12573
216c12ab
JJ
125742013-06-19 Jakub Jelinek <jakub@redhat.com>
12575
12576 PR driver/57651
12577 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
12578 PERSONALITY in $PATH derived prefixes.
12579
d53e2f99
JL
125802013-06-19 Jeff Law <law@redhat.com>
12581
ecdbf306
JL
12582 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
12583 in comment.
12584
d53e2f99
JL
12585 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
12586 (simplify_bitwise_binary): Use it to simpify certain binary ops on
12587 booleans.
12588
89e7fc04
SN
125892013-06-19 Sofiane Naci <sofiane.naci@arm.com>
12590
12591 * config/arm/vfp.md: Move VFP instruction classification documentation
12592 to ...
12593 * config/arm/arm.md: ... here. Update instruction classification
12594 documentation.
12595
5e7f6aaa
RE
125962013-06-19 Richard Earnshaw <rearnsha@arm.com>
12597
12598 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
12599 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
12600 pattern. Use more efficient sequences on ARMv5 and Thumb2.
12601
5fdc1e5d
SB
126022013-06-19 Steven Bosscher <steven@gcc.gnu.org>
12603
12604 PR target/57609
12605 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12606 with NEXT_INSN. Use tablejump_p to check for jump table data
12607 insns.
12608
e952afba
PC
126092013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
12610
12611 PR c++/56544
12612 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
12613 that now in C++ the value is correct per the C++ standards.
12614
3fd0303a
RB
126152013-06-19 Richard Biener <rguenther@suse.de>
12616
12617 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
12618 for global context.
12619
b04e4b08
AK
126202013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12621
12622 Revert:
12623 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12624
12625 PR target/57609
12626 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12627 with next_active_insn.
12628
bef8491a
ST
126292013-06-18 Sriraman Tallam <tmsriram@google.com>
12630
12631 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
12632 functions are inlined during failures to flag an error.
12633 * tree-inline.c (expand_call_inline): Allow the error to be flagged
12634 in early inline pass.
22fc7d3d 12635
c21b257d
L
126362013-06-18 H.J. Lu <hongjiu.lu@intel.com>
12637
12638 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
12639 in comments.
12640
33255ae3
JB
126412013-06-18 Julian Brown <julian@codesourcery.com>
12642
12643 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
12644 Permit virtual register pre-reload if !strict.
12645 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
12646 change.
12647 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
12648 prototype.
12649 * config/arm/neon.md (movmisalign<mode>): Use
12650 neon_perm_struct_or_reg_operand instead of
12651 neon_struct_or_register_operand.
12652 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
12653 neon_permissive_struct_operand instead of neon_struct_operand.
12654 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
12655 neon_vector_mem_operand.
12656 * config/arm/predicates.md (neon_struct_operand): Adjust call to
12657 neon_vector_mem_operand.
12658 (neon_permissive_struct_operand): New.
12659 (neon_struct_or_register_operand): Rename to...
12660 (neon_perm_struct_or_reg_operand): This. Adjust call to
12661 neon_vector_mem_operand.
12662
d579fcda
RB
126632013-06-18 Richard Biener <rguenther@suse.de>
12664
12665 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
12666 * lto-streamer.h: Include pointer-set.h.
12667 (struct lto_decl_slot): Remove.
12668 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
12669 Remove next_index entry.
12670 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12671 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12672 (lto_init_tree_ref_encoder): Adjust.
12673 (lto_destroy_tree_ref_encoder): Likewise.
12674 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
12675 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
12676 (lto_output_decl_index): Adjust.
12677 (lto_new_out_decl_state): Likewise.
12678 (lto_record_function_out_decl_state): Likewise.
12679 * lto-streamer-out.c (copy_function): Likewise.
12680
31ee20ba
RB
126812013-06-18 Richard Biener <rguenther@suse.de>
12682
12683 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
12684 * cgraphunit.c: Include cfgloop.h.
12685 (init_lowered_empty_function): Initialize the loop tree.
12686 (assemble_thunk): Insert new BBs into loops.
12687
ac0511f2
RB
126882013-06-18 Richard Biener <rguenther@suse.de>
12689
12690 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
12691 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
12692 the map from cache entry to cache index optional.
12693 (streamer_tree_cache_replace_tree): Adjust accordingly.
12694 (streamer_tree_cache_append): Likewise.
12695 (streamer_tree_cache_delete): Likewise.
12696 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
12697 streamer cache map from cache entry to cache index.
12698 * lto-streamer-out.c (create_output_block): Adjust.
12699
09485a08
SN
127002013-06-18 Sofiane Naci <sofiane.naci@arm.com>
12701
22fc7d3d
UB
12702 * config/arm/arm.md (attribute "insn"): Move multiplication and
12703 division attributes to...
09485a08
SN
12704 (attribute "type"): ... here. Remove mult.
12705 (attribute "mul32"): New attribute.
12706 (attribute "mul64"): Add umaal.
12707 (*arm_mulsi3): Update attributes.
12708 (*arm_mulsi3_v6): Likewise.
12709 (*thumb_mulsi3): Likewise.
12710 (*thumb_mulsi3_v6): Likewise.
12711 (*mulsi3_compare0): Likewise.
12712 (*mulsi3_compare0_v6): Likewise.
12713 (*mulsi_compare0_scratch): Likewise.
12714 (*mulsi_compare0_scratch_v6): Likewise.
12715 (*mulsi3addsi): Likewise.
12716 (*mulsi3addsi_v6): Likewise.
12717 (*mulsi3addsi_compare0): Likewise.
12718 (*mulsi3addsi_compare0_v6): Likewise.
12719 (*mulsi3addsi_compare0_scratch): Likewise.
12720 (*mulsi3addsi_compare0_scratch_v6): Likewise.
12721 (*mulsi3subsi): Likewise.
12722 (*mulsidi3adddi): Likewise.
12723 (*mulsi3addsi_v6): Likewise.
12724 (*mulsidi3adddi_v6): Likewise.
12725 (*mulsidi3_nov6): Likewise.
12726 (*mulsidi3_v6): Likewise.
12727 (*umulsidi3_nov6): Likewise.
12728 (*umulsidi3_v6): Likewise.
12729 (*umulsidi3adddi): Likewise.
12730 (*umulsidi3adddi_v6): Likewise.
12731 (*smulsi3_highpart_nov6): Likewise.
12732 (*smulsi3_highpart_v6): Likewise.
12733 (*umulsi3_highpart_nov6): Likewise.
12734 (*umulsi3_highpart_v6): Likewise.
12735 (mulhisi3): Likewise.
12736 (*mulhisi3tb): Likewise.
12737 (*mulhisi3bt): Likewise.
12738 (*mulhisi3tt): Likewise.
12739 (maddhisi4): Likewise.
12740 (*maddhisi4tb): Likewise.
12741 (*maddhisi4tt): Likewise.
12742 (maddhidi4): Likewise.
12743 (*maddhidi4tb): Likewise.
12744 (*maddhidi4tt): Likewise.
12745 (divsi3): Likewise.
12746 (udivsi3): Likewise.
12747 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
12748 (thumb2_mulsi_short_compare0): Likewise.
12749 (thumb2_mulsi_short_compare0_scratch): Likewise.
12750 * config/arm/arm1020e.md (1020mult1): Update attribute change.
12751 (1020mult2): Likewise.
12752 (1020mult3): Likewise.
12753 (1020mult4): Likewise.
12754 (1020mult5): Likewise.
12755 (1020mult6): Likewise.
22fc7d3d
UB
12756 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
12757 change.
09485a08
SN
12758 (cortex_a15_mult64): Likewise.
12759 (cortex_a15_sdiv): Likewise.
12760 (cortex_a15_udiv): Likewise.
12761 * config/arm/arm1026ejs.md (mult1): Update attribute change.
12762 (mult2): Likewise.
12763 (mult3): Likewise.
12764 (mult4): Likewise.
12765 (mult5): Likewise.
12766 (mult6): Likewise.
12767 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
12768 (pj4_ir_div): Likewise.
12769 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
12770 (11_mult2): Likewise.
12771 (11_mult3): Likewise.
12772 (11_mult4): Likewise.
12773 (11_mult5): Likewise.
12774 (11_mult6): Likewise.
12775 (11_mult7): Likewise.
12776 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
12777 (cortex_a8_mla): Likewise.
12778 (cortex_a8_mull): Likewise.
12779 (cortex_a8_smulwy): Likewise.
12780 (cortex_a8_smlald): Likewise.
12781 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
12782 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
12783 (cortex_r4_mul_3): Likewise.
12784 (cortex_r4_mla_4): Likewise.
12785 (cortex_r4_mla_3): Likewise.
12786 (cortex_r4_smlald): Likewise.
12787 (cortex_r4_mull): Likewise.
12788 (cortex_r4_sdiv): Likewise.
12789 (cortex_r4_udiv): Likewise.
12790 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
12791 (cortex_a7_idiv): Likewise.
12792 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
12793 (9_mult2): Likewise.
12794 (9_mult3): Likewise.
12795 (9_mult4): Likewise.
12796 (9_mult5): Likewise.
12797 (9_mult6): Likewise.
12798 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
12799 (cortex_a53_sdiv): Likewise.
12800 (cortex_a53_udiv): Likewise.
12801 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
12802 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
12803 (mp626_mult2): Likewise.
12804 (mp626_mult3): Likewise.
12805 (mp626_mult4): Likewise.
12806 * config/arm/fa526.md (526_mult1): Update attribute change.
12807 (526_mult2): Likewise.
12808 * config/arm/arm-generic.md (mult): Update attribute change.
12809 (mult_ldsched_strongarm): Likewise.
12810 (mult_ldsched): Likewise.
12811 (multi_cycle): Likewise.
12812 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
12813 * config/arm/fa606te.md (606te_mult1): Update attribute change.
12814 (606te_mult2): Likewise.
12815 (606te_mult3): Likewise.
12816 (606te_mult4): Likewise.
12817 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
12818 (cortex_a9_mac16): Likewise.
12819 (cortex_a9_multiply): Likewise.
12820 (cortex_a9_mac): Likewise.
12821 (cortex_a9_multiply_long): Likewise.
12822 * config/arm/fa626te.md (626te_mult1): Update attribute change.
12823 (626te_mult2): Likewise.
12824 (626te_mult3): Likewise.
12825 (626te_mult4): Likewise.
12826
8951f345
RB
128272013-06-18 Richard Biener <rguenther@suse.de>
12828
12829 PR lto/57334
12830 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
12831
d8101d05
AK
128322013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12833
12834 PR target/57609
12835 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
12836 with next_active_insn.
12837
69eff9da
AM
128382013-06-18 Alan Modra <amodra@gmail.com>
12839
12840 * config/rs6000/rs6000.h (enum data_align): New.
12841 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
12842 (DATA_ABI_ALIGNMENT): Define.
12843 (CONSTANT_ALIGNMENT): Correct comment.
12844 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
12845 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
12846
8ed00d76
DM
128472013-06-17 David Malcolm <dmalcolm@redhat.com>
12848
12849 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
12850 ATTRIBUTE_UNUSED marking.
12851
3d33d06b
SN
128522013-06-17 Sofiane Naci <sofiane.naci@arm.com>
12853
12854 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
12855 alternative and update.
12856 (aarch64_dup_lanedi): Delete.
12857 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
12858 * config/aarch64/aarch64-simd-builtins.def: Update.
12859
ee03e71d
RB
128602013-06-17 Richard Biener <rguenther@suse.de>
12861
12862 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
12863 (lto_input_scc): Declare.
12864 (lto_input_tree_1): Likewise.
12865 (struct lto_stats_d): Add num_tree_bodies_output and
12866 num_pickle_refs_output.
12867 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
12868 (lto_read_tree_1): Split out from ...
12869 (lto_read_tree): ... this.
12870 (lto_input_scc): New function.
12871 (lto_input_tree_1): Split out from ...
12872 (lto_input_tree): ... this. Handle LTO_tree_scc.
12873 (lto_data_in_create): Create the streamer cache without hashes.
12874 * lto-streamer-out.c (create_output_block): Create the streamer
12875 cache with hashes when not doing WPA.
12876 (lto_write_tree_1): Split out from ...
12877 (lto_write_tree): ... this.
12878 (get_symbol_initial_value): New function.
12879 (lto_output_tree_1): Split out from ...
12880 (lto_output_tree): ... this. Write trees as series of SCCs
12881 using a DFS walk via DFS_write_tree.
12882 (struct sccs, struct scc_entry): New types.
12883 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
12884 (DFS_write_tree_body): New function.
12885 (DFS_write_tree): Likewise.
12886 (hash_tree): Likewise.
12887 (scc_entry_compare): Likewise.
12888 (hash_scc): Likewise.
12889 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
12890 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
12891 TREE_CHAIN as regular reference.
12892 (streamer_read_integer_cst): Remove.
12893 (streamer_get_pickled_tree): Adjust.
12894 * tree-streamer-out.c (streamer_write_chain): Disable streaming
12895 of DECL_EXTERNALs in BLOCK_VARS for now.
12896 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
12897 reference.
12898 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
12899 Add hash value argument and record that if hashes are recorded
12900 in the cache.
12901 (streamer_tree_cache_insert_1): Adjust.
12902 (streamer_tree_cache_insert): Likewise.
12903 (streamer_tree_cache_insert_at): Rename to ...
12904 (streamer_tree_cache_replace_tree): ... this and adjust.
12905 (streamer_tree_cache_append): Adjust.
12906 (record_common_node): Likewise.
12907 (streamer_tree_cache_create): Add argument whether to
12908 record hash values together with trees.
12909 (streamer_tree_cache_delete): Adjust.
12910 * tree-streamer.h (struct streamer_tree_cache_d): Add
12911 vector of hashes.
12912 (streamer_read_integer_cst): Remove.
12913 (streamer_tree_cache_insert): Adjust.
12914 (streamer_tree_cache_append): Likewise.
12915 (streamer_tree_cache_insert_at): Rename to ...
12916 (streamer_tree_cache_replace_tree): ... this and adjust.
12917 (streamer_tree_cache_create): Add argument whether to record hashes.
12918 (streamer_tree_cache_get): Rename to ...
12919 (streamer_tree_cache_get_tree): ... this.
12920 (streamer_tree_cache_get_hash): New function.
12921 * tree.c (cache_integer_cst): New function.
12922 * tree.h (cache_integer_cst): Declare.
12923 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
12924 * lto-symtab.c (lto_varpool_replace_node): Only release
12925 DECL_INITIAL of non-prevailing decls.
12926 * varpool.c (varpool_remove_initializer): Do not release
12927 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
12928
0de86a92
JU
129292013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12930
12931 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
12932 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
12933 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
12934 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
12935 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
12936 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
12937 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
12938 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
12939 instead of TARGET_64BIT.
12940 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
12941 Require ISA_HAS_<D>DIV.
12942
74240413
RS
129432013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
12944
12945 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
12946 (mips*-*-linux*): Move default with_llsc setting to where other
12947 defaults are set.
12948 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
12949 with_arch block.
12950 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
12951 Likewise. Remove default with_tune setting. Move default float
12952 setting to its own block. Handle with_llsc in the same block as above.
12953
12211b99 129542013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
12955
12956 PR rtl-optimization/57425
12957 PR rtl-optimization/57569
299a5f6a 12958 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
12959 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
12960 Changed all callers.
12961 (canon_anti_dependence): New function.
12962 * cse.c (check_dependence): Use canon_anti_dependence.
12963 * cselib.c (cselib_invalidate_mem): Likewise.
12964 * rtl.h (canon_anti_dependence): Declare.
12965
b259d352
JU
129662013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
12967
12968 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
12969 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
12970 ".set mips3" for 64-bit targets.
12971
4de09b85
DC
129722013-06-15 Dehao Chen <dehao@google.com>
12973
12974 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
12975 * gimple-low.c (gimple_check_call_matching_types): Likewise.
12976 (gimple_check_call_args): Likewise.
12977 * value-prof.c (check_ic_target): Likewise.
12978 * ipa-inline.c (early_inliner): Likewise.
12979 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
12980 * cgraph.c (cgraph_create_edge_1): Likewise.
12981 (cgraph_make_edge_direct): Likewise.
12982
d1aa4a76
MM
129832013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12984
12985 PR target/57615
12986 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
12987 rs6000_output_move_128bit to handle emitting quad memory
12988 operations. Set attribute length to 8 bytes.
12989
12211b99 129902013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
12991
12992 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
12993 New pattern.
12994 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
12995 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
12996 (aarch64_<su>mlsl<mode>): Likewise.
12997
f5273574
MS
129982013-06-14 Mike Stump <mikestump@comcast.net>
12999
13000 * Makefile.in (TARGET_H): Add insn-codes.h.
13001
ef7e7ab2
AM
130022013-06-14 Alan Modra <amodra@gmail.com>
13003
13004 PR middle-end/57134
13005 PR middle-end/57586
13006 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
13007 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
13008 bitfield expansion when EXPAND_MEMORY.
13009 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
13010
135faab6
MM
130112013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
13012
13013 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
13014 test for clearing quad memory on 32-bit later.
13015
948a1fd9
MG
130162013-06-13 Marc Glisse <marc.glisse@inria.fr>
13017
13018 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
13019 (fold_negate_expr): Likewise.
13020 (fold_real_zero_addition_p): Handle vectors.
13021 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
13022
0597fb9c
AM
130232013-06-14 Alan Modra <amodra@gmail.com>
13024
13025 * varasm.c (force_const_mem): Revert 2013-06-07 change.
13026
e5b962d0
JH
130272013-06-13 Jan Hubicka <jh@suse.cz>
13028
13029 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
13030 Local comdats are not externally visible.
13031 * symtab.c (dump_symtab_base): Dump externally visible.
13032 (verify_symtab_base): Verify back links in the symtab hash.
13033
a8355e51
BC
130342013-06-13 Bin Cheng <bin.cheng@arm.com>
13035
13036 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
13037 CONVERT_EXPR as equal nodes.
13038
8f7e6e33
BC
130392013-06-13 Bin Cheng <bin.cheng@arm.com>
13040
22fc7d3d 13041 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 13042
5d418483
MG
130432013-06-13 Marc Glisse <marc.glisse@inria.fr>
13044
13045 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
13046 Generalize to complex and vector.
13047 * tree.c (build_all_ones_cst): New function.
13048 * tree.h (build_all_ones_cst): Declare it.
13049
50751417
AM
130502013-06-13 Alan Modra <amodra@gmail.com>
13051
13052 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
13053 * config/rs6000/rs6000.md (signbittf2): New insn.
13054 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
13055 (abstf2_internal, cmptf_internal2): Likewise.
13056 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
13057
4b02c962 130582013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13059 Pat Haugen <pthaugen@us.ibm.com>
13060 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
13061
13062 * config/rs6000/rs6000.c (emit_load_locked): Add support for
13063 power8 byte, half-word, and quad-word atomic instructions.
13064 (emit_store_conditional): Likewise.
13065 (rs6000_expand_atomic_compare_and_swap): Likewise.
13066 (rs6000_expand_atomic_op): Likewise.
13067
13068 * config/rs6000/sync.md (larx): Add new modes for power8.
13069 (stcx): Likewise.
13070 (AINT): New mode iterator to include TImode as well as normal
13071 integer modes on power8.
13072 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
13073 that VSX registers are not considered. Use AINT mode iterator
13074 instead of INT1 to allow inclusion of quad word atomic operations
13075 on power8.
13076 (load_locked<mode>): Likewise.
13077 (store_conditional<mode>): Likewise.
13078 (atomic_compare_and_swap<mode>): Likewise.
13079 (atomic_exchange<mode>): Likewise.
13080 (atomic_nand<mode>): Likewise.
13081 (atomic_fetch_<fetchop_name><mode>): Likewise.
13082 (atomic_nand_fetch<mode>): Likewise.
13083 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
13084 each type.
13085 (ATOMIC): On power8, add QImode, HImode modes.
13086 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
13087 modes that promote to SImode.
13088 (load_lockedti): Convert TImode arguments to PTImode, so that we
13089 get a guaranteed even/odd register pair.
13090 (load_lockedpti): Likewise.
13091 (store_conditionalti): Likewise.
13092 (store_conditionalpti): Likewise.
13093
13094 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
13095 atomic load/store instructions.
13096 (HSI): Likewise.
13097
710b6cc1
RS
130982013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
13099
13100 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
13101 loads.
13102 (insn_count): New attribute, with most cases extracted from...
13103 (length): ...here. Redefine most cases in terms of insn_count.
13104 (single_insn): Delete.
13105 (can_delay): Use insn_count to check for single instructions.
13106 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
13107 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
13108 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
13109 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
13110 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
13111 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
13112 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
13113 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
13114 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
13115 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
13116 rather than "length".
13117 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
13118 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
13119 Use "insn_count" rather than "length".
13120 * config/mips/mips-dsp.md
13121 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
13122 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
13123 length attributes.
13124
1951f101
MG
131252013-06-12 Marc Glisse <marc.glisse@inria.fr>
13126
13127 PR tree-optimization/57361
13128 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
13129
8b033a8a
SN
131302013-06-12 Sofiane Naci <sofiane.naci@arm.com>
13131
22fc7d3d
UB
13132 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
13133 to split.
8b033a8a
SN
13134 (aarch64_simd_combine<mode>): New instruction expansion.
13135 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
13136 function prototype.
13137 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
13138 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
13139
ca0f62a8
JH
131402013-06-12 Jan Hubicka <jh@suse.cz>
13141
13142 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
13143 decl has when in streaming stage.
13144 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
13145 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
13146
12211b99 131472013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
13148
13149 PR target/57578
13150 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
13151
bfdeda2c
JJ
131522013-06-12 Jakub Jelinek <jakub@redhat.com>
13153
13154 PR tree-optimization/57537
13155 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
13156 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
13157
a4fa02d1
RB
131582013-06-12 Richard Biener <rguenther@suse.de>
13159
13160 * data-streamer.h (streamer_write_char_stream): CSE
13161 obs->current_pointer.
13162 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
13163 streamer_write_char_stream manually and optimize the resulting loop.
13164 (streamer_write_hwi_stream): Likewise.
13165
bbf9ad07
JH
131662013-06-12 Jan Hubicka <jh@suse.cz>
13167
13168 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
13169 * cgraph.h (varpool_create_empty_node): Declare.
13170 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
13171 duplicated nodes.
13172 * symtab.c (symtab_unregister_node): Be lax about missin entries
13173 in node hash.
13174 (symtab_get_node): Update comment.
13175 * varpool.c (varpool_create_empty_node): Break out from ...
13176 (varpool_node_for_decl): ... here.
13177 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
13178
a53f90ad
EB
131792013-06-12 Eric Botcazou <ebotcazou@adacore.com>
13180
13181 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
13182 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
13183 part. Use straight-line flow at the end.
13184 <COMPONENT_REF>: Remove superfluous else.
13185 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
13186
946f9306
JJ
131872013-06-12 Jakub Jelinek <jakub@redhat.com>
13188
13189 PR target/56564
13190 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
13191 target hook even for !TREE_PUBLIC decls. If no resolution info
13192 is available, return false for common and external decls.
13193
a7fca6f0
KP
131942013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
13195
13196 * config/rl78/constraints.md (U): New constraint.
13197 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
13198 valloc attribute.
13199
c7d8f446
MM
132002013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13201
13202 PR target/57589
13203 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
13204 to allow returning address to AT_PLATFORM name.
13205
08346abd
JH
132062013-06-11 Jan Hubicka <jh@suse.cz>
13207
13208 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
13209 * cgraph.h (symtab_node_base): Add weakref flag.
13210 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
13211 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
13212 (output_weakrefs): Use weakref flag.
13213 * fold-const.c (simple_operand_p): Handle WEAK.
13214 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
13215 * ipa.c (varpool_externally_visible_p): Drop weakref.
13216 (function_and_variable_visibility): Update comment; fix weakref
13217 sanity checks; do not clear DECL_WEAK on them.
13218 * lto-cgraph.c (lto_output_node): update.
13219 (lto_output_varpool_node): Update.
13220 (input_overwrite_node): Update.
13221 (input_node): Update.
13222 (input_varpool_node): Update.
13223 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
13224 (lto_symtab_merge_symbols): Add sanity check.
13225 (lto_symtab_prevailing_decl): Do not special case weakrefs.
13226 * passes.c (rest_of_decl_compilation): Set static flag, too.
13227 * symtab.c (dump_symtab_base): Dump weakref.
13228 (verify_symtab_base): Sanity check weakrefs.
13229 (symtab_make_decl_local): Remove duplicated code.
13230 (symtab_alias_ultimate_target): Simplify.
13231 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 13232
2e6a2f88
TV
132332013-06-11 Tom de Vries <tom@codesourcery.com>
13234
13235 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
13236 sequence_vect == NULL.
13237
d9af3652
DD
132382013-06-11 DJ Delorie <dj@redhat.com>
13239
13240 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
13241 (rl78_unwind_word_mode): New.
13242
ffa66012
DM
132432013-06-11 David Malcolm <dmalcolm@redhat.com>
13244
13245 * final.c (debug_prefix_maps): Make static.
13246
783f2d35
DM
132472013-06-11 David Malcolm <dmalcolm@redhat.com>
13248
13249 * function.c (initial_trampoline): Remove stray copy.
13250
7af26def
SN
132512013-06-11 Sofiane Naci <sofiane.naci@arm.com>
13252
13253 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
13254
97756c0e
MJ
132552013-06-11 Martin Jambor <mjambor@suse.cz>
13256
13257 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
13258 within bounds at the beginning of the function.
13259
2c7b8bf6
AM
132602013-06-11 Alan Modra <amodra@gmail.com>
13261
13262 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
13263 reporting.
13264 (get_named_section): Don't NULL !DECL_P decl.
13265
77cea46e
IZ
132662013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
13267
13268 * doc/invoke.texi (core-avx2): Document.
13269 (slm): Likewise.
13270 (atom): Updated with MOVBE.
13271
888f0920
RB
132722013-06-11 Richard Biener <rguenther@suse.de>
13273
22fc7d3d 13274 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 13275
6b438d58
AB
132762013-06-11 Anton Blanchard <anton@samba.org>
13277
13278 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
13279 correct shift value in little-endian mode.
13280
3bc66938
JJ
132812013-06-11 Jakub Jelinek <jakub@redhat.com>
13282
13283 PR target/56564
13284 * varasm.c (get_variable_align): Move #endif to the right place.
13285
a5dc7f88
CC
132862013-06-10 Cary Coutant <ccoutant@google.com>
13287
13288 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
13289 for hash so that hash table traversal order is deterministic.
13290
19be72ab 132912013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13292 Pat Haugen <pthaugen@us.ibm.com>
13293 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
13294
13295 * config/rs6000/vector.md (GPR move splitter): Do not split moves
13296 of vectors in GPRS if they are direct moves or quad word load or
13297 store moves.
13298
13299 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
13300 declaration.
13301 (direct_move_p): Likewise.
13302 (quad_load_store_p): Likewise.
13303
13304 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
13305 classes into bins based on the physical register type.
13306 (reg_class_to_reg_type): Likewise.
13307 (IS_STD_REG_TYPE): Likewise.
13308 (IS_FP_VECT_REG_TYPE): Likewise.
13309 (reload_fpr_gpr): Arrays to determine what insn to use if we can
13310 use direct move instructions.
13311 (reload_gpr_vsx): Likewise.
13312 (reload_vsx_gpr): Likewise.
13313 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
13314 information that is a simplification of register classes. Also
13315 precalculate direct move reload helpers.
13316 (direct_move_p): New function to return true if the operation can
13317 be done as a direct move instruciton.
13318 (quad_load_store_p): New function to return true if the operation
13319 is a quad memory operation.
13320 (rs6000_legitimize_address): If quad memory, only allow register
13321 indirect for TImode addresses.
13322 (rs6000_legitimate_address_p): Likewise.
13323 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
13324 (rs6000_reload_register_type): Likewise.
13325 (register_to_reg_type): Return register type.
13326 (rs6000_secondary_reload_simple_move): New helper function for
13327 secondary reload and secondary memory needed to identify anything
13328 that is a simple move, and does not need reloading.
13329 (rs6000_secondary_reload_direct_move): New helper function for
13330 secondary reload to identify cases that can be done with several
13331 instructions via the direct move instructions.
13332 (rs6000_secondary_reload_move): New helper function for secondary
13333 reload to identify moves between register types that can be done.
13334 (rs6000_secondary_reload): Add support for quad memory operations
13335 and for direct move.
13336 (rs6000_secondary_memory_needed): Likewise.
13337 (rs6000_debug_secondary_memory_needed): Change argument names.
13338 (rs6000_output_move_128bit): New function to return the move to
13339 use for 128-bit moves, including knowing about the various
13340 limitations of quad memory operations.
13341
13342 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
13343 memory operations. call rs6000_output_move_128bit for the actual
13344 instruciton(s) to generate.
13345 (vsx_movti_64bit): Likewise.
13346
13347 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
13348 (UNSPEC_P8V_MTVSRWZ): Likewise.
13349 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
13350 (UNSPEC_P8V_MTVSRD): Likewise.
13351 (UNSPEC_P8V_XXPERMDI): Likewise.
13352 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
13353 (UNSPEC_FUSION_GPR): Likewise.
13354 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 13355 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
13356 (f32_sv): Likewise.
13357 (f32_dm): Likewise.
13358 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
13359 loads and direct move instructions.
13360 (zero_extendsidi2_lfiwzx): Likewise.
13361 (extendsidi2_lfiwax): Likewise.
13362 (extendsidi2_nocell): Likewise.
13363 (floatsi<mode>2_lfiwax): Likewise.
13364 (lfiwax): Likewise.
13365 (floatunssi<mode>2_lfiwzx): Likewise.
13366 (lfiwzx): Likewise.
13367 (fix_trunc<mode>_stfiwx): Likewise.
13368 (fixuns_trunc<mode>_stfiwx): Likewise.
13369 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
13370 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
13371 (parity<mode>2_cmpb): Set length/type attr.
13372 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
13373 for 'mr.' to fast_compare.
13374 (bpermd_<mode>): Change type attr to popcnt.
13375 (p8_fmrgow_<mode>): New insns for power8 direct move support.
13376 (p8_mtvsrwz_1): Likewise.
13377 (p8_mtvsrwz_2): Likewise.
13378 (reload_fpr_from_gpr<mode>): Likewise.
13379 (p8_mtvsrd_1): Likewise.
13380 (p8_mtvsrd_2): Likewise.
13381 (p8_xxpermdi_<mode>): Likewise.
13382 (reload_vsx_from_gpr<mode>): Likewise.
13383 (reload_vsx_from_gprsf): Likewise.
13384 (p8_mfvsrd_3_<mode>): LIkewise.
13385 (reload_gpr_from_vsx<mode>): Likewise.
13386 (reload_gpr_from_vsxsf): Likewise.
13387 (p8_mfvsrd_4_disf): Likewise.
13388 (multi-word GPR splits): Do not split direct moves or quad memory
13389 operations.
13390
16876bdc
DM
133912013-06-10 David Malcolm <dmalcolm@redhat.com>
13392
13393 * tree-into-ssa.c (interesting_blocks): Make static.
13394
df8a1d28
JJ
133952013-06-10 Jakub Jelinek <jakub@redhat.com>
13396
13397 PR target/56564
13398 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
13399 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
13400 Use DATA_ABI_ALIGNMENT for that case instead if defined.
13401 (get_variable_align): New function.
13402 (get_variable_section, emit_bss, emit_common,
13403 assemble_variable_contents, place_block_symbol): Use
13404 get_variable_align instead of DECL_ALIGN.
13405 (assemble_noswitch_variable): Add align argument, use it
13406 instead of DECL_ALIGN.
13407 (assemble_variable): Adjust caller. Use get_variable_align
13408 instead of DECL_ALIGN.
13409 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
13410 caller.
13411 (DATA_ABI_ALIGNMENT): Define.
13412 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
13413 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
13414 opt is false, only return the psABI mandated alignment increase.
13415 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
13416 (DATA_ABI_ALIGNMENT): ... this.
13417 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
13418 (DATA_ABI_ALIGNMENT): ... this.
13419 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
13420 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
13421 (DATA_ABI_ALIGNMENT): ... this.
13422 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
13423 * doc/tm.texi: Regenerated.
13424
57b29ca6
UB
134252013-06-10 Uros Bizjak <ubizjak@gmail.com>
13426
13427 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
13428 cmp_code to construct REG_EQUAL note.
13429
3e56ed50
JJ
134302013-06-09 Jakub Jelinek <jakub@redhat.com>
13431
13432 PR target/57568
13433 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
13434 that operands[2] doesn't overlap with operands[0].
13435
74fe2a1d
DE
134362013-06-09 David Edelsohn <dje.gcc@gmail.com>
13437 Jan Hubicka <jh@suse.cz>
13438
13439 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
13440 hack to mark symbols as used.
13441
ed52a84e
VM
134422013-06-08 Vladimir Makarov <vmakarov@redhat.com>
13443
13444 PR rtl-optimization/57559
13445 * lra-constraints.c (process_alt_operands): Don't discourage
13446 memory with known offset for offsetable memory constraint.
13447 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
13448
299316ed
EB
134492013-06-08 Eric Botcazou <ebotcazou@adacore.com>
13450
13451 * varasm.c (struct oc_local_state): Reorder fields.
13452 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
13453 and adjust accordingly.
13454 (output_constructor): Reorder initialization code and adjust call to
13455 output_constructor_bitfield.
13456
88ac60d3
JH
134572013-06-07 Jan Hubicka <jh@suse.cz>
13458
13459 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
13460
4cdce1a8
DM
134612013-06-07 David Malcolm <dmalcolm@redhat.com>
13462
13463 * tree-object-size.c (unknown): Make const.
13464
b5e0425c
AK
134652013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
13466
13467 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
13468 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
13469 for last alternative in the cpu_facility attribute.
13470
79678d04
KT
134712013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13472
13473 PR target/56315
13474 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
13475 (xordi3): Change operand 2 constraint to arm_xordi_operand.
13476 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
13477 * config/arm/constraints.md (Dg): New constraint.
13478 * config/arm/neon.md (xordi3_neon): Remove.
13479 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
13480 * config/arm/predicates.md (arm_xordi_operand): New predicate.
13481
b31ddbdb
KT
134822013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13483
13484 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
13485 Clean up alternatives.
13486
8f90b7d4
AM
134872013-06-07 Alan Modra <amodra@gmail.com>
13488
13489 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
13490 va_list_gpr_size.
13491
961ce119
AM
134922013-06-07 Alan Modra <amodra@gmail.com>
13493
13494 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
13495
33e49835
KT
134962013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13497
13498 * config/arm/constraints.md (Df): New constraint.
13499 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
13500 Correct length attribute for last two alternatives.
13501
acd17ae6
AM
135022013-06-07 Alan Modra <amodra@gmail.com>
13503
13504 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
13505 override user -mfp-in-toc.
13506 (offsettable_ok_by_alignment): Consider just the current access
13507 rather than the whole object, unless BLKmode. Handle
13508 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
13509 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
13510 for -mcmodel=medium.
13511 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
13512 override user -mfp-in-toc or -msum-in-toc. Default to
13513 -mno-fp-in-toc for -mcmodel=medium.
13514
73310b0e
DD
135152013-06-06 DJ Delorie <dj@redhat.com>
13516
13517 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
13518 TARGET_VALID_POINTER_MODE.
13519
0bd62dca 135202013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
13521 Pat Haugen <pthaugen@us.ibm.com>
13522 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
13523
13524 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13525 Document new power8 builtins.
13526
13527 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
13528 condition code register, to allow 128-bit logical operations to be
13529 done in the VSX or GPR registers.
13530 (nor<mode>3): Use the canonical form for nor.
13531 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
13532 vclz*, and vpopcnt* vector instructions.
13533 (nand<mode>3): Likewise.
13534 (orc<mode>3): Likewise.
13535 (clz<mode>2): LIkewise.
13536 (popcount<mode>2): Likewise.
13537
13538 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
13539 that only the GPRs are recognized.
13540
13541 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13542 support for new power8 builtins.
13543
13544 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
13545 builtin functions.
13546 (xscvdpspn): Likewise.
13547 (vclz): Likewise.
13548 (vclzb): Likewise.
13549 (vclzh): Likewise.
13550 (vclzw): Likewise.
13551 (vclzd): Likewise.
13552 (vpopcnt): Likewise.
13553 (vpopcntb): Likewise.
13554 (vpopcnth): Likewise.
13555 (vpopcntw): Likewise.
13556 (vpopcntd): Likewise.
13557 (vgbbd): Likewise.
13558 (vmrgew): Likewise.
13559 (vmrgow): Likewise.
13560 (eqv): Likewise.
13561 (eqv_v16qi3): Likewise.
13562 (eqv_v8hi3): Likewise.
13563 (eqv_v4si3): Likewise.
13564 (eqv_v2di3): Likewise.
13565 (eqv_v4sf3): Likewise.
13566 (eqv_v2df3): Likewise.
13567 (nand): Likewise.
13568 (nand_v16qi3): Likewise.
13569 (nand_v8hi3): Likewise.
13570 (nand_v4si3): Likewise.
13571 (nand_v2di3): Likewise.
13572 (nand_v4sf3): Likewise.
13573 (nand_v2df3): Likewise.
13574 (orc): Likewise.
13575 (orc_v16qi3): Likewise.
13576 (orc_v8hi3): Likewise.
13577 (orc_v4si3): Likewise.
13578 (orc_v2di3): Likewise.
13579 (orc_v4sf3): Likewise.
13580 (orc_v2df3): Likewise.
13581
13582 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
13583 allow power8 quad mode in 64-bit.
13584 (rs6000_builtin_vectorized_function): Add support to vectorize
13585 ISA 2.07 count leading zeros, population count builtins.
13586 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
13587 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
13588 (builtin_function_type): Add vgbbd builtin function which takes an
13589 unsigned argument.
13590 (altivec_expand_vec_perm_const): Add support for new power8 merge
13591 instructions.
13592
13593 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
13594 that does not include TImdoe for use with 32-bit.
13595 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
13596 instructions.
13597 (UNSPEC_VSX_CVDPSPN): Likewise.
13598 (vsx_xscvdpspn): Likewise.
13599 (vsx_xscvspdpn): Likewise.
13600 (vsx_xscvdpspn_scalar): Likewise.
13601 (vsx_xscvspdpn_directmove): Likewise.
13602 (vsx_and<mode>3): Split logical operations into 32-bit and
13603 64-bit. Add support to do logical operations on TImode as well as
13604 VSX vector types. Allow logical operations to be done in either
13605 VSX registers or in general purpose registers in 64-bit mode. Add
13606 splitters if GPRs were used. For AND, add clobber of CCmode to
13607 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
13608 encoding.
13609 (vsx_and<mode>3_32bit): Likewise.
13610 (vsx_and<mode>3_64bit): Likewise.
13611 (vsx_ior<mode>3): Likewise.
13612 (vsx_ior<mode>3_32bit): Likewise.
13613 (vsx_ior<mode>3_64bit): Likewise.
13614 (vsx_xor<mode>3): Likewise.
13615 (vsx_xor<mode>3_32bit): Likewise.
13616 (vsx_xor<mode>3_64bit): Likewise.
13617 (vsx_one_cmpl<mode>2): Likewise.
13618 (vsx_one_cmpl<mode>2_32bit): Likewise.
13619 (vsx_one_cmpl<mode>2_64bit): Likewise.
13620 (vsx_nor<mode>3): Likewise.
13621 (vsx_nor<mode>3_32bit): Likewise.
13622 (vsx_nor<mode>3_64bit): Likewise.
13623 (vsx_andc<mode>3): Likewise.
13624 (vsx_andc<mode>3_32bit): Likewise.
13625 (vsx_andc<mode>3_64bit): Likewise.
13626 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
13627 and xxlorc instructions.
13628 (vsx_eqv<mode>3_64bit): Likewise.
13629 (vsx_nand<mode>3_32bit): Likewise.
13630 (vsx_nand<mode>3_64bit): Likewise.
13631 (vsx_orc<mode>3_32bit): Likewise.
13632 (vsx_orc<mode>3_64bit): Likewise.
13633
13634 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
13635
13636 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
13637 instruction.
13638 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
13639 (p8_vmrgow): Likewise.
13640 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
13641 GPRs to be split under VSX.
13642 (p8v_clz<mode>2): Add power8 count leading zero support.
13643 (p8v_popcount<mode>2): Add power8 population count support.
13644 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
13645 support.
13646
13647 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
13648 instruction.
13649
13650 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
13651 builtin functions.
13652 (vec_nand): Likewise.
13653 (vec_vclz): Likewise.
13654 (vec_vclzb): Likewise.
13655 (vec_vclzd): Likewise.
13656 (vec_vclzh): Likewise.
13657 (vec_vclzw): Likewise.
13658 (vec_vgbbd): Likewise.
13659 (vec_vmrgew): Likewise.
13660 (vec_vmrgow): Likewise.
13661 (vec_vpopcnt): Likewise.
13662 (vec_vpopcntb): Likewise.
13663 (vec_vpopcntd): Likewise.
13664 (vec_vpopcnth): Likewise.
13665 (vec_vpopcntw): Likewise.
13666
37684c46
VM
136672013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13668
13669 PR rtl-optimization/57468
13670 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
13671 spilled pseudos.
13672
d89ae27c
VM
136732013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13674
13675 PR rtl-optimization/57459
13676 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
13677 type when setting live regs.
13678
3597e113
VM
136792013-06-06 Vladimir Makarov <vmakarov@redhat.com>
13680
13681 * config/s390/s390.opt (mlra): New option.
13682 * config/s390/s390.c (s390_decompose_address): Check displacement
13683 for all registers for LRA.
13684 (s390_secondary_reload): Don't used secondary reloads for LRA.
13685 (s390_lra_p): New function.
13686 (TARGET_LRA_P): Define.
13687 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
13688 of attribute cpu_facility to zarch for the last alternative.
13689 (*cmpmem_short): Ditto.
13690
01037aeb
EB
136912013-06-06 Eric Botcazou <ebotcazou@adacore.com>
13692
13693 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
13694 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
13695 (arm_expand_prologue): Likewise.
13696
3371a64f
TJ
136972013-06-06 Teresa Johnson <tejohnson@google.com>
13698
13699 PR c++/53743
13700 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
13701 as this is now done by redirect_edge_and_branch_force.
13702 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
13703 barriers, and fix interaction with splitting.
13704 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
13705 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
13706 reflect changes made in the routine.
13707 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
13708 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
13709 since this is called in cfglayout mode, and replace partition fixup
13710 with assert as that is now done by force_nonfallthru_and_redirect.
13711 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
13712 already be marked with region crossing note.
13713 (insert_section_boundary_note): Make non-static, gate on flag
13714 has_bb_partition, rewrite to also check for multiple partitions.
13715 (rest_of_handle_reorder_blocks): Remove call to
13716 insert_section_boundary_note, now done later during free_cfg.
13717 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
13718 * bb-reorder.h (insert_section_boundary_note): Declare.
13719 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
13720 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
13721 invoke insert_section_boundary_note.
13722 (try_redirect_by_replacing_jump): Remove unnecessary
13723 check for region crossing note.
13724 (fixup_partition_crossing): New function.
13725 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
13726 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
13727 in non-cfglayout mode.
13728 (force_nonfallthru_and_redirect): Fixup partition boundaries,
13729 remove old code that tried to do this. Emit barrier correctly
13730 when we are in cfglayout mode.
13731 (last_bb_in_partition): New function.
13732 (rtl_split_edge): Correctly fixup partition boundaries.
13733 (commit_one_edge_insertion): Remove old code that tried to
13734 fixup region crossing edge since this is now handled in
13735 split_block, and set up insertion point correctly since
13736 block may now end in a jump.
13737 (verify_hot_cold_block_grouping): Guard against checking when not in
13738 linearized RTL mode.
13739 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
13740 notes.
13741 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
13742 rtl_verify_flow_info, so not called in cfglayout mode.
13743 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
13744 (fixup_reorder_chain): Remove old code that attempted to fixup region
13745 crossing note as this is now handled in force_nonfallthru_and_redirect.
13746 (duplicate_insn_chain): Don't duplicate switch section notes.
13747 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
13748 note.
13749 * basic-block.h (emit_barrier_after_bb): Declare.
13750
66071e10
KT
137512013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13752
13753 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
13754 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
13755 arm_usatsihi): Adjust alternatives for arm_restrict_it.
13756
0e26bf3d
KT
137572013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13758
13759 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
13760 where appropriate.
13761 * config/arm/ldmstm.md: Regenerate.
13762
12b4e7ef
KT
137632013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13764
13765 * config/arm/sync.md (atomic_loaddi_1):
13766 Disable predication for arm_restrict_it.
13767 (arm_load_exclusive<mode>): Likewise.
13768 (arm_load_exclusivesi): Likewise.
13769 (arm_load_exclusivedi): Likewise.
13770 (arm_load_acquire_exclusive<mode>): Likewise.
13771 (arm_load_acquire_exclusivesi): Likewise.
13772 (arm_load_acquire_exclusivedi): Likewise.
13773 (arm_store_exclusive<mode>): Likewise.
13774 (arm_store_exclusive<mode>): Likewise.
13775 (arm_store_release_exclusivedi): Likewise.
13776 (arm_store_release_exclusive<mode>): Likewise.
13777
15d16c8a
RB
137782013-06-06 Richard Biener <rguenther@suse.de>
13779
13780 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
13781 after LTO_null.
13782 (lto_tag_is_tree_code_p): Adjust.
13783 (lto_tag_is_gimple_code_p): Likewise.
13784 (lto_gimple_code_to_tag): Likewise.
13785 (lto_tag_to_gimple_code): Likewise.
13786 (lto_tree_code_to_tag): Likewise.
13787 (lto_tag_to_tree_code): Likewise.
13788 * data-streamer.h (streamer_write_hwi_in_range): Use
13789 uhwi streaming to stream the normalized range.
13790 (streamer_read_hwi_in_range): Likewise.
13791
17a7fc37
KT
137922013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13793
13794 * config/arm/arm.md (enabled_for_depr_it): New attribute.
13795 (predicable_short_it): Likewise.
13796 (predicated): Likewise.
13797 (enabled): Handle above.
13798 (define_cond_exec): Set predicated attribute to yes.
13799
b57ca59b
MS
138002013-06-05 Mike Stump <mikestump@comcast.net>
13801
13802 * gdbinit.in (__FUNCTION__): Add.
13803
c1e183a9
UB
138042013-06-05 Uros Bizjak <ubizjak@gmail.com>
13805
13806 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
13807 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
13808
0378bddb
JH
138092013-06-05 Jan Hubicka <jh@suse.cz>
13810
13811 * varasm.c (mark_decl_referenced): Revert the removal until targets
13812 are fixed.
13813
8f8a2057
DE
138142013-06-05 David Edelsohn <dje.gcc@gmail.com>
13815
13816 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
13817 instead of mark_decl_referenced.
13818
edb983b2
JH
138192013-06-05 Jan Hubicka <jh@suse.cz>
13820
13821 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
13822 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
13823 and symtab_used_from_object_file_p.
13824 (cgraph_make_node_local_1): Clear forced_by_abi.
13825 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
13826 * cgraph.h (symtab_node_base): Add forced_by_abi.
13827 (decide_is_variable_needed): Remove.
13828 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
13829 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
13830 (decide_is_symbol_needed): ... this one; handle symbols in general;
13831 always analyze virtuals; honnor forced_by_abi.
13832 (cgraph_finalize_function): Update.
13833 (varpool_finalize_decl): Update.
13834 (symbol_defined_and_needed): Remove.
13835 (analyze_functions): Update.
13836 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
13837 output_refs, input_overwrite_node): Handle forced_by_abi.
13838 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
13839 (address_taken_from_non_vtable_p): ... this one.
13840 (comdat_can_be_unshared_p_1): New function.
13841 (cgraph_comdat_can_be_unshared_p): Rename to ...
13842 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
13843 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
13844 (function_and_variable_visibility): Clear forced_by_abi as needed.
13845 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
13846 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
13847 * symtab.c (dump_symtab_base): Dump forced_by_abi.
13848 * varpool.c (decide_is_variable_needed): Remove.
13849
9912dbe5
KT
138502013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13851
13852 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
13853 (arm_option_override): Override arm_restrict_it where appropriate.
13854 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
13855 * config/arm/arm.opt (mrestrict-it): New command-line option.
13856 * doc/invoke.texi: Document -mrestrict-it.
13857
34c136b6
DM
138582013-06-05 David Malcolm <dmalcolm@redhat.com>
13859
13860 * tsan.c (tsan_atomic_table): Make const.
13861
a367df53
RB
138622013-06-05 Richard Biener <rguenther@suse.de>
13863
13864 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
13865 index associated with the tree we are supposed to replace.
13866 * tree-streamer-out.c (pack_ts_base_value_fields): Output
13867 TREE_ASM_WRITTEN as zero for everything but SSA names.
13868
70d51a19
DM
138692013-06-05 David Malcolm <dmalcolm@redhat.com>
13870
13871 * tree-ssa-structalias.c (call_stmt_vars): Make static.
13872
b9bd2075
JH
138732013-06-04 Jan Hubicka <jh@suse.cz>
13874
13875 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
13876 (input_node, input_varpool_node): Handle correctly external same
13877 body aliases.
13878 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
13879 nodes at ltrans stage.
13880
aaae719d
JH
138812013-06-04 Jan Hubicka <jh@suse.cz>
13882
13883 * ipa-inline.c (update_caller_keys): Fix availability test.
13884 (update_callee_keys): Likewise.
13885 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
13886 to follow ELF standard.
13887
107eea2c
JU
138882013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
13889
13890 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
13891 (mips64r5900el-*-elf*): New configurations.
13892 * config/mips/mips-cpus.def (r5900): New processor.
13893 * config/mips/mips-tables.opt: Regenerate.
13894 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
13895 (mips_issue_rate): Handle PROCESSOR_R5900.
13896 (mips_reorg_process_insns): Force reorder mode for the R5900.
13897 * config/mips/mips.h (TARGET_MIPS5900): Define.
13898 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
13899 TARGET_MIPS5900.
13900 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
13901 TARGET_MIPS5900.
13902 * config/mips/mips.md (processor): Add r5900.
13903 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
13904
b7342d25
IB
139052013-06-04 Ian Bolton <ian.bolton@arm.com>
13906
13907 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
13908 into function to generate MOVI instruction.
c1e183a9 13909 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
13910 (aarch64_preferred_simd_mode): Turn into wrapper.
13911 (aarch64_output_scalar_simd_mov_immediate): New function.
13912 * config/aarch64/aarch64-protos.h: Add prototype for above.
13913
81c2dfb9
IB
139142013-06-04 Ian Bolton <ian.bolton@arm.com>
13915
13916 * config/aarch64/aarch64.c (simd_immediate_info): Remove
13917 element_char member.
13918 (sizetochar): Return signed char.
13919 (aarch64_simd_valid_immediate): Remove elchar and other
13920 unnecessary variables.
13921 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
13922 Calculate element_char as required.
13923 * config/aarch64/aarch64-protos.h: Update and move prototype
13924 for aarch64_output_simd_mov_immediate.
13925 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
13926 Update arguments.
13927
48063b9d
IB
139282013-06-04 Ian Bolton <ian.bolton@arm.com>
13929
13930 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
13931 information completed by aarch64_simd_valid_immediate.
13932 (aarch64_legitimate_constant_p): Update arguments.
13933 (aarch64_simd_valid_immediate): Work with struct rather than many
13934 pointers.
13935 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
13936 (aarch64_simd_make_constant): Update arguments.
13937 (aarch64_output_simd_mov_immediate): Work with struct rather than
13938 many pointers. Output immediate directly rather than as operand.
13939 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13940 Update prototype.
13941 * config/aarch64/constraints.md (Dn): Update arguments.
13942
3ea63f60
IB
139432013-06-04 Ian Bolton <ian.bolton@arm.com>
13944
13945 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
13946 longer static.
13947 (aarch64_simd_immediate_valid_for_move): Remove.
13948 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
13949 (aarch64_simd_make_constant): Update call.
13950 (aarch64_output_simd_mov_immediate): Update call.
13951 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
13952 Add prototype.
13953 * config/aarch64/constraints.md (Dn): Update call.
13954
d8edd899
IB
139552013-06-04 Ian Bolton <ian.bolton@arm.com>
13956
13957 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
13958 return type to bool for prototype.
13959 (aarch64_legitimate_constant_p): Check for true instead of not -1.
13960 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
13961 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
13962
44b20bb8
CM
139632013-06-04 Catherine Moore <clm@codesourcery.com>
13964
13965 * config/mips/mips.opt (meva): New.
c1e183a9 13966 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
13967 (ASM_SPEC): Handle -meva.
13968 * doc/invoke.texi (meva): Document.
13969
52befbd8
AM
139702013-06-04 Alan Modra <amodra@gmail.com>
13971
13972 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
13973 constant output.
13974
aadaf24e
KT
139752013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13976
13977 * rtl.def: Add extra fourth optional field to define_cond_exec.
13978 * gensupport.c (process_one_cond_exec): Process attributes from
13979 define_cond_exec.
13980 * doc/md.texi: Document fourth field in define_cond_exec.
13981
0cd9e9ee
EB
139822013-06-04 Eric Botcazou <ebotcazou@adacore.com>
13983
13984 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
13985 out the processing order as in store_bit_field_1.
13986
cb0f665d
JH
139872013-06-04 Jan Hubicka <jh@suse.cz>
13988
13989 PR middle-end/57500
13990 * cgraphunit.c (cgraph_process_same_body_aliases): Create
13991 non-VAR_DECL node if it does not exist yet.
13992
53984b9b
RS
139932013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
13994
13995 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
13996 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
13997 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
13998 target_cpu_default setting.
13999
5d318fd4
TJ
140002013-06-03 Teresa Johnson <tejohnson@google.com>
14001
14002 * dumpfile.c (opt_info_switch_p): Change -fopt-info
14003 default to -fopt-info=optimized instead of all.
14004 * doc/invoke.texi: Ditto.
14005 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
14006 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
14007 (execute_vect_slp): Emit BB vectorization success under
14008 MSG_OPTIMIZED_LOCATIONS.
14009 * tree-vect-slp.c (vect_slp_transform_bb): Change
14010 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
14011 * tree-vect-loop.c (vect_transform_loop): Ditto.
14012
ec3af349
JM
140132013-06-03 Jason Merrill <jason@redhat.com>
14014
14015 PR c++/57415
14016 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14017 Use TARGET_EXPR for C++.
14018
1baf9159
JJ
140192013-06-03 Jakub Jelinek <jakub@redhat.com>
14020
14021 PR rtl-optimization/57268
0cd9e9ee 14022 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
14023 if DEBUG_INSN_P (insn).
14024
14025 Reapply
14026 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
14027
14028 PR rtl-optimization/57268
14029 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14030 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14031
0f1d3965
YR
140322013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14033
14034 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
14035 (ix86_avoid_lea_for_addr): Likewise.
14036 (exact_dependency_1): Likewise.
14037 (ix86_adjust_cost): Likewise.
14038 (swap_top_of_ready_list): Fix formatting and !reload_completed check
14039 removed.
14040 (do_reorder_for_imul): Fix typo, formatting and
14041 !reload_completed check removed.
14042 (ix86_sched_reorder): Fix typo and formatting.
14043 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
14044 list.
14045
3bc30db4
SN
140462013-06-03 Sofiane Naci <sofiane.naci@arm.com>
14047
14048 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
14049
19cc6fac
EB
140502013-06-03 Eric Botcazou <ebotcazou@adacore.com>
14051
14052 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
14053 <STRING_CST>: Likewise.
14054 <VECTOR_CST>: Likewise.
14055
c68a6e08
JW
140562013-06-01 Janus Weil <janus@gcc.gnu.org>
14057 Mikael Morin <mikael@gcc.gnu.org>
14058
14059 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
14060 * config.in: Regenerated.
14061 * configure: Regenerated.
14062
38e55e5c
JH
140632013-06-01 Jan Hubicka <jh@suse.cz>
14064
14065 PR middle-end/57366
14066 * cgraphunit.c (compile): When weakref is not supported,
14067 set up transparent aliases before final output pass.
14068 * varasm.c (assemble_alias): Do not try to do it here.
14069
eb51d2ff
JH
140702013-06-01 Jan Hubicka <jh@suse.cz>
14071
14072 PR middle-end/57467
14073 * passes.c (for_per_function): Skip unanalyzed functions.
14074
40a7fe1e
JH
140752013-06-01 Jan Hubicka <jh@suse.cz>
14076
14077 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
14078 (lto_symtab_merge_symbols_1): ... this one.
14079 (lto_symtab_merge_cgraph_nodes): Rename to ...
14080 (lto_symtab_merge_symbols): ... this one; simplify.
14081 * cgraph.c (same_body_aliases_done): Rename to ...
14082 (cpp_implicit_aliases_done): ... this one.
14083 (cgraph_create_function_alias): Update.
14084 (cgraph_same_body_alias): Update.
c1e183a9 14085 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 14086 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 14087 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
14088 (cgraph_node): Remove same_body_alias.
14089 (varpool_node): Remove alias_of and extra_name_alias.
14090 (same_body_aliases_done): Rename to ..
14091 (cpp_implicit_aliases_done): ... this one.
14092 (symtab_alias_ultimate_target): Add default parameter.
14093 (symtab_resolve_alias): New function.
14094 (fixup_same_cpp_alias_visibility): Declare.
14095 (cgraph_function_node): Add default parameter.
14096 (cgraph_node_asm_name): Likewise.
14097 (cgraph_function_or_thunk_node): Add default parameter; do
14098 not ICE when it is NULL.
14099 (varpool_variable_node): Likewise.
14100 * tree-emutls.c (create_emultls_var): Update.
14101 (ipa_lower_emutls): Update.
14102 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
14103 (cgraph_reset_node): Reset alias info.
14104 (cgraph_finalize_function): Update.
14105 (fixup_same_cpp_alias_visibility): Move to symtab.c.
14106 (analyze_function): Simplify.
14107 (cgraph_process_same_body_aliases): Simplify.
14108 (analyze_functions): Fixup same body aliases.
14109 (handle_alias_pairs): Simplify.
14110 (assemble_thunk): Update.
14111 (assemble_thunks_and_aliases): Update.
14112 (output_weakrefs): Rewrite.
14113 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
14114 (lto_output_varpool_node): Likewise.
14115 (compute_ltrans_boundary): Remve assert.
14116 (get_alias_symbol): New functoin.
14117 (input_node): Rewrite alias handling.
14118 (input_varpool_node): Likewise.
14119 * ipa-pure-const.c (propagate_pure_const): Fix formating.
14120 * ipa.c (process_references): Handle weakrefs correctly.
14121 (symtab_remove_unreachable_nodes): Likewise.
14122 * trans-mem.c (get_cg_data): Update.
14123 (ipa_tm_create_version_alias): Update.
14124 (ipa_tm_execute): Update.
14125 * symtab.c (dump_symtab_base): Dump aliases.
14126 (verify_symtab_base): Verify aliases.
14127 (symtab_node_availability): New function.
14128 (symtab_alias_ultimate_target): Simplify.
14129 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
14130 handle all the fixup cases.
14131 (symtab_resolve_alias): New function.
14132 * passes.c (ipa_write_summaries): Handle weakrefs.
14133 * varpool.c (varpool_analyze_node): Simplify.
14134 (assemble_aliases): Update.
14135 (varpool_create_variable_alias): Simplify.
14136 (varpool_extra_name_alias): Simplify.
14137 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
14138 (lto_symtab_merge_symbols): ... this one.
14139
21759881
DT
141402013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
14141
14142 Revert
14143 PR rtl-optimization/57268
14144 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14145 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14146
daf4e940
TB
141472013-06-01 Tobias Burnus <burnus@net-b.de>
14148
14149 Partially reverted:
14150 2013-05-31 Tobias Burnus <burnus@net-b.de>
14151
14152 PR middle-end/57073
14153 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
14154 further up.
14155
c359d8d0
DT
141562013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
14157
14158 PR rtl-optimization/57268
14159 * sched-deps.c (sched_analyze_2): Flush dependence lists if
14160 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
14161
4172215d
EB
141622013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14163
14164 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
14165 unordered comparison operators when -fno-trapping-math is in effect
14166 on the e500.
14167 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
14168 and implement unordered comparison operators properly on the e500.
14169
a8c50132
EB
141702013-05-31 Eric Botcazou <ebotcazou@adacore.com>
14171
14172 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
14173 for constant scalar integers.
14174 (simplify_relational_operation_1): Likewise.
14175
44626634
SB
141762013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
14177
14178 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
14179 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
14180 Fix comment.
14181
55805e54
YR
141822013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14183 Igor Zamyatin <igor.zamyatin@intel.com>
14184
14185 Silvermont (SLM) architecture performance tuning.
14186 * config/i386/i386.h (enum ix86_tune_indices): Add
14187 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
14188 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
14189
14190 * config/i386/i386.c (initial_ix86_tune_features)
14191 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
14192 (ix86_lea_outperforms): Handle Silvermont tuning.
14193 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
14194 call.
14195 (ix86_use_lea_for_mov): Likewise.
14196 (ix86_avoid_lea_for_addr): Likewise.
14197 (ix86_lea_for_add_ok): Likewise.
14198 (exact_dependency_1): New function.
14199 (exact_store_load_dependency): Likewise.
14200 (ix86_adjust_cost): Handle Silvermont tuning.
14201 (do_reoder_for_imul): Likewise.
14202 (swap_top_of_ready_list): New function.
14203 (ix86_sched_reorder): Changed to handle Silvermont tuning.
14204
14205 * config/i386/i386.md (peepholes that split memory operand in fp
14206 converts): New.
14207
e19c9de2
MS
142082013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14209
14210 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14211 Remove un-necessary braces.
14212
38e6c9a6
MS
142132013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
14214
14215 * config/aarch64/aarch64.c (aarch64_classify_symbol):
14216 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
14217
e3530904
TB
142182013-05-31 Tobias Burnus <burnus@net-b.de>
14219
14220 PR middle-end/57073
c1e183a9 14221 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 14222
b6af05a9
KT
142232013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14224
14225 PR target/56315
14226 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
14227 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
14228 * config/arm/neon.md (iordi3_neon): Remove.
14229 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
14230 * config/arm/predicates.md (imm_for_neon_logic_operand):
14231 Move to earlier in the file.
14232 (neon_logic_op2): Likewise.
14233 (arm_iordi_operand_neon): New predicate.
14234
f800c166
RB
142352013-05-31 Richard Biener <rguenther@suse.de>
14236
14237 PR tree-optimization/57478
14238 PR tree-optimization/57453
14239 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
14240 are life as well.
14241
e571fa59
KP
142422013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
14243
14244 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
14245 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
14246
0fa6e0ef
TB
142472013-05-30 Tobias Burnus <burnus@net-b.de>
14248 Thomas Koenig <tkoenig@gcc.gnu.org>
14249
14250 PR middle-end/57073
14251 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
14252 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
14253
4688ddf5
SB
142542013-05-30 Steven Bosscher <steven@gcc.gnu.org>
14255
0fa6e0ef 14256 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 14257
3b9ceb4b
VM
142582013-05-30 Vladimir Makarov <vmakarov@redhat.com>
14259
14260 * target.def (register_usage_leveling_p): New hook.
14261 * targhooks.c (default_register_usage_leveling_p): New.
14262 * targhooks.h (default_register_usage_leveling_p): New prototype.
14263 * lra-assigns.c (register_usage_leveling_p): Use the hook.
14264 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
14265 * doc/tm.texi: Update.
14266 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
14267
65f9e789
IB
142682013-05-30 Ian Bolton <ian.bolton@arm.com>
14269
14270 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
14271 (*insv_reg<mode>): New define_insn.
14272
12211b99 142732013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
14274
14275 PR rtl-optimization/57439
14276 * postreload.c (move2add_valid_value_p): Check that we have
14277 a zero subreg_regno_offset when accessing the register in
14278 the requested mode.
14279
0b871ccf
YR
142802013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
14281 Igor Zamyatin <igor.zamyatin@intel.com>
14282
14283 Silvermont (SLM) architecture pipeline model, tuning and
14284 insn selection.
14285 * config.gcc: Add slm config options and target.
14286
14287 * config/i386/slm.md: New.
14288
14289 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
14290
f43245d1 14291 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
14292 PROCESSOR_SLM.
14293 (ix86_target_macros_internal): Likewise.
14294
f43245d1 14295 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
14296 (m_SLM): New macro flag.
14297 (initial_ix86_tune_features): Set m_SLM.
14298 (x86_accumulate_outgoing_args): Likewise.
14299 (x86_arch_always_fancy_math_387): Likewise.
14300 (processor_target_table): Add slm cost.
14301 (cpu_names): Add slm cpu name.
14302 (x86_option_override_internal): Set SLM ISA.
14303 (ix86_issue_rate): New case PROCESSOR_SLM.
14304 (ia32_multipass_dfa_lookahead): Likewise.
14305 (fold_builtin_cpu): Add slm.
14306
14307 * config/i386/i386.h (TARGET_SLM): New target macro.
14308 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
14309 (processor_type): Add PROCESSOR_SLM.
14310
14311 * config/i386/i386.md (cpu): Add new value "slm".
14312 (slm.md): Include slm.md.
14313
24d5b097
XG
143142013-05-30 Bernd Schmidt <bernds@codesourcery.com>
14315 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14316
14317 * config/arm/arm-protos.h: Add and update function protos.
14318 * config/arm/arm.c (use_simple_return_p): New added.
14319 (thumb2_expand_return): Check simple_return flag.
14320 * config/arm/arm.md: Add simple_return and conditional simple_return.
14321 * config/arm/iterators.md: Add iterator for return and simple_return.
14322
c1cccc15
ZC
143232013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
14324
14325 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
14326 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
14327 (arm_emit_vfp_multi_reg_pop): Likewise.
14328 (thumb2_emit_ldrd_pop): Likewise.
14329 (arm_expand_epilogue): Add misc REG_CFA notes.
14330 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
14331
3a4f280b
LC
143322013-05-29 Lawrence Crowl <crowl@google.com>
14333
14334 * config/arm/t-arm: Update for below.
14335
14336 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
14337 Change type to hash_table. Update dependent calls and types.
14338
14339 * config/i386/t-cygming: Update for below.
14340
14341 * config/i386/t-interix: Update for below.
14342
14343 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
14344 Change type to hash_table. Update dependent calls and types.
14345 (i386_find_on_wrapper_list::wrappers): Likewise.
14346
14347 * config/ia64/t-ia64: Update for below.
14348
14349 * config/ia64/ia64.c (bundle_state_table):
14350 Change type to hash_table. Update dependent calls and types.
14351
14352 * config/mips/mips.c (mips_reorg_process_insns::htab):
14353 Change type to hash_table. Update dependent calls and types.
14354
14355 * config/sol2.c (solaris_comdat_htab):
14356 Change type to hash_table. Update dependent calls and types.
14357
14358 * config/t-sol2: Update for above.
14359
1388a0e3
TJ
143602013-05-29 Teresa Johnson <tejohnson@google.com>
14361
14362 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
14363 functions are not yet marked as defined.
14364
a5965b52 143652013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
14366 Pat Haugen <pthaugen@us.ibm.com>
14367 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
14368
14369 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
14370 instructions.
14371 (VEC_A): Likewise.
14372 (VEC_C): Likewise.
14373 (vrotl<mode>3): Likewise.
14374 (vashl<mode>3): Likewise.
14375 (vlshr<mode>3): Likewise.
14376 (vashr<mode>3): Likewise.
14377
14378 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14379 support for power8 V2DI builtins.
14380
14381 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
14382 power8 V2DI builtins.
14383 (vupkhsw): Likewise.
14384 (vupklsw): Likewise.
14385 (vaddudm): Likewise.
14386 (vminsd): Likewise.
14387 (vmaxsd): Likewise.
14388 (vminud): Likewise.
14389 (vmaxud): Likewise.
14390 (vpkudum): Likewise.
14391 (vpksdss): Likewise.
14392 (vpkudus): Likewise.
14393 (vpksdus): Likewise.
14394 (vrld): Likewise.
14395 (vsld): Likewise.
14396 (vsrd): Likewise.
14397 (vsrad): Likewise.
14398 (vsubudm): Likewise.
14399 (vcmpequd): Likewise.
14400 (vcmpgtsd): Likewise.
14401 (vcmpgtud): Likewise.
14402 (vcmpequd_p): Likewise.
14403 (vcmpgtsd_p): Likewise.
14404 (vcmpgtud_p): Likewise.
14405 (vupkhsw): Likewise.
14406 (vupklsw): Likewise.
14407 (vaddudm): Likewise.
14408 (vmaxsd): Likewise.
14409 (vmaxud): Likewise.
14410 (vminsd): Likewise.
14411 (vminud): Likewise.
14412 (vpksdss): Likewise.
14413 (vpksdus): Likewise.
14414 (vpkudum): Likewise.
14415 (vpkudus): Likewise.
14416 (vrld): Likewise.
14417 (vsld): Likewise.
14418 (vsrad): Likewise.
14419 (vsrd): Likewise.
14420 (vsubudm): Likewise.
14421
14422 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
14423 support for power8 V2DI instructions.
14424
14425 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
14426 power8 V2DI instructions. Combine pack and unpack insns to use an
14427 iterator for each mode. Check whether a particular mode supports
14428 Altivec instructions instead of just checking TARGET_ALTIVEC.
14429 (UNSPEC_VPKUWUM): Likewise.
14430 (UNSPEC_VPKSHSS): Likewise.
14431 (UNSPEC_VPKSWSS): Likewise.
14432 (UNSPEC_VPKUHUS): Likewise.
14433 (UNSPEC_VPKSHUS): Likewise.
14434 (UNSPEC_VPKUWUS): Likewise.
14435 (UNSPEC_VPKSWUS): Likewise.
14436 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
14437 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
14438 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
14439 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
14440 (UNSPEC_VUPKHSB): Likewise.
14441 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
14442 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
14443 (UNSPEC_VUPKHSH): Likewise.
14444 (UNSPEC_VUPKLSB): Likewise.
14445 (UNSPEC_VUPKLSH): Likewise.
14446 (VI2): Likewise.
14447 (VI_char): Likewise.
14448 (VI_scalar): Likewise.
14449 (VI_unit): Likewise.
14450 (VP): Likewise.
14451 (VP_small): Likewise.
14452 (VP_small_lc): Likewise.
14453 (VU_char): Likewise.
14454 (add<mode>3): Likewise.
14455 (altivec_vaddcuw): Likewise.
14456 (altivec_vaddu<VI_char>s): Likewise.
14457 (altivec_vadds<VI_char>s): Likewise.
14458 (sub<mode>3): Likewise.
14459 (altivec_vsubcuw): Likewise.
14460 (altivec_vsubu<VI_char>s): Likewise.
14461 (altivec_vsubs<VI_char>s): Likewise.
14462 (altivec_vavgs<VI_char>): Likewise.
14463 (altivec_vcmpbfp): Likewise.
14464 (altivec_eq<mode>): Likewise.
14465 (altivec_gt<mode>): Likewise.
14466 (altivec_gtu<mode>): Likewise.
14467 (umax<mode>3): Likewise.
14468 (smax<mode>3): Likewise.
14469 (umin<mode>3): Likewise.
14470 (smin<mode>3): Likewise.
14471 (altivec_vpkuhum): Likewise.
14472 (altivec_vpkuwum): Likewise.
14473 (altivec_vpkshss): Likewise.
14474 (altivec_vpkswss): Likewise.
14475 (altivec_vpkuhus): Likewise.
14476 (altivec_vpkshus): Likewise.
14477 (altivec_vpkuwus): Likewise.
14478 (altivec_vpkswus): Likewise.
14479 (altivec_vpks<VI_char>ss): Likewise.
14480 (altivec_vpks<VI_char>us): Likewise.
14481 (altivec_vpku<VI_char>us): Likewise.
14482 (altivec_vpku<VI_char>um): Likewise.
14483 (altivec_vrl<VI_char>): Likewise.
14484 (altivec_vsl<VI_char>): Likewise.
14485 (altivec_vsr<VI_char>): Likewise.
14486 (altivec_vsra<VI_char>): Likewise.
14487 (altivec_vsldoi_<mode>): Likewise.
14488 (altivec_vupkhsb): Likewise.
14489 (altivec_vupkhs<VU_char>): Likewise.
14490 (altivec_vupkls<VU_char>): Likewise.
14491 (altivec_vupkhsh): Likewise.
14492 (altivec_vupklsb): Likewise.
14493 (altivec_vupklsh): Likewise.
14494 (altivec_vcmpequ<VI_char>_p): Likewise.
14495 (altivec_vcmpgts<VI_char>_p): Likewise.
14496 (altivec_vcmpgtu<VI_char>_p): Likewise.
14497 (abs<mode>2): Likewise.
14498 (vec_unpacks_hi_v16qi): Likewise.
14499 (vec_unpacks_hi_v8hi): Likewise.
14500 (vec_unpacks_lo_v16qi): Likewise.
14501 (vec_unpacks_hi_<VP_small_lc>): Likewise.
14502 (vec_unpacks_lo_v8hi): Likewise.
14503 (vec_unpacks_lo_<VP_small_lc>): Likewise.
14504 (vec_pack_trunc_v8h): Likewise.
14505 (vec_pack_trunc_v4si): Likewise.
14506 (vec_pack_trunc_<mode>): Likewise.
14507
14508 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
14509 V2DI builtins.
14510 (vec_vmaxsd): Likewise.
14511 (vec_vmaxud): Likewise.
14512 (vec_vminsd): Likewise.
14513 (vec_vminud): Likewise.
14514 (vec_vpksdss): Likewise.
14515 (vec_vpksdus): Likewise.
14516 (vec_vpkudum): Likewise.
14517 (vec_vpkudus): Likewise.
14518 (vec_vrld): Likewise.
14519 (vec_vsld): Likewise.
14520 (vec_vsrad): Likewise.
14521 (vec_vsrd): Likewise.
14522 (vec_vsubudm): Likewise.
14523 (vec_vupkhsw): Likewise.
14524 (vec_vupklsw): Likewise.
14525
e70670cf
JH
145262013-05-29 Jan Hubicka <jh@suse.cz>
14527
14528 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
14529 flags; reorder rest of fields in more consistent way.
14530 (varpool_node): Remove analyzed, finalized and alias.
14531 (cgraph_ndoe): Likewise.
14532 (symtab_alias_ultimate_target): New function.
14533 (cgraph_function_node): Move offline.
14534 (cgraph_reset_node): Declare.
14535 (cgraph_comdat_can_be_unshared_p): Remove.
14536 (varpool_remove_initializer): Declare.
14537 (varpool_first_defined_variable, varpool_next_defined_variable
14538 cgraph_first_defined_function, cgraph_next_defined_function): Update.
14539 (cgraph_function_with_gimple_body_p): Update.
14540 (varpool_all_refs_explicit_p): Update.
14541 (symtab_alias_target): New function.
14542 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
14543 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
14544 (cgraph_function_or_thunk_node): Simplify using
14545 symtab_alias_ultimate_target.
e70670cf
JH
14546 (varpool_variable_node): Likewise.
14547 * cgraph.c (cgraph_create_function_alias): Update.
14548 (cgraph_add_thunk): Update.
14549 (cgraph_remove_node): Update.
14550 (dump_cgraph_node): Do not dump removed flags.
14551 (cgraph_function_body_availability): Update.
14552 (cgraph_propagate_frequency): Update.
14553 (verify_cgraph_node): Check sanity of local flag.
14554 (cgraph_function_node): Move here from cgraph.h; revamp for
14555 cgraph_function_or_thunk_node.
14556 * lto-symtab.c (lto_varpool_replace_node): Update.
14557 (lto_symtab_resolve_can_prevail_p): Update.
14558 (lto_symtab_merge_cgraph_nodes): Update.
14559 * ipa-cp.c (determine_versionability, initialize_node_lattices,
14560 propagate_constants_accross_call, devirtualization_time_bonus,
14561 ipcp_propagate_stage): Update.
14562 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
14563 * ipa-inline-transform.c (clone_inlined_nodes,
14564 preserve_function_body_p): Update.
e70670cf
JH
14565 * ipa-reference.c (propagate): Update.
14566 (write_node_summary_p): Update.
14567 * toplev.c (wrapup_global_declaration_2): Update.
14568 * cgraphunit.c (cgraph_analyze_function): Rename to ...
14569 (analyze_function) ... this one.
14570 (cgraph_process_new_functions): Update.
14571 (cgraph_reset_node): Export.
14572 (cgraph_finalize_function): Update.
14573 (cgraph_add_new_function): Update.
14574 (process_function_and_variable_attributes): Update.
14575 (varpool_finalize_decl): Update.
14576 (symbol_finalized): Remove.
14577 (symbol_finalized_and_needed): Rename to ...
14578 (symbol_defined_and_needed): ... update.
14579 (cgraph_analyze_functions): Update.
14580 (handle_alias_pairs): Update.
14581 (mark_functions_to_output): Update.
14582 (assemble_thunk): Update.
14583 (output_in_order): Update.
14584 (output_weakrefs): Update.
14585 (finalize_compilation_unit): Update.
14586 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
14587 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
14588 input_node, input_varpool_node): Update.
14589 * dbxout.c (dbxout_expand_expr): Update.
14590 * cgraphclones.c (cgraph_clone_node): Update.
14591 (cgraph_copy_node_for_versioning): Update.
14592 (cgraph_materialize_clone): Update.
14593 (cgraph_materialize_all_clones): Update.
14594 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
14595 propagate_pure_const, propagate_nothrow): Update.
14596 * lto-streamer-out.c (lto_output, write_symbol): Update.
14597 * ipa-utils.c (ipa_reverse_postorder): Update.
14598 * ipa-inline.c (can_inline_edge_p): Update.
14599 (update_caller_keys, ipa_inline): Update.
14600 * dwarf2out.c (reference_to_unused,
14601 premark_types_used_by_global_vars_helper): Update.
14602 * tree-eh.c (tree_could_trap_p): Update.
14603 * ipa-split.c (consider_split, execute_split_functions): Update.
14604 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
14605 has_addr_references_p): Update; move ahead in file for better
14606 readability.
e70670cf
JH
14607 (process_references): Simplify.
14608 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
14609 bodies are removed.
14610 (cgraph_comdat_can_be_unshared_p): Make static.
14611 (cgraph_externally_visible_p): Update.
14612 (varpool_externally_visible_p): Update.
14613 (function_and_variable_visibility): Update.
14614 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
14615 ipa_tm_mark_force_output_node): Update.
14616 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
14617 estimate_edge_devirt_benefit, inline_generate_summary,
14618 inline_write_summary): Update.
14619 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
14620 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
14621 (ipa_print_node_params, ipa_prop_read_section,
14622 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
14623 * varasm.c (mark_decl_referenced): Update.
14624 (assemble_alias, dump_tm_clone_pairs): Update.
14625 * tree-inline.c (copy_bb): Update.
14626 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
14627 Update.
14628 * symtab.c (dump_symtab_base): Print new flags.
14629 (verify_symtab_base): Verify new flags.
14630 (symtab_alias_ultimate_target): New function.
14631 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
14632 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
14633 Update.
c1e183a9
UB
14634 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
14635 Update.
e70670cf
JH
14636 * i386.c (ix86_get_function_versions_dispatcher,
14637 ix86_generate_version_dispatcher_body): Update.
14638 (fold_builtin_cpu): Use varpool_add_new_variable.
14639 * varpool.c (varpool_remove_initializer): Break out from ...
14640 (varpool_remove_node): ... this one.
14641 (dump_varpool_node, varpool_node_for_asm,
14642 cgraph_variable_initializer_availability, varpool_analyze_node,
14643 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
14644 varpool_finalize_named_section_flags, varpool_create_variable_alias):
14645 Update.
e70670cf 14646
182802ad
JH
146472013-05-29 Jan Hubicka <jh@suse.cz>
14648
14649 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
14650
8190b609
ER
146512013-05-29 Easwaran Raman <eraman@google.com>
14652
14653 PR tree-optimization/57442
14654 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
14655 when control exits the main loop.
14656
69f5aa9b
SKS
146572013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
14658
14659 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
14660 and RX600.
c1e183a9 14661 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
14662 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
14663 * rx/t-rx: Add rx100 under multi library matches option for nofpu
14664 option.
14665
4b847da9
BS
146662013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14667
14668 PR tree-optimization/57441
14669 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
14670 Don't limit size of incr_vec to number of candidates.
14671
4fc43c39
SE
146722013-05-29 Steve Ellcey <sellcey@imgtec.com>
14673
14674 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
14675 and mips16 directories.
c1e183a9 14676 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
14677 (MULTILIB_DIRNAMES): Ditto.
14678 (MULTILIB_EXCEPTIONS): Add new exceptions.
14679 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
14680 (MULTILIB_DIRNAMES): Ditto.
14681 (MULTILIB_EXCEPTIONS): Add new exceptions.
14682
12211b99 146832012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
14684 Marcus Shawcroft <marcus.shawcroft@arm.com>
14685
14686 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
14687 SYMBOL_TINY_ABSOLUTE.
14688 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
14689 SYMBOL_TINY_ABSOLUTE.
14690 (aarch64_expand_mov_immediate): Likewise.
14691 (aarch64_classify_symbol): Likewise.
14692 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
14693 Permit SYMBOL_TINY_ABSOLUTE.
14694 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
14695
12211b99 146962013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
14697 Marcus Shawcroft <marcus.shawcroft@arm.com>
14698
14699 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
14700 Refactor if/switch. Replace gcc_assert with if.
14701
c0186656
GG
147022013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
14703
14704 * config/i386/i386.c (initial_ix86_tune_features): Enable
14705 FP Reassociation for AMD bdver1 and bdver2.
14706
d20188f3
MJ
147072013-05-29 Martin Jambor <mjambor@suse.cz>
14708
14709 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
14710 and IMAGPART_EXPR do not occur within other handled_components.
14711
292cba13
RB
147122013-05-29 Richard Biener <rguenther@suse.de>
14713
14714 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
14715 access on whether the use is in the BB we currently try to
14716 vectorize.
14717 (vect_bb_vectorization_profitable_p): Pass the BB we currently
14718 vectorize to vect_bb_slp_scalar_cost.
14719
6eddf228
RB
147202013-05-29 Richard Biener <rguenther@suse.de>
14721
14722 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
14723 computing scalar cost offsetted by stmts that are kept live
14724 by scalar uses.
14725 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
14726 for computation of scalar cost.
14727
7df36117
SE
147282013-05-28 Steve Ellcey <sellcey@mips.com>
14729
14730 * config/mips/mips-cpus.def (mips32r2): Change processor type.
14731
36536d79
BI
147322013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
14733
14734 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
14735 array notation built-in reduction functions.
14736 * doc/passes.texi (Passes): Added documentation about changes done
14737 for Cilk Plus.
14738 * doc/invoke.texi (C Dialect Options): Added documentation about
14739 the -fcilkplus flag.
14740 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
14741 (BUILTINS_DEF): Depend on cilkplus.def.
14742 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
14743 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
14744 * cilkplus.def: New file.
14745
12211b99 147462013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
14747
14748 PR rtl-optimization/57439
14749 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
14750
9daf6dbb
ER
147512013-05-28 Easwaran Raman <eraman@google.com>
14752
14753 PR tree-optimization/57337
14754 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
14755 (find_insert_point): Correctly identify the insertion point
14756 when two statements with the same UID is compared.
14757
fbd7e877
RB
147582013-05-28 Richard Biener <rguenther@suse.de>
14759
14760 PR tree-optimization/56787
14761 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
14762 from the list of data references.
14763 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
14764 clobbers.
14765 (vect_analyze_loop_operations): Likewise.
14766 (vect_transform_loop): Remove clobbers.
14767
bbba1117
MJ
147682013-05-28 Martin Jambor <mjambor@suse.cz>
14769
14770 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
14771 and REALPART_EXPRs have scalar type.
14772
bd388c2a
RB
147732013-05-28 Richard Biener <rguenther@suse.de>
14774
14775 PR tree-optimization/57411
14776 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
14777 virtual operands.
14778 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
14779 virtual operand propagation.
14780
2f56a311
EB
147812013-05-28 Eric Botcazou <ebotcazou@adacore.com>
14782
14783 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
14784 destination register for bmasksi_vis.
14785 (vector_init_bshuffle): Likewise.
14786 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
14787
5c3eacbb
EB
147882013-05-28 Eric Botcazou <ebotcazou@adacore.com>
14789
14790 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
14791 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
14792 mode if the instruction isn't available in the original mode.
14793 * config/sparc/sparc.opt (mfix-ut699): New option.
14794 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
14795 (divdf3): Turn into expander.
14796 (divdf3_nofix): New insn.
14797 (divdf3_fix): Likewise.
14798 (divsf3): Disable if -mfix-ut699.
14799 (sqrtdf2): Turn into expander.
14800 (sqrtdf2_nofix): New insn.
14801 (sqrtdf2_fix): Likewise.
14802 (sqrtsf2): Disable if -mfix-ut699.
14803
a1756c0a
RB
148042013-05-27 Richard Biener <rguenther@suse.de>
14805
14806 PR middle-end/57412
14807 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
14808 block for the new loop.
14809
5a892248
RB
148102013-05-27 Richard Biener <rguenther@suse.de>
14811
14812 PR tree-optimization/57343
14813 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
14814 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
14815 (number_of_iterations_cond): Do not build the folded tree.
14816
d1de852b
RB
148172013-05-27 Richard Biener <rguenther@suse.de>
14818
14819 Revert
14820 PR middle-end/57381
14821 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
14822 OEP_CONSTANT_ADDRESS_OF retained.
14823
14824 PR tree-optimization/57417
14825 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
14826 for unchanged base.
14827 (set_ssa_val_to): Compare addresses using
14828 get_addr_base_and_unit_offset.
14829
12211b99 148302013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
14831
14832 PR rtl-optimization/56833
14833 * postreload.c (move2add_record_mode): New function.
14834 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
14835 (move2add_use_add2_insn): Use move2add_record_sym_value.
14836 (move2add_use_add3_insn): Likewise.
14837 (reload_cse_move2add): Use move2add_valid_value_p and
14838 move2add_record_mode. Invalidate call-clobbered and REG_INC
14839 affected regs by setting reg_mode to VOIDmode.
14840 (move2add_note_store): Don't pretend the inside of a SUBREG is
14841 the actual destination. Invalidate single/leading registers by
14842 setting reg_mode to VOIDmode.
14843 Use move2add_record_sym_value, move2add_valid_value_p and
14844 move2add_record_mode.
14845
b03be25f
RB
148462013-05-27 Richard Biener <rguenther@suse.de>
14847
14848 PR tree-optimization/57396
14849 * tree-affine.c (double_int_constant_multiple_p): Properly
14850 return false for val == 0 and div != 0.
14851
44e88db2
RS
148522013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14853
14854 * config/mips/mips.h: Use #elif in preprocessor conditions.
14855
3b859704
RS
148562013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14857
14858 PR target/53916
14859 * config/mips/constraints.md (kl): New constraint.
14860 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
14861 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
14862 constraint for operand 0. Split after CSE for MIPS16. Emit a move
14863 from LO for MIPS16.
14864 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
14865
c979d5f5
RS
148662013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
14867
14868 PR target/55777
14869 * config/mips/mips.c (mips_can_inline_p): New function.
14870 (TARGET_CAN_INLINE_P): Define.
14871
8e90de43
SB
148722013-05-25 Steven Bosscher <steven@gcc.gnu.org>
14873
14874 * sched-int.h (ds_t, dw_t): Make unsigned int.
14875 Fix documentation that describes how all the ds_t bits are used.
14876 Reserve the last bit for delayed-branch scheduling.
14877 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
14878 (BITS_PER_DEP_WEAK): Fix definition and documentation.
14879 (gen_dep_weak_1): Remove prototype.
14880 * sched-deps.c (get_dep_weak_1): Make static.
14881 * target.def (speculate_insn, needs_block_p, gen_spec_check,
14882 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
14883 * doc/tm.texi: Regenerate.
14884 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
14885
cb5cb194
SB
148862013-05-24 Steven Bosscher <steven@gcc.gnu.org>
14887
14888 PR debug/56950
14889 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
14890
5bd93ff6
NS
148912013-05-24 Nathan Sidwell <nathan@codesourcery.com>
14892 Sandra Loosemore <sandra@codesourcery.com>
14893
14894 * config.gcc (powerpc-*): Allow native for with-cpu.
14895
2343af65
JL
148962013-05-24 Jeff Law <law@redhat.com>
14897
14898 PR tree-optimization/57124
14899 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
14900 conversion feeding a condition if the range has an overflow
14901 if -fstrict-overflow. Add warnings for when we do make the
14902 transformation.
14903
3ad695b9
DC
149042013-05-24 Dehao Chen <dehao@google.com>
14905
04960246 14906 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
14907 (locus_discrim_hasher): Likewise.
14908 (locus_discrim_hasher::hash): Likewise.
14909 (locus_discrim_hasher::equal): Likewise.
14910
82338059
MJ
149112013-05-24 Martin Jambor <mjambor@suse.cz>
14912
14913 PR tree-optimization/57294
14914 * cgraph.h (ipa_record_stmt_references): Declare.
14915 * cgraphbuild.c (ipa_record_stmt_references): New function.
14916 (build_cgraph_edges): Use ipa_record_stmt_references.
14917 (rebuild_cgraph_edges): Likewise.
14918 (cgraph_rebuild_references): Likewise.
14919 * ipa-prop.c (ipa_modify_call_arguments): Discard references
14920 associated with the old statement and build references from the
14921 newly built statements.
14922 * ipa-ref.c (ipa_remove_stmt_references): New function.
14923 * ipa-ref.h (ipa_remove_stmt_references): Declare.
14924
1ccd4874
VM
149252013-05-24 Vladimir Makarov <vmakarov@redhat.com>
14926
55805e54 14927 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 14928 mem-mem moves.
55805e54 14929 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 14930 too.
55805e54 14931 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
14932 secondary memory moves.
14933 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
14934 reg set up in the current insn.
14935
25e25c73
DC
149362013-05-24 Dehao Chen <dehao@google.com>
14937
04960246 14938 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
14939 hash function.
14940 (locus_descrim_hasher::equal): Likewise.
04960246 14941 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
14942 (make_edges): Likewise.
14943 (next_discriminator_for_locus): Likewise.
14944 (same_line_p): Likewise.
14945 (assign_discriminators): Likewise.
14946 (make_cond_expr_edges): Likewise.
14947 (make_gimple_switch_edges): Likewise.
14948 (make_goto_expr_edges): Likewise.
14949 (make_gimple_asm_edges): Likewise.
14950
50d38551
IB
149512013-05-24 Ian Bolton <ian.bolton@arm.com>
14952
14953 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
14954 X format specifier to only display bottom 16 bits.
14955 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
14956 immediate to match for operand 2, since it will be masked.
14957
aea0101d
RB
149582013-05-24 Richard Biener <rguenther@suse.de>
14959
14960 PR tree-optimization/57287
14961 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
14962 all SSA names that occur in abnormal PHIs.
14963
634e03d3
AI
149642013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
14965
14966 PR tree-ssa/57385
14967 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
14968 that index is not negative.
14969
b17c024f
EB
149702013-05-24 Eric Botcazou <ebotcazou@adacore.com>
14971
14972 PR rtl-optimization/55177
14973 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
14974 (simplify_byte_swapping_operation): New.
14975 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
14976 (simplify_relational_operation_1): Deal with BSWAP.
14977
46aeac1b
RH
149782013-05-23 Richard Henderson <rth@redhat.com>
14979
14980 PR target/56742
14981 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
14982 (ix86_reorg): Call it.
14983
70cc1536
UB
149842013-05-23 Uros Bizjak <ubizjak@gmail.com>
14985
14986 PR target/57379
14987 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
14988 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
14989 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
14990
b3851501
CB
149912013-05-23 Christian Bruel <christian.bruel@st.com>
14992
14993 PR debug/57351
14994 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
14995
12211b99 149962013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
14997 Marcus Shawcroft <marcus.shawcroft@arm.com>
14998
14999 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
15000 * config/aarch64/constraints.md (Usa): Remove.
15001 * doc/md.texi (AArch64 Usa): Remove.
15002
12211b99 150032013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
15004 Marcus Shawcroft <marcus.shawcroft@arm.com>
15005
15006 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
15007 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
15008 * config/aarch64/predicates.md (aarch64_const_address): Remove.
15009 (aarch64_mov_operand): Use aarch64_mov_operand_p.
15010
12211b99 150112013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
15012
15013 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
15014 instruction (AdvSIMD).
15015 * config/aarch64/aarch64-builtins.c
15016 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
15017 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
15018
76c36cb1 150192013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
15020
15021 PR middle-end/57347
15022 * tree.h (contains_bitfld_component_ref_p): Declare.
15023 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
15024 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
15025 caller.
7d2fb524
MJ
15026 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
15027 not access a bit-field. Assert all final offsets are byte-aligned.
15028
ce521ae6
RB
150292013-05-23 Richard Biener <rguenther@suse.de>
15030
15031 PR tree-optimization/57380
15032 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
15033 least one invariant or re-used load.
15034 * passes.c (init_optimization_passes): Move pass_phiprop before
15035 pass_forwprop.
15036
75c7257f
JG
150372013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
15038
15039 * config/aarch64/aarch64-simd.md
15040 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
15041
af6d44b5
RB
150422013-05-23 Richard Biener <rguenther@suse.de>
15043
15044 PR middle-end/57381
15045 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
15046 OEP_CONSTANT_ADDRESS_OF retained.
15047
bd3647bf
JJ
150482013-05-23 Jakub Jelinek <jakub@redhat.com>
15049
15050 PR middle-end/57344
70cc1536
UB
15051 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
15052 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 15053
a55757ea
RB
150542013-05-23 Richard Biener <rguenther@suse.de>
15055
15056 PR rtl-optimization/57341
15057 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
15058 instead of true_dependence.
15059
cfb00b41
DM
150602013-05-22 David Malcolm <dmalcolm@redhat.com>
15061
dd1c676f
DM
15062 * bb-reorder.c (branch_threshold): Make const.
15063 (exec_threshold): Ditto.
cfb00b41 15064
f62511da 150652013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15066 Pat Haugen <pthaugen@us.ibm.com>
15067 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
15068
15069 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
15070 documentation for the power8 crypto builtins.
15071
15072 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
15073
15074 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
15075 macros for defining power8 builtin functions.
15076 (BU_P8V_AV_2): Likewise.
15077 (BU_P8V_AV_P): Likewise.
15078 (BU_P8V_VSX_1): Likewise.
15079 (BU_P8V_OVERLOAD_1): Likewise.
15080 (BU_P8V_OVERLOAD_2): Likewise.
15081 (BU_CRYPTO_1): Likewise.
15082 (BU_CRYPTO_2): Likewise.
15083 (BU_CRYPTO_3): Likewise.
15084 (BU_CRYPTO_OVERLOAD_1): Likewise.
15085 (BU_CRYPTO_OVERLOAD_2): Likewise.
15086 (XSCVSPDP): Fix typo, point to the correct instruction.
15087 (VCIPHER): Add power8 crypto builtins.
15088 (VCIPHERLAST): Likewise.
15089 (VNCIPHER): Likewise.
15090 (VNCIPHERLAST): Likewise.
15091 (VPMSUMB): Likewise.
15092 (VPMSUMH): Likewise.
15093 (VPMSUMW): Likewise.
15094 (VPERMXOR_V2DI): Likewise.
15095 (VPERMXOR_V4SI: Likewise.
15096 (VPERMXOR_V8HI: Likewise.
15097 (VPERMXOR_V16QI: Likewise.
15098 (VSHASIGMAW): Likewise.
15099 (VSHASIGMAD): Likewise.
15100 (VPMSUM): Likewise.
15101 (VPERMXOR): Likewise.
15102 (VSHASIGMA): Likewise.
15103
15104 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
15105 __CRYPTO__ if the crypto instructions are available.
15106 (altivec_overloaded_builtins): Add support for overloaded power8
15107 builtins.
15108
15109 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
15110 support for power8 crypto builtins.
15111 (builtin_function_type): Likewise.
15112 (altivec_init_builtins): Add support for builtins that take vector
15113 long long (V2DI) arguments.
15114
15115 * config/rs6000/crypto.md: New file, define power8 crypto
15116 instructions.
15117
151182013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
15119 Pat Haugen <pthaugen@us.ibm.com>
15120 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
15121
15122 * doc/invoke.texi (Option Summary): Add power8 options.
15123 (RS/6000 and PowerPC Options): Likewise.
15124
15125 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
15126 constraints.md instead of rs6000.h. Reorder w* constraints. Add
15127 wm, wn, wr documentation.
15128
f43245d1 15129 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
15130 registers if direct move instructions are enabled.
15131 (wn): New constraint for no registers.
15132 (wq): New constraint for quad word even GPR registers.
15133 (wr): New constraint if 64-bit instructions are enabled.
15134 (wv): New constraint if power8 vector instructions are enabled.
15135 (wQ): New constraint for quad word memory locations.
15136
f43245d1 15137 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
15138 constraint for 0..15 for crypto instructions.
15139 (gpc_reg_operand): If VSX allow registers in VSX registers as well
15140 as GPR and floating point registers.
15141 (int_reg_operand): New predicate to match only GPR registers.
15142 (base_reg_operand): New predicate to match base registers.
15143 (quad_int_reg_operand): New predicate to match even GPR registers
15144 for quad memory operations.
15145 (vsx_reg_or_cint_operand): New predicate to allow vector logical
15146 operations in both GPR and VSX registers.
15147 (quad_memory_operand): New predicate for quad memory operations.
15148 (reg_or_indexed_operand): New predicate for direct move support.
15149
f43245d1 15150 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
15151 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
15152 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
15153 (POWERPC_MASKS): Add power8 options.
15154 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
15155 various options.
15156
f43245d1 15157 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
15158 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
15159
f43245d1 15160 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
15161 (-mpower8-fusion): New power8 options.
15162 (-mpower8-fusion-sign): Likewise.
15163 (-mpower8-vector): Likewise.
15164 (-mcrypto): Likewise.
15165 (-mdirect-move): Likewise.
15166 (-mquad-memory): Likewise.
15167
f43245d1 15168 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
15169 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
15170 registers.
70cc1536 15171 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
15172 (rs6000_debug_vector_unit): Add p8_vector.
15173 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
15174 definitions. Also print fusion state.
15175 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
15176 (rs6000_builtin_mask_calculate): Add power8 builtin support.
15177 (rs6000_option_override_internal): Add support for power8.
15178 (rs6000_common_init_builtins): Add debugging for skipped builtins
15179 if -mdebug=builtin.
15180 (rs6000_adjust_cost): Add power8 support.
15181 (rs6000_issue_rate): Likewise.
15182 (insn_must_be_first_in_group): Likewise.
15183 (insn_must_be_last_in_group): Likewise.
15184 (force_new_group): Likewise.
15185 (rs6000_register_move_cost): Likewise.
15186 (rs6000_opt_masks): Likewise.
15187
15188 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
15189 power8 capable assembler, default to power7 options.
15190 (TARGET_DIRECT_MOVE): Likewise.
15191 (TARGET_CRYPTO): Likewise.
15192 (TARGET_P8_VECTOR): Likewise.
15193 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
15194 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
15195 (VECTOR_MEM_P8_VECTOR_P): Likewise.
15196 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
15197 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
15198 (TARGET_XSCVDPSPN): Likewise.
15199 (TARGET_XSCVSPDPN): Likewsie.
15200 (TARGET_SYNC_HI_QI): Likewise.
15201 (TARGET_SYNC_TI): Likewise.
15202 (MASK_CRYPTO): Likewise.
15203 (MASK_DIRECT_MOVE): Likewise.
15204 (MASK_P8_FUSION): Likewise.
15205 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
15206 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
15207 temporary used by some of the direct move instructions to get two FP
15208 temporary registers does not force creation of a stack frame.
f62511da
MM
15209 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
15210 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
15211 that any VSX registers are tieable, even if they are also an
15212 Altivec vector mode.
15213 (r6000_reg_class_enum): Add wm, wr, wv constraints.
15214 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
15215 (RS6000_BTM_CRYPTO): Likewise.
15216 (RS6000_BTM_COMMON): Likewise.
15217
15218 * config/rs6000/rs6000.md (cpu attribute): Add power8.
15219 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
15220 (enum rs6000_vector): Add power8 vector support.
15221
73a1a707
RR
152222013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15223
15224 PR target/19599
15225 PR target/57340
15226 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
15227 (any_sibcall_could_use_r3): this and handle indirect calls.
15228 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
15229
d28073d4
BS
152302013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15231
15232 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
15233
bee0b10c
RB
152342013-05-22 Richard Biener <rguenther@suse.de>
15235
15236 PR middle-end/57349
15237 * profile.c (branch_prob): Do not split blocks that are
15238 abnormally receiving from ECF_RETURNS_TWICE functions.
15239
98409b51
RS
152402013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
15241
15242 * recog.c (offsettable_address_addr_space_p): Fix calculation of
15243 address mode. Move pointer mode initialization to the same place.
15244
c0602ab8
MZ
152452013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15246
15247 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
15248 while it has any effect.
15249
4f7a634e
ER
152502013-05-21 Easwaran Raman <eraman@google.com>
15251
15252 PR tree-optimization/57322
9daf6dbb
ER
15253 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
15254 UID of the statement added to the BB to be 1.
4f7a634e 15255
a4ce1258
JJ
152562013-05-21 Jakub Jelinek <jakub@redhat.com>
15257
15258 PR tree-optimization/57331
70cc1536
UB
15259 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
15260 of conversion from pointer type to integral type with integer.
a4ce1258 15261
1b14621a
MJ
152622013-05-21 Martin Jambor <mjambor@suse.cz>
15263
15264 PR lto/57289
15265 * ipa-prop.c (ipa_read_node_info): Process param_used and
15266 controlled_uses in the same order as when writing.
15267
e60661f0
MG
152682013-05-21 Magnus Granberg <baldrick@free.fr>
15269
15270 PR plugins/56754
ee49aa34 15271 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 15272
4a61be9a
RB
152732013-05-21 Richard Biener <rguenther@suse.de>
15274
15275 PR tree-optimization/57318
15276 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
15277 estimate stmts with side-effects as likely eliminated.
15278
c52da5f7
RB
152792013-05-21 Richard Biener <rguenther@suse.de>
15280
15281 PR tree-optimization/57330
15282 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
15283 preserve the call stmts fntype.
15284
7ec67e2a
RB
152852013-05-21 Richard Biener <rguenther@suse.de>
15286
15287 PR tree-optimization/57303
15288 * tree-ssa-sink.c (statement_sink_location): Improve killing
15289 stmt detection and properly handle self-assignments.
15290
b112d513
CB
152912013-05-21 Christian Bruel <christian.bruel@st.com>
15292
55805e54
YR
15293 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
15294 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
15295 registers. Set register size out of the PARALLEL loop.
15296
14c2ec26
OE
152972013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
15298
15299 PR target/56547
15300 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
15301 (*fmasf4, *fmasf4_media): New insns.
15302
da734fa1
RS
153032013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15304
15305 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
15306 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
15307 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
15308 (mips_idiv_insns): Update the comments to say that the returned
15309 instruction counts are in units of BASE_INSN_LENGTH.
15310 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
15311 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
15312 using 2 rather than 4 as the length of indirect MIPS16 and
15313 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
15314 length of a NOP. Don't divide MIPS16 lengths by 2.
15315 (mips16_split_long_branches): Assume a branch is long if the
15316 length is greater than 4 rather than 8.
15317 * config/mips/mips.md (length): Give MIPS16 lengths directly,
15318 rather than multiplying them by 2. Multiply instruction counts
15319 by BASE_INSN_LENGTH rather than 4.
15320 (*jump_mips16, tls_get_tp_mips16_<mode>)
15321 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
15322
13719e8b
RS
153232013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15324
15325 * config/mips/mips.md (extended_mips16): Remove branch case.
15326 (length): Remove duplicated extended_mips16 test.
15327
c3850d14
RS
153282013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
15329
15330 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
15331
8da2e059
RS
153322013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
15333
15334 * recog.h (Recog_data): Rename to...
15335 (recog_data_d): ...this.
15336 (recog_data): Update accordingly.
15337 * recog.c (recog_data): Likewise.
15338 * reload.c (save_recog_data): Likewise.
15339 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
15340 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
15341
2df013f3
JB
153422013-05-17 Julian Brown <julian@codesourcery.com>
15343
15344 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
15345 found in a REG_EQUAL note, invalidate it.
15346
371e77e3 153472013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
15348
15349 * tree-ssa-reassoc.c (find_insert_point): New function.
15350 (insert_stmt_after): Likewise.
15351 (get_def_stmt): Likewise.
15352 (ensure_ops_are_available): Likewise.
15353 (not_dominated_by): Likewise.
15354 (rewrite_expr_tree): Do not move statements beyond what is
15355 necessary. Remove call to swap_ops_for_binary_stmt...
15356 (reassociate_bb): ... and move it here.
15357 (build_and_add_sum): Assign UIDs for new statements.
15358 (linearize_expr): Likewise.
15359 (do_reassoc): Renumber gimple statement UIDs.
15360
e01c7cca
JH
153612013-05-17 Jan Hubicka <jh@suse.cz>
15362
15363 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
15364 weakrefs.
15365 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
15366 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
15367 weakrefs.
e01c7cca
JH
15368 (output_weakrefs): Update.
15369
c3272a92
PCC
153702013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
15371 Martin Jambor <mjambor@suse.cz>
15372
15373 PR middle-end/57276
15374 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
15375 value that corresponds to the given aggval is found in values vector.
15376
11c2aa39
UB
153772013-05-17 Uros Bizjak <ubizjak@gmail.com>
15378
15379 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
15380 sse, sse2, sse3, ssse3 and sse4a flags to options.
15381
abecc8c6
DM
153822013-05-17 David Malcolm <dmalcolm@redhat.com>
15383
15384 * gengtype-state.c: (s_expr_writer): New class, to handle
15385 prettifying of output layout of s-expressions.
15386 (state_writer): New class, to write out gtype.state.
15387 (state_written_type_count): Move this variable into member data of
15388 state_writer.
15389 (s_expr_writer::s_expr_writer): New code: constructor for new class
15390 (state_writer::state_writer(): ditto
15391 (s_expr_writer::write_new_line): New function
15392 (s_expr_writer::write_any_indent): ditto
15393 (s_expr_writer::begin_s_expr): ditto
15394 (s_expr_writer::end_s_expr): ditto
15395 (write_state_fileloc): convert to method of state_writer...
15396 (state_writer:: write_state_fileloc): ...and use methods of
15397 s_expr_writer to write indentation into the gtype.state output file
15398 to visually represent the hierarchical structure of the list
15399 structures
15400 (write_state_fields): ditto, renaming to...
15401 (state_writer::write_state_fields)
15402 (write_state_a_string): ditto, renaming to...
15403 (state_writer::write_state_a_string)
15404 (write_state_string_option): ditto, renaming to...
15405 (state_writer::write_state_string_option)
15406 (write_state_type_option): ditto, renaming to...
15407 (state_writer::write_state_type_option)
15408 (write_state_nested_option): ditto, renaming to...
15409 (state_writer::write_state_nested_option)
15410 (write_state_option): ditto, renaming to...
15411 (state_writer::write_state_option)
15412 (write_state_options): ditto, renaming to...
15413 (state_writer::write_state_options)
15414 (write_state_lang_bitmap): ditto, renaming to...
15415 (state_writer::write_state_lang_bitmap)
15416 (write_state_version): ditto, renaming to...
15417 (state_writer::write_state_version)
15418 (write_state_scalar_type): ditto, renaming to...
15419 (state_writer::write_state_scalar_type)
15420 (write_state_string_type): ditto, renaming to...
15421 (state_writer::write_state_string_type)
15422 (write_state_undefined_type): ditto, renaming to...
15423 (state_writer::write_state_undefined_type)
15424 (write_state_struct_union_type): ditto, renaming to...
15425 (state_writer::write_state_struct_union_type)
15426 (write_state_struct_type): ditto, renaming to...
15427 (state_writer::write_state_struct_type)
15428 (write_state_user_struct_type): ditto, renaming to...
15429 (state_writer::write_state_user_struct_type)
15430 (write_state_lang_struct_type): ditto, renaming to...
15431 (state_writer::write_state_lang_struct_type)
15432 (write_state_param_struct_type): ditto, renaming to...
15433 (state_writer::write_state_param_struct_type)
15434 (write_state_pointer_type): ditto, renaming to...
15435 (state_writer::write_state_pointer_type)
15436 (write_state_array_type): ditto, renaming to...
15437 (state_writer::write_state_array_type)
15438 (write_state_gc_used): ditto, renaming to...
15439 (state_writer::write_state_gc_used)
15440 (write_state_common_type_content): ditto, renaming to...
15441 (state_writer::write_state_common_type_content)
15442 (write_state_type): ditto, renaming to...
15443 (state_writer::write_state_type)
15444 (write_state_pair_list): ditto, renaming to...
15445 (state_writer::write_state_pair_list)
15446 (write_state_pair): ditto, renaming to...
15447 (state_writer::write_state_pair)
15448 (write_state_typedefs): ditto, renaming to...
15449 (state_writer::write_state_typedefs)
15450 (write_state_structures): ditto, renaming to...
15451 (state_writer::write_state_structures)
15452 (write_state_param_structs): ditto, renaming to...
15453 (state_writer::write_state_param_structs)
15454 (write_state_variables): ditto, renaming to...
15455 (state_writer::write_state_variables)
15456 (write_state_srcdir): ditto, renaming to...
15457 (state_writer::write_state_srcdir)
15458 (write_state_files_list): ditto, renaming to...
15459 (state_writer::write_state_files_list)
15460 (write_state_languages): ditto, renaming to...
15461 (state_writer::write_state_languages)
15462 (write_state): create a state_writer instance and use it when
15463 writing out the state file
15464
d6545f29
MS
154652013-05-17 Mike Stump <mikestump@comcast.net>
15466
816a3f73 15467 PR rtl-optimization/57304
d6545f29
MS
15468 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
15469 accessing DF_REF_REAL_LOC.
15470
38c821cf
JJ
154712013-05-17 Jakub Jelinek <jakub@redhat.com>
15472
15473 PR rtl-optimization/57281
15474 PR rtl-optimization/57300
15475 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
15476 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
15477 what the other splitter did if the registers are dead.
15478
2a293391
RB
154792013-05-17 Richard Biener <rguenther@suse.de>
15480
15481 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
15482 MEM_REF offsets.
15483
17042d2b
JJ
154842013-05-17 Jakub Jelinek <jakub@redhat.com>
15485
15486 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
15487 linking.
15488
5b115c1f
MP
154892013-05-17 Marek Polacek <polacek@redhat.com>
15490
11c2aa39
UB
15491 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
15492 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 15493
52d84413
JJ
154942013-05-17 Jakub Jelinek <jakub@redhat.com>
15495
68119618
JJ
15496 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
15497 vect_external_def oprnd1 with loop_vinfo, try to emit
15498 optional cast, negation and and stmts on the loop preheader
15499 edge instead of into the pattern def seq.
15500
52d84413
JJ
15501 PR tree-optimization/57051
15502 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
15503 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
15504
17b962bd
NC
155052013-05-16 Nick Clifton <nickc@redhat.com>
15506
15507 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
15508 (rl78_is_naked_func): New function.
56aefbf7
UB
15509 (rl78_expand_prologue): Skip prologue generation for naked functions.
15510 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
15511 * doc/extend.texi (naked): Add RL78 to the list of processors
15512 that supports this attribute.
15513
b1a0f84e
JL
155142013-05-16 Jeff Law <law@redhat.com>
15515
15516 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
15517
af0e415b
UB
155182013-05-16 Uros Bizjak <ubizjak@gmail.com>
15519
15520 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
15521 cache parameters using detect_caches_amd also for CYRIX,
15522 NSC and TM2 signatures.
15523
19db293a
UB
155242013-05-16 Uros Bizjak <ubizjak@gmail.com>
15525 Dzianis Kahanovich <mahatma@eu.by>
15526
15527 PR target/45359
15528 PR target/46396
15529 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15530 VIA/Centaur processors and determine their cache parameters
15531 using detect_caches_amd.
15532
251a41b9
TJ
155332013-05-16 Teresa Johnson <tejohnson@google.com>
15534
15535 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
15536 (rtl_verify_edges): New function.
15537 (rtl_verify_bb_insns): Ditto.
15538 (rtl_verify_bb_pointers): Ditto.
15539 (rtl_verify_bb_insn_chain): Ditto.
15540 (rtl_verify_fallthru): Ditto.
15541 (rtl_verify_bb_layout): Ditto.
15542 (rtl_verify_flow_info_1): Outline checks into new functions.
15543 (rtl_verify_flow_info): Ditto.
15544
f14540b6
SE
155452013-05-16 Steve Ellcey <sellcey@imgtec.com>
15546
15547 * cfghooks.c (copy_bbs): Add update_dominance argument.
15548 * cfghooks.h (copy_bbs): Update prototype.
15549 * tree-cfg.c (gimple_duplicate_sese_region):
15550 Add update_dominance argument.
15551 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
15552 * tree-ssa-loop-ch.c (copy_loop_headers): Update
15553 gimple_duplicate_sese_region call.
15554 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
15555 Update copy_bbs call.
15556 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
15557 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
15558
7e9a3abb
JJ
155592013-05-16 Jakub Jelinek <jakub@redhat.com>
15560
15561 * tree-vectorizer.h (NUM_PATTERNS): Increment.
15562 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
15563 vect_recog_rotate_pattern.
15564 (vect_recog_rotate_pattern): New function.
15565
427b248d
JM
155662013-05-16 Jason Merrill <jason@redhat.com>
15567
15568 * Makefile.in (LLINKER): New variable.
15569 (mostlyclean): Remove link mutex.
15570 * configure.ac: Handle --enable-link-mutex.
15571 * lock-and-run.sh: New script.
15572
b871e3d2
RR
155732013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15574
15575 PR target/19599
15576 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
15577 for NULL decl.
15578
ce858126
RO
155792013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15580
15581 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
15582
798d3d04
GY
155832013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
15584
15585 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
15586 * config/arm/arm.c (next_consecutive_mem): New function.
15587 (gen_movmem_ldrd_strd): Likewise.
15588 * config/arm/arm.md (movmemqi): Update condition and code.
15589 (unaligned_loaddi, unaligned_storedi): New patterns.
15590
0baddc45
RO
155912013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15592
15593 * config.gcc: Obsolete *-*-solaris2.9*.
15594 * doc/install.texi (Specific, *-*-solaris2*): Document it.
15595
aa9d5bcf
RB
155962013-05-16 Richard Biener <rguenther@suse.de>
15597
15598 * passes.c (init_optimization_passes): Move pass_parallelize_loops
15599 earlier, after GRAPHITE transforms and IV canonicalization.
15600
5a0f4dd3
JJ
156012013-05-16 Jakub Jelinek <jakub@redhat.com>
15602
15603 * omp-low.c (extract_omp_for_data): For collapsed loops,
15604 if at least one of the loops is known at compile time to
15605 iterate zero times, set count to 0.
15606 (expand_omp_regimplify_p): New function.
15607 (expand_omp_for_generic): For collapsed loops, if at least
15608 one of the loops isn't known to iterate at least once,
15609 add runtime check with setting count to 0.
15610 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
15611 For unsigned types if it isn't known at compile time that
15612 the loop will iterate at least once, add runtime check to bypass
15613 the whole loop if initial condition isn't true.
15614
e3753785
NS
156152013-05-16 Nathan Sidwell <nathan@codesourcery.com>
15616
15617 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
15618
43bb4dd1
MG
156192013-05-16 Marc Glisse <marc.glisse@inria.fr>
15620
15621 PR middle-end/57286
15622 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
15623 transformations to avoid an infinite loop.
15624
3571dde6
MP
156252013-05-16 Marek Polacek <polacek@redhat.com>
15626
15627 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
15628
b8b3f0ca
LE
156292013-05-15 Leif Ekblad <leif@rdos.net>
15630
15631 * config/i386/i386.c (ix86_decompose_address): Use
15632 DEFAULT_TLS_SEG_REG to access TLS segment register.
15633 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
15634 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
15635 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
15636
e299a383
RS
156372013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
15638
15639 PR target/57260
15640 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
15641 sibling calls to functions that would normally be lazily bound,
15642 unless $gp is call-clobbered.
15643
e7208ea3
UB
156442013-05-15 Uros Bizjak <ubizjak@gmail.com>
15645
19db293a 15646 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 15647 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
15648 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
15649 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
15650 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
15651 of TARGET_3DNOW.
15652 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
15653
e7413f3d
AS
156542013-05-15 Andreas Schwab <schwab@suse.de>
15655
15656 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
15657 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
15658 third operand.
15659
ad4db775
TJ
156602013-05-15 Teresa Johnson <tejohnson@google.com>
15661
15662 * loop-unroll.c (report_unroll_peel): Check decision before
15663 emitting unroll/peel message.
15664
af205f67
TJ
156652013-05-15 Teresa Johnson <tejohnson@google.com>
15666
15667 * function.h (has_bb_partition): New rtl_data flag.
15668 (bb_reorder_complete): Ditto.
15669 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
15670 instead of flag_reorder_blocks_and_partition.
15671 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
15672 with some enhancements.
15673 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
15674 * bb-reorder.c (connect_traces): Check for has_bb_partition
15675 instead of flag_reorder_blocks_and_partition.
15676 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
15677 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
15678 verify_hot_cold_block_grouping.
15679 (partition_hot_cold_basic_blocks): Set has_bb_partition.
15680
9adcfa3c
RR
156812013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15682
15683 PR target/19599
15684 * config/arm/predicates.md (call_insn_operand): New predicate.
15685 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
15686 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
15687 if insn is not a tail call.
15688 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
15689 registers.
15690 * config/arm/arm.h (enum reg_class): New caller save register class.
15691 (REG_CLASS_NAMES): Likewise.
15692 (REG_CLASS_CONTENTS): Likewise.
15693 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
15694 without decls.
15695
ccb3ad87
RB
156962013-05-15 Richard Biener <rguenther@suse.de>
15697
15698 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
15699 of MSG_OPTIMIZED_LOCATIONS.
15700 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
15701 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
15702 message.
15703 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
15704 of MSG_OPTIMIZED_LOCATIONS.
15705 (execute_vect_slp): Likewise.
15706 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
15707 (vect_create_cond_for_alias_checks): Likewise.
15708 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
15709 (vect_recog_widen_mult_pattern): Likewise.
15710 (vect_recog_widen_sum_pattern): Likewise.
15711 (vect_recog_over_widening_pattern): Likewise.
15712 (vect_recog_widen_shift_pattern): Likewise.
15713 (vect_recog_vector_vector_shift_pattern): Likewise.
15714 (vect_recog_divmod_pattern): Likewise.
15715 (vect_recog_mixed_size_cond_pattern): Likewise.
15716 (vect_recog_bool_pattern): Likewise.
15717 (vect_pattern_recog_1): Likewise.
15718
48b1474e
MJ
157192013-05-15 Martin Jambor <mjambor@suse.cz>
15720
15721 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
15722 non-functions to builtin_unreachable.
15723 * ipa-inline-transform.c (inline_call): Do not assert estimates were
15724 correct when new direct edges were discovered.
15725
9de04252
MJ
157262013-05-15 Martin Jambor <mjambor@suse.cz>
15727
15728 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
15729 header, print symbol order instead of node uid, print more information
15730 about indirect edge targets.
15731 (ipa_make_edge_direct_to_target): Print symbol order instead of node
15732 uids.
15733 (ipa_make_edge_direct_to_target): Likewise.
15734 (remove_described_reference): Likewise.
15735 (propagate_controlled_uses): Likewise.
15736 (ipa_print_node_params): Also print symbol order.
15737 (ipcp_transform_function): Print symbol order instead of node uids.
15738 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
15739 (cgraph_get_create_real_symbol_node): Likewise.
15740 * ipa-cp.c (print_lattice): Likewise.
15741 (print_all_lattices): Likewise.
15742 (determine_versionability): Likewise.
15743 (initialize_node_lattices): Likewise.
15744 (estimate_local_effects): Likewise.
15745 (update_profiling_info): Likewise.
15746 (create_specialized_node): Likewise.
15747 (perhaps_add_new_callers): Likewise.
15748 (decide_about_value): Likewise.
15749 (decide_whether_version_node): Likewise.
15750 (identify_dead_nodes): Likewise.
15751 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
15752 (dump_inline_summary): Likewise.
15753 (estimate_node_size_and_time): Likewise.
15754 (inline_analyze_function): Likewise.
15755 * ipa-inline.c (report_inline_failed_reason): Likewise.
15756 (want_early_inline_function_p): Likewise.
15757 (edge_badness): Likewise.
15758 (update_edge_key): Likewise.
15759 (inline_small_functions): Likewise. Add dumping of order to two other
15760 dumps.
15761 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
15762 instead of node uids.
15763 (propagate_pure_const): Likewise.
15764 (propagate_pure_const): Likewise.
15765 * ipa-utils.c (dump_cgraph_node_set): Likewise.
15766 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
15767 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
15768 of node uids.
15769 * tree-pretty-print.c (dump_function_header): Likewise.
15770 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
15771 Print symbol order instead of node uids.
15772
1dd03b91
AK
157732013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15774
15775 * config/s390/s390.c (s390_register_move_cost): Don't impose the
15776 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
15777
fdf6a7b9
RB
157782013-05-15 Richard Biener <rguenther@suse.de>
15779
15780 PR tree-optimization/57275
15781 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
15782 return value for fail to do runtime alias checks for gather loads.
15783
2d6e4603
JH
157842013-05-15 Jan Hubicka <jh@suse.cz>
15785
15786 PR lto/57038
15787 PR lto/47375
e7208ea3
UB
15788 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
15789 weakrefs are not external.
15790 (lto_symtab_merge_decls): Fix thinko when dealing with
15791 non-lto_symtab decls.
2d6e4603
JH
15792 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
15793 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
15794 * varpool.c (dump_varpool_node): Dump more flags.
15795
83f44b39
GG
157962013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
15797
15798 * config/i386/i386.c (processor_alias_table): Add instruction
15799 FSGSBASE for AMD bdver3 architecture.
15800
2e55d062
JJ
158012013-05-14 Jakub Jelinek <jakub@redhat.com>
15802
15803 * tree.c (warn_deprecated_use): Print file:line using locus color.
15804 * diagnostic.c (diagnostic_report_current_module): Print file:line
15805 and file:line:column using locus color.
15806
0bfdb81e
MS
158072013-05-14 Mike Stump <mikestump@comcast.net>
15808
15809 * gdbinit.in: Add __null.
15810
a508ef22
MS
158112013-05-14 Mike Stump <mikestump@comcast.net>
15812
15813 * recog.h: Rename struct recog_data to Recog_data.
15814 * recog.c: Likewise.
15815 * reload.c (can_reload_into): Likewise.
15816 * config/picochip/picochip.c: Likewise.
15817
e7180acb
MS
158182013-05-14 Mike Stump <mikestump@comcast.net>
15819
15820 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
15821
61216c26
SB
158222013-05-14 Steven Bosscher <steven@gcc.gnu.org>
15823
fd6beed4
SB
15824 * resource.h (struct resources): Remove unch_memory member.
15825 (CLEAR_RESOURCE): Don't clear unch_memory.
15826 * resource.c (mark_referenced_resources): Don't set it.
15827 (mark_set_resources): Likewise.
15828 (mark_target_live_regs): Don't clear it.
15829 (init_resource_info): Likewise.
15830 * reorg.c (resource_conflicts_p): Don't compare it.
15831 (redundant_insn): Don't set it.
15832
61216c26
SB
15833 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
15834 Remove prototypes.
15835 * emit-rtl.c (next_label): Remove unused function.
15836 (skip_consecutive_labels, link_cc0_insns): Move to ...
15837 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
15838 only place where these functions are used, and make them static.
15839
418d1b87
MG
158402013-05-14 Marc Glisse <marc.glisse@inria.fr>
15841
15842 * fold-const.c (fold_negate_expr): Handle vectors.
15843 (fold_truth_not_expr): Make it static.
15844 (fold_invert_truthvalue): New static function.
15845 (invert_truthvalue_loc): Handle vectors. Do not call
15846 fold_truth_not_expr directly.
15847 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
15848 <TRUTH_NOT_EXPR>: Do not cast to boolean.
15849 (fold_comparison): Handle vector constants.
15850 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
15851 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
15852 * tree.h (fold_truth_not_expr): Remove declaration.
15853
fc21784d
JG
158542013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
15855
15856 * config/aarch64/aarch64-simd.md
15857 (aarch64_vcond_internal<mode>): Rename to...
15858 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
15859 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
15860 float modes. Clarify all iterator modes.
15861 (vcond<mode><mode>): Use new name for vcond expanders.
15862 (vcond<v_cmp_result><mode>): Likewise.
15863 (vcondu<mode><mode>: Likewise.
15864 * config/aarch64/iterators.md (VDQF_COND): New.
15865
d4c52634
MG
158662013-05-14 Marc Glisse <marc.glisse@inria.fr>
15867
15868 PR bootstrap/57266
15869 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
15870 variable for the shift amount. Check that we shift by non-negative
15871 amounts.
15872
2b261262
CLT
158732013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
15874
15875 PR target/42017
15876 * config/arm/arm.h (EPILOGUE_USES): Only return true
15877 for LR_REGNUM after epilogue_completed.
15878
12211b99 158792013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
15880
15881 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 15882 is error_mark_node.
6e022d7b 15883
56cf7859
RO
158842013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15885
15886 PR target/57261
15887 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
15888 and Solaris 11+/x86 with gld.
15889 * configure: Regenerate.
15890
75776c6d
JJ
158912013-05-14 Jakub Jelinek <jakub@redhat.com>
15892
15893 * expmed.c (expand_shift_1): Canonicalize rotates by
15894 constant bitsize / 2 to bitsize - 1.
7f998021 15895 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
15896 case ROTATERT>: Likewise.
15897
15898 Revert:
15899 2013-05-10 Jakub Jelinek <jakub@redhat.com>
15900
15901 * config/i386/i386.md (rotateinv): New code attr.
15902 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
15903 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
15904 roll $31, %eax, etc.
15905
df35498a
RB
159062013-05-14 Richard Biener <rguenther@suse.de>
15907
15908 PR middle-end/57235
15909 * tree-eh.c (sink_clobbers): Give up for successors with
15910 multiple predecessors and no virtual uses.
15911
cc6e7ece
EB
159122013-05-14 Eric Botcazou <ebotcazou@adacore.com>
15913
15914 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
15915 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
15916
f778dd4d
JJ
159172013-05-14 Jakub Jelinek <jakub@redhat.com>
15918
15919 PR middle-end/57251
15920 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
15921 the case when both op0 and op1 have VOIDmode.
15922
bad4df9b
KP
159232013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
15924
15925 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
15926 in multiply-accumulate mode.
15927
56f3e9ac
GW
159282013-05-13 Guozhi Wei <carrot@google.com>
15929
15930 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
15931
a3d7ab92
KT
159322013-05-13 Kai Tietz <ktietz@redhat.com>
15933
15934 PR target/56975
15935 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 15936 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 15937 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 15938 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
15939 (ix86_expand_prologue): Likewise.
15940 (ix86_expand_split_stack_prologue): Likewise.
15941 (legitimate_pic_address_disp_p): Likewise.
15942 (legitimize_pic_address): Likewise.
15943 (legitimize_tls_address): Likewise.
15944 (legitimize_pe_coff_symbol): Likewise.
15945 (output_pic_addr_const): Likewise.
15946 (construct_plt_address): Likewise.
15947 (ix86_expand_call): Likewise.
15948 (x86_output_mi_thunk): Likewise.
15949 (x86_function_profiler): Likewise.
15950
c59b7e28
SN
159512013-05-13 Sofiane Naci <sofiane.naci@arm.com>
15952
15953 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
15954 similar switch cases.
15955 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
15956 (aarch64_simd_mov_to_<mode>low): Delete.
15957 (aarch64_simd_mov_to_<mode>high): Delete.
15958 (move_lo_quad_<mode>): Add w<-r alternative.
15959 (aarch64_simd_move_hi_quad_<mode>): Likewise.
15960 (aarch64_simd_mov_from_*): Update type attribute.
15961 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
15962 statement.
15963
5f28524a
JH
159642013-05-13 Jan Hubicka <jh@suse.cz>
15965
15966 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
15967 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
15968 ix86_expand_epilogue, emit_i387_cw_initialization,
15969 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
15970 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 15971
ae6fa899
JJ
159722013-05-13 Jakub Jelinek <jakub@redhat.com>
15973
15974 PR tree-optimization/45216
15975 PR tree-optimization/57157
15976 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
15977 the (-Y) & (B - 1) variant if OP is |.
15978 * expmed.c (expand_shift_1): For rotations by const0_rtx just
15979 return shifted. Use (-op1) & (prec - 1) as other_amount
15980 instead of prec - op1.
15981
4502fe8d
MJ
159822013-05-13 Martin Jambor <mjambor@suse.cz>
15983
15984 PR middle-end/42371
15985 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
15986 (ipa_constant_data): New type.
15987 (ipa_jump_func): Use ipa_constant_data to hold information about
15988 constant jump functions.
15989 (ipa_get_jf_constant): Adjust to jump function type changes.
15990 (ipa_get_jf_constant_rdesc): New function.
15991 (ipa_param_descriptor): New field controlled_uses.
15992 (ipa_get_controlled_uses): New function.
15993 (ipa_set_controlled_uses): Likewise.
15994 * ipa-ref.h (ipa_find_reference): Declare.
15995 * ipa-prop.c (ipa_cst_ref_desc): New type.
15996 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
15997 changes.
15998 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
15999 New parameter cs. Adjust all callers.
16000 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
16001 (remove_described_reference): New function.
16002 (jfunc_rdesc_usable): Likewise.
16003 (try_make_edge_direct_simple_call): Decrement controlled use count,
16004 attempt to remove reference if it hits zero.
16005 (combine_controlled_uses_counters): New function.
16006 (propagate_controlled_uses): Likewise.
16007 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
16008 (ipa_edge_duplication_hook): Duplicate reference descriptions.
16009 (ipa_print_node_params): Print described use counter.
16010 (ipa_write_jump_function): Adjust to jump function type changes.
16011 (ipa_read_jump_function): New parameter CS, pass it to
16012 ipa_set_jf_constant. Adjust caller.
16013 (ipa_write_node_info): Stream controlled use count
16014 (ipa_read_node_info): Likewise.
16015 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
16016 asserting.
16017 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
16018 count. Remove cloning-added reference if it reaches zero.
16019 * ipa-ref.c (ipa_find_reference): New function.
16020
0864bfc2
GG
160212013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
16022
e7208ea3 16023 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
16024 alignment values for AMD BD and BT architectures.
16025
640bfeb2
MG
160262013-05-13 Marc Glisse <marc.glisse@inria.fr>
16027
16028 * tree-vect-generic.c (uniform_vector_p): Move ...
16029 * tree.c (uniform_vector_p): ... here.
16030 * tree.h (uniform_vector_p): Declare it.
16031 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
16032 into a scalar.
16033
3a60f32b
JJ
160342013-05-13 Jakub Jelinek <jakub@redhat.com>
16035
198fe1bf
JJ
16036 PR tree-optimization/57230
16037 * tree-ssa-strlen.c (handle_char_store): Record length for
16038 array store from STRING_CST.
16039
3a60f32b
JJ
16040 PR tree-optimization/57230
16041 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
16042 check.
16043
566be57c
JR
160442013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
16045
16046 * config/epiphany/epiphany.c (epiphany_init): Check size of
16047 NUM_MODES_FOR_MODE_SWITCHING.
16048 (epiphany_expand_prologue):
16049 Remove CONFIG_REGNUM initial value handling code.
16050 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
16051 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 16052 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
16053 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
16054 Don't return 1 for FP_MODE_NONE.
16055 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
16056 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
16057 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
16058 * config/epiphany/epiphany.md (save_config): New pattern.
16059
0f2c2331
UB
160602013-05-12 Uros Bizjak <ubizjak@gmail.com>
16061
16062 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
16063
5b3f93c7
UB
160642013-05-10 Uros Bizjak <ubizjak@gmail.com>
16065
16066 * config/i386/i386.md (memory): Handle sseishft1.
16067 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
16068 (*vec_extractv2di_1): Ditto.
16069
1f873f0e
VM
160702013-05-10 Vladimir Makarov <vmakarov@redhat.com>
16071
16072 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
16073 saved registers.
16074
341427fa 160752013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
16076
16077 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
16078 Add mthumb/march=armv7-a multilib.
16079 Add mthumb/march=armv7-r multilib.
16080 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
16081
9e69bdde
RC
160822013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
16083
16084 * config/v850/t-rtems: Add more multilibs.
16085
9ff09a22
RB
160862013-05-10 Richard Biener <rguenther@suse.de>
16087
16088 PR tree-optimization/57214
16089 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
16090 not propagate from SSA names that occur in abnormal PHI nodes.
16091
a5e0cd1d
MG
160922013-05-10 Marc Glisse <marc.glisse@inria.fr>
16093
16094 * stor-layout.c (element_precision): New function.
16095 * machmode.h (element_precision): Declare it.
16096 * tree.c (build_minus_one_cst): New function.
16097 (element_precision): Likewise.
16098 * tree.h (build_minus_one_cst): Declare new function.
16099 (element_precision): Likewise.
16100 * fold-const.c (operand_equal_p): Use element_precision.
16101 (fold_binary_loc): Handle vector types.
16102 * convert.c (convert_to_integer): Use element_precision.
16103 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
16104 separately.
16105
cb2558bc
RS
161062013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
16107
16108 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
16109 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
16110 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
16111 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16112 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
16113 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
16114 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
16115 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
16116 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
16117 (Uuw8): New constraints.
16118 (Usb4): Move into alphabetical order.
16119 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
16120 (sd8_operand, ub8_operand, uw8_operand): New predicates.
16121 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
16122 previously unnamed patterns.
16123 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
16124 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
16125 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
16126 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
16127 of set_attr_alternative/if_then_else. Use extended_mips16 instead
16128 of specific lengths.
16129
cb3b8d33
JJ
161302013-05-10 Jakub Jelinek <jakub@redhat.com>
16131
6f93c008
JJ
16132 * config/i386/i386.md (rotateinv): New code attr.
16133 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
16134 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
16135 roll $31, %eax, etc.
16136
cb3b8d33
JJ
16137 PR tree-optimization/45216
16138 PR tree-optimization/57157
16139 * tree-ssa-forwprop.c (simplify_rotate): New function.
16140 (ssa_forward_propagate_and_combine): Call it.
16141
afb119be
RB
161422013-05-10 Richard Biener <rguenther@suse.de>
16143
16144 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
16145 disable peeling when we version for aliasing.
16146 (vector_alignment_reachable_p): Honor explicit user alignment.
16147 (vect_supportable_dr_alignment): Likewise.
16148 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
16149 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
16150 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
16151 then peeling to arrange for the cost-model check to come first.
16152
01ae4861
AM
161532013-05-10 Alan Modra <amodra@gmail.com>
16154
16155 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
16156 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
16157 * configure: Regenerate.
16158
ebc9a431
AM
161592013-05-10 Alan Modra <amodra@gmail.com>
16160
16161 PR target/55033
16162 * varasm.c (default_elf_select_section): Move !DECL_P check..
16163 (get_named_section): ..to here before calling get_section_name.
16164 Adjust assertion.
16165 (default_section_type_flags): Add DECL_P check.
16166 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
16167 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
16168
d4bca93c
JR
161692013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
16170
16171 * config/epiphany/epiphany.c (epiphany_expand_prologue):
16172 When using gen_stack_adjust_str with a register offset, add a
16173 REG_FRAME_RELATED_EXPR note.
16174
60ca9a65
UB
161752013-05-09 Uros Bizjak <ubizjak@gmail.com>
16176
16177 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
16178 (*vec_extractv4si_zext_mem): Ditto.
16179 (*vec_extractv2di): Add 0->x and x->x alternatives.
16180 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
16181 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
16182
a3409c02
JM
161832013-05-09 Jason Merrill <jason@redhat.com>
16184
0138d6b2
JM
16185 N3639 C++1y VLA support
16186 * gimplify.c (gimplify_vla_decl): Don't touch an existing
16187 DECL_VALUE_EXPR.
16188
a3409c02
JM
16189 * tree.c (build_constructor_va): New.
16190 * tree.h: Declare it.
16191
66e6b990
MJ
161922013-05-09 Martin Jambor <mjambor@suse.cz>
16193
16194 PR lto/57084
16195 * gimple-fold.c (canonicalize_constructor_val): Call
16196 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
16197
64cfa6c0
JH
161982013-05-09 Jan Hubicka <jh@suse.cz>
16199 Richard Biener <rguenther@suse.de>
16200
16201 PR lto/54095
16202 * symtab.c (symtab_make_decl_local): Do not add private names.
16203
c3167b00
JH
162042013-05-09 Jan Hubicka <jh@suse.cz>
16205
16206 PR lto/54095
16207 * symtab.c (insert_to_assembler_name_hash): Handle clones.
16208 (unlink_from_assembler_name_hash): Likewise.
16209 (symtab_prevail_in_asm_name_hash, symtab_register_node,
16210 symtab_unregister_node, symtab_initialize_asm_name_hash,
16211 change_decl_assembler_name): Update.
16212
12dc6974
SN
162132013-05-09 Sofiane Naci <sofiane.naci@arm.com>
16214
16215 * config/aarch64/aarch64.md: New movtf split.
16216 (*movtf_aarch64): Update.
16217 (aarch64_movdi_tilow): Handle TF modes and rename to
16218 aarch64_movdi_<mode>low.
16219 (aarch64_movdi_tihigh): Handle TF modes and rename to
16220 aarch64_movdi_<mode>high
16221 (aarch64_movtihigh_di): Handle TF modes and rename to
16222 aarch64_mov<mode>high_di
16223 (aarch64_movtilow_di): Handle TF modes and rename to
16224 aarch64_mov<mode>low_di
16225 (aarch64_movtilow_tilow): Remove spurious whitespace.
16226 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
16227 splits.
16228 (aarch64_print_operand): Update.
16229
227eb343
AM
162302013-05-09 Alan Modra <amodra@gmail.com>
16231
16232 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
16233 powerpc64le.
16234 * configure: Regenerate.
16235
0b013847
UB
162362013-05-08 Uros Bizjak <ubizjak@gmail.com>
16237
16238 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
16239 splitter preparation statements.
16240 * config/i386/sse.md (*vec_extract* splitters): Ditto.
16241 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
16242 adjust_address_nv.
16243
1dc3d6e9
BS
162442013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16245
16246 * gimple-ssa-strength-reduction.c (count_candidates): Change
16247 return value to int.
16248 (analyze_candidates_and_replace): Change type of length to int.
16249
e61e7d28
UB
162502013-05-08 Uros Bizjak <ubizjak@gmail.com>
16251
16252 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
16253 (*vec_extract<mode>): Use VI12_128 mode iterator.
16254 (*vec_extract<mode>_mem): Ditto.
16255 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
16256 attribute.
16257
4fbfcf44
DN
162582013-05-08 Diego Novillo <dnovillo@google.com>
16259
16260 PR bootstrap/54659
16261
16262 Revert:
4fbfcf44
DN
16263 2012-08-17 Diego Novillo <dnovillo@google.com>
16264
e61e7d28
UB
16265 PR bootstrap/54281
16266 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
16267 * config.in: Regenerate.
16268 * configure: Regenerate.
16269 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 16270
702d8703
JH
162712013-05-08 Jan Hubicka <jh@suse.cz>
16272
16273 PR lto/54095
16274 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
16275 * cgraph.h (symtab_node_base): Add unique_name.
16276 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
16277 input_overwrite_node, input_varpool_node): Stream unique_name.
16278 * cgraphclones.c (cgraph_create_virtual_clone,
16279 cgraph_function_versioning): Set unique_name.
16280 * ipa.c (function_and_variable_visibility): Set unique_name.
16281
8b28cf47
BS
162822013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16283
16284 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
16285 (alloc_cand_and_find_basis): Restrict conditional candidate
16286 processing to CAND_MULTs.
16287
e86074fd
JH
162882013-05-08 Jan Hubicka <jh@suse.cz>
16289
16290 PR lto/54095
16291 lto-symtab.c (lto_symtab_symbol_p): New function.
16292 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
16293 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
16294 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
16295 Skip static symbols.
16296
44398cbe
PC
162972013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
16298
16299 PR tree-optimization/57200
16300 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
16301 Only call inform if the preceding warning_at returns true.
16302
f6bc1c4a
HS
163032013-05-07 Han Shen <shenhan@google.com>
16304
16305 * cfgexpand.c (record_or_union_type_has_array_p): New function.
16306 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
16307 * common.opt (fstack-protector-strong): New option.
16308 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
16309 * doc/invoke.texi (Optimization Options): Document
16310 "-fstack-protector-strong".
16311 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
16312
4ffecb1f
SB
163132013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16314
16315 * config/mips/mips.c (mips_machine_reorg2): Return 0.
16316
5a107a0f
VM
163172013-05-07 Vladimir Makarov <vmakarov@redhat.com>
16318
16319 * ira.c (update_equiv_regs): Add insn having equiv memory even if
16320 it is not lhs of the insn.
16321 (setup_reg_equiv): Remove insn having equiv memory which it is not
16322 lhs of the insn.
16323 * lra-constraints.c (process_address): Try to improve generation
16324 code for address base + disp.
16325 (lra_constraints): Make correct the code for checking insn setting
16326 up backward equivalence. Remove insn only if it is in the init
16327 insn list.
16328 * lra-eliminations.c (update_reg_eliminate): Change return value.
16329 (lra_eliminate): Use the result.
16330
3f5783ea
UB
163312013-05-07 Uros Bizjak <ubizjak@gmail.com>
16332
16333 * config/i386/sse.md (ssescalarnummask): New mode attribute.
16334 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
16335 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
16336 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
16337 register target operands.
16338 (*vec_extractv8hi_sse2): New pattern.
16339 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
16340 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
16341 (*vec_extract<mode>_mem): New insn and split pattern.
16342
8a5800b8
CL
163432013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
16344
16345 * config/arm/arm.c (arm_asan_shadow_offset): New function.
16346 (TARGET_ASAN_SHADOW_OFFSET): Define.
16347 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
16348 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
16349
7bf55a70
BS
163502013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16351
16352 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
16353 (incr_vec_index): Return -1 if increment not found.
16354 (create_add_on_incoming_edge): Assert if increment not found.
16355 (record_increment): Limit number of increments recorded.
16356 (all_phi_incrs_profitable): Return false if an increment not found.
16357 (replace_profitable_candidates): Don't process increments that were
16358 not recorded.
16359 (analyze_candidates_and_replace): Limit size of incr_vec.
16360
3f8825c0
RB
163612013-05-07 Richard Biener <rguenther@suse.de>
16362
16363 * calls.c (special_function_p): setjmp-like functions are leaf.
16364 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
16365 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
16366
fd4842cd
SN
163672013-05-07 Sofiane Naci <sofiane.naci@arm.com>
16368
16369 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
16370 (aarch64_simd_mov<mode>): New expander.
16371 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
16372 (aarch64_simd_mov_to_<mode>high): Likewise.
16373 (aarch64_simd_mov_from_<mode>low): Likewise.
16374 (aarch64_simd_mov_from_<mode>high): Likewise.
16375 (aarch64_dup_lane<mode>): Update.
16376 (aarch64_dup_lanedi): New instruction pattern.
16377 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
16378 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
16379
a7a7d10e
BS
163802013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16381
16382 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
16383 (replace_mult_candidate): Remove unnecessary argument; remove
16384 unnecessary parameter from call to introduce_cast_before_cand.
16385 (replace_unconditional_candidate): Remove unnecessary parameter
16386 from call to replace_mult_candidate.
16387 (replace_conditional_candidate): Likewise.
16388 (insert_initializers): Use make_temp_ssa_name.
16389 (introduce_cast_before_cand): Remove unnecessary argument; use
16390 make_temp_ssa_name.
16391 (replace_one_candidate): Remove unnecessary argument; remove
16392 unnecessary parameter from calls to introduce_cast_before_cand.
16393 (replace_profitable_candidates): Remove unnecessary parameters
16394 from calls to replace_one_candidate.
16395
29105868
BS
163962013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16397
16398 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
16399 phi def as possibly hiding a basis for a CAND_ADD whose operands
16400 have been commuted in the analysis.
16401 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
16402
4095f9fa
N
164032013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16404
16405 * config/aarch64/aarch64.md
16406 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
16407 shift value between 0-4.
16408
39e843e8
RB
164092013-05-07 Richard Biener <rguenther@suse.de>
16410
16411 * double-int.h (rshift): New overload.
16412 * double-int.c (rshift): New function.
16413 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
16414 (create_reference_ops_from_ref): Remove.
16415 (vn_reference_insert): Use shared ops for constructing the
16416 reference and copy it.
16417
0a1a83cb
RB
164182013-05-07 Richard Biener <rguenther@suse.de>
16419
16420 PR middle-end/57190
16421 * tree-eh.c (sink_clobbers): Properly propagate
16422 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16423
43303d6f
JJ
164242013-05-07 Jakub Jelinek <jakub@redhat.com>
16425
ba7e83f8
JJ
16426 PR tree-optimization/57149
16427 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
16428 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
16429 collect_phi_def_edges, execute_late_warn_uninitialized): Use
16430 uninit_undefined_value_p instead of ssa_undefined_value_p.
16431
43303d6f
JJ
16432 PR debug/57184
16433 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
16434 for modifier == EXPAND_INITIALIZER.
16435
14523c25
AB
164362013-05-07 Anton Blanchard <anton@samba.org>
16437
16438 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
16439 for powerpc64 little endian.
16440 * configure: Regenerate.
16441
cb7c8be9
GS
164422013-05-06 Graham Stott <grahams@btinternet.com>
16443
16444 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
16445 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
16446 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
16447 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
16448
164492013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
16450
16451 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
16452 codes which allow non-lvalues.
16453
9a0ee7b0
MG
164542013-05-06 Marc Glisse <marc.glisse@inria.fr>
16455
16456 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
16457 components are all 1s.
16458 (integer_minus_onep): New function.
16459 * tree.h (integer_minus_onep): Declare it.
16460 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
16461 integer_minus_onep instead of integer_all_onesp.
16462
f2c17ea9
OE
164632013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16464
16465 PR target/52933
16466 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
16467 variations of these patterns.
16468
f75e6a51
UB
164692013-05-06 Uros Bizjak <ubizjak@gmail.com>
16470
16471 * config/i386/i386.md (isa): Add x64_sse4 member.
16472 (enabled): Handle x64_sse4.
16473 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
16474 instruction for 64bit SSE4_1 targets. Update insn attributes.
16475 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
16476 instruction for SSE4_1 targets. Update insn attributes.
16477 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16478 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
16479 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
16480 const_1 selector.
16481 (*vec_extractv4si): Rename from *sse4_1_pextrd.
16482 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
16483 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
16484
a986d468
OE
164852013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16486
16487 PR target/57108
16488 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
16489
382522cb
MK
164902013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
16491
16492 * final.c (do_assembler_dialects): Don't handle curly braces and
16493 vertical bar escaped by % as dialect delimiters.
16494 (output_asm_insn): Print curly braces and vertical bar if escaped
16495 by % and ASSEMBLER_DIALECT defined.
16496 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
16497 * doc/tm.texi: Regenerated.
16498
fb0d5c60
SB
164992013-05-06 Steven Bosscher <steven@gcc.gnu.org>
16500
fb0d5c60
SB
16501 * config/mips/mips.c: Include tree-pass.h.
16502 (mips_reorg): Split in pre- and post-dbr_schedule parts.
16503 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
16504 (pass_mips_machine_reorg2): New machine specific pass.
16505 (insert_pass_mips_machine_reorg2): New pass plugin definition.
16506 (mips_option_override): Register the new pass.
16507 * rtl.h (cleanup_barriers): Remove prototype.
16508 (dbr_schedule): Likewise.
16509 * jump.c (cleanup_barriers): Make static.
16510 * reorg.c (dbr_schedule): Likewise.
16511
aa06a978
RB
165122013-05-06 Richard Biener <rguenther@suse.de>
16513
16514 PR tree-optimization/57185
16515 * tree-parloops.c (add_field_for_reduction): Handle anonymous
16516 SSA names properly.
16517
0b953bec
UB
165182013-05-06 Uros Bizjak <ubizjak@gmail.com>
16519
16520 PR target/57106
16521 * config/i386/i386.c (add_parameter_dependencies): Add dependence
16522 between "first_arg" and "insn", not "last" and "insn".
16523
28708525
WS
165242013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16525
16526 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
16527 (find_candidates_in_block): Re-enable slsr_process_phi.
16528 (create_phi_basis): Fix double counting of candidate adjustment.
16529
0107dca2
RB
165302013-05-06 Richard Biener <rguenther@suse.de>
16531
16532 PR middle-end/57147
16533 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
16534 the edge is also fallthru, preserve it and just clear the
16535 abnormal flag.
16536 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
16537 also complex, preserve that and just clear the fallthru flag.
16538 * tree-inline.c (update_ssa_across_abnormal_edges): Also
16539 update virtual operands.
16540
470d4d13
AM
165412013-05-06 Alan Modra <amodra@gmail.com>
16542
16543 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
16544 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
16545 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
16546 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
16547 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16548 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
16549
8f1dbf8d
AM
165502013-05-06 Alan Modra <amodra@gmail.com>
16551
16552 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
16553 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
16554 (DEFAULT_ASM_ENDIAN): Define.
16555 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
16556 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
16557 Update -K PIC clause from sysv4.h.
16558 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
16559 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
16560
54890767
AM
165612013-05-06 Alan Modra <amodra@gmail.com>
16562
16563 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
16564 twice for little-endian.
16565 (ashrdi3_no_power, ashrdi3): Support little-endian.
16566
2353515d
OE
165672013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
16568
16569 PR target/55303
16570 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
16571 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
16572 related expanders.
16573 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
16574 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
16575 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
16576 New predicates.
16577
33e67557
SB
165782013-05-05 Steven Bosscher <steven@gcc.gnu.org>
16579 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16580
16581 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
16582 * config/pa/pa.opt: Make mbig-switch a no-op.
16583 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
16584 (CASE_VECTOR_MODE): Always return SImode.
16585 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
16586 for the !TARGET_BIG_SWITCH case.
16587 * config/pa/pa-linux.h: Likewise.
16588 * config/pa/pa-openbsd.h: Likewise.
16589 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
16590 * config/pa/pa.md (short_jump): Remove define_insn.
16591 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
16592 (casesi0): Remove define_insn.
16593 (type): Remove btable_branch.
16594 (pa_combine_type): Likewise.
16595 (in_nullified_branch_delay): Likewise.
16596 (in_call_delay): Likewise.
16597 (define_delay): Likewise.
16598 (define_insn_reservation "Z3"): Likewise.
16599 (define_insn_reservation "Z4"): Likewise.
16600 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
16601 (pa_adjust_insn_length): Remove adjustment for btable branches.
16602 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
16603 and mno-big-switch
16604
3095685e
UB
166052013-05-05 Uros Bizjak <ubizjak@gmail.com>
16606
16607 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
16608 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
16609 Add m->r,x alternatives.
16610 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
16611 splitters using SWI48x mode iterator.
16612 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
16613 TARGET_64BIT. Add m->x alternative.
16614 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
16615 Add o->x alternative. Enable for TARGET_SSE.
16616 (sse_storeq): Remove expander.
16617 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
16618 with memory input operand.
16619 (*vec_extractv2di_1 splitter): New.
16620 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
16621 * config/i386/i386.md (ssevecmodelower): New mode attribute.
16622
4b36ae28
SB
166232013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16624
16625 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
16626 (INT_LOWPART): Delete.
16627 (extract_MB): Adjust.
16628 (extract_ME): Adjust.
16629 (print_operand): Adjust.
16630
da226db2
SB
166312013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
16632
16633 * config/rs6000/predicates.md (reg_or_add_cint_operand,
16634 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16635 (reg_or_logical_cint_operand, easy_fp_constant,
16636 logical_const_operand): Delete "CONST_DOUBLE" case.
16637 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
16638 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 16639 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
16640 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
16641 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
16642 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
16643 test.
16644 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
16645 CONST_DOUBLE DImode/VOIDmode case.
16646 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
16647 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16648 CONST_DOUBLE VOIDmode case.
16649 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
16650 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
16651 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
16652 Delete CONST_DOUBLE case.
16653 (splitters for mov FMOVE64 const_double): Delete
16654 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
16655 "HOST_BITS_PER_WIDE_INT >= 64" test.
16656 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
16657 case.
16658 (mov DI const_double): Delete.
16659
40de22d6
JJ
166602013-05-04 Jakub Jelinek <jakub@redhat.com>
16661
16662 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
16663 on op shows all bits zero in mode of a lowpart subreg, return zero.
16664
5ec6aff2
MM
166652013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16666
16667 PR target/57150
16668 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
16669 to save TFmode registers and DImode to save TImode registers for
16670 caller save operations.
16671 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
16672 mark being partially clobbered since they only use the first
16673 double word.
16674
16675 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
16676 and TDmode only use the upper 64-bits of each VSX register.
16677
2cefad90
BS
166782013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16679
16680 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
16681 (find_candidates_in_block): Disable slsr_process_phi.
16682
d6d7eee1
GW
166832013-05-03 Guozhi Wei <carrot@google.com>
16684
16685 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
16686 constructor to ...
16687 (build_init_ctor): ... here.
d6d7eee1 16688
9b92d12b
BS
166892013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16690
16691 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
16692 (slsr_cand_d): Redefine def_phi.
16693 (stride_status, phi_adjust_status, count_phis_status): New enums.
16694 (find_phi_def): New.
16695 (find_basis_for_base_expr): New.
16696 (find_basis_for_candidate): Handle hidden bases.
16697 (alloc_cand_and_find_basis): Handle phi candidates.
16698 (slsr_process_phi): New.
16699 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
16700 (create_mul_imm_cand): Likewise.
16701 (create_add_ssa_cand): Exclude phi base candidates.
16702 (create_add_imm_cand): Likewise.
16703 (slsr_process_cast): Likewise.
16704 (slsr_process_copy): Likewise.
16705 (find_candidates_in_block): Handle phi candidates.
16706 (dump_candidate): Likewise.
16707 (unconditional_cands): Delete.
16708 (unconditional_cands_with_known_stride_p): Delete.
16709 (phi_dependent_cand_p): New.
16710 (cand_increment): Handle phi-dependent candidates.
16711 (replace_dependent): Delete.
16712 (replace_mult_candidate): New.
16713 (replace_unconditional_candidate): New.
16714 (incr_vec_index): Move to avoid forward reference.
16715 (create_add_on_incoming_edge): New.
16716 (create_phi_basis): New.
16717 (replace_dependents): Delete.
16718 (replace_conditional_candidate): New.
16719 (phi_add_costs): New.
16720 (replace_uncond_cands_and_profitable_phis): New.
16721 (record_increment): Handle phi adjustments.
16722 (record_phi_increments): New.
16723 (record_increments): Handle phi adjustments.
16724 (phi_incr_cost): New.
16725 (lowest_cost_path): Handle phis.
16726 (total_savings): Likewise.
16727 (analyze_increments): Likewise.
16728 (ncd_with_phi): New.
16729 (ncd_of_cand_and_phis): New.
16730 (nearest_common_dominator_for_cands): Handle phi increments.
16731 (all_phi_incrs_profitable): New.
16732 (replace_profitable_candidates): Handle phi-dependent candidates.
16733 (analyze_candidates_and_replace): Likewise.
16734
68f073d4
TJ
167352013-05-03 Teresa Johnson <tejohnson@google.com>
16736
16737 PR bootstrap/57154
16738 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
16739 do not exceed REG_BR_PROB_BASE.
16740
a4ee7cb9
JL
167412013-05-03 Jeff Law <law@redhat.com>
16742
ade67f70 16743 PR tree-optimization/57144
a4ee7cb9
JL
16744 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
16745 operand of the condition will bit into the new type when eliminating
16746 a cast feeding a condition.
16747
47954c4e
JJ
167482013-05-03 Jakub Jelinek <jakub@redhat.com>
16749
16750 PR rtl-optimization/57130
3095685e
UB
16751 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
16752 of COMPARE as in_code to the recursive call if needed.
47954c4e 16753
3c21604f
UB
167542013-05-03 Uros Bizjak <ubizjak@gmail.com>
16755
16756 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
16757 (enabled): Handle new members.
16758 * config/i386/sse.md (*vec_concatv2si): Merge from
16759 *vec_concatv2si_sse2 and vec_concatv2si_sse.
16760 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
16761
12211b99 167622013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
16763
16764 PR tree-optimization/57027
16765 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
16766 for fnms opportunity, check we got the prerequisite kind
16767 of tree / gimple before using accessor functions.
16768
07bfc9ec
RB
167692013-05-03 Richard Biener <rguenther@suse.de>
16770
16771 * double-int.h (lshift): New overload without precision
16772 and arith argument.
16773 (operator *=, operator +=, operator -=): Move ...
16774 * double-int.c (operator *=, operator +=, operator -=): ... here
16775 and implement more efficiently.
16776 (mul_double_with_sign): Remove.
16777 (lshift_double): Adjust to take unsinged shift argument, push
16778 dispatching code to callers.
16779 (mul_double_wide_with_sign): Add early out for callers that
16780 are not interested in high parts or overflow.
16781 (lshift): New function.
16782 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
16783 dispatch code here.
16784 (lrotate, rrotate): Use logical shifts.
16785 * expr.c (get_inner_reference): Use lshift.
16786 * fixed-value.c (do_fixed_divide): Likewise.
16787 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16788 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
16789 (indirect_refs_may_alias_p): Likewise.
16790 (stmt_kills_ref_p_1): Likewise.
16791
7769bb64
VP
167922013-05-03 Vidya Praveen <vidyapraveen@arm.com>
16793
16794 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
16795
1d0c8e5c
VP
167962013-05-03 Vidya Praveen <vidyapraveen@arm.com>
16797
16798 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
16799 scalar form of FABD instruction.
16800
f15feaf9
VM
168012013-05-02 Vladimir Makarov <vmakarov@redhat.com>
16802
16803 * lra-constraints.c (process_alt_operands): Add checking alt
16804 number to choose the best alternative.
16805
d90e76d4
RB
168062013-05-02 Richard Biener <rguenther@suse.de>
16807
16808 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
16809 bitmap and its handling.
16810 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
16811
9f8e7a96
RB
168122013-05-02 Richard Biener <rguenther@suse.de>
16813
16814 PR middle-end/57140
16815 * tree-inline.c (copy_loops): Properly handle removed loops.
16816 (copy_cfg_body): Mark destination loops for fixup if source
16817 loops needed fixup.
16818
f3a81b39
GY
168192013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
16820
16821 PR target/56732
16822 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
16823 generating simple_return for naked functions.
16824
7b920a9a
MJ
168252013-05-02 Martin Jambor <mjambor@suse.cz>
16826
16827 PR middle-end/56988
16828 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
16829 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
16830 flags match.
16831 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
16832 ipa_agg_replacement_value structures.
16833 (known_aggs_to_agg_replacement_list): Likewise.
16834 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
16835 (read_agg_replacement_chain): Likewise.
16836 (ipcp_transform_function): Also check that by_ref flags match.
16837
2c41c19d
RB
168382013-05-02 Richard Biener <rguenther@suse.de>
16839
16840 * graphds.h (struct graph): Add obstack member.
16841 * graphds.c (new_graph): Initialize obstack and allocate
16842 vertices from it.
16843 (add_edge): Allocate edge from the obstack.
3c21604f 16844 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 16845
8b47039c
TJ
168462013-05-02 Teresa Johnson <tejohnson@google.com>
16847
16848 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
16849 divides.
16850 * cfg.c (update_bb_profile_for_threading): Ditto.
16851 * tree-inline.c (copy_bb): Ditto.
16852 (copy_edges_for_bb): Ditto.
16853 (initialize_cfun): Ditto.
16854 (copy_cfg_body): Ditto.
16855 (expand_call_inline): Ditto.
16856 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
16857 (estimate_node_size_and_time): Ditto.
16858 (inline_merge_summary): Ditto.
16859 * cgraphclones.c (cgraph_clone_edge): Ditto.
16860 (cgraph_clone_node): Ditto.
16861 * sched-rgn.c (compute_dom_prob_ps): Ditto.
16862 (compute_trg_info): Ditto.
16863
da65928c
IB
168642013-05-02 Ian Bolton <ian.bolton@arm.com>
16865
16866 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
16867 S reg when fp attribute set.
16868 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
16869
add3c965
IB
168702013-05-02 Ian Bolton <ian.bolton@arm.com>
16871
16872 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
16873 New pattern.
16874 (*and_one_cmplsi3_compare0_uxtw): Likewise.
16875 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
16876 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
16877
fdd43ac4
RB
168782013-05-02 Richard Biener <rguenther@suse.de>
16879
16880 * tree-scalar-evolution.c (scev_info_hasher): Remove.
16881 (struct instantiate_cache_entry): New type.
16882 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
16883 (struct instantiate_cache_type): New type.
16884 (set_instantiated_value, get_instantiated_value): Remove.
16885 (get_instantiated_value_entry): New function.
16886 (instantiate_scev_name): Use the new cache and adjust.
16887 (instantiate_scev_poly): Adjust.
16888 (instantiate_scev_binary): Likewise.
16889 (instantiate_array_ref): Likewise.
16890 (instantiate_scev_convert): Likewise.
16891 (instantiate_scev_not): Likewise.
16892 (instantiate_scev_3): Likewise.
16893 (instantiate_scev_2): Likewise.
16894 (instantiate_scev_r): Likewise.
16895 (instantiate_scev): Likewise.
16896 (resolve_mixers): Likewise.
16897
36ff9dfb
VM
168982013-05-01 Vladimir Makarov <vmakarov@redhat.com>
16899
16900 PR target/57091
16901 * lra-constraints.c (best_small_class_operands_num): Remove.
16902 (process_alt_operands): Remove small_class_operands_num. Take
16903 small classes operands into losers and only if the operand is not
16904 matched. Modify debugging output.
16905 (curr_insn_transform): Remove best_small_class_operands_num.
16906 Print insn name.
16907
36054fab
JG
169082013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16909
16910 * config/aarch64/aarch64-builtins.c
16911 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
16912 * config/aarch64/aarch64-simd-builtins.def
16913 (reduc_splus_): Add new modes.
16914 (reduc_uplus_): New.
16915 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
16916 (reduc_uplus_v4sf): Likewise.
16917 (reduc_splus_v4sf): Likewise.
16918 (aarch64_addv<mode>): Likewise.
16919 (reduc_uplus_<mode>): Likewise.
16920 (reduc_splus_<mode>): Likewise.
16921 (aarch64_addvv2di): Likewise.
16922 (reduc_uplus_v2di): Likewise.
16923 (reduc_splus_v2di): Likewise.
16924 (aarch64_addvv2si): Likewise.
16925 (reduc_uplus_v2si): Likewise.
16926 (reduc_splus_v2si): Likewise.
16927 (reduc_<sur>plus_<mode>): New.
16928 (reduc_<sur>plus_v2di): Likewise.
16929 (reduc_<sur>plus_v2si): Likewise.
16930 (reduc_<sur>plus_v4sf): Likewise.
16931 (aarch64_addpv4sf): Likewise.
16932 * config/aarch64/arm_neon.h
16933 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
16934 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
16935 add UNSPEC_SADDV, UNSPEC_UADDV.
16936 (SUADDV): New.
16937 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
16938
6dce23a8
JG
169392013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16940
16941 * config/aarch64/arm_neon.h
16942 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
16943
1598945b
JG
169442013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16945
16946 * config/aarch64/aarch64-builtins
16947 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
16948
998eaf97
JG
169492013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16950
16951 * config/aarch64/aarch64-simd-builtins.def
16952 (reduc_smax_): New.
16953 (reduc_smin_): Likewise.
16954 (reduc_umax_): Likewise.
16955 (reduc_umin_): Likewise.
16956 (reduc_smax_nan_): Likewise.
16957 (reduc_smin_nan_): Likewise.
16958 (fmax): Remove.
16959 (fmin): Likewise.
16960 (smax): Update for V2SF, V4SF and V2DF modes.
16961 (smin): Likewise.
16962 (smax_nan): New.
16963 (smin_nan): Likewise.
16964 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
16965 (<su><maxmin><mode>3): ...This, refactor.
16966 (s<maxmin><mode>3): New.
16967 (<maxmin_uns><mode>3): Likewise.
16968 (reduc_<maxmin_uns>_<mode>): Refactor.
16969 (reduc_<maxmin_uns>_v4sf): Likewise.
16970 (reduc_<maxmin_uns>_v2si): Likewise.
16971 (aarch64_<fmaxmin><mode>: Remove.
16972 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
16973 new builtin names.
16974 (vmin<q>_f<32,64>): Likewise.
16975 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16976 (FMAXMIN): New.
16977 (su): Add mappings for smax, smin, umax, umin.
16978 (maxmin): New.
16979 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
16980 (FMAXMIN): Rename as...
16981 (FMAXMIN_UNS): ...This.
16982 (maxminv): Remove.
16983 (fmaxminv): Likewise.
16984 (fmaxmin): Likewise.
16985 (maxmin_uns): New.
16986 (maxmin_uns_op): Likewise.
16987
bd11644e
JG
169882013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16989
16990 * config/aarch64/arm_neon.h
16991 (vac<ge, gt><sd>_f<32, 64>): Rename to...
16992 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
16993 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
16994
75dd5ace
JG
169952013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
16996
16997 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
16998 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
16999
7c19979f
JG
170002013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17001
17002 * config/aarch64/aarch64-simd.md
17003 (vcond<mode>_internal): Handle special cases for constant masks.
17004 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
17005 (vcondu<mode><mode>): Likewise.
17006 (vcond<v_cmp_result><mode>): New.
17007
bb60efd9
JG
170082013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17009
17010 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
17011 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
17012 * config/aarch64/aarch64-simd-builtins.def
17013 (cmeq): Update to BUILTIN_VALLDI.
17014 (cmgt): Likewise.
17015 (cmge): Likewise.
17016 (cmle): Likewise.
17017 (cmlt): Likewise.
17018 * config/aarch64/arm_neon.h
17019 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
17020 to builtins or C as appropriate.
17021
889b9412
JG
170222013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
17023
17024 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
17025 (cmgeu): ...This.
17026 (cmhi): Rename to...
17027 (cmgtu): ...This.
17028 * config/aarch64/aarch64-simd.md
17029 (simd_mode): Add SF.
17030 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
17031 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
17032 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
17033 (cstore<mode>_neg): ...This.
17034 * config/aarch64/iterators.md
17035 (VALLF): new.
17036 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
17037 (COMPARISONS): New.
17038 (UCOMPARISONS): Likewise.
17039 (optab): Add missing comparisons.
17040 (n_optab): New.
17041 (cmp_1): Likewise.
17042 (cmp_2): Likewise.
17043 (CMP): Likewise.
17044 (cmp): Remove.
17045 (VCMP_S): Likewise.
17046 (VCMP_U): Likewise.
17047 (V_cmp_result): Add DF, SF modes.
17048 (v_cmp_result): Likewise.
17049 (v): Likewise.
17050 (vmtype): Likewise.
17051 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
17052
0a7dbb76
GY
170532013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
17054
17055 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
17056 define_insn to define_insn_and_split.
17057 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
17058 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
17059 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
17060 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
17061 (thumb2_negscc): Likewise.
17062
fb614ca6
GY
170632013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
17064
17065 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
17066
9e64a0bf
GY
170672013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
17068
17069 * config/arm/thumb2.md: Remove trailing whitespaces.
17070
d6b28156
RS
170712013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
17072
17073 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
17074 Use gen_int_mode rather than GEN_INT.
17075
f91674c3
L
170762013-04-30 H.J. Lu <hongjiu.lu@intel.com>
17077
b0dec607 17078 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
17079 debug_gimple_stmt.
17080
3551257c
RB
170812013-04-30 Richard Biener <rguenther@suse.de>
17082
17083 PR middle-end/57122
3c21604f 17084 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 17085
4c1aff1c
RB
170862013-04-30 Richard Biener <rguenther@suse.de>
17087
17088 PR middle-end/57107
17089 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
17090
54b8379a
AB
170912013-04-30 Andrey Belevantsev <abel@ispras.ru>
17092
17093 PR rtl-optimization/56957
17094 PR rtl-optimization/57105
54b8379a
AB
17095 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
17096 variable. Use just INSN_UID for determining whether an insn
17097 should be only disconnected from the insn stream.
17098 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
17099
abc27962
JJ
171002013-04-30 Jakub Jelinek <jakub@redhat.com>
17101
17102 PR tree-optimization/57104
17103 * tsan.c (instrument_expr): Don't instrument accesses to
17104 DECL_HARD_REGISTER VAR_DECLs.
17105
0fc822d0
RB
171062013-04-30 Richard Biener <rguenther@suse.de>
17107
17108 * function.h (loops_for_fn): New inline function.
17109 (set_loops_for_fn): Likewise.
17110 * cfgloop.h (place_new_loop): Add struct function parameter.
17111 (get_loop): Likewise.
17112 (get_loops): Likewise.
17113 (number_of_loops): Likewise.
17114 (fel_next): Adjust.
17115 (fel_init): Likewise.
17116 * cfg.c (get_loop_copy): Adjust.
17117 * cfgloop.c (flow_loops_dump): Likewise.
17118 (record_loop_exits): Likewise.
17119 (verify_loop_structure): Likewise.
17120 * cfgloopanal.c (mark_irreducible_loops): Likewise.
17121 (estimate_reg_pressure_cost): Likewise.
17122 (mark_loop_exit_edges): Likewise.
17123 * cfgloopmanip.c (place_new_loop): Likewise.
17124 (add_loop): Likewise.
17125 (duplicate_loop): Likewise.
17126 * graph.c (draw_cfg_nodes): Likewise.
17127 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
17128 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
17129 (extract_affine_chrec): Likewise.
17130 (build_scop_iteration_domain): Likewise.
17131 * graphite.c (graphite_initialize): Likewise.
17132 * ira-build.c (create_loop_tree_nodes): Likewise.
17133 (more_one_region_p): Likewise.
17134 (rebuild_regno_allocno_maps): Likewise.
17135 (mark_loops_for_removal): Likewise.
17136 (mark_all_loops_for_removal): Likewise.
17137 (remove_unnecessary_regions): Likewise.
17138 (ira_build): Likewise.
17139 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
17140 * loop-init.c (fix_loop_structure): Likewise.
17141 (gate_rtl_move_loop_invariants): Likewise.
17142 (gate_rtl_unswitch): Likewise.
17143 (gate_rtl_unroll_and_peel_loops): Likewise.
17144 (rtl_doloop): Likewise.
17145 * lto-streamer-in.c (input_cfg): Likewise.
17146 * lto-streamer-out.c (output_cfg): Likewise.
17147 * modulo-sched.c (sms_schedule): Likewise.
17148 * predict.c (tree_estimate_probability): Likewise.
17149 (tree_estimate_probability_driver): Likewise.
17150 (estimate_loops): Likewise.
17151 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
17152 (move_sese_region_to_fn): Likewise.
17153 (debug_loop_num): Likewise.
17154 * tree-chrec.c (chrec_evaluate): Likewise.
17155 (hide_evolution_in_other_loops_than_loop): Likewise.
17156 (chrec_component_in_loop_num): Likewise.
17157 (reset_evolution_in_loop): Likewise.
17158 (evolution_function_is_invariant_rec_p): Likewise.
17159 * tree-if-conv.c (main_tree_if_conversion): Likewise.
17160 * tree-inline.c (copy_loops): Likewise.
17161 (copy_cfg_body): Likewise.
17162 (tree_function_versioning): Likewise.
17163 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
17164 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
17165 Likewise.
17166 (add_to_evolution_1): Likewise.
17167 (scev_const_prop): Likewise.
17168 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
17169 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
17170 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
17171 (tree_ssa_lim_initialize): Likewise.
17172 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
17173 (verify_loop_closed_ssa): Likewise.
17174 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
17175 (tree_ssa_loop_im): Likewise.
17176 (tree_ssa_loop_unswitch): Likewise.
17177 (tree_vectorize): Likewise.
17178 (check_data_deps): Likewise.
17179 (tree_ssa_loop_ivcanon): Likewise.
17180 (tree_ssa_loop_bounds): Likewise.
17181 (tree_complete_unroll): Likewise.
17182 (tree_complete_unroll_inner): Likewise.
17183 (tree_parallelize_loops): Likewise.
17184 (tree_ssa_loop_prefetch): Likewise.
17185 (tree_ssa_loop_ivopts): Likewise.
17186 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
17187 * tree-vectorizer.c (vectorize_loops): Likewise.
17188
37953bd3
MF
171892013-04-29 Mike Frysinger <vapier@gentoo.org>
17190
17191 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
17192 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
17193 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
17194 with EABI_LINK_SPEC.
17195
f9ed28db
UB
171962013-04-29 Uros Bizjak <ubizjak@gmail.com>
17197
17198 PR target/44578
17199 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
17200 alternative.
17201
deca73f5
VM
172022013-04-29 Vladimir Makarov <vmakarov@redhat.com>
17203
17204 PR target/57097
37953bd3 17205 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
17206 using memory for pseudos. Print cost dump for alternatives.
17207 Modify cost values for conflicts with early clobbers.
17208 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
17209
fdca7d03
UB
172102013-04-29 Uros Bizjak <ubizjak@gmail.com>
17211
17212 PR target/57098
17213 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
17214
0b064172
IB
172152013-04-29 Ian Bolton <ian.bolton@arm.com>
17216
17217 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
17218 from/to S register.
17219 (movdi_aarch64): Support LDR/STR from/to D register.
17220
473cec55
IB
172212013-04-29 Ian Bolton <ian.bolton@arm.com>
17222
17223 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
17224 or higher by default.
17225
a6f30e66
RB
172262013-04-29 Richard Biener <rguenther@suse.de>
17227
17228 PR middle-end/57075
17229 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
17230 even if not adding abnormal edges for calls that can make
17231 abnormal gotos.
17232
0c2b2040
RB
172332013-04-29 Richard Biener <rguenther@suse.de>
17234
17235 PR middle-end/57103
17236 * tree-cfg.c (move_stmt_op): Fix condition under which to update
17237 TREE_BLOCK.
17238 (move_stmt_r): Remove redundant checking.
17239
f41f80f9
TJ
172402013-04-29 Teresa Johnson <tejohnson@google.com>
17241
17242 PR bootstrap/57077
17243 * basic-block.h (apply_scale): New function.
17244 (apply_probability): Use apply_scale.
17245 * gimple-streamer-in.c (input_bb): Ditto.
17246 * lto-streamer-in.c (input_cfg): Ditto.
17247 * lto-cgraph.c (merge_profile_summaries): Ditto.
17248 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 17249 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
17250 (copy_edges_for_bb): Ditto.
17251 (copy_cfg_body): Ditto.
17252
315bbd2e
TV
172532013-04-29 Tom de Vries <tom@codesourcery.com>
17254
17255 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
17256 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
17257 (tail_merge_optimize): Handle current_loops == NULL.
17258
ebbd90d8
JL
172592013-04-26 Jeff Law <law@redhat.com>
17260
17261 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
17262 (simplify_cond_using_ranges): Generalize code to simplify
17263 COND_EXPRs where one argument is a constant and the other
17264 is an SSA_NAME created by an integral type conversion.
17265
8b9b57eb
KT
172662013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17267
17268 * config/arm/arm.md (store_minmaxsi): Use only when
17269 optimize_insn_for_size_p.
17270
9498e5dc
CB
172712013-04-29 Christian Bruel <christian.bruel@st.com>
17272
17273 PR target/57108
17274 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
17275
6093bc06
RB
172762013-04-29 Richard Biener <rguenther@suse.de>
17277
17278 PR middle-end/57089
fdca7d03
UB
17279 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
17280 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
17281 (expand_omp_for_generic): Properly add loops.
17282 (expand_omp_for_static_nochunk): Likewise.
17283 (expand_omp_for_static_chunk): Likewise.
17284 (expand_omp_for): For the degenerate case fixup loops.
17285 (expand_omp_sections): Fix default bb placement in loops.
17286 (expand_omp_atomic_pipeline): Properly add loops.
17287
84aacbfd
KT
172882013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17289
17290 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
17291
8dee4479
TV
172922013-04-29 Tom de Vries <tom@codesourcery.com>
17293
17294 * tree-ssa-tail-merge.c: Update header comment.
17295
47934dc4
JG
172962013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17297
17298 * config/aarch64/arm_neon.h
17299 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
17300 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
17301 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
17302 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
17303 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
17304 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
17305 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
17306 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
17307
384be29f
JG
173082013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17309
17310 * config/aarch64/aarch64-simd.md
17311 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
17312 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
17313 fix_trunc, fixuns_trunc.
17314 (ftrunc<VDQF:mode>2): New.
17315 * config/aarch64/iterators.md (optab): Add fix, fixuns.
17316 (fix_trunc_optab): New.
17317
0386b123
JG
173182013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17319
17320 * config/aarch64/aarch64-builtins.c
17321 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
17322 iceilf, lround, iroundf.
17323
00fcb892
UB
173242013-04-29 Uros Bizjak <ubizjak@gmail.com>
17325
17326 PR target/54349
17327 * config/i386/i386.h (enum ix86_tune_indices)
17328 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
17329 New, split from X86_TUNE_INTER_UNIT_MOVES.
17330 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
17331 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
17332 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
17333 (TARGET_INTER_UNIT_MOVES): Remove.
17334 * config/i386/i386.c (initial_ix86_tune_features): Update.
17335 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
17336 (ix86_expand_convert_uns_didf_sse): Use
17337 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17338 (ix86_expand_vector_init_one_nonzero): Ditto.
17339 (ix86_expand_vector_init_interleave): Ditto.
17340 (inline_secondary_memory_needed): Return true for moves from SSE class
17341 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
17342 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
17343 * config/i386/constraints.md (Yi, Ym): Depend on
17344 TARGET_INTER_UNIT_MOVES_TO_VEC.
17345 (Yj, Yn): New constraints.
17346 * config/i386/i386.md (*movdi_internal): Change constraints of
17347 operand 1 from Yi to Yj and from Ym to Yn.
17348 (*movsi_internal): Ditto.
17349 (*movdf_internal): Ditto.
17350 (*movsf_internal): Ditto.
17351 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
17352 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
17353 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
17354 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
17355 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
17356 * config/i386/sse.md (movdi_to_sse): Ditto.
17357 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
17358 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
17359 TARGET_INTER_UNIT_MOVES.
17360 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
17361 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
17362 instead of TARGET_INTER_UNIT_MOVES.
17363 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
17364 operand 1 from Yi to Yj and from Ym to Yn.
17365
4c871069
JG
173662013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17367
17368 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
17369 (float_truncate_hi_): Likewise.
17370 (float_extend_lo_): Likewise.
17371 (float_truncate_lo_): Likewise.
17372 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
17373 (aarch64_float_extend_lo_v2df): Likewise.
17374 (vec_unpacks_hi_v4sf): Likewise.
17375 (aarch64_float_truncate_lo_v2sf): Likewise.
17376 (aarch64_float_truncate_hi_v4sf): Likewise.
17377 (vec_pack_trunc_v2df): Likewise.
17378 (vec_pack_trunc_df): Likewise.
17379
1709ff9b
JG
173802013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17381
17382 * config/aarch64/aarch64-builtins.c
17383 (aarch64_fold_builtin): Fold float conversions.
17384 * config/aarch64/aarch64-simd-builtins.def
17385 (floatv2si, floatv4si, floatv2di): New.
17386 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
17387 * config/aarch64/aarch64-simd.md
17388 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
17389 * config/aarch64/iterators.md (FLOATUORS): New.
17390 (optab): Add float, floatuns.
17391 (su_optab): Likewise.
17392
ce966824
JG
173932013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17394
17395 * config/aarch64/aarch64-builtins.c
17396 (aarch64_builtin_vectorized_function): Use new names for
17397 fcvt builtins.
17398 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
17399 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
17400 (fcvtzu): Split as...
17401 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
17402 (fcvtas): Split as...
17403 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
17404 (fcvtau): Split as...
17405 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
17406 (fcvtps): Split as...
17407 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
17408 (fcvtpu): Split as...
17409 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
17410 (fcvtms): Split as...
17411 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
17412 (fcvtmu): Split as...
17413 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
17414 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
17415 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
17416 (lfrintnusf, lfrintnudf): Likewise.
17417 * config/aarch64/aarch64-simd.md
17418 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
17419 define_insn.
17420 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
17421 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
17422 (fcvt_pattern): Likewise.
17423
b9de24fe
JG
174242013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17425
17426 * config/aarch64/aarch64-simd.md
17427 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
17428 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
17429
77a205be
JG
174302013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17431
17432 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
17433 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
17434 (vrnd<a,m,n,p>_f32): Implement using builtins.
17435 (vrnd<i,x><q>_f<32, 64>): New.
17436
0659ce6f
JG
174372013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
17438
17439 * config/aarch64/aarch64-builtins.c
17440 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
17441 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
17442 (frintz): Rename to...
17443 (btrunc): ...this.
17444 (frintp): Rename to...
17445 (ceil): ...this.
17446 (frintm): Rename to...
17447 (floor): ...this.
17448 (frinti): Rename to...
17449 (nearbyint): ...this.
17450 (frintx): Rename to...
17451 (rint): ...this.
17452 (frinta): Rename to...
17453 (round): ...this.
17454 * config/aarch64/aarch64-simd.md
17455 (aarch64_frint<frint_suffix><mode>): Delete.
17456 (<frint_pattern><mode>2): Convert to insn.
17457 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
17458 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
17459 (frint_pattern): Likewise.
17460 (frint_suffix): Likewise.
17461
ea78906a
RB
174622013-04-29 Richard Biener <rguenther@suse.de>
17463
17464 PR tree-optimization/57081
17465 * loop-init.c: Include tree-flow.h.
17466 (loop_optimizer_finalize): Free number of iteration estimates.
17467 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
17468
baee1763
JJ
174692013-04-29 Jakub Jelinek <jakub@redhat.com>
17470
94dc5332
JJ
17471 PR tree-optimization/57083
17472 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
17473 non-singleton shift count range, zero extend low_bound for uns case.
17474
baee1763
JJ
17475 * config/i386/predicates.md (general_vector_operand): New predicate.
17476 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
17477 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
17478 if they aren't nonimmediate operands. If their original values
17479 satisfy const_vector_equal_evenodd_p, don't shift them.
17480 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
17481 predicates. For the SSE4.1 case force operands[{1,2}] into registers
17482 if not nonimmediate_operand.
17483 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
17484 instead of register_operand.
17485 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
17486
a9073727 174872013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
17488
17489 * stor-layout.c (finalize_size_functions): Allocate a structure and
17490 reset cfun before dumping the functions.
17491
ba8011e6
JJ
174922013-04-27 Jakub Jelinek <jakub@redhat.com>
17493
d6fde69e
JJ
17494 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
17495
ba8011e6
JJ
17496 PR target/56866
17497 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
17498 use xop_pmacsdqh if uns_p.
17499 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
17500 the immediate rotate count.
17501
2c62cbaa
VM
175022013-04-26 Vladimir Makarov <vmakarov@redhat.com>
17503
17504 * rtl.h (struct rtx_def): Add comment for field jump.
17505 (LRA_SUBREG_P): New macro.
17506 * recog.c (register_operand): Check LRA_SUBREG_P.
17507 * lra.c (lra): Add note at the end of RTL code. Align non-empty
17508 stack frame.
17509 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
17510 (lra_final_code_change): Skip subreg change for operators.
17511 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
17512 if there are no operand changes.
17513 * lra-constraints.c (curr_insn_set): New.
17514 (match_reload): Set LRA_SUBREG_P.
17515 (emit_spill_move): Ditto.
17516 (check_and_process_move): Use curr_insn_set. Process only single
17517 set insns. Don't initialize sec_mem_p and change_p.
17518 (simplify_operand_subreg): Use LRA_SUBREG_P.
17519 (reg_in_class_p): New function.
17520 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
17521 of #ifdef. Add code to remove cycling.
17522 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
17523 non-null disp. Reload inner instead of disp when base and index
17524 are null. Try to put lo_sum into register.
17525 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
17526 (check_and_process_move): Move code for move cost check to
17527 simple_move_p. Remove equiv_substitution.
17528 (simple_move_p): New function.
17529 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
17530 curr_insn_set. Call check_and_process_move only for single set
17531 insns. Use the new function. Move call of check_and_process_move
17532 after operand equiv substitution and address process.
17533
e7d764f3
JJ
175342013-04-26 Jakub Jelinek <jakub@redhat.com>
17535
17536 PR go/57045
17537 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
17538 with nonlocal goto receivers or returns twice calls, ignore
17539 unininitialized values from abnormal edges to nl goto receiver
17540 or returns twice call.
17541
41e10689
JJ
175422013-04-26 Jakub Jelinek <jakub@redhat.com>
17543
17544 PR tree-optimization/57051
17545 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
17546 and VEC_RSHIFT_EXPR if shift count is a multiple of element
17547 bitsize.
17548
d7ed20db
RB
175492013-04-26 Richard Biener <rguenther@suse.de>
17550
17551 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
17552 (expand_omp_taskreg): Likewise. Mark loops for fixup.
17553 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
17554 (fixup_loop_arrays_after_move): New function.
17555 (move_sese_region_to_fn): Properly outline the loop tree parts
17556 of the SESE region.
17557
df93505e
UB
175582013-04-26 Uros Bizjak <ubizjak@gmail.com>
17559
17560 * config/i386/i386.md (type, unit): Fix long lines.
17561
dd366ec3
RB
175622013-04-26 Richard Biener <rguenther@suse.de>
17563
17564 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
17565 (lto-streamer-out.o): Likewise.
17566 * cfgloop.c (init_loops_structure): Export, add struct function
17567 argument and adjust.
17568 (flow_loops_find): Adjust.
17569 * cfgloop.h (enum loop_estimation): Add EST_LAST.
17570 (init_loops_structure): Declare.
17571 * lto-streamer-in.c: Include cfgloop.h.
17572 (input_cfg): Input the loop tree.
17573 * lto-streamer-out.c: Include cfgloop.h.
17574 (output_cfg): Output the loop tree.
17575 (output_struct_function_base): Do not drop PROP_loops.
17576
a9e0d843
RB
175772013-03-26 Richard Biener <rguenther@suse.de>
17578
17579 * tree-cfg.c (execute_build_cfg): Build the loop tree.
17580 (pass_build_cfg): Provide PROP_loops.
17581 (move_sese_region_to_fn): Remove loops that are outlined into fn
17582 for now.
17583 * tree-inline.c: Include cfgloop.h.
17584 (initialize_cfun): Do not drop PROP_loops.
17585 (copy_loops): New function.
17586 (copy_cfg_body): Copy loop structure.
17587 (tree_function_versioning): Initialize destination loop tree.
17588 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
17589 (pass_parallelize_loops): Do IL verification.
17590 * loop-init.c (loop_optimizer_init): Fixup loops if required.
17591 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
17592 the CFG make sure we fixup loops as well.
17593 * tree-ssa-tail-merge.c: Include cfgloop.h.
17594 (replace_block_by): When merging loop latches mark loops for fixup.
17595 * lto-streamer-out.c (output_struct_function_base): Drop
17596 PROP_loops for now.
17597 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
17598 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
17599 * ipa-split.c: Include cfgloop.h.
17600 (split_function): Add the new return block to the loop tree root.
17601 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
17602 whether we have removed the forwarder block.
17603 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
17604 * cfgloop.h (place_new_loop): Declare.
17605 * cfgloopmanip.c (place_new_loop): Export.
17606 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
17607 (tree-switch-conversion.o): Likewise.
17608 (tree-complex.o): Likewise.
17609 (tree-inline.o): Likewise.
17610 (tree-ssa-tailmerge.o): Likewise.
17611 (ipa-split.o): Likewise.
17612 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
17613 (tree-ssa-copy.o): Likewise.
17614 * tree-switch-conversion.c: Include cfgloop.h
17615 (process_switch): If we emit a bit-test cascade, schedule loops
17616 for fixup.
17617 * tree-complex.c: Include cfgloop.h.
17618 (expand_complex_div_wide): Properly add new basic-blocks to loops.
17619 * asan.c: Include cfgloop.h.
17620 (create_cond_insert_point): Properly add new basic-blocks to
17621 loops, schedule loop fixup.
17622 * cfgloop.c (verify_loop_structure): Check that looks are not
17623 marked for fixup.
17624 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
17625 to loops.
17626 (expand_omp_for_generic): Likewise.
17627 (expand_omp_sections): Likewise.
17628 (expand_omp_atomic_pipeline): Schedule loops for fixup.
17629 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
17630 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
17631 is initialized, not when loops are present.
17632 * tree-parloops.c (parallelize_loops): Remove checking here.
17633 * passes.c (init_optimization_passes): Schedule a copy-propagation
17634 pass before complete unrolling of inner loops.
17635
e78e8a0b
JJ
176362013-04-26 Jakub Jelinek <jakub@redhat.com>
17637
a2e836b2
JJ
17638 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
17639 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
17640 (colorize_init): Add argument to _WIN32 version.
17641 * toplev.c: Include diagnostic-color.h.
17642 (process_options): Default to -fdiagnostics-color=auto if
17643 GCC_COLORS env var is in the environment.
17644 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
17645 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
17646 env var is in the environment, the default is auto rather than never.
a2e836b2 17647
e78e8a0b
JJ
17648 * diagnostic.h (file_name_as_prefix): Add context argument.
17649 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
17650 the string as locus.
17651 * langhooks.c (lhd_print_error_function): Adjust caller.
17652
013e5ef9
LC
176532013-04-25 Lawrence Crowl <crowl@google.com>
17654
17655 * var-tracking.c (shared_hash_def::htab):
17656 Change type to hash_table. Update dependent calls and types.
17657
4a8fb1a1
LC
176582013-04-25 Lawrence Crowl <crowl@google.com>
17659
17660 * Makefile.in: Update as needed below.
17661
17662 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
17663 Move declaration to after the type's method definitons.
17664
17665 * attribs.c (htab_t scoped_attributes::attribute_hash):
17666 Change type to hash_table. Update dependent calls and types.
17667
17668 * bitmap.c (htab_t bitmap_desc_hash):
17669 Change type to hash_table. Update dependent calls and types.
17670
17671 * cselib.c (htab_t cselib_hash_table):
17672 Change type to hash_table. Update dependent calls and types.
17673
17674 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
17675 (hash_string_slot_node): Move implementation into lto-streamer.h
17676 struct string_slot_hasher.
17677 (eq_string_slot_node): Likewise.
17678
17679 * data-streamer-out.c: Update output_block::string_hash_table
17680 dependent calls and types.
17681
17682 * dwarf2cfi.c (htab_t trace_index):
17683 Change type to hash_table. Update dependent calls and types.
17684
17685 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
17686 Change type to hash_table. Update dependent calls and types.
17687 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
17688 (htab_t optimize_external_refs::map): Likewise.
17689 (htab_t output_comp_unit::extern_map): Likewise.
17690 (htab_t output_comdat_type_unit::extern_map): Likewise.
17691 (htab_t output_macinfo::macinfo_htab): Likewise.
17692 (htab_t optimize_location_lists::htab): Likewise.
17693 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
17694
17695 * except.c (htab_t ehspec_hash_type):
17696 Change type to hash_table. Update dependent calls and types.
17697 (assign_filter_values::ttypes): Likewise.
17698 (assign_filter_values::ehspec): Likewise.
17699 (sjlj_assign_call_site_values::ar_hash): Likewise.
17700 (convert_to_eh_region_ranges::ar_hash): Likewise.
17701
17702 * gcse.c (htab_t pre_ldst_table):
17703 Change type to hash_table. Update dependent calls and types.
17704
17705 * ggc-common.c (htab_t saving_htab):
17706 Change type to hash_table. Update dependent calls and types.
17707 (htab_t loc_hash): Likewise.
17708 (htab_t ptr_hash): Likewise.
17709 (call_count): Rename ggc_call_count.
17710 (call_alloc): Rename ggc_call_alloc.
17711 (loc_descriptor): Rename make_loc_descriptor.
17712 (add_statistics): Rename ggc_add_statistics.
17713
17714 * ggc-common.c (saving_htab):
17715 Change type to hash_table. Update dependent calls and types.
17716
17717 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
17718 (push_gimplify_context): Likewise.
17719 (pop_gimplify_context): Likewise.
17720 (struct gimple_temp_hash_elt): Added.
17721 (struct gimplify_hasher): Likewise.
17722 (struct gimplify_ctx.temp_htab):
17723 Change type to hash_table. Update dependent calls and types.
17724
17725 * gimple-fold.c: Include gimplify-ctx.h.
17726
17727 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
17728 Change type to hash_table. Update dependent calls and types.
17729 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
17730 avoid potential global name collision.
17731
17732 * gimplify.c: Include gimplify-ctx.h.
17733 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
17734 (htab_t gimplify_ctx::temp_htab):
17735 Update dependent calls and types for new type hash_table.
17736 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
17737 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
17738
17739 * gimplify-ctx.h: New.
17740 (struct gimple_temp_hash_elt): Move from gimplify.c.
17741 (class gimplify_hasher): New.
17742 (struct gimplify_ctx): Move from gimple.h.
17743 (htab_t gimplify_ctx::temp_htab):
17744 Change type to hash_table. Update dependent calls and types.
17745
17746 * graphite-clast-to-gimple.c: Include graphite-htab.h.
17747 (htab_t ivs_params::newivs_index):
17748 Change type to hash_table. Update dependent calls and types.
17749 (htab_t ivs_params::params_index): Likewise.
17750 (htab_t print_generated_program::params_index): Likewise.
17751 (htab_t gloog::newivs_index): Likewise.
17752 (htab_t gloog::params_index): Likewise.
17753
17754 * graphite.c: Include graphite-htab.h.
17755 4htab_t graphite_transform_loops::bb_pbb_mapping):
17756 Change type to hash_table. Update dependent calls and types.
17757
17758 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
17759 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
17760 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
17761
17762 * graphite-dependences.c: Include graphite-htab.h.
17763 (loop_is_parallel_p): Change hash table type of parameter.
17764
17765 * graphite-htab.h: New.
17766 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
17767 (extern find_pbb_via_hash): Move from graphite-poly.h.
17768 (extern loop_is_parallel_p): Move from graphite-poly.h.
17769 (extern get_loop_body_pbbs): Move from graphite-poly.h.
17770
17771 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
17772 (extern loop_is_parallel_p): Move to graphite-htab.h.
17773 (extern get_loop_body_pbbs): Move to graphite-htab.h.
17774
17775 * haifa-sched.c (htab_t delay_htab):
17776 Change type to hash_table. Update dependent calls and types.
17777 (htab_t delay_htab_i2): Likewise.
17778
17779 * ira-color.c (htab_t allocno_hard_regs_htab):
17780 Change type to hash_table. Update dependent calls and types.
17781
17782 * ira-costs.c (htab_t cost_classes_htab):
17783 Change type to hash_table. Update dependent calls and types.
17784
17785 * loop-invariant.c (htab_t merge_identical_invariants::eq):
17786 Change type to hash_table. Update dependent calls and types.
17787
17788 * loop-iv.c (htab_t bivs):
17789 Change type to hash_table. Update dependent calls and types.
17790
17791 * loop-unroll.c (htab_t opt_info::insns_to_split):
17792 Change type to hash_table. Update dependent calls and types.
17793 (htab_t opt_info::insns_with_var_to_expand): Likewise.
17794
17795 * lto-streamer.h (struct string_slot): Move from data-streamer.h
17796 (struct string_slot_hasher): New.
17797 (htab_t output_block::string_hash_table):
17798 Change type to hash_table. Update dependent calls and types.
17799
17800 * lto-streamer-in.c (freeing_string_slot_hasher): New.
17801 (htab_t file_name_hash_table):
17802 Change type to hash_table. Update dependent calls and types.
17803
17804 * lto-streamer-out.c: Update output_block::string_hash_table dependent
17805 calls and types.
17806
17807 * lto-streamer.c (htab_t tree_htab):
17808 Change type to hash_table. Update dependent calls and types.
17809
17810 * omp-low.c: Include gimplify-ctx.h.
17811
17812 * passes.c (htab_t name_to_pass_map):
17813 Change type to hash_table. Update dependent calls and types.
17814 (pass_traverse): Rename to passes_pass_traverse.
17815
17816 * plugin.c (htab_t event_tab):
17817 Change type to hash_table. Update dependent calls and types.
17818
17819 * postreload-gcse.c (htab_t expr_table):
17820 Change type to hash_table. Update dependent calls and types.
17821 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
17822
17823 * sese.c (debug_rename_map_1): Make extern.
17824 (htab_t copy_bb_and_scalar_dependences::rename_map):
17825 Change type to hash_table. Update dependent calls and types.
17826
17827 * sese.h (extern debug_rename_map): Move to .c file.
17828
17829 * store-motion.c (htab_t store_motion_mems_table):
17830 Change type to hash_table. Update dependent calls and types.
17831
17832 * trans-mem.c (htab_t tm_new_mem_hash):
17833 Change type to hash_table. Update dependent calls and types.
17834
17835 * tree-browser.c (htab_t TB_up_ht):
17836 Change type to hash_table. Update dependent calls and types.
17837
17838 * tree-cfg.c (htab_t discriminator_per_locus):
17839 Change type to hash_table. Update dependent calls and types.
17840
17841 * tree-complex.c: Include tree-hasher.h
17842 (htab_t complex_variable_components):
17843 Change type to hash_table. Update dependent calls and types.
17844
17845 * tree-eh.c (htab_t finally_tree):
17846 Change type to hash_table. Update dependent calls and types.
17847
17848 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
17849 struct int_tree_hasher.
17850 (extern int_tree_map_eq): Likewise.
17851 (uid_decl_map_hash): Removed.
17852 (extern decl_tree_map_eq): Likewise.
17853
17854 * tree-hasher.h: New.
17855 (struct int_tree_hasher): New.
17856 (typedef int_tree_htab_type): New.
17857
17858 * tree-inline.c: Include gimplify-ctx.h.
17859
17860 * tree-mudflap.c: Include gimplify-ctx.h.
17861
17862 * tree-parloops.c: Include tree-hasher.h.
17863 (htab_t eliminate_local_variables_stmt::decl_address):
17864 Change type to hash_table. Update dependent calls and types.
17865 (htab_t separate_decls_in_region::decl_copies): Likewise.
17866
17867 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
17868 Change type to hash_table. Update dependent calls and types.
17869
17870 * tree-sra.c (candidates):
17871 Change type to hash_table. Update dependent calls and types.
17872
17873 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
17874 in tree-flow.h.
17875 (int_tree_map_hash): Likewise.
17876
17877 * tree-ssa-dom.c (htab_t avail_exprs):
17878 Change type to hash_table. Update dependent calls and types.
17879
17880 * tree-ssa-live.c (var_map_base_init::tree_to_index):
17881 Change type to hash_table. Update dependent calls and types.
17882
17883 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
17884 Change type to hash_table. Update dependent calls and types.
17885
17886 * tree-ssa-phiopt.c (seen_ssa_names):
17887 Change type to hash_table. Update dependent calls and types.
17888
17889 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
17890 Change type to hash_table. Update dependent calls and types.
17891
17892 * tree-ssa-uncprop.c (equiv):
17893 Change type to hash_table. Update dependent calls and types.
17894
c5a44004
JJ
178952013-04-25 Jakub Jelinek <jakub@redhat.com>
17896
17897 PR rtl-optimization/57003
17898 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
17899 call note_stores with kill_clobbered_value callback again after
17900 killing regs_invalidated_by_call.
17901
09962a4a
JG
179022013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17903
17904 * config/aarch64/aarch64-simd.md
17905 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
17906 (aarch64_simd_bsl<mode>): Likewise.
17907 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
17908
ea28bb0b
MP
179092013-04-25 Marek Polacek <polacek@redhat.com>
17910
17911 PR tree-optimization/57066
3c21604f 17912 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 17913
96659611
JG
179142013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
17915
17916 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
17917
9697e620
JG
179182013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17919
17920 * config/aarch64/aarch64-builtins.c
17921 (aarch64_fold_builtin): New.
17922 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
17923 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
17924 * config/aarch64/aarch64-simd-builtins.def (abs): New.
17925 * config/aarch64/arm_neon.h
17926 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
17927
0ac198d3
JG
179282013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17929 Tejas Belagod <tejas.belagod@arm.com>
17930
17931 * config/aarch64/aarch64-builtins.c
17932 (aarch64_gimple_fold_builtin): New.
17933 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
17934 * config/aarch64/aarch64-simd-builtins.def (addv): New.
17935 * config/aarch64/aarch64-simd.md (addpv4sf): New.
17936 (addvv4sf): Update.
17937 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
17938
58cff58c
N
179392013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17940
df93505e 17941 * config/aarch64/aarch64.md
58cff58c
N
17942 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
17943
7e0228bf
N
179442013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
17945
17946 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
17947 (*ngcsi_uxtw): New pattern.
17948
5819f96f 179492013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 17950 Julian Brown <julian@codesourcery.com>
5819f96f
KT
17951
17952 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
17953 (TB_DREG): Add T_V4HF.
17954 (v4hf_UP): New macro.
17955 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 17956 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17957 Handle initialisation of V4HF. Adjust initialisation of reinterpret
17958 built-ins.
df93505e 17959 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
17960 (arm_vector_mode_supported_p): Handle V4HF.
17961 (arm_mangle_map): Handle V4HFmode.
17962 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
17963 * config/arm/arm_neon_builtins.def: Add entries for
17964 vcvtv4hfv4sf, vcvtv4sfv4hf.
17965 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
17966 (neon_vcvtv4hfv4sf): Likewise.
17967 * config/arm/neon-gen.ml: Handle half-precision floating point
17968 features.
17969 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
17970 * config/arm/arm_neon.h: Regenerate.
17971 * config/arm/neon.ml (type elts): Add F16.
17972 (type vectype): Add T_float16x4, T_floatHF.
17973 (type vecmode): Add V4HF.
17974 (type features): Add Requires_FP_bit feature.
17975 (elt_width): Handle F16.
17976 (elt_class): Likewise.
17977 (elt_of_class_width): Likewise.
17978 (mode_of_elt): Refactor.
17979 (type_for_elt): Handle F16, fix error messages.
17980 (vectype_size): Handle T_float16x4.
17981 (vcvt_sh): New function.
17982 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
17983 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
17984 (string_of_mode): Handle V4HF.
17985 * doc/arm-neon-intrinsics.texi: Regenerate.
17986
1ef395e4
JG
179872013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
17988
17989 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
17990 format specifier in 'X' case.
17991
41c34e94
AM
179922013-04-25 Alan Modra <amodra@gmail.com>
17993
17994 PR target/57052
17995 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
17996 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
17997 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
17998 Repeat for many other rotate/shift and mask patterns using subregs.
17999 Name lshiftrt insns.
18000 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
18001 on WORDS_BIG_ENDIAN.
18002
b9a7eb5d
AM
180032013-04-25 Alan Modra <amodra@gmail.com>
18004
18005 * config.gcc: Support little-endian powerpc-linux targets.
18006 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
18007 (LINK_OS_LINUX_SPEC): Define.
18008 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
18009 Preserve MASK_LITTLE_ENDIAN.
18010 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
18011 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
18012 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
18013 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
18014 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
18015 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
18016 Correct fp word order for little-endian. Don't shift toc entries
18017 smaller than a word for little-endian.
18018 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
18019 (bswapdi2 splits): Correct low-part subreg for little-endian.
18020 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
18021 low/high where such is correct only for be.
18022 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
18023 little-endian for -mcall-aixdesc.
18024
87f73374
AM
180252013-04-25 Alan Modra <amodra@gmail.com>
18026
18027 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
18028 replace_equiv_address_nv.
18029
cabf91cd
AM
180302013-04-25 Alan Modra <amodra@gmail.com>
18031
18032 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
18033
0ae24cc8
VM
180342013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18035
18036 Revert:
18037 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18038 * rtl.h (struct rtx_def): ...
cabf91cd 18039
77bce07c
VM
180402013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18041
18042 PR rtl-optimizations/57046
18043 * lra-constraints (split_reg): Set up lra_risky_transformations_p
18044 for multi-reg splits.
18045
0db63e7f
L
180462013-04-24 H.J. Lu <hongjiu.lu@intel.com>
18047
18048 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
18049
3362b6b6
SA
180502013-04-24 Sterling Augustine <saugustine@google.com>
18051
18052 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
18053 (comp_dir_string, debug_str_dwo_section): New.
18054 (DEBUG_STR_DWO_SECTION): Rename to ...
18055 (DEBUG_DWO_STR_SECTION): ... this.
18056 (DEBUG_NORM_STR_SECTION): Delete.
18057 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
18058 (DEBUG_STR_DWO_SECTION_FLAGS): New.
18059 (find_AT_string): Move most logic to ...
18060 (find_AT_string_in_table): ... here. New.
18061 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
18062 add_skeleton_AT_string. Delete logic.
18063 (output_skeleton_debug_sections): Remove call to
18064 add_top_level_skeleton_die_attrs.
18065 (add_comp_dir_attribute): Move logic to comp_dir_string.
18066 (dwarf2out_init): Initialize debug_str_dwo_section.
18067 (output_indirect_string): Call find_string_form.
18068 (output_indirect_strings): Rewrite.
18069 (prune_unused_types): Empty skeleton_debug_str_hash.
18070 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
18071 (dwarf2out_finish): Call output_indirect_strings.
18072
e93e18e9
PC
180732013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
18074
18075 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
18076
f6ce35ac
VM
180772013-04-24 Vladimir Makarov <vmakarov@redhat.com>
18078
cabf91cd 18079 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
18080 (LRA_SUBREG_P): New macro.
18081 * recog.c (register_operand): Check LRA_SUBREG_P.
18082 * lra.c (lra): Add note at the end of RTL code. Align non-empty
18083 stack frame.
18084 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
18085 (lra_final_code_change): Skip subreg change for operators.
18086 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
18087 if there are no operand changes.
18088 * lra-constraints.c (curr_insn_set): New.
18089 (match_reload): Set LRA_SUBREG_P.
18090 (emit_spill_move): Ditto.
18091 (check_and_process_move): Use curr_insn_set. Process only single
18092 set insns. Don't initialize sec_mem_p and change_p.
18093 (simplify_operand_subreg): Use LRA_SUBREG_P.
18094 (reg_in_class_p): New function.
18095 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
18096 of #ifdef. Add code to remove cycling.
18097 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
18098 non-null disp. Reload inner instead of disp when base and index
18099 are null. Try to put lo_sum into register.
18100 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 18101 (check_and_process_move): Move code for move cost check to
f6ce35ac 18102 simple_move_p. Remove equiv_substitution.
cabf91cd 18103 (simple_move_p): New function.
f6ce35ac
VM
18104 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
18105 curr_insn_set. Call check_and_process_move only for single set
18106 insns. Use the new function. Move call of check_and_process_move
18107 after operand equiv substitution and address process.
18108
38047d90
JG
181092013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
18110
18111 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
18112 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
18113 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
18114
13f39b2e
PC
181152013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
18116
18117 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
18118
97c116dc
MP
181192013-04-24 Marek Polacek <polacek@redhat.com>
18120
18121 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
18122 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
18123 (select_loops_exit_conditions): Likewise.
18124 (number_of_iterations_for_all_loops): Likewise.
18125 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
18126 (scev_analysis): Likewise.
18127
83082391 181282013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 18129 Chao-ying Fu <fu@mips.com>
83082391 18130
cabf91cd
AM
18131 * config/mips/micromips.md (jraddiusp): New pattern.
18132 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
18133 instruction if possible.
83082391 18134
19e34aa2
AM
181352013-04-24 Alan Modra <amodra@gmail.com>
18136
18137 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
18138
fdb6603c
JB
181392013-04-24 Julian Brown <julian@codesourcery.com>
18140 Chung-Lin Tang <cltang@codesourcery.com>
18141
18142 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
18143 dependency behavior in enumeration type DIE generation. Add TODO note
18144 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 18145
bf190e8d
LC
181462013-04-23 Lawrence Crowl <crowl@google.com>
18147
18148 * Makefile.in: Update as needed below.
18149
18150 * hash-table.h (class hash_table):
18151 Correct many methods with parameter types compare_type to the correct
18152 value_type. (Correct code was unlikely to notice the change.)
18153 (hash_table::elements_with_deleted) New.
18154 (class hashtable::iterator): New.
18155 (hashtable::begin()): New.
18156 (hashtable::end()): New.
18157 (FOR_EACH_HASH_TABLE_ELEMENT): New.
18158
18159 * statistics.c (statistics_hashes):
18160 Change type to hash_table. Update dependent calls and types.
18161
18162 * tree-into-ssa.c (var_infos):
18163 Change type to hash_table. Update dependent calls and types.
18164
18165 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
18166 Change type to hash_table. Update dependent calls and types.
18167
18168 * tree-ssa-loop-im.c (struct mem_ref.refs):
18169 Change type to hash_table. Update dependent calls and types.
18170
18171 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
18172 Change type to hash_table. Update dependent calls and types.
18173
18174 * tree-ssa-sccvn.c (vn_tables_s::nary):
18175 Change type to hash_table. Update dependent calls and types.
18176 (vn_tables_s::phis): Likewise.
18177 (vn_tables_s::references): Likewise.
18178
18179 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
18180 (vn_reference_eq): Update parameter and return types.
18181
18182 * tree-ssa-structalias.c (pointer_equiv_class_table):
18183 Change type to hash_table. Update dependent calls and types.
18184 (location_equiv_class_table): Likewise.
18185
18186 * tree-vect-data-refs.c: Consequential changes for making
18187 peeling a hash_table.
18188
18189 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
18190 (destroy_loop_vec_info): Dependent hash_table update.
18191
18192 * tree-vectorizer.h (peeling_htab):
18193 Change type to hash_table. Update dependent calls and types.
18194
d70a81dd
SC
181952013-04-23 Shiva Chen <shiva0217@gmail.com>
18196
cabf91cd
AM
18197 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
18198 to check the register content is equal or not.
18199 * lra-constraints.c (match_reload): Use lra_assign_reg_val
18200 to assign register content record.
18201 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 18202 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
18203 * lra-int.h (struct lra_reg): Add offset member.
18204 (lra_reg_val_equal_p): New static inline function.
18205 (lra_update_reg_val_offset): New static inline function.
18206 (lra_assign_reg_val): New static inline function.
18207 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
18208 to assign register content record.
18209 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 18210
b894a1f3
CM
182112013-04-23 Catherine Moore <clm@codesourcery.com>
18212
18213 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
18214 operands. Record compression.
18215
ecd14de9
XDL
182162013-04-23 Xinliang David Li <davidxl@google.com>
18217
18218 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
18219
92e776e9
RB
182202013-04-23 Richard Biener <rguenther@suse.de>
18221
18222 PR middle-end/57036
18223 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
18224 parameter, only add abnormal goto edges from the copied body
18225 if the call could perform abnormal gotos.
18226 (copy_cfg_body): Adjust.
18227
a15ee567
SN
182282013-04-23 Sofiane Naci <sofiane.naci@arm.com>
18229
18230 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
18231
08c52234
AS
182322013-04-23 Andreas Schwab <schwab@linux-m68k.org>
18233
18234 * coretypes.h (gimple_stmt_iterator): Add struct to make
18235 compatible with C.
18236
999c1171
RB
182372013-04-23 Richard Biener <rguenther@suse.de>
18238
18239 PR tree-optimization/57026
18240 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
18241 from SSA names occuring in abnormal PHI nodes.
18242
53669259
AK
182432013-04-22 Andi Kleen <ak@linux.intel.com>
18244
18245 * lto/lto.c (print_lto_report_1): Fix LTO report names.
18246
1a0ad150
AK
182472013-04-22 Andi Kleen <ak@linux.intel.com>
18248
18249 * lto/lto.c (print_lto_report_1): Declare early.
18250 (read_cgraph_and_symbols): Call print_lto_report_1 early.
18251
057f8f20
AK
182522013-04-22 Andi Kleen <ak@linux.intel.com>
18253
18254 * common.opt (-flto-report-wpa): Add.
18255 * doc/invoke.texi (-flto-report-wpa): Add.
18256 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
18257 (lto_main): dito.
18258
473b1e05
XDL
182592013-04-22 Xinliang David Li <davidxl@google.com>
18260
18261 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
18262 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
18263 * Makefile.in: New dependency
18264
cabf91cd 18265 David Daney <ddaney.cavm@gmail.com>
b1485a33 18266
cabf91cd
AM
18267 * configure.ac (gcc_cv_as_micromips_support): Use the
18268 --fatal-warnings option.
18269 * configure: Regenerate.
b1485a33 18270
829d0168
MP
182712013-04-22 Marek Polacek <polacek@redhat.com>
18272
18273 PR sanitizer/56990
18274 * tsan.c (instrument_expr): Don't instrument expression
18275 in case its size is zero.
18276
6d9b7208
UB
182772013-04-22 Uros Bizjak <ubizjak@gmail.com>
18278
18279 PR target/57032
18280 Revert:
18281 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
18282
18283 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18284
ea679d55
JG
182852013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18286
18287 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
18288 (gimple_stmt_iterator): New typedef.
18289 * gimple.h (gimple_stmt_iterator): Rename to...
18290 (gimple_stmt_iterator_d): ... This.
18291 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
18292 trees be valid for GIMPLE and GENERIC.
18293 (TARGET_GIMPLE_FOLD_BUILTIN): New.
18294 * gimple-fold.c (gimple_fold_call): Call target hook
18295 gimple_fold_builtin.
18296 * hooks.c (hook_bool_gsiptr_false): New.
18297 * hooks.h (hook_bool_gsiptr_false): New.
18298 * target.def (fold_stmt): New.
18299 * doc/tm.texi: Regenerate.
18300
88a581da
VM
183012013-04-22 Vladimir Makarov <vmakarov@redhat.com>
18302
18303 PR target/57018
18304 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
18305 a set sp if no stack realignment.
18306
92be22dc
NC
183072013-04-22 Nick Clifton <nickc@redhat.com>
18308
18309 * config.gcc (tilegx-linux): Extend extra_objs rather than
18310 overwriting it.
18311 (tilepro-linux): Likewise.
18312
0ddec79f
JG
183132013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18314
18315 * config/aarch64/aarch64-builtins.c
18316 (CF): Remove.
18317 (CF0, CF1, CF2, CF3, CF4, CF10): New.
18318 (VAR<1-12>): Add MAP parameter.
18319 (BUILTIN_*): Likewise.
18320 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
18321 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
18322 (aarch64_ushl_n<mode>): Likewise.
18323 (aarch64_sshr_n<mode>): Likewise.
18324 (aarch64_ushr_n<mode>): Likewise.
18325 (aarch64_<maxmin><mode>): Likewise.
18326 (aarch64_sqrt<mode>): Likewise.
18327 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
18328 (vshr<q>_n_*): Likewise.
18329
0050faf8
JG
183302013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
18331
18332 * config/aarch64/aarch64-builtins.c
18333 (aarch64_simd_builtin_type_mode): Handle SF types.
18334 (sf_UP): Define.
18335 (BUILTIN_GPF): Define.
18336 (aarch64_init_simd_builtins): Handle SF types.
18337 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
18338 (frecps): Likewise.
18339 (frecpx): Likewise.
18340 * config/aarch64/aarch64-simd.md
18341 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
18342 (aarch64_frecpe<mode>): New.
18343 (aarch64_frecps<mode>): Likewise.
18344 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
18345 (v8type): Add frecp<esx>.
18346 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
18347 (aarch64_frecps<mode>): Likewise.
18348 * config/aarch64/iterators.md (FRECP): New.
18349 (frecp_suffix): Likewise.
18350 * config/aarch64/arm_neon.h
18351 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
18352
0fad3dbc 183532013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
18354
18355 PR target/56995
18356 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
18357 (REG_CLASS_NAMES): Idem.
18358 (REG_CLASS_CONTENTS): Idem.
18359 (REGCLASS_HAS_FP_REG): Idem.
18360 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
18361 (sh_conditional_register_usage): Idem.
18362
3e8a33f9
JL
183632013-04-21 Jeff Law <law@redhat.com>
18364
18365 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
18366 (ssa_forward_propagate_and_combine): Use it.
18367
f38e1b0a
VM
183682013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18369
18370 * lra.c: Update the flow chart diagram.
18371
682303da
VM
183722013-04-19 Vladimir Makarov <vmakarov@redhat.com>
18373
18374 PR rtl-optimization/56847
18375 * lra-constraints.c (process_alt_operands): Discourage alternative
18376 with non-matche doffsettable memory constraint fro memory with
18377 known offset.
18378
f6b64c35
RB
183792013-04-19 Richard Biener <rguenther@suse.de>
18380
18381 PR tree-optimization/56982
18382 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
18383 function.
18384 * gimplify.c (gimplify_call_expr): Notice special calls.
18385 (gimplify_modify_expr): Likewise.
18386 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
18387 abnormal control flow receivers.
18388 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
18389 in the same way as cfun->has_nonlocal_labels.
18390 (gimple_purge_dead_abnormal_call_edges): Likewise.
18391 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
18392 receivers start a basic-block.
18393
01d8bf07
RB
183942013-04-19 Richard Biener <rguenther@suse.de>
18395
18396 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
18397 member ...
18398 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
18399 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
18400 (SLP_TREE_LOAD_PERMUTATION): Add.
18401 (vect_transform_slp_perm_load): Adjust prototype.
18402 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
18403 (vect_free_slp_instance): Likewise.
18404 (vect_create_new_slp_node): Likewise.
18405 (vect_supported_slp_permutation_p): Remove.
18406 (vect_slp_rearrange_stmts): Adjust.
18407 (vect_supported_load_permutation_p): Likewise. Inline
18408 vect_supported_slp_permutation_p here.
18409 (vect_analyze_slp_instance): Compute load permutations per
18410 slp node instead of per instance.
18411 (vect_get_slp_defs): Adjust.
18412 (vect_transform_slp_perm_load): Likewise.
18413 (vect_schedule_slp_instance): Remove redundant code.
18414 (vect_schedule_slp): Remove hack for PR56270, add it ...
18415 * tree-vect-stmts.c (vectorizable_load): ... here, do not
18416 CSE loads for SLP. Adjust.
18417
ede22fc3
GY
184182013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18419
18420 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
18421 spelling in two comments.
18422
67bc84fb
GY
184232013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
18424
18425 PR target/56797
18426 * config/arm/arm.c (load_multiple_sequence): Require SP
18427 as base register for loads if SP is in the register list.
18428
e248d83f
MJ
184292013-04-19 Martin Jambor <mjambor@suse.cz>
18430
18431 PR tree-optimization/56718
18432 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
18433 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
18434 and made public. Adjusted all callers.
18435 (ipa_intraprocedural_devirtualization): New function.
18436 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
18437 (ipa_intraprocedural_devirtualization): Likewise.
18438 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
18439
4891e8f8
RB
184402013-04-19 Richard Biener <rguenther@suse.de>
18441
18442 PR tree-optimization/57000
18443 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
18444
dad89f7c
TG
184452013-04-19 Terry Guo <terry.guo@arm.com>
18446
18447 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
18448 Replace with ...
18449 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
18450 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
18451 (cortex_m4_fmacs): Use new reservations.
18452 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
18453
72ea0d47
VM
184542013-04-18 Vladimir Makarov <vmakarov@redhat.com>
18455
f1e6512c 18456 PR rtl-optimization/56999
72ea0d47
VM
18457 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
18458 related code.
18459 (lra_coalesce): Remove split_origin_bitmap and related code.
18460 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
18461 ranges if necessary.
18462
780a5b71
UB
184632013-04-18 Uros Bizjak <ubizjak@gmail.com>
18464
18465 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
18466 New array.
18467 (ix86_expand_call): Remove clobbered_registers array and use
18468 x86_64_ms_sysv_extra_clobbered_registers instead.
18469 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
18470 Declare here.
18471 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
18472 predicate.
18473 * config/i386/i386.md (*call_rex64_ms_sysv): Use
18474 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
18475 (*call_value_rex64_ms_sysv): Ditto.
18476
6f5a366a
CC
184772013-04-18 Cary Coutant <ccoutant@google.com>
18478
18479 * dwarf2out.c (output_pubnames): Check die_perennial_p of
18480 parent instead of die_mark.
18481
475b8f37
DN
184822013-04-18 Diego Novillo <dnovillo@google.com>
18483
18484 * gimple.c (create_gimple_tmp): New.
18485 (get_expr_type): New.
18486 (build_assign): New.
18487 (build_type_cast): New.
18488 * gimple.h (enum ssa_mode): Define.
18489 (gimple_seq_set_location): New.
18490 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 18491 to use build_assign and build_type_cast.
475b8f37 18492
08940f33
RB
184932013-04-18 Richard Biener <rguenther@suse.de>
18494
18495 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
18496 handle negative step. Remove redundant checks.
18497 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
18498 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
18499 for negative step and grouped loads fail to vectorize.
18500
0e0f87d4
SB
185012013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18502
18503 * emit-rtl.c (reset_insn_used_flags): New function.
18504 (reset_all_used_flags): Use it.
18505 (verify_insn_sharing): New function.
18506 (verify_rtl_sharing): Fix verification for SEQUENCEs.
18507
4c445590
JJ
185082013-04-18 Jakub Jelinek <jakub@redhat.com>
18509
18510 PR tree-optimization/56984
18511 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
18512 and (x >> M) >= N don't register any assertion if N << M is the
18513 minimum value.
18514
6873ecab
SB
185152013-04-18 Steven Bosscher <steven@gcc.gnu.org>
18516
18517 * lower-subreg.c (resolve_simple_move): If called self-recursive,
18518 do not delete_insn insns that have not yet been emitted, only
18519 unlink them with remove_insn.
18520 * df-scan.c (df_insn_delete): Revert r197492.
18521
3ccb989e
SB
185222013-04-17 Steven Bosscher <steven@gcc.gnu.org>
18523
18524 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
18525 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
18526
185272013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
18528
18529 * config/arm/arm.md (movsicc_insn): Convert define_insn into
18530 define_insn_and_split.
18531 (and_scc,ior_scc,negscc): Likewise.
18532 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
18533
3ccb989e 185342013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
18535
18536 * config/arm/arm.c (use_return_insn): Return 0 for targets that
18537 can benefit from using a sequence of LDRD instructions in epilogue
18538 instead of a single LDM instruction.
18539
6d10a203
MLI
185402013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
18541
18542 PR 45688
18543 * doc/extend.texi: Fix typo.
18544
6983e6b5
RB
185452013-04-17 Richard Biener <rguenther@suse.de>
18546
18547 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
18548 (vect_build_slp_tree): ... here.
18549 (vect_build_slp_tree_1): Compute which stmts of the SLP group
18550 match. Remove special-casing of mismatched complex loads.
18551 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
18552 re-try the match with swapped commutative operands.
18553 (vect_supported_load_permutation_p): Remove special-casing of
18554 mismatched complex loads.
18555 (vect_analyze_slp_instance): Adjust.
18556
ef23e6a2
RB
185572013-04-17 Richard Biener <rguenther@suse.de>
18558
18559 PR rtl-optimization/56921
18560 * cfgloop.h (struct loop): Add simple_loop_desc member.
18561 (struct niter_desc): Mark with GTY(()).
18562 (simple_loop_desc): Do not use aux field but simple_loop_desc.
18563 * loop-iv.c (get_simple_loop_desc): Likewise.
18564 (free_simple_loop_desc): Likewise.
18565
18566 Revert
18567 2013-04-16 Richard Biener <rguenther@suse.de>
18568
18569 PR rtl-optimization/56921
18570 * loop-init.c (pass_rtl_move_loop_invariants): Add
18571 TODO_do_not_ggc_collect to todo_flags_finish.
18572 (pass_rtl_unswitch): Same.
18573 (pass_rtl_unroll_and_peel_loops): Same.
18574 (pass_rtl_doloop): Same.
18575
fc6f94f5
EB
185762013-04-17 Eric Botcazou <ebotcazou@adacore.com>
18577
18578 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
18579 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
18580 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
18581 references.
18582 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
18583 * tree-streamer.c (record_common_node): Adjust reference in comment.
18584
10a88311
TG
185852013-04-17 Terry Guo <terry.guo@arm.com>
18586
18587 * config/arm/cortex-m4.md: Add a new bypass.
18588
6d9b7208 185892013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
18590
18591 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
18592 New pattern.
18593 (*subs_<optab><mode>_multp2): New pattern.
18594 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18595 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
18596
6d9b7208 185972013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
18598
18599 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
18600 (*subs_mul_imm_<mode>): New pattern.
18601
18a6701e
DE
186022013-04-16 David Edelsohn <dje.gcc@gmail.com>
18603
18604 PR target/56948
18605 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
18606 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
18607 (vsx_movti_32bit): Change j->wa to O->wa.
18608
07c37b2f
RB
186092013-04-16 Richard Biener <rguenther@suse.de>
18610
18611 PR rtl-optimization/56921
18612 * loop-init.c (pass_rtl_move_loop_invariants): Add
18613 TODO_do_not_ggc_collect to todo_flags_finish.
18614 (pass_rtl_unswitch): Same.
18615 (pass_rtl_unroll_and_peel_loops): Same.
18616 (pass_rtl_doloop): Same.
18617
0e0f87d4 186182013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
18619
18620 * config/arm/arm.c (emit_multi_reg_push): New declaration
18621 for an existing function.
18622 (arm_emit_strd_push): New function.
18623 (arm_expand_prologue): Used here.
18624 (arm_emit_ldrd_pop): New function.
18625 (arm_expand_epilogue): Used here.
18626 (arm_get_frame_offsets): Update condition.
18627 (arm_emit_multi_reg_pop): Add a special case for load of a single
18628 register with writeback.
18629
5e8e2af4
UB
186302013-04-16 Uros Bizjak <ubizjak@gmail.com>
18631
18632 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
18633 description.
18634
9fd9ccf7
RB
186352013-04-16 Richard Biener <rguenther@suse.de>
18636
18637 PR tree-optimization/56756
18638 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
18639 (first_mem_ref_loc): New.
18640 (execute_sm): Place the load temporarily before a previous
18641 access instead of in the latch edge to ensure its SSA dependencies
18642 are defined at points dominating the load.
18643
96fba521
SB
186442013-04-16 Steven Bosscher <steven@gcc.gnu.org>
18645
4c8af858
SB
18646 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
18647 correct fix by moving header and footer insn to the footer of
18648 the merged basic block. Clear BB_END of the merged-away block.
18649
96fba521
SB
18650 PR middle-end/43631
18651 * emit-rtl.c (make_note_raw): New function.
18652 (link_insn_into_chain): New static inline function.
18653 (add_insn): Use it.
18654 (add_insn_before, add_insn_after): Factor insn chain linking code...
18655 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
18656 using link_insn_into_chain.
18657 (note_outside_basic_block_p): New helper function for emit_note_after
18658 and emit_note_before.
18659 (emit_note_after): Use nobb variant of add_insn_after if the note
18660 should not be contained in a basic block.
18661 (emit_note_before): Use nobb variant of add_insn_before if the note
18662 should not be contained in a basic block.
18663 (emit_note_copy): Use make_note_raw.
18664 (emit_note): Likewise.
18665 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
18666 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
18667 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
18668 the moved barrier the tail of the basic block it follows.
18669 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
18670
7b8265ba
JJ
186712013-04-15 Jakub Jelinek <jakub@redhat.com>
18672
18673 PR tree-optimization/56962
18674 * gimple-ssa-strength-reduction.c (record_increment): Only set
18675 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
18676 either rhs1 or rhs2 is equal to c->base_expr.
18677
5185d248
RB
186782013-04-15 Richard Biener <rguenther@suse.de>
18679
18680 PR tree-optimization/56933
18681 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
18682 member.
18683 (GROUP_READ_WRITE_DEPENDENCE): Remove.
18684 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
18685 * tree-vect-data-refs.c (vect_analyze_group_access): Move
18686 dependence check ...
18687 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
18688 ... here.
18689 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
18690 GROUP_READ_WRITE_DEPENDENCE.
18691
a24243a0
AK
186922013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18693
18694 * emit-rtl.c (reset_all_used_flags): New function.
18695 (verify_rtl_sharing): Call reset_all_used_flags before and after
18696 performing the checks.
18697
1c50eada
KT
186982013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18699
18700 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
18701 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
18702 * config/arm/constraints.md (De): New constraint.
18703 * config/arm/neon.md (anddi3_neon): Delete.
18704 (neon_vand<mode>): Expand to standard anddi3 pattern.
18705 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
18706 Move earlier in the file.
18707 (neon_inv_logic_op2): Likewise.
18708 (arm_anddi_operand_neon): New predicate.
18709
e927b6ad
RO
187102013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18711
18712 * configure.ac (gcc_cv_ld_as_needed): Set
18713 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
18714 Use -z ignore, -z record on *-*-solaris2*.
18715 (HAVE_LD_AS_NEEDED): Update comment.
18716 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
18717 * configure: Regenerate.
18718 * config.in: Regenerate.
18719 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
18720 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
18721 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
18722 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
18723 equivalents. Fix markup.
18724 * doc/tm.texi: Regenerate.
18725
e0ea8797
AH
187262013-04-15 Andrew Hsieh <andrewhsieh.google.com>
18727
18728 * config/i386/i386.opt: New option mstack-protector-guard=.
18729 * config/i386/i386-opts.h: Add enum stack_protector_guard.
18730 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
18731 TARGET_SSP_TLS_GUARD.
18732 * config/i386/i386.c (ix86_option_override_internal): Set
18733 ix86_stack_protector_guard.
18734 * config/i386/i386.md (stack_protect_set): Enable for
18735 TARGET_SSP_TLS_GUARD only.
18736 (stack_protect_set_<mode>): Ditto.
18737 (stack_protect_test): Ditto.
18738 (stack_protect_test_<mode>): Ditto.
18739 * doc/invoke.texi (i386 Option): Document.
18740
811b72f9
EB
187412013-04-15 Eric Botcazou <ebotcazou@adacore.com>
18742
18743 PR target/56890
18744 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
18745 (S_MODES): Set H_MODE bit.
18746 (SF_MODES): Set only S_MODE and SF_MODE bits.
18747 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
18748 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
18749 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
18750 <MODE_FLOAT>: Likewise.
18751
5529fdd6
JY
187522013-04-15 Joey Ye <joey.ye@arm.com>
18753
18754 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
18755
517b1da2
JY
187562013-04-15 Joey Ye <joey.ye@arm.com>
18757
18758 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
18759 for real far jump.
18760 (thumb_far_jump_used_p): Count instruction size and set
18761 far_jump_used.
18762
01007ae0
EB
187632013-04-14 Eric Botcazou <ebotcazou@adacore.com>
18764
18765 * reorg.c (fill_simple_delay_slots): Reindent block of code.
18766 * resource.c (mark_target_live_regs): Reformat conditional block.
18767
c46f6580
SB
187682013-04-13 Steven Bosscher <steven@gcc.gnu.org>
18769
18770 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
18771 notes, they are emitted only just before final.
18772 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
18773
1f397f45
SB
187742013-04-13 Steven Bosscher <steven@gcc.gnu.org>
18775
18776 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
18777 * cfgrtl.c (delete_insn): Call it here instead.
18778 * lra-spills.c (lra_final_code_change): Use delete_insn.
18779 * haifa-sched.c (sched_remove_insn): Likewise.
18780 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
18781 returning to the nop pool.
18782 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
18783 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
18784
58a51369
SB
187852013-04-12 Steven Bosscher <steven@gcc.gnu.org>
18786
18787 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
18788 * doc/tm.texi: Regenerated.
18789
33159866
UB
187902013-04-12 Uros Bizjak <ubizjak@gmail.com>
18791
18792 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
18793 QImode checks.
18794
226e378f
SB
187952013-04-12 Steven Bosscher <steven@gcc.gnu.org>
18796
18797 * df-core.c (df_find_def): Compare register numbers.
18798 (df_find_use): Likewise.
18799
fafb9b18
VM
188002013-04-12 Vladimir Makarov <vmakarov@redhat.com>
18801
18802 PR target/56903
18803 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
18804 lra_in_progress for return.
18805
9a946fd6
GY
188062013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
18807
18808 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
18809 define_insn into define_insn_and_split and emit movsicc patterns.
18810
41b83758
GY
188112013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
18812
18813 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
18814
d3afd9aa
RB
188152013-04-12 Richard Biener <rguenther@suse.de>
18816
18817 * tree-pass.h (TODO_do_not_ggc_collect): New.
18818 * passes.c (execute_one_ipa_transform_pass): Honor
18819 TODO_do_not_ggc_collect.
18820 (execute_one_pass): Likewise.
18821
18822 Revert
18823 2013-04-10 Richard Biener <rguenther@suse.de>
18824
18825 * passes.c (init_optimization_passes): Remove reload pass.
18826 * ira.c (do_reload): Merge into ...
18827 (ira): ... this.
18828 (rest_of_handle_reload): Remove.
18829 (pass_reload): Likewise.
18830 * config/i386/i386.c (ix86_option_override): Refer to ira instead
18831 of reload for vzeroupper pass placement.
18832
06f9b387
JJ
188332013-04-12 Jakub Jelinek <jakub@redhat.com>
18834
18835 PR tree-optimization/56918
18836 PR tree-optimization/56920
18837 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
18838 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
18839 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
18840 use wide_mul_with_sign method.
18841
953094d2
RB
188422013-04-12 Richard Biener <rguenther@suse.de>
18843
18844 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
18845 not be considered a gimple constant.
18846
bb506982
MG
188472013-04-12 Marc Glisse <marc.glisse@inria.fr>
18848
18849 * fold-const.c (const_binop): Handle vector shifts by a scalar.
18850 (fold_binary_loc): Call const_binop also for mixed vector-scalar
18851 operations.
18852
4b84d650
JJ
188532013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
18854 Jakub Jelinek <jakub@redhat.com>
18855
18856 * opts.c: Include diagnostic-color.h.
18857 (common_handle_option): Handle OPT_fdiagnostics_color_.
18858 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
18859 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
18860 (diagnostic-color.o): New.
18861 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
18862 (diagnostic_color_rule): New enum.
18863 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
18864 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
18865 the location string.
18866 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
18867 either NULL, or color kind.
18868 * diagnostic-color.c: New file.
18869 * diagnostic-color.h: New file.
18870 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
18871 arguments.
18872 * doc/invoke.texi (-fdiagnostics-color): Document.
18873 * pretty-print.h (pp_show_color): Define.
18874 (struct pretty_print_info): Add show_color field.
18875 * diagnostic.c: Include diagnostic-color.h.
18876 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
18877 macros. Colorize error:, warning: etc. strings and also the location
18878 string.
18879 (diagnostic_show_locus): Colorize the caret line.
18880 * pretty-print.c: Include diagnostic-color.h.
18881 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
18882 inside of %< %> quotes or quoted through q format modifier.
18883
067a1e71
AK
188842013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18885
33159866 18886 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 18887
33159866 188882013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
18889
18890 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
18891 code in CC_NZ mode.
18892 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
18893 pattern.
18894
7b55f98f
MP
188952013-04-11 Marek Polacek <polacek@redhat.com>
18896
18897 PR tree-optimization/48184
33159866 18898 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 18899
966b587e
EB
189002013-04-11 Eric Botcazou <ebotcazou@adacore.com>
18901
18902 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
18903 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
18904 (skip_simple_arithmetic): Tidy up.
18905 * tree.h (skip_simple_constant_arithmetic): Declare.
18906
33159866 189072013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
18908
18909 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
18910
1d42c1ec
RB
189112013-04-11 Richard Biener <rguenther@suse.de>
18912
18913 * tree-vect-loop.c (get_initial_def_for_induction): Properly
18914 generate vector constants.
18915
4ba5ea11
RB
189162013-04-11 Richard Biener <rguenther@suse.de>
18917
18918 PR tree-optimization/56878
18919 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
18920 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
18921 New function.
18922 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
18923 Prefer to align the DR with the most invariant base address.
18924
f0defe58
SKS
189252013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18926
18927 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
18928 comment.
18929
d07458be
JG
189302013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
18931
18932 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
18933 floating-point vector comparisons against 0.
18934
146b8692
JJ
189352013-04-11 Jakub Jelinek <jakub@redhat.com>
18936
18937 PR tree-optimization/56899
18938 * fold-const.c (extract_muldiv_1): Apply distributive law
18939 only if TYPE_OVERFLOW_WRAPS (ctype).
18940
b8578ff7
BC
189412013-04-11 Bin Cheng <bin.cheng@arm.com>
18942
18943 PR target/56124
18944 * ira-costs.c (scan_one_insn): Check whether the source rtx of
18945 loading has side effect.
18946
0ea8a6f9
SB
189472013-04-10 Steven Bosscher <steven@gcc.gnu.org>
18948
18949 * config/sparc/sparc.c: Include tree-pass.h.
18950 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
18951 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
18952 head of file. Change return type. Split off gate function.
18953 (sparc_gate_work_around_errata): New function.
18954 (pass_work_around_errata): New pass definition.
18955 (insert_pass_work_around_errata) New pass insert definition to
18956 insert pass_work_around_errata just after delayed-branch scheduling.
18957 (sparc_option_override): Insert the pass.
18958 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
18959
42e37616
DM
189602013-04-10 David S. Miller <davem@davemloft.net>
18961
89deeb3b
DM
18962 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
18963 or -mcpu=hypersparc.
18964
42e37616
DM
18965 * target.def (cstore_mode): New hook.
18966 * target.h: Include insn-codes.h
18967 * targhooks.c: Likewise.
18968 (default_cstore_mode): New function.
18969 * targhooks.h: Declare it.
18970 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
18971 * doc/tm.texi: Rebuild.
18972 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
18973 target hook, rather than inspecting the insn_data.
18974 * config/sparc/sparc.c (sparc_cstore_mode): New function.
18975 (TARGET_CSTORE_MODE): Redefine.
18976 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
18977 result patterns.
18978 * config/sparc/predicates.md (cstore_result_operand): New special
18979 predicate.
18980 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
18981 Use it for operand 0.
18982 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
18983 (*snesi_special): Likewise.
18984 (*snesi_zero): Likewise.
18985 (*seqsi_zero): Likewise.
18986 (*sltu_insn): Likewise.
18987 (*sgeu_insn): Likewise.
18988 (*seqdi_special): Make operand 0 and comparison operation be of
18989 DImode.
18990 (*snedi_special): Likewise.
18991 (*snedi_special_vis3): Likewise.
18992 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
18993 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
18994 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
18995 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
18996 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
18997 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
18998 (*sltu_extend_sp64): Likewise.
18999 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
19000 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
19001 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
19002 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
19003 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
19004
95ca411e
YZ
190052013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
19006
19007 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
19008 (aarch64_start_file): Use the new function.
19009
6782438d 190102013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 19011 Jason Merrill <jason@redhat.com>
6782438d
SKS
19012
19013 * common.opt: Add -gdwarf.
19014 * opts.c (common_handle_option): Handle it.
19015 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
19016
bb313b93
RB
190172013-04-10 Richard Biener <rguenther@suse.de>
19018
19019 * passes.c (execute_todo): Do not call ggc_collect conditional here.
19020 (execute_one_ipa_transform_pass): But unconditionally here.
19021 (execute_one_pass): And here.
19022 (init_optimization_passes): Remove reload pass.
19023 * tree-pass.h (TODO_ggc_collect): Remove.
19024 (pass_reload): Likewise.
19025 * ira.c (do_reload): Merge into ...
19026 (ira): ... this.
19027 (rest_of_handle_reload): Remove.
19028 (pass_reload): Likewise.
19029 * config/i386/i386.c (ix86_option_override): Refer to ira instead
19030 of reload for vzeroupper pass placement.
19031 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
19032 and todo_flags_finish of all passes.
19033
793d9a16
RB
190342013-04-10 Richard Biener <rguenther@suse.de>
19035
19036 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
19037 first_const_oprnd field, rename first_def_type to first_op_type.
19038 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
19039 (vect_get_and_check_slp_defs): Always use the type of the
19040 operand. Allow mixed vect_external_def, vect_constant_def types.
19041 (vect_get_constant_vectors): Handle mixed vect_external_def,
19042 vect_constant_def types.
19043
12211b99 190442013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
19045
19046 PR tree-optimization/55524
19047 * tree-ssa-math-opts.c
19048 (convert_mult_to_fma): Don't use an fms construct
19049 when we don't have an fms operation, but fnma, and it looks
19050 likely that we'll be able to use the latter.
19051
12211b99 190522013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
19053
19054 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
19055 function.
19056 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
19057 inline fail caused by overwritable functions.
19058
34ab4a5b
CJW
190592013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
19060
19061 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
19062 unnecessary bits in the constant power of two case.
19063
abf9bfbc
RB
190642013-04-10 Richard Biener <rguenther@suse.de>
19065
19066 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
19067 broken code swapping operands.
19068 (vect_build_slp_tree): Do not compute load permutations here.
19069 (vect_analyze_slp_instance): Compute load permutations here,
19070 after building the SLP tree.
19071
f408477e
CB
190722013-04-09 Christian Bruel <christian.bruel@st.com>
19073
19074 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
19075 of next/prev_real_insn.
19076
5ac42672
JH
190772013-04-09 Jan Hubicka <jh@suse.cz>
19078
abf9bfbc
RB
19079 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
19080 Drop aliased parameter.
5ac42672
JH
19081 (function_and_variable_visibility): Do not handle alias pairs.
19082 * cgraph.c (varpool_externally_visible_p): Update prototype.
19083 * varpool.c (varpool_add_new_variable): Update.
19084
5017f1d2
KT
190852013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19086
19087 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
19088
48eecbee
SB
190892013-04-09 Steven Bosscher <steven@gcc.gnu.org>
19090
a949cf1c
SB
19091 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
19092
48eecbee
SB
19093 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
19094
75ef8e3d
MP
190952013-04-09 Marek Polacek <polacek@redhat.com>
19096
19097 PR tree-optimization/48762
33159866 19098 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 19099
23847df4
RB
191002013-04-09 Richard Biener <rguenther@suse.de>
19101
19102 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
19103 dealing with cost.
19104 (vect_build_slp_tree): Likewise.
19105 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
19106 calculating the cost of a SLP instance.
19107 (vect_analyze_slp_instance): Use it from here, after building
19108 the SLP tree.
19109
ea3a0fde
JJ
191102013-04-09 Jakub Jelinek <jakub@redhat.com>
19111
19112 PR middle-end/56883
19113 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
19114 expand_omp_for_static_chunk): Use simple_p = true in
19115 force_gimple_operand_gsi calls when assigning to addressable decls.
19116
a32dfe9d
JL
191172013-04-09 Jeff Law <law@redhat.com>
19118
19119 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
19120 when the boolean was created by converting a wider object which
19121 had a boolean range.
19122
d755c7ef
RB
191232013-04-09 Richard Biener <rguenther@suse.de>
19124
19125 * tree-vectorizer.h (slp_void_p): Remove.
19126 (slp_tree): Typedef before _slp_tree declaration.
19127 (struct _slp_tree): Use a vector of slp_tree as children.
19128 (vect_get_place_in_interleaving_chain): Remove.
19129 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
19130 Move ...
19131 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
19132 and make static.
19133 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
19134 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
19135 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
19136 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
19137 Use slp_node instead of slp_void_p and adjust.
19138
3d741091
RB
191392013-04-09 Richard Biener <rguenther@suse.de>
19140
19141 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
19142 work that is not necessary.
19143
39307ba7
JJ
191442013-04-09 Jakub Jelinek <jakub@redhat.com>
19145
19146 PR tree-optimization/56854
19147 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
19148 forward into clobber stmts if it would change MEM_REF lhs into
19149 non-MEM_REF.
19150
343881fd
MK
191512013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
19152
19153 * tree.c (type_hash_lookup, type_hash_add): Make static.
19154 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
19155
3922658a
RB
191562013-04-09 Richard Biener <rguenther@suse.de>
19157
19158 * tree.h (unsave_expr_now): Remove.
19159 * tree-inline.c (mark_local_for_remap_r): Remove.
19160 (unsave_expr_1): Likewise.
19161 (unsave_r): Likewise.
19162 (unsave_expr_now): Likewise.
19163 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
19164 (propagate_tree_value): Likewise.
19165
9fb6b620
SB
191662013-04-08 Steven Bosscher <steven@gcc.gnu.org>
19167
19168 * doc/rtl.texi (sequence): Rewrite documentation to match the
19169 current use of SEQUENCE rtl objects.
19170 * rtl.def (SEQUENCE): Likewise.
19171
19172 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
19173 Update documentation.
19174 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
19175 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
19176
19177 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
19178
8ddb5a29
TJ
191792013-04-08 Teresa Johnson <tejohnson@google.com>
19180
19181 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
19182 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 19183 methods.
8ddb5a29
TJ
19184 (estimate_edge_size_and_time): Add comment to suggest using rounding
19185 methods.
19186 (estimate_node_size_and_time): Ditto.
19187 (remap_edge_change_prob): Use helper rounding divide methods.
19188 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
19189 (gimple_mod_pow2_value_transform): Ditto.
19190 (gimple_mod_subtract_transform): Ditto.
19191 (gimple_ic_transform): Ditto.
19192 (gimple_stringops_transform): Ditto.
19193 * stmt.c (conditional_probability): Ditto.
19194 (emit_case_dispatch_table): Ditto.
19195 * lto-cgraph.c (merge_profile_summaries): Ditto.
19196 * tree-optimize.c (execute_fixup_cfg): Ditto.
19197 * cfgcleanup.c (try_forward_edges): Ditto.
19198 * cfgloopmanip.c (scale_loop_profile): Ditto.
19199 (loopify): Ditto.
19200 (duplicate_loop_to_header_edge): Ditto.
19201 (lv_adjust_loop_entry_edge): Ditto.
19202 * tree-vect-loop.c (vect_transform_loop): Ditto.
19203 * profile.c (compute_branch_probabilities): Ditto.
19204 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
19205 * lto-streamer-in.c (input_cfg): Ditto.
19206 * gimple-streamer-in.c (input_bb): Ditto.
19207 * ipa-cp.c (update_profiling_info): Ditto.
19208 (update_specialized_profile): Ditto.
19209 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
19210 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 19211 rounding methods.
8ddb5a29
TJ
19212 * sched-rgn.c (compute_dom_prob_ps): Ditto.
19213 (compute_trg_info): Ditto.
19214 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
19215 (purge_dead_edges): Ditto.
19216 * loop-unswitch.c (unswitch_loop): Ditto.
19217 * cgraphclones.c (cgraph_clone_edge): Ditto.
19218 (cgraph_clone_node): Ditto.
19219 * tree-inline.c (copy_bb): Ditto.
19220 (copy_edges_for_bb): Ditto.
19221 (initialize_cfun): Ditto.
19222 (copy_cfg_body): Ditto.
19223 (expand_call_inline): Ditto.
19224
661e6bd7
KT
192252013-04-08 Kai Tietz <ktietz@redhat.com>
19226
19227 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
19228 TARGET_CYGWIN64 by TARGET_64BIT.
19229
105766f3
JR
192302013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19231
19232 * config/epiphany/epiphany.md (GPR_1): New constant.
19233 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
19234 * config/epiphany/epiphany.c (gen_compare_reg):
19235 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
19236 is already in place.
19237 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
19238 Don't require being called during rtl expansion; If y operlaps r0,
19239 return 0.
19240 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
19241 (epiphany_expand_epilogue): Likewise.
19242
8afab237
JR
19243 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
19244 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 19245 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 19246
fa7707d6
JR
19247 * config/epiphany/constraints.md (CnL): New constraint.
19248 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
19249 * config/epiphany/predicates.md (add_operand): Allow 1024.
19250
5138e18d
JR
19251 * config/epiphany/epiphany.md (logical_op): New code iterator.
19252 (op_mnc): New code attribute.
19253 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
19254 (mov_f+1, mov_f+2): New peephole2 patterns.
19255
2ccc703d
JR
19256 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
19257 (cstoresi4): Also allow re-use of zero result when doing a NE
19258 comparison to a non-zero operand.
aefb0819 19259 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 19260
093ac0a5
JR
19261 * config/epiphany/epiphany.md (<insn_opname>v2si3):
19262 Use gen_addsi3_i / gen_subsi3_i.
19263
f223bb13
JJ
192642013-04-08 Jakub Jelinek <jakub@redhat.com>
19265
19266 PR c++/34949
19267 PR c++/50243
19268 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
19269 contain anything but clobbers, at most one __builtin_stack_restore,
19270 optionally debug stmts and final resx, and if it has at least one
19271 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
19272 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
19273 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
19274 which isn't defaut definition, remove them.
19275 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
19276 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
19277 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
19278 with MEM_REF LHS with SSA_NAME address.
19279
4481581f
JL
192802013-04-08 Jeff Law <law@redhat.com>
19281
19282 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 19283
451dabda
RB
192842013-04-08 Richard Biener <rguenther@suse.de>
19285
19286 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
19287 extra newline.
19288 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
19289 determined vector type.
19290 (vect_analyze_data_refs): Likewise.
19291 (vect_get_new_vect_var): Adjust.
19292 (vect_create_destination_var): Preserve SSA name versions.
19293 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
19294 not dump anything here.
19295
3b088b47
JR
192962013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
19297
19298 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
19299 Add member lr_slot_known.
19300 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
19301 if necessary.
19302 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
19303 Remove code that sets lr_slot_offset according to what a previous
19304 version of epiphany_emit_save_restore used to do.
19305 (epiphany_emit_save_restore): When doing an lr save or restore,
19306 set/verify lr_slot_known and lr_slot_offset.
19307
d8484d41
XQ
193082013-04-08 Xinyu Qi <xyqi@marvell.com>
19309
33159866
UB
19310 PR target/54338
19311 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
19312 in ALL_REGS.
19313
481be1c4
RB
193142013-04-08 Richard Biener <rguenther@suse.de>
19315
19316 * alias.c (find_base_term): Fix thinko in previous change.
19317
401f3a81
JJ
193182013-04-08 Jakub Jelinek <jakub@redhat.com>
19319
19320 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
19321 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
19322 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
19323 if possible to compute val.
19324 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
19325 For QImode integers don't require anything about precision. Use
19326 const_with_all_bytes_same to find out if the constant doesn't have
19327 repeated bytes in it.
19328
03ed99a8
AK
193292013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19330
19331 * config/s390/s390.c (s390_expand_insv): Only accept insertions
19332 within mode size.
19333
781b2e62
MP
193342013-04-08 Marek Polacek <polacek@redhat.com>
19335
19336 PR rtl-optimization/48182
19337 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
19338 value to 1.
19339
27e430a2
JDA
193402013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19341
19342 PR target/55487
19343 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
19344 nuses, make sure we have a label.
19345
4902aa64
BS
193462013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19347
19348 PR target/56843
19349 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
19350 (rs6000_emit_swdiv_low_precision): Remove.
19351 (rs6000_emit_swdiv): Rewrite to handle between one and four
19352 iterations of Newton-Raphson generally; modify required number of
19353 iterations for some cases.
19354 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
19355
7bca81dc
SB
193562013-04-05 Steven Bosscher <steven@gcc.gnu.org>
19357
19358 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
19359 set-but-unused variable.
19360
19361 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
19362 basic blocks of released function bodies garbage-collectable.
19363
19364 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
19365 (struct rtl_opt_pass): Add TODO_df_finish.
19366
19367 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
19368
4542a38a
GY
193692013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19370
19371 * config/arm/constraints.md (q): New constraint.
19372 * config/arm/ldrdstrd.md: New file.
19373 * config/arm/arm.md (ldrdstrd.md) New include.
19374 (arm_movdi): Use "q" instead of "r" constraint
19375 for double-word memory access.
19376 (movdf_soft_insn): Likewise.
19377 * config/arm/vfp.md (movdi_vfp): Likewise.
19378 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 19379 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
19380 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
19381 (mem_ok_for_ldrd_strd): Likewise.
19382 (output_move_double): Update assertion.
19383
2385b218
GY
193842013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19385
19386 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
19387
75fe1cb5
GY
193882013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19389
19390 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
19391 define_insn_and_split.
19392 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
19393
dd660e8e
GY
193942013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19395
19396 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
19397 define_insn_and_split.
33159866 19398 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
19399 (shiftsi3_compare): New pattern.
19400 (rrx): New pattern.
19401 * config/arm/unspecs.md (UNSPEC_RRX): New.
19402
045e472c
GY
194032013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19404
19405 * config/arm/arm.md (negdi_extendsidi): New pattern.
19406 (negdi_zero_extendsidi): Likewise.
19407
3f3bf1a8
GY
194082013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19409
19410 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
19411 define_insn_and_split.
19412 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
19413 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
19414
b0b49556
GY
194152013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19416
19417 * config/arm/arm.md (arm_subdi3): Convert define_insn into
19418 define_insn_and_split.
19419 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
19420 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
19421
d633dd84
GY
194222013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19423
19424 * config/arm/arm.md (subsi3_carryin): New pattern.
19425 (subsi3_carryin_const): Likewise.
19426 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
19427 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
19428
f4499066
GY
194292013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19430
19431 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
19432
ceef6fd9
GY
194332013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
19434
19435 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 19436 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 19437
ddbdd8a7
KT
194382013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19439
19440 * config/arm/arm.c (arm_expand_builtin): Change fcode
19441 type to unsigned int.
19442
8456d78a
RR
194432013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19444
19445 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
19446
526c230f
ILT
194472013-04-04 Ian Lance Taylor <iant@google.com>
19448
33159866
UB
19449 * doc/standards.texi (Standards): The Go frontend supports the Go 1
19450 language standard.
526c230f 19451
3cfbe04d
SB
194522013-04-04 Steven Bosscher <steven@gcc.gnu.org>
19453
19454 PR middle-end/56729
19455 * df-scan.c (df_insn_delete): Disable failing assert.
19456
dfa3f8d0
KT
194572013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19458
19459 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
19460 New function prototype.
19461 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
19462 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
19463 (arm_builtin_vectorized_function): New function.
19464
f7837758
KT
194652013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19466
19467 * config/arm/arm_neon_builtins.def: New file.
19468 * config/arm/arm.c (neon_builtin_data): Move contents to
19469 arm_neon_builtins.def.
19470 (enum arm_builtins): Include neon builtin definitions.
19471 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 19472 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 19473
39c1b6db
MP
194742013-04-04 Marek Polacek <polacek@redhat.com>
19475
19476 PR tree-optimization/48186
19477 * predict.c (maybe_hot_frequency_p): Return false if
19478 HOT_BB_FREQUENCY_FRACTION is 0.
19479 (cgraph_maybe_hot_edge_p): Likewise.
19480
314f64eb
RB
194812013-04-04 Richard Biener <rguenther@suse.de>
19482
19483 PR tree-optimization/56826
19484 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
19485 more accurately.
19486
51a905b2
RB
194872013-04-04 Richard Biener <rguenther@suse.de>
19488
19489 PR tree-optimization/56213
19490 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 19491 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 19492
f1bf4f3a
RB
194932013-04-04 Richard Biener <rguenther@suse.de>
19494
19495 PR tree-optimization/56837
19496 * tree-loop-distribution.c (classify_partition): For non-zero
19497 values require that the value has the same precision as its
19498 mode to be useful as memset value.
19499
0bca7ded
NC
195002013-04-03 Nick Clifton <nickc@redhat.com>
19501
33159866 19502 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
19503 (fmssf4): Use fmsf.s on E3V5 architectures.
19504 (fnmasf4): Use fnmaf.s on E3V5 architectures.
19505 (fnmssf4): Use fnmsf.s on E3V5 architectures.
19506
b4019227
JL
195072013-04-03 Jeff Law <law@redhat.com>
19508
19509 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
19510 (lra-eliminations.o): Likewise.
19511
f57ddb5b
TJ
195122013-04-03 Teresa Johnson <tejohnson@google.com>
19513
19514 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 19515 compute_working_sets here from profile.c.
f57ddb5b 19516 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
19517 (gcov_working_set_t): Moved typedef here from basic-block.h
19518 (compute_working_set): Declare.
f57ddb5b
TJ
19519 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
19520 (get_working_sets): Renamed from compute_working_set,
33159866 19521 replace most of body with call to new compute_working_sets.
f57ddb5b 19522 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
19523 to get_working_sets.
19524 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 19525 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 19526 to get_working_sets.
f57ddb5b
TJ
19527 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
19528 * gcov-dump.c (dump_working_sets): New function.
19529
12211b99 195302013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
19531
19532 * hwint.c (sext_hwi, zext_hwi): New functions.
19533 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
19534 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
19535 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
19536 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
19537 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
19538 (sext_hwi, zext_hwi): New functions.
0bca7ded 19539
be672e08
JL
195402013-04-03 Jeff Law <law@redhat.com>
19541
19542 PR tree-optimization/56799
33159866
UB
19543 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
19544 back test for widening conversion erroneously dropped in prior change.
be672e08 19545
9d821fa5
KT
195462013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19547
19548 PR target/56809
19549 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
19550 instead of next_real_insn.
19551
71c581e7
MP
195522013-04-03 Marek Polacek <polacek@redhat.com>
19553
19554 PR sanitizer/55702
33159866 19555 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 19556
4a32ef80
KT
195572013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19558
19559 PR target/56809
19560 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
19561 next_real_insn.
19562 (thumb1_output_casesi): Likewise.
19563 (thumb2_output_casesi): Likewise.
19564
1b2253d4
RB
195652013-04-03 Richard Biener <rguenther@suse.de>
19566
19567 PR tree-optimization/56817
19568 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
19569 Split out ...
19570 (tree_unroll_loops_completely_1): ... new function to manually
19571 walk the loop tree, properly defering outer loops of unrolled
19572 loops to later iterations.
19573
38000232
MG
195742013-04-03 Marc Glisse <marc.glisse@inria.fr>
19575
19576 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
19577 (vectorizable_load): Likewise.
19578 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
19579 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
19580
3fa35298
MG
195812013-04-03 Marc Glisse <marc.glisse@inria.fr>
19582
19583 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
19584 BIT_FIELD_REF.
19585
b3d45ff0
UW
195862013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19587
19588 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
19589
ec9202a8
BC
195902013-04-03 Bin Cheng <bin.cheng@arm.com>
19591
19592 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
19593
6805bd36
MG
195942013-04-03 Marc Glisse <marc.glisse@inria.fr>
19595
19596 PR tree-optimization/56790
33159866
UB
19597 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
19598 folding.
6805bd36 19599
da694a77
MG
196002013-04-03 Marc Glisse <marc.glisse@inria.fr>
19601
19602 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
19603 Handle VEC_MERGE.
19604 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
19605 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
19606 equal arguments.
19607
4e7d7b3d
JJ
196082013-04-03 Jakub Jelinek <jakub@redhat.com>
19609
19610 PR c/19449
19611 * tree.h (force_folding_builtin_constant_p): New decl.
19612 * builtins.c (force_folding_builtin_constant_p): New variable.
19613 (fold_builtin_constant_p): Fold immediately also if
19614 force_folding_builtin_constant_p.
19615
e6c9d234
RB
196162013-04-03 Richard Biener <rguenther@suse.de>
19617
19618 PR tree-optimization/56812
19619 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
19620 DRs of the same interleaving chain are independent.
19621
984d07dd
JM
196222013-04-02 Jason Merrill <jason@redhat.com>
19623
19624 * gdbinit.in (pbb): Use debug fn.
19625
622849c9
LC
196262013-04-02 Lawrence Crowl <crowl@google.com>
19627
19628 * sese.h (struct ivtype_map_elt_s): Remove unused.
19629 (extern debug_ivtype_map): Remove unused.
19630 (extern eq_ivtype_map_elts): Remove unused.
19631 * sese.c (debug_ivtype_map): Removed unused.
19632 (debug_ivtype_map_1): Removed unused.
19633 (debug_ivtype_elt): Remove unused.
19634 (eq_ivtype_map_elts): Remove unused.
19635
19636
82c0e1a0
KT
196372013-04-02 Kai Tietz <ktietz@redhat.com>
19638
19639 PR target/52790
19640 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
19641 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
19642 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
19643 function.
82c0e1a0
KT
19644 (legitimize_pe_coff_symbol): Likewise.
19645 (is_imported_p): New helper-function.
19646 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
19647 for Windows x64 targets.
19648 (ix86_expand_prologue): Optimize for pe-coff targets.
19649 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
19650 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
19651 medium/large code-model.
19652 (legitimize_pic_address): Likewise.
19653 (legitimize_tls_address): Likewise.
19654 (ix86_expand_call): Likewise.
19655 (x86_output_mi_thunk): Likewise.
19656 (get_dllimport_decl): Add new beimport argument.
19657 (construct_plt_address): Don't assert for x64 pe-coff targets.
19658 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
19659 targets.
19660 (SYMBOL_FLAG_STUBVAR): New macro.
19661 (SYMBOL_REF_STUBVAR_P): Likewise.
19662 * config/i386/winnt.c (stub_list): New structure.
19663 (stub_head): New local variable.
19664 (i386_pe_record_stub): New function.
19665 (i386_pe_file_end): Emit refptr-stubs.
19666
5d751b0c
JJ
196672013-04-02 Jakub Jelinek <jakub@redhat.com>
19668
09bb4c99
JJ
19669 PR rtl-optimization/56745
19670 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
19671 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
19672
a1d8947a
JJ
19673 PR c++/34949
19674 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
19675 and both of them are MEM_REFs, just compare first argument for
19676 equality and attempt to deal even with differing offsets.
19677
5d751b0c
JJ
19678 PR c++/34949
19679 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
19680 of gimple_clobber_p to be MEM_REF.
19681 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
19682 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
19683 after gimplification.
19684 * asan.c (get_mem_ref_of_assignment): Don't instrument
19685 gimple_clobber_p stmts.
19686 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
19687 gimple_clobber_p stmt if they have MEM_REF lhs and
19688 are dead because of another gimple_clobber_p stmt.
19689 * tree-ssa-live.c (clear_unused_block_pointer): Treat
19690 gimple_clobber_p stmts like debug stmts.
19691 (remove_unused_locals): Remove clobbers with MEM_REF lhs
19692 that refer to unused VAR_DECLs or uninitialized values.
19693 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
19694 gimple_clobber_p stmts if they refer to removed parameters.
19695 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
19696 formatting.
19697
e594716a
UB
196982013-04-02 Uros Bizjak <ubizjak@gmail.com>
19699
19700 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
19701 using SWI48 mode attribute.
19702
7a80735b
WM
197032013-04-02 Wei Mi <wmi@google.com>
19704
19705 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
19706 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
19707 *<rotate_insn><mode>3_mask in i386.md.
19708
f423a9e4
AI
197092013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
19710
19711 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
19712
90eb75f2
RB
197132013-04-02 Richard Biener <rguenther@suse.de>
19714
19715 PR tree-optimization/56778
19716 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19717 Runtime alias tests are not supported for gather loads.
19718 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
19719 stmts referenced from SSA operands before updating SSA form.
19720
d8c69a92
IC
197212013-04-02 Ian Caulfield <ian.caulfield@arm.com>
19722 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19723
19724 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
19725 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
19726 * config/arm/cortex-a53.md: New file.
19727 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
19728 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
19729 * config/arm/arm.c (arm_issue_rate): Likewise.
19730 * config/arm/arm-tune.md: Regenerate
19731 * config/arm/arm-tables.opt: Regenerate.
19732 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 19733
239eb04c
ZC
197342013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
19735
19736 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
19737 non-static link.
19738
c902d3c8
SN
197392013-04-02 Sofiane Naci <sofiane.naci@arm.com>
19740
d8c69a92
IC
19741 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
19742 scalar load/store operations using B/H registers.
c902d3c8
SN
19743 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
19744
051d0e2f
SN
197452013-04-02 Sofiane Naci <sofiane.naci@arm.com>
19746
19747 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
19748 scalar move.
19749 * config/aarch64/aarch64.c
19750 (aarch64_simd_scalar_immediate_valid_for_move): New.
19751 * config/aarch64/aarch64-protos.h
19752 (aarch64_simd_scalar_immediate_valid_for_move): New.
19753 * config/aarch64/constraints.md (Dh, Dq): New.
19754 * config/aarch64/iterators.md (hq): New.
19755
0ee1e3d9
EB
197562013-04-02 Eric Botcazou <ebotcazou@adacore.com>
19757
19758 * reorg.c (get_branch_condition): Deal with conditional returns.
19759 (fill_simple_delay_slots): Remove dead code dealing with jumps.
19760
136fb3f7
WM
197612013-04-01 Wei Mi <wmi@google.com>
19762
19763 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
19764 Truncate operand 2 using %b asm operand modifier.
19765 (*<shift_insn><mode>3_mask): Ditto.
19766 (*<rotate_insn><mode>3_mask): Ditto.
19767
6388c738
SB
197682013-04-01 Steven Bosscher <steven@gcc.gnu.org>
19769
19770 PR middle-end/56798
19771 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
19772
f7a4d826
KK
197732013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
19774
19775 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
19776 of next_real_insn.
19777 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
19778
4b943a49
LC
197792013-03-30 Lawrence Crowl <crowl@google.com>
19780
19781 * dse.c (clear_alias_sets): Remove never set.
19782 (disqualified_clear_alias_sets): Remove never set.
19783 (clear_alias_mode_pool): Remove never set.
19784 (dse_step0): Remove condition that is never true.
19785 (canon_address): Remove condition that is never true.
19786 (dse_step7): Remove condition that is never true.
19787 (rest_of_handle_dse): Remove condition that is never true.
19788 (rest_of_handle_dse::did_global): Remove never read from above.
19789 (dse_step2_spill): Remove never called from above.
19790 (dse_step5_spill): Remove never called from above.
19791
39718607
SB
197922013-03-30 Steven Bosscher <steven@gcc.gnu.org>
19793
da5c6bde
SB
19794 * doc/md.texi (Standard Names) <casesi>: Update documentation for
19795 JUMP_TABLE_DATA changes.
19796 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
19797 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
19798 (Insns) <jump_table_data>: New entry.
19799 * doc/tm.texi: Regenerate.
19800
39718607
SB
19801 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
19802
19803 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
19804 for table jump at the end of a basic block using tablejump_p.
19805 * targhooks.c (default_invalid_within_doloop): Likewise.
19806 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
19807 target hook implementation that is identical to the default hook.
19808 (rs6000_invalid_within_doloop): Remove.
19809
19810 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
19811 unused variable from tablejump_p call.
19812
19813 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
19814 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
19815 (INSN_DELETED_P): Likewise.
19816 (emit_jump_table_data): New prototype.
19817 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
19818 after 4th as unused.
19819 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
19820 * sched-vis.c (print_insn): Likewise.
19821 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
19822 insn for compatibility with back ends that use next_active_insn to
19823 identify jump table data.
19824 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
19825 (remove_insn): Likewise.
19826 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
19827 to be emitted.
19828 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
19829 (emit_jump_table_data): New function.
19830
19831 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
19832 basic block, a JUMP_TABLE_DATA never is.
19833 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
19834 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
19835 off from code handling real insns.
19836 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
19837 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
19838 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
19839 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
19840 is not a NONDEBUG_INSN_P.
19841 * ira-costs.c (scan_one_insn): Likewise.
19842 * jump.c (mark_all_labels): Likewise.
19843 (mark_jump_label_1): Likewise.
19844 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19845 * lra.c (get_insn_freq): Expect all insns reaching here to be in
19846 a basic block.
19847 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
19848 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
19849 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
19850 JUMP_TABLE_DATA_P insns.
19851 (calculate_elim_costs_all_insns): Likewise.
19852 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
19853 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
19854 (delete_output_reload): Code style fixups.
19855 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
19856 insn flags on this non-insn.
19857 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
19858 as scheduling barriers, for pre-change compatibility.
19859 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
19860 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
19861
19862 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
19863 redundant JUMP_TABLE_DATA_P test.
19864 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
19865 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
19866 (frv_for_each_packet): Likewise.
19867 * config/i386/i386.c (min_insn_size): Likewise.
19868 (ix86_avoid_jump_mispredicts): Likewise.
19869 * config/m32r/m32r.c (m32r_is_insn): Likewise.
19870 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
19871 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
19872 (mips16_insn_length): Robustify.
19873 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
19874 (mips16_split_long_branches): Likewise.
19875 * config/pa/pa.c (pa_combine_instructions): Likewise.
19876 * config/rs6000/rs6000.c (get_next_active_insn): Treat
19877 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
19878 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
19879 as contributing to pool range lengths.
19880 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
19881 Remove redundant JUMP_TABLE_DATA_P test.
19882 (sh_loop_align): Likewise.
19883 (split_branches): Likewise.
19884 (sh_insn_length_adjustment): Likewise.
19885 * config/spu/spu.c (get_branch_target): Likewise.
19886
0208f7da
JH
198872013-03-29 Jan Hubicka <jh@suse.cz>
19888
19889 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
19890 gcov streaming; stream hot bb threshold to ltrans.
19891 * predict.c (get_hot_bb_threshold): Break out from ....
19892 (maybe_hot_count_p): ... here.
19893 (set_hot_bb_threshold): New function.
19894 * lto-section-in.c (lto_section_name): Add profile.
19895 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
19896 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
19897 and data-streamer.h
19898 (histogram_entry): New structure.
19899 (histogram, histogram_pool): New global vars.
19900 (histogram_hash): New structure.
19901 (histogram_hash::hash): New method.
19902 (histogram_hash::equal): Likewise.
19903 (account_time_size): New function.
19904 (cmp_counts): New function.
19905 (dump_histogram): New function.
19906 (ipa_profile_generate_summary): New function.
19907 (ipa_profile_write_summary): New function.
19908 (ipa_profile_read_summary): New function.
19909 (ipa_profile): Decide on threshold.
e594716a
UB
19910 (pass_ipa_profile): Add ipa_profile_write_summary and
19911 ipa_profile_read_summary.
0208f7da
JH
19912 * Makefile.in (ipa.o): Update dependencies.
19913 * lto-streamer.h (LTO_section_ipa_profile): New section.
19914
5a6ccc94
GDR
199152013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
19916
19917 * tree.h (VAR_P): New.
19918
39385fa6
PC
199192013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
19920
19921 PR lto/56777
19922 * doc/invoke.texi ([-fwhole-program]): Fix typo.
19923
34f0d87a
SB
199242013-03-29 Steven Bosscher <steven@gcc.gnu.org>
19925
19926 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
19927 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
19928 (control_flow_insn_p): Likewise.
19929 * cfgrtl.c (duplicate_insn_chain): Likewise.
19930 * final.c (get_attr_length_1): Likewise.
19931 (shorten_branches): Likewise.
19932 (final_scan_insn): Likewise.
19933 * function.c (instantiate_virtual_regs): Likewise.
19934 * gcse.c (insert_insn_end_basic_block): Likewise.
19935 * ira-costs.c (scan_one_insn): Likewise.
19936 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
19937 * lra.c (check_rtl): Likewise.
19938 * reload1.c (elimination_costs_in_insn): Likewise.
19939 * reorg.c (follow_jumps): Likewise.
19940
19941 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
19942 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
19943 (thumb_far_jump_used_p): Likewise.
19944 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
19945 (workaround_speculation): Likewise.
19946 (add_sched_insns_for_speculation): Likewise.
19947 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
19948 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
19949 (frv_for_each_packet): Likewise.
19950 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
19951 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
19952 (final_emit_insn_group_barriers): Likewise.
19953 * config/m32r/m32r.c (m32r_is_insn): Likewise.
19954 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
19955 (mips16_insn_length): Likewise.
19956 * config/pa/pa.c (pa_reorg): Likewise.
19957 (pa_combine_instructions): Likewise.
19958 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
19959 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
19960 (sh_reorg): Likewise.
19961 (split_branches): Likewise.
19962 * config/spu/spu.c (get_branch_target): Likewise.
19963
19964 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
19965 JUMP_TABLE_DATA_P.
19966
4ac761b0
KY
199672013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
19968
39385fa6 19969 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
19970 Fix declaration name.
19971
58a49189
LC
199722013-03-28 Lawrence Crowl <crowl@google.com>
19973
19974 * graphds.h (struct graph.indicies): Remove unused.
19975 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
19976 (SCOP_ORIGINAL_PDDRS): Remove unused.
19977 * sese.h (extern insert_loop_close_phis): Removed unused.
19978 (extern insert_guard_phis): Removed unused.
19979 (extern ivtype_map_elt_info): Removed unused.
19980 (new_ivtype_map_elt): Removed unused.
19981 * sese.c (ivtype_map_elt_info): Removed unused.
19982
7b3b6ae4
LC
199832013-03-28 Lawrence Crowl <crowl@google.com>
19984
19985 * Makefile.in: Add several missing include dependences.
19986 (DUMPFILE_H): New.
19987 (test-dump.o): New. This object is not added to any executable,
19988 but is present for ad-hoc testing.
19989 * bitmap.c
19990 (debug (const bitmap_head_def &)): New.
19991 (debug (const bitmap_head_def *)): New.
19992 * bitmap.h
19993 (extern debug (const bitmap_head_def &)): New.
19994 (extern debug (const bitmap_head_def *)): New.
19995 * cfg.c
19996 (debug (edge_def &)): New.
19997 (debug (edge_def *)): New.
19998 * cfghooks.c
19999 (debug (basic_block_def &)): New.
20000 (debug (basic_block_def *)): New.
20001 * dumpfile.h
20002 (dump_node (const_tree, int, FILE *)): Correct source file.
20003 * dwarf2out.c
20004 (debug (die_struct &)): New.
20005 (debug (die_struct *)): New.
20006 * dwarf2out.h
20007 (extern debug (die_struct &)): New.
20008 (extern debug (die_struct *)): New.
20009 * gimple-pretty-print.c
20010 (debug (gimple_statement_d &)): New.
20011 (debug (gimple_statement_d *)): New.
20012 * gimple-pretty-print.h
20013 (extern debug (gimple_statement_d &)): New.
20014 (extern debug (gimple_statement_d *)): New.
20015 * ira-build.c
20016 (debug (ira_allocno_copy &)): New.
20017 (debug (ira_allocno_copy *)): New.
20018 (debug (ira_allocno &)): New.
20019 (debug (ira_allocno *)): New.
20020 * ira-int.h
20021 (extern debug (ira_allocno_copy &)): New.
20022 (extern debug (ira_allocno_copy *)): New.
20023 (extern debug (ira_allocno &)): New.
20024 (extern debug (ira_allocno *)): New.
20025 * ira-lives.c
20026 (debug (live_range &)): New.
20027 (debug (live_range *)): New.
20028 * lra-int.h
20029 (debug (lra_live_range &)): New.
20030 (debug (lra_live_range *)): New.
20031 * lra-lives.c
20032 (debug (lra_live_range &)): New.
20033 (debug (lra_live_range *)): New.
20034 * omega.c
20035 (debug (omega_pb_d &)): New.
20036 (debug (omega_pb_d *)): New.
20037 * omega.h
20038 (extern debug (omega_pb_d &)): New.
20039 (extern debug (omega_pb_d *)): New.
20040 * print-rtl.c
20041 (debug (const rtx_def &)): New.
20042 (debug (const rtx_def *)): New.
20043 * print-tree.c
20044 (debug_tree (tree): Move within file.
20045 (debug_raw (const tree_node &)): New.
20046 (debug_raw (const tree_node *)): New.
20047 (dump_tree_via_hooks (const tree_node *, int)): New.
20048 (debug (const tree_node &)): New.
20049 (debug (const tree_node *)): New.
20050 (debug_verbose (const tree_node &)): New.
20051 (debug_verbose (const tree_node *)): New.
20052 (debug_head (const tree_node &)): New.
20053 (debug_head (const tree_node *)): New.
20054 (debug_body (const tree_node &)): New.
20055 (debug_body (const tree_node *)): New.
20056 (debug_vec_tree (tree): Move and reimplement in terms of dump.
20057 (debug (vec<tree, va_gc> &)): New.
20058 (debug (vec<tree, va_gc> *)): New.
20059 * rtl.h
20060 (extern debug (const rtx_def &)): New.
20061 (extern debug (const rtx_def *)): New.
20062 * sbitmap.c
20063 (debug_raw (simple_bitmap_def &)): New.
20064 (debug_raw (simple_bitmap_def *)): New.
20065 (debug (simple_bitmap_def &)): New.
20066 (debug (simple_bitmap_def *)): New.
20067 * sbitmap.h
20068 (extern debug (simple_bitmap_def &)): New.
20069 (extern debug (simple_bitmap_def *)): New.
20070 (extern debug_raw (simple_bitmap_def &)): New.
20071 (extern debug_raw (simple_bitmap_def *)): New.
20072 * sel-sched-dump.c
20073 (debug (vinsn_def &)): New.
20074 (debug (vinsn_def *)): New.
20075 (debug_verbose (vinsn_def &)): New.
20076 (debug_verbose (vinsn_def *)): New.
20077 (debug (expr_def &)): New.
20078 (debug (expr_def *)): New.
20079 (debug_verbose (expr_def &)): New.
20080 (debug_verbose (expr_def *)): New.
20081 (debug (vec<rtx> &)): New.
20082 (debug (vec<rtx> *)): New.
20083 * sel-sched-dump.h
20084 (extern debug (vinsn_def &)): New.
20085 (extern debug (vinsn_def *)): New.
20086 (extern debug_verbose (vinsn_def &)): New.
20087 (extern debug_verbose (vinsn_def *)): New.
20088 (extern debug (expr_def &)): New.
20089 (extern debug (expr_def *)): New.
20090 (extern debug_verbose (expr_def &)): New.
20091 (extern debug_verbose (expr_def *)): New.
20092 (extern debug (vec<rtx> &)): New.
20093 (extern debug (vec<rtx> *)): New.
20094 * sel-sched-ir.h
20095 (_list_iter_cond_expr): Make inline instead of static.
20096 * sreal.c
20097 (debug (sreal &)): New.
20098 (debug (sreal *)): New.
20099 * sreal.h
20100 (extern debug (sreal &)): New.
20101 (extern debug (sreal *)): New.
20102 * tree.h
20103 (extern debug_raw (const tree_node &)): New.
20104 (extern debug_raw (const tree_node *)): New.
20105 (extern debug (const tree_node &)): New.
20106 (extern debug (const tree_node *)): New.
20107 (extern debug_verbose (const tree_node &)): New.
20108 (extern debug_verbose (const tree_node *)): New.
20109 (extern debug_head (const tree_node &)): New.
20110 (extern debug_head (const tree_node *)): New.
20111 (extern debug_body (const tree_node &)): New.
20112 (extern debug_body (const tree_node *)): New.
20113 (extern debug (vec<tree, va_gc> &)): New.
20114 (extern debug (vec<tree, va_gc> *)): New.
20115 * tree-cfg.c
20116 (debug (struct loop &)): New.
20117 (debug (struct loop *)): New.
20118 (debug_verbose (struct loop &)): New.
20119 (debug_verbose (struct loop *)): New.
20120 * tree-dump.c: Add header dependence.
20121 * tree-flow.h
20122 (extern debug (struct loop &)): New.
20123 (extern debug (struct loop *)): New.
20124 (extern debug_verbose (struct loop &)): New.
20125 (extern debug_verbose (struct loop *)): New.
20126 * tree-data-ref.c
20127 (debug (data_reference &)): New.
20128 (debug (data_reference *)): New.
20129 (debug (vec<data_reference_p> &)): New.
20130 (debug (vec<data_reference_p> *)): New.
20131 (debug (vec<ddr_p> &)): New.
20132 (debug (vec<ddr_p> *)): New.
20133 * tree-data-ref.h
20134 (extern debug (data_reference &)): New.
20135 (extern debug (data_reference *)): New.
20136 (extern debug (vec<data_reference_p> &)): New.
20137 (extern debug (vec<data_reference_p> *)): New.
20138 (extern debug (vec<ddr_p> &)): New.
20139 (extern debug (vec<ddr_p> *)): New.
20140 * tree-ssa-alias.c
20141 (debug (pt_solution &)): New.
20142 (debug (pt_solution *)): New.
20143 * tree-ssa-alias.h
20144 (extern debug (pt_solution &)): New.
20145 (extern debug (pt_solution *)): New.
20146 * tree-ssa-alias.c
20147 (debug (_var_map &)): New.
20148 (debug (_var_map *)): New.
20149 (debug (tree_live_info_d &)): New.
20150 (debug (tree_live_info_d *)): New.
20151 * tree-ssa-alias.h
20152 (extern debug (_var_map &)): New.
20153 (extern debug (_var_map *)): New.
20154 (extern debug (tree_live_info_d &)): New.
20155 (extern debug (tree_live_info_d *)): New.
20156
be77e1e5
JH
201572013-03-28 Jan Hubicka <jh@suse.cz>
20158
20159 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
20160
777e6976
IB
201612013-03-28 Ian Bolton <ian.bolton@arm.com>
20162
20163 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
20164 record only when desired or required.
20165
9cd347ae
UB
201662013-03-28 Uros Bizjak <ubizjak@gmail.com>
20167
20168 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
20169 *vec_extractv2di_1_rex64. Use x64 isa attribute.
20170
33159866 201712013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
20172
20173 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
20174 (*andsi3_compare0_uxtw): New pattern.
20175 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
20176 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
20177
89ab31c1
JH
201782013-03-28 Jan Hubicka <jh@suse.cz>
20179
20180 * data-streamer-in.c (streamer_read_gcov_count): New function.
20181 * gimple-streamer-out.c: Include value-prof.h.
20182 (output_gimple_stmt): Output histogram.
20183 (output_bb): Use streamer_write_gcov_count.
20184 * value-prof.c: Include data-streamer.h
20185 (dump_histogram_value): Add HIST_TYPE_MAX.
20186 (stream_out_histogram_value): New function.
20187 (stream_in_histogram_value): New function.
20188 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
20189 (stream_out_histogram_value, stream_in_histogram_value): Declare.
20190 * data-streamer-out.c (streamer_write_gcov_count): New function.
20191 (streamer_write_gcov_count_stream): New function.
20192 * lto-cgraph.c (lto_output_edge): Update counter streaming.
20193 (lto_output_node): Likewise.
20194 (input_node, input_edge): Likewise.
20195 * lto-streamer-out.c (output_cfg): Update streaming.
20196 * lto-streamer-in.c (input_cfg): Likewise.
20197 * data-streamer.h (streamer_write_gcov_count,
20198 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
20199 * gimple-streamer-in.c: Include value-prof.h
20200 (input_gimple_stmt): Input histograms.
20201 (input_bb): Update profile streaming.
20202
e594716a 202032013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 20204
33159866 20205 * genmodes.c (emit_max_int): New function.
8697be17 20206 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
20207 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
20208 Added doc.
8697be17 20209 * machmode.def: Fixed comment.
89ab31c1 20210
e594716a 202112013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
20212
20213 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
20214 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
20215
74946978
MP
202162013-03-28 Marek Polacek <polacek@redhat.com>
20217 Richard Biener <rguenther@suse.de>
20218
20219 PR tree-optimization/56695
20220 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
20221 build signed result of a vector comparison.
20222 * tree-cfg.c (verify_gimple_comparison): Check that a result
20223 of a vector comparison has signed type.
20224
a64b9c26
RB
202252013-03-28 Richard Biener <rguenther@suse.de>
20226
20227 PR tree-optimization/37021
20228 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
20229 do not restrict gaps between groups.
20230 * tree-vect-stmts.c (vectorizable_load): Properly account for
20231 a gap between groups.
20232
a9dc2a2f
EB
202332013-03-28 Eric Botcazou <ebotcazou@adacore.com>
20234
20235 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
20236 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
20237 is not enabled.
20238
53cb97f9
GP
202392013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
20240
20241 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
20242 * doc/extend.texi (Named Address Spaces): Ditto.
20243 (Variable Attributes): Ditto.
20244
b802ae5c
KT
202452013-03-27 Kai Tietz <ktietz@redhat.com>
20246
eddae10a
KT
20247 * config.build: Add support for cygwin x64 target.
20248 * config.gcc: Likewise.
20249 * config.host: Likewise.
20250 * configure.ac: Likewise
20251 * configure: Regenerated.
b802ae5c 20252
371e77e3 202532013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
20254
20255 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
20256 * config/i386/t-cygwin-w64: New file.
20257 * config/i386/cygwin-w64.h: New file.
20258 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
20259 and add support for x64-cygwin target.
20260 (CPP_SPEC): Likewise.
20261 (CXX_WRAP_SPEC_LIST): Undefine before define.
20262 (LIBGCJ_SONAME): Use 15 as version.
20263
f49b33cb
RB
202642013-03-27 Richard Biener <rguenther@suse.de>
20265
20266 PR tree-optimization/56716
20267 * tree-ssa-structalias.c (perform_var_substitution): Adjust
20268 dumping for ref nodes.
20269
b37a6ce5
MJ
202702013-03-27 Martin Jambor <mjambor@suse.cz>
20271
20272 PR tree-optimization/55334
20273 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
20274 restricted pointers to arrays.
20275
9469b9b2
GDR
202762013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
20277
20278 * Makefile.in (.SUFFIXES): Add .cc.
20279 (.c.o): Apply same recipe for implicit rule .cc.o.
20280
7d24f650
RB
202812013-03-27 Richard Biener <rguenther@suse.de>
20282
20283 PR tree-optimization/37021
20284 * tree-vect-data-refs.c (vect_check_strided_load): Allow
20285 REALPART/IMAGPART_EXPRs around the supported refs.
20286 * tree-ssa-structalias.c (find_func_aliases): Assume that
20287 floating-point values are not used to transfer pointers.
20288
2f251a05
AI
202892013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
20290
f43245d1
UB
20291 * target.def (TARGET_HAS_IFUNC_P): New target hook.
20292 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
20293 * doc/tm.texi: Regenerate.
20294 * targhooks.h (default_has_ifunc_p): New.
20295 * targhooks.c (default_has_ifunc_p): Ditto.
20296 * config/linux-protos.h: New file.
20297 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
20298 hook for linux which disables support of indirect functions in android.
20299 * config/linux-android.c: New file.
20300 * config/t-linux-android.c: Ditto.
20301 * config.gcc: Added new object file linux-android.o.
20302 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 20303 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 20304 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
20305 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
20306 doesn't support indirect functions.
20307 * configure: Regenerate.
20308
78b4e425
BC
203092013-03-27 Bin Cheng <bin.cheng@arm.com>
20310
20311 PR target/56102
20312 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
20313 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
20314 mult-word mode.
20315
a5ba7b92
AK
203162013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20317
20318 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
20319
be624986
TG
203202013-03-27 Terry Guo <terry.guo@arm.com>
20321
20322 * config/arm/arm-cores.def: Added core cortex-r7.
20323 * config/arm/arm-tune.md: Regenerated.
20324 * config/arm/arm-tables.opt: Regenerated.
20325 * doc/invoke.texi: Added entry for core cortex-r7.
20326
0a514f47
WL
203272013-03-27 Walter Lee <walt@tilera.com>
20328
20329 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
20330 double-decrement of next_scratch_regno.
20331
9332b0d2
WL
203322013-03-27 Walter Lee <walt@tilera.com>
20333
801d9b2a 20334 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
20335 input operands.
20336 (insn_v1mulus): Ditto.
20337 (insn_v2muls): Ditto.
20338
f54ea5dd
WL
203392013-03-27 Walter Lee <walt@tilera.com>
20340
e594716a 20341 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
20342 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
20343
bf60f4ca
WL
203442013-03-27 Walter Lee <walt@tilera.com>
20345
e594716a 20346 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
20347 (*sibcall_value): Ditto.
20348
e3b51eeb
WL
203492013-03-27 Walter Lee <walt@tilera.com>
20350
20351 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
20352 (insn_mnz_v8qi): ... this ...
20353 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
20354 vector equivalent.
20355 (insn_v<n>mnz): Replaced by ...
20356 (insn_v1mnz): ... this ...
20357 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
20358 equivalent.
20359 (insn_mz_<mode>): Replaced by ...
20360 (insn_mz_v8qi): ... this ...
20361 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
20362 vector equivalent.
20363 (insn_v<n>mz): Replaced by ...
20364 (insn_v1mz): ... this ...
20365 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
20366 equivalent.
20367
4fc7b145
EB
203682013-03-26 Eric Botcazou <ebotcazou@adacore.com>
20369
20370 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
20371
6f33817e
RM
203722013-03-26 Roland McGrath <mcgrathr@google.com>
20373
20374 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
20375 than fprintf with a non-constant, non-format string.
20376
93a4145b
UB
203772013-03-26 Uros Bizjak <ubizjak@gmail.com>
20378
20379 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
20380 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
20381 operand 0 predicate.
20382 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
20383 attribute. Use general_x64nomem_operand as operand 1 predicate.
20384 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
20385 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20386 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
20387 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
20388 (mov<mode>_insv_1): Remove expander. Merge insn with
20389 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
20390 Use general_x64nomem_operand as operand 1 predicate.
20391 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
20392 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
20393 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20394 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
20395 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
20396 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
20397 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
20398 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
20399 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
20400 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
20401 (general_x64nomem_operand): Ditto.
20402
c6a9ed5a 204032013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
20404
20405 * config/rtems.opt: Add -pthread option.
20406
31b0a960
RB
204072013-03-26 Richard Biener <rguenther@suse.de>
20408
93a4145b
UB
20409 * alias.c (find_base_term): Avoid redundant and not used recursion.
20410 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
20411 (true_dependence_1): Compute and pass base terms to base_alias_check.
20412 (write_dependence_p): Likewise.
20413 (may_alias_p): Likewise.
20414
79517551
SN
204152013-03-26 Sofiane Naci <sofiane.naci@arm.com>
20416
20417 * config/aarch64/aarch64.c (aarch64_classify_address): Support
20418 PC-relative load in SI modes and above only.
20419
a76213b9
XQ
204202013-03-26 Xinyu Qi <xyqi@marvell.com>
20421
20422 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
20423 * config/arm/iwmmxt.md (WCGR0): Update.
20424 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 20425
37ff9355
UB
204262013-03-26 Uros Bizjak <ubizjak@gmail.com>
20427
20428 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
20429 Use x64 and nox64 isa attributes.
20430
30b0317c
RB
204312013-03-26 Richard Biener <rguenther@suse.de>
20432
20433 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
20434 alignment computations and rely on get_object_alignment_1
20435 for the !TYPE_P case.
20436 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
20437
cbcdb140
WL
204382013-03-26 Walter Lee <walt@tilera.com>
20439
20440 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
20441 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
20442
dd884525 204432013-03-25 Jeff Law <law@redhat.com>
be672e08 20444
33159866
UB
20445 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
20446 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
20447 wrong version of prior patch.
20448
0051d3ec
WL
204492013-03-25 Walter Lee <walt@tilera.com>
20450
20451 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
20452 TILEGX_INSN_SHUFFLEBYTES1.
20453 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
20454 shufflebytes1.
20455 (tilegx_builtins): Ditto.
20456 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
20457
065a3605
WL
204582013-03-25 Walter Lee <walt@tilera.com>
20459
20460 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
20461 (floatunssisf2): New pattern.
20462 (floatsidf2): New pattern.
20463 (floatunssidf2): New pattern.
065a3605 20464
5b2a3c82
WL
204652013-03-25 Walter Lee <walt@tilera.com>
20466
20467 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
20468 tests for constraint J, K, N, P.
20469
192ea533
WL
204702013-03-25 Walter Lee <walt@tilera.com>
20471
20472 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
20473 Use indirect/pcrel encoding.
20474 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
20475 Ditto.
20476
855e0d0b
SE
204772013-03-25 Steve Ellcey <sellcey@mips.com>
20478
20479 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
20480 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
20481 * config/mips/mips.c (mips_option_override): Set IMADD default.
20482 * config/mips/mips.h (PTF_AVOID_IMADD): New.
20483 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
20484 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
20485 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
20486 * doc/invoke.texi (-mimadd/-mno-imadd): New.
20487
39e45653
JL
204882013-03-25 Jeff Law <law@redhat.com>
20489
20490 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
20491 slightly to avoid creating and folding useless trees. Simplify
20492 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
20493
7482c470
UB
204942013-03-25 Uros Bizjak <ubizjak@gmail.com>
20495
20496 * config/i386/i386.md (*zero_extendsidi2): Merge with
20497 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
20498 * config/i386/predicates.md (x86_64_zext_operand): Rename from
20499 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
20500 targets. Clarify comment.
20501
4a53743e
MJ
205022013-03-25 Martin Jambor <mjambor@suse.cz>
20503
20504 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
20505 pass-through jump functions differently.
20506 (ipa_read_jump_function): Likewise. Also use setter functions to set
20507 up jump functions.
20508
162712de
MJ
205092013-03-25 Martin Jambor <mjambor@suse.cz>
20510
20511 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
20512 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
20513 process it.
20514 (ipa_get_indirect_edge_target): New function.
20515 (devirtualization_time_bonus): New parameter known_aggs, pass it to
20516 ipa_get_indirect_edge_target. Update all callers.
20517 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
20518 ipa_get_indirect_edge_target_1 instead of calling
20519 ipa_get_indirect_edge_target.
20520 (create_specialized_node): Pass aggvlas to
20521 ipcp_discover_new_direct_edges.
20522
a5a4c20a
KT
205232013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20524
20525 * config/arm/arm.md (f_sels, f_seld): New types.
20526 (*cmov<mode>): New pattern.
20527 * config/arm/predicates.md (arm_vsel_comparison_operator): New
20528 predicate.
20529
f992b9fc
KT
205302013-03-25 Kai Tietz <ktietz@redhat.com>
20531
20532 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
20533 POSIX-printf for mingw-hosted builds.
20534
c16fd676
RB
205352013-03-25 Richard Biener <rguenther@suse.de>
20536
20537 PR middle-end/56694
20538 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
20539 must-not-throw stmt location.
20540
5ad29f12
KT
205412013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20542
20543 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
20544 Emit load-acquire versions when acq is true.
20545 (arm_emit_store_exclusive): Add rel parameter.
20546 Emit store-release versions when rel is true.
20547 (arm_split_compare_and_swap): Use acquire-release instructions
20548 instead.
20549 of barriers when appropriate.
20550 (arm_split_atomic_op): Likewise.
20551 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
20552 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
20553 (VUNSPEC_SLX): Likewise.
20554 (VUNSPEC_LDA): Likewise.
20555 (VUNSPEC_STL): Likewise.
20556 * config/arm/sync.md (atomic_load<mode>): New pattern.
20557 (atomic_store<mode>): Likewise.
20558 (arm_load_acquire_exclusive<mode>): Likewise.
20559 (arm_load_acquire_exclusivesi): Likewise.
20560 (arm_load_acquire_exclusivedi): Likewise.
20561 (arm_store_release_exclusive<mode>): Likewise.
20562
03a7dddb
CM
205632013-03-25 Catherine Moore <clm@codesourcery.com>
20564
20565 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
20566 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
20567 * config/mip/predicates.md (lwsp_swsp_operand,
20568 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
20569 sb16_operand, db4_operand, db7_operand, ib3_operand,
20570 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
20571 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
20572 andi16_operand): New predicates.
20573 * config/mips/mips.md (compression): New attribute.
20574 (enabled): New attribute.
20575 (length): Consider compression in computing length.
20576 (shift_compression): New code attribute.
20577 (*add<mode>3): New operands. Record compression.
20578 (sub<mode>3): Likewise.
20579 (one_cmpl<mode>2): Likewise.
20580 (*and<mode>3): Likewise.
20581 (*ior<mode>3): Likewise.
20582 (unnamed pattern for xor): Likewise.
20583 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
20584 (*<optab><mode>3): Likewise.
20585 (*mov<mode>_internal: Likewise.
20586 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
20587 (mips_unsigned_immediate_p): New.
20588 (umips_lwsp_swsp_address_p): New.
20589 (m16_based_address_p): New.
20590 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
20591 (mips_unsigned_immediate_p): New prototype.
20592 (lwsp_swsp_address_p): New prototype.
20593 (m16_based_address_p): New prototype.
20594 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
20595 (mips_signed_immediate_p): New function.
20596 (m16_based_address_p): New function.
20597 (lwsp_swsp_address_p): New function.
20598 (mips_print_operand_punctuation): Recognize short delay slot insns
20599 for microMIPS.add<mode>3"
20600
f35c297f 206012013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 20602
f35c297f
KT
20603 PR target/56720
20604 * config/arm/iterators.md (v_cmp_result): New mode attribute.
20605 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
20606
051b9446
RB
206072013-03-25 Richard Biener <rguenther@suse.de>
20608
20609 PR tree-optimization/56689
20610 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
20611 any edge.
20612
374001cb
RB
206132013-03-25 Richard Biener <rguenther@suse.de>
20614
20615 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
20616 of bitmap.
20617 (memory_references): Likewise.
20618 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
20619 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
20620 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
20621 (gather_mem_refs_in_loops): Fold into ...
20622 (analyze_memory_references): ... this. Move initialization
20623 to tree_ssa_lim_initialize.
20624 (fill_always_executed_in): Rename to ...
20625 (fill_always_executed_in_1): ... this.
20626 (fill_always_executed_in): Move contains_call computation to
20627 this new function from ...
20628 (tree_ssa_lim_initialize): ... here.
20629 (tree_ssa_lim): Call fill_always_executed_in.
20630
57895947
EB
206312013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20632
20633 * postreload.c (reload_combine): Fix code detecting returns.
20634
1e1b18c1
EB
206352013-03-25 Eric Botcazou <ebotcazou@adacore.com>
20636
20637 * function.c (emit_use_return_register_into_block): On cc0 targets,
20638 do not emit the sequence between cc0 setter and user.
20639
9216baf1
KT
206402013-03-25 Kai Tietz <ktietz@redhat.com>
20641
1e1b18c1
EB
20642 * config/i386/predicates.md (local_symbolic_operand): Interpret
20643 dll-imported symbols as none-local.
9216baf1 20644
76421b44
RB
206452013-03-25 Richard Biener <rguenther@suse.de>
20646
20647 * tree-ssa-loop-im.c (struct depend): Remove.
20648 (struct lim_aux_data): Make depends a vec of gimples.
20649 (free_lim_aux_data): Adjust.
20650 (add_dependency): Likewise.
20651 (set_level): Likewise.
20652
d154bfa2
RB
206532013-03-25 Richard Biener <rguenther@suse.de>
20654
20655 PR middle-end/56434
20656 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
20657 the pointer returned by calls with ECF_MALLOC set.
20658
2cd9804e
UB
206592013-03-24 Uros Bizjak <ubizjak@gmail.com>
20660
acef5fe0
UB
20661 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
20662
206632013-03-24 Uros Bizjak <ubizjak@gmail.com>
20664
20665 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
20666 using MMXMODE mode iterator.
20667 (*move<mode>_internal): Merge with *movv2sf_internal and
20668 *movv2sf_internal_rex64 using MMXMODE mode iterator.
20669
225ccc68
SB
206702013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20671
85c0f02d
SB
20672 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
20673 (record_last_mem_set_info): Likewise.
20674
225ccc68
SB
20675 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
20676 of XNEWVEC followed by memset.
20677 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
20678
b64925dc
SB
206792013-03-23 Steven Bosscher <steven@gcc.gnu.org>
20680
20681 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
20682 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
20683 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
20684 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
20685 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
20686 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
20687 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
20688 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
20689 BARRIER_P instead of GET_CODE.
20690
b9aaf52e
EB
206912013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20692
20693 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
20694 inaccuracy in the probing code.
20695
20696 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
20697 (ctrapdi4): Likewise.
20698
66de4d7c
EB
206992013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20700
20701 * calls.c (expand_call): Add missing guard to code handling return
20702 of non-BLKmode structures in MSB.
20703 * function.c (expand_function_end): Likewise.
20704
4f25c8fb
EB
207052013-03-23 Eric Botcazou <ebotcazou@adacore.com>
20706
20707 * combine.c (try_combine): Adjust comment. Do not add the set of
20708 insn #0 if the destination indirectly is set or dies in insn #2.
20709 Tidy up code to distribute a new note.
20710
23b7850d
UB
207112013-03-22 Uros Bizjak <ubizjak@gmail.com>
20712
20713 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
20714 also for alternatives 16 and 17.
20715
bed852cf
UB
207162013-03-22 Uros Bizjak <ubizjak@gmail.com>
20717
20718 * config/i386/sse.md (*mov<mode>_internal): Merge with
20719 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
20720 Emit insn template depending on type attribute. Use
20721 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
20722 movd instead of movq mnemonic for interunit moves. Rewrite mode
20723 attribute calculation. Remove unit attribute calculation.
20724 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
20725 Set prefix_data16 attribute for DImode ssemov types.
20726 Use Ym instead of y for SSE-MMX conversion alternatives.
20727 Reorder operand constraints.
20728
1e8a7937
SB
207292013-03-22 Steven Bosscher <steven@gcc.gnu.org>
20730
20731 * df.h (df_insn_delete): Adjust prototype.
20732 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
20733 and let it decide whether mark the basic block dirty.
20734 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
20735 * df-scan.c (df_insn_info_delete): New helper function, split
20736 off from df_insn_delete.
20737 (df_scan_free_bb_info): Use it.
20738 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
20739 Likewise.
20740 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
20741 that the insn is actually an insn and it has a non-NULL basic block.
20742 Do not mark basic block dirty if only deleting a DEBUG_INSN.
20743
e14d094c
RB
207442013-03-22 Richard Biener <rguenther@suse.de>
20745
20746 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
20747 dep_ref members.
20748 (mem_ref_alloc): Do not allocate them.
20749 (refs_independent_p): Do not query or maintain a cache.
20750
e9cf7316
RB
207512013-03-22 Richard Biener <rguenther@suse.de>
20752
20753 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
20754 (gather_mem_refs_in_loops): Do not compute it.
20755 (analyze_memory_references): Do not allocate it.
20756 (tree_ssa_lim_finalize): Do not free it.
20757 (for_all_locs_in_loop): Do not query all_refs_in_loop.
20758
f046e81b
RB
207592013-03-22 Richard Biener <rguenther@suse.de>
20760
20761 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 20762
a05c0ddf
IB
207632013-03-22 Ian Bolton <ian.bolton@arm.com>
20764
20765 * config/aarch64/aarch64.c (aarch64_print_operand): New
20766 format specifier for printing a constant in hex.
20767 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
20768 format specifier for printing second operand.
20769
c00217fc
RB
207702013-03-22 Richard Biener <rguenther@suse.de>
20771
20772 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
20773 bitmaps.
20774 (gather_mem_refs_in_loops): Perform store accumulation here.
20775 (create_vop_ref_mapping_loop): Remove.
20776 (create_vop_ref_mapping): Likewise.
20777 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 20778 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
20779 (record_indep_loop): Remove.
20780 (record_dep_loop): New function.
20781 (ref_indep_loop_p_1): Adjust to only walk over references
20782 in the loop, not its subloops.
20783 (ref_indep_loop_p): Rename to ...
20784 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
20785 maintaining a more fine-grained cache.
20786 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
20787 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
20788
15d19bf8
RB
207892013-03-22 Richard Biener <rguenther@suse.de>
20790
20791 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
20792 (struct mem_ref): Make accesses_in_loop a vec of a vec of
20793 aggregate mem_ref_loc.
20794 (free_mem_ref_locs): Inline into ...
20795 (memref_free): ... this and adjust.
20796 (mem_ref_alloc): Adjust.
20797 (mem_ref_locs_alloc): Remove.
20798 (record_mem_ref_loc): Adjust.
20799 (get_all_locs_in_loop): Rewrite into ...
20800 (for_all_locs_in_loop): ... this iterator.
20801 (rewrite_mem_ref_loc): New functor.
20802 (rewrite_mem_refs): Use for_all_locs_in_loop.
20803 (sm_set_flag_if_changed): New functor.
20804 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
20805 (ref_always_accessed): New functor.
20806 (ref_always_accessed_p): Use for_all_locs_in_loop.
20807
6f37411d
MG
208082013-03-21 Marc Glisse <marc.glisse@inria.fr>
20809
20810 * tree-pass.h (PROP_gimple_lvec): New.
20811 * passes.c (dump_properties): Handle PROP_gimple_lvec.
20812 (init_optimization_passes): Move pass_lower_vector.
20813 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
20814 PROP_gimple_lvec.
20815 (pass_lower_vector): Provide PROP_gimple_lvec.
20816 (pass_lower_vector_ssa): Likewise.
20817 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
20818
511ef689
MW
208192013-03-21 Mark Wielaard <mjw@redhat.com>
20820
20821 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
20822
cc1df30b
UB
208232013-03-21 Uros Bizjak <ubizjak@gmail.com>
20824
20825 * config/i386/i386.md (*movdi_internal): Disparage slightly
20826 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
20827 conversion alternatives.
20828
c845cfe1
JJ
208292013-03-21 Jakub Jelinek <jakub@redhat.com>
20830
37e99116
JJ
20831 PR middle-end/48087
20832 * diagnostic.def (DK_WERROR): New kind.
20833 * diagnostic.h (werrorcount): Define.
20834 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
20835 promoted to DK_ERROR, increment DK_WERROR counter instead of
20836 DK_ERROR counter.
20837 * toplev.c (toplev_main): Call print_ignored_options even if
20838 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
20839 even if just werrorcount is non-zero.
20840
c845cfe1
JJ
20841 PR debug/55608
20842 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
20843 on failure.
20844 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
20845 (string_cst_pool_decl): New function.
20846 (optimize_one_addr_into_implicit_ptr): New function.
20847 (resolve_addr_in_expr): Optimize DWARF location expression
20848 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
20849 which doesn't live in memory, but has DW_AT_location or
20850 DW_AT_const_value, or refers to a string literal, into
20851 DW_OP_GNU_implicit_pointer.
20852 (optimize_location_into_implicit_ptr): New function.
20853 (resolve_addr): If removing DW_AT_location of a variable because
20854 it was DW_OP_addr of address of the variable, but the variable doesn't
20855 live in memory, try to emit const value attribute for the initializer.
20856
08e0cda6
MG
208572013-03-21 Marc Glisse <marc.glisse@inria.fr>
20858
20859 * tree.h (VECTOR_TYPE_P): New macro.
20860 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
20861 TYPE_MODE): Use it.
20862 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
20863 VEC_COND_EXPR cannot be lvalues.
20864 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
20865
d08633b4
MG
208662013-03-21 Marc Glisse <marc.glisse@inria.fr>
20867
20868 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
20869 Restrict the transformation to equal modes.
20870
e6647190
RB
208712013-03-21 Richard Biener <rguenther@suse.de>
20872
20873 PR tree-optimization/39326
20874 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
20875 (MEM_ANALYZABLE): Adjust.
20876 (record_mem_ref_loc): Move bitmap ops ...
20877 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
20878 unanalyzable refs, do not record locations for it.
20879 (analyze_memory_references): Allocate ref zero as shared
20880 unanalyzable ref.
20881 (refs_independent_p): Do not test for unanalyzed mems here.
20882 (ref_indep_loop_p_1): Special-case disambiguation against
20883 the unanalyzed ref.
cc1df30b 20884 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 20885
65074f54
CL
208862013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
20887
20888 * config/arm/arm-protos.h (tune_params): Add
20889 prefer_neon_for_64bits field.
20890 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
20891 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
20892 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
20893 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
20894 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
20895 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
20896 (arm_option_override): Handle -mneon-for-64bits new option.
20897 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
20898 (prefer_neon_for_64bits): Declare new variable.
20899 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 20900 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
20901 (arch_enabled): Handle new arch types. Remove support for onlya8
20902 and nota8.
20903 (one_cmpldi2): Use new arch names.
bc5faa5b 20904 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
20905 * config/arm/arm.opt (mneon-for-64bits): Add option.
20906 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
20907 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
20908 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
20909 of onlya8.
20910 * doc/invoke.texi (-mneon-for-64bits): Document.
20911
5a2d2a79
RB
209122013-03-21 Richard Biener <rguenther@suse.de>
20913
20914 PR tree-optimization/39326
20915 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
20916 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 20917 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 20918
5abe1e05
RB
209192013-03-21 Richard Biener <rguenther@suse.de>
20920
20921 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
20922 (vect_insert_into_interleaving_chain): Likewise.
20923 (vect_drs_dependent_in_basic_block): Inline ...
20924 (vect_slp_analyze_data_ref_dependence): ... here. New function,
20925 split out from ...
20926 (vect_analyze_data_ref_dependence): ... here. Simplify.
20927 (vect_check_interleaving): Simplify.
20928 (vect_analyze_data_ref_dependences): Likewise. Split out ...
20929 (vect_slp_analyze_data_ref_dependences): ... this new function.
20930 (dr_group_sort_cmp): New function.
20931 (vect_analyze_data_ref_accesses): Compute data-reference groups
20932 here instead of in vect_analyze_data_ref_dependence. Use
20933 a more efficient algorithm.
20934 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
20935 vect_slp_analyze_data_ref_dependences. Call
20936 vect_analyze_data_ref_accesses earlier.
20937 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
20938 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
20939 (vect_slp_analyze_data_ref_dependences): New prototype.
20940
cad1735b
RB
209412013-03-21 Richard Biener <rguenther@suse.de>
20942
20943 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
20944 ref is stored in the loop.
20945 (find_refs_for_sm): Walk only over all stores.
20946 (store_motion_loop): Allocate from lim_bitmap_obstack.
20947 (store_motion): Likewise.
20948
141310ef
RB
209492013-03-21 Richard Biener <rguenther@suse.de>
20950
20951 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
20952 Update virtual SSA form.
20953
5022315a
RO
209542013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20955
20956 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
20957 * configure: Regenerate.
20958 * config.in: Regenerate.
20959 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
20960 if !HAVE_LD_EH_FRAME_CIEV3.
20961
50d4421c
RB
209622013-03-21 Richard Biener <rguenther@suse.de>
20963
20964 * tree-cfg.c (verify_expr_no_block): New function.
20965 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
20966 nor DECL_VALUE_EXPR have locations with associated blocks.
20967 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
20968 (clear_unused_block_pointer): Remove code dealing with
20969 blocks in DECL_DEBUG_EXPR locations.
20970
839b422f
RB
209712013-03-21 Richard Biener <rguenther@suse.de>
20972
20973 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
20974 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
20975 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
20976 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
20977 instead of DECL_DEBUG_EXPR_IS_FROM.
20978 * gimplify.c (gimplify_modify_expr): Likewise.
20979 * tree-cfg.c (verify_expr_location_1): Likewise.
20980 * tree-complex.c (create_one_component_var): Likewise.
20981 * tree-sra.c (create_access_replacement): Likewise.
20982 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
20983 (clear_unused_block_pointer): Likewise.
20984 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
20985 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
20986 * var-tracking.c (var_debug_decl): Likewise.
20987 (track_expr_p): Likewise.
20988 * tree-inline.c (add_local_variables): Likewise. Set
20989 DECL_HAS_DEBUG_EXPR_P after copying it.
20990 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
20991 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
20992
fe04878d
UB
209932013-03-21 Uros Bizjak <ubizjak@gmail.com>
20994
20995 PR bootstrap/56656
20996 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
20997 * configure: Regenerate.
20998 * config.in: Regenerate.
20999 * config/i386/i386.md (*movdf_internal): Use
21000 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
21001 movd instead of movq mnemonic for interunit moves.
21002 (*movdi_internal): Ditto.
21003
bd059b26 210042013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
21005
21006 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
21007 (abd<mode>_3): New pattern.
21008 (aba<mode>_3): New pattern.
21009 (fabd<mode>_3): New pattern.
21010
bd059b26 210112013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
21012
21013 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
21014 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
21015 occurrence of REGISTER_PREFIX as its empty string.
21016
4f1f78b9
JL
210172013-03-20 Jeff Law <law@redhat.com>
21018
21019 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
21020 addititional equivalences for equality comparisons between an SSA_NAME
21021 and a constant where the SSA_NAME was set from a widening conversion.
21022
327a1118
WL
210232013-03-20 Walter Lee <walt@tilera.com>
21024
21025 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
21026
813e0036
UB
210272013-03-20 Uros Bizjak <ubizjak@gmail.com>
21028
21029 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
21030 depending on type attribute.
21031 (*movti_internal): Ditto.
21032 (*movtf_internal): Ditto.
21033 (*movxf_internal): Ditto.
21034 (*movdf_internal): Ditto.
21035 (*movsf_internal): Ditto.
21036
7cf34aae
UB
210372013-03-20 Uros Bizjak <ubizjak@gmail.com>
21038
21039 * config/i386/i386.md (*movti_internal): Set prefix attribute to
21040 maybe_vex for sselog1 and ssemov types.
21041 (*movdi_internal): Reorder operand constraints.
21042 (*movsi_internal): Ditto. Set prefix attribute to
21043 maybe_vex for sselog1 and ssemov types.
21044 (*movtf_internal): Set prefix attribute to maybe_vex
21045 for sselog1 and ssemov types.
21046 (*movdf_internal): Ditto. Set prefix_data16 attribute for
21047 DImode ssemov types. Reorder operand constraints.
21048 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
21049 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
21050 attribute for SImode ssemov types. Reorder operand constraints.
21051
19321415
MJ
210522013-03-20 Martin Jambor <mjambor@suse.cz>
21053
21054 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
21055 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
21056
12211b99 210572013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
21058
21059 * config/rs6000/predicates.md (indexed_address, update_address_mem
21060 update_indexed_address_mem): New predicates.
21061 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
21062 attribute for load/store instructions.
21063 * config/rs6000/dfp.md (movsd_store): Likewise.
21064 (movsd_load): Likewise.
21065 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
21066 (unnamed HI->DI extend define_insn): Likewise.
21067 (unnamed SI->DI extend define_insn): Likewise.
21068 (unnamed QI->SI extend define_insn): Likewise.
21069 (unnamed QI->HI extend define_insn): Likewise.
21070 (unnamed HI->SI extend define_insn): Likewise.
21071 (unnamed HI->SI extend define_insn): Likewise.
21072 (extendsfdf2_fpr): Likewise.
21073 (movsi_internal1): Likewise.
21074 (movsi_internal1_single): Likewise.
21075 (movhi_internal): Likewise.
21076 (movqi_internal): Likewise.
21077 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
21078 attribute for load/store instructions.
21079 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
21080 instructions.
21081 (mov<mode>_softfloat): Likewise.
21082 (mov<mode>_hardfloat32): Likewise.
21083 (mov<mode>_hardfloat64): Likewise.
21084 (mov<mode>_softfloat64): Likewise.
21085 (movdi_internal32): Likewise.
21086 (movdi_internal64): Likewise.
21087 (probe_stack_<mode>): Likewise.
21088
210892013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
21090
21091 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
21092 floating point, and decimal floating point to reload iterator.
21093
21094 * config/rs6000/constraints.md (wl constraint): New constraints to
21095 return FLOAT_REGS if certain options are used to reduce the number
21096 of separate patterns that exist in the file.
21097 (wx constraint): Likewise.
21098 (wz constraint): Likewise.
21099
21100 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
21101 -mdebug=reg, print wg, wl, wx, and wz constraints.
21102 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
21103 Initialize the reload functions for 64-bit binary/decimal floating
21104 point types.
21105 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21106 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21107 create the buffer on the stack to overcome not having a 32-bit
21108 load and store.
21109 (rs6000_emit_move): Likewise.
21110 (rs6000_secondary_memory_needed_rtx): Likewise.
21111 (rs6000_alloc_sdmode_stack_slot): Likewise.
21112 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21113 via xxlxor, just like DFmode 0.0.
21114
21115 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
21116 define as 1 if we are running on a power7 or newer.
21117 (enum r6000_reg_class_enum): Add new constraints.
21118
21119 * config/rs6000/dfp.md (movsd): Delete, combine with binary
21120 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21121 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 21122 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
21123 (movsd splitter): Likewise.
21124 (movsd_hardfloat): Likewise.
21125 (movsd_softfloat): Likewise.
21126
21127 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
21128 binary and decimal floating point moves.
21129 (fmove_ok): New attributes to combine binary and decimal floating
21130 point moves, and to combine power6x (mfpgpr) moves along normal
21131 floating moves.
21132 (real_value_to_target): Likewise.
21133 (f32_lr): Likewise.
21134 (f32_lm): Likewise.
21135 (f32_li): Likewise.
21136 (f32_sr): Likewise.
21137 (f32_sm): Likewise.
21138 (f32_si): Likewise.
21139 (movsf): Combine binary and decimal floating point moves. Combine
21140 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 21141 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
21142 (mov<mode> for SFmode/SDmode); Likewise.
21143 (SFmode/SDmode splitters): Likewise.
21144 (movsf_hardfloat): Likewise.
21145 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
21146 (movsf_softfloat): Likewise.
21147 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
21148
21149 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
21150 wx and wz constraints.
21151
21152 * config/rs6000/constraints.md (wg constraint): New constraint to
21153 return FLOAT_REGS if -mmfpgpr (power6x) was used.
21154
21155 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
21156 constraint.
21157
21158 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
21159 -mdebug=reg, print wg, wl, wx, and wz constraints.
21160 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
21161 Initialize the reload functions for 64-bit binary/decimal floating
21162 point types.
21163 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
21164 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
21165 create the buffer on the stack to overcome not having a 32-bit
21166 load and store.
21167 (rs6000_emit_move): Likewise.
21168 (rs6000_secondary_memory_needed_rtx): Likewise.
21169 (rs6000_alloc_sdmode_stack_slot): Likewise.
21170 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
21171 via xxlxor, just like DFmode 0.0.
21172
c6d5ff83
MM
21173 * config/rs6000/dfp.md (movdd): Delete, combine with binary
21174 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
21175 with other moves by using conditional constraits (wg). Use LFIWZX
21176 and STFIWX for loading SDmode on power7.
21177 (movdd splitters): Likewise.
21178 (movdd_hardfloat32): Likewise.
21179 (movdd_softfloat32): Likewise.
21180 (movdd_hardfloat64_mfpgpr): Likewise.
21181 (movdd_hardfloat64): Likewise.
21182 (movdd_softfloat64): Likewise.
21183
21184 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
21185 64-bit binary and decimal floating point moves.
21186 (FMOVE64X): Likewise.
21187 (movdf): Combine 64-bit binary and decimal floating point moves.
21188 Combine power6x (mfpgpr) moves with other moves by using
21189 conditional constraits (wg).
21190 (mov<mode> for DFmode/DDmode): Likewise.
21191 (DFmode/DDmode splitters): Likewise.
21192 (movdf_hardfloat32): Likewise.
21193 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
21194 (movdf_softfloat32): Likewise.
21195 (movdf_hardfloat64_mfpgpr): Likewise.
21196 (movdf_hardfloat64): Likewise.
21197 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
21198 (movdf_softfloat64): Likewise.
21199 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
21200 (reload_<mode>_load): Move to later in the file so they aren't in
21201 the middle of the floating point move insns.
21202 (reload_<mode>_store): Likewise.
21203
21204 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
21205 constraint.
21206
21207 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
21208 constraint if -mdebug=reg.
bd059b26
UB
21209 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
21210 Enable using dd reload support if needed.
c6d5ff83
MM
21211
21212 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
21213 binary and decimal floating point moves in rs6000.md.
21214 (movtd_internal): Likewise.
21215
21216 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
21217 decimal floating point moves.
21218 (movtf): Likewise.
21219 (movtf_internal): Likewise.
21220 (mov<mode>_internal, TDmode/TFmode): Likewise.
21221 (movtf_softfloat): Likewise.
21222 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
21223
21224 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
21225 movdi_internal64, using wg constraint for move direct operations.
21226 (movdi_internal64): Likewise.
21227
21228 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
21229 MODES_TIEABLE_P for selected modes. Print the numerical value of
21230 the various virtual registers. Use GPR/FPR first/last values,
21231 instead of hard coding the register numbers. Print which modes
21232 have reload functions registered.
bd059b26
UB
21233 (rs6000_option_override_internal): If -mdebug=reg, trace the options
21234 settings before/after setting cpu, target and subtarget settings.
21235 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
21236 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
21237 (rs6000_secondary_reload_fail): Likewise.
21238 (rs6000_secondary_reload_inner): Likewise.
21239
21240 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
21241 macros for first/last GPR and FPR registers.
21242 (LAST_GPR_REGNO): Likewise.
21243 (FIRST_FPR_REGNO): Likewise.
21244 (LAST_FPR_REGNO): Likewise.
21245
21246 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
21247 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
21248 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
21249 (vcond<mode><mode>): Likewise.
21250 (vcondu<mode><mode>): Likewise.
21251 (vector_gtu<mode>): Likewise.
21252 (vector_gte<mode>): Likewise.
21253 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 21254 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
21255 (ior<mode>3): Likewise.
21256 (and<mode>3): Likewise.
21257 (one_cmpl<mode>2): Likewise.
21258 (nor<mode>3): Likewise.
21259 (andc<mode>3): Likewise.
21260
21261 * config/rs6000/constraints.md (wt constraint): New constraint
21262 that returns VSX_REGS if TImode is allowed in VSX registers.
21263
21264 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
21265 constant under VSX.
21266
21267 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
21268 similar to TImode, but it is restricted to being in the GPRs.
21269
21270 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
21271 TImode to occupy a single VSX register.
21272
21273 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
21274 -mvsx-timode for power7/power8.
21275 (power7 cpu): Likewise.
21276 (power8 cpu): Likewise.
21277
21278 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
21279 sure that TFmode/TDmode take up two registers if they are ever
21280 allowed in the upper VSX registers.
21281 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
21282 registers.
21283 (rs6000_init_hard_regno_mode_ok): Likewise.
21284 (rs6000_debug_reg_global): Add debugging for PTImode and wt
21285 constraint. Print if LRA is turned on.
21286 (rs6000_option_override_internal): Give an error if -mvsx-timode
21287 and VSX is not enabled.
21288 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
21289 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
21290 to reg+offset addressing. Use PTImode when checking offset
21291 addresses for validity.
21292 (reg_offset_addressing_ok_p): Likewise.
21293 (rs6000_legitimate_offset_address_p): Likewise.
21294 (rs6000_legitimize_address): Likewise.
21295 (rs6000_legitimize_reload_address): Likewise.
21296 (rs6000_legitimate_address_p): Likewise.
21297 (rs6000_eliminate_indexed_memrefs): Likewise.
21298 (rs6000_emit_move): Likewise.
21299 (rs6000_secondary_reload): Likewise.
21300 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
21301 reloads to fpr registers to continue to use reg+offset addressing,
21302 but 64-bit reloads to altivec registers need reg+reg addressing.
21303 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
21304 it. Treat LO_SUM like a PLUS operation.
21305 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 21306 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
21307 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
21308 registers to share a register with a smaller sized type, since VSX
21309 puts scalars in the upper 64-bits.
21310 (print_operand): Add support for PTImode.
21311 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
21312 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
21313 registers, but don't have arithmetic support.
21314 (rs6000_memory_move_cost): Add test for VSX.
21315 (rs6000_opt_masks): Add -mvsx-timode.
21316
21317 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
21318 for TImode.
21319 (VSs): Likewise.
21320 (VSr): Use wt constraint for TImode.
21321 (VSv): Drop TImode support.
21322 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
21323 (vsx_movti_64bit): Likewise.
21324 (vsx_movti_32bit): Likewise.
21325 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
21326 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
21327 one '?' on the appropriate output constraint. Do not allow TImode
21328 logical operations on 32-bit systems.
21329 (vsx_ior<mode>3): Likewise.
21330 (vsx_xor<mode>3): Likewise.
21331 (vsx_one_cmpl<mode>2): Likewise.
21332 (vsx_nor<mode>3): Likewise.
21333 (vsx_andc<mode>3): Likewise.
21334 (vsx_concat_<mode>): Likewise.
21335 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
21336
21337 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
21338 OPTION_MASK_VSX_TIMODE.
21339 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
21340 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
21341
21342 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
21343 (TI2 iterator): New iterator for TImode, PTImode.
21344 (wd mode attribute): Add values for vector types.
bd059b26
UB
21345 (movti_string): Replace TI move operations with operations for TImode
21346 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
21347 (mov<mode>_string, TImode/PTImode): Likewise.
21348 (movti_ppc64): Likewise.
21349 (mov<mode>_ppc64, TImode/PTImode): Likewise.
21350 (TI mode splitters): Likewise.
21351
21352 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
21353 constraint.
21354
1fc5eced
MG
213552013-03-20 Marc Glisse <marc.glisse@inria.fr>
21356
21357 PR tree-optimization/56355
21358 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
21359 Also handle integers with undefined overflow.
21360
22c4c869
CM
213612013-03-20 Catherine Moore <clm@codesourcery.com>
21362 Maciej W. Rozycki <macro@codesourcery.com>
21363 Tom de Vries <tom@codesourcery.com>
12211b99 21364 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
21365 Iain Sandoe <iain@codesourcery.com>
21366 Nathan Froyd <froydnj@codesourcery.com>
12211b99 21367 Chao-ying Fu <fu@mips.com>
22c4c869
CM
21368
21369 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 21370 Document new function attributes.
22c4c869
CM
21371 * doc/invoke.texi (minterlink-compressed, mmicromips,
21372 m14k, m14ke, m14kec): Document new options.
21373 (minterlink-mips16): Update documentation.
21374 * doc/md.texi (ZC, ZD): Document new constraints.
21375 * configure.ac (gcc_cv_as_micromips): Check if linker
21376 supports the .set micromips directive.
21377 * configure: Regenerate.
21378 * config.in: Regenerate.
21379 * config/mips/mips-tables.opt: Regenerate.
21380 * config/mips/micromips.md: New file.
21381 * constraints.md (ZC, ZD): New constraints.
21382 * config/mips/predicates.md (movep_src_register): New predicate.
21383 (movep_src_operand): New predicate.
21384 (non_volatile_mem_operand): New predicate.
21385 * config/mips/mips.md (multimem): New type.
21386 (length): Differentiate between 17-bit and 18-bit branch offsets.
21387 (MOVEP1, MOVEP2): New mode iterator.
33159866 21388 (mov_<load>l): Use ZC constraint.
22c4c869
CM
21389 (mov_<load>r): Likewise.
21390 (mov_<store>l): Likewise.
21391 (mov_<store>r): Likewise.
21392 (*branch_equality<mode>_inverted): Add microMIPS support.
21393 (*branch_equality<mode>): Likewise.
21394 (*jump_absolute): Likewise.
21395 (indirect_jump_<mode>): Likewise.
21396 (tablejump_<mode>): Likewise.
21397 (<optab>_internal): Likewise.
21398 (sibcall_internal): Likewise.
21399 (sibcall_value_internal): Likewise.
21400 (prefetch): Use constraint ZD.
21401 * config/mips/mips.opt (minterlink-compressed): New option.
21402 (minterlink-mips16): Now an alias for minterlink-compressed.
21403 (mmicromips): New option.
21404 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
21405 (compare_and_swap_12): Likewise.
21406 (sync_add<mode>): Likewise.
21407 (sync_<optab>_12): Likewise.
21408 (sync_old_<optab>_12): Likewise.
21409 (sync_new_<optab>_12): Likewise.
21410 (sync_nand_12): Likewise.
21411 (sync_old_nand_12): Likewise.
21412 (sync_new_nand_12): Likewise.
21413 (sync_sub<mode>): Likewise.
21414 (sync_old_add<mode>): Likewise.
21415 (sync_old_sub<mode>): Likewise.
21416 (sync_new_add<mode>): Likewise.
21417 (sync_new_sub<mode>): Likewise.
21418 (sync_<optab><mode>): Likewise.
21419 (sync_old_<optab><mode>): Likewise.
21420 (sync_new_<optab><mode>): Likewise.
21421 (sync_nand<mode>): Likewise.
21422 (sync_old_nand<mode>): Likewise.
21423 (sync_new_nand<mode>): Likewise.
21424 (sync_lock_test_and_set<mode>): Likewise.
21425 (test_and_set_12): Likewise.
21426 (atomic_compare_and_swap<mode>): Likewise.
21427 (atomic_exchange<mode>_llsc): Likewise.
21428 (atomic_fetch_add<mode>_llsc): Likewise.
21429 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
21430 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
21431 (umips_save_restore_pattern_p): Likewise.
21432 (umips_load_store_pair_p): Likewise.
21433 (umips_output_load_store_pair): Likewise.
21434 (umips_movep_target_p): Likewise.
21435 (umips_12bit_offset_address_p): Likewise.
21436 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
21437 (mips_base_mips16): Rename this...
21438 (mips_base_compression_flags): ...to this. Update all uses.
21439 (mips_attribute_table): Add micromips, nomicromips and nocompression.
21440 (mips_mips16_decl_p): Delete.
21441 (mips_nomips16_decl_p): Delete.
33159866 21442 (mips_get_compress_on_flags): New function.
22c4c869
CM
21443 (mips_get_compress_off_flags): New function.
21444 (mips_get_compress_mode): New function.
21445 (mips_get_compress_on_name): New function.
21446 (mips_get_compress_off_name): New function.
21447 (mips_insert_attributes): Support multiple compression types.
21448 (mips_merge_decl_attributes): Likewise.
21449 (umips_12bit_offset_address_p): New function.
21450 (mips_start_function_definition): Emit .set micromips directive.
21451 (mips_call_may_need_jalx_p): New function.
21452 (mips_function_ok_for_sibcall): Add microMIPS support.
21453 (mips_print_operand_punctuation): Support short delay slots and
21454 compact jumps.
21455 (umips_swm_mask, umips_swm_encoding): New.
21456 (umips_build_save_restore): New function.
21457 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
21458 (was_mips16_p): Remove.
21459 (old_compression_mode): New.
21460 (mips_set_compression_mode): New function.
21461 (mips_set_current_function): Add microMIPS support.
21462 (mips_option_override): Likewise.
21463 (umips_save_restore_pattern_p): New function.
21464 (umips_output_save_restore): New function.
21465 (umips_load_store_pair_p_1): New function.
21466 (umips_load_store_pair_p): New function.
21467 (umips_output_load_store_pair_1): New function.
21468 (umips_output_load_store_pair): New function.
21469 (umips_movep_target_p) New function.
21470 (mips_prepare_pch_save): Add microMIPS support.
21471 * config/mips/mips.h (TARGET_COMPRESSION): New.
21472 (TARGET_CPU_CPP_BUILTINS): Update macro
21473 to use new compression flags and to support microMIPS.
21474 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
21475 (MIPS_ARCH_FLOAT_SPEC): Likewise.
21476 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
21477 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
21478 (ASM_SPEC): Support mmicromips and mno-micromips.
21479 (M16STORE_REG_P): New macro.
21480 (MIPS_CALL): Support TARGET_MICROMIPS.
21481 (MICROMIPS_J): New macro.
21482 (mips_base_mips16): Rename this...
21483 (mips_base_compression_flags): ...to this.
21484 (UMIPS_12BIT_OFFSET_P): New macro.
21485 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
21486 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
214872013-03-20 Richard Biener <rguenther@suse.de>
21488
21489 PR tree-optimization/56661
21490 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
21491 the result does not have to be distinct.
21492
54714c68
RB
214932013-03-20 Richard Biener <rguenther@suse.de>
21494
21495 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
21496 remap_gimple_op_r.
21497
cca1130d 214982013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 21499 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
21500
21501 PR rtl-optimization/56605
21502 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
21503
2a930377
UB
215042013-03-20 Uros Bizjak <ubizjak@gmail.com>
21505
21506 PR bootstrap/56656
21507 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
21508 that require movd instead of movq.
21509
d6d305fe
RB
215102013-03-20 Richard Biener <rguenther@suse.de>
21511
21512 * tree-ssa-structalias.c (struct variable_info): Add pointer
21513 to the first field of an aggregate with sub-vars. Make
21514 this and the pointer to the next subfield its ID.
21515 (vi_next): New function.
21516 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
21517 storedanything_id, integer_id): Increment by one.
21518 (new_var_info, get_call_vi, lookup_call_clobber_vi,
21519 get_call_clobber_vi): Adjust.
21520 (solution_set_expand): Simplify and speedup.
21521 (solution_set_add): Inline into ...
21522 (set_union_with_increment): ... this. Adjust accordingly.
21523 (do_sd_constraint): Likewise.
21524 (do_ds_constraint): Likewise.
21525 (do_complex_constraint): Simplify.
21526 (build_pred_graph): Adjust.
21527 (solve_graph): Likewise. Simplify and speedup.
21528 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
21529 get_constraint_for_component_ref, get_constraint_for_1,
21530 first_vi_for_offset, first_or_preceding_vi_for_offset,
21531 create_function_info_for, create_variable_info_for_1,
21532 create_variable_info_for, intra_create_variable_infos): Adjust.
21533 (init_base_vars): Push NULL for ID zero.
21534 (compute_points_to_sets): Adjust.
21535
a271b42d
RB
215362013-03-20 Richard Biener <rguenther@suse.de>
21537
21538 * cfgloop.c (verify_loop_structure): Streamline and avoid
21539 ICEing on corrupt loop tree.
21540 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
21541 loop tree.
21542
ebd65954
RB
215432013-03-20 Richard Biener <rguenther@suse.de>
21544
21545 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
21546 check whether an SSA update is needed.
21547
4547b7ee
RS
215482013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
21549
21550 * config/mips/constraints.md (T): Rename to...
21551 (Yf): ...this.
21552 (U): Rename to...
21553 (Yd): ...this.
21554 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
21555 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
21556
0b8cdc58
IB
215572013-03-19 Ian Bolton <ian.bolton@arm.com>
21558
21559 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
21560 (*subsi3_carryin_uxtw): Likewise.
21561
5977a10d
IB
215622013-03-19 Ian Bolton <ian.bolton@arm.com>
21563
21564 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
21565 (*rorsi3_insn_uxtw): Likewise.
21566
bd83ff2c
IB
215672013-03-19 Ian Bolton <ian.bolton@arm.com>
21568
21569 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
21570 (*extrsi5_insn_uxtw): Likewise.
21571
ba65123c
RB
215722013-03-19 Richard Biener <rguenther@suse.de>
21573
21574 PR tree-optimization/56273
21575 * passes.c (init_optimization_passes): Move second VRP after DOM.
21576
2eac0476
UB
215772013-03-19 Uros Bizjak <ubizjak@gmail.com>
21578
21579 * config/i386/i386.md (*movti_internal): Merge from
21580 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
21581 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
21582 nox64 isa attributes.
21583
6e55eda7
RB
215842013-03-18 Richard Biener <rguenther@suse.de>
21585
21586 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
21587 (unite): Likewise.
21588 (merge_node_constraints): Likewise.
21589 (build_succ_graph): Likewise.
21590 (valid_graph_edge): Inline into single caller.
21591 (unify_nodes): Likewise. Use bitmap_set_bit return value
21592 and cache varinfo.
21593 (scc_visit): Fix formatting and variable use.
21594 (do_sd_constraint): Use gcc_checking_assert.
21595 (do_ds_constraint): Likewise.
21596 (do_complex_constraint): Likewise.
21597 (condense_visit): Likewise. Cleanup.
21598 (dump_pred_graph): New function.
21599 (perform_var_substitution): Dump the pred-graph before
21600 variable substitution.
21601 (find_equivalent_node): Use gcc_checking_assert.
21602 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
21603
4bdd44c4
RB
216042013-03-18 Richard Biener <rguenther@suse.de>
21605
21606 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
21607 Remove cond_expr_stmt_list argument and do not gimplify the
21608 built expression.
21609 (vect_loop_versioning): Adjust.
21610 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
21611 Cleanup to use less temporaries.
21612 (vect_create_data_ref_ptr): Cleanup.
21613
38c56a5b
JJ
216142013-03-18 Jakub Jelinek <jakub@redhat.com>
21615
21616 PR tree-optimization/56635
21617 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
21618 require types_compatible_p types.
21619
20b2e6a0
NC
216202013-03-18 Nick Clifton <nickc@redhat.com>
21621
a6178a25
NC
21622 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
21623 spurious backslash.
21624
20b2e6a0
NC
21625 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
21626 Add missing line to comment describing function.
21627
92608d0e
RB
216282013-03-18 Richard Biener <rguenther@suse.de>
21629
21630 PR tree-optimization/56210
21631 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21632 Handle string / character search functions.
21633 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
21634
31348d52
RB
216352013-03-18 Richard Biener <rguenther@suse.de>
21636
21637 PR middle-end/56483
21638 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
21639 and implement properly.
21640 * gimple.h (gimple_cond_single_var_p): Remove.
21641
fcac74a1
RB
216422013-03-18 Richard Biener <rguenther@suse.de>
21643
21644 * tree-data-ref.h (find_data_references_in_loop): Declare.
21645 * tree-data-ref.c (get_references_in_stmt): Use a stack
21646 vector pre-allocated in the callers.
21647 (find_data_references_in_stmt): Adjust.
21648 (graphite_find_data_references_in_stmt): Likewise.
21649 (create_rdg_vertices): Likewise.
21650 (find_data_references_in_loop): Export.
21651 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
21652 Compute dependences here...
21653 (vect_analyze_data_refs): ...not here. When we encounter
21654 a non-vectorizable data reference in basic-block vectorization
21655 truncate the data reference vector. Do not bother to
21656 fixup data-dependence information for gather loads.
21657 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
21658 of data references, as reported.
21659
0d5a1b56
RB
216602013-03-18 Richard Biener <rguenther@suse.de>
21661
21662 PR tree-optimization/3713
21663 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
21664 has_constants and expr.
21665 (stmt_has_constants): Properly valueize SSA names when deciding
21666 whether the stmt has constants.
21667
789c34e3
RB
216682013-03-18 Richard Biener <rguenther@suse.de>
21669
21670 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
21671 whole function when there is nothing to do.
21672 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
21673 * tree-vectorizer.c (vectorize_loops): Update virtual and
21674 loop-closed SSA once.
21675 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
21676
076b4605
RB
216772013-03-18 Richard Biener <rguenther@suse.de>
21678
21679 PR middle-end/56113
21680 * domwalk.c (bb_postorder): New global static.
21681 (cmp_bb_postorder): New function.
21682 (walk_dominator_tree): Replace scheme imposing an order for
21683 visiting dominator sons by one sorting them at the time they
21684 are pushed on the stack.
21685
bdb01696
RB
216862013-03-18 Richard Biener <rguenther@suse.de>
21687
21688 PR tree-optimization/39326
21689 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
21690 (struct mem_ref): Replace mem member with ao_ref typed member.
21691 (MEM_ANALYZABLE): Adjust.
21692 (memref_eq): Likewise.
21693 (mem_ref_alloc): Likewise.
21694 (gather_mem_refs_stmt): Likewise.
21695 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
21696 (execute_sm_if_changed_flag_set): Adjust.
21697 (execute_sm): Likewise.
21698 (ref_always_accessed_p): Likewise.
21699 (refs_independent_p): Likewise.
21700 (can_sm_ref_p): Likewise.
21701
12d2dc5e
JJ
217022013-03-18 Jakub Jelinek <jakub@redhat.com>
21703
21704 PR c/56566
21705 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
21706 return 1 even for !unsignedp.
21707
286fb677
UB
217082013-03-17 Uros Bizjak <ubizjak@gmail.com>
21709
21710 * config/i386/i386.md (isa): Add x64 and nox64.
21711 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
21712 (*pushtf): Enable *roF alternative for x64 isa only.
21713 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
21714 mode attribute of integer alternatives to DImode for TARGET_64BIT.
21715 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
21716 (*movtf_internal): Merge from *movtf_internal_rex64 and
21717 *movtf_internal_sse. Use x64 and nox64 isa attributes.
21718 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
21719 nox64 isa attributes.
21720 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
21721 nox64 isa attributes.
21722 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
21723
88b97037
UB
217242013-03-17 Uros Bizjak <ubizjak@gmail.com>
21725
21726 * config/alpha/alpha.c (TARGET_LRA_P): New define.
21727
9f4f1735
JJ
217282013-03-17 Jakub Jelinek <jakub@redhat.com>
21729
21730 PR target/56640
21731 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
21732 class names. Remove trailing comma after "ALL_REGS".
21733
48f4a6fa
JH
217342013-03-16 Jan Hubicka <jh@suse.cz>
21735
21736 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
21737 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
21738 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
21739 of cgraph_get_create_node.
21740 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
21741
98e81123
JM
217422013-03-16 Jason Merrill <jason@redhat.com>
21743
21744 PR debug/49090
21745 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
21746 with DW_AT_default_value.
21747
8a298c04
JJ
217482013-03-16 Jakub Jelinek <jakub@redhat.com>
21749
21750 * BASE-VER: Set to 4.9.0.
21751
4323afa0
AK
217522013-03-14 Andi Kleen <ak@linux.intel.com>
21753
21754 PR target/56619
21755 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
21756 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
21757 Document _x* TSX intrinsics.
21758
b3c0d469
JJ
217592013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
21760 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
21761
21762 * configure.ac: Add MicroBlaze TLS support detection.
21763 * configure: Regenerate.
88b97037
UB
21764 * config/microblaze/microblaze-protos.h
21765 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
21766 symbol_mentioned_p, label_mentioned_p): Add prototypes.
21767 * config/microblaze/microblaze.c (microblaze_address_type): Add
21768 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
21769 (microblaze_address_info): Add tls_reloc.
21770 (TARGET_HAVE_TLS): Define.
21771 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
21772 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
21773 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
21774 load_tls_operand, microblaze_call_tls_get_addr,
21775 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
21776 (microblaze_classify_unspec): Handle UNSPEC_TLS.
21777 (get_base_reg): Use microblaze_tls_symbol_p.
21778 (microblaze_classify_address): Handle TLS.
88b97037
UB
21779 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
21780 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
21781 (microblaze_legitimize_address): Handle TLS.
21782 (microblaze_address_insns): Handle ADDRESS_TLS.
21783 (pic_address_needs_scratch): Handle TLS.
21784 (print_operand_address): Handle TLS.
21785 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
21786 (microblaze_expand_move): Handle TLS.
88b97037
UB
21787 (microblaze_legitimate_constant_p): Check
21788 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
21789 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
21790 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
21791 (PIC_OFFSET_TABLE_REGNUM): Set.
21792 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
21793 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
21794 (addsi3, movsi_internal2, movdf_internal): Update constraints
21795 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
21796 (move_operand): Redefine as move_src_operand,
21797 check microblaze_tls_referenced_p.
8cc9a5a5 21798
d803a491
IB
217992013-03-14 Ian Bolton <ian.bolton@arm.com>
21800
21801 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
21802 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
21803
a8504f22
IB
218042013-03-14 Ian Bolton <ian.bolton@arm.com>
21805
21806 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
21807 CC mode for AND.
21808
df2dfaea
JJ
218092013-03-14 Jakub Jelinek <jakub@redhat.com>
21810
fbd28bc3
JJ
21811 PR tree-optimization/53265
21812 * common.opt (Waggressive-loop-optimizations): New option.
21813 * tree-ssa-loop-niter.c: Include tree-pass.h.
21814 (do_warn_aggressive_loop_optimizations): New function.
21815 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
21816 if number_of_latch_executions returned constant.
21817 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
21818 early. If number_of_latch_executions returned constant, set
21819 nb_iterations_upper_bound back to it.
21820 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
21821 field.
21822 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
21823 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
21824
df2dfaea
JJ
21825 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
21826 (MULTILIB_OSDIRNAMES): Set.
21827 * genmultilib: If defaultosdirname doesn't start with :: , set
21828 defaultosdirname2 instead, clear it and emit two . multilib_raw
21829 entries instead of just one.
21830
ee0d2b68
KK
218312013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
21832
21833 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
21834 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
21835 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
21836 (SUBTARGET_OVERRIDE_OPTIONS): New.
21837
decc676e
OE
218382013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
21839
21840 PR target/49880
21841 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
21842 (musermode): Convert to Var(TARGET_USERMODE).
21843 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
21844 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
21845 * config/sh/sh.c (sh_option_override): Use
21846 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
21847 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
21848 condition.
21849 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
21850 TARGET_SH4.
21851 (udivsi3_i4_single, divsi3_i4_single): Use
21852 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
21853
f4b719c7
DK
218542013-03-13 Dave Korn <dave.korn.cygwin@....>
21855
21856 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
21857 default setting.
21858
c40eced0
RB
218592013-03-13 Richard Biener <rguenther@suse.de>
21860
21861 PR tree-optimization/56608
21862 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
21863 calls when vectorizing basic-blocks.
21864
1bfa5973
JJ
218652013-03-13 Jakub Jelinek <jakub@redhat.com>
21866
21867 PR plugins/45078
21868 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
21869 tm_file.
21870
6fcf5434
JJ
218712013-03-12 Jakub Jelinek <jakub@redhat.com>
21872
21873 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
21874
4f38fa8c
JH
218752013-03-11 Jan Hubicka <jh@suse.cz>
21876
21877 PR lto/56557
21878 * lto-streamer-out.c (output_symbol_p): Skip references from
21879 constructors of external variables.
21880
c5c5ba89
JH
218812013-03-11 Jan Hubicka <jh@suse.cz>
21882
21883 PR middle-end/56571
21884 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
21885 from pseudos.
21886 * emit-rtl.c (verify_rtx_sharing): Likewise.
21887 (copy_insn_1): Likewise.
21888 * rtl.c (copy_rtx): Likewise.
21889
c2a939b1
GJL
218902013-03-11 Georg-Johann Lay <avr@gjlay.de>
21891
21892 PR target/56591
21893 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
21894 output_operand_lossage message.
88b97037 21895
3c3279fb
RE
218962013-03-11 Richard Earnshaw <rearnsha@arm.com>
21897
21898 PR target/56470
21899 * arm.c (shift_op): Validate RTL pattern on the fly.
21900 (arm_print_operand, case 'S'): Don't use shift_operator to validate
21901 the RTL.
21902
aef5ef9d
JDA
219032013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21904
21905 PR target/56347
21906 * config/pa/pa.md (call_value): Check for calls to powf and direct to
21907 new call patterns that clobber %fr12.
21908 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
21909 split and postreload patterns.
21910 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
21911 registers %fr12 and %fr12R as call used.
21912
456610d3
SB
219132013-03-09 Steven Bosscher <steven@gcc.gnu.org>
21914
21915 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
21916 (canon_address, record_store, replace_read, check_mem_read_rtx,
21917 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
21918 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
21919 rest_of_handle_dse): Likewise.
21920
4b1baac8
RS
219212013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
21922
21923 PR middle-end/56524
21924 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
21925 Add base_optabs.
21926 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
21927 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
21928 (save_optabs_if_changed): Replace with...
21929 (init_tree_optimization_optabs): ...this.
21930 * optabs.c (save_optabs_if_changed): Rename to...
21931 (init_tree_optimization_optabs): ...this. Take the optimization node
21932 as argument. Do nothing if the base optabs are already correct.
21933 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
21934 to recompute optabs.
21935 * function.h (function): Remove optabs field.
21936 * function.c (invoke_set_current_function_hook): Call
21937 init_tree_optimization_optabs. Use the result to initialize
21938 this_fn_optabs.
21939
b7a78683
AH
219402013-02-27 Aldy Hernandez <aldyh@redhat.com>
21941
21942 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
21943 if GTMA_HAS_NO_INSTRUMENTATION.
21944 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
21945 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
21946 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
21947 * gimple-pretty-print.c (dump_gimple_transaction): Handle
21948 GTMA_HAS_NO_INSTRUMENTATION.
21949
6384c29b
JJ
219502013-03-08 Jakub Jelinek <jakub@redhat.com>
21951
21952 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
21953 libasan_preinit.o.
21954
ecd4f20a
MP
219552013-03-08 Marek Polacek <polacek@redhat.com>
21956 Jakub Jelinek <jakub@redhat.com>
21957
21958 PR tree-optimization/56478
21959 * predict.c (is_comparison_with_loop_invariant_p): Change the
21960 type of loop_step to tree.
21961 (predict_loops): Adjust.
21962 (predict_iv_comparison): Perform the computations on double_ints.
21963
64366d35
RB
219642013-03-08 Richard Biener <rguenther@suse.de>
21965
21966 PR tree-optimization/56570
21967 * tree-cfg.c (verify_expr_location_1): Verify locations for
21968 DECL_DEBUG_EXPR.
21969 * tree-sra.c (create_access_replacement): Strip locations
21970 from DECL_DEBUG_EXPRs.
21971
a9d5a059
RB
219722013-03-08 Richard Biener <rguenther@suse.de>
21973
21974 * tree-inline.c (expand_call_inline): Do not associate
21975 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
21976 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
21977
b7aa4e9a
RB
219782013-03-08 Richard Biener <rguenther@suse.de>
21979
21980 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
21981 or block changes with -Og. Fix for location / block encoding
21982 changes and PHI arguments with locations.
21983
c4c2f9fa
SB
219842013-03-07 Steven Bosscher <steven@gcc.gnu.org>
21985
21986 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
21987 for all counters.
21988 (struct output_info): Likewise.
21989 (register_overhead): Remove bad gcc_assert.
21990 (bitmap_find_bit): If there is only a single bitmap element, do not
21991 count a miss as a search.
21992 (print_statistics): Update for counter type changes.
21993 (dump_bitmap_statistics): Likewise. Print headers such that they
21994 are properly lined up with the printed counters.
21995
5bf6606a
JJ
219962013-03-07 Jakub Jelinek <jakub@redhat.com>
21997
21998 PR tree-optimization/56559
21999 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
22000 check that it has only a single use.
22001
2c653d46
RB
220022013-03-07 Richard Biener <rguenther@suse.de>
22003
22004 * doc/invoke.texi (fwhole-program): Discourage use in combination
22005 with -flto.
22006
a72d8780
JJ
220072013-03-06 Jakub Jelinek <jakub@redhat.com>
22008
01a454df
JJ
22009 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
22010
c1781047
JJ
22011 PR tree-optimization/56539
22012 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
22013 instead of GSI_CONTINUE_LINKING as last argument to
22014 force_gimple_operand_gsi. Adjust function comment.
22015
9772c47a
JJ
22016 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
22017 aarch64-cores.def.
22018
a72d8780
JJ
22019 PR middle-end/56548
22020 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
22021 promoted mode, convert the result back to the original mode.
22022
fa5556de
RB
220232013-03-06 Richard Biener <rguenther@suse.de>
22024
22025 PR middle-end/56294
22026 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
22027 (insert_updated_phi_nodes_compare_uids): New function.
22028 (update_ssa): Sort symbols_to_rename after UID before
22029 traversing it to insert PHI nodes.
22030
010403d1
RB
220312013-03-06 Richard Biener <rguenther@suse.de>
22032
22033 PR middle-end/50494
22034 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
22035 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
22036
22037 Revert
22038 2013-02-13 Richard Biener <rguenther@suse.de>
22039
22040 PR lto/50494
22041 * varasm.c (output_constant_def_1): Get the decl representing
22042 the constant as argument.
22043 (output_constant_def): Wrap output_constant_def_1.
22044 (make_decl_rtl): Use output_constant_def_1 with the decl
22045 representing the constant.
22046 (build_constant_desc): Optionally re-use a decl already
22047 representing the constant.
22048 (tree_output_constant_def): Adjust.
22049
3c27ce4c
JY
220502013-03-06 Joey Ye <joey.ye@arm.com>
22051
22052 PR lto/50293
22053 * gcc.c (convert_white_space): New function.
22054 (main): Handles white space in function name.
22055
8f6d1c86
OE
220562013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
22057
22058 PR target/56529
22059 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
22060 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
22061 to SH_DIV_CALL_TABLE for TARGET_SH2.
22062 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
22063 list.
22064 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
22065 call-table options.
22066
798a209f
SA
220672013-03-05 Sterling Augustine <saugustine@google.com>
22068 Cary Coutant <ccoutant@google.com>
22069
22070 PR debug/55364
22071 * dwarf2out.c (resolve_addr): Don't call
22072 remove_loc_list_addr_table_entries a second time for the same
22073 expression.
22074
6cfa417f 220752013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 22076
6cfa417f
JJ
22077 PR debug/56510
22078 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
22079 (avoid_complex_debug_insns): New function.
22080 (expand_debug_locations): Call it.
22081
22082 PR rtl-optimization/56484
22083 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
22084 lifetimes of hard registers on small register class machines.
22085
220862013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
22087
22088 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 22089 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 22090 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
22091 fast_interrupt.
22092 (microblaze_fast_interrupt_function_p): New function.
22093 (microblaze_is_interrupt_handler): Rename to
22094 microblaze_is_interrupt_variant and add fast_interrupt check.
22095 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
22096 (save_restore_insns): Likewise.
22097 (compute_frame_size): Likewise.
22098 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
22099 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
22100 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
22101 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
22102 microblaze_is_interrupt_variant.
22103
731aefac
KT
221042013-03-05 Kai Tietz <ktietz@redhat.com>
22105
22106 * sdbout.c (sdbout_one_type): Switch to current function's section
22107 supporting cold/hot.
22108
a72d8780 221092013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
22110
22111 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
22112 -mxl-reorder.
22113
334e71e8
JJ
221142013-03-05 Jakub Jelinek <jakub@redhat.com>
22115
0b50e654
JJ
22116 PR middle-end/56461
22117 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
22118 if VALGRIND_GET_VBITS is defined, temporarily make object
22119 memory all defined, and restore previous valgrind addressability
22120 and definability afterwards. Free this_object at the end.
22121
4ccf8f43
JJ
22122 PR middle-end/56461
22123 * lra.c (lra): Call lra_clear_live_ranges if live_p,
22124 right before calling lra_create_live_ranges, also call it
22125 when clearing live_p. Only call lra_clear_live_ranges
22126 at the end if live_p.
22127
334e71e8
JJ
22128 PR middle-end/56461
22129 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
22130
9ca966ca
RB
221312013-03-05 Richard Biener <rguenther@suse.de>
22132
22133 PR tree-optimization/56521
22134 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
22135 value-id.
22136
d273b176
SB
221372013-03-05 Steven Bosscher <steven@gcc.gnu.org>
22138
22139 PR c++/55135
22140 * except.h (remove_unreachable_eh_regions): New prototype.
22141 * except.c (remove_eh_handler_splicer): New function, split out
22142 of remove_eh_handler.
22143 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
22144 warning about running it on many EH regions one at a time.
22145 (remove_unreachable_eh_regions_worker): New function, walk the
22146 EH tree in depth-first order and remove non-marked regions.
22147 (remove_unreachable_eh_regions): New function.
22148 * tree-eh.c (mark_reachable_handlers): New function, split out
22149 from remove_unreachable_handlers.
22150 (remove_unreachable_handlers): Use mark_reachable_handlers and
22151 remove_unreachable_eh_regions.
22152 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
22153 and remove_unreachable_eh_regions.
22154
5e7f1aef
RB
221552013-03-05 Richard Biener <rguenther@suse.de>
22156
22157 PR middle-end/56525
22158 * loop-init.c (fix_loop_structure): Remove loops in two stages,
22159 not freeing them until the end.
22160
f276b762
AK
221612013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22162
22163 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
22164
12a43ab8
RB
221652013-03-05 Richard Biener <rguenther@suse.de>
22166
22167 PR tree-optimization/56270
22168 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
22169 of loads after scheduling an SLP instance.
22170
93675444
JJ
221712013-03-05 Jakub Jelinek <jakub@redhat.com>
22172
db4138e3
JJ
22173 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
22174 tic6x.exp.
22175 (check_gcc_parallelize): Run guality.exp as a separate job from
22176 vect.exp with unsorted.exp and $(dg_target_exps) separately from
22177 struct-layout-1.exp with stackalign.exp.
22178
dd3d1ec0
JJ
22179 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
22180
b8d381a3
JJ
22181 PR middle-end/56461
22182 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
22183 load_index sbitmap even if some bit in it isn't set.
22184
b4f9786b
JJ
22185 PR middle-end/56461
22186 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
22187 (discover_iteration_bound_by_body_walk): Change queues to
22188 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
22189 spelling in comment. Call safe_push on queues[bound_index] directly.
22190 Release queues[queue_index] in every iteration unconditionally.
22191 Release bounds vector.
22192
93675444
JJ
22193 PR middle-end/56461
22194 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
22195 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
22196 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
22197 inner_phis vector.
22198
3e492e9c
RB
221992013-03-05 Richard Biener <rguenther@suse.de>
22200
22201 PR lto/56515
22202 * tree-inline.c (remap_blocks_to_null): New function.
22203 (expand_call_inline): When expanding a call stmt without
22204 an associated block inline remap all callee blocks to NULL.
22205
a5d1569a
JJ
222062013-03-05 Jakub Jelinek <jakub@redhat.com>
22207
86efb5cd
JJ
22208 PR rtl-optimization/56494
22209 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
22210 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
22211 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
22212
85f5dbea
JJ
22213 PR middle-end/56461
22214 * sel-sched-ir.c (free_sched_pools): Release
22215 succs_info_pool.stack[succs_info_pool.max_top] vectors too
22216 if succs_info_pool.max_top isn't -1.
22217
a5d1569a
JJ
22218 PR bootstrap/56509
22219 * opts.c (opts_obstack, opts_concat): Moved to...
22220 * opts-common.c (opts_obstack, opts_concat): ... here.
22221
4432aa6c
JJ
222222013-03-04 Jakub Jelinek <jakub@redhat.com>
22223
22224 PR middle-end/56461
22225 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
22226
f3a1fb91
MJ
222272013-03-04 Martin Jambor <mjambor@suse.cz>
22228
22229 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
22230 all appropriate places.
22231
22110e6c
EB
222322013-01-04 Eric Botcazou <ebotcazou@adacore.com>
22233
22234 PR tree-optimization/56424
22235 * ipa-split.c (split_function): Do not set the RSO flag if result is
22236 not by reference and its type is a register type.
22237
a72d8780 222382013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 22239
88b97037 22240 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 22241 (microblaze_legitimate_pic_operand): Likewise
88b97037 22242 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
22243 new function microblaze_legitimate_pic_operand
22244 * config/microblaze/microblaze-protos.h
22245 (microblaze_legitimate_pic_operand): Declare.
22246
a72d8780 222472013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 22248
a72d8780 22249 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 22250 New predicate for supported rtx code types.
a72d8780 22251 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
22252 call_insn_simple_operand predicate.
22253
541d9ac8
JJ
222542013-03-04 Jakub Jelinek <jakub@redhat.com>
22255
5eb010bc
JJ
22256 PR middle-end/56461
22257 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
22258 partitions.ordered_remove.
22259
30862efc
JJ
22260 PR middle-end/56461
22261 * tree-vect-stmts.c (vectorizable_conversion): Don't call
22262 vec_oprnds0.create (1) for modifier == NONE.
22263
8930f723
JJ
22264 PR middle-end/56461
22265 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
22266 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
22267 vec_oprnds1 right before pushing anything to it for
22268 scalar_shift_arg.
22269
541d9ac8
JJ
22270 PR middle-end/56461
22271 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
22272 set nbbs to 0 instead of having separate code path.
22273 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
22274 instead of false as last argument if returning NULL.
22275
7aa7f2e3
SL
222762013-03-03 Sandra Loosemore <sandra@codesourcery.com>
22277
22278 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
22279 the attribute is now called "target" instead of "option".
22280 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
22281 * doc/tm.texi.in (Target Attributes): Likewise document the correct
22282 attribute/pragma name for TARGET_OPTION_VALID_P and
22283 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
22284 * doc/tm.texi: Regenerated.
22285
8930f723 222862013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 22287
8930f723 22288 * config/microblaze/microblaze.c:
cb8a1637 22289 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
22290 * config/microblaze/microblaze.h: Add -mxl-reorder to
22291 DRIVER_SELF_SPECS.
22292 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
22293 instructions emitted if TARGET_REORDER.
88b97037
UB
22294 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
22295 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 22296 separately.
cb8a1637 22297
4dc1d68c
XDL
222982013-03-01 Xinliang David Li <davidxl@google.com>
22299
22300 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
22301 walk length.
22302
689eaba3
JJ
223032013-03-01 Jakub Jelinek <jakub@redhat.com>
22304
9d676bf6
JJ
22305 PR middle-end/56461
22306 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
22307 vector even when returning true. Fix up function comment formatting.
22308
caff7edf
JJ
22309 PR middle-end/56461
22310 * ira-build.c (ira_loop_nodes_count): New variable.
22311 (create_loop_tree_nodes): Initialize it.
22312 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
22313
b6b9227d
JJ
22314 PR middle-end/56461
22315 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
22316 method on dr_chain and result_chain.
22317 * tree-vect-stmts.c (vectorizable_store): Only call
22318 result_chain.create if j == 0.
22319
689eaba3
JJ
22320 PR middle-end/56461
22321 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
22322 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
22323 before overwriting it.
22324
40bf31ed
TB
223252013-03-01 Tobias Burnus <burnus@net-b.de>
22326
22327 * doc/extended.texi (C Extensions): Change order in @menu
22328 to match @node.
22329 (Other MIPS Built-in Functions): Move last MIPS entry before
22330 "picoChip Built-in Functions".
22331 (SH Built-in Functions): Move after RX Built-in Functions.
22332 * doc/gcc.texi (Introduction): Change order in @menu
22333 to match @node.
22334 * doc/md.texi (Constraints): Ditto.
22335 * gty.texi (Type Information): Ditto.
22336 (User-provided marking routines for template types): Make
22337 subsection.
22338 * doc/invoke.texi (AArch64 Options): Move before
22339 "Adapteva Epiphany Options".
22340
e664c61c
KS
223412013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
22342 Jakub Jelinek <jakub@redhat.com>
22343
22344 PR sanitizer/56454
22345 * asan.c (gate_asan): Lookup no_sanitize_address instead of
22346 no_address_safety_analysis attribute.
22347 * doc/extend.texi (no_address_safety_attribute): Rename to
22348 no_sanitize_address attribute, mention no_address_safety_analysis
22349 attribute as deprecated alias.
22350
37b5ec8f
JJ
223512013-02-28 Jakub Jelinek <jakub@redhat.com>
22352
22353 PR middle-end/56461
22354 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
22355 type to vec<vec<tree> > *.
22356 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
22357 to be vec<tree> instead of vec<tree> *, set vec_defs
22358 to vNULL and call vec_defs.create (number_of_vects), adjust other
22359 uses of vec_defs.
22360 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
22361 vectorizable_condition): Adjust vect_get_slp_defs callers.
22362
ba96cdfb
JG
223632013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22364
22365 * config/aarch64/aarch64.c
22366 (aarch64_float_const_representable): Remove unused variable.
22367
6f549691
JG
223682013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22369
22370 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
22371
af55e82d
JG
223722013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22373
22374 * config/aarch64/aarch64-builtins.c
22375 (aarch64_init_simd_builtins): Make static.
22376
1df3f464
JG
223772013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
22378
22379 * config/aarch64/aarch64.c
22380 (aarch64_simd_make_constant): Make static.
22381
f8f42513
MJ
223822013-02-28 Martin Jambor <mjambor@suse.cz>
22383
22384 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
22385 with no initialization to the RHS of debug statements.
22386
b48b3fc4
MJ
223872013-02-28 Martin Jambor <mjambor@suse.cz>
22388
22389 PR tree-optimization/56294
22390 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
22391 Adjust dumping.
22392 (get_access_replacement): Do not call create_access_replacement.
22393 Assert a replacement exists.
22394 (get_repl_default_def_ssa_name): Create the replacement declaration
22395 itself.
22396
c3ae224c
RR
223972013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22398
22399 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
22400 final_end_function.
22401
45fa0eef
MP
224022013-02-28 Marek Polacek <polacek@redhat.com>
22403
22404 PR rtl-optimization/56466
22405 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
22406 if we're changing a loop.
22407 (peel_loops_completely): Likewise.
22408
502c067d
PC
224092013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
22410
22411 PR c++/55813
22412 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
22413
ff24afc8
GJL
224142013-02-28 Georg-Johann Lay <avr@gjlay.de>
22415
22416 PR target/56445
22417 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
22418 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
22419 INTX_FTYPE_FX, FX_FTYPE_INTX.
22420 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
22421
c7b1fc1b
GJL
224222013-02-28 Georg-Johann Lay <avr@gjlay.de>
22423
22424 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
22425 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
22426 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
22427 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
22428 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
22429 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
22430 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
22431 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
22432 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
22433 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
22434 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
22435 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
22436 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
22437 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
22438 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
22439 (avrxmega6): Increase max flash segments from 5 to 6.
22440 * config/avr/t-multilib: Regenerate.
22441 * config/avr/avr-tables.opt: Regenerate.
22442 * doc/avr-mmcu.texi: Regenerate.
22443
4a0e3cfe
GJL
224442013-02-28 Georg-Johann Lay <avr@gjlay.de>
22445
22446 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
22447 (avr_device_to_arch): Rename to avr_device_to_ld.
22448 (avr_device_to_as): New prototype.
22449 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
22450 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
22451 * config/avr/driver-avr.c (avr_device_to_as): New.
22452 (avr_device_to_arch): Rename to avr_device_to_ld.
22453
97785e52
JJ
224542013-02-27 Jakub Jelinek <jakub@redhat.com>
22455
3f292312
JJ
22456 PR middle-end/56461
22457 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
22458 method on dr_chain and result_chain.
22459
a344216b
JJ
22460 PR middle-end/56461
22461 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
22462 pointer_set_destroy on not_executed_last_iteration.
22463
f121ad02 22464 PR middle-end/56461
88b97037 22465 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 22466
307f83a3
JJ
22467 PR middle-end/56461
22468 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
22469 FOR_EACH_DEFINED_FUNCTION when freeing state.
22470
e19624ee
JJ
22471 PR middle-end/56461
22472 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
22473 pool_free.
22474 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
22475 overwriting it.
22476
90e709fd
JJ
22477 PR middle-end/56461
22478 * ipa-cp.c (decide_whether_version_node): Call vec_free on
22479 known_aggs[i].items and release known_aggs vector.
22480
97785e52
JJ
22481 PR middle-end/56461
22482 * ipa-reference.c (propagate): Free node_info even for alias nodes.
22483
224842013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 22485
97785e52
JJ
22486 * config/microblaze/microblaze.c (microblaze_emit_compare):
22487 Use xor for EQ/NE comparisions.
22488 * config/microblaze/microblaze.md (cstoresf4): Add constraints
22489 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 22490
6fa5e0ed
JJ
224912013-02-27 Jakub Jelinek <jakub@redhat.com>
22492
22493 PR middle-end/56461
22494 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
22495 vector.
22496 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
22497 vec_safe_push, always update *slot.
22498 (redirect_edge_var_map_clear): Use vec_free.
22499 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
22500 (free_var_map_entry): Use vec_free.
22501 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
22502 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
22503
436a956a
AB
225042013-02-27 Andrey Belevantsev <abel@ispras.ru>
22505
22506 PR middle-end/45472
436a956a
AB
22507 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
22508 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
22509 Reorder tests for speculativeness in the logical and operator.
22510
f5c2caca
JJ
225112013-02-27 Jakub Jelinek <jakub@redhat.com>
22512
0fcb564b
JJ
22513 * incpath.c (add_standard_paths): Use reconcat instead of concat
22514 where appropriate and avoid leaking memory.
22515
dc357798
JJ
22516 * opts.h: Include obstack.h.
22517 (opts_concat): New prototype.
22518 (opts_obstack): New declaration.
22519 * opts.c (opts_concat): New function.
22520 (opts_obstack): New variable.
22521 (init_options_struct): Call gcc_init_obstack on opts_obstack.
22522 (finish_options): Use opts_concat instead of concat
22523 and XOBNEWVEC instead of XNEWVEC.
22524 * opts-common.c (generate_canonical_option, decode_cmdline_option,
22525 generate_option): Likewise.
22526 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
22527 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
22528
f5c2caca
JJ
22529 PR target/56455
22530 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
22531 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
22532
d0163673
JJ
225332013-02-26 Jakub Jelinek <jakub@redhat.com>
22534
22535 PR middle-end/56461
22536 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
22537
b5ad2b8e
JR
225382013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22539
22540 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
22541 (arm_block_move_unaligned_straight): Likewise.
22542 (arm_adjust_block_mem): Likewise.
22543
9b639e2c
JR
225442013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
22545
22546 PR target/48901
22547 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
22548 temp, cond and label.
22549 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
22550
e13a0ccb
JR
22551 PR target/52500
22552 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
22553 * config/c6x/c6x.h (dbx_register_map): Update declaration.
22554
fbe4f171
JR
22555 PR target/52501
22556 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
22557 of prologue/epilogue functions.
22558
ae006543
JR
22559 PR target/52550
22560 * config/tilegx/tilegx.c (tilegx_expand_prologue):
22561 Remove unused variable cfa_offset.
22562 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
22563
c81369fa
JR
22564 PR target/54639
22565 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
22566 type promotion to unsigned.
22567
f8a8fea7
JR
22568 PR target/54640
22569 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
22570 for HOST_WIDE_INT of 32 bit / same size as int.
22571 (arm_block_move_unaligned_straight): Likewise.
22572 (arm_adjust_block_mem): Likewise.
22573
f8be5169
JR
22574 PR target/54662
22575 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
22576 ALL_CFLAGS.
22577
f1ad3354
MP
225782013-02-26 Marek Polacek <polacek@redhat.com>
22579
22580 PR tree-optimization/56426
88b97037 22581 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 22582
a6af0f42
RB
225832013-02-26 Richard Biener <rguenther@suse.de>
22584
22585 PR target/56444
22586 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
22587 unused variable loops.
22588
aca43c6c
JJ
225892013-02-26 Jakub Jelinek <jakub@redhat.com>
22590
cecbe5d9
JJ
22591 PR tree-optimization/56448
22592 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
22593 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
22594 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
22595 later operands of the references, or even first operand for
22596 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
22597
aca43c6c
JJ
22598 PR tree-optimization/56443
22599 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
22600 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
22601 to type_for_mode langhook.
22602
53e2e141
MT
226032013-02-25 Matt Turner <mattst88@gmail.com>
22604
22605 * doc/invoke.texi: Document r4700.
22606
259ee451
RB
226072013-02-25 Richard Biener <rguenther@suse.de>
22608
22609 PR tree-optimization/56175
22610 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
22611 split out from ...
22612 (simplify_bitwise_binary): ... here. Also guard the conversion
22613 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
22614
6d65e8f1
CM
226152013-02-25 Catherine Moore <clm@codesourcery.com>
22616
22617 Revert:
22618 2013-02-24 Catherine Moore <clm@codesourcery.com>
22619 Maciej W. Rozycki <macro@codesourcery.com>
22620 Tom de Vries <tom@codesourcery.com>
a72d8780 22621 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
22622 Iain Sandoe <iain@codesourcery.com>
22623 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 22624 Chao-ying Fu <fu@mips.com>
88b97037 22625
6d65e8f1 22626 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 22627 Document new function attributes.
6d65e8f1
CM
22628 * doc/invoke.texi (minterlink-compressed, mmicromips,
22629 m14k, m14ke, m14kec): Document new options.
22630 (minterlink-mips16): Update documentation.
22631 * doc/md.texi (ZC, ZD): Document new constraints.
22632 * configure.ac (gcc_cv_as_micromips): Check if linker
22633 supports the .set micromips directive.
22634 * configure: Regenerate.
22635 * config.in: Regenerate.
22636 * config/mips/mips-tables.opt: Regenerate.
22637 * config/mips/micromips.md: New file.
22638 * constraints.md (ZC, AD): New constraints.
22639 * config/mips/predicates.md (movep_src_register): New predicate.
22640 (movep_src_operand): New predicate.
22641 (non_volatile_mem_operand): New predicate.
22642 * config/mips/mips.md (multimem): New type.
22643 (length): Differentiate between 17-bit and 18-bit branch offsets.
22644 (MOVEP1, MOVEP2): New mode iterator.
22645 (mov_<load>l): Use ZC constraint.
22646 (mov_<load>r): Likewise.
22647 (mov_<store>l): Likewise.
22648 (mov_<store>r): Likewise.
22649 (*branch_equality<mode>_inverted): Add microMIPS support.
22650 (*branch_equality<mode>): Likewise.
22651 (*jump_absolute): Likewise.
22652 (indirect_jump_<mode>): Likewise.
22653 (tablejump_<mode>): Likewise.
22654 (<optab>_internal): Likewise.
22655 (sibcall_internal): Likewise.
22656 (sibcall_value_internal): Likewise.
22657 (prefetch): Use constraint ZD.
22658 * config/mips/mips.opt (minterlink-compressed): New option.
22659 (minterlink-mips16): Now an alias for minterlink-compressed.
22660 (mmicromips): New option.
22661 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22662 (compare_and_swap_12): Likewise.
22663 (sync_add<mode>): Likewise.
22664 (sync_<optab>_12): Likewise.
22665 (sync_old_<optab>_12): Likewise.
22666 (sync_new_<optab>_12): Likewise.
22667 (sync_nand_12): Likewise.
22668 (sync_old_nand_12): Likewise.
22669 (sync_new_nand_12): Likewise.
22670 (sync_sub<mode>): Likewise.
22671 (sync_old_add<mode>): Likewise.
22672 (sync_old_sub<mode>): Likewise.
22673 (sync_new_add<mode>): Likewise.
22674 (sync_new_sub<mode>): Likewise.
22675 (sync_<optab><mode>): Likewise.
22676 (sync_old_<optab><mode>): Likewise.
22677 (sync_new_<optab><mode>): Likewise.
22678 (sync_nand<mode>): Likewise.
22679 (sync_old_nand<mode>): Likewise.
22680 (sync_new_nand<mode>): Likewise.
22681 (sync_lock_test_and_set<mode>): Likewise.
22682 (test_and_set_12): Likewise.
22683 (atomic_compare_and_swap<mode>): Likewise.
22684 (atomic_exchange<mode>_llsc): Likewise.
22685 (atomic_fetch_add<mode>_llsc): Likewise.
22686 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22687 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22688 (umips_save_restore_pattern_p): Likewise.
22689 (umips_load_store_pair_p): Likewise.
22690 (umips_output_load_store_pair): Likewise.
22691 (umips_movep_target_p): Likewise.
22692 (umips_12bit_offset_address_p): Likewise.
22693 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22694 (mips_base_mips16): Rename this...
22695 (mips_base_compression_flags): ...to this. Update all uses.
22696 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22697 (mips_mips16_decl_p): Delete.
22698 (mips_nomips16_decl_p): Delete.
22699 (mips_get_compress_on_flags): New function.
22700 (mips_get_compress_off_flags): New function.
22701 (mips_get_compress_mode): New function.
22702 (mips_get_compress_on_name): New function.
22703 (mips_get_compress_off_name): New function.
22704 (mips_insert_attributes): Support multiple compression types.
22705 (mips_merge_decl_attributes): Likewise.
22706 (umips_12bit_offset_address_p): New function.
22707 (mips_start_function_definition): Emit .set micromips directive.
22708 (mips_call_may_need_jalx_p): New function.
22709 (mips_function_ok_for_sibcall): Add microMIPS support.
22710 (mips_print_operand_punctuation): Support short delay slots and
22711 compact jumps.
22712 (umips_swm_mask, umips_swm_encoding): New.
22713 (umips_build_save_restore): New function.
22714 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22715 (was_mips16_p): Remove.
22716 (old_compression_mode): New.
22717 (mips_set_compression_mode): New function.
22718 (mips_set_current_function): Add microMIPS support.
22719 (mips_option_override): Likewise.
22720 (umips_save_restore_pattern_p): New function.
22721 (umips_output_save_restore): New function.
22722 (umips_load_store_pair_p_1): New function.
22723 (umips_load_store_pair_p): New function.
22724 (umips_output_load_store_pair_1): New function.
22725 (umips_output_load_store_pair): New function.
22726 (umips_movep_target_p) New function.
22727 (mips_prepare_pch_save): Add microMIPS support.
22728 * config/mips/mips.h (TARGET_COMPRESSION): New.
22729 (TARGET_CPU_CPP_BUILTINS): Update macro
22730 to use new compression flags and to support microMIPS.
22731 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22732 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22733 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22734 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22735 (ASM_SPEC): Support mmicromips and mno-micromips.
22736 (M16STORE_REG_P): New macro.
22737 (MIPS_CALL): Support TARGET_MICROMIPS.
22738 (MICROMIPS_J): New macro.
22739 (mips_base_mips16): Rename this...
22740 (mips_base_compression_flags): ...to this.
22741 (UMIPS_12BIT_OFFSET_P): New macro.
22742 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22743 (MULTILIB_DIRNAMES): Likewise.
22744
5e5df392
TV
227452013-02-25 Tom de Vries <tom@codesourcery.com>
22746
22747 PR rtl-optimization/56131
22748 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
22749 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
22750 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
22751
3fdb53c1
TB
227522013-02-25 Tobias Burnus <burnus@net-b.de>
22753
22754 * doc/invoke.texi (-fsanitize=): Move from optimization
22755 to debugging options.
22756
ed358aea
AB
227572013-02-25 Andrey Belevantsev <abel@ispras.ru>
22758
22759 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
22760
f45e9053
AB
227612013-02-25 Andrey Belevantsev <abel@ispras.ru>
22762 Alexander Monakov <amonakov@ispras.ru>
22763
22764 PR middle-end/56077
22765 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
22766 flush pending lists also on non-jumps. Adjust comment.
22767
6941b508
CM
227682013-02-24 Catherine Moore <clm@codesourcery.com>
22769 Maciej W. Rozycki <macro@codesourcery.com>
22770 Tom de Vries <tom@codesourcery.com>
a72d8780 22771 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
22772 Iain Sandoe <iain@codesourcery.com>
22773 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 22774 Chao-ying Fu <fu@mips.com>
6941b508
CM
22775
22776 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 22777 Document new function attributes.
6941b508
CM
22778 * doc/invoke.texi (minterlink-compressed, mmicromips,
22779 m14k, m14ke, m14kec): Document new options.
22780 (minterlink-mips16): Update documentation.
22781 * doc/md.texi (ZC, ZD): Document new constraints.
22782 * configure.ac (gcc_cv_as_micromips): Check if linker
22783 supports the .set micromips directive.
22784 * configure: Regenerate.
22785 * config.in: Regenerate.
22786 * config/mips/mips-tables.opt: Regenerate.
22787 * config/mips/micromips.md: New file.
22788 * constraints.md (ZC, AD): New constraints.
22789 * config/mips/predicates.md (movep_src_register): New predicate.
22790 (movep_src_operand): New predicate.
22791 (non_volatile_mem_operand): New predicate.
22792 * config/mips/mips.md (multimem): New type.
22793 (length): Differentiate between 17-bit and 18-bit branch offsets.
22794 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 22795 (mov_<load>l): Use ZC constraint.
6941b508
CM
22796 (mov_<load>r): Likewise.
22797 (mov_<store>l): Likewise.
22798 (mov_<store>r): Likewise.
22799 (*branch_equality<mode>_inverted): Add microMIPS support.
22800 (*branch_equality<mode>): Likewise.
22801 (*jump_absolute): Likewise.
22802 (indirect_jump_<mode>): Likewise.
22803 (tablejump_<mode>): Likewise.
22804 (<optab>_internal): Likewise.
22805 (sibcall_internal): Likewise.
22806 (sibcall_value_internal): Likewise.
22807 (prefetch): Use constraint ZD.
22808 * config/mips/mips.opt (minterlink-compressed): New option.
22809 (minterlink-mips16): Now an alias for minterlink-compressed.
22810 (mmicromips): New option.
22811 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
22812 (compare_and_swap_12): Likewise.
22813 (sync_add<mode>): Likewise.
22814 (sync_<optab>_12): Likewise.
22815 (sync_old_<optab>_12): Likewise.
22816 (sync_new_<optab>_12): Likewise.
22817 (sync_nand_12): Likewise.
22818 (sync_old_nand_12): Likewise.
22819 (sync_new_nand_12): Likewise.
22820 (sync_sub<mode>): Likewise.
22821 (sync_old_add<mode>): Likewise.
22822 (sync_old_sub<mode>): Likewise.
22823 (sync_new_add<mode>): Likewise.
22824 (sync_new_sub<mode>): Likewise.
22825 (sync_<optab><mode>): Likewise.
22826 (sync_old_<optab><mode>): Likewise.
22827 (sync_new_<optab><mode>): Likewise.
22828 (sync_nand<mode>): Likewise.
22829 (sync_old_nand<mode>): Likewise.
22830 (sync_new_nand<mode>): Likewise.
22831 (sync_lock_test_and_set<mode>): Likewise.
22832 (test_and_set_12): Likewise.
22833 (atomic_compare_and_swap<mode>): Likewise.
22834 (atomic_exchange<mode>_llsc): Likewise.
22835 (atomic_fetch_add<mode>_llsc): Likewise.
22836 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
22837 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
22838 (umips_save_restore_pattern_p): Likewise.
22839 (umips_load_store_pair_p): Likewise.
22840 (umips_output_load_store_pair): Likewise.
22841 (umips_movep_target_p): Likewise.
22842 (umips_12bit_offset_address_p): Likewise.
22843 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
22844 (mips_base_mips16): Rename this...
22845 (mips_base_compression_flags): ...to this. Update all uses.
22846 (mips_attribute_table): Add micromips, nomicromips and nocompression.
22847 (mips_mips16_decl_p): Delete.
22848 (mips_nomips16_decl_p): Delete.
3fdb53c1 22849 (mips_get_compress_on_flags): New function.
6941b508
CM
22850 (mips_get_compress_off_flags): New function.
22851 (mips_get_compress_mode): New function.
22852 (mips_get_compress_on_name): New function.
22853 (mips_get_compress_off_name): New function.
22854 (mips_insert_attributes): Support multiple compression types.
22855 (mips_merge_decl_attributes): Likewise.
22856 (umips_12bit_offset_address_p): New function.
22857 (mips_start_function_definition): Emit .set micromips directive.
22858 (mips_call_may_need_jalx_p): New function.
22859 (mips_function_ok_for_sibcall): Add microMIPS support.
22860 (mips_print_operand_punctuation): Support short delay slots and
22861 compact jumps.
22862 (umips_swm_mask, umips_swm_encoding): New.
22863 (umips_build_save_restore): New function.
22864 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
22865 (was_mips16_p): Remove.
22866 (old_compression_mode): New.
22867 (mips_set_compression_mode): New function.
22868 (mips_set_current_function): Add microMIPS support.
22869 (mips_option_override): Likewise.
22870 (umips_save_restore_pattern_p): New function.
22871 (umips_output_save_restore): New function.
22872 (umips_load_store_pair_p_1): New function.
22873 (umips_load_store_pair_p): New function.
22874 (umips_output_load_store_pair_1): New function.
22875 (umips_output_load_store_pair): New function.
22876 (umips_movep_target_p) New function.
22877 (mips_prepare_pch_save): Add microMIPS support.
22878 * config/mips/mips.h (TARGET_COMPRESSION): New.
22879 (TARGET_CPU_CPP_BUILTINS): Update macro
22880 to use new compression flags and to support microMIPS.
22881 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
22882 (MIPS_ARCH_FLOAT_SPEC): Likewise.
22883 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
22884 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
22885 (ASM_SPEC): Support mmicromips and mno-micromips.
22886 (M16STORE_REG_P): New macro.
22887 (MIPS_CALL): Support TARGET_MICROMIPS.
22888 (MICROMIPS_J): New macro.
22889 (mips_base_mips16): Rename this...
22890 (mips_base_compression_flags): ...to this.
22891 (UMIPS_12BIT_OFFSET_P): New macro.
22892 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
22893 (MULTILIB_DIRNAMES): Likewise.
22894
cdebbc6d
JJ
228952013-02-24 Jakub Jelinek <jakub@redhat.com>
22896
22897 PR target/52555
22898 * target-globals.c (save_target_globals): For init_reg_sets and
22899 target_reinit remporarily set this_fn_optabs to this_target_optabs.
22900
18c63565
JG
229012013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
22902
22903 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
22904 * config/aarch64/t-aarch64
22905 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
22906
2194f7a2
VM
229072013-02-22 Vladimir Makarov <vmakarov@redhat.com>
22908
22909 PR inline-asm/56148
22910 * lra-constraints.c (process_alt_operands): Reload operand
22911 conflicting with earlier clobber only if no more other conflicting
22912 operands.
22913
7d613735
JJ
229142013-02-22 Jakub Jelinek <jakub@redhat.com>
22915
22916 PR sanitizer/56393
22917 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
22918 if not linking a shared library.
22919
ac8d93a7
SL
229202013-02-22 Seth LaForge <sethml@google.com>
22921
22922 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
22923
e0237780
GY
229242013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
22925
3fdb53c1
TB
22926 * config/arm/arm.md (split for extendsidi): Update condition.
22927 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
22928 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
22929 (qhs_zextenddi_cstr): Likewise.
e0237780 22930
d7fde18c
JJ
229312013-02-21 Jakub Jelinek <jakub@redhat.com>
22932
be63b77d
JJ
22933 PR middle-end/56420
22934 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
22935 avoid signed wrapping.
22936 (expand_mult): Handle properly multiplication by
22937 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
22938 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
22939 in the compiler if coeff is HOST_WIDE_INT_MIN.
22940 (expand_divmod): Don't make ext_op1 static, change it's type to
22941 uhwi. Avoid undefined behavior in -INTVAL (op1).
22942
d7fde18c
JJ
22943 PR rtl-optimization/50339
22944 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
22945 field.
22946 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
22947 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
22948 into splitting_ashiftrt field.
22949 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
22950 ASHIFTRT.
22951 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
22952 choices.
22953
6aad4455
AH
229542013-02-20 Aldy Hernandez <aldyh@redhat.com>
22955
22956 PR middle-end/56108
22957 * trans-mem.c (execute_tm_mark): Do not expand transactions that
22958 are sure to go irrevocable.
22959
38fe784d
HPN
229602013-02-21 Hans-Peter Nilsson <hp@axis.com>
22961
22962 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
22963 scalars are valid operands.
22964
0fd44da3
MJ
229652013-02-21 Martin Jambor <mjambor@suse.cz>
22966
22967 PR tree-optimization/56310
22968 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
22969 only matching indices and non-negative final offsets.
22970 (intersect_aggregates_with_edge): Pass src_idx to
22971 agg_replacements_to_vector. Pass src_idx insstead of index to
22972 intersect_with_agg_replacements.
22973
7a92038b
MJ
229742013-02-21 Martin Jambor <mjambor@suse.cz>
22975
22976 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
22977 instead of hard-wired defaults.
22978
c0da9c37
MR
229792013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
22980
22981 * doc/invoke.texi (MIPS Options): Update documentation of the
22982 floating-point multiply-accumulate instruction restrictions.
22983
d247ea0c 229842013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
22985
22986 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
22987 asan_shadow_offset on x86_64 linux.
22988
22deefcb
RB
229892013-02-21 Richard Biener <rguenther@suse.de>
22990
22991 PR tree-optimization/56415
22992 Revert
22993 2013-02-11 Richard Biener <rguenther@suse.de>
22994
22995 PR tree-optimization/56273
22996 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
22997 first VRP run.
22998
7bcc6e75
JJ
229992013-02-21 Jakub Jelinek <jakub@redhat.com>
23000
a0ad148f
JJ
23001 PR bootstrap/56258
23002 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
23003 instead of @itemx.
23004
7bcc6e75
JJ
23005 PR inline-asm/56405
23006 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
23007 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
23008
a0a7b611
JH
230092013-02-20 Jan Hubicka <jh@suse.cz>
23010
23011 PR tree-optimization/56265
88b97037
UB
23012 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
23013 when target is referenced for first time.
a0a7b611 23014
c0e50f72
RB
230152013-02-20 Richard Biener <rguenther@suse.de>
23016
23017 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
23018 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
23019 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
23020 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
23021 not return anything.
23022 (rename_ssa_copies): Do not remove unused locals.
23023 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 23024 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
23025 * passes.c (execute_function_todo): Do not schedule unused locals
23026 removal if cleanup_tree_cfg did something.
23027 * tree-ssa-live.c (remove_unused_locals): Dump statistics
23028 about the number of removed locals.
23029
a52ca739
RB
230302013-02-20 Richard Biener <rguenther@suse.de>
23031
23032 PR tree-optimization/56398
88b97037 23033 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 23034
ec9c9d1b
MJ
230352013-02-20 Martin Jambor <mjambor@suse.cz>
23036
23037 PR tree-optimization/55334
23038 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
23039 restricted pointers to arrays.
23040
e91c8ed6 230412013-02-20 Richard Biener <rguenther@suse.de>
88b97037 23042 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
23043
23044 PR tree-optimization/56396
23045 * tree-ssa-ccp.c (n_const_val): New static variable.
23046 (get_value): Return NULL for SSA names we don't have a lattice
23047 entry for.
23048 (ccp_initialize): Initialize n_const_val.
23049 * tree-ssa-copy.c (n_copy_of): New static variable.
23050 (init_copy_prop): Initialize n_copy_of.
23051 (get_value): Return NULL_TREE for SSA names we don't have a
23052 lattice entry for.
23053
3d916479
MJ
230542013-02-20 Martin Jambor <mjambor@suse.cz>
23055
23056 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
23057
71a86758
RB
230582013-02-20 Richard Biener <rguenther@suse.de>
23059
23060 * genpreds.c (write_lookup_constraint): Do not compare first
23061 letter of the constraint again.
23062
79836a12
RB
230632013-02-20 Richard Biener <rguenther@suse.de>
23064
23065 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
23066 and ceil_log2.
23067 (get_use_iv_cost): Terminate hashtable walk when coming across
23068 an empty entry.
23069
bbe4fb2c
IZ
230702013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
23071
23072 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
23073 reassociation for avx2 targets.
23074
a72d8780 230752012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 23076
c77f83d5
EI
23077 * config/microblaze/microblaze.c: microblaze_has_clz = 0
23078 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 23079 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
23080 version and TARGET_PATTERN_COMPARE check
23081 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 23082
a72d8780 230832012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 23084
a72d8780 23085 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
23086 function before branching.
23087
242387fa
AB
230882012-02-19 Andrey Belevantsev <abel@ispras.ru>
23089
23090 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
23091 DUMP_INSN_RTX_UID.
23092 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
23093
b4979ab9
AB
230942012-02-19 Andrey Belevantsev <abel@ispras.ru>
23095
23096 PR middle-end/55889
b4979ab9
AB
23097 * sel-sched.c: Include ira.h.
23098 (implicit_clobber_conflict_p): New function.
23099 (moveup_expr): Use it.
88b97037 23100 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 23101
24d63016
RB
231022013-02-19 Richard Biener <rguenther@suse.de>
23103
23104 PR tree-optimization/56384
23105 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
23106 (vn_hash_type): Split out from ...
23107 (vn_hash_constant_with_type): ... here.
23108 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
23109 (vn_phi_eq): Compare types from vn_phi_s structure.
23110 (vn_phi_lookup): Populate vn_phi_s type.
23111 (vn_phi_insert): Likewise.
23112
a475fd3d
JJ
231132013-02-19 Jakub Jelinek <jakub@redhat.com>
23114
47cc28f5
JJ
23115 PR tree-optimization/56350
23116 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
23117 if haven't found reduction or nested cycle operand, rather than
23118 asserting we must find it.
23119
a475fd3d
JJ
23120 PR tree-optimization/56381
23121 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
23122 to fold_build3.
23123
231242013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
23125 Jakub Jelinek <jakub@redhat.com>
23126
23127 PR target/52555
23128 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
23129 (swap_optab_enable): Same.
23130 (init_all_optabs): Use argument instead of global.
88b97037 23131 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
23132 * expr.h (init_all_optabs): Add argument to prototype.
23133 (TREE_OPTIMIZATION_OPTABS): New.
23134 (save_optabs_if_changed): Protoize.
23135 * optabs.h: Declare this_fn_optabs.
23136 * optabs.c (save_optabs_if_changed): New.
23137 Declare this_fn_optabs.
23138 (init_optabs): Add argument to init_all_optabs() call.
23139 * function.c (invoke_set_current_function_hook): Handle per
23140 function optabs.
23141 * function.h (struct function): New field optabs.
23142 * config/mips/mips.c (mips_set_mips16_mode): Handle when
23143 optimization_current_node has changed.
23144 * target-globals.h (save_target_globals_default_opts): Protoize.
23145 * target-globals.c (save_target_globals_default_opts): New.
23146
3f587ca3
JDA
231472013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23148
23149 PR target/56347
23150 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
23151 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
23152
23153 PR target/56214
23154 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
23155 and HImode, require all displacements to be an integer multiple of
23156 their mode size.
ceaca33e
JDA
23157 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
23158 only allow QImode and HImode when reload is in progress and strict is
23159 true. Likewise for symbolic addresses. Use base14_operand to check
23160 displacements in REG+BASE addresses.
23161
fe0b4796
RB
231622013-02-18 Richard Biener <rguenther@suse.de>
23163
23164 PR tree-optimization/56366
23165 * tree-vect-loop.c (get_initial_def_for_induction): Properly
23166 handle sign-conversion of outer-loop initial induction value.
23167
6aaf596b
RB
231682013-02-18 Richard Biener <rguenther@suse.de>
23169
73db8ff1 23170 PR middle-end/56349
6aaf596b
RB
23171 * cfghooks.c (merge_blocks): If we merge a latch into another
23172 block adjust references to it.
23173 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
23174 (verify_loop_structure): Verify that a recorded latch is in fact
23175 a latch.
23176
5e97dfb6
RB
231772013-02-18 Richard Biener <rguenther@suse.de>
23178
23179 PR tree-optimization/56321
23180 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
23181 order SSA name release and virtual operand unlinking.
23182
825527e8
EI
231832013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23184
23185 * config/microblaze/microblaze.md (save_stack_block): Define.
23186 (restore_stack_block): Likewise.
23187
debd11d9
EI
231882013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23189
23190 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
23191 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
23192 * config/microblaze/microblaze.c (microblaze_option_override):
23193 Bail out early for PIC modes when target does not support PIC.
23194
8ec77be0
EI
231952013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23196
88b97037 23197 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
23198 Replace with a microblaze version.
23199 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 23200 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
23201 microblaze.
23202
b41288b3
JJ
232032013-02-16 Jakub Jelinek <jakub@redhat.com>
23204 Dodji Seketeli <dodji@redhat.com>
23205
23206 PR asan/56330
88b97037 23207 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
23208 (instrument_mem_region_access): Do not forget to always put
23209 instrumentation of the of 'base' and 'base + len' in a "if (len !=
23210 0) statement, even for cases where either 'base' or 'base + len'
23211 are not instrumented -- because they have been previously
23212 instrumented. Simplify the logic by putting all the statements
23213 instrument 'base + len' inside a sequence, and then insert that
23214 sequence right before the current insertion point. Then, to
23215 instrument 'base + len', just get an iterator on that statement.
23216 And do not forget to update the pointer to iterator the function
23217 received as argument.
23218
47918951
VM
232192013-02-15 Vladimir Makarov <vmakarov@redhat.com>
23220
23221 PR rtl-optimization/56348
23222 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
23223
3fb7c699
SB
232242013-02-15 Steven Bosscher <steven@gcc.gnu.org>
23225
23226 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
23227 (clean_graph_dump_file): Pass base to start_graph_dump.
23228
576fe41a
RH
232292013-02-14 Richard Henderson <rth@redhat.com>
23230
23231 PR target/55941
23232 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
23233
bb3accfa
SB
232342013-02-14 Steven Bosscher <steven@gcc.gnu.org>
23235
23236 * collect2-aix.h: Define F_LOADONLY.
23237
03143140
RB
232382013-02-14 Richard Biener <rguenther@suse.de>
23239
23240 PR lto/50494
23241 * varasm.c (output_constant_def_1): Get the decl representing
23242 the constant as argument.
23243 (output_constant_def): Wrap output_constant_def_1.
23244 (make_decl_rtl): Use output_constant_def_1 with the decl
23245 representing the constant.
23246 (build_constant_desc): Optionally re-use a decl already
23247 representing the constant.
23248 (tree_output_constant_def): Adjust.
23249
8fb06726
DS
232502013-02-14 Dodji Seketeli <dodji@redhat.com>
23251
23252 Fix an asan crash
23253 * asan.c (instrument_builtin_call): Really put the length of the
23254 second source argument into src1_len.
23255
c4bfe8bf
JJ
232562013-02-13 Jakub Jelinek <jakub@redhat.com>
23257
23258 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
23259 argument. If it is false, don't create edge from then_bb to
23260 fallthru_bb.
23261 (insert_if_then_before_iter): Pass true to it.
23262 (build_check_stmt): Pass false to it.
23263 (transform_statements): Flush hash table only on extended basic
23264 block boundaries, rather than at the beginning of every bb.
23265 Don't flush hash table on nonfreeing_call_p calls.
23266 * tree-flow.h (nonfreeing_call_p): New prototype.
23267 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
23268
7afe2801
DM
232692013-02-13 David S. Miller <davem@davemloft.net>
23270
23271 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
23272
70cc3288
VM
232732013-02-13 Vladimir Makarov <vmakarov@redhat.com>
23274
23275 PR target/56184
23276 * ira.c (max_regno_before_ira): Move from ...
23277 (ira): ... here.
23278 (fix_reg_equiv_init): Use max_regno_before_ira instead of
23279 vec_safe_length.
23280
6422242b
JJ
232812013-02-13 Jakub Jelinek <jakub@redhat.com>
23282
23283 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
23284
976a81ee
RB
232852013-02-13 Richard Biener <rguenther@suse.de>
23286
23287 PR lto/56295
23288 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
23289 globals in MEM_REFs.
23290
c1874a87
RB
232912013-02-13 Richard Biener <rguenther@suse.de>
23292
23293 * loop-init.c (loop_optimizer_init): Clear loop state when
23294 re-initializing preserved loops.
23295 * loop-unswitch.c (unswitch_single_loop): Return whether
23296 we unswitched the loop. Do not verify loop state here.
88b97037 23297 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 23298
b4ab7d34
KS
232992013-02-13 Kostya Serebryany <kcc@google.com>
23300
88b97037
UB
23301 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
23302 on x86_64 linux.
b4ab7d34
KS
23303 * sanitizer.def: Rename __asan_init to __asan_init_v1.
23304
bdcbe80c
DS
233052013-02-12 Dodji Seketeli <dodji@redhat.com>
23306
23307 Avoid instrumenting duplicated memory access in the same basic block
23308 * Makefile.in (asan.o): Add new dependency on hash-table.h
23309 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
23310 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
23311 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
23312 (free_mem_ref_resources, has_mem_ref_been_instrumented)
23313 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
23314 (get_mem_ref_of_assignment): New functions.
23315 (get_mem_refs_of_builtin_call): Extract from
23316 instrument_builtin_call and tweak a little bit to make it fit with
23317 the new signature.
23318 (instrument_builtin_call): Use the new
23319 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
23320 of is_gimple_builtin_call.
23321 (instrument_derefs, instrument_mem_region_access): Insert the
23322 instrumented memory reference into the hash table.
23323 (maybe_instrument_assignment): Renamed instrument_assignment into
23324 this, and change it to advance the iterator when instrumentation
23325 actually happened and return true in that case. This makes it
23326 homogeneous with maybe_instrument_assignment, and thus give a
23327 chance to callers to be more 'regular'.
23328 (transform_statements): Clear the memory reference hash table
23329 whenever we enter a new BB, when we cross a function call, or when
23330 we are done transforming statements. Use
23331 maybe_instrument_assignment instead of instrumentation. No more
23332 need to special case maybe_instrument_assignment and advance the
23333 iterator after calling it; it's now handled just like
23334 maybe_instrument_call. Update comment.
23335
4861a1f7
RB
233362013-02-13 Richard Biener <rguenther@suse.de>
23337
23338 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
23339 Fix loop discovery code.
23340
1c86bd80
VM
233412013-02-12 Vladimir Makarov <vmakarov@redhat.com>
23342
23343 PR inline-asm/56148
23344 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 23345 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
23346 the operand is not reloaded. Prefer to reload conflicting operand
23347 if earlyclobber and matching operands are the same.
23348
7cbda518
RB
233492013-02-12 Richard Biener <rguenther@suse.de>
23350
23351 PR lto/56297
23352 * lto-streamer-out.c (write_symbol): Do not output symbols
23353 for hard register variables.
23354
e68a4ef6
GJL
233552013-02-12 Georg-Johann Lay <avr@gjlay.de>
23356
23357 PR target/54222
23358 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
23359 (umulsidi3_insn, mulsidi3_insn): New insns.
23360
a72d8780 233612013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
23362
23363 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
23364 (struct tune_params): Add vec_costs field.
23365 * config/arm/arm.c (arm_builtin_vectorization_cost)
23366 (arm_add_stmt_cost): New functions.
23367 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
23368 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
23369 (arm_default_vec_cost): New struct of type cpu_vec_costs.
23370 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
23371 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
23372 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
23373 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
23374
43320568
RB
233752013-02-12 Richard Biener <rguenther@suse.de>
23376
23377 PR lto/56295
23378 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
23379 decls again if possible.
23380
a011aa39
RB
233812013-02-12 Richard Biener <rguenther@suse.de>
23382
23383 PR middle-end/56288
23384 * tree-ssa.c (verify_ssa_name): Fix check, move
23385 SSA_NAME_IN_FREE_LIST check up.
23386
6da26889
JJ
233872013-02-12 Jakub Jelinek <jakub@redhat.com>
23388 Steven Bosscher <steven@gcc.gnu.org>
23389
23390 PR rtl-optimization/56151
23391 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
23392 equal to op0 or op1, and last_insn pattern is CODE operation
23393 with MEM dest and one of the operands matches that MEM.
23394
f80e0faf
ST
233952013-02-11 Sriraman Tallam <tmsriramgoogle.com>
23396
23397 * doc/extend.texi: Document Function Multiversioning and "default"
23398 parameter string to target attribute.
23399 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
23400 target attribute parameter is "default".
23401 (ix86_compare_version_priority): Remove checks for target attribute.
23402 (ix86_mangle_function_version_assembler_name): Change error to sorry.
23403 Remove check for target attribute equal to NULL. Add assert.
23404 (ix86_generate_version_dispatcher_body): Change error to sorry.
23405
6c59ffd1
IS
234062013-02-11 Iain Sandoe <iain@codesourcery.com>
23407 Jack Howarth <howarth@bromo.med.uc.edu>
23408 Patrick Marlier <patrick.marlier@gmail.com>
23409
23410 PR libitm/55693
23411 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
23412 define ENDFILE_SPEC as TM_DESTRUCTOR.
23413 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
23414
a72d8780 234152013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
23416 Jack Howarth <howarth@bromo.med.uc.edu>
23417 Jakub Jelinek <jakub@redhat.com>
23418
23419 PR sanitizer/55617
23420 * config/darwin.c (cdtor_record): Rename ctor_record.
23421 (sort_cdtor_records): Rename sort_ctor_records.
23422 (finalize_dtors): New routine to sort destructors by
23423 priority before use in assemble_integer.
23424 (machopic_asm_out_destructor): Use finalize_dtors if needed.
23425
b63fe007
UB
234262013-02-11 Uros Bizjak <ubizjak@gmail.com>
23427
23428 PR rtl-optimization/56275
23429 * simplify-rtx.c (avoid_constant_pool_reference): Check that
23430 offset is non-negative and less than cmode size before
23431 calling simplify_subreg.
23432
8e89b5b5
RB
234332013-02-11 Richard Biener <rguenther@suse.de>
23434
23435 PR tree-optimization/56264
23436 * cfgloop.h (fix_loop_structure): Adjust prototype.
23437 * loop-init.c (fix_loop_structure): Return the number of
23438 newly discovered loops.
23439 * tree-cfgcleanup.c (repair_loop_structures): When new loops
23440 are discovered, do a full loop-closed SSA rewrite.
23441
b4a4b56d
RB
234422013-02-11 Richard Biener <rguenther@suse.de>
23443
23444 PR tree-optimization/56273
23445 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
23446 first VRP run.
23447 (check_array_ref): Fix missing newline in dumps.
23448 (search_for_addr_array): Likewise.
23449
0c885229
DE
234502013-02-09 David Edelsohn <dje.gcc@gmail.com>
23451
23452 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
23453
59ac9a55
JJ
234542013-02-09 Jakub Jelinek <jakub@redhat.com>
23455
23456 PR target/56256
23457 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
23458
25bb0bb5
VM
234592013-02-08 Vladimir Makarov <vmakarov@redhat.com>
23460
23461 PR rtl-optimization/56246
0c885229 23462 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
23463 reload pseudo.
23464 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
23465 constraints are satisfied.
23466
a698cc03
JL
234672013-02-08 Jeff Law <law@redhat.com>
23468
23469 PR debug/53948
23470 * emit-rtl.c (reg_is_parm_p): New function.
23471 * regs.h (reg_is_parm_p): New prototype.
23472 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
23473 callee-clobbered registers.
23474
e1122ddd
MM
234752013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
23476
23477 PR target/56043
23478 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
23479 If there is no implicit builtin declaration, just return NULL.
23480
19c5f6e6
UB
234812013-02-08 Uros Bizjak <ubizjak@gmail.com>
23482
23483 * config/i386/sse.md (FMAMODEM): New mode iterator.
23484 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
23485 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
23486
2480f2ca 234872013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 23488
2480f2ca
UB
23489 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
23490 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
23491 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
23492
234932013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
23494
23495 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
23496 (microblaze*-*-elf): Likewise.
23497 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
23498 LINK_SPEC.
23499 * config/microblaze/microblaze-c.c: Add builtin defines for
23500 _LITTLE_ENDIAN and _BIG_ENDIAN.
23501 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
23502 add to TARGET_DEFAULT flags.
76ef61fb 23503 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
23504 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
23505 * config/microblaze/microblaze.md: Update extendsidi2 and
23506 movdi_internal instructions to use low-order / high-order reg
23507 print_operands.
23508 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
23509 options and inversemask / mask of LITTLE_ENDIAN.
23510 * config/microblaze/t-microblaze: Expand multilib options to
23511 include mlittle-endian (le) and update exceptions patterns.
23512
600a5961
JJ
235132013-02-08 Jakub Jelinek <jakub@redhat.com>
23514
5df81313
JJ
23515 PR rtl-optimization/56195
23516 * lra-constraints.c (get_reload_reg): Don't reuse regs
23517 if they have smaller mode than requested, if they have
23518 wider mode than requested, try to return a SUBREG.
23519
600a5961
JJ
23520 PR tree-optimization/56250
23521 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
23522 if type is unsigned and code isn't MULT_EXPR.
23523
ff544649
GJL
235242013-02-08 Georg-Johann Lay <avr@gjlay.de>
23525
23526 PR tree-optimization/56064
23527 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
23528 bits according to mode.
23529 * fixed-value.h (fixed_from_double_int)
23530 (const_fixed_from_double_int): Adjust comments.
23531
e45cde98
RB
235322013-02-08 Richard Biener <rguenther@suse.de>
23533
23534 PR lto/56231
23535 * lto-streamer.h (struct data_in): Remove current_file, current_line
23536 and current_col members.
23537 * lto-streamer-out.c (lto_output_location): Stream changed bits
23538 en-block for efficiency.
23539 * lto-streamer-in.c (clear_line_info): Remove.
23540 (lto_input_location): Cache current file, line and column
23541 globally via local statics. Read changed bits en-block.
23542 (input_function): Do not call clear_line_info.
23543 (lto_read_body): Likewise.
23544 (lto_input_toplevel_asms): Likewise.
23545
c1ca73d8
MM
235462013-02-08 Michael Matz <matz@suse.de>
23547
23548 PR tree-optimization/52448
23549 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
23550 (nt_call_phase): New static.
23551 (add_or_mark_expr): Only mark accesses with newer phase than any
23552 call seen.
23553 (nonfreeing_call_p): New.
23554 (nt_init_block): Update nt_call_phase, mark blocks as visited.
23555 (nt_fini_block): Keep blocks marked as visited.
23556 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
23557
57548aa2
RB
235582013-02-08 Richard Biener <rguenther@suse.de>
23559
23560 * ira.c (ira): Free broken dominator information.
23561
8e10366f
UB
235622013-02-08 Uros Bizjak <ubizjak@gmail.com>
23563
23564 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
23565
f64fb0fa
MP
235662013-02-08 Marek Polacek <polacek@redhat.com>
23567
8e10366f 23568 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 23569
0375167b
RB
235702013-02-08 Richard Biener <rguenther@suse.de>
23571
23572 PR middle-end/56181
23573 * cfgloop.h (flow_loops_find): Adjust.
23574 (bb_loop_header_p): Declare.
23575 * cfgloop.c (bb_loop_header_p): New function split out from ...
23576 (flow_loops_find): ... here. Adjust function signature,
23577 support incremental loop structure update.
23578 (verify_loop_structure): Cleanup. Verify a loop is a loop.
23579 * cfgloopmanip.c (fix_loop_structure): Move ...
23580 * loop-init.c (fix_loop_structure): ... here.
23581 (apply_loop_flags): Split out from ...
23582 (loop_optimizer_init): ... here.
23583 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
23584 in incremental mode, only remove dead loops here.
23585
85d768f3
GJL
235862013-02-08 Georg-Johann Lay <avr@gjlay.de>
23587
23588 PR target/54222
23589 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
23590 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
23591 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
23592 (*round<mode>3.libgcc): New insns for fixed-modes.
23593 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
23594 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
23595 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
23596 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
23597 implementations. Define to __builtin_avr_absFX,
23598 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
23599 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
23600 __builtin_avr_countlsFX, respectively.
23601 * config/avr/avr-c.c (target.h): Include it.
23602 (enum avr_builtin_id): New enum.
23603 (avr_resolve_overloaded_builtin): New static function.
23604 (avr_register_target_pragmas): Use it to set
23605 targetm.resolve_overloaded_builtin.
23606 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
23607 tree nodes used by DEF_BUILTIN.
23608 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
23609 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
23610 <AVR_BUILTIN_xxBITS>: Same.
23611
661bc682
RB
236122013-02-08 Richard Biener <rguenther@suse.de>
23613
23614 * cfgloop.c (verify_loop_structure): Properly handle
23615 a loop exiting to another loop header.
23616 * ira-int.h (ira_loops): Remove.
23617 * ira.c (ira_loops): Remove.
23618 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
23619 (do_reload): Use loop_optimizer_finalize.
23620 * ira-build.c (create_loop_tree_nodes): Use get_loops and
23621 number_of_loops to access the loop tree.
23622 (more_one_region_p): Likewise.
23623 (finish_loop_tree_nodes): Likewise.
23624 (rebuild_regno_allocno_maps): Likewise.
23625 (mark_loops_for_removal): Likewise.
23626 (mark_all_loops_for_removal): Likewise.
23627 (remove_unnecessary_regions): Likewise.
23628 (ira_build): Likewise.
23629 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
23630
0d5049b2
RB
236312013-02-08 Richard Biener <rguenther@suse.de>
23632
23633 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
23634 * ipa-pure-const.c (analyze_function): Avoid calling
23635 mark_irreducible_loops twice.
8e10366f 23636 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 23637
499f32e8
DM
236382013-02-07 David S. Miller <davem@davemloft.net>
23639
23640 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
23641 on 'reg'.
23642 * var-tracking.c (vt_add_function_parameter): Test the presence of
23643 HAVE_window_save properly and do not remap argument registers when
23644 we have a leaf function.
23645
6edc3e32
UB
236462013-02-07 Uros Bizjak <ubizjak@gmail.com>
23647
23648 PR bootstrap/56227
23649 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
23650 instead of "ll".
23651 * config/i386/i386.c (ix86_print_operand): Ditto.
23652
5306401f
VM
236532013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23654
6edc3e32 23655 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 23656
027ece11
VM
236572013-02-07 Vladimir Makarov <vmakarov@redhat.com>
23658
23659 PR rtl-optimization/56225
23660 * lra-constraints.c (process_alt_operands): Check that reload hard
23661 reg can hold value for strict_low_part.
23662
f980dfdb
JJ
236632013-02-07 Jakub Jelinek <jakub@redhat.com>
23664
23665 PR debug/56154
23666 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
23667 dwarf2out_end_function.
23668 (in_first_function_p, maybe_at_text_label_p,
23669 first_loclabel_num_not_at_text_label): New variables.
23670 (dwarf2out_var_location): In the first function find out
6edc3e32 23671 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
23672 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
23673 functions.
23674
73dd3123
EB
236752013-02-07 Eric Botcazou <ebotcazou@adacore.com>
23676
23677 PR rtl-optimization/56178
23678 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
23679 SUBREG of a register. Tidy up related block of code.
23680 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
23681 note if the source is a register or a SUBREG of a register.
23682
e3936f47
JJ
236832013-02-07 Jakub Jelinek <jakub@redhat.com>
23684
23685 PR target/56228
23686 * config/rs6000/rs6000.md (ptrm): New mode attr.
23687 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
23688 call_value_indirect_aix<pttrsize>,
23689 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
23690 m in constraints.
23691
d96d674b
MH
236922013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
23693
23694 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
23695 if -bnortl. Convert to strcmp and strncmp.
23696
921f2dee
AM
236972013-02-07 Alan Modra <amodra@gmail.com>
23698
23699 PR target/54009
23700 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
23701 addresses won't wrap when offsetting.
23702 (rs6000_secondary_reload): Provide secondary reloads needed for
23703 wrapping LO_SUM addresses.
23704
d09c7dba
TS
237052013-02-06 Thomas Schwinge <thomas@codesourcery.com>
23706
23707 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
23708 MACH, just __MACH__.
23709
a44bbd48
RB
237102013-02-06 Richard Biener <rguenther@suse.de>
23711
23712 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
23713 instead of calling fix_loop_structure.
23714
6d840d99
JJ
237152013-02-06 Jakub Jelinek <jakub@redhat.com>
23716
23717 PR middle-end/56217
23718 * omp-low.c (use_pointer_for_field): Return false if
23719 lower_send_shared_vars doesn't generate any copy-out code.
23720
0f33baa9
TV
237212013-02-06 Tom de Vries <tom@codesourcery.com>
23722
23723 PR rtl-optimization/56131
23724 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
23725 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
23726 of the label is NULL. Add comment.
23727
11f1e3ab
JJ
237282013-02-05 Jakub Jelinek <jakub@redhat.com>
23729
31502f9f
JJ
23730 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
23731
a74db9bd
JJ
23732 PR sanitizer/55374
23733 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
23734 (STATIC_LIBTSAN_LIBS): Likewise.
23735 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
23736 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
23737 is defined, don't add anything else beyond that.
23738 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
23739 (LINK_COMMAND_SPEC): Use them.
23740
11f1e3ab
JJ
23741 PR tree-optimization/56205
23742 * tree-stdarg.c (check_all_va_list_escapes): Return true if
23743 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
23744 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
23745
14ac6aa2
RB
237462013-02-05 Richard Biener <rguenther@suse.de>
23747
23748 PR tree-optimization/53342
23749 PR tree-optimization/53185
23750 * tree-vectorizer.h (vect_check_strided_load): Remove.
23751 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
23752 not disallow peeling for vectorized strided loads.
23753 (vect_check_strided_load): Make static and simplify.
23754 (vect_analyze_data_refs): Adjust.
23755 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
23756 correctly when vectorizing strided loads.
23757
6f22445a
RB
237582013-02-05 Richard Biener <rguenther@suse.de>
23759
23760 * doc/install.texi: Refer to ISL, not PPL.
23761
39f9719e
JH
237622013-02-05 Jan Hubicka <jh@suse.cz>
23763
ec4224ac
JH
23764 PR tree-optimization/55789
23765 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
23766
237672013-02-05 Jan Hubicka <jh@suse.cz>
23768
23769 PR tree-optimization/55789
39f9719e
JH
23770 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
23771 the dead call anyway.
23772
956d3b33
EB
237732013-02-05 Eric Botcazou <ebotcazou@adacore.com>
23774
23775 PR sanitizer/55374
23776 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
23777
237782013-02-04 Alexander Potapenko <glider@google.com>
23779 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
23780 Jakub Jelinek <jakub@redhat.com>
23781
23782 PR sanitizer/55617
23783 * config/darwin.c (sort_ctor_records): Stabilized qsort
23784 on constructor priority by using original position.
23785 (finalize_ctors): New routine to sort constructors by
23786 priority before use in assemble_integer.
23787 (machopic_asm_out_constructor): Use finalize_ctors if needed.
23788
7ac3af38
JJ
237892013-02-04 Jakub Jelinek <jakub@redhat.com>
23790
23791 PR libstdc++/54314
23792 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
23793 about visibility on artificial decls.
23794 * config/sol2.c (solaris_assemble_visibility): Likewise.
23795
152689dc
KT
237962013-02-04 Kai Tietz <ktietz@redhat.com>
23797
23798 PR target/56186
23799 * config/i386/i386.c (function_value_ms_64): Add additional valtype
23800 argument and improve checking of return-argument types for 16-byte
23801 modes.
23802 (ix86_function_value_1): Add additional valtype argument on call
23803 of function_value_64.
23804 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
23805 handling infunction_value_64 function.
23806
2b5987b5
MGD
238072013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
23808
7ac3af38 23809 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 23810
14597080
RB
238112013-02-04 Richard Biener <rguenther@suse.de>
23812
23813 PR tree-optimization/56188
23814 * tree-ssa-structalias.c (label_visit): Consider case with
23815 initially non-empty points-to set.
23816 (perform_var_substitution): Dump node mapping and clean up.
23817
ed73881e
RG
238182013-02-04 Richard Guenther <rguenther@suse.de>
23819
23820 PR lto/56168
23821 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
23822 node prevail as last resort.
23823 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 23824 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 23825
139a0707
RB
238262013-02-04 Richard Biener <rguenther@suse.de>
23827
23828 PR tree-optimization/56113
23829 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
23830 Merge into ...
23831 (equiv_class_lookup_or_add): ... this.
23832 (label_visit): Adjust and fix error in previous patch.
23833 (perform_var_substitution): Adjust.
23834
50fe8924
OE
238352013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
23836
23837 * config/sh/divtab.c: Fix formatting and comments throughout the file.
23838 * config/sh/sh4-300.md: Likewise.
23839 * config/sh/sh4a.md: Likewise.
23840 * config/sh/constraints.md: Likewise.
23841 * config/sh/sh.md: Likewise.
23842 * config/sh/netbsd-elf.h: Likewise.
23843 * config/sh/predicates.md: Likewise.
23844 * config/sh/sh-protos.h: Likewise.
23845 * config/sh/ushmedia.h: Likewise.
23846 * config/sh/linux.h: Likewise.
23847 * config/sh/sh.c: Likewise.
23848 * config/sh/superh.h: Likewise.
23849 * config/sh/elf.h: Likewise.
23850 * config/sh/sh4.md: Likewise.
23851 * config/sh/sh.h: Likewise.
23852
1a04ac2b
JDA
238532013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23854
23855 * config/pa/constraints.md: Adjust unused letters. Change "T"
23856 constraint to match_test floating_point_store_memory_operand().
23857 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
23858 (base14_operand): New.
23859 (floating_point_store_memory_operand): New.
23860 (integer_store_memory_operand): Revise to use base14_operand and
23861 reg_plus_base_memory_operand.
23862 (move_dest_operand): Allow symbolic_memory_operands.
23863 (symbolic_memory_operand): Check for LO_SOM.
23864 (symbolic_operand): Change default case to break.
23865 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
23866 CONST_DOUBLE values to be reloaded by putting them into memory when
23867 the destination is a floating point register.
23868 (movdf): Remove code to handle CONST_DOUBLE.
23869 (movsf): Likewise.
23870 (reload_indf_r1): New.
23871 (reload_insf_r1): New.
23872 Consistently use "Q" and "T" constraints with integer and floating
23873 point move instructions, respectively.
23874 (movdi): Remove FAIL.
23875 Change predicate for source operand unamed DImode move from
23876 general_operand to move_src_operand.
23877 (umulsidi3): Change predicate for destination operand to
23878 register_operand.
23879 Likewise for similar unamed patterns.
23880 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
23881 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
23882 (hppa_legitimize_address): Simplify mask calculation.
23883 (pa_emit_move_sequence): Revised handling of secondary reloads from
23884 REG+D addresses for floating point loads and stores. Directly handle
23885 loading CONST0_RTX (mode) to a floating point register.
23886 (pa_secondary_reload): Handle reloading DF and SFmode constant values
23887 to floating point registers. Don't restrict secondary reloads to
23888 floating point registers to integer modes. Revise some comments and
23889 cleanup some code.
23890 (TARGET_LEGITIMATE_ADDRESS_P): Define.
23891 (pa_legitimate_address_p): New.
23892 (pa_legitimize_reload_address): New.
23893 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
23894 (STRICT_REG_OK_FOR_BASE_P): New.
23895 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
23896 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
23897
3bf65591
DE
238982013-02-03 David Edelsohn <dje.gcc@gmail.com>
23899 Andrew Dixie <andrewd@gentrack.com>
23900
23901 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
23902 flag set.
23903
c0a8a3e6
RS
239042013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
23905
23906 * expmed.c (extract_bit_field_1): Pass the full width of the
23907 structure to get_best_reg_extraction_insn.
23908
99113dff
DE
239092013-02-01 David Edelsohn <dje.gcc@gmail.com>
23910
23911 PR target/54601
23912 * configure.ac (use_cxa_atexit): Add AIX.
23913 * configure: Regenerate.
23914
23915 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
23916
ddd84654
JJ
239172013-02-01 Jakub Jelinek <jakub@redhat.com>
23918
23919 PR debug/54793
23920 * final.c (need_profile_function): New variable.
23921 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
23922 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
23923 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
23924 notes, targetm.asm_out.function_prologue doesn't emit anything,
23925 HAVE_prologue and profiler should be emitted before prologue,
23926 set need_profile_function instead of emitting it.
23927 (final_scan_insn): If need_profile_function, emit
23928 profile_function on the first NOTE_INSN_BASIC_BLOCK or
23929 NOTE_INSN_FUNCTION_BEG note.
23930
239312013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
23932
23933 * config/rs6000/rs6000.md (smulditi3): New.
23934 (umulditi3): New.
23935
ff2a9d88
RH
23936 * config/alpha/alpha.md (umulditi3): New.
23937
14d52b90
DE
239382013-02-01 David Edelsohn <dje.gcc@gmail.com>
23939
23940 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
23941 (ASM_OUTPUT_ALIGNED_LOCAL): New.
23942
8c7ca45c
RB
239432013-02-01 Richard Biener <rguenther@suse.de>
23944
23945 PR tree-optimization/56113
23946 * tree-ssa-structalias.c (label_visit): Reduce work for
23947 single-predecessor nodes.
23948
9f419393
EB
239492013-02-01 Eric Botcazou <ebotcazou@adacore.com>
23950
23951 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
23952 range isn't testing for zero.
23953
c5f4be84
SB
239542013-01-31 Steven Bosscher <steven@gcc.gnu.org>
23955
23956 PR middle-end/56113
23957 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
23958
dbdbd982
NC
239592013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
23960 Nick Clifton <nickc@redhat.com>
23961
23962 * config/v850/constraints.md (Q): Define as a memory constraint.
23963 * config/v850/predicates.md (label_ref_operand): New predicate.
23964 (e3v5_shift_operand): New predicate.
23965 (ior_operator): New predicate.
23966 * config/v850/t-v850: Add e3v5 multilib.
23967 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
23968 (v850_gen_movdi): Prototype.
23969 * config/v850/v850.c: Add support for e3v5 architecture.
23970 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
23971 TARGET_V850E_UP.
23972 (construct_save_jarl): Add e3v5 long JARL support.
23973 (v850_adjust_insn_length): New function. Adjust length of call
23974 insns when using e3v5 instructions.
23975 (v850_gen_movdi): New function: Generate instructions to move a
23976 DImode value.
23977 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
23978 (CPP_SPEC): Define __v850e3v5__ as appropriate.
23979 (TARGET_USE_FPU): Enable for e3v5.
23980 (CONST_OK_FOR_W): New macro.
23981 (ADJUST_INSN_LENGTH): Define.
23982 * config/v850/v850.md (UNSPEC_LOOP): Define.
23983 (attr cpu): Add v850e3v5.
23984 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
23985 (movdi): New pattern.
23986 (movdi_internal): New pattern.
23987 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
23988 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
23989 (cstoresf4): Likewise.
23990 (cstoredf4): Likewise.
23991 (insv): New pattern.
23992 (rotlso3_a): New pattern.
23993 (rotlsi3_b): New pattern
23994 (rotlsi3_v850e3v5): New pattern.
23995 (doloop_begin): New pattern.
23996 (fix_loop_counter): New pattern.
23997 (doloop_end): New pattern.
23998 (branch_normal): Add e3v5 long branch support.
23999 (branch_invert): Likewise.
24000 (branch_z_normal): Likewise.
24001 (branch_z_invert): Likewise.
24002 (branch_nz_normal): Likewise.
24003 (branch_nz_invert): Likewise.
24004 (call_internal_short): Add e3v5 register-indirect JARL support.
24005 (call_internal_long): Likewise.
24006 (call_value_internal_short): Likewise.
24007 (call_value_internal_long): Likewise.
24008 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
24009 (mloop): New option.
24010 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 24011 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 24012
73861a41
PK
240132013-01-31 Paul Koning <ni1d@arrl.net>
24014
24015 PR debug/55059
24016 PR debug/54508
24017 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
24018 children if parent is a class.
24019 (prune_unused_types_prune): Don't add DW_AT_declaration.
24020
e44978dc
RB
240212013-01-31 Richard Biener <rguenther@suse.de>
24022
24023 PR tree-optimization/56157
24024 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
24025 match up operand with SLP child.
24026
90b10dec
JM
240272013-01-31 Jason Merrill <jason@redhat.com>
24028
04d2dadd 24029 PR debug/54410
90b10dec
JM
24030 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
24031 parameters the first time.
24032 (gen_scheduled_generic_parms_dies): Check completeness here.
24033
6e616110
RB
240342013-01-31 Richard Biener <rguenther@suse.de>
24035
24036 PR middle-end/53073
24037 * common.opt (faggressive-loop-optimizations): New flag,
24038 enabled by default.
24039 * doc/invoke.texi (faggressive-loop-optimizations): Document.
24040 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
24041 infer_loop_bounds_from_undefined by it.
24042
636f59cf
RB
240432013-01-31 Richard Biener <rguenther@suse.de>
24044
24045 PR tree-optimization/56150
24046 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
24047 visit virtual operands.
24048 (find_uses_to_rename_bb): Likewise.
24049
240502013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
24051
24052 PR tree-optimization/56150
24053 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
24054 mixed store non-store stmts.
24055
32887460
JJ
240562013-01-30 Jakub Jelinek <jakub@redhat.com>
24057
e60e09a0
JJ
24058 PR sanitizer/55374
24059 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
24060 LIBASAN_EARLY_SPEC is defined.
24061 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
24062 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
24063 before %o.
24064 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
24065
32887460
JJ
24066 PR c++/55742
24067 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
24068 invalid args instead of ICEing on it.
24069 (ix86_valid_target_attribute_tree): Return error_mark_node if
24070 ix86_valid_target_attribute_inner_p failed.
24071 (ix86_valid_target_attribute_p): Return false only if
24072 ix86_valid_target_attribute_tree returned error_mark_node. Allow
24073 target("default") attribute.
24074 (sorted_attr_string): Change argument from const char * to tree,
24075 merge in all target attribute arguments rather than just one.
24076 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
24077 instead of free. Avoid using strcat.
24078 (ix86_mangle_function_version_assembler_name): Mangle
24079 target("default") as if no target attribute is present. Adjust
24080 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
24081 instead of xmalloc and XDELETEVEC instead of free.
24082 (ix86_function_versions): Don't return true if one of the decls
24083 doesn't have target attribute. If they don't and one of the decls
24084 is DECL_FUNCTION_VERSIONED, report an error. Adjust
24085 sorted_attr_string caller. Use XDELETEVEC instead of free.
24086 (ix86_supports_function_versions): Remove.
24087 (make_name): Fix up formatting.
24088 (make_dispatcher_decl): Remove resolver_name and its initialization.
24089 Avoid leaking memory.
24090 (is_function_default_version): Return true if there is
24091 target("default") attribute rather than no target attribute at all.
24092 (make_resolver_func): Avoid leaking memory.
24093 (ix86_generate_version_dispatcher_body): Likewise.
24094 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
24095 * target.def (supports_function_versions): Remove.
24096 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
24097 * doc/tm.texi: Regenerated.
24098
73cca0cc
VM
240992013-01-30 Vladimir Makarov <vmakarov@redhat.com>
24100
24101 PR rtl-optimization/56144
24102 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
24103 for values with side effects.
24104
11452e7b
RB
241052013-01-30 Richard Biener <rguenther@suse.de>
24106
24107 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
24108 (sparseset_pop): Likewise.
24109 * cfganal.c (compute_idf): Likewise. Increase work-stack size
24110 to be able to use quick_push in the worker loop.
24111
01cb1ef5
MP
241122013-01-30 Marek Polacek <polacek@redhat.com>
24113
24114 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
24115
e892936e
RB
241162013-01-30 Richard Biener <rguenther@suse.de>
24117
24118 PR lto/56147
6edc3e32 24119 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 24120
cc06c01d
GJL
241212013-01-30 Georg-Johann Lay <avr@gjlay.de>
24122
24123 PR tree-optimization/56064
24124 * fixed-value.c (fixed_from_double_int): New function.
24125 * fixed-value.h (fixed_from_double_int): New prototype.
24126 (const_fixed_from_double_int): New static inline function.
24127 * fold-const.c (native_interpret_fixed): New static function.
24128 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
24129 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
24130 (native_encode_fixed): New static function.
24131 (native_encode_expr) <FIXED_CST>: Use it.
24132 (native_interpret_int): Move double_int worker code to...
24133 * double-int.c (double_int::from_buffer): ...this new static method.
24134 * double-int.h (double_int::from_buffer): Prototype it.
24135
d394a308
RB
241362013-01-30 Richard Biener <rguenther@suse.de>
24137
24138 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
24139 New pointer-map and obstack.
24140 (init_alias_vars): Allocate pointer-map and obstack.
24141 (delete_points_to_sets): Free them.
24142 (find_what_var_points_to): Cache result.
24143 (find_what_p_points_to): Adjust for changed interface of
24144 find_what_var_points_to.
24145 (compute_points_to_sets): Likewise.
24146 (ipa_pta_execute): Likewise.
24147
20804d96
RO
241482013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24149
24150 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
24151 * configure: Regenerate.
24152 * config.in: Regenerate.
24153 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
24154 #nobits/#progbits if supported.
24155
a7ad88a2
OE
241562013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
24157
24158 PR target/56121
24159 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
24160 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
24161 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
24162
7af79f92
GY
241632013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24164
91bfca59
OE
24165 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
24166 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 24167
753bcf7b
GY
241682013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24169
91bfca59
OE
24170 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
24171 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 24172
8cbc2ea8
GY
241732013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24174
91bfca59
OE
24175 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
24176 declaration.
24177 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
24178 * config/arm/cortex-a7.md: New bypasses using
24179 arm_mac_accumulator_is_result.
8cbc2ea8 24180
697a3325
GY
241812013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24182
91bfca59 24183 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 24184 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
24185 (cortex_a7_fpfmad): New reservation.
24186 (cortex_a7_fpmacs): Use ffmas and update required units.
24187 (cortex_a7_fpmuld): Update required units and latency.
24188 (cortex_a7_fpmacd): Likewise.
24189 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
24190 (cortex_a7_neon). Likewise.
24191 (bypass) Update participating units.
697a3325 24192
29637783
GY
241932013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
24194
91bfca59
OE
24195 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
24196 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
24197 from fmac to ffma.
24198 * config/arm/vfp11.md (vfp_farith): Use ffmas.
24199 (vfp_fmul): Use ffmad.
24200 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
24201 (cortex_r4_fmacd): Use ffmad.
24202 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
24203 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
24204 (cortex_a9_fmacd): Use ffmad.
24205 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
24206 (cortex_a8_vfp_macd): Use ffmad.
24207 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
24208 (cortex_a5_fpmacd): Use ffmad.
24209 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
24210 (cortex_a15_vfp_macd): Use ffmad.
24211 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 24212
2ee8a2d5
JM
242132013-01-29 Jason Merrill <jason@redhat.com>
24214
24215 PR libstdc++/54314
24216 * varasm.c (default_assemble_visibility): Don't warn about
24217 visibility on artificial decls.
24218
78d087bc
RB
242192013-01-29 Richard Biener <rguenther@suse.de>
24220
24221 PR tree-optimization/56113
24222 * tree-ssa-structalias.c (equiv_class_lookup): Also return
24223 the bitmap leader.
24224 (label_visit): Free duplicate bitmaps and record the leader instead.
24225 (perform_var_substitution): Adjust.
24226
83ba4d6f
RB
242272013-01-29 Richard Biener <rguenther@suse.de>
24228
24229 PR tree-optimization/55270
24230 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
24231 the CFG, schedule loops for fixup.
24232
66dfe13f
NC
242332013-01-29 Nick Clifton <nickc@redhat.com>
24234
24235 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
24236 SP_REG.
24237
5a579c3b
LE
242382013-01-28 Leif Ekblad <leif@rdos.net>
24239
24240 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
24241 * config/i386/i386.h (TARGET_RDOS): New macro.
24242 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
24243 * config/i386/i386.c (ix86_option_override_internal): For 64bit
24244 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
24245 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
24246 DEFAULT_LARGE_SECTION_THRESHOLD.
24247 * config/i386/i386.md (R14_REG, R15_REG): New constants.
24248 * config/i386/rdos.h: New file.
24249 * config/i386/rdos64.h: New file.
24250
51e44392
BS
242512013-01-28 Bernd Schmidt <bernds@codesourcery.com>
24252
24253 PR other/54814
24254 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
24255 TEST_HARD_REG_BIT.
24256
db1fb332
JJ
242572013-01-28 Jakub Jelinek <jakub@redhat.com>
24258
24259 PR rtl-optimization/56117
24260 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
24261 call cselib_lookup_from_insn on the MEM before calling
24262 add_insn_mem_dependence.
24263
16917761
RB
242642013-01-28 Richard Biener <rguenther@suse.de>
24265
24266 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
24267 to a stmt that didn't have one.
24268 (copy_phis_for_bb): Likewise for PHI arguments.
24269 (copy_debug_stmt): Likewise for debug stmts.
24270
b9fc0497
RB
242712013-01-28 Richard Biener <rguenther@suse.de>
24272
24273 PR tree-optimization/56034
6edc3e32 24274 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
24275 (partition_builtin_p): Adjust.
24276 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
24277 it is the last partition.
24278 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
24279 up the vertex for the definition.
24280 (classify_partition): Classify whether a partition is a
24281 PKIND_REDUCTION, thus has uses outside of the loop.
24282 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
24283 Merge all PKIND_REDUCTION partitions into the last partition.
24284 (tree_loop_distribution): Seed partitions from reductions as well.
24285
aa710d25
JJ
242862013-01-28 Jakub Jelinek <jakub@redhat.com>
24287
0bfbca58
JJ
24288 PR tree-optimization/56125
24289 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
24290 pow(x,c) into sqrt(x) * powi(x, n/2) or
24291 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
24292 optimizing for size.
24293 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
24294 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
24295 integer.
24296
aa710d25
JJ
24297 PR tree-optimization/56094
24298 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
24299 to UNKNOWN_LOCATION while gimplifying expr.
24300
77dc5297
UB
243012013-01-27 Uros Bizjak <ubizjak@gmail.com>
24302
24303 PR target/56114
24304 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
24305 operand 0 in movabs insn template for -masm=intel asm alternative.
24306 (*movabs<mode>_2): Ditto for operand 1.
24307
0bfbca58 243082013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
24309
24310 PR target/54663
24311 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
24312 of microblaze-c.o
24313
0bfbca58 243142013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
24315
24316 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
24317 tm_file.
24318
0bfbca58 243192013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
24320
24321 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
24322 Undef to avoid warning.
24323
478f60f9
MH
243242013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24325
24326 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
24327 * configure: Regenerate.
24328
d7fa6ee2
JJ
243292013-01-25 Jakub Jelinek <jakub@redhat.com>
24330
24331 PR tree-optimization/56098
24332 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
24333 for stmts with volatile ops.
24334 (cond_store_replacement): Don't optimize if assign has volatile ops.
24335 (cond_if_else_store_replacement_1): Don't optimize if either
24336 then_assign or else_assign have volatile ops.
24337 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
24338 volatile ops.
24339
f8fe87bd
GJL
243402013-01-25 Georg-Johann Lay <avr@gjlay.de>
24341
24342 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
24343
28398d0d
GJL
243442013-01-25 Georg-Johann Lay <avr@gjlay.de>
24345
24346 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
24347 missing ':' in asm example.
24348
b7d7d917
TB
243492013-01-25 Tejas Belagod <tejas.belagod@arm.com>
24350
24351 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
24352 entries into lane and laneq entries.
77dc5297
UB
24353 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
24354 Remove AdvSIMD scalar modes.
b7d7d917
TB
24355 (aarch64_sq<r>dmulh_laneq<mode>): New.
24356 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
24357 modes.
24358 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
24359 builtin implementations to relfect changes in RTL in aarch64-simd.md.
24360 * config/aarch64/iterators.md (VCOND): New.
24361 (VCONQ): New.
24362
556f9906
GJL
243632013-01-25 Georg-Johann Lay <avr@gjlay.de>
24364
24365 PR target/54222
24366 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
24367 Add NULL LIBNAME argument to existing definitions.
24368 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
24369 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
24370 * config/avr/avr.c (DEF_BUILTIN): Same.
24371 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
24372 (avr_expand_builtin): Expand to a vanilla call if a libgcc
24373 implementation is available (DECL_ASSEMBLER_NAME is set).
24374 (avr_fold_absfx): New static function.
24375 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
24376 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
24377 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
24378 AVR_BUILTIN_ABSLLK.
24379 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
24380 (abshk, absk, abslk, absllk): Provide as static inline functions.
24381
1f546bbb
MP
243822013-01-25 Marek Polacek <polacek@redhat.com>
24383
24384 PR tree-optimization/56035
24385 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
24386
7e184bd7
UB
243872012-01-24 Uros Bizjak <ubizjak@gmail.com>
24388
24389 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
24390 (*movtf_internal_rex64): Add (!o,C) alternative
24391 (*movxf_internal_rex64): Ditto.
24392 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
24393
f5ba49ac
SM
243942013-01-24 Shenghou Ma <minux.ma@gmail.com>
24395
24396 * doc/invoke.texi: fix typo.
24397 * doc/objc.texi: fix typo.
24398
a6343728
RS
243992013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
24400
24401 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
24402 for the first two alternatives.
24403
cd030c07
DN
244042013-01-24 Diego Novillo <dnovillo@google.com>
24405
77dc5297 24406 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
24407 (ggc-zone.o): Remove.
24408 * configure.ac: Remove option --with-gc.
24409 * configure: Re-generate.
24410 * doc/install.texi: Remove documentation for --with-gc.
24411 * gengtype.c (write_enum_defn): Remove. Update all users.
24412 (write_Types_process_field): Remove generation of gt_e_* argument.
24413 (output_type_enum): Remove. Update all users.
24414 (write_enum_defn): Remove. Update all users.
24415 (enum alloc_zone): Remove. Update all users.
77dc5297 24416 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
24417 * ggc-common.c (ggc_splay_alloc): Remove first argument.
24418 Update all callers.
24419 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 24420 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
24421 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
24422 Update all users.
aaf1e810 24423 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
24424 (struct alloc_zone): Remove.
24425 (ggc_internal_alloc_zone_stat): Remove.
24426 (ggc_internal_cleared_alloc_zone_stat): Remove.
24427 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
24428 (ggc_pch_count_object): Remove last argument. Update all users.
24429 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
24430 (struct alloc_zone): Remove.
24431 * ggc-zone.c: Remove.
77dc5297 24432 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
24433 (struct alloc_zone): Remove.
24434 (ggc_alloc_typed_stat): Remove.
24435 (ggc_alloc_typed): Remove.
24436 (ggc_splay_alloc): Remove first argument.
24437 (rtl_zone): Remove. Update all users.
24438 (tree_zone): Remove. Update all users.
24439 (tree_id_zone): Remove. Update all users.
24440 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 24441 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 24442 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 24443 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 24444
a861ffa4
GJL
244452013-01-24 Georg-Johann Lay <avr@gjlay.de>
24446
24447 * config/avr/avr.c (avr_out_fract): Make register numbers that
24448 might be outside of source operand signed.
24449
593c0ddd
UB
244502013-01-24 Uros Bizjak <ubizjak@gmail.com>
24451
24452 * config/i386/constraints.md (Yf): New constraint.
24453 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
24454 of f constraint to conditionaly disable x87 register preferences.
24455 (*movdf_internal): Ditto.
24456 (*movsf_internal): Ditto.
24457
e86c0101
SB
244582013-01-24 Steven Bosscher <steven@gcc.gnu.org>
24459
24460 PR inline-asm/55934
24461 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
24462 that have operands with impossible constraints.
24463 Add a FIXME for a speed-up opportunity.
24464 * lra-constraints.c (process_alt_operands): Verify that a class
24465 selected from constraints on asms is valid for the operand mode.
24466 (curr_insn_transform): Remove incorrect comment.
24467
f6fee35f
DE
244682013-01-23 David Edelsohn <dje.gcc@gmail.com>
24469
24470 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
24471 TOC operand is a valid symbol ref in the constant pool.
24472
244732013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 24474
aaf1e810 24475 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 24476
dc62d7d1
GJL
244772013-01-23 Georg-Johann Lay <avr@gjlay.de>
24478
24479 PR target/54222
24480 * config/avr/stdfix.h: New file.
24481 * t-avr (stdfix-gcc.h): New rule to build it.
24482 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
24483
2660d12d
KS
244842013-01-23 Kostya Serebryany <kcc@google.com>
24485
77dc5297
UB
24486 * config/darwin.h: remove dependency on
24487 CoreFoundation (asan on Mac OS).
2660d12d 24488
a70418fc
JJ
244892013-01-23 Jakub Jelinek <jakub@redhat.com>
24490
24491 PR target/49069
24492 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
24493 instead of cmpdi_operand for first comparison operand.
24494 Don't assert that comparison operands aren't both constants.
24495
47876a2a
JW
244962013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
24497
24498 * doc/install.texi (Downloading the Source): Update references to
24499 downloading separate components.
24500
245012013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
24502
24503 * doc/extend.texi (__int128): Improve grammar.
24504
47876a2a 245052013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
24506
24507 PR target/56028
24508 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
24509 alternative to (o,r).
24510 (*movdi_internal_rex64): Remove (!o,n) alternative.
24511 (DImode immediate->memory splitter): Remove.
24512 (DImode immediate->memory peephole2): Remove.
24513 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
24514 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
24515 alternative to (!o,*r).
24516 (*movtf_internal_sse): New pattern.
24517 (*movxf_internal_rex64): New pattern.
24518 (*movxf_internal): Disable for TARGET_64BIT.
24519 (*movdf_internal_rex64): Remove (!o,F) alternative.
24520
3a984f10
JJ
245212013-01-22 Jakub Jelinek <jakub@redhat.com>
24522
502498d5
JJ
24523 PR middle-end/56074
24524 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
24525 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
24526 * tree-vect-loop-manip.c (find_loop_location): Also ignore
24527 stmt locations where LOCATION_LOCUS of the stmt location is
24528 UNKNOWN_LOCATION or BUILTINS_LOCATION.
24529
3a984f10
JJ
24530 PR target/55686
24531 * config/i386/i386.md (UNSPEC_STOS): New.
24532 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
24533 *strsetqi_1): Add UNSPEC_STOS.
24534
fa817f7f
PC
245352013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
24536
24537 PR c++/56067
24538 * doc/invoke.texi: Remove left over -Wsynth example.
24539
8f498c1b
JJ
245402013-01-21 Jakub Jelinek <jakub@redhat.com>
24541
24542 PR tree-optimization/56051
24543 * fold-const.c (fold_binary_loc): Don't fold
24544 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
24545 a narrowing conversion, or widening conversion from signed
24546 to unsigned.
24547
47876a2a 245482013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
24549
24550 PR rtl-optimization/56023
24551 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
24552 dependent on debug instruction.
24553
5b9db1bc
MJ
245542013-01-21 Martin Jambor <mjambor@suse.cz>
24555
24556 PR middle-end/56022
24557 * function.c (allocate_struct_function): Call
24558 invoke_set_current_function_hook earlier.
24559
e8bb7d68
JJ
245602013-01-21 Jakub Jelinek <jakub@redhat.com>
24561
24562 * reload1.c (init_reload): Only initialize reload_obstack
24563 during the first call.
24564
616a4e32
MP
245652013-01-21 Marek Polacek <polacek@redhat.com>
24566
24567 * cfgloop.c (verify_loop_structure): Fix up grammar.
24568
4401981b
YHH
245692013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
24570
24571 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
24572 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
24573
8e87740b
RR
245742013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24575
24576 PR target/56058
24577 * config/arm/marvell-pj4.md: Update copyright year.
24578 Fix up use of alu to alu_reg and simple_alu_imm.
24579
47876a2a 245802013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
24581
24582 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
24583
89d56d79
VM
245842013-01-20 Vladimir Makarov <vmakarov@redhat.com>
24585
24586 PR target/55433
24587 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 24588 insn for secondary memory move when memory mode should be different.
89d56d79 24589
fe603553
JDA
245902013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24591
24592 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
24593 atomic_storedi_1): New patterns.
24594
01284895
VK
245952013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
24596
24597 btver2 pipeline descriptions.
24598 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
24599 descriptions.
24600 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 24601 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
24602 type attributes.
24603 * config/i386/btver2.md: New file describing btver2 pipelines.
24604
5630e3e1
JL
246052013-01-19 Andrew Pinski <apinski@cavium.com>
24606
24607 PR tree-optimization/52631
24608 * tree-ssa-sccvn (visit_use): Before looking up the original
24609 statement, try looking up the simplified expression.
24610
650ae806
AG
246112013-01-19 Anthony Green <green@moxielogic.com>
24612
24613 * config/moxie/moxie.c (moxie_expand_prologue): Set
24614 current_function_static_stack_size.
24615
e300ec2d
JJ
246162013-01-18 Jakub Jelinek <jakub@redhat.com>
24617
24618 PR tree-optimization/56029
24619 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
24620 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
24621
a3d7af04
SS
246222013-01-18 Sharad Singhai <singhai@google.com>
24623
24624 PR tree-optimization/55995
24625 * dumpfile.c (dump_loc): Print location only if available.
24626 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
24627
66aa7879
VM
246282013-01-18 Vladimir Makarov <vmakarov@redhat.com>
24629
24630 PR target/55433
24631 * lra-constraints.c (curr_insn_transform): Reuse original insn for
24632 secondary memory move.
24633 (inherit_reload_reg): Use rclass instead of cl for
24634 check_secondary_memory_needed_p.
24635
3f0fee7b
JJ
246362013-01-18 Jakub Jelinek <jakub@redhat.com>
24637
24638 PR middle-end/56015
24639 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 24640 the case where writing real complex part of target modifies op1.
3f0fee7b 24641
70c67693
JG
246422013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
24643
24644 * config/aarch64/aarch64-simd.md
24645 (aarch64_vcond_internal<mode>): Handle unordered cases.
24646 * config/aarch64/iterators.md (v_cmp_result): New.
24647
df8de9b3
YHH
246482013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
24649 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24650
24651 * config/arm/marvell-pj4.md: New file.
24652 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
24653 * config/arm/arm.md (generic_sched): Add marvell_pj4.
24654 (generic_vfp): Likewise.
24655 * config/arm/arm-cores.def: Add marvell-pj4.
24656 * config/arm/arm-tune.md: Regenerate.
24657 * config/arm/arm-tables.opt: Regenerate.
24658 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
24659 * doc/invoke.texi: Document marvell-pj4.
24660
be30c356
TB
246612013-01-18 Tejas Belagod <tejas.belagod@arm.com>
24662
24663 * config/aarch64/arm_neon.h: Map scalar types to standard types.
24664
0bfbca58 246652013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
24666
24667 PR debug/54114
24668 PR debug/54402
24669 PR debug/49888
24670 * var-tracking.c (negative_power_of_two_p): New.
24671 (global_get_addr_cache, local_get_addr_cache): New.
24672 (get_addr_from_global_cache, get_addr_from_local_cache): New.
24673 (vt_canonicalize_addr): Rewrite using the above. Adjust the
24674 heading comment.
24675 (vt_stack_offset_p): Remove.
24676 (vt_canon_true_dep): Always canonicalize loc's address.
24677 (clobber_overlapping_mems): Make sure we have a MEM.
24678 (local_get_addr_clear_given_value): New.
24679 (val_reset): Clear local cached entries.
24680 (compute_bb_dataflow): Create and release the local cache.
24681 Disable duplicate MEMs clobbering.
24682 (emit_notes_in_bb): Clobber MEMs likewise.
24683 (vt_emit_notes): Create and release the local cache.
24684 (vt_initialize, vt_finalize): Create and release the global
24685 cache, respectively.
1f6bc337 24686 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 24687
0bfbca58 246882013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
24689
24690 PR libmudflap/53359
24691 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
24692 not found in the symtab.
24693
0bfbca58 246942013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 24695
c350ba53 24696 PR debug/56006
3aa03517
AO
24697 PR rtl-optimization/55547
24698 PR rtl-optimization/53827
24699 PR debug/53671
24700 PR debug/49888
24701 * alias.c (offset_overlap_p): New, factored out of...
24702 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
24703 the conservative special case for symbolic constants. Don't
24704 adjust zero sizes on alignment.
24705
c664546f
JL
247062013-01-18 Bernd Schmidt <bernds@codesourcery.com>
24707
24708 PR rtl-optimization/52573
24709 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
24710 REG_UNUSED for the same register.
24711
1bd3f750
MP
247122013-01-17 Richard Biener <rguenther@suse.de>
24713 Marek Polacek <polacek@redhat.com>
24714
24715 PR rtl-optimization/55833
24716 * loop-unswitch.c (unswitch_loops): Move loop verification...
24717 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
24718 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
24719 Set it to true when we're removing a loop from hierarchy tree in
24720 an irreducible region.
24721 (fix_bb_placements): Adjust caller.
24722 (fix_loop_placements): Likewise.
24723
e52a8b71
GJL
247242013-01-17 Georg-Johann Lay <avr@gjlay.de>
24725
24726 * config/avr/builtins.def (DEF_BUILTIN): Factor out
24727 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
24728 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
24729 Remove ID. Adjust comments.
24730 * config/avr/avr-c.c (avr_builtin_name): Remove.
24731 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
24732 * config/avr/avr.c (avr_tolower): New static function.
24733 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
24734 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
24735 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
24736 default expansion.
24737
8386a7ea
JH
247382013-01-17 Jan Hubicka <jh@suse.cz>
24739
610fb637 24740 PR tree-optimization/55273
8386a7ea
JH
24741 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
24742
47876a2a 247432013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
24744
24745 PR target/55981
24746 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
24747 store through atomic_store<mode>_1.
24748 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
24749
8222c37e
MJ
247502013-01-17 Martin Jambor <mjambor@suse.cz>
24751
24752 PR tree-optimizations/55264
24753 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
24754 for virtual methods.
24755 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
24756 virtual methods before inlining is over.
24757 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
24758 virtual functions.
24759 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
24760 non-virtual.
24761
79f01c76
VM
247622013-01-16 Vladimir Makarov <vmakarov@redhat.com>
24763
24764 PR rtl-optimization/56005
24765 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
24766 pending reads for prefetch.
24767
d0b6bb1b
IB
247682013-01-16 Ian Bolton <ian.bolton@arm.com>
24769
aaf1e810 24770 * config/aarch64/aarch64.md
d0b6bb1b
IB
24771 (*cstoresi_neg_uxtw): New pattern.
24772 (*cmovsi_insn_uxtw): New pattern.
24773 (*<optab>si3_uxtw): New pattern.
24774 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
24775 (*<optab>si3_insn_uxtw): New pattern.
24776 (*bswapsi2_uxtw): New pattern.
24777
cb9cf03b
RB
247782013-01-16 Richard Biener <rguenther@suse.de>
24779
24780 * tree-inline.c (tree_function_versioning): Remove set but
24781 never used variable.
24782
2cfc56b9
RB
247832013-01-16 Richard Biener <rguenther@suse.de>
24784
24785 PR tree-optimization/55964
24786 * tree-flow.h (rename_variables_in_loop): Remove.
24787 (rename_variables_in_bb): Likewise.
24788 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
24789 (copy_loop_before): Adjust and delete update-ssa status.
24790 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 24791 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
24792 (rename_variables_in_loop): Remove.
24793 (slpeel_update_phis_for_duplicate_loop): Likewise.
24794 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
24795 use available cfg machinery instead of duplicating it.
24796 Update PHI nodes and perform poor-mans SSA update here.
24797 (slpeel_tree_peel_loop_to_edge): Adjust.
24798
c25a0c60
RB
247992013-01-16 Richard Biener <rguenther@suse.de>
24800
24801 PR tree-optimization/54767
24802 PR tree-optimization/53465
24803 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
24804 (vrp_visit_phi_node): For PHI arguments coming via backedges
24805 drop all symbolical range information.
24806 (execute_vrp): Compute backedges.
24807
04b535af
RB
248082013-01-16 Richard Biener <rguenther@suse.de>
24809
24810 * doc/install.texi: Update CLooG and ISL requirements to
24811 0.18.0 and 0.11.1.
24812
8b0a1e0b
CB
248132013-01-16 Christian Bruel <christian.bruel@st.com>
24814
24815 PR target/55301
24816 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
24817 (broken_move): Handle UNSPECV_SP_SWITCH_B.
24818 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
24819
248202013-01-16 DJ Delorie <dj@redhat.com>
24821
24822 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
24823 (UNSPECV_SP_SWITCH_E): New.
24824 (sp_switch_1): Change to an unspec.
24825 (sp_switch_2): Change to an unspec. Don't use post-inc when we
24826 replace $r15.
24827
248282013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
24829
24830 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
24831 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
24832 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
24833 (expand_mem_thread_fence): Ditto.
24834 (expand_mem_signal_fence): Ditto.
24835 (expand_atomic_load): Ditto.
24836 (expand_atomic_store): Ditto.
24837
0bfbca58 248382013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
24839
24840 PR rtl-optimization/55547
24841 PR rtl-optimization/53827
24842 PR debug/53671
24843 PR debug/49888
24844 * alias.c (memrefs_conflict_p): Set sizes to negative after
24845 AND adjustments.
24846
305e3ac1
JJ
248472013-01-15 Jakub Jelinek <jakub@redhat.com>
24848
24849 PR target/55940
24850 * function.c (thread_prologue_and_epilogue_insns): Always
24851 add crtl->drap_reg to set_up_by_prologue.set, even if
24852 stack_realign_drap is false.
24853
f78ac4f2
JBG
248542013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
24855
24856 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
24857 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
24858 *call): Fix indention.
24859
a78a8cc4
TV
248602013-01-15 Tom de Vries <tom@codesourcery.com>
24861
24862 PR target/55876
24863 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
24864 Update comment.
24865
0e80383f
VM
248662013-01-15 Vladimir Makarov <vmakarov@redhat.com>
24867
305e3ac1 24868 PR rtl-optimization/55153
0e80383f
VM
24869 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
24870
207b5956
MJ
248712013-01-15 Martin Jambor <mjambor@suse.cz>
24872
24873 PR tree-optimization/55920
24874 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
24875 accesses as grp_to_be_debug_replaced.
24876
a7818b54
JJ
248772013-01-15 Jakub Jelinek <jakub@redhat.com>
24878
24879 PR tree-optimization/55920
24880 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
24881 there is non-useless type conversion needed from debug rhs to lhs,
24882 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
24883
b0fe107e
JM
248842013-01-15 Joseph Myers <joseph@codesourcery.com>
24885 Mikael Pettersson <mikpe@it.uu.se>
24886
24887 PR target/43961
24888 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
24889 Thumb.
24890 (ASM_OUTPUT_CASE_LABEL): Remove.
24891 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
24892 * final.c (shorten_branches): Update alignment of labels before
24893 jump tables if CASE_VECTOR_SHORTEN_MODE.
24894
34ab62ee
RB
248952013-01-15 Richard Biener <rguenther@suse.de>
24896
24897 PR bootstrap/55961
24898 * system.h: Do not include gmp.h for building host tools.
24899
783a3a05
RB
249002013-01-15 Richard Biener <rguenther@suse.de>
24901
24902 PR middle-end/55882
24903 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
24904 account for bitpos when computing alignment.
24905
3a579e09
VY
249062013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
24907
24908 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
24909 (ix86_target_macros_internal): Likewise.
24910
24911 * config/i386/i386.c (m_CORE2I7): Removed.
24912 (m_CORE_HASWELL): New macro.
24913 (m_CORE_ALL): Likewise.
24914 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
24915 (initial_ix86_arch_features): Likewise.
24916 (processor_target_table): Initializations for Core avx2.
24917 (cpu_names): New names "core-avx2".
24918 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
24919 PROCESSOR_CORE_HASWELL.
24920 (ix86_issue_rate): New case.
24921 (ia32_multipass_dfa_lookahead): Likewise.
24922 (ix86_sched_init_global): Likewise.
24923
24924 * config/i386/i386.h (TARGET_HASWELL): New macro.
24925 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
24926 (processor_type): New PROCESSOR_HASWELL.
24927
955f5a07
JJ
249282013-01-15 Jakub Jelinek <jakub@redhat.com>
24929
ff784829
JJ
24930 PR tree-optimization/55955
24931 * tree-vect-loop.c (vectorizable_reduction): Give up early on
24932 *SHIFT_EXPR and *ROTATE_EXPR codes.
24933
955f5a07
JJ
24934 PR tree-optimization/48766
24935 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
24936 -ftrapv disable -fwrapv.
24937
aeb8b4e9
GJL
249382013-01-14 Georg-Johann Lay <avr@gjlay.de>
24939
24940 PR target/55974
24941 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
24942 etc. to 1 and not to __flash.
24943 Use LL suffix for __INT24_MAX__ with -mint8.
24944 Use ULL suffix for __UINT24_MAX__ with -mint8.
24945
1c494c6a
GJL
249462013-01-14 Georg-Johann Lay <avr@gjlay.de>
24947
24948 * config/avr/avr-arch.h
24949 (struct base_arch_s): Use typedef avr_arch_t instead.
24950 (struct arch_info_s): Use typedef avr_arch_info_t instead.
24951 (struct mcu_type_s): Use typedef avr_mcu_t instead.
24952 * config/avr/avr.c: Same.
24953 * config/avr/avr-devices.c: Same.
24954 * config/avr/driver-avr.c: Same.
24955 * config/avr/gen-avr-mmcu-texi.c: Same.
24956 * config/avr/avr-mcus.def: Adjust comment.
24957
a50344cb
TB
249582013-01-14 Tejas Belagod <tejas.belagod@arm.com>
24959
88e784e6
UB
24960 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
24961 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 24962
47876a2a 249632013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
24964 Andi Kleen <ak@linux.intel.com>
24965
24966 PR target/55948
24967 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
24968 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
24969 memmodel flag.
24970
00892272
GJL
249712013-01-14 Georg-Johann Lay <avr@gjlay.de>
24972
24973 * config/avr/avr-stdint.h: Remove trailing blanks.
24974 * config/avr/avr-log.h: Same.
24975 * config/avr/avr-arch.h: Same.
24976 * config/avr/avr-devices.c: Same.
24977 * config/avr/avr-dimode.md: Same.
24978 * config/avr/predicates.md: Same.
24979 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 24980
00892272
GJL
24981 * config/avr/avr-protos.h: Same. And:
24982 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
24983 (init_cumulative_args): Rename to avr_init_cumulative_args.
24984 (expand_prologue): Rename to avr_expand_prologue.
24985 (expand_epilogue): Rename to avr_expand_epilogue.
24986 (adjust_insn_length): Rename to avr_adjust_insn_length.
24987 (notice_update_cc): Rename to avr_notice_update_cc.
24988 (final_prescan_insn): Rename to avr_final_prescan_insn.
24989 * config/avr/avr.c: Same.
24990 * config/avr/avr.h: Same.
24991 * config/avr/avr.md: Remove trailing blanks.
24992 (prologue): Use avr_expand_prologue.
24993 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
24994
7bb01996
RB
249952013-01-14 Richard Biener <rguenther@suse.de>
24996
24997 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
24998 verify_location, collect_subblocks): New functions.
24999 (verify_gimple_in_cfg): Verify that locations only reference
25000 BLOCKs in the functions BLOCK tree.
25001
2724573f
RB
250022013-01-14 Richard Biener <rguenther@suse.de>
25003
25004 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
25005 PHI argument.
25006 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
25007 unshare reference.
25008 (insert_out_of_ssa_copy_on_edge): Likewise.
25009 (rewrite_close_phi_out_of_ssa): Likewise.
25010 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
25011 debug expressions.
25012 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
25013 propagated constants.
25014 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
25015 can not be shared.
25016
9a0bbab6
GJL
250172013-01-14 Georg-Johann Lay <avr@gjlay.de>
25018
25019 * config/avr/avr-modes.def: Add GPL copyright notice.
25020
45805f17
UB
250212013-01-13 Uros Bizjak <ubizjak@gmail.com>
25022
25023 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
25024 MEMMODEL_MASK to determine memory model.
25025 (atomic_store<mode>): Ditto from operands[2].
25026 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
25027
9d60be38
JJ
250282013-01-13 Jakub Jelinek <jakub@redhat.com>
25029
25030 PR fortran/55935
45805f17 25031 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
25032 (fold_gimple_assign): Don't call unshare_expr here.
25033 (fold_ctor_reference): Call unshare_expr.
25034
e7f49d92
TG
250352013-01-13 Terry Guo <terry.guo@arm.com>
25036
aaf1e810
EB
25037 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
25038 * doc/fragments.texi: Document MULTILIB_REUSE.
25039 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 25040 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 25041 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
25042 (tmpmultilib4): Ditto.
25043 (multilib_reuse): New multilib argument.
25044
fbd03a27
RS
250452013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
25046
25047 * Makefile.in: Update copyright.
25048
b3681f13
TV
250492013-01-12 Tom de Vries <tom@codesourcery.com>
25050
25051 PR middle-end/55890
25052 * calls.c (expand_call): Check if arg_nr is valid.
25053
3f287e4b
MM
250542013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
25055
25056 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
25057 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
25058 documentation. Add missing '__' in front of
25059 __builtin_ia32_packssdw256.
3f287e4b 25060
1abcd5eb
AK
250612013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25062
25063 PR target/55719
25064 * config/s390/s390.c (s390_preferred_reload_class): Do not return
25065 NO_REGS for larl operands.
25066 (s390_reload_larl_operand): Use s390_load_address instead of
25067 emit_move_insn.
25068
980d0812
RB
250692013-01-11 Richard Biener <rguenther@suse.de>
25070
25071 * tree-cfg.c (verify_node_sharing_1): Split out from ...
25072 (verify_node_sharing): ... here.
25073 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
25074
7cb9fd07
EB
250752013-01-11 Eric Botcazou <ebotcazou@adacore.com>
25076
25077 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
25078 Substitute TREECHECKING.
25079 * configure: Regenerate.
25080 * Makefile.in (TREECHECKING): New.
25081
47876a2a 250822013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
25083
25084 PR tree-optimization/44061
25085 * tree-vrp.c (extract_range_basic): Compute zero as
25086 value-range for __builtin_constant_p of function parameters.
25087
d1e082c2
RS
250882013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
25089
45805f17 25090 Update copyright years.
d1e082c2 25091
f85021b0
VM
250922013-01-10 Vladimir Makarov <vmakarov@redhat.com>
25093
9d60be38 25094 PR rtl-optimization/55672
0160442c
VM
25095 * lra-eliminations.c (mark_not_eliminable): Permit addition with
25096 const to be eliminable.
f85021b0 25097
7a8b1ec4
DE
250982013-01-10 David Edelsohn <dje.gcc@gmail.com>
25099
25100 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
25101 * configure: Regenerate.
25102
ad2e5b71
RB
251032013-01-10 Richard Biener <rguenther@suse.de>
25104
ddf9322d 25105 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 25106
ffc5b2bb
RB
251072013-01-10 Richard Biener <rguenther@suse.de>
25108
25109 PR bootstrap/55792
25110 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
25111 locations for virtual PHI arguments.
25112 (rewrite_update_phi_arguments): Likewise.
25113
e1f674e4
JS
251142013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
25115
25116 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
25117 on to assembler.
25118
a57fc743
JJ
251192013-01-10 Jakub Jelinek <jakub@redhat.com>
25120
25121 PR tree-optimization/55921
25122 * tree-complex.c (expand_complex_asm): New function.
25123 (expand_complex_operations_1): Call it for GIMPLE_ASM.
25124
0ff4390d
AK
251252013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25126
25127 PR target/55718
25128 * config/s390/s390.c (s390_symref_operand_p)
25129 (s390_loadrelative_operand_p): Merge the two functions.
25130 (s390_check_qrst_address, print_operand_address): Add parameters
25131 to s390_loadrelative_operand_p invokation.
25132 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
25133 (s390_reload_larl_operand, s390_secondary_reload): Use
25134 s390_loadrelative_operand_p instead of s390_symref_operand_p.
25135 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
25136
6f557e0e
MS
251372013-01-09 Mike Stump <mikestump@comcast.net>
25138
25139 * dse.c (record_store): Remove unnecessary assert.
25140
7770c9e9
JH
251412013-01-09 Jan Hubicka <jh@suse.cz>
25142
25143 PR tree-optimization/55569
25144 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
25145 * cfgloop.h (scale_loop_profile): Likewise.
25146
a19b1432
JH
251472013-01-09 Jan Hubicka <jh@suse.cz>
25148
25149 PR lto/45375
ddf9322d
UB
25150 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
25151 functions.
a19b1432
JH
25152 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
25153
9a002da8
RS
251542013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
25155
25156 PR middle-end/55114
25157 * expr.h (maybe_emit_group_store): Declare.
25158 * expr.c (maybe_emit_group_store): New function.
25159 * builtins.c (expand_builtin_int_roundingfn): Call it.
25160 (expand_builtin_int_roundingfn_2): Likewise.
25161
511dcace
VM
251622013-01-09 Vladimir Makarov <vmakarov@redhat.com>
25163
e1f2b729 25164 PR rtl-optimization/55829
511dcace
VM
25165 * lra-constraints.c (match_reload): Add code for absent output.
25166 (curr_insn_transform): Add code for reloads of matched inputs
25167 without output.
25168
7b0fe4f4
UB
251692013-01-09 Uros Bizjak <ubizjak@gmail.com>
25170
25171 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
25172 attribute of movddup insn to DF.
25173 (*vec_interleave_lowv2df): Ditto.
25174 (vec_dupv2df): Ditto.
25175
870ca331
JH
251762013-01-09 Jan Hubicka <jh@suse.cz>
25177
25178 PR tree-optimiation/55875
25179 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
25180 EVERY_ITERATION parameter.
7b0fe4f4 25181 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
25182 (idx_infer_loop_bounds): Similarly here.
25183 (n_of_executions_at_most): Simplify
25184 to only test for cases where statement is dominated by the
7b0fe4f4 25185 particular bound; handle correctly the "postdominance" test.
870ca331
JH
25186 (scev_probably_wraps_p): Use max loop iterations info
25187 as a global bound first.
25188
6f575fe4 251892013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
25190 Nick Clifton <nickc@redhat.com>
25191
25192 * config/v850/v850.md (cbranchsf4): New pattern.
25193 (cstoresf4): New pattern.
25194 (cbranchdf4): New pattern.
25195 (cstoredf4): New pattern.
25196 (movsicc): Disallow floating point comparisons.
25197 (cmpsf_le_insn): Fix order of operators.
25198 (cmpsf_lt_insn): Likewise.
25199 (cmpsf_eq_insn): Likewise.
25200 (cmpdf_le_insn): Likewise.
25201 (cmpdf_lt_insn): Likewise.
25202 (cmpdf_eq_insn): Likewise.
25203 (cmpsf_ge_insn): Use LE comparison.
25204 (cmpdf_ge_insn): Likewise.
25205 (cmpsf_gt_insn): Use LT comparison.
25206 (cmpdf_gt_insn): Likewise.
25207 (cmpsf_ne_insn): Delete pattern.
25208 (cmpdf_ne_insn): Delete pattern.
25209 * config/v850/v850.c (v850_gen_float_compare): Use
25210 gen_cmpdf_eq_insn for NE comparison.
25211 (v850_float_z_comparison_operator)
25212 (v850_float_nz_comparison_operator): Move from here ...
25213 * config/v850/predicates.md: ... to here. Move GT and GE
25214 comparisons into v850_float_z_comparison_operator.
25215 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
25216 Delete prototype.
25217 (v850_float_nz_comparison_operator): Likewise.
25218
f0d54148
JDA
252192013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25220
25221 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
25222 with calls to gen_insvsi/gen_insvdi.
25223
8f01beca
VK
252242013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25225
25226 * config/i386/i386.c (initial_ix86_tune_features): Set up
25227 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
25228
2aa579ad
JJ
252292013-01-09 Steven Bosscher <steven@gcc.gnu.org>
25230 Jakub Jelinek <jakub@redhat.com>
25231
25232 PR tree-optimization/48189
25233 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
25234 If nitercst is 0, don't predict the exit edge.
25235
6edc3e32 252362013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
25237
25238 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
25239 in asm_fprintf with reg_names.
25240 (aarch64_print_operand_address): Likewise.
25241 (aarch64_return_addr): Likewise.
25242 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
25243
f6f94d94
JDA
252442013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25245
25246 * config/pa/pa.h (VAL_U6_BITS_P): Define.
25247 (INT_U6_BITS): Likewise.
25248 * config/pa/predicates.md (uint6_operand): New predicate.
25249 (shift5_operand, shift6_operand): Likewise.
25250 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
25251 arith32_operand.
25252 (lshrdi3): Use shift6_operand.
25253 (shrpsi4, shrpdi4): New insn patterns.
25254 (extzv): Delete expander.
25255 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
25256 predicates in unamed zero extract patterns. Tighten common constraint.
25257 (extv): Delete expander.
25258 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
25259 predicates in unamed sign extract patterns. Tighten common constraint.
25260 (insv): Delete expander.
25261 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
25262 predicates in unamed insert patterns. Tighten common constraint.
25263 Change uint32_operand predicate to uint6_operand predicate in unamed
25264 DImode pattern to insert constant values of type 1...1xxxx.
25265
36b72910
JH
252662013-01-04 Jan Hubicka <jh@suse.cz>
25267
25268 PR tree-optimization/55823
7b0fe4f4
UB
25269 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
25270 issue.
36b72910 25271
47876a2a 252722013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
25273 Uros Bizjak <ubizjak@gmail.com>
25274
25275 PR rtl-optimization/55845
25276 * df-problems.c (can_move_insns_across): Stop scanning at
25277 volatile_insn_p source instruction or give up if
25278 across_from .. across_to range contains any volatile_insn_p
25279 instructions.
25280
4369c11e
TB
252812013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25282
7b0fe4f4
UB
25283 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
25284 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
25285 Declare.
4369c11e 25286 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 25287 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 25288
aeb7e7c1
JJ
252892013-01-08 Jakub Jelinek <jakub@redhat.com>
25290
25291 PR fortran/55341
25292 * asan.c (asan_clear_shadow): New function.
25293 (asan_emit_stack_protection): Use it.
25294
a02ad1aa
TB
252952013-01-08 Tejas Belagod <tejas.belagod@arm.com>
25296
25297 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
25298 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
25299 with tab instead of space.
25300
f90d87f5
NC
253012013-01-08 Nick Clifton <nickc@redhat.com>
25302
25303 * config/rl78/rl78.c (rl78_expand_prologue): Always select
25304 register bank 0 at the start of an interrupt handler.
83ffd964
NC
25305 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
25306 MDBH registers.
f90d87f5 25307
385eb93d
JG
253082013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25309
25310 * config/aarch64/aarch64-simd.md
25311 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
25312 (aarch64_simd_bsl): Likewise.
25313 (aarch64_vcond_internal<mode>): Likewise.
25314 (vcond<mode><mode>): Likewise.
25315 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
25316 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
25317
4dcd1054
JG
253182013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
25319
25320 * config/aarch64/aarch64-builtins.c
25321 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
25322
4267a4a6
MJ
253232013-01-08 Martin Jambor <mjambor@suse.cz>
25324
25325 PR debug/55579
25326 * tree-sra.c (analyze_access_subtree): Return true also after
25327 potentially creating a debug-only replacement.
25328
5f4e6de3
JJ
253292013-01-08 Jakub Jelinek <jakub@redhat.com>
25330
3138f224
JJ
25331 PR middle-end/55890
25332 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
25333
5f4e6de3
JJ
25334 PR tree-optimization/54120
25335 * tree-vrp.c (range_fits_type_p): Don't allow
25336 src_precision < precision from signed vr to unsigned_p
25337 if vr->min or vr->max is negative.
25338 (simplify_float_conversion_using_ranges): Test can_float_p
25339 against CODE_FOR_nothing.
25340
f3ef18ff
JJ
253412013-01-08 Jakub Jelinek <jakub@redhat.com>
25342 Richard Biener <rguenther@suse.de>
25343
25344 PR middle-end/55851
25345 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
25346 types instead of just INTEGER_TYPE types.
25347
25c210f9
MK
253482013-01-07 Mark Kettenis <kettenis@openbsd.org>
25349
25350 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
25351 TF_SIZE): Define.
f90d87f5 25352
81826a7b
SE
253532013-01-07 Steve Ellcey <sellcey@mips.com>
25354
25355 PR target/42661
25356 * config/mips/mips.opt: Change mad to mmad to match documentation.
25357
35678514
GJL
253582013-01-07 Georg-Johann Lay <avr@gjlay.de>
25359
25360 PR target/55897
25361 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
25362 .progmemx.data now.
25363
e5669488
GJL
253642013-01-07 Georg-Johann Lay <avr@gjlay.de>
25365
25366 PR target/55897
25367 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
25368 (avr_addrspace_t): Add .section_name field.
25369 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
25370 array size.
25371 (avr_addrspace): Same. Initialize .section_name. Remove last
25372 NULL entry. Put __memx into .progmemx.data.
25373 (progmem_section_prefix): Remove.
25374 (avr_asm_init_sections): No need to initialize progmem_section.
25375 (avr_asm_named_section): Use avr_addrspace[].section_name to get
25376 section name prefix.
25377 (avr_asm_select_section): Ditto. And use get_unnamed_section to
25378 retrieve the progmem section.
25379 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
25380 boundary to run over avr_addrspace[].
25381 (avr_register_target_pragmas): Ditto.
25382
656e6f37
JJ
253832013-01-06 Jakub Jelinek <jakub@redhat.com>
25384
25385 * varasm.c (output_constant_def_contents): For asan_protect_global
25386 protected strings, adjust DECL_ALIGN if needed, before testing for
25387 anchored symbols.
25388 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
25389 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
25390 normal decls.
25391 (output_object_block): For asan protected decls, emit asan padding
25392 after their contents.
25393 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
25394 (asan_finish_file): Test it here instead.
25395
6edc3e32
UB
253962013-01-07 Nick Clifton <nickc@redhat.com>
25397 Matthias Klose <doko@debian.org>
25398 Doug Kwan <dougkwan@google.com>
25399 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
25400
25401 PR driver/55470
25402 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
25403
25404 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
25405
25406 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
25407
7b0fe4f4 25408 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
25409
25410 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
25411
2a095093
GJL
254122013-01-07 Georg-Johann Lay <avr@gjlay.de>
25413
f3b503f4 25414 PR target/54461
2a095093
GJL
25415 * doc/install.texi (Cross-Compiler-Specific Options): Document
25416 --with-avrlibc.
25417
383f9b34
TB
254182013-01-07 Tejas Belagod <tejas.belagod@arm.com>
25419
25420 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
25421 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
25422 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
25423 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
25424 vqmovun_high_s64): Fix source operand number and update copyright.
25425
3626621a
RB
254262013-01-07 Richard Biener <rguenther@suse.de>
25427
25428 PR middle-end/55890
25429 * gimple.h (gimple_call_builtin_p): New overload.
25430 * gimple.c (validate_call): New function.
25431 (gimple_call_builtin_p): Likewise.
25432 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25433 Use gimple_call_builtin_p.
25434 (find_func_clobbers): Likewise.
25435 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
25436 (strlen_optimize_stmt): Likewise.
25437
8b2ea410
JG
254382013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25439
25440 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
25441 (vld1q_dup_*): Likewise.
25442 (vld1_*): Likewise.
25443 (vld1q_*): Likewise.
25444 (vld1_lane_*): Likewise.
25445 (vld1q_lane_*): Likewise.
25446
9713d329
RB
254472013-01-07 Richard Biener <rguenther@suse.de>
25448
25449 * lto-streamer.h (LTO_minor_version): Bump to 2.
25450
3520f7cc
JG
254512013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
25452
25453 * config/aarch64/aarch64-protos.h
25454 (aarch64_const_double_zero_rtx_p): Rename to...
25455 (aarch64_float_const_zero_rtx_p): ...this.
25456 (aarch64_float_const_representable_p): New.
25457 (aarch64_output_simd_mov_immediate): Likewise.
25458 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
25459 move immediate case.
25460 * config/aarch64/aarch64.c
25461 (aarch64_const_double_zero_rtx_p): Rename to...
25462 (aarch64_float_const_zero_rtx_p): ...this.
25463 (aarch64_print_operand): Allow printing of new constants.
25464 (aarch64_valid_floating_const): New.
25465 (aarch64_legitimate_constant_p): Check for valid floating-point
25466 constants.
25467 (aarch64_simd_valid_immediate): Likewise.
25468 (aarch64_vect_float_const_representable_p): New.
25469 (aarch64_float_const_representable_p): Likewise.
25470 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
25471 (aarch64_output_simd_mov_immediate): New.
25472 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
25473 (*movdf_aarch64): Likewise.
25474 * config/aarch64/constraints.md (Ufc): New.
25475 (Y): call aarch64_float_const_zero_rtx.
25476 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
25477
e167c04d
RB
254782013-01-07 Richard Biener <rguenther@suse.de>
25479
25480 PR tree-optimization/55888
25481 PR tree-optimization/55862
25482 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
25483 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
25484 not if it is contained therein.
25485
0139aaab
GJL
254862013-01-07 Georg-Johann Lay <avr@gjlay.de>
25487
25488 * config/avr/t-avr: Typo.
25489
4a176b23
GJL
254902013-01-07 Georg-Johann Lay <avr@gjlay.de>
25491
25492 PR55243
25493 * config/avr/t-avr: Don't automatically rebuild
25494 $(srcdir)/config/avr/t-multilib
25495 $(srcdir)/config/avr/avr-tables.opt
25496 $(srcdir)/doc/avr-mmcu.texi
25497 (avr-mcus): New phony target to build them on request.
25498 (s-avr-mlib, s-avr-mmcu-texi): Remove.
25499 * avr/avr-mcus.def: Adjust comments.
25500
c7afdc98
UB
255012013-01-07 Uros Bizjak <ubizjak@gmail.com>
25502
25503 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
25504
1ab05c31
RS
255052013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25506
25507 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
25508
488e3acc
RS
255092013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
25510
25511 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
25512
a89599d2
DE
255132013-01-05 David Edelsohn <dje.gcc@gmail.com>
25514
25515 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
25516 to generate profiling.
25517 * config/rs6000/aix64.h (LIB_SPEC): Same.
25518
70f09188
AP
255192013-01-04 Andrew Pinski <apinski@cavium.com>
25520
25521 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
25522 New function.
25523 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
25524
918d445f
UB
255252013-01-04 Uros Bizjak <ubizjak@gmail.com>
25526
25527 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
25528 unconditionally.
25529 (ix86_expand_move): Ditto.
25530 (ix86_zero_extend_to_Pmode): Ditto.
25531 (ix86_expand_call): Ditto.
25532 (ix86_expand_special_args_builtin): Ditto.
25533 (ix86_expand_builtin): Ditto.
25534
361618ec
RB
255352013-01-04 Richard Biener <rguenther@suse.de>
25536
25537 PR tree-optimization/55862
25538 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
25539 translating them through PHI nodes.
25540
87eab554
MJ
255412013-01-04 Martin Jambor <mjambor@suse.cz>
25542
25543 PR tree-optimization/55755
25544 * tree-sra.c (sra_modify_assign): Do not check that an access has no
25545 children when trying to avoid producing a VIEW_CONVERT_EXPR.
25546
33879b9f
MP
255472013-01-04 Marek Polacek <polacek@redhat.com>
25548
25549 PR middle-end/55859
25550 * opts.c (default_options_optimization): Clarify error message.
25551
3068819a
RB
255522013-01-04 Richard Biener <rguenther@suse.de>
25553
25554 PR middle-end/55863
25555 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
25556 reassociation.
25557
0e4ae794
JDA
255582013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25559
25560 PR target/53789
25561 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
25562 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
25563 references.
0e4ae794 25564
65c88cef
RH
255652013-01-03 Richard Henderson <rth@redhat.com>
25566
25567 * config/i386/i386.c (ix86_expand_move): Always assign to op1
25568 after eliminating TLS symbols.
25569
8ac16127
MG
255702013-01-03 Marc Glisse <marc.glisse@inria.fr>
25571
25572 PR bootstrap/50167
25573 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
25574 * graphite-poly.c (debug_gmp_value): Likewise.
25575
bb664f09
UB
255762013-01-03 Uros Bizjak <ubizjak@gmail.com>
25577
25578 PR target/55712
25579 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
25580 selected code model, define __code_mode_small__, __code_model_medium__,
25581 __code_model_large__, __code_model_32__ or __code_model_kernel__.
25582 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
25583 xchg temporary register with %k. Declare temporary register as
25584 early clobbered.
25585 [__x86_64__]: For medium and large code models, preserve %rbx register.
25586
bcf1ef00
RB
255872013-01-03 Richard Biener <rguenther@suse.de>
25588
0506634a 25589 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
25590 (dump_subscript): Adjust.
25591 (finalize_ddr_dependent): Do not dump redundant info.
25592 (analyze_siv_subscript): Adjust.
25593 (subscript_dependence_tester): Likewise.
25594 (compute_affine_dependence): Likewise.
25595
59fd17e3
RB
255962013-01-03 Richard Biener <rguenther@suse.de>
25597
25598 Revert
25599 2013-01-03 Richard Biener <rguenther@suse.de>
25600
25601 PR tree-optimization/55857
25602 * tree-vect-stmts.c (vectorizable_load): Do not setup
25603 re-alignment for invariant loads.
25604
25605 2013-01-02 Richard Biener <rguenther@suse.de>
25606
25607 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25608 invariant load do not generate a vector load from the scalar location.
59fd17e3 25609
595c2679
RB
256102013-01-03 Richard Biener <rguenther@suse.de>
25611
25612 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
25613 for not vectorizing.
25614 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
25615 not build INDIRECT_REFs, call get_name once only.
25616 (vect_create_data_ref_ptr): Likewise. Dump base object kind
25617 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
25618
90bb7d7a
RB
256192013-01-03 Richard Biener <rguenther@suse.de>
25620
25621 PR tree-optimization/55857
25622 * tree-vect-stmts.c (vectorizable_load): Do not setup
25623 re-alignment for invariant loads.
25624
f09b77ca
RB
256252013-01-03 Richard Biener <rguenther@suse.de>
25626
25627 PR lto/55848
25628 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
25629 prefer a built-in decl.
25630
3461a16e
JJ
256312013-01-03 Jakub Jelinek <jakub@redhat.com>
25632
df8e2b4f
JJ
25633 * gcc.c (process_command): Update copyright notice dates.
25634 * gcov.c (print_version): Likewise.
25635 * gcov-dump.c (print_version): Likewise.
25636
3461a16e
JJ
25637 PR rtl-optimization/55838
25638 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
25639 iv0.step, iv1.step and step.
25640
8b5546d6
JJ
256412013-01-03 Jakub Jelinek <jakub@redhat.com>
25642 Marc Glisse <marc.glisse@inria.fr>
25643
25644 PR tree-optimization/55832
25645 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
25646 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
25647 integer_{one,zero}_node.
25648
8ab1d2e9
JJ
256492013-01-03 Jakub Jelinek <jakub@redhat.com>
25650
25651 PR debug/54402
25652 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
25653 * var-tracking.c (reverse_op): Don't add reverse ops to
25654 VALUEs that have already
0506634a 25655 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 25656
5b9ad1d4
GP
256572013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
25658
25659 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
25660
e25a6711
TJ
256612013-01-02 Teresa Johnson <tejohnson@google.com>
25662
25663 * dumpfile.c (dump_loc): Print filename with location.
25664 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
25665 new location_t parameter to emit complete unroll message with
25666 new dump framework.
25667 (canonicalize_loop_induction_variables): Compute loops location
25668 and pass to try_unroll_loop_completely.
25669 * loop-unroll.c (report_unroll_peel): New function.
25670 (peel_loops_completely): Use new dump format with location
25671 for main dumpfile message, and invoke report_unroll_peel on success.
25672 (decide_unrolling_and_peeling): Ditto.
25673 (decide_peel_once_rolling): Remove old dumpfile message subsumed
25674 by report_unroll_peel.
25675 (decide_peel_completely): Ditto.
25676 (decide_unroll_constant_iterations): Ditto.
25677 (decide_unroll_runtime_iterations): Ditto.
25678 (decide_peel_simple): Ditto.
25679 (decide_unroll_stupid): Ditto.
25680 * cfgloop.c (get_loop_location): New function.
25681 * cfgloop.h (get_loop_location): Declare.
25682
77878621
ST
256832013-01-02 Sriraman Tallam <tmsriram@google.com>
25684
25685 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
25686 NULL.
25687
9e65d03e
JDA
256882013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25689
25690 PR middle-end/55198
25691 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
25692 BLKmode objects when EXPAND_MEMORY is specified.
25693
6a7da30f
ST
256942013-01-02 Sriraman Tallam <tmsriram@google.com>
25695
25696 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
25697 in loop predicate.
25698 (fold_builtin_cpu): Do not share cpu model decls across statements.
25699
e78167f2
JM
257002013-01-02 Jason Merrill <jason@redhat.com>
25701
25702 PR c++/55804
25703 * tree.c (build_array_type_1): Revert earlier change.
25704
8c075fb4
YZ
257052013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
25706
25707 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
25708 "cortex-a57".
25709 * config/aarch64/aarch64-tune.md: Re-generate.
25710
0682ed3e
RB
257112013-01-02 Richard Biener <rguenther@suse.de>
25712
25713 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 25714 invariant load do not generate a vector load from the scalar location.
0682ed3e 25715
b8f6a302
RB
257162013-01-02 Richard Biener <rguenther@suse.de>
25717
25718 PR bootstrap/55784
25719 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
25720 * configure: Regenerate.
25721
04b80dbb
RS
257222013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25723
25724 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
25725 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
25726 (expand_builtin_int_roundingfn_2): Keep the original target around
25727 for the fallback case.
25728
635b0b0c
RS
257292013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
25730
25731 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
25732 to be clear for sign changes.
25733
42d57399
JH
257342013-01-01 Jan Hubicka <jh@suse.cz>
25735
25736 * ipa-inline-analysis.c: Fix formatting.
25737
5bb6669d
JJ
257382013-01-01 Jakub Jelinek <jakub@redhat.com>
25739
25740 PR tree-optimization/55831
25741 * tree-vect-loop.c (get_initial_def_for_induction): Use
25742 gsi_after_labels instead of gsi_start_bb.
ad41bd84 25743\f
86a2db33 25744Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
25745
25746Copying and distribution of this file, with or without modification,
25747are permitted in any medium without royalty provided the copyright
25748notice and this notice are preserved.