]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
2014-03-06 Richard Biener <rguenther@suse.de>
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
958d7687 12014-03-06 Richard Biener <rguenther@suse.de>
2
3 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
4 or -fno-lto is specified and the linker has full plugin support.
5 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is
6 enabled.
7 (main): Remove -flto processing, adjust lto_mode using
8 use_plugin late.
9 * lto-wrapper.c (merge_and_complain): Merge compile-time
10 optimization levels.
11 (run_gcc): And pass it through to the link options.
12
c6fbbd72 132014-03-06 Alexandre Oliva <aoliva@redhat.com>
14
15 PR debug/60381
16 Revert:
17 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
18 PR debug/59992
19 * cselib.c (remove_useless_values): Skip to avoid quadratic
20 behavior if the condition moved from...
21 (cselib_process_insn): ... here holds.
22
8ecf2b4a 232014-03-05 Jakub Jelinek <jakub@redhat.com>
24
09de3e17 25 PR plugins/59335
26 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
27 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
28
8ecf2b4a 29 PR plugins/59335
30 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31 (TM_H): Add x86-tune.def.
32
1a3ae6f9 332014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34
35 * config/aarch64/aarch64.c (generic_tunings):
36 Use cortexa57_extra_costs.
37
45ddd4eb 382014-03-05 Jakub Jelinek <jakub@redhat.com>
39
40 PR lto/60404
41 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
42 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
43 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44 cost for in_lto_p.
45
2158068e 462014-03-04 Heiher <r@hev.cc>
47
48 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
49 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
50
d418f1d9 512014-03-04 Uros Bizjak <ubizjak@gmail.com>
52
53 * config/i386/predicates.md (const2356_operand): Change to ...
54 (const2367_operand): ... this.
55 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
56 const2367_operand.
57 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
58 (*avx512pf_scatterpf<mode>sf): Ditto.
59 (avx512pf_scatterpf<mode>df): Ditto.
60 (*avx512pf_scatterpf<mode>df_mask): Ditto.
61 (*avx512pf_scatterpf<mode>df): Ditto.
62 * config/i386/i386.c (ix86_expand_builtin): Update
63 incorrect hint operand error message.
64
4692b23a 652014-03-04 Richard Biener <rguenther@suse.de>
66
67 * lto-section-in.c (lto_get_section_data): Fix const cast.
d418f1d9 68
1942e76f 692014-03-04 Paulo Matos <paulo@matos-sorge.com>
70
71 * tree-streamer.c (record_common_node): Assert we don't record
72 nodes with type double.
73 (preload_common_node): Skip type double, complex double and
74 double pointer since it is now frontend dependent due to
75 fshort-double option.
76
baa4a2c6 772014-03-04 Richard Biener <rguenther@suse.de>
78
79 PR lto/60405
d418f1d9 80 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
baa4a2c6 81 (lto_input_toplevel_asms): Likewise.
82 * lto-section-in.c (lto_get_section_data): Instead do it here
83 for every section.
d418f1d9 84
75f8b7c8 852014-03-04 Richard Biener <rguenther@suse.de>
86
87 PR tree-optimization/60382
88 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
89 dead PHIs a reduction.
90
25e01811 912014-03-03 Uros Bizjak <ubizjak@gmail.com>
92
93 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
94 hint value.
95 (_mm_prefetch): Move out of GCC target("sse") pragma.
96 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
97 GCC target("prfchw") pragma.
98 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
99 for locality <= 2.
100 * config/i386/i386.c (ix86_option_override_internal): Enable
101 -mprfchw with -mprefetchwt1.
102
bbf906e4 1032014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
104
105 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
106 Mark as varying.
107
d8f2baf5 1082014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
109
110 * opts.h (CL_PCH_IGNORE): Define.
111 * targhooks.c (option_affects_pch_p):
112 Return false for options that have CL_PCH_IGNORE set.
113 * opt-functions.awk: Process PchIgnore.
114 * doc/options.texi: Document PchIgnore.
115
aab83f18 116 * config/arc/arc.opt (misize): Add PchIgnore property.
117
498714da 1182014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
119
120 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
121 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
122 constraint on constants to permit them being loaded into
123 GENERAL_REGS or BASE_REGS.
124
6956ee35 1252014-03-03 Nick Clifton <nickc@redhat.com>
126
127 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
128 anti-cacnonical alternatives.
129 (negandhi3_real): New pattern.
130 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
131
dd872ef1 1322014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
133
134 * config/avr/avr-mcus.def: Remove atxmega16x1.
135 * config/avr/avr-tables.opt: Regenerate.
136 * config/avr/t-multilib: Regenerate.
137 * doc/avr-mmcu.texi: Regenerate.
138
fa7884f6 1392014-03-03 Tobias Grosser <tobias@grosser.es>
25e01811 140 Mircea Namolaru <mircea.namolaru@inria.fr>
fa7884f6 141
142 PR tree-optimization/58028
143 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
144 scalar dimensions.
145
877744d0 1462014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
147
148 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
149 not handled by recognizers.
150
04e7d9cb 1512014-03-03 Jakub Jelinek <jakub@redhat.com>
152
153 PR middle-end/60175
154 * function.c (expand_function_end): Don't emit
155 clobber_return_register sequence if clobber_after is a BARRIER.
156 * cfgexpand.c (construct_exit_block): Append instructions before
157 return_label to prev_bb.
158
18833bd1 1592014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
160
161 * config/rs6000/constraints.md: Document reserved use of "wc".
162
36a3e498 1632014-03-02 Jan Hubicka <hubicka@ucw.cz>
164
165 PR ipa/60150
166 * ipa.c (function_and_variable_visibility): When dissolving comdat
167 group, also set all symbols to local.
168
e4032363 1692014-03-02 Jan Hubicka <hubicka@ucw.cz>
6956ee35 170
e4032363 171 PR ipa/60306
172
173 Revert:
174 2013-12-14 Jan Hubicka <jh@suse.cz>
175 PR middle-end/58477
176 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
177
369d6f24 1782014-03-02 Jon Beniston <jon@beniston.com>
179
180 PR bootstrap/48230
181 PR bootstrap/50927
182 PR bootstrap/52466
183 PR target/46898
184 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6956ee35 185 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
369d6f24 186 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6956ee35 187 (simple_return, *simple_return): New patterns
369d6f24 188 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
189 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
190
2d791ea6 1912014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
192
193 * dwarf2out.c (gen_subprogram_die): Tidy.
194
2bf6c3e6 1952014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
196
197 PR target/60071
198 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
199 (*mov_t_msb_neg_negc): ... this new insn.
200
55438e42 2012014-02-28 Jason Merrill <jason@redhat.com>
202
203 PR c++/58678
204 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
205 function.
206
c654c503 2072014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
208
209 PR c++/60314
210 * dwarf2out.c (decltype_auto_die): New static.
211 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
212 (gen_type_die_with_usage): Handle 'decltype(auto)'.
213 (is_cxx_auto): Likewise.
214
b5499fa3 2152014-02-28 Ian Bolton <ian.bolton@arm.com>
216
217 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
218 we are not using general regs only.
219
0ab3f603 2202014-02-28 Richard Biener <rguenther@suse.de>
221
222 PR target/60280
223 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
224 previous fix and only allow to remove trivial pre-headers
225 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
b74058ea 226 (remove_forwarder_block): Properly update the latch of a loop.
0ab3f603 227
7168cc34 2282014-02-28 Alexandre Oliva <aoliva@redhat.com>
229
230 PR debug/59992
231 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
232 (cselib_preserved_hash_table): New.
233 (preserve_constants_and_equivs): Move preserved vals to it.
234 (cselib_find_slot): Look it up first.
235 (cselib_init): Initialize it.
236 (cselib_finish): Release it.
237 (dump_cselib_table): Dump it.
238
e6aeb304 2392014-02-28 Alexandre Oliva <aoliva@redhat.com>
240
241 PR debug/59992
242 * cselib.c (remove_useless_values): Skip to avoid quadratic
243 behavior if the condition moved from...
244 (cselib_process_insn): ... here holds.
245
50f4b776 2462014-02-28 Alexandre Oliva <aoliva@redhat.com>
247
248 PR debug/57232
249 * var-tracking.c (vt_initialize): Apply the same condition to
250 preserve the CFA base value.
251
03ef363c 2522014-02-28 Joey Ye <joey.ye@arm.com>
253
254 PR target/PR60169
255 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
256 if reload in progress or completed.
257
d95140de 2582014-02-28 Tobias Burnus <burnus@net-b.de>
259
260 PR middle-end/60147
261 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
262 NAMELIST_DECL.
263
5b4ac966 2642014-02-27 H.J. Lu <hongjiu.lu@intel.com>
265
266 * doc/tm.texi.in (Condition Code Status): Update documention for
267 relative locations of cc0-setter and cc0-user.
268
7c7451c5 2692014-02-27 Jeff Law <law@redhat.com>
270
271 PR rtl-optimization/52714
272 * combine.c (try_combine): When splitting an unrecognized PARALLEL
273 into two independent simple sets, if I3 is a jump, ensure the
b74058ea 274 pattern we place into I3 is a (set (pc) ...).
7c7451c5 275
77cb85b2 2762014-02-27 Mikael Pettersson <mikpe@it.uu.se>
277 Jeff Law <law@redhat.com>
278
279 PR rtl-optimization/49847
280 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
281 are in different blocks.
282 * doc/tm.texi (Condition Code Status): Update documention for
283 relative locations of cc0-setter and cc0-user.
284
1c1417f1 2852014-02-27 Vladimir Makarov <vmakarov@redhat.com>
286
287 PR target/59222
288 * lra.c (lra_emit_add): Check SUBREG too.
289
2bf2188d 2902014-02-27 Andreas Schwab <schwab@suse.de>
291
292 * config/m68k/m68k.c (m68k_option_override): Disable
293 -flive-range-shrinkage for classic m68k.
294 (m68k_override_options_after_change): Likewise.
295
b12c4baf 2962014-02-27 Marek Polacek <polacek@redhat.com>
297
298 PR middle-end/59223
299 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
300 -Wmaybe-uninitialized.
301
d7c5d150 3022014-02-27 Alan Modra <amodra@gmail.com>
303
872d3398 304 PR target/57936
d7c5d150 305 * reload1.c (emit_input_reload_insns): When reload_override_in,
306 set old to rl->in_reg when rl->in_reg is a subreg.
307
adfa3d5a 3082014-02-26 Richard Biener <rguenther@suse.de>
309
310 PR bootstrap/60343
311 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
312
3befdeb0 3132014-02-25 Ilya Tocar <ilya.tocar@intel.com>
314
315 * common/config/i386/predicates.md (const1256_operand): Remove.
316 (const2356_operand): New.
317 (const_1_to_2_operand): Remove.
318 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
319 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
320 (*avx512pf_gatherpf<mode>sf): Ditto.
321 (avx512pf_gatherpf<mode>df): Ditto.
322 (*avx512pf_gatherpf<mode>df_mask): Ditto.
323 (*avx512pf_gatherpf<mode>df): Ditto.
324 (avx512pf_scatterpf<mode>sf): Ditto.
325 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
326 (*avx512pf_scatterpf<mode>sf): Ditto.
327 (avx512pf_scatterpf<mode>df): Ditto.
328 (*avx512pf_scatterpf<mode>df_mask): Ditto.
329 (*avx512pf_scatterpf<mode>df): Ditto.
330 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
331
f46a34a6 3322014-02-26 Ilya Tocar <ilya.tocar@intel.com>
333
334 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
335 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
336 (_mm512_mask_testn_epi64_mask): Move to ...
337 * config/i386/avx512cdintrin.h: Here.
338 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
339 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
340 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
341 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
342 TARGET_AVX512F from TARGET_AVX512CD.
343
6469adde 3442014-02-26 Richard Biener <rguenther@suse.de>
345
346 PR ipa/60327
347 * ipa.c (walk_polymorphic_call_targets): Properly guard
348 call to inline_update_overall_summary.
349
3c2e3ed6 3502014-02-26 Bin Cheng <bin.cheng@arm.com>
351
352 PR target/60280
b74058ea 353 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
354 and latches only if requested. Fix latch if it is removed.
3c2e3ed6 355 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
356 LOOPS_HAVE_PREHEADERS.
357
3ed779c3 3582014-02-25 Andrew Pinski <apinski@cavium.com>
359
360 * builtins.c (expand_builtin_thread_pointer): Create a new target
361 when the target is NULL.
362
eb3db740 3632014-02-25 Vladimir Makarov <vmakarov@redhat.com>
364
365 PR rtl-optimization/60317
366 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
367 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
368 * lra-assigns.c: Include params.h.
369 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
370 other reload pseudos considerations.
371
f6339cd8 3722014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
373
a54ada24 374 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
375 to use canonical form for nor<mode>3.
f6339cd8 376
07b2ba2c 3772014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
378
379 PR target/55426
380 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
381 conversions.
382
e3659231 3832014-02-25 Ilya Tocar <ilya.tocar@intel.com>
384
385 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
386 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
387 (ix86_handle_option): Handle OPT_mprefetchwt1.
388 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
389 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
390 PREFETCHWT1 CPUID.
391 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
392 OPTION_MASK_ISA_PREFETCHWT1.
393 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
394 (PTA_PREFETCHWT1): New.
395 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
396 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
b74058ea 397 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
e3659231 398 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
399 (*prefetch_avx512pf_<mode>_: Change into ...
b74058ea 400 (*prefetch_prefetchwt1_<mode>: This.
e3659231 401 * config/i386/i386.opt (mprefetchwt1): New.
402 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
403 (_mm_prefetch): Handle intent to write.
404 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
405
8dc3230c 4062014-02-25 Richard Biener <rguenther@suse.de>
407
408 PR middle-end/60291
409 * emit-rtl.c (mem_attrs_htab): Remove.
410 (mem_attrs_htab_hash): Likewise.
411 (mem_attrs_htab_eq): Likewise.
b74058ea 412 (set_mem_attrs): Always allocate new mem-attrs when something changed.
8dc3230c 413 (init_emit_once): Do not allocate mem_attrs_htab.
414
e38bbd96 4152014-02-25 Richard Biener <rguenther@suse.de>
416
417 PR lto/60319
418 * lto-opts.c (lto_write_options): Output non-explicit conservative
419 -fwrapv, -fno-trapv and -fno-strict-overflow.
420 * lto-wrapper.c (merge_and_complain): Handle merging those options.
421 (run_gcc): And pass them through.
422
dce9387e 4232014-02-25 Andrey Belevantsev <abel@ispras.ru>
e3659231 424
dce9387e 425 * sel-sched.c (calculate_new_fences): New parameter ptime.
426 Calculate it as a maximum over all fence cycles.
427 (sel_sched_region_2): Adjust the call to calculate_new_fences.
428 Print the final schedule timing when sched_verbose.
429
a0d15f90 4302014-02-25 Andrey Belevantsev <abel@ispras.ru>
431
432 PR rtl-optimization/60292
433 * sel-sched.c (fill_vec_av_set): Do not reset target availability
434 bit fot the fence instruction.
435
a04100ab 4362014-02-24 Alangi Derick <alangiderick@gmail.com>
437
438 * calls.h: Fix typo in comment.
439
23a61b5a 4402014-02-24 John David Anglin <danglin@gcc.gnu.org>
441
442 * config/pa/pa.c (pa_output_move_double): Don't valididate when
443 adjusting offsetable addresses.
444
9ca5fbe7 4452014-02-24 Guozhi Wei <carrot@google.com>
446
447 * sparseset.h (sparseset_pop): Fix the wrong index.
448
2da35515 4492014-02-24 Walter Lee <walt@tilera.com>
450
451 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
452 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
453 triplet.
454 * common/config/tilegx/tilegx-common.c
455 (TARGET_DEFAULT_TARGET_FLAGS): Define.
456 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
457 (LINK_SPEC): Ditto.
458 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
459 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
460 (tilegx_gimplify_va_arg_expr): Handle big endian.
461 (tilegx_expand_unaligned_load): Ditto.
462 (tilegx_expand_unaligned_store): Ditto.
463 (TARGET_RETURN_IN_MSB): New.
464 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
465 (TARGET_ENDIAN_DEFAULT): New.
466 (TARGET_BIG_ENDIAN): Handle big endian.
467 (BYTES_BIG_ENDIAN): Ditto.
468 (WORDS_BIG_ENDIAN): Ditto.
469 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
470 (ENDIAN_SPEC): New.
471 (EXTRA_SPECS): New.
472 * config/tilegx/tilegx.md (extv): Handle big endian.
473 (extzv): Ditto.
474 (insn_st<n>): Ditto.
475 (insn_st<n>_add<bitsuffix>): Ditto.
476 (insn_stnt<n>): Ditto.
477 (insn_stnt<n>_add<bitsuffix>):Ditto.
478 (vec_interleave_highv8qi): Handle big endian.
479 (vec_interleave_highv8qi_be): New.
480 (vec_interleave_highv8qi_le): New.
481 (insn_v1int_h): Handle big endian.
482 (vec_interleave_lowv8qi): Handle big endian.
483 (vec_interleave_lowv8qi_be): New.
484 (vec_interleave_lowv8qi_le): New.
485 (insn_v1int_l): Handle big endian.
486 (vec_interleave_highv4hi): Handle big endian.
487 (vec_interleave_highv4hi_be): New.
488 (vec_interleave_highv4hi_le): New.
489 (insn_v2int_h): Handle big endian.
490 (vec_interleave_lowv4hi): Handle big endian.
491 (vec_interleave_lowv4hi_be): New.
492 (vec_interleave_lowv4hi_le): New.
493 (insn_v2int_l): Handle big endian.
494 (vec_interleave_highv2si): Handle big endian.
495 (vec_interleave_highv2si_be): New.
496 (vec_interleave_highv2si_le): New.
497 (insn_v4int_h): Handle big endian.
498 (vec_interleave_lowv2si): Handle big endian.
499 (vec_interleave_lowv2si_be): New.
500 (vec_interleave_lowv2si_le): New.
501 (insn_v4int_l): Handle big endian.
502 * config/tilegx/tilegx.opt (mbig-endian): New option.
503 (mlittle-endian): New option.
504 * doc/install.texi: Document tilegxbe-linux.
505 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
506
019885b0 5072014-02-24 Martin Jambor <mjambor@suse.cz>
508
509 PR ipa/60266
510 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
511 there are no parameter descriptors.
512
91096e87 5132014-02-24 Andrey Belevantsev <abel@ispras.ru>
514
515 PR rtl-optimization/60268
516 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
517 initialization to ...
518 (sched_rgn_init): ... here.
519 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
520
b409442d 5212014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
522
91096e87 523 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
524 names.
b409442d 525
2a5e9bb0 5262014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
527
528 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
529 definition.
530
0462b5fb 5312014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
532
b74058ea 533 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
534 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
0462b5fb 535
96a9db22 5362014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
537
538 * config/microblaze/predicates.md: Add cmp_op predicate.
b74058ea 539 * config/microblaze/microblaze.md: Add branch_compare instruction
96a9db22 540 which uses cmp_op predicate and emits cmp insn before branch.
b74058ea 541 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
96a9db22 542 to microblaze_expand_conditional_branch and consolidate logic.
543 (microblaze_expand_conditional_branch): emit branch_compare
544 insn instead of handling cmp op separate from branch insn.
545
d0e00ac3 5462014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
547
548 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
549 to permit subregs.
550
6f73f6fe 5512014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
552
96a9db22 553 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
554 define_insn with define_expand and new define_insn
555 *altivec_lve<VI_char>x_internal.
556 (altivec_stve<VI_char>x): Replace define_insn with define_expand
557 and new define_insn *altivec_stve<VI_char>x_internal.
558 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
559 prototype.
560 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
561 lve*x built-ins.
562 (altivec_expand_stvex_be): New function.
6f73f6fe 563
1cffa4f0 5642014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
565
566 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
b74058ea 567 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
1cffa4f0 568 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
569 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
570
ef0231e9 5712014-02-21 Vladimir Makarov <vmakarov@redhat.com>
572
573 PR target/60298
574 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
575 instead of emit_move_insn.
576
198ff083 5772014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
578
579 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
580 vspltw with vsldoi.
581 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
582 gen_altivec_vsumsws.
583
6d7bba7f 5842014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
585
586 * config/rs6000/altivec.md (altivec_lvxl): Rename as
b74058ea 587 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
6d7bba7f 588 (altivec_lvxl_<mode>): New define_expand incorporating
589 -maltivec=be semantics where needed.
590 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
591 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
592 semantics where needed.
593 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
594 (altivec_stvx_<mode>): New define_expand incorporating
595 -maltivec=be semantics where needed.
596 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
597 VM2 iterator instead of V4SI.
598 (altivec_stvxl_<mode>): New define_expand incorporating
599 -maltivec=be semantics where needed.
600 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
601 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
b74058ea 602 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
603 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
604 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
6d7bba7f 605 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
606 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
607 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
608 ALTIVEC_BUILTIN_STVXL.
b74058ea 609 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
6d7bba7f 610 (altivec_expand_stvx_be): Likewise.
611 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
612 (altivec_expand_lvx_be): Likewise.
613 (altivec_expand_stvx_be): Likewise.
614 (altivec_expand_builtin): Add cases for
615 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
616 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
617 (altivec_init_builtins): Add definitions for
618 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
b74058ea 619 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
6d7bba7f 620
486e9c5f 6212014-02-21 Catherine Moore <clm@codesourcery.com>
622
623 * doc/invoke.texi (mvirt, mno-virt): Document.
624 * config/mips/mips.opt (mvirt): New option.
625 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
626
a8cf7702 6272014-02-21 Richard Biener <rguenther@suse.de>
628
629 PR tree-optimization/60276
630 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
631 (STMT_VINFO_MIN_NEG_DIST): New macro.
632 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
633 STMT_VINFO_MIN_NEG_DIST.
634 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
635 made for negative dependence distances still hold.
636
c8a9710d 6372014-02-21 Richard Biener <rguenther@suse.de>
638
639 PR middle-end/60291
640 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
641 DECL_INITIAL for globals not in the current function context.
642
13e8ebe8 6432014-02-21 Jakub Jelinek <jakub@redhat.com>
644
645 PR tree-optimization/56490
646 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
647 * tree-ssa-uninit.c: Include params.h.
648 (compute_control_dep_chain): Add num_calls argument, return false
649 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
650 num_calls to recursive call.
651 (find_predicates): Change dep_chain into normal array,
652 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
653 variable and adjust compute_control_dep_chain caller.
654 (find_def_preds): Likewise.
655
b12563e0 6562014-02-21 Thomas Schwinge <thomas@codesourcery.com>
657
658 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
659 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
660
90af79f4 6612014-02-21 Nick Clifton <nickc@redhat.com>
662
663 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
664 (pushhi1): Likewise.
665 (popqi1): Add mode to pre_dec.
666 (pophi1): Likewise.
667
b2e4d90b 6682014-02-21 Jakub Jelinek <jakub@redhat.com>
669
670 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
671 mode for mask of V8SFmode permutation.
672
3c29a9ea 6732014-02-20 Richard Henderson <rth@redhat.com>
674
675 PR c++/60272
676 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
677 a new pseudo for OLDVAL.
678
b08864ff 6792014-02-20 Jakub Jelinek <jakub@redhat.com>
680
681 PR target/57896
682 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
683 gen_reg_rtx if d->testing_p.
684 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
685 if d->testing_p and we will certainly return true.
686 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
687 if d->testing_p.
688
b4c6ce9b 6892014-02-20 Uros Bizjak <ubizjak@gmail.com>
690
691 * emit-rtl.c (gen_reg_rtx): Assert that
692 crtl->emit.regno_pointer_align_length is non-zero.
693
6942014-02-20 Richard Henderson <rth@redhat.com>
d86e3752 695
696 PR c++/60272
697 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
698 on failure the store back into EXPECT.
699
73e15dfc 7002014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
701 Sandra Loosemore <sandra@codesourcery.com>
702
703 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
b74058ea 704 * config/nios2/nios2.c (nios2_function_profiler): Add
705 -fPIC (flag_pic == 2) support.
73e15dfc 706 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
707 (nios2_large_offset_p): New function.
708 (nios2_unspec_reloc_p): Move up position, update to use
709 nios2_large_offset_p.
710 (nios2_unspec_address): Remove function.
711 (nios2_unspec_offset): New function.
712 (nios2_large_got_address): New function.
713 (nios2_got_address): Add large offset support.
714 (nios2_legitimize_tls_address): Update usage of removed and new
715 functions.
716 (nios2_symbol_binds_local_p): New function.
717 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
718 (nios2_legitimize_address): Update to use nios2_large_offset_p.
719 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
720 (nios2_print_operand): Merge H/L processing, add hiadj/lo
721 processing for (const (unspec ...)).
722 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
723
e4f45990 7242014-02-20 Richard Biener <rguenther@suse.de>
725
726 * tree-cfg.c (replace_uses_by): Mark altered BBs before
727 doing the substitution.
b4c6ce9b 728 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
e4f45990 729
fc635e81 7302014-02-20 Martin Jambor <mjambor@suse.cz>
731
732 PR ipa/55260
733 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
734 info when checking whether lattices are bottom.
735
6b3688f5 7362014-02-20 Richard Biener <rguenther@suse.de>
737
738 PR middle-end/60221
739 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
740 regions at -O0.
741
b8731470 7422014-02-20 Jan Hubicka <hubicka@ucw.cz>
743
744 PR ipa/58555
b4c6ce9b 745 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
746 parameter specifying the scaling.
b8731470 747 (inline_call): Update.
748 (want_inline_recursively): Guard division by zero.
749 (recursive_inlining): Update.
750 * ipa-inline.h (clone_inlined_nodes): Update.
751
fa52849f 7522014-02-20 Ilya Tocar <ilya.tocar@intel.com>
753
754 PR target/60204
755 * config/i386/i386.c (classify_argument): Pass structures of size
756 64 bytes or less in register.
757
c4f782fd 7582014-02-20 Ilya Tocar <ilya.tocar@intel.com>
b4c6ce9b 759 Kirill Yukhin <kirill.yukhin@intel.com>
c4f782fd 760
761 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
762 (_mm_rcp28_round_ss): Ditto.
763 (_mm_rsqrt28_round_sd): Ditto.
764 (_mm_rsqrt28_round_ss): Ditto.
765 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
766 (_mm_rcp14_round_ss): Ditto.
767 (_mm_rsqrt14_round_sd): Ditto.
768 (_mm_rsqrt14_round_ss): Ditto.
769 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
770 the first input operand, get rid of match_dup.
771 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
772 attribute to sse.
773 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
774 Ditto.
775 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
776 operand as the first input operand, set type attribute.
777 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
778 Set type attribute.
779 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
780 operand as the first input operand, set type attribute.
781
8b2edebd 7822014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
783
784 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
785 bit of zero.
786
bd047e11 7872014-02-19 H.J. Lu <hongjiu.lu@intel.com>
788
789 PR target/60207
790 * config/i386/i386.c (construct_container): Remove TFmode check
791 for X86_64_INTEGER_CLASS.
792
7680f324 7932014-02-19 Uros Bizjak <ubizjak@gmail.com>
794
795 PR target/59794
796 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
797 only when -Wpsabi is enabled.
798
d7a05d41 7992014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
800
801 PR target/59799
802 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
803 passing arrays in registers are the same as for structs, so remove the
804 special case for them.
805
fc0bb78b 8062014-02-19 Eric Botcazou <ebotcazou@adacore.com>
807
808 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
809 destination type, extract only the valid bits if the source type is not
810 integral and has a different mode.
811
e3bba195 8122014-02-19 Richard Biener <rguenther@suse.de>
813
814 PR ipa/60243
815 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
816 for all calls.
817
4563499d 8182014-02-19 Richard Biener <rguenther@suse.de>
819
820 PR ipa/60243
821 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
822 (ipa_modify_call_arguments): Emit an argument load explicitely and
823 preserve virtual SSA form there and for the replacement call.
824 Do not update SSA form nor free dominance info.
825
1b713bfd 8262014-02-18 Jan Hubicka <hubicka@ucw.cz>
827
828 * ipa.c (function_and_variable_visibility): Also clear WEAK
829 flag when disolving COMDAT_GROUP.
830
0daac096 8312014-02-18 Jan Hubicka <hubicka@ucw.cz>
832
833 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
834 * ipa-prop.c (ipa_set_jf_known_type): Return early when
835 not devirtualizing.
836 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
837 do more sanity checks.
838 (detect_type_change): Return true when giving up early.
839 (compute_complex_assign_jump_func): Fix type parameter of
840 ipa_set_ancestor_jf.
841 (compute_complex_ancestor_jump_func): Likewise.
842 (update_jump_functions_after_inlining): Fix updating of
843 ancestor function.
7680f324 844 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
0daac096 845
776e3d35 8462014-02-18 Jan Hubicka <hubicka@ucw.cz>
847
848 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
849 inline clones when edge disappears.
850
70d26ff6 8512014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
852
853 PR target/60203
854 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
855 Split 64-bit moves into 2 patterns. Do not allow the use of
856 direct move for TDmode in little endian, since the decimal value
857 has little endian bytes within a word, but the 64-bit pieces are
858 ordered in a big endian fashion, and normal subreg's of TDmode are
859 not allowed.
860 (mov<mode>_64bit_dm): Likewise.
861 (movtd_64bit_nodm): Likewise.
862
81cab242 8632014-02-18 Eric Botcazou <ebotcazou@adacore.com>
864
865 PR tree-optimization/60174
866 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
867 statement of an SSA_NAME that occurs in an abnormal PHI node.
868
46ab8d2c 8692014-02-18 Jakub Jelinek <jakub@redhat.com>
870
871 PR sanitizer/60142
872 * final.c (SEEN_BB): Remove.
873 (SEEN_NOTE, SEEN_EMITTED): Renumber.
874 (final_scan_insn): Don't force_source_line on second
875 NOTE_INSN_BASIC_BLOCK.
876
737ae9cc 8772014-02-18 Uros Bizjak <ubizjak@gmail.com>
878
879 PR target/60205
880 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
881 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
882 (type_natural_mode): Warn ABI change when %zmm register is not
883 available for AVX512F vector value passing.
884
bebe7788 8852014-02-18 Kai Tietz <ktietz@redhat.com>
886
887 PR target/60193
737ae9cc 888 * config/i386/i386.c (ix86_expand_prologue): Use value in
889 rax register as displacement when restoring %r10 or %rax.
890 Fix wrong offset when restoring both registers.
bebe7788 891
0e384caf 8922014-02-18 Eric Botcazou <ebotcazou@adacore.com>
893
894 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
895 assertion with conditional return.
896
ccdeeb71 8972014-02-18 Jakub Jelinek <jakub@redhat.com>
898 Uros Bizjak <ubizjak@gmail.com>
899
900 PR driver/60233
901 * config/i386/driver-i386.c (host_detect_local_cpu): If
902 YMM state is not saved by the OS, also clear has_f16c. Move
903 CPUID 0x80000001 handling before YMM state saving checking.
904
c3089433 9052014-02-18 Andrey Belevantsev <abel@ispras.ru>
906
907 PR rtl-optimization/58960
908 * haifa-sched.c (alloc_global_sched_pressure_data): New,
909 factored out from ...
910 (sched_init): ... here.
911 (free_global_sched_pressure_data): New, factored out from ...
912 (sched_finish): ... here.
913 * sched-int.h (free_global_sched_pressure_data): Declare.
914 * sched-rgn.c (nr_regions_initial): New static global.
915 (haifa_find_rgns): Initialize it.
916 (schedule_region): Disable sched-pressure for the newly
917 generated regions.
918
bbf7a2bd 9192014-02-17 Richard Biener <rguenther@suse.de>
920
921 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
922 release SSA defs of pattern stmts.
923
9f9170de 9242014-02-17 Richard Biener <rguenther@suse.de>
925
926 * tree-inline.c (expand_call_inline): Release the virtual
927 operand defined by the call we are about to inline.
928
fcf70d14 9292014-02-17 Richard Biener <rguenther@suse.de>
930
931 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
932
389b04c1 9332014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
934 Ilya Tocar <ilya.tocar@intel.com>
935
936 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
937 arguments order in builtin.
938 (_mm512_permutexvar_epi64): Ditto.
939 (_mm512_mask_permutexvar_epi64): Ditto
940 (_mm512_maskz_permutexvar_epi32): Ditto
941 (_mm512_permutexvar_epi32): Ditto
942 (_mm512_mask_permutexvar_epi32): Ditto
943
7ac79e02 9442014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
945
737ae9cc 946 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
7ac79e02 947 (p8_vmrgow): Likewise.
948
6305ff1b 9492014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
950
951 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
952 endian targets.
953
8e2b3539 9542014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
955
956 PR target/60203
957 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
958 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
959 into 64-bit and 32-bit moves. On 64-bit moves, add support for
960 using direct move instructions on ISA 2.07. Also adjust
961 instruction length for 64-bit.
962 (mov<mode>_64bit, TFmode/TDmode): Likewise.
963 (mov<mode>_32bit, TFmode/TDmode): Likewise.
964
baca36cb 9652014-02-15 Alan Modra <amodra@gmail.com>
966
967 PR target/58675
968 PR target/57935
969 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
970 find_replacement on parts of insn rtl that might be reloaded.
971
335252cb 9722014-02-15 Richard Biener <rguenther@suse.de>
973
974 PR tree-optimization/60183
737ae9cc 975 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
335252cb 976 (tree_ssa_phiprop): Calculate and free post-dominators.
977
8b997800 9782014-02-14 Jeff Law <law@redhat.com>
979
980 PR rtl-optimization/60131
981 * ree.c (get_extended_src_reg): New function.
737ae9cc 982 (combine_reaching_defs): Use it rather than assuming location of REG.
8b997800 983 (find_and_remove_re): Verify first operand of extension is
984 a REG before adding the insns to the copy list.
985
e786f3a4 9862014-02-14 Roland McGrath <mcgrathr@google.com>
987
988 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
989 * configure: Regenerated.
990 * config.in: Regenerated.
991 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
992 instead of ASM_SHORT.
993
77a00b11 9942014-02-14 Vladimir Makarov <vmakarov@redhat.com>
995 Richard Earnshaw <rearnsha@arm.com>
996
997 PR rtl-optimization/59535
998 * lra-constraints.c (process_alt_operands): Encourage alternative
999 when unassigned pseudo class is superset of the alternative class.
1000 (inherit_reload_reg): Don't inherit when optimizing for code size.
1001 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
1002 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
1003 modes not less than 4 for Thumb1.
1004
f2139b9c 10052014-02-14 Kyle McMartin <kyle@redhat.com>
1006
1007 PR pch/60010
1008 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
1009
44e135a6 10102014-02-14 Richard Biener <rguenther@suse.de>
1011
1012 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
1013 (get_frame_arg): Drop the assert with langhook types_compatible_p.
1014 Do not strip INDIRECT_REFs.
1015
f4c35256 10162014-02-14 Richard Biener <rguenther@suse.de>
1017
1018 PR lto/60179
1019 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
1020 DECL_FUNCTION_SPECIFIC_TARGET.
1021 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
1022 * tree-streamer-out.c (pack_ts_target_option): Remove.
737ae9cc 1023 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
f4c35256 1024 (write_ts_function_decl_tree_pointers): Do not stream
1025 DECL_FUNCTION_SPECIFIC_TARGET.
1026 * tree-streamer-in.c (unpack_ts_target_option): Remove.
1027 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
1028 (lto_input_ts_function_decl_tree_pointers): Do not stream
1029 DECL_FUNCTION_SPECIFIC_TARGET.
1030
0b308eee 10312014-02-14 Jakub Jelinek <jakub@redhat.com>
1032
737ae9cc 1033 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
0b308eee 1034 (get_initial_def_for_induction, vectorizable_induction): Ignore
1035 debug stmts when looking for exit_phi.
1036 (vectorizable_live_operation): Fix up condition.
1037
0f32a27e 10382014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1039
1040 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
1041 nreverse() because it changes the content of original tree list.
1042
416cdb53 10432014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1044
1045 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
1046 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
1047
223d3656 10482014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
1049
1050 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
1051 GNU coding standards.
1052
ecd153b4 10532014-02-13 Jakub Jelinek <jakub@redhat.com>
1054
1055 PR debug/60152
1056 * dwarf2out.c (gen_subprogram_die): Don't call
1057 add_calling_convention_attribute if subr_die is old_die.
1058
adb0119b 10592014-02-13 Sharad Singhai <singhai@google.com>
1060
1061 * doc/optinfo.texi: Fix order of nodes.
1062
ea47f46c 10632014-02-13 Uros Bizjak <ubizjak@gmail.com>
1064
1065 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
1066 operands[2], not operands[3].
1067
da09c7e6 10682014-02-13 Richard Biener <rguenther@suse.de>
1069
1070 PR bootstrap/59878
1071 * doc/install.texi (ISL): Update recommended version to 0.12.2,
1072 mention the possibility of an in-tree build.
1073 (CLooG): Update recommended version to 0.18.1, mention the
1074 possibility of an in-tree build and clarify that the ISL
1075 bundled with CLooG does not work.
1076
0614d12c 10772014-02-13 Jakub Jelinek <jakub@redhat.com>
1078
1079 PR target/43546
1080 * expr.c (compress_float_constant): If x is a hard register,
1081 extend into a pseudo and then move to x.
1082
ed87d3a6 10832014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
1084
1085 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
1086 caused by bad second argument to warning_at() with -mhotpatch and
1087 nested functions (e.g. with gfortran).
1088
6f648625 10892014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
1090
1091 * opts.c (option_name): Remove "enabled by default" rider.
1092
30407823 10932014-02-12 John David Anglin <danglin@gcc.gnu.org>
1094
1095 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
1096
195a2bf8 10972014-02-12 H.J. Lu <hongjiu.lu@intel.com>
1098 Uros Bizjak <ubizjak@gmail.com>
1099
1100 PR target/60151
ea47f46c 1101 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
195a2bf8 1102 * configure: Regenerated.
1103
ec456ba8 11042014-02-12 Richard Biener <rguenther@suse.de>
1105
1106 * vec.c (vec_prefix::calculate_allocation): Move as
1107 inline variant to vec.h.
1108 (vec_prefix::calculate_allocation_1): New out-of-line version.
1109 * vec.h (vec_prefix::calculate_allocation_1): Declare.
1110 (vec_prefix::m_has_auto_buf): Rename to ...
1111 (vec_prefix::m_using_auto_storage): ... this.
1112 (vec_prefix::calculate_allocation): Inline the easy cases
1113 and dispatch to calculate_allocation_1 which doesn't need the
1114 prefix address.
1115 (va_heap::reserve): Use gcc_checking_assert.
1116 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
1117 m_using_auto_storage.
1118 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
1119 member and adjust.
1120 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
1121 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
1122 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
1123
b476835b 11242014-02-12 Richard Biener <rguenther@suse.de>
1125
1126 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
1127 when we found a dependence.
1128
a4eb3f73 11292014-02-12 Thomas Schwinge <thomas@codesourcery.com>
1130
c09f306d 1131 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
1132 common code...
1133 (maybe_fold_stmt): ... into this new function.
1134 * omp-low.c (lower_omp): Update comment.
1135
d8e1e68d 1136 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
1137 last use.
1138
a4eb3f73 1139 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
1140 dereference.
1141
93415fb5 11422014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
1143
1144 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
1145 identifiers in comments.
1146 (cortexa53_extra_costs): Likewise.
ea47f46c 1147 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
93415fb5 1148 (cortexa7_extra_costs): Likewise.
1149 (cortexa12_extra_costs): Likewise.
1150 (cortexa15_extra_costs): Likewise.
1151 (v7m_extra_costs): Likewise.
1152
712bf3a3 11532014-02-12 Richard Biener <rguenther@suse.de>
1154
1155 PR middle-end/60092
1156 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
1157 of posix_memalign being successful.
1158 (lower_stmt): Restrict lowering of posix_memalign to when
1159 -ftree-bit-ccp is enabled.
1160
7eba0028 11612014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1162
1163 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
1164 arg_loc.
1165 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1166
b7417723 11672014-02-12 Eric Botcazou <ebotcazou@adacore.com>
1168
1169 PR rtl-optimization/60116
1170 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
1171 other_insn once the combination has been validated.
1172
857c5a0b 11732014-02-11 Jan Hubicka <hubicka@ucw.cz>
1174
1175 PR lto/59468
1176 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
1177 and wrapper.
1178 * ipa-devirt.c: Include demangle.h
1179 (odr_violation_reported): New static variable.
1180 (add_type_duplicate): Update odr_violations.
1181 (maybe_record_node): Add completep parameter; update it.
1182 (record_target_from_binfo): Add COMPLETEP parameter;
1183 update it as needed.
1184 (possible_polymorphic_call_targets_1): Likewise.
1185 (struct polymorphic_call_target_d): Add nonconstruction_targets;
1186 rename FINAL to COMPLETE.
1187 (record_targets_from_bases): Sanity check we found the binfo;
1188 fix COMPLETEP updating.
1189 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
1190 parameter, fix computing of COMPLETEP.
ea47f46c 1191 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
1192 at LTO time do demangling.
857c5a0b 1193 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
1194 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
1195 parameter.
1196 (gimple_get_virt_method_for_binfo): Likewise.
1197 * gimple-fold.h (gimple_get_virt_method_for_binfo,
1198 gimple_get_virt_method_for_vtable): Update prototypes.
1199
b4dd42d9 12002014-02-11 Vladimir Makarov <vmakarov@redhat.com>
1201
1202 PR target/49008
1203 * genautomata.c (add_presence_absence): Fix typo with
1204 {final_}presence_list.
1205
94ae016e 12062014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1207
1208 PR target/60137
1209 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
1210 for VSX/Altivec vectors that land in GPR registers.
1211
b3ab9719 12122014-02-11 Richard Henderson <rth@redhat.com>
1213 Jakub Jelinek <jakub@redhat.com>
1214
1215 PR debug/59776
1216 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
1217 around drhs if type conversion to lacc->type is not useless.
1218
d6426295 12192014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1220
1221 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
1222 tuning struct.
1223 (cortex-a57.cortex-a53): Likewise.
1224 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
1225
288c1588 12262014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1227
1228 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
1229 arm_restrict_it.
1230
aa593e20 12312014-02-11 Renlin Li <Renlin.Li@arm.com>
1232
1233 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
1234 add_options_for_arm_vfp3.
1235
1c634092 12362014-02-11 Jeff Law <law@redhat.com>
1237
1238 PR middle-end/54041
1239 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
1240 object with an undesirable mode.
1241
48295d25 12422014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1243
1244 PR libgomp/60107
1245 * config/i386/sol2-9.h: New file.
1246 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
1247 *-*-solaris2.9*): Use it.
1248
1b04e24b 12492014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
1250
1251 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
1252 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
1253
12542014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
24b9f6cb 1255
1256 * config/microblaze/microblaze.c: Extend mcpu version format
1257
a5d3045e 12582014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
1259
1260 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
1261
b4c6ce9b 12622014-02-10 Richard Henderson <rth@redhat.com>
85c35fbc 1263
1264 PR target/59927
1265 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
1266 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
1267 ms-abi vs -mno-accumulate-outgoing-args.
1268 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
1269 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
1270 respect to ms-abi.
1271
c36804c0 12722014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
1273
1274 PR middle-end/60080
1275 * cfgexpand.c (expand_asm_operands): Attach source location to
1276 ASM_INPUT rtx objects.
1277 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
1278
36706943 12792014-02-10 Nick Clifton <nickc@redhat.com>
1280
1281 * config/mn10300/mn10300.c (popcount): New function.
1282 (mn10300_expand_prologue): Include saved registers in stack usage
1283 count.
1284
76962ce8 12852014-02-10 Jeff Law <law@redhat.com>
1286
1287 PR middle-end/52306
1288 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
ea47f46c 1289 when changing the SET_DEST of a prior insn to avoid an input reload.
76962ce8 1290
aff8f65e 12912014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1292
1293 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
1294 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
1295 -mcall-openbsd, or -mcall-linux.
1296 (CC1_ENDIAN_BIG_SPEC): Remove.
1297 (CC1_ENDIAN_LITTLE_SPEC): Remove.
1298 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1299 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
1300 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
1301 and %cc1_endian_default.
1302 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
1303
cdf2f9e4 13042014-02-10 Richard Biener <rguenther@suse.de>
1305
1306 PR tree-optimization/60115
1307 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
1308 MEM_REF handling. Properly verify that the accesses are not
1309 out of the objects bound.
1310
96c7d4b1 13112014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1312
1313 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
1314 coretex to cortex.
1315
81c44146 13162014-02-10 Eric Botcazou <ebotcazou@adacore.com>
1317
1318 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
1319 proper constants and fix formatting.
1320 (possible_polymorphic_call_targets): Fix formatting.
1321
23afdab7 13222014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
1323 Ilya Tocar <ilya.tocar@intel.com>
1324
1325 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
1326 (_mm512_loadu_epi32): Renamed into...
1327 (_mm512_loadu_si512): This.
1328 (_mm512_storeu_epi32): Renamed into...
1329 (_mm512_storeu_si512): This.
1330 (_mm512_maskz_ceil_ps): Removed.
1331 (_mm512_maskz_ceil_pd): Ditto.
1332 (_mm512_maskz_floor_ps): Ditto.
1333 (_mm512_maskz_floor_pd): Ditto.
1334 (_mm512_floor_round_ps): Ditto.
1335 (_mm512_floor_round_pd): Ditto.
1336 (_mm512_ceil_round_ps): Ditto.
1337 (_mm512_ceil_round_pd): Ditto.
1338 (_mm512_mask_floor_round_ps): Ditto.
1339 (_mm512_mask_floor_round_pd): Ditto.
1340 (_mm512_mask_ceil_round_ps): Ditto.
1341 (_mm512_mask_ceil_round_pd): Ditto.
1342 (_mm512_maskz_floor_round_ps): Ditto.
1343 (_mm512_maskz_floor_round_pd): Ditto.
1344 (_mm512_maskz_ceil_round_ps): Ditto.
1345 (_mm512_maskz_ceil_round_pd): Ditto.
1346 (_mm512_expand_pd): Ditto.
1347 (_mm512_expand_ps): Ditto.
1348 * config/i386/i386.c (ix86_builtins): Remove
1349 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
1350 (bdesc_args): Ditto.
1351 * config/i386/predicates.md (const1256_operand): New.
1352 (const_1_to_2_operand): Ditto.
1353 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
1354 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
1355 (*avx512pf_gatherpf<mode>sf): Ditto.
1356 (avx512pf_gatherpf<mode>df): Ditto.
1357 (*avx512pf_gatherpf<mode>df_mask): Ditto.
1358 (*avx512pf_gatherpf<mode>df): Ditto.
1359 (avx512pf_scatterpf<mode>sf): Ditto.
1360 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1361 (*avx512pf_scatterpf<mode>sf): Ditto.
1362 (avx512pf_scatterpf<mode>df): Ditto.
1363 (*avx512pf_scatterpf<mode>df_mask): Ditto.
1364 (*avx512pf_scatterpf<mode>df): Ditto.
1365 (avx512f_expand<mode>): Removed.
1366 (<shift_insn><mode>3<mask_name>): Change predicate type.
1367
237e78b1 13682014-02-08 Jakub Jelinek <jakub@redhat.com>
1369
4aaf064d 1370 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
1371 not at the end of datarefs vector use ordered_remove to avoid
1372 reordering datarefs vector.
1373
6d5a8d89 1374 PR c/59984
1375 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
1376 mark local addressable non-static vars as GOVD_PRIVATE
1377 instead of GOVD_LOCAL.
1378 * omp-low.c (lower_omp_for): Move gimple_bind_vars
1379 and BLOCK_VARS of gimple_bind_block to new_stmt rather
1380 than copying them.
1381
237e78b1 1382 PR middle-end/60092
1383 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
1384 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
1385 assume_aligned or alloc_align attributes.
1386 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
1387 arguments. Handle also assume_aligned and alloc_align attributes.
ea47f46c 1388 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
1389 calls to functions with assume_aligned or alloc_align attributes.
1390 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
237e78b1 1391
9a0acc96 13922014-02-08 Terry Guo <terry.guo@arm.com>
1393
1394 * doc/invoke.texi: Document ARM -march=armv7e-m.
1395
83167671 13962014-02-08 Jakub Jelinek <jakub@redhat.com>
1397
4d46da26 1398 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
1399 flag on __cilkrts_rethrow builtin.
1400
83167671 1401 PR ipa/60026
1402 * ipa-cp.c (determine_versionability): Fail at -O0
1403 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
1404 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
1405
1406 Revert:
1407 2014-02-04 Jakub Jelinek <jakub@redhat.com>
1408
1409 PR ipa/60026
1410 * tree-inline.c (copy_forbidden): Fail for
1411 __attribute__((optimize (0))) functions.
1412
5c3e0e39 14132014-02-07 Jan Hubicka <hubicka@ucw.cz>
1414
1415 * varpool.c: Include pointer-set.h.
1416 (varpool_remove_unreferenced_decls): Variables in other partitions
1417 will not be output; be however careful to not lose information
1418 about partitioning.
1419
57b16855 14202014-02-07 Jan Hubicka <hubicka@ucw.cz>
1421
1422 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
1423 lookup in the vtable constructor.
1424
76184b40 14252014-02-07 Jeff Law <law@redhat.com>
1426
6ad9a408 1427 PR target/40977
1428 * config/m68k/m68k.md (ashldi_extsi): Turn into a
1429 define_insn_and_split.
1430
76184b40 1431 * ipa-inline.c (inline_small_functions): Fix typos.
1432
7a64c761 14332014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1434
1435 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
1436 (s390_can_use_return_insn): Declare.
1437 * config/s390/s390.h (EPILOGUE_USES): Define.
1438 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
1439 instructions.
1440 (s390_chunkify_start): Handle return JUMP_LABELs.
1441 (s390_early_mach): Emit a main_pool instruction on the entry edge.
1442 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
1443 (s390_can_use_return_insn): New functions.
1444 (s390_fix_long_loop_prediction): Handle conditional returns.
1445 (TARGET_SET_UP_BY_PROLOGUE): Define.
1446 * config/s390/s390.md (ANY_RETURN): New code iterator.
1447 (*creturn, *csimple_return, return, simple_return): New patterns.
1448
8240ec0e 14492014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1450
1451 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
1452 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
1453 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
1454 REG_CFA_RESTORE list when deciding not to restore a register.
1455
0b8be04c 14562014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1457
1458 * config/s390/s390.c: Include tree-pass.h and context.h.
1459 (s390_early_mach): New function, split out from...
1460 (s390_emit_prologue): ...here.
1461 (pass_data_s390_early_mach): New pass structure.
1462 (pass_s390_early_mach): New class.
1463 (s390_option_override): Create and register early_mach pass.
1464 Move to end of file.
1465
ae4c3615 14662014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
1467
1468 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
1469 to match for the exit block.
1470
db57a6a4 14712014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1472
1473 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
1474 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
1475 Reject misaligned operands.
1476
ad985d61 14772014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1478
ea47f46c 1479 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
ad985d61 1480
18593a2c 14812014-02-07 Richard Biener <rguenther@suse.de>
1482
1483 PR middle-end/60092
1484 * gimple-low.c (lower_builtin_posix_memalign): New function.
1485 (lower_stmt): Call it to lower posix_memalign in a way
1486 to make alignment info accessible.
1487
8df457cb 14882014-02-07 Jakub Jelinek <jakub@redhat.com>
1489
1490 PR c++/60082
1491 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
1492 __builtin_setjmp_receiver.
1493
be2c7f8f 14942014-02-07 Richard Biener <rguenther@suse.de>
1495
1496 PR middle-end/60092
1497 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
1498 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
1499 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1500 Handle BUILT_IN_POSIX_MEMALIGN.
1501 (find_func_clobbers): Likewise.
1502 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1503 (call_may_clobber_ref_p_1): Likewise.
1504
d0f12d44 15052014-02-06 Jan Hubicka <hubicka@ucw.cz>
1506
1507 PR ipa/59918
ea47f46c 1508 * ipa-devirt.c (record_target_from_binfo): Remove overactive
1509 sanity check.
d0f12d44 1510
99b4edde 15112014-02-06 Jan Hubicka <hubicka@ucw.cz>
1512
1513 PR ipa/59469
1514 * lto-cgraph.c (lto_output_node): Use
1515 symtab_get_symbol_partitioning_class.
1516 (lto_output_varpool_node): likewise.
1517 (symtab_get_symbol_partitioning_class): Move here from
1518 lto/lto-partition.c
1519 * cgraph.h (symbol_partitioning_class): Likewise.
1520 (symtab_get_symbol_partitioning_class): Declare.
1521
ea7d8c7a 15222014-02-06 Jan Hubicka <hubicka@ucw.cz>
1523
1524 * ggc.h (ggc_internal_cleared_alloc): New macro.
1525 * vec.h (vec_safe_copy): Handle memory stats.
1526 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
1527 * target-globals.c (save_target_globals): Likewise.
1528
15292014-02-06 Jan Hubicka <hubicka@ucw.cz>
dc7cdd37 1530
1531 PR target/60077
1532 * expr.c (emit_move_resolve_push): Export; be bit more selective
1533 on when to clear alias set.
1534 * expr.h (emit_move_resolve_push): Declare.
1535 * function.h (struct function): Add tail_call_marked.
1536 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
1537 * config/i386/i386-protos.h (ix86_expand_push): Remove.
1538 * config/i386/i386.md (TImode move expander): De not call
1539 ix86_expand_push.
1540 (FP push expanders): Preserve memory attributes.
1541 * config/i386/sse.md (push<mode>1): Remove.
ea47f46c 1542 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
dc7cdd37 1543 (ix86_expand_push): Remove.
1544 * config/i386/mmx.md (push<mode>1): Remove.
1545
45e9ff98 15462014-02-06 Jakub Jelinek <jakub@redhat.com>
1547
1548 PR rtl-optimization/60030
1549 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
1550 lopart with paradoxical subreg before shifting it up by hprec.
1551
73648acf 15522014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1553
1554 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
1555 Remove extra newline at end of file.
1556 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
1557 (arm_issue_rate): Handle cortexa57.
1558 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
1559 (cortex-a57.cortex-a53): Likewise.
1560
12033851 15612014-02-06 Jakub Jelinek <jakub@redhat.com>
1562
f6541ad2 1563 PR target/59575
1564 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
1565 don't record in REG_FRAME_RELATED_EXPR registers not set in that
1566 bitmask.
1567 (arm_expand_prologue): Adjust all callers.
1568 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
1569 info, registers also at the lowest numbered registers side. Use
1570 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
1571 XEXP.
1572
12033851 1573 PR debug/59992
ea47f46c 1574 * var-tracking.c (adjust_mems): Before adding a SET to
1575 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
12033851 1576
b7d639bb 15772014-02-06 Alan Modra <amodra@gmail.com>
1578
1579 PR target/60032
1580 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
1581 change SDmode to DDmode when lra_in_progress.
1582
9c3a43b7 15832014-02-06 Jakub Jelinek <jakub@redhat.com>
1584
53c3c39b 1585 PR middle-end/59150
1586 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
1587 free_data_ref on the dr first, and before goto again also set dr
1588 to the next dr. For simd_lane_access, free old datarefs[i] before
1589 overwriting it. For get_vectype_for_scalar_type failure, don't
1590 free_data_ref if simd_lane_access.
1591
1d7f9a87 1592 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
1593
9c3a43b7 1594 PR target/60062
1595 * tree.h (opts_for_fn): New inline function.
1596 (opt_for_fn): Define.
1597 * config/i386/i386.c (ix86_function_regparm): Use
1598 opt_for_fn (decl, optimize) instead of optimize.
1599
c85e352b 16002014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
1601
1602 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
1603 for SYMBOL_REF in large memory model.
1604
a2e58276 16052014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1606
1607 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
1608 and crypto support.
1609 (cortex-a57): Likewise.
1610 (cortex-a57.cortex-a53): Likewise.
1611
086db8b0 16122014-02-06 Yury Gribov <y.gribov@samsung.com>
1613 Kugan Vivekanandarajah <kuganv@linaro.org>
1614
1615 * config/arm/arm.c (arm_vector_alignment_reachable): Check
1616 unaligned_access.
1617 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
1618
9069499c 16192014-02-06 Richard Biener <rguenther@suse.de>
1620
1621 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
1622 set_loop_copy and initialize_original_copy_tables.
1623
ade3aaf0 16242014-02-06 Alex Velenko <Alex.Velenko@arm.com>
1625
1626 * config/aarch64/aarch64-simd.md
1627 (aarch64_ashr_simddi): Change QI to SI.
1628
74d6d072 16292014-02-05 Jan Hubicka <hubicka@ucw.cz>
1630 Jakub Jelinek <jakub@redhat.com>
1631
1632 PR middle-end/60013
1633 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
1634 of the dataflow.
1635
0547d7e6 16362014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1637
1638 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
1639 CODE_FOR_altivec_vpku[hw]um to
1640 CODE_FOR_altivec_vpku[hw]um_direct.
1641 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
1642 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
1643 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
1644 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
1645
479e91ce 16462014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1647
1648 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
1649 generation for -maltivec=be.
1650 (altivec_vsumsws): Simplify redundant test.
1651
b9cc9f84 16522014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1653
1654 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
1655 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
1656 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
1657 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
1658 gen_altivec_vpkuwum.
1659 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
1660 BYTES_BIG_ENDIAN.
1661 (altivec_vpks<VI_char>ss): Likewise.
1662 (altivec_vpks<VI_char>us): Likewise.
1663 (altivec_vpku<VI_char>us): Likewise.
1664 (altivec_vpku<VI_char>um): Likewise.
1665 (altivec_vpku<VI_char>um_direct): New (copy of
1666 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
1667 internal use).
1668 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
1669 target is little endian and -maltivec=be is not specified.
1670 (*altivec_vupkhs<VU_char>_direct): New (copy of
ea47f46c 1671 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
b9cc9f84 1672 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
1673 target is little endian and -maltivec=be is not specified.
1674 (*altivec_vupkls<VU_char>_direct): New (copy of
ea47f46c 1675 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
b9cc9f84 1676 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
1677 little endian and -maltivec=be is not specified.
1678 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
1679 little endian and -maltivec=be is not specified.
1680
b4c6ce9b 16812014-02-05 Richard Henderson <rth@redhat.com>
617529e8 1682
1683 PR debug/52727
1684 * combine-stack-adj.c: Revert r206943.
1685 * sched-int.h (struct deps_desc): Add last_args_size.
1686 * sched-deps.c (init_deps): Initialize it.
1687 (sched_analyze_insn): Add OUTPUT dependencies between insns that
1688 contain REG_ARGS_SIZE notes.
1689
3e17769e 16902014-02-05 Jan Hubicka <hubicka@ucw.cz>
1691
1692 * lto-cgraph.c (asm_nodes_output): Make global.
1693 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
ea47f46c 1694 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
3e17769e 1695 (driver_handle_option): Handle OPT_fwpa.
1696
ae3a21c9 16972014-02-05 Jakub Jelinek <jakub@redhat.com>
1698
bd93c679 1699 PR ipa/59947
1700 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
1701 a comment typo and formatting issue. If odr_hash hasn't been
1702 created, return vNULL and set *completep to false.
1703
ae3a21c9 1704 PR middle-end/57499
1705 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
1706 bb with no successors.
1707
7ffa2d72 17082014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
1709
1710 PR target/59718
1711 * doc/invoke.texi (-march): Clarify documentation for ARM.
1712 (-mtune): Likewise.
1713 (-mcpu): Likewise.
1714
1c7f4889 17152014-02-05 Richard Biener <rguenther@suse.de>
1716
1717 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
1718 when not vectorizing because of too many alias checks.
1719 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
1720 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
1721
f70166f6 17222014-02-05 Nick Clifton <nickc@redhat.com>
1723
1724 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
ea47f46c 1725 accept extended registers in any mode when compiling for the MN10300.
f70166f6 1726
3f52b85a 17272014-02-05 Yury Gribov <y.gribov@samsung.com>
1728
1729 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
1730 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
1731 sanitization attributes.
1732 (can_inline_edge_p): Likewise.
1733 (sanitize_attrs_match_for_inline_p): New function.
1734
5b864aa1 17352014-02-04 Jan Hubicka <hubicka@ucw.cz>
1736
1737 * ipa-prop.c (detect_type_change): Shor circuit testing of
1738 type changes on THIS pointer.
1739
b17eb183 17402014-02-04 John David Anglin <danglin@gcc.gnu.org>
1741
1742 PR target/59777
1743 * config/pa/pa.c (legitimize_tls_address): Return original address
1744 if not passed a SYMBOL_REF rtx.
1745 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
1746 addresses.
1747 (pa_emit_move_sequence): Simplify TLS source operands.
1748 (pa_legitimate_constant_p): Reject all TLS constants.
1749 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
1750 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
1751
96a3dc39 17522014-02-04 Jan Hubicka <hubicka@ucw.cz>
1753
1754 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
1755 groups when we know they are controlled by LTO.
1756 * varasm.c (default_binds_local_p_1): If object is in other partition,
1757 it will be resolved locally.
1758
bfd54518 17592014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1760
c36804c0 1761 * config/host-linux.c (linux_gt_pch_use_address): Don't
ea47f46c 1762 use SSIZE_MAX because it is not always defined.
bfd54518 1763
7eec3701 17642014-02-04 Vladimir Makarov <vmakarov@redhat.com>
1765
1766 PR bootstrap/59913
1767 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
1768 threshold for pseudo splitting.
1769 (update_ebb_live_info): Process call argument hard registers and
1770 hard registers from insn definition too.
1771 (max_small_class_regs_num): New constant.
1772 (inherit_in_ebb): Update live hard regs through EBBs. Update
1773 reloads_num only for small register classes. Don't split for
1774 outputs of jumps.
1775
bc58d800 17762014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
1777
1778 PR ipa/60058
1779 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
1780 is non-null.
1781
bc8f61a2 17822014-02-04 Jan Hubicka <hubicka@ucw.cz>
1783
ea47f46c 1784 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
1785 visibility is safe.
bc8f61a2 1786
b174be60 17872014-02-04 Marek Polacek <polacek@redhat.com>
1788
1789 * gdbinit.in (pel): Define.
1790
c8b3134c 17912014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
1792
1793 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
1794 behavior.
1795
6541e9a1 17962014-02-04 Richard Biener <rguenther@suse.de>
1797
1798 PR lto/59723
1799 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
1800 in function context local.
1801 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
1802 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
1803 similar to LTO_imported_decl_ref.
1804
20ebf4ca 18052014-02-04 Jakub Jelinek <jakub@redhat.com>
1806
de96bd4a 1807 PR tree-optimization/60002
1808 * cgraphclones.c (build_function_decl_skip_args): Clear
1809 DECL_LANG_SPECIFIC.
1810
4e459157 1811 PR tree-optimization/60023
1812 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
1813 false to gsi_replace.
1814 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
1815 has been in some EH region and vec_stmt could throw, add
1816 vec_stmt into the same EH region.
1817 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
1818 has no lhs, ignore it.
1819 * internal-fn.c (expand_MASK_LOAD): Likewise.
1820
5ceeaef0 1821 PR ipa/60026
1822 * tree-inline.c (copy_forbidden): Fail for
1823 __attribute__((optimize (0))) functions.
1824
46c0fd4b 1825 PR other/58712
1826 * omp-low.c (simd_clone_struct_copy): If from->inbranch
1827 is set, copy one less argument.
6562533e 1828 (expand_simd_clones): Don't subtract clone_info->inbranch
1829 from simd_clone_struct_alloc argument.
46c0fd4b 1830
f84a6a0e 1831 PR rtl-optimization/57915
1832 * recog.c (simplify_while_replacing): If all unary/binary/relational
1833 operation arguments are constant, attempt to simplify those.
1834
20ebf4ca 1835 PR middle-end/59261
1836 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
1837 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
1838
0f52e33a 18392014-02-04 Richard Biener <rguenther@suse.de>
1840
1841 PR tree-optimization/60012
1842 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
1843 TBAA disambiguation to all DDRs.
1844
48118d02 18452014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1846
1847 PR target/59788
1848 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
1849 (LINK_SPEC): Use it for -shared, -shared-libgcc.
1850
abcb2cab 18512014-02-03 Jan Hubicka <hubicka@ucw.cz>
1852
1853 PR ipa/59882
1854 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
1855
18562014-02-03 Jan Hubicka <hubicka@ucw.cz>
8745f023 1857
1858 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
1859 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
1860
abcb2cab 18612014-02-03 Jan Hubicka <hubicka@ucw.cz>
54176a57 1862
1863 PR ipa/59831
1864 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
1865 to figure out targets of polymorphic calls with known decl.
1866 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1867 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
1868 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
1869 (get_polymorphic_call_info): ... here.
1870 (get_polymorphic_call_info_from_invariant): New function.
1871
abcb2cab 18722014-02-03 Jan Hubicka <hubicka@ucw.cz>
6750de5f 1873
1874 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
1875 lookup via vtable pointer; check for type consistency
1876 and turn inconsitent facts into UNREACHABLE.
1877 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
ea47f46c 1878 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
1879 type inconsistent querries; return UNREACHABLE instead.
6750de5f 1880
842e1d3c 18812014-02-03 Richard Henderson <rth@twiddle.net>
1882
1883 PR tree-opt/59924
1884 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
1885 already processed this node.
1886 (normalize_one_pred_1): Pass along mark_set.
1887 (normalize_one_pred): Create and destroy a pointer_set_t.
1888 (normalize_one_pred_chain): Likewise.
1889
ca3f7d34 18902014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
1891
1892 PR gcov-profile/58602
ea47f46c 1893 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
ca3f7d34 1894
02636da3 18952014-02-03 Jan Hubicka <hubicka@ucw.cz>
1896
1897 PR ipa/59831
ea47f46c 1898 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
1899 -fno-devirtualize; try to devirtualize by the knowledge of
1900 virtual table pointer given by aggregate propagation.
02636da3 1901 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
ea47f46c 1902 (ipa_print_node_jump_functions): Dump also offset that
02636da3 1903 is relevant for polymorphic calls.
1904 (determine_known_aggregate_parts): Add arg_type parameter; use it
1905 instead of determining the type from pointer type.
1906 (ipa_compute_jump_functions_for_edge): Update call of
1907 determine_known_aggregate_parts.
1908 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
1909 (gimple_get_virt_method_for_binfo): ... here; simplify using
1910 vtable_pointer_value_to_vtable.
1911 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
1912 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
ea47f46c 1913 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
02636da3 1914 (vtable_pointer_value_to_vtable): Break out from ...; handle also
1915 POINTER_PLUS_EXPR.
1916 (vtable_pointer_value_to_binfo): ... here.
1917 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
1918
9cf883aa 19192014-02-03 Teresa Johnson <tejohnson@google.com>
1920
1921 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
1922 redef of outer loop index variable.
1923
caf62483 19242014-02-03 Marc Glisse <marc.glisse@inria.fr>
1925
1926 PR c++/53017
1927 PR c++/59211
1928 * doc/extend.texi (Function Attributes): Typo.
1929
512cbd67 19302014-02-03 Cong Hou <congh@google.com>
1931
1932 PR tree-optimization/60000
1933 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
1934 if the vectorized statement is a store. A store statement can only
1935 appear at the end of pattern statements.
1936
1f81c8ed 19372014-02-03 H.J. Lu <hongjiu.lu@intel.com>
1938
1939 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
1940 (ix86_option_override_internal): Default long double to 64-bit for
1941 32-bit Bionic and to 128-bit for 64-bit Bionic.
1942
1943 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
1944 TARGET_LONG_DOUBLE_128 is true.
1945 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
1946
1947 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
1948 (mlong-double-64): Negate -mlong-double-128.
1949 (mlong-double-128): New option.
1950
1951 * config/i386/i386-c.c (ix86_target_macros): Define
1952 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
1953
1954 * doc/invoke.texi: Document -mlong-double-128.
1955
ee331bc7 19562014-02-03 H.J. Lu <hongjiu.lu@intel.com>
1957
1958 PR rtl-optimization/60024
1959 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
1960
4ec33c7b 19612014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
1962
ea47f46c 1963 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
4ec33c7b 1964
f18c3345 19652014-02-03 Andrey Belevantsev <abel@ispras.ru>
1966
1967 PR rtl-optimization/57662
1968 * sel-sched.c (code_motion_path_driver): Do not mark already not
1969 existing blocks in the visiting bitmap.
1970
2b7454f2 19712014-02-03 Andrey Belevantsev <abel@ispras.ru>
1972
1973 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
1974 on the insn being emitted.
1975
a45ebe4f 19762014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
1977 Will Deacon <will.deacon@arm.com>
1978
1979 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
1980
4ad6208e 19812014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1982
1983 * config/arm/arm-tables.opt: Regenerate.
1984
47f833a2 19852014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1986
1987 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
1988 for vector types other than V16QImode.
1989 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
1990 define_expand, and call altivec_expand_vec_perm_le when producing
1991 code with little endian element order.
1992 (*altivec_vperm_<mode>_internal): New insn having previous
1993 behavior of altivec_vperm_<mode>.
1994 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
1995 altivec_expand_vec_perm_le when producing code with little endian
1996 element order.
1997 (*altivec_vperm_<mode>_uns_internal): New insn having previous
1998 behavior of altivec_vperm_<mode>_uns.
1999
6c65ab35 20002014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2001
2002 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
2003 (altivec_vsumsws): Add handling for -maltivec=be with a little
2004 endian target.
2005 (altivec_vsumsws_direct): New.
2006 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
2007 gen_altivec_vsumsws.
2008
abcb2cab 20092014-02-02 Jan Hubicka <hubicka@ucw.cz>
3a4f7ef5 2010
2011 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
2012 vtable_pointer_value_to_binfo): New functions.
2013 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
2014 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
2015
1fa97c89 20162014-02-02 Sandra Loosemore <sandra@codesourcery.com>
2017
2018 * config/nios2/nios2.md (load_got_register): Initialize GOT
2019 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
2020 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
2021
ac66ebf1 20222014-02-02 Jan Hubicka <hubicka@ucw.cz>
2023
2024 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
2025 preserverd by passthrough, do not propagate the type.
2026
9e5d4a37 20272014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2028
2029 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
2030 (mips_atomic_assign_expand_fenv): New function.
2031 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
2032
9641080c 20332014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2034
2035 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
2036 (__builtin_mips_set_fcsr): Likewise.
2037 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
2038 MIPS_USI_FTYPE_VOID.
2039 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
2040 (mips16_expand_set_fcsr): Likewise.
2041 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
2042 (mips16_set_fcsr_stub): Likewise.
2043 (mips16_get_fcsr_one_only_stub): New class.
2044 (mips16_set_fcsr_one_only_stub): Likewise.
2045 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
2046 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
2047 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
2048 (hard_float): New availability predicate.
2049 (mips_builtins): Add get_fcsr and set_fcsr.
2050 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
2051 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
2052 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
2053 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
2054 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
2055 patterns.
2056
5372b74e 20572014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
2058
2059 * config/mips/mips.c (mips_one_only_stub): New class.
2060 (mips_need_mips16_rdhwr_p): Replace with...
2061 (mips16_rdhwr_stub): ...this new variable.
2062 (mips16_stub_call_address): New function.
2063 (mips16_rdhwr_one_only_stub): New class.
2064 (mips_expand_thread_pointer): Use mips16_stub_call_address.
2065 (mips_output_mips16_rdhwr): Delete.
2066 (mips_finish_stub): New function.
2067 (mips_code_end): Use it to handle rdhwr stubs.
2068
fd3c118d 20692014-02-02 Uros Bizjak <ubizjak@gmail.com>
2070
2071 PR target/60017
2072 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
2073 when calculating size of integer atomic types.
2074
007315c1 20752014-02-02 H.J. Lu <hongjiu.lu@intel.com>
2076
2077 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
2078
b8e66853 20792014-02-01 Jakub Jelinek <jakub@redhat.com>
2080
2081 PR tree-optimization/60003
2082 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
2083 * profile.c (branch_prob): Use gimple_call_builtin_p
2084 to check for BUILT_IN_SETJMP_RECEIVER.
2085 * tree-inline.c (copy_bb): Call notice_special_calls.
2086
92b64c52 20872014-01-31 Vladimir Makarov <vmakarov@redhat.com>
2088
2089 PR bootstrap/59985
2090 * lra-constraints.c (process_alt_operands): Update reload_sum only
2091 on the first pass.
2092
9ae6e329 20932014-01-31 Richard Henderson <rth@redhat.com>
2094
2095 PR middle-end/60004
2096 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
2097 until after else_eh is processed.
2098
bd7e5882 20992014-01-31 Ilya Tocar <ilya.tocar@intel.com>
2100
2101 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
2102 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
2103 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
2104 in smmintrin.h, remove them.
2105 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
2106 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
2107 * config/i386/i386.md (ROUND_SAE): Fix value.
2108 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
2109 (const48_operand): New.
2110 * config/i386/subst.md (round), (round_expand): Use
2111 const_4_or_8_to_11_operand.
2112 (round_saeonly), (round_saeonly_expand): Use const48_operand.
2113
a31e7f46 21142014-01-31 Ilya Tocar <ilya.tocar@intel.com>
2115
2116 * config/i386/constraints.md (Yk): Swap meaning with k.
2117 * config/i386/i386.md (movhi_internal): Change Yk to k.
2118 (movqi_internal): Ditto.
2119 (*k<logic><mode>): Ditto.
2120 (*andhi_1): Ditto.
2121 (*andqi_1): Ditto.
2122 (kandn<mode>): Ditto.
2123 (*<code>hi_1): Ditto.
2124 (*<code>qi_1): Ditto.
2125 (kxnor<mode>): Ditto.
2126 (kortestzhi): Ditto.
2127 (kortestchi): Ditto.
2128 (kunpckhi): Ditto.
2129 (*one_cmplhi2_1): Ditto.
2130 (*one_cmplqi2_1): Ditto.
2131 * config/i386/sse.md (): Change k to Yk.
2132 (avx512f_load<mode>_mask): Ditto.
2133 (avx512f_blendm<mode>): Ditto.
2134 (avx512f_store<mode>_mask): Ditto.
2135 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
2136 (avx512f_storedqu<mode>_mask): Ditto.
24ecc224 2137 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
2138 Ditto.
a31e7f46 2139 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
2140 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
2141 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
2142 (avx512f_maskcmp<mode>3): Ditto.
2143 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
2144 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
2145 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
2146 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
2147 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
2148 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
2149 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
2150 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
2151 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
2152 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
2153 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
2154 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
2155 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
2156 (vec_extract_lo_<mode>_maskm): Ditto.
2157 (vec_extract_hi_<mode>_maskm): Ditto.
2158 (avx512f_vternlog<mode>_mask): Ditto.
2159 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
2160 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
2161 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
2162 (avx512f_<code>v8div16qi2_mask): Ditto.
2163 (avx512f_<code>v8div16qi2_mask_store): Ditto.
2164 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
2165 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
2166 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
2167 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
2168 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
2169 (*avx512pf_gatherpf<mode>df_mask): Ditto.
2170 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
2171 (*avx512pf_scatterpf<mode>df_mask): Ditto.
2172 (avx512cd_maskb_vec_dupv8di): Ditto.
2173 (avx512cd_maskw_vec_dupv16si): Ditto.
2174 (avx512f_vpermi2var<mode>3_maskz): Ditto.
2175 (avx512f_vpermi2var<mode>3_mask): Ditto.
2176 (avx512f_vpermi2var<mode>3_mask): Ditto.
2177 (avx512f_vpermt2var<mode>3_maskz): Ditto.
2178 (*avx512f_gathersi<mode>): Ditto.
2179 (*avx512f_gathersi<mode>_2): Ditto.
2180 (*avx512f_gatherdi<mode>): Ditto.
2181 (*avx512f_gatherdi<mode>_2): Ditto.
2182 (*avx512f_scattersi<mode>): Ditto.
2183 (*avx512f_scatterdi<mode>): Ditto.
2184 (avx512f_compress<mode>_mask): Ditto.
2185 (avx512f_compressstore<mode>_mask): Ditto.
2186 (avx512f_expand<mode>_mask): Ditto.
2187 * config/i386/subst.md (mask): Change k to Yk.
2188 (mask_scalar_merge): Ditto.
2189 (sd): Ditto.
2190
ca91d208 21912014-01-31 Marc Glisse <marc.glisse@inria.fr>
2192
2193 * doc/extend.texi (Vector Extensions): Document ?: in C++.
2194
ce319529 21952014-01-31 Richard Biener <rguenther@suse.de>
2196
2197 PR middle-end/59990
2198 * builtins.c (fold_builtin_memory_op): Make sure to not
2199 use a floating-point mode or a boolean or enumeral type for
2200 the copy operation.
2201
9d636c05 22022014-01-30 DJ Delorie <dj@redhat.com>
2203
2204 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
2205 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
2206 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
2207 whenever main() has an epilogue.
2208
65230b9f 22092014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2210
2211 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
2212 unused variable "field".
2213 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
2214 (vsx_mergeh_<mode>): Likewise.
2215 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
2216 (altivec_vmrghh): Likewise.
2217 (altivec_vmrghw): Likewise.
2218 (altivec_vmrglb): Likewise.
2219 (altivec_vmrglh): Likewise.
2220 (altivec_vmrglw): Likewise.
2221 (altivec_vspltb): Add missing uses.
2222 (altivec_vsplth): Likewise.
2223 (altivec_vspltw): Likewise.
2224 (altivec_vspltsf): Likewise.
2225
97e155b1 22262014-01-30 Jakub Jelinek <jakub@redhat.com>
2227
2228 PR target/59923
2229 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
2230 frame related instructions.
2231
6ba9136f 22322014-01-30 Vladimir Makarov <vmakarov@redhat.com>
2233
2234 PR rtl-optimization/59959
2235 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
2236 any reload of register whose subreg is invalid.
2237
f6c01d8d 22382014-01-30 Jakub Jelinek <jakub@redhat.com>
2239
24ecc224 2240 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
f6c01d8d 2241 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
2242 Add missing return type - void.
2243
8e6e94c4 22442014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2245
2246 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
2247 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
2248 remove element index adjustment for endian (now handled in vsx.md
2249 and altivec.md).
2250 (altivec_expand_vec_perm_const): Use
2251 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
2252 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
2253 (vsx_xxspltw_<mode>): Adjust element index for little endian.
2254 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
2255 define_expand and a new define_insn *altivec_vspltb_internal;
2256 adjust for -maltivec=be on a little endian target.
2257 (altivec_vspltb_direct): New.
2258 (altivec_vsplth): Divide into a define_expand and a new
2259 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
2260 little endian target.
2261 (altivec_vsplth_direct): New.
2262 (altivec_vspltw): Divide into a define_expand and a new
2263 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
2264 little endian target.
2265 (altivec_vspltw_direct): New.
2266 (altivec_vspltsf): Divide into a define_expand and a new
2267 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
2268 a little endian target.
2269
135b982d 22702014-01-30 Richard Biener <rguenther@suse.de>
2271
2272 PR tree-optimization/59993
2273 * tree-ssa-forwprop.c (associate_pointerplus): Check we
2274 can propagate form the earlier stmt and avoid the transform
2275 when the intermediate result is needed.
2276
59311f28 22772014-01-30 Alangi Derick <alangiderick@gmail.com>
2278
2279 * README.Portability: Fix typo.
2280
fb32bcd7 22812014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
2282
2283 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
2284 comparison_operator with ordered_comparison_operator.
2285
bc6d465d 22862014-01-30 Nick Clifton <nickc@redhat.com>
2287
2288 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
2289 Rename to mn10300_store_multiple_regs.
2290 * config/mn10300/mn10300.c: Likewise.
2291 * config/mn10300/mn10300.md (store_movm): Fix typo: call
2292 store_multiple_regs.
2293 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
2294 Call mn10300_store_multiple_regs.
2295
8a6bcd4e 22962014-01-30 Nick Clifton <nickc@redhat.com>
2297 DJ Delorie <dj@redhat.com>
2298
2299 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
2300 %fp 2 to keep registers after it properly word-aligned.
2301 (rl78_alloc_physical_registers_umul): Handle the case where both
2302 input operands are the same.
2303
bb4b5e0f 23042014-01-30 Richard Biener <rguenther@suse.de>
2305
2306 PR tree-optimization/59903
2307 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
2308 check properly.
2309
08a057fa 23102014-01-30 Jason Merrill <jason@redhat.com>
2311
53874764 2312 PR c++/59633
2313 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
2314
08a057fa 2315 PR c++/59645
2316 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
2317
ab2dc680 23182014-01-30 Richard Biener <rguenther@suse.de>
2319
2320 PR tree-optimization/59951
24ecc224 2321 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
ab2dc680 2322
3a766d17 23232014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
2324
2325 PR target/59784
2326 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
2327 SFmode to DFmode case.
2328
587132de 23292014-01-29 DJ Delorie <dj@redhat.com>
2330
2331 * config/msp430/msp430.opt (-minrt): New.
2332 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
2333 if -minrt given.
2334 (ENDFILE_SPEC): Likewise.
2335
abcb2cab 23362014-01-29 Jan Hubicka <hubicka@ucw.cz>
4c54368f 2337
2338 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
2339 (estimate_function_body_sizes): Use it.
2340
65a3b224 23412014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
2342
2343 PR c++/58561
2344 * dwarf2out.c (is_cxx_auto): New.
2345 (is_base_type): Use it.
2346 (gen_type_die_with_usage): Likewise.
2347
f848237b 23482014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2349
2350 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
2351 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
2352 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
2353 -maltivec=be with LE targets.
2354 (vsx_mergeh_<mode>): Likewise.
24ecc224 2355 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
f848237b 2356 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
2357 (altivec_vmrghb): Replace with define_expand and new
24ecc224 2358 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2359 (altivec_vmrghb_direct): New define_insn.
2360 (altivec_vmrghh): Replace with define_expand and new
24ecc224 2361 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2362 (altivec_vmrghh_direct): New define_insn.
2363 (altivec_vmrghw): Replace with define_expand and new
24ecc224 2364 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2365 (altivec_vmrghw_direct): New define_insn.
2366 (*altivec_vmrghsf): Adjust for endianness.
2367 (altivec_vmrglb): Replace with define_expand and new
24ecc224 2368 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2369 (altivec_vmrglb_direct): New define_insn.
2370 (altivec_vmrglh): Replace with define_expand and new
24ecc224 2371 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2372 (altivec_vmrglh_direct): New define_insn.
2373 (altivec_vmrglw): Replace with define_expand and new
24ecc224 2374 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
f848237b 2375 (altivec_vmrglw_direct): New define_insn.
2376 (*altivec_vmrglsf): Adjust for endianness.
2377 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2378 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2379 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
2380 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
2381 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2382 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2383 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
2384 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
2385
e79f23c4 23862014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
2387
2388 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
2389 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
2390 whitespace.
2391
b904104c 23922014-01-29 Richard Biener <rguenther@suse.de>
2393
2394 PR tree-optimization/58742
2395 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
2396 associate_pointerplus_align.
2397 (associate_pointerplus_diff): New function.
2398 (associate_pointerplus): Likewise. Call associate_pointerplus_align
2399 and associate_pointerplus_diff.
2400
3dbd6a28 24012014-01-29 Richard Biener <rguenther@suse.de>
2402
2403 * lto-streamer.h (LTO_major_version): Bump to 3.
2404 (LTO_minor_version): Reset to 0.
2405
67127400 24062014-01-29 Renlin Li <Renlin.Li@arm.com>
2407
2408 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
2409 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
2410 (arm_file_start): Generate correct asm header for armv7ve.
2411 * config/arm/bpabi.h: Add multilib support for armv7ve.
2412 * config/arm/driver-arm.c: Change the architectures of cortex-a7
2413 and cortex-a15 to armv7ve.
2414 * config/arm/t-aprofile: Add multilib support for armv7ve.
2415 * doc/invoke.texi: Document -march=armv7ve.
2416
5a423a75 24172014-01-29 Richard Biener <rguenther@suse.de>
2418
2419 PR tree-optimization/58742
2420 * tree-ssa-forwprop.c (associate_plusminus): Return true
2421 if we changed sth, defer EH cleanup to ...
2422 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
2423 (simplify_mult): New function.
2424
2975871c 24252014-01-29 Jakub Jelinek <jakub@redhat.com>
2426
b2c0e0b7 2427 PR middle-end/59917
2428 PR tree-optimization/59920
2429 * tree.c (build_common_builtin_nodes): Remove
2430 __builtin_setjmp_dispatcher initialization.
2431 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
2432 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
2433 instead of gsi_after_labels + manually skipping debug stmts.
2434 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
2435 ignore bbs with IFN_ABNORMAL_DISPATCHER.
2436 * tree-inline.c (copy_edges_for_bb): Remove
2437 can_make_abnormal_goto argument, instead add abnormal_goto_dest
2438 argument. Ignore computed_goto_p stmts. Don't call
2439 make_abnormal_goto_edges. If a call might need abnormal edges
2440 for non-local gotos, see if it already has an edge to
2441 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
2442 with true argument, don't do anything then, otherwise add
2443 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
2444 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
2445 caller.
2446 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
2447 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
2448 (lower_stmt): Don't set data->calls_builtin_setjmp.
2449 (lower_builtin_setjmp): Adjust comment.
2450 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
2451 * tree-cfg.c (found_computed_goto): Remove.
2452 (factor_computed_gotos): Remove.
2453 (make_goto_expr_edges): Return bool, true for computed gotos.
2454 Don't call make_abnormal_goto_edges.
2455 (build_gimple_cfg): Don't set found_computed_goto, don't call
2456 factor_computed_gotos.
2457 (computed_goto_p): No longer static.
2458 (make_blocks): Don't set found_computed_goto.
2459 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
2460 (make_edges): If make_goto_expr_edges returns true, push bb
2461 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
2462 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
2463 vector. Record mapping between bbs and OpenMP regions if there
2464 are any, adjust make_gimple_omp_edges caller. Call
2465 handle_abnormal_edges.
2466 (make_abnormal_goto_edges): Remove.
2467 * tree-cfg.h (make_abnormal_goto_edges): Remove.
2468 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
2469 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
24ecc224 2470 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
b2c0e0b7 2471 * internal-fn.def (ABNORMAL_DISPATCHER): New.
2472 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
2473 filling *region also set *region_idx to (*region)->entry->index.
2474
2975871c 2475 PR other/58712
2476 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
2477 For REGs set ORIGINAL_REGNO.
2478
6a1d4887 24792014-01-29 Bingfeng Mei <bmei@broadcom.com>
2480
24ecc224 2481 * doc/md.texi: Mention that a target shouldn't implement
6a1d4887 2482 vec_widen_(s|u)mul_even/odd pair if it is less efficient
2483 than hi/lo pair.
2484
863a3781 24852014-01-29 Jakub Jelinek <jakub@redhat.com>
2486
2487 PR tree-optimization/59594
2488 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
2489 a copy of the datarefs vector rather than the vector itself.
2490
18bb3b80 24912014-01-28 Jason Merrill <jason@redhat.com>
2492
2493 PR c++/53756
2494 * dwarf2out.c (auto_die): New static.
2495 (gen_type_die_with_usage): Handle C++1y 'auto'.
2496 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
2497 on definition.
2498
85389e19 24992014-01-28 H.J. Lu <hongjiu.lu@intel.com>
2500
2501 PR target/59672
2502 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
2503 (SPEC_X32): Likewise.
2504 (SPEC_64): Likewise.
2505 * config/i386/i386.c (ix86_option_override_internal): Turn off
2506 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
2507 for TARGET_16BIT.
2508 (x86_file_start): Output .code16gcc for TARGET_16BIT.
2509 * config/i386/i386.h (TARGET_16BIT): New macro.
2510 (TARGET_16BIT_P): Likewise.
2511 * config/i386/i386.opt: Add m16.
2512 * doc/invoke.texi: Document -m16.
2513
9e8234d0 25142014-01-28 Jakub Jelinek <jakub@redhat.com>
2515
2516 PR preprocessor/59935
2517 * input.c (location_get_source_line): Bail out on when line number
24ecc224 2518 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
9e8234d0 2519
c223850c 25202014-01-28 Richard Biener <rguenther@suse.de>
2521
2522 PR tree-optimization/58742
2523 * tree-ssa-forwprop.c (associate_plusminus): Handle
2524 pointer subtraction of the form (T)(P + A) - (T)P.
2525
6f1e7264 25262014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2527
2528 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
2529 at const_int_cost.
2530
6bdbd138 25312014-01-28 Richard Biener <rguenther@suse.de>
2532
2533 Revert
2534 2014-01-28 Richard Biener <rguenther@suse.de>
2535
2536 PR rtl-optimization/45364
2537 PR rtl-optimization/59890
2538 * var-tracking.c (local_get_addr_clear_given_value): Handle
2539 already cleared slot.
2540 (val_reset): Handle not allocated local_get_addr_cache.
2541 (vt_find_locations): Use post-order on the inverted CFG.
2542
4060ba27 25432014-01-28 Richard Biener <rguenther@suse.de>
2544
24ecc224 2545 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
4060ba27 2546
64eb97fb 25472014-01-28 Richard Biener <rguenther@suse.de>
2548
2549 PR rtl-optimization/45364
2550 PR rtl-optimization/59890
2551 * var-tracking.c (local_get_addr_clear_given_value): Handle
2552 already cleared slot.
2553 (val_reset): Handle not allocated local_get_addr_cache.
2554 (vt_find_locations): Use post-order on the inverted CFG.
2555
18350b2e 25562014-01-28 Alan Modra <amodra@gmail.com>
2557
2558 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
2559 * configure.ac <recursive call for build != host>: Define
2560 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
2561 and LD_FOR_BUILD too.
2562 * configure: Regenerate.
2563
b17a1fa8 25642014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
2565
2566 * config/i386/i386.c (get_builtin_code_for_version): Separate
2567 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
2568 Broadwell from Haswell.
2569
d0f587ec 25702014-01-27 Steve Ellcey <sellcey@mips.com>
2571
2572 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
2573 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
2574 * config/mips/mips.c (mips_option_override): Change setting
2575 of TARGET_DSP.
2576 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
b17a1fa8 2577 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
2578 Change from Mask to Var.
d0f587ec 2579
8a8639b6 25802014-01-27 Jeff Law <law@redhat.com>
2581
2582 * ipa-inline.c (inline_small_functions): Fix typo.
2583
f4a19f2a 25842014-01-27 Ilya Tocar <ilya.tocar@intel.com>
2585
2586 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
2587 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
2588 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
2589 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
2590 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
2591 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
2592 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
2593 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
2594 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
2595 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
2596 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
2597 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
2598 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
2599 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
2600 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
2601 (_mm512_storeu_epi64): Ditto.
2602 (_mm512_cmpge_epi32_mask): Ditto.
2603 (_mm512_cmpge_epu32_mask): Ditto.
2604 (_mm512_cmpge_epi64_mask): Ditto.
2605 (_mm512_cmpge_epu64_mask): Ditto.
2606 (_mm512_cmple_epi32_mask): Ditto.
2607 (_mm512_cmple_epu32_mask): Ditto.
2608 (_mm512_cmple_epi64_mask): Ditto.
2609 (_mm512_cmple_epu64_mask): Ditto.
2610 (_mm512_cmplt_epi32_mask): Ditto.
2611 (_mm512_cmplt_epu32_mask): Ditto.
2612 (_mm512_cmplt_epi64_mask): Ditto.
2613 (_mm512_cmplt_epu64_mask): Ditto.
2614 (_mm512_cmpneq_epi32_mask): Ditto.
2615 (_mm512_cmpneq_epu32_mask): Ditto.
2616 (_mm512_cmpneq_epi64_mask): Ditto.
2617 (_mm512_cmpneq_epu64_mask): Ditto.
2618 (_mm512_expand_pd): Ditto.
2619 (_mm512_expand_ps): Ditto.
2620 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
2621 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
2622 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
2623 * config/i386/i386.c (ix86_builtins): Add
2624 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
2625 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
2626 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
2627 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
2628 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
2629 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
2630 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
2631 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
2632 IX86_BUILTIN_PMOVUSQW512_MEM.
2633 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
2634 __builtin_ia32_pmovsqd512mem_mask,
2635 __builtin_ia32_pmovqd512mem_mask,
2636 __builtin_ia32_pmovusqw512mem_mask,
2637 __builtin_ia32_pmovsqw512mem_mask,
2638 __builtin_ia32_pmovqw512mem_mask,
2639 __builtin_ia32_pmovusdw512mem_mask,
2640 __builtin_ia32_pmovsdw512mem_mask,
2641 __builtin_ia32_pmovdw512mem_mask,
2642 __builtin_ia32_pmovqb512mem_mask,
2643 __builtin_ia32_pmovusqb512mem_mask,
2644 __builtin_ia32_pmovsqb512mem_mask,
2645 __builtin_ia32_pmovusdb512mem_mask,
2646 __builtin_ia32_pmovsdb512mem_mask,
2647 __builtin_ia32_pmovdb512mem_mask.
2648 (bdesc_args): Add __builtin_ia32_expanddf512,
2649 __builtin_ia32_expandsf512.
2650 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
2651 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
2652 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
2653 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
2654 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
2655 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
2656 (avx512f_<code>v8div16qi2_mask_store): This.
2657 (avx512f_expand<mode>): New.
2658
0daf3bbe 26592014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
2660
ea47f46c 2661 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
b17a1fa8 2662 New.
0daf3bbe 2663 (_mm512_mask_prefetch_i64gather_pd): Ditto.
2664 (_mm512_prefetch_i32scatter_pd): Ditto.
2665 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
2666 (_mm512_prefetch_i64scatter_pd): Ditto.
2667 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
2668 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
2669 (_mm512_mask_prefetch_i64gather_ps): Ditto.
2670 (_mm512_prefetch_i32scatter_ps): Ditto.
2671 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
2672 (_mm512_prefetch_i64scatter_ps): Ditto.
2673 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
2674 * config/i386/i386-builtin-types.def: Define
b17a1fa8 2675 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
2676 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
0daf3bbe 2677 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
2678 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
2679 IX86_BUILTIN_SCATTERPFQPD.
2680 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
2681 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
2682 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
2683 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
2684 __builtin_ia32_scatterpfqps.
2685 (ix86_expand_builtin): Expand new built-ins.
2686 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
2687 fix memory access data type.
2688 (*avx512pf_gatherpf<mode>_mask): Ditto.
2689 (*avx512pf_gatherpf<mode>): Ditto.
2690 (avx512pf_scatterpf<mode>): Ditto.
2691 (*avx512pf_scatterpf<mode>_mask): Ditto.
2692 (*avx512pf_scatterpf<mode>): Ditto.
2693 (GATHER_SCATTER_SF_MEM_MODE): New.
2694 (avx512pf_gatherpf<mode>df): Ditto.
2695 (*avx512pf_gatherpf<mode>df_mask): Ditto.
2696 (*avx512pf_scatterpf<mode>df): Ditto.
2697
a5ce6046 26982014-01-27 Jakub Jelinek <jakub@redhat.com>
2699
2700 PR bootstrap/59934
2701 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
2702 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
2703 reached.
2704
7b2c45ae 27052014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
2706
2707 * common/config/arm/arm-common.c
2708 (arm_rewrite_mcpu): Handle multiple names.
2709 * config/arm/arm.h
2710 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
2711
01b7a8ce 27122014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
2713
2714 * gimple-builder.h (create_gimple_tmp): Delete.
2715
42e035a5 27162014-01-27 Christian Bruel <christian.bruel@st.com>
2717
2718 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
2719 words comparisons.
2720
1688a966 27212014-01-26 John David Anglin <danglin@gcc.gnu.org>
2722
68385542 2723 * config/pa/pa.md (call): Generate indirect long calls to non-local
2724 functions when outputing 32-bit code.
2725 (call_value): Likewise except for special call to buggy powf function.
2726
1688a966 2727 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
2728 portable runtime and PIC indirect calls.
2729 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
2730 and PIC call sequences. Use ldo instead of blr to set return register
2731 in PIC call sequence.
2732
b1bd31f5 27332014-01-25 Walter Lee <walt@tilera.com>
2734
2735 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
2736 avoid clobbering a live register.
2737
50fa19e4 27382014-01-25 Walter Lee <walt@tilera.com>
2739
42e035a5 2740 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
50fa19e4 2741 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
42e035a5 2742 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
50fa19e4 2743 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
2744
ba24c653 27452014-01-25 Walter Lee <walt@tilera.com>
2746
2747 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
2748 arguments on even registers.
2749 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
2750 STACK_BOUNDARY.
2751 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
2752 (BIGGEST_ALIGNMENT): Ditto.
2753 (BIGGEST_FIELD_ALIGNMENT): Ditto.
2754
4231cb46 27552014-01-25 Walter Lee <walt@tilera.com>
2756
2757 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
2758 insns before bundling.
b17a1fa8 2759 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
4231cb46 2760
cfbf78c0 27612014-01-25 Walter Lee <walt@tilera.com>
2762
2763 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
2764 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
2765 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
030ad6c7 2766
cfbf78c0 27672014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
42e035a5 2768
030ad6c7 2769 * config/mips/constraints.md (kl): Delete.
2770 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
2771 define expands, using...
2772 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
2773 instructions for MIPS16.
2774 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
2775 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
2776
9433582b 27772014-01-25 Walter Lee <walt@tilera.com>
2778
b17a1fa8 2779 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
9433582b 2780 (clzdi2): Ditto.
2781 (ffsdi2): Ditto.
2782
ce51867b 27832014-01-25 Walter Lee <walt@tilera.com>
2784
2785 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
2786 (TARGET_EXPAND_TO_RTL_HOOK): Define.
2787
d7f4ca1d 27882014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
2789
2790 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
2791 Handle XOR.
2792
a5229641 27932014-01-25 Jakub Jelinek <jakub@redhat.com>
2794
7c3f3cf3 2795 * print-rtl.c (in_call_function_usage): New var.
2796 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
2797 EXPR_LIST mode as mode and not as reg note name.
2798
a5229641 2799 PR middle-end/59561
2800 * cfgloopmanip.c (copy_loop_info): If
2801 loop->warned_aggressive_loop_optimizations, make sure
2802 the flag is set in target loop too.
2803
a89e6c15 28042014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
2805
2806 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
2807 flag_cilkplus.
2808 * builtins.def: Likewise.
2809 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
2810 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
2811 * ira.c (ira_setup_eliminable_regset): Likewise.
2812 * omp-low.c (gate_expand_omp): Likewise.
2813 (execute_lower_omp): Likewise.
2814 (diagnose_sb_0): Likewise.
2815 (gate_diagnose_omp_blocks): Likewise.
2816 (simd_clone_clauses_extract): Likewise.
2817 (gate): Likewise.
2818
bc9669de 28192014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2820
2821 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
2822 correction for little endian...
2823 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
2824 here.
2825
d3d3f7c2 28262014-01-24 Jeff Law <law@redhat.com>
2827
2828 PR tree-optimization/59919
2829 * tree-vrp.c (find_assert_locations_1): Do not register asserts
2830 for non-returning calls.
2831
5f273397 28322014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
2833
2834 * common/config/aarch64/aarch64-common.c
2835 (aarch64_rewrite_mcpu): Handle multiple names.
2836 * config/aarch64/aarch64.h
2837 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
2838
c1cc4419 28392014-01-24 Dodji Seketeli <dodji@redhat.com>
2840
2841 * input.c (add_file_to_cache_tab): Handle the case where fopen
2842 returns NULL.
2843
d5ad33f7 28442014-01-23 H.J. Lu <hongjiu.lu@intel.com>
2845
2846 PR target/59929
2847 * config/i386/i386.md (pushsf splitter): Get stack adjustment
2848 from push operand if code of push isn't PRE_DEC.
2849
1c09f133 28502014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2851
2852 PR target/59909
2853 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2854 -mquad-memory-atomic. Update -mquad-memory documentation to say
2855 it is only used for non-atomic loads/stores.
2856
2857 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
2858 -mquad-memory or -mquad-memory-atomic switches.
2859
2860 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
2861 -mquad-memory-atomic to ISA 2.07 support.
2862
2863 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
b17a1fa8 2864 to separate support of normal quad word memory operations (ldq, stq)
2865 from the atomic quad word memory operations.
1c09f133 2866
2867 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2868 support to separate non-atomic quad word operations from atomic
2869 quad word operations. Disable non-atomic quad word operations in
2870 little endian mode so that we don't have to swap words after the
2871 load and before the store.
2872 (quad_load_store_p): Add comment about atomic quad word support.
2873 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
2874 options printed with -mdebug=reg.
2875
2876 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
2877 -mquad-memory-atomic as the test for whether we have quad word
2878 atomic instructions.
b17a1fa8 2879 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
2880 or -mp8-vector are used, allow byte/half-word atomic operations.
1c09f133 2881
2882 * config/rs6000/sync.md (load_lockedti): Insure that the address
2883 is a proper indexed or indirect address for the lqarx instruction.
2884 On little endian systems, swap the hi/lo registers after the lqarx
2885 instruction.
2886 (load_lockedpti): Use indexed_or_indirect_operand predicate to
2887 insure the address is valid for the lqarx instruction.
2888 (store_conditionalti): Insure that the address is a proper indexed
2889 or indirect address for the stqcrx. instruction. On little endian
2890 systems, swap the hi/lo registers before doing the stqcrx.
2891 instruction.
2892 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
2893 insure the address is valid for the stqcrx. instruction.
2894
2895 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
2896 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
2897 type of quad memory support is available.
2898
9c8190ea 28992014-01-23 Vladimir Makarov <vmakarov@redhat.com>
2900
2901 PR regression/59915
2902 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
2903 there is a danger of looping.
2904
b8e59d03 29052014-01-23 Pat Haugen <pthaugen@us.ibm.com>
2906
2907 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2908 force flag_ira_loop_pressure if set via command line.
2909
33fb2095 29102014-01-23 Alex Velenko <Alex.Velenko@arm.com>
2911
2912 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
2913 (ashr_simd): New builtin handling DI mode.
2914 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
2915 (aarch64_sshr_simddi): New match pattern.
2916 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
2917 (vshrd_n_s64): Likewise.
2918 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
2919
0adeb1f8 29202014-01-23 Nick Clifton <nickc@redhat.com>
2921
2922 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
2923 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
2924 favour of mcu specific scripts.
2925 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
2926 430x multilibs.
2927
0bfd8599 29282014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
2929 Alex Velenko <Alex.Velenko@arm.com>
2930
2931 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
2932 (vaddv_s16): Likewise.
2933 (vaddv_s32): Likewise.
2934 (vaddv_u8): Likewise.
2935 (vaddv_u16): Likewise.
2936 (vaddv_u32): Likewise.
2937 (vaddvq_s8): Likewise.
2938 (vaddvq_s16): Likewise.
2939 (vaddvq_s32): Likewise.
2940 (vaddvq_s64): Likewise.
2941 (vaddvq_u8): Likewise.
2942 (vaddvq_u16): Likewise.
2943 (vaddvq_u32): Likewise.
2944 (vaddvq_u64): Likewise.
2945 (vaddv_f32): Likewise.
2946 (vaddvq_f32): Likewise.
2947 (vaddvq_f64): Likewise.
2948 (vmaxv_f32): Likewise.
2949 (vmaxv_s8): Likewise.
2950 (vmaxv_s16): Likewise.
2951 (vmaxv_s32): Likewise.
2952 (vmaxv_u8): Likewise.
2953 (vmaxv_u16): Likewise.
2954 (vmaxv_u32): Likewise.
2955 (vmaxvq_f32): Likewise.
2956 (vmaxvq_f64): Likewise.
2957 (vmaxvq_s8): Likewise.
2958 (vmaxvq_s16): Likewise.
2959 (vmaxvq_s32): Likewise.
2960 (vmaxvq_u8): Likewise.
2961 (vmaxvq_u16): Likewise.
2962 (vmaxvq_u32): Likewise.
2963 (vmaxnmv_f32): Likewise.
2964 (vmaxnmvq_f32): Likewise.
2965 (vmaxnmvq_f64): Likewise.
2966 (vminv_f32): Likewise.
2967 (vminv_s8): Likewise.
2968 (vminv_s16): Likewise.
2969 (vminv_s32): Likewise.
2970 (vminv_u8): Likewise.
2971 (vminv_u16): Likewise.
2972 (vminv_u32): Likewise.
2973 (vminvq_f32): Likewise.
2974 (vminvq_f64): Likewise.
2975 (vminvq_s8): Likewise.
2976 (vminvq_s16): Likewise.
2977 (vminvq_s32): Likewise.
2978 (vminvq_u8): Likewise.
2979 (vminvq_u16): Likewise.
2980 (vminvq_u32): Likewise.
2981 (vminnmv_f32): Likewise.
2982 (vminnmvq_f32): Likewise.
2983 (vminnmvq_f64): Likewise.
2984
c034024c 29852014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
2986
2987 * config/aarch64/aarch64-simd.md
2988 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
2989 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
2990 (*aarch64_mul3_elt<mode>): Likewise.
2991 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
2992 (*aarch64_mul3_elt_to_64v2df): Likewise.
2993 (*aarch64_mla_elt<mode>): Likewise.
2994 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
2995 (*aarch64_mls_elt<mode>): Likewise.
2996 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
2997 (*aarch64_fma4_elt<mode>): Likewise.
2998 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
2999 (*aarch64_fma4_elt_to_64v2df): Likewise.
3000 (*aarch64_fnma4_elt<mode>): Likewise.
3001 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
3002 (*aarch64_fnma4_elt_to_64v2df): Likewise.
3003 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
3004 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
3005 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
3006 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
3007 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
3008 (aarch64_sqdmull_lane<mode>_internal): Likewise.
3009 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
3010
b3f72a34 30112013-01-23 Alex Velenko <Alex.Velenko@arm.com>
3012
3013 * config/aarch64/aarch64-simd.md
3014 (aarch64_be_checked_get_lane<mode>): New define_expand.
3015 * config/aarch64/aarch64-simd-builtins.def
b17a1fa8 3016 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
b3f72a34 3017 New builtin definition.
3018 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
3019 Use new safe be builtin.
3020
c2259249 30212014-01-23 Alex Velenko <Alex.Velenko@arm.com>
3022
3023 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
3024 New define_insn.
3025 (aarch64_be_st1<mode>): Likewise.
3026 (aarch_ld1<VALL:mode>): Define_expand modified.
3027 (aarch_st1<VALL:mode>): Likewise.
3028 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
3029 (UNSPEC_ST1): Likewise.
3030
deed735a 30312014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
3032
3033 * config/microblaze/microblaze.md: Add trap insn and attribute
3034
ffc2c526 30352014-01-23 Dodji Seketeli <dodji@redhat.com>
3036
3037 PR preprocessor/58580
3038 * input.h (location_get_source_line): Take an additional line_size
3039 parameter.
3040 (void diagnostics_file_cache_fini): Declare new function.
3041 * input.c (struct fcache): New type.
3042 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
3043 New static constants.
3044 (diagnostic_file_cache_init, total_lines_num)
3045 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
3046 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
3047 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
3048 (get_next_line, read_next_line, goto_next_line, read_line_num):
3049 New static function definitions.
3050 (diagnostic_file_cache_fini): New function.
3051 (location_get_source_line): Take an additional output line_len
3052 parameter. Re-write using lookup_or_add_file_to_cache_tab and
3053 read_line_num.
3054 * diagnostic.c (diagnostic_finish): Call
3055 diagnostic_file_cache_fini.
3056 (adjust_line): Take an additional input parameter for the length
3057 of the line, rather than calculating it with strlen.
3058 (diagnostic_show_locus): Adjust the use of
3059 location_get_source_line and adjust_line with respect to their new
3060 signature. While displaying a line now, do not stop at the first
3061 null byte. Rather, display the zero byte as a space and keep
3062 going until we reach the size of the line.
3063 * Makefile.in: Add vec.o to OBJS-libcommon
3064
765faa80 30652014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
3066 Ilya Tocar <ilya.tocar@intel.com>
3067
3068 * config/i386/avx512fintrin.h (_mm512_kmov): New.
3069 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
3070 (__builtin_ia32_kmov16): Ditto.
3071 * config/i386/i386.md (UNSPEC_KMOV): New.
3072 (kmovw): Ditto.
3073
3e8ed1e8 30742014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
3075
3076 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
3077 (_mm512_storeu_si512): Ditto.
3078
431cd7a8 30792014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
3080
3081 PR target/52125
3082 * rtl.h (get_referenced_operands): Declare.
3083 * recog.c (get_referenced_operands): New function.
3084 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
3085 operands have been referenced when recording LO_SUM references.
3086
2a18cf55 30872014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
3088
3089 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
3090
abcb2cab 30912014-01-22 Jan Hubicka <hubicka@ucw.cz>
283bfef2 3092
3093 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
3094 Enable for generic and recent AMD targets.
3095
abcb2cab 30962014-01-22 Jan Hubicka <hubicka@ucw.cz>
90b77b23 3097
3098 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
3099 ARG_SIZE note when adjustment was eliminated.
3100
b93ba654 31012014-01-22 Jeff Law <law@redhat.com>
3102
3103 PR tree-optimization/59597
3104 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
3105 in file. Accept new argument REGISTERING and use it to modify
3106 dump output appropriately.
3107 (register_jump_thread): Corresponding changes.
3108 (mark_threaded_blocks): Reinstate code to cancel unprofitable
3109 thread paths involving joiner blocks. Add code to dump cancelled
3110 jump threading paths.
3111
422470c1 31122014-01-22 Vladimir Makarov <vmakarov@redhat.com>
3113
3114 PR rtl-optimization/59477
3115 * lra-constraints.c (inherit_in_ebb): Process call for living hard
b17a1fa8 3116 regs. Update reloads_num and potential_reload_hard_regs for all insns.
422470c1 3117
09c23508 31182014-01-22 Tom Tromey <tromey@redhat.com>
3119
3120 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
3121 PARAMS.
3122 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
3123
fe5cb3e1 31242014-01-21 Vladimir Makarov <vmakarov@redhat.com>
3125
3126 PR rtl-optimization/59896
3127 * lra-constraints.c (process_alt_operands): Check unused note for
3128 matched operands of insn with no output reloads.
3129
f4b82dcb 31302014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
3131
3132 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
3133 (mips_move_from_gpr_cost): Likewise.
3134
4f428208 31352014-01-21 Vladimir Makarov <vmakarov@redhat.com>
3136
3137 PR rtl-optimization/59858
3138 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
3139 ira_class_hard_regs_num.
3140 (process_alt_operands): Increase reject for dying matched operand.
3141
36cdb2ab 31422014-01-21 Jakub Jelinek <jakub@redhat.com>
3143
3144 PR target/59003
3145 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
3146 smaller than size, perform several stores or loads and stores
3147 at dst + count - size to store or copy all of size bytes, rather
3148 than just last modesize bytes.
3149
9aea9676 31502014-01-20 DJ Delorie <dj@redhat.com>
3151
3152 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
3153 that CLOBBERs are REGs before propogating their values.
3154
4f13e575 31552014-01-20 H.J. Lu <hongjiu.lu@intel.com>
3156
3157 PR middle-end/59789
3158 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
3159 (cgraph_inline_failed_type): New function.
3160 * cgraph.h (DEFCIFCODE): Add type.
3161 (cgraph_inline_failed_type_t): New enum.
3162 (cgraph_inline_failed_type): New prototype.
3163 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
3164 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
3165 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
3166 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
3167 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
3168 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
3169 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
b17a1fa8 3170 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
4f13e575 3171 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
3172 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
3173 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
3174 OPTIMIZATION_MISMATCH.
3175 * tree-inline.c (expand_call_inline): Emit errors during
b17a1fa8 3176 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
4f13e575 3177
f5d830da 31782014-01-20 Uros Bizjak <ubizjak@gmail.com>
3179
3180 PR target/59685
3181 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
3182 mode attribute in insn output.
3183
c2db721a 31842014-01-20 Eric Botcazou <ebotcazou@adacore.com>
3185
3186 * output.h (output_constant): Delete.
3187 * varasm.c (output_constant): Make private.
3188
6c3b9b79 31892014-01-20 Alex Velenko <Alex.Velenko@arm.com>
3190
3191 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
3192
b65555c1 31932014-01-20 Jakub Jelinek <jakub@redhat.com>
3194
3195 PR middle-end/59860
3196 * tree.h (fold_builtin_strcat): New prototype.
3197 * builtins.c (fold_builtin_strcat): No longer static. Add len
3198 argument, if non-NULL, don't call c_strlen. Optimize
3199 directly into __builtin_memcpy instead of __builtin_strcpy.
3200 (fold_builtin_2): Adjust fold_builtin_strcat caller.
3201 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
3202
98fbe28d 32032014-01-20 Uros Bizjak <ubizjak@gmail.com>
3204
3205 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
3206 for SImode_address_operand operands, having only a REG argument.
3207
33a9ec13 32082014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
3209
3210 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
3211 loader name using mbig-endian.
3212 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
3213
03218544 32142014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
3215
3216 * doc/invoke.texi (-march): Clarify documentation for AArch64.
3217 (-mtune): Likewise.
3218 (-mcpu): Likewise.
3219
b18c9f75 32202014-01-20 Tejas Belagod <tejas.belagod@arm.com>
3221
3222 * config/aarch64/aarch64-protos.h
3223 (aarch64_cannot_change_mode_class_ptr): Declare.
3224 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
3225 aarch64_cannot_change_mode_class_ptr): New.
3226 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
3227 backend hook aarch64_cannot_change_mode_class.
3228
03189b5b 32292014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
3230
3231 * common/config/aarch64/aarch64-common.c
3232 (aarch64_handle_option): Don't handle any option order logic here.
3233 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
3234 selected_cpu, warn on architecture version mismatch.
3235 (aarch64_override_options): Fix parsing order for option strings.
3236
8ef52e35 32372014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3238 Iain Sandoe <iain@codesourcery.com>
3239
3240 PR bootstrap/59496
3241 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
3242 warning. Amend comment to reflect current functionality.
3243
d4addd98 32442014-01-20 Richard Biener <rguenther@suse.de>
3245
3246 PR middle-end/59860
3247 * builtins.c (fold_builtin_strcat): Remove case better handled
3248 by tree-ssa-strlen.c.
3249
87416710 32502014-01-20 Alan Lawrence <alan.lawrence@arm.com>
3251
3252 * config/aarch64/aarch64.opt
3253 (mcpu, march, mtune): Make case-insensitive.
3254
bfe1a13d 32552014-01-20 Jakub Jelinek <jakub@redhat.com>
3256
3257 PR target/59880
3258 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
3259 if operands[1] is a REG or ZERO_EXTEND of a REG.
3260
abcb2cab 32612014-01-19 Jan Hubicka <hubicka@ucw.cz>
153784de 3262
3263 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
3264
8ff5fb9b 32652014-01-19 John David Anglin <danglin@gcc.gnu.org>
3266
3267 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
3268 long non-pic millicode calls.
3269
abe8007e 32702014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3271
3272 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
3273
b2ecd15d 32742014-01-19 Kito Cheng <kito@0xlab.org>
3275
3276 * builtins.c (expand_movstr): Check movstr expand done or fail.
3277
506a92bc 32782014-01-18 Uros Bizjak <ubizjak@gmail.com>
3279 H.J. Lu <hongjiu.lu@intel.com>
3280
3281 PR target/59379
3282 * config/i386/i386.md (*lea<mode>): Zero-extend return register
3283 to DImode for zero-extended addresses.
3284
4aadd22a 32852014-01-19 Jakub Jelinek <jakub@redhat.com>
3286
3287 PR rtl-optimization/57763
3288 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
3289 on the new indirect jump_insn and increment LABEL_NUSES (label).
3290
506a92bc 32912014-01-18 H.J. Lu <hongjiu.lu@intel.com>
f292755a 3292
3293 PR bootstrap/59580
3294 PR bootstrap/59583
3295 * config.gcc (x86_archs): New variable.
3296 (x86_64_archs): Likewise.
3297 (x86_cpus): Likewise.
3298 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
3299 --with-arch/--with-cpu= options.
3300 Support --with-arch=/--with-cpu={nehalem,westmere,
3301 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
3302
7466df22 33032014-01-18 Uros Bizjak <ubizjak@gmail.com>
3304
3305 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
3306 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
3307
33082014-01-18 Uros Bizjak <ubizjak@gmail.com>
3309
3310 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
3311
9d1464c1 33122014-01-18 Jakub Jelinek <jakub@redhat.com>
3313
3314 PR target/58944
3315 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
3316 clear cpp_get_options (parse_in)->warn_unused_macros for
3317 ix86_target_macros_internal with cpp_define.
3318
8ef42ff5 33192014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
3320
3321 * jump.c (delete_related_insns): Keep (use (insn))s.
3322 * reorg.c (redundant_insn): Check for barriers too.
3323
084a8261 33242014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3325
7466df22 3326 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
084a8261 3327
fc787388 33282014-01-17 John David Anglin <danglin@gcc.gnu.org>
3329
3330 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
3331 call to $$dyncall when TARGET_LONG_CALLS is true.
3332
f3898655 33332014-01-17 Jeff Law <law@redhat.com>
3334
3335 * ree.c (combine_set_extension): Temporarily disable test for
3336 changing number of hard registers.
3337
abcb2cab 33382014-01-17 Jan Hubicka <hubicka@ucw.cz>
0c064175 3339
3340 PR middle-end/58125
3341 * ipa-inline-analysis.c (inline_free_summary):
3342 Do not free summary of aliases.
3343
c291d34a 33442014-01-17 Jakub Jelinek <jakub@redhat.com>
3345
3346 PR middle-end/59706
3347 * gimplify.c (gimplify_expr): Use create_tmp_var
3348 instead of create_tmp_var_raw. If cond doesn't have
3349 integral type, don't add the IFN_ANNOTATE builtin at all.
3350
948ccfa6 33512014-01-17 Martin Jambor <mjambor@suse.cz>
3352
3353 PR ipa/59736
3354 * ipa-cp.c (prev_edge_clone): New variable.
3355 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
3356 Also resize prev_edge_clone vector.
3357 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
3358 (ipcp_edge_removal_hook): New function.
3359 (ipcp_driver): Register ipcp_edge_removal_hook.
3360
fb81c1ba 33612014-01-17 Andrew Pinski <apinski@cavium.com>
3362 Steve Ellcey <sellcey@mips.com>
3363
3364 PR target/59462
3365 * config/mips/mips.c (mips_print_operand): Check operand mode instead
3366 of operator mode.
3367
b2e502cd 33682014-01-17 Jeff Law <law@redhat.com>
3369
3370 PR middle-end/57904
3371 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
3372 so that pass_ccp runs first.
3373
49372306 33742014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3375
3376 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
3377 (ix86_adjust_cost): Use !TARGET_XXX.
3378 (do_reorder_for_imul): Likewise.
3379 (swap_top_of_ready_list): Likewise.
3380 (ix86_sched_reorder): Likewise.
3381
2ea5890d 33822014-01-17 H.J. Lu <hongjiu.lu@intel.com>
3383
3384 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3385 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
3386 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
3387 (intel_memset): New. Duplicate slm_memset.
3388 (intel_cost): New. Duplicate slm_cost.
3389 (m_INTEL): New macro.
3390 (processor_target_table): Add "intel".
3391 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
3392 with PROCESSOR_INTEL for "intel".
3393 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
3394 PROCESSOR_SILVERMONT.
2ea5890d 3395 (ix86_issue_rate): Likewise.
3396 (ix86_adjust_cost): Likewise.
3397 (ia32_multipass_dfa_lookahead): Likewise.
3398 (swap_top_of_ready_list): Likewise.
3399 (ix86_sched_reorder): Likewise.
cfc46241 3400 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
3401 instead of TARGET_OPT_AGU.
2ea5890d 3402 * config/i386/i386.h (TARGET_INTEL): New.
3403 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
3404 (processor_type): Add PROCESSOR_INTEL.
7466df22 3405 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
3406 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
2ea5890d 3407
a576c57a 34082014-01-17 Marek Polacek <polacek@redhat.com>
3409
3410 PR c/58346
3411 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
3412 size is zero.
3413
1941e89d 34142014-01-17 Richard Biener <rguenther@suse.de>
3415
3416 PR tree-optimization/46590
3417 * opts.c (default_options_table): Add entries for
3418 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
3419 all enabled at -O1 but not for -Og.
3420 * common.opt (fbranch-count-reg): Remove Init(1).
3421 (fmove-loop-invariants): Likewise.
3422 (ftree-pta): Likewise.
3423
5e1da545 34242014-01-17 Jakub Jelinek <jakub@redhat.com>
3425
12a0c3a2 3426 * config/i386/i386.c (ix86_data_alignment): For compatibility with
3427 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
3428 decls to at least the GCC 4.8 used alignments.
3429
5e1da545 3430 PR fortran/59440
3431 * tree-nested.c (convert_nonlocal_reference_stmt,
3432 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
3433 of GIMPLE_BIND stmts, adjust associated decls.
3434
3e48928c 34352014-01-17 Richard Biener <rguenther@suse.de>
3436
3437 PR tree-optimization/46590
3438 * vec.h (vec<>::bseach): New member function implementing
3439 binary search according to C89 bsearch.
3440 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
3441 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
3442 bitmap pointer again. Make accesses_in_loop a flat array.
3443 (mem_ref_obstack): New global.
3444 (outermost_indep_loop): Adjust for mem_ref->stored changes.
3445 (mark_ref_stored): Likewise.
3446 (ref_indep_loop_p_2): Likewise.
3447 (set_ref_stored_in_loop): New helper function.
3448 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
3449 (memref_free): Adjust.
3450 (record_mem_ref_loc): Simplify.
3451 (gather_mem_refs_stmt): Adjust.
3452 (sort_locs_in_loop_postorder_cmp): New function.
3453 (analyze_memory_references): Sort accesses_in_loop after
3454 loop postorder number.
3455 (find_ref_loc_in_loop_cmp): New function.
3456 (for_all_locs_in_loop): Find relevant cluster of locs in
3457 accesses_in_loop and iterate without recursion.
3458 (execute_sm): Avoid uninit warning.
3459 (struct ref_always_accessed): Simplify.
3460 (ref_always_accessed::operator ()): Likewise.
3461 (ref_always_accessed_p): Likewise.
3462 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
3463 loop postorder numbers here.
3464 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
3465 numbers.
3466
1905e86a 34672014-01-17 Jan Hubicka <hubicka@ucw.cz>
3468
3469 PR c++/57945
3470 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
3471 on decls for which assemble_alias has been called.
3472
abe1609f 34732014-01-17 Nick Clifton <nickc@redhat.com>
3474
3475 * config/msp430/msp430.opt: (mcpu): New option.
3476 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
3477 (msp430_option_override): Parse target_cpu. If the MCU name
3478 matches a generic string, clear target_mcu.
3479 (msp430_attr): Allow numeric interrupt values up to 63.
3480 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
3481 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
3482 option.
3483 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
3484 Add mcpu matches.
3485 * config/msp430/msp430.md (popm): Use %J rather than %I.
3486 (addsi3): Use msp430_nonimmediate_operand for operand 2.
3487 (addhi_cy_i): Use immediate_operand for operand 2.
3488 * doc/invoke.texi: Document -mcpu option.
3489
67e23d6f 34902014-01-17 Richard Biener <rguenther@suse.de>
3491
3492 PR rtl-optimization/38518
3493 * df.h (df_analyze_loop): Declare.
3494 * df-core.c: Include cfgloop.h.
3495 (df_analyze_1): Split out main part of df_analyze.
3496 (df_analyze): Adjust.
3497 (loop_inverted_post_order_compute): New function.
3498 (loop_post_order_compute): Likewise.
3499 (df_analyze_loop): New function avoiding whole-function
3500 postorder computes.
3501 * loop-invariant.c (find_defs): Use df_analyze_loop.
3502 (find_invariants): Adjust.
3503 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
3504
01b23159 35052014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
3506
3507 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
3508 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
3509
ae589802 35102014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
3511
3512 * ipa-ref.c (ipa_remove_stmt_references): Fix references
3513 traversal when removing references.
3514
abcb2cab 35152014-01-16 Jan Hubicka <hubicka@ucw.cz>
c473fea7 3516
3517 PR ipa/59775
3518 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
3519
06da7238 35202014-01-16 Bernd Schmidt <bernds@codesourcery.com>
3521
3522 PR middle-end/56791
3523 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
3524 pushing a reload for an autoinc when we had previously reloaded an
3525 inner part of the address.
3526
e111028e 35272014-01-16 Jakub Jelinek <jakub@redhat.com>
3528
c7a8722c 3529 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
3530 field.
3531 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
3532 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
3533 when not giving up or versioning for alias only because of
3534 loop->safelen.
3535 (vect_analyze_data_ref_dependences): Set to true.
3536 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
3537 is a GIMPLE_PHI.
3538 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
3539 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
3540 to the condition.
3541
e8e60ada 3542 PR middle-end/58344
3543 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
3544
e111028e 3545 PR target/59839
7466df22 3546 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
3547 operand 0 predicate for gathers, use a new pseudo as subtarget.
e111028e 3548
b3d446cb 35492014-01-16 Vladimir Makarov <vmakarov@redhat.com>
3550
3551 PR middle-end/59609
7466df22 3552 * lra-constraints.c (process_alt_operands): Add printing debug info.
3553 Check absence of input/output reloads for matched operands too.
b3d446cb 3554
3ce88829 35552014-01-16 Vladimir Makarov <vmakarov@redhat.com>
3556
3557 PR rtl-optimization/59835
3558 * ira.c (ira_init_register_move_cost): Increase cost for
3559 impossible modes.
3560
d5b90111 35612014-01-16 Alan Lawrence <alan.lawrence@arm.com>
3562
ad123784 3563 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
d5b90111 3564
2b5ec7ce 35652014-01-16 Richard Earnshaw <rearnsha@arm.com>
3566
3567 PR target/59780
3568 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
3569 non-register objects. Use gen_(high/low)part more consistently.
3570 Fix assertions.
3571
7810cff3 35722014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
3573
3574 PR target/59844
3575 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
3576 endian support, remove tests for WORDS_BIG_ENDIAN.
3577 (p8_mfvsrd_3_<mode>): Likewise.
3578 (reload_gpr_from_vsx<mode>): Likewise.
3579 (reload_gpr_from_vsxsf): Likewise.
3580 (p8_mfvsrd_4_disf): Likewise.
3581
17e85523 35822014-01-16 Richard Biener <rguenther@suse.de>
3583
3584 PR rtl-optimization/46590
3585 * lcm.c (compute_antinout_edge): Use postorder iteration.
3586 (compute_laterin): Use inverted postorder iteration.
3587
4edd2c14 35882014-01-16 Nick Clifton <nickc@redhat.com>
3589
3590 PR middle-end/28865
3591 * varasm.c (output_constant): Return the number of bytes actually
3592 emitted.
3593 (output_constructor_array_range): Update the field size with the
3594 number of bytes emitted by output_constant.
3595 (output_constructor_regular_field): Likewise. Also do not
3596 complain if the total number of bytes emitted is now greater
3597 than the expected fieldpos.
7466df22 3598 * output.h (output_constant): Update prototype and descriptive comment.
4edd2c14 3599
2830de69 36002014-01-16 Marek Polacek <polacek@redhat.com>
3601
3602 PR middle-end/59827
3603 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
3604 it is error_mark_node.
3605
c334d998 36062014-01-15 Uros Bizjak <ubizjak@gmail.com>
3607
3608 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
3609 VALID_AVX256_REG_OR_OI_MODE.
3610
ccebc2aa 36112014-01-15 Pat Haugen <pthaugen@us.ibm.com>
3612
3613 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
3614 current procedure should be profiled.
3615
0c3180b6 36162014-01-15 Andrew Pinski <apinski@cavium.com>
3617
3618 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
3619 of moving from/to the STACK_REG register class.
3620
b4c6ce9b 36212014-01-15 Richard Henderson <rth@redhat.com>
e52beba9 3622
3623 PR debug/54694
3624 * reginfo.c (global_regs_decl): Globalize.
3625 * rtl.h (global_regs_decl): Declare.
3626 * ira.c (do_reload): Diagnose frame_pointer_needed and it
3627 reserved via global_regs.
3628
d1a94241 36292014-01-15 Teresa Johnson <tejohnson@google.com>
3630
3631 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
3632
3adca139 36332014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
3634
3635 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
3636 and vmulosh rather than call gen_vec_widen_smult_*.
3637 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
3638 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
3639 (vec_widen_smult_even_v16qi): Likewise.
3640 (vec_widen_umult_even_v8hi): Likewise.
3641 (vec_widen_smult_even_v8hi): Likewise.
3642 (vec_widen_umult_odd_v16qi): Likewise.
3643 (vec_widen_smult_odd_v16qi): Likewise.
3644 (vec_widen_umult_odd_v8hi): Likewise.
3645 (vec_widen_smult_odd_v8hi): Likewise.
3646 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
3647 vmuloub rather than call gen_vec_widen_umult_*.
3648 (vec_widen_umult_lo_v16qi): Likewise.
3649 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
3650 vmulosb rather than call gen_vec_widen_smult_*.
3651 (vec_widen_smult_lo_v16qi): Likewise.
3652 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
3653 rather than call gen_vec_widen_umult_*.
3654 (vec_widen_umult_lo_v8hi): Likewise.
3655 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
3656 rather than call gen_vec_widen_smult_*.
3657 (vec_widen_smult_lo_v8hi): Likewise.
3658
92802c6f 36592014-01-15 Jeff Law <law@redhat.com>
3660
3661 PR tree-optimization/59747
3662 * ree.c (find_and_remove_re): Properly handle case where a second
3663 eliminated extension requires widening a copy created for elimination
3664 of a prior extension.
3665 (combine_set_extension): Ensure that the number of hard regs needed
3666 for a destination register does not change when we widen it.
3667
b69fc80a 36682014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
3669
3670 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
3671 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
3672 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
3673 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
3674 (avr-*-rtems*): Likewise.
3675 (bfin*-rtems*): Likewise.
3676 (moxie-*-rtems*): Likewise.
3677 (h8300-*-rtems*): Likewise.
3678 (i[34567]86-*-rtems*): Likewise.
3679 (lm32-*-rtems*): Likewise.
3680 (m32r-*-rtems*): Likewise.
3681 (m68k-*-rtems*): Likewise.
3682 (microblaze*-*-rtems*): Likewise.
3683 (mips*-*-rtems*): Likewise.
3684 (powerpc-*-rtems*): Likewise.
3685 (sh-*-rtems*): Likewise.
3686 (sparc-*-rtems*): Likewise.
3687 (sparc64-*-rtems*): Likewise.
3688 (v850-*-rtems*): Likewise.
3689 (m32c-*-rtems*): Likewise.
3690
e374deeb 36912014-01-15 Vladimir Makarov <vmakarov@redhat.com>
3692
3693 PR rtl-optimization/59511
3694 * ira.c (ira_init_register_move_cost): Use memory costs for some
3695 cases of register move cost calculations.
3696 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
3697 instead of BB frequency.
3698 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
3699 * lra-assigns.c (find_hard_regno_for): Ditto.
3700
500fffe1 37012014-01-15 Richard Biener <rguenther@suse.de>
3702
3703 PR tree-optimization/59822
3704 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
3705 (vectorizable_load): Use it to hoist defs of uses of invariant
3706 loads out of the loop.
3707
d9fb4e77 37082014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
ea47f46c 3709 Kugan Vivekanandarajah <kuganv@linaro.org>
d9fb4e77 3710
3711 PR target/59695
3712 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
3713 truncation.
3714
a2028ebf 37152014-01-15 Richard Biener <rguenther@suse.de>
3716
3717 PR rtl-optimization/59802
3718 * lcm.c (compute_available): Use inverted postorder to seed
3719 the initial worklist.
3720
37c55f71 37212014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3722
3716dd35 3723 PR target/59803
37c55f71 3724 * config/s390/s390.c (s390_preferred_reload_class): Don't return
3725 ADDR_REGS for invalid symrefs in non-PIC code.
3726
4e140a5c 37272014-01-15 Jakub Jelinek <jakub@redhat.com>
3728
3729 PR other/58712
3730 * builtins.c (determine_block_size): Initialize *probable_max_size
3731 even if len_rtx is CONST_INT.
3732
268a662f 37332014-01-14 Andrew Pinski <apinski@cavium.com>
3734
3735 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
3736 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
3737 (cortexa53_tunings): Likewise.
3738 (aarch64_sched_issue_rate): New function.
3739 (TARGET_SCHED_ISSUE_RATE): Define.
3740
afcc0d26 37412014-01-14 Vladimir Makarov <vmakarov@redhat.com>
3742
3743 * ira-costs.c (find_costs_and_classes): Add missed
3744 ira_init_register_move_cost_if_necessary.
3745
05268327 37462014-01-14 Vladimir Makarov <vmakarov@redhat.com>
3747
3748 PR target/59787
3749 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
3750
838bf047 37512014-01-14 H.J. Lu <hongjiu.lu@intel.com>
3752
3753 PR target/59794
3754 * config/i386/i386.c (type_natural_mode): Add a bool parameter
c334d998 3755 to indicate if type is used for function return value. Warn ABI
3756 change if the vector mode isn't available for function return value.
838bf047 3757 (ix86_function_arg_advance): Pass false to type_natural_mode.
3758 (ix86_function_arg): Likewise.
3759 (ix86_gimplify_va_arg): Likewise.
3760 (function_arg_32): Don't warn ABI change.
3761 (ix86_function_value): Pass true to type_natural_mode.
3762 (ix86_return_in_memory): Likewise.
3763 (ix86_struct_value_rtx): Removed.
3764 (TARGET_STRUCT_VALUE_RTX): Likewise.
3765
4db67ecc 37662014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
3767
3768 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
3769 converting a conditional jump into a conditional return.
3770
546d1cc8 37712014-01-14 Richard Biener <rguenther@suse.de>
3772
3773 PR tree-optimization/58921
3774 PR tree-optimization/59006
3775 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
3776 hoisting invariant stmts.
3777 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
3778 invariant loads on the preheader edge if possible.
3779
48f24eb2 37802014-01-14 Joey Ye <joey.ye@arm.com>
3781
3782 * doc/plugin.texi (Building GCC plugins): Update to C++.
3783
fbf4df62 37842014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
3785
838bf047 3786 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
fbf4df62 3787 (_mm_rcp28_round_ss): Ditto.
3788 (_mm_rsqrt28_round_sd): Ditto.
3789 (_mm_rsqrt28_round_ss): Ditto.
3790 (_mm_rcp28_sd): Ditto.
3791 (_mm_rcp28_ss): Ditto.
3792 (_mm_rsqrt28_sd): Ditto.
3793 (_mm_rsqrt28_ss): Ditto.
3794 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
3795 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
3796 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
3797 (IX86_BUILTIN_RCP28SD): Ditto.
3798 (IX86_BUILTIN_RCP28SS): Ditto.
3799 (IX86_BUILTIN_RSQRT28SD): Ditto.
3800 (IX86_BUILTIN_RSQRT28SS): Ditto.
3801 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
3802 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
3803 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
3804 (ix86_expand_special_args_builtin): Expand new FTYPE.
3805 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
3806 (srcp14<mode>): Make insn unary.
3807 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
3808 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
3809 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
3810 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
3811 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
3812 Fix rounding: make it SAE only.
c334d998 3813 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
3814 Ditto.
3815 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
3816 Ditto.
fbf4df62 3817 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
3818 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
3819 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
3820 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
3821 (round_saeonly_mask_scalar_operand4): Ditto.
3822 (round_saeonly_mask_scalar_op3): Ditto.
3823 (round_saeonly_mask_scalar_op4): Ditto.
3824
51cc20fd 38252014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3826
3827 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3828 Implement -maltivec=be for vec_insert and vec_extract.
3829
50753af6 38302014-01-10 DJ Delorie <dj@redhat.com>
3831
3832 * config/msp430/msp430.md (call_internal): Don't allow memory
3833 references with SP as the base register.
3834 (call_value_internal): Likewise.
3835 * config/msp430/constraints.md (Yc): New. For memory references
3836 that don't use SP as a base register.
3837
3838 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
3839 "an integer without a # prefix"
3840 * config/msp430/msp430.md (epilogue_helper): Use it.
3841
f6a34e3f 38422014-01-13 Jakub Jelinek <jakub@redhat.com>
3843
d7bcf3d1 3844 PR target/59617
3845 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
3846 AVX512F gather builtins.
3847 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
3848 on gather decls with INTEGER_TYPE masktype.
3849 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
3850 directly into the builtin rather than hoisting it before loop.
3851
f6a34e3f 3852 PR tree-optimization/59387
3853 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
3854 (scev_const_prop): If folded_casts and type has undefined overflow,
3855 use force_gimple_operand instead of force_gimple_operand_gsi and
3856 for each added stmt if it is assign with
3857 arith_code_with_undefined_signed_overflow, call
3858 rewrite_to_defined_overflow.
3859 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
3860 gimple-fold.h instead.
3861 (arith_code_with_undefined_signed_overflow,
3862 rewrite_to_defined_overflow): Moved to ...
3863 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
3864 rewrite_to_defined_overflow): ... here. No longer static.
3865 Include gimplify-me.h.
3866 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
3867 rewrite_to_defined_overflow): New prototypes.
3868
69888cc7 38692014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3870
3871 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
3872
ad464c56 38732014-01-13 Eric Botcazou <ebotcazou@adacore.com>
3874
3875 * builtins.c (get_object_alignment_2): Minor tweak.
3876 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
3877
75c9129c 38782014-01-13 Christian Bruel <christian.bruel@st.com>
3879
3880 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
ad464c56 3881 optimized non constant lengths.
75c9129c 3882
2ed72821 38832014-01-13 Jakub Jelinek <jakub@redhat.com>
3884
3885 PR libgomp/59194
3886 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
3887 load as __atomic_load_N if possible.
3888
74bc8e47 38892014-01-11 David Edelsohn <dje.gcc@gmail.com>
3890
3891 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
3892 target parameter.
3893 (rs6000_expand_builtin): Adjust call.
3894
3257ccd1 38952014-01-11 David Edelsohn <dje.gcc@gmail.com>
3896
3897 PR target/58115
3898 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
3899 * config/rs6000/rs6000.c: Include target-globals.h.
3900 (rs6000_set_current_function): Instead of doing target_reinit
3901 unconditionally, use save_target_globals_default_opts and
3902 restore_target_globals.
3903
3904 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
3905 FPSCR.
3906 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
3907 (rs6000_expand_builtin): Handle mffs and mtfsf.
3908 (rs6000_init_builtins): Define mffs and mtfsf.
3909 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
3910 (rs6000_mffs): New pattern.
3911 (rs6000_mtfsf): New pattern.
3912
32c6ace0 39132014-01-11 Bin Cheng <bin.cheng@arm.com>
3914
3915 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
3916 Start narrowing with START. Apply candidate-use pair
3917 and check overall cost in narrowing.
3918 (iv_ca_prune): Pass new argument.
3919
782ce6aa 39202014-01-10 Jeff Law <law@redhat.com>
3921
3922 PR middle-end/59743
3923 * ree.c (combine_reaching_defs): Ensure the defining statement
3924 occurs before the extension when optimizing extensions with
3925 different source and destination hard registers.
3926
abcb2cab 39272014-01-10 Jan Hubicka <hubicka@ucw.cz>
2441731c 3928
3929 PR ipa/58585
c334d998 3930 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
3931 vtables into the type inheritance graph.
2441731c 3932
0dfd08b1 39332014-01-10 Jakub Jelinek <jakub@redhat.com>
3934
3935 PR rtl-optimization/59754
3936 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
3937 modes in the REGNO != REGNO case.
3938
f1288d58 39392014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3940
3941 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
3942
6c427a80 39432014-01-10 Jakub Jelinek <jakub@redhat.com>
3944
f037f351 3945 PR tree-optimization/59745
3946 * tree-predcom.c (tree_predictive_commoning_loop): Call
3947 free_affine_expand_cache if giving up because components is NULL.
3948
6c427a80 3949 * target-globals.c (save_target_globals): Allocate < 4KB structs using
3950 GC in payload of target_globals struct instead of allocating them on
3951 the heap and the larger structs separately using GC.
3952 * target-globals.h (struct target_globals): Make regs, hard_regs,
3953 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
3954 of GTY((skip)) and change type to void *.
3955 (reset_target_globals): Cast loads from those fields to corresponding
3956 types.
3957
10d41ed3 39582014-01-10 Steve Ellcey <sellcey@mips.com>
3959
3960 PR plugins/59335
3961 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
3962 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
3963 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
3964
46b590a1 39652014-01-10 Richard Earnshaw <rearnsha@arm.com>
3966
2c169721 3967 PR target/59744
46b590a1 3968 * aarch64-modes.def (CC_Zmode): New flags mode.
3969 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
3970 represents an equality.
2c169721 3971 (aarch64_get_condition_code): Handle CC_Zmode.
46b590a1 3972 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
3973
d089210f 39742014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3975
3976 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
3977 extraction in good case.
3978
1824e1e2 39792014-01-10 Richard Biener <rguenther@suse.de>
3980
3981 PR tree-optimization/59374
3982 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
3983 checking after SLP discovery. Mark stmts not participating
3984 in any SLP instance properly.
3985
e2ab6881 39862014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3987
3988 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
3989 when handling a SET rtx.
3990
5de87df0 39912014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3992
3993 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
3994 (cortex-a57): Likewise.
3995 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
3996
1069dee8 39972014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3998
3999 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
4000 non-iwmmxt builtins.
4001
10a8f02f 40022014-01-10 Jan Hubicka <hubicka@ucw.cz>
4003
4004 PR ipa/58252
4005 PR ipa/59226
4006 * ipa-devirt.c record_target_from_binfo): Take as argument
4007 stack of binfos and lookup matching one for virtual inheritance.
4008 (possible_polymorphic_call_targets_1): Update.
4009
514db0f0 40102014-01-10 Huacai Chen <chenhc@lemote.com>
4011
4012 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
4013 kernel strings for Loongson-2E/2F/3A.
4014
cae17039 40152014-01-10 Jakub Jelinek <jakub@redhat.com>
4016
4017 PR middle-end/59670
4018 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
4019 is_gimple_call before calling gimple_call_internal_p.
4020
f6d8a42a 40212014-01-09 Steve Ellcey <sellcey@mips.com>
4022
4023 * Makefile.in (TREE_FLOW_H): Remove.
4024 (TREE_SSA_H): Add file names from tree-flow.h.
4025 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
4026 * tree.h: Remove tree-flow.h reference.
4027 * hash-table.h: Remove tree-flow.h reference.
4028 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
4029 reference with tree-ssa-loop.h.
4030
b5236700 40312014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4032
4033 * doc/invoke.texi: Add -maltivec={be,le} options, and document
4034 default element-order behavior for -maltivec.
4035 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
4036 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
4037 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
4038 when targeting big endian, at least for now.
4039 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
4040
f70f513f 40412014-01-09 Jakub Jelinek <jakub@redhat.com>
4042
fc1995c6 4043 PR middle-end/47735
4044 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
4045 var satisfies use_register_for_decl, just take into account type
4046 alignment, rather than decl alignment.
4047
f70f513f 4048 PR tree-optimization/59622
4049 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
4050 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
4051 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
4052 Don't devirtualize for inplace at all. For targets.length () == 1,
4053 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
4054
d902a1c3 40552014-01-09 H.J. Lu <hongjiu.lu@intel.com>
4056
4057 * config/i386/i386.md (cpu): Remove the unused btver1.
4058
28bc5799 40592014-01-09 H.J. Lu <hongjiu.lu@intel.com>
4060
4061 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
4062
6e5c480b 40632014-01-09 Jakub Jelinek <jakub@redhat.com>
4064
4065 PR target/58115
4066 * tree-core.h (struct target_globals): New forward declaration.
4067 (struct tree_target_option): Add globals field.
4068 * tree.h (TREE_TARGET_GLOBALS): Define.
4069 (prepare_target_option_nodes_for_pch): New prototype.
4070 * target-globals.h (struct target_globals): Define even if
4071 !SWITCHABLE_TARGET.
4072 * tree.c (prepare_target_option_node_for_pch,
4073 prepare_target_option_nodes_for_pch): New functions.
4074 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
4075 * config/i386/i386.c: Include target-globals.h.
4076 (ix86_set_current_function): Instead of doing target_reinit
4077 unconditionally, use save_target_globals_default_opts and
4078 restore_target_globals.
4079
470c168f 40802014-01-09 Richard Biener <rguenther@suse.de>
4081
4082 PR tree-optimization/59715
4083 * tree-cfg.h (split_critical_edges): Declare.
4084 * tree-cfg.c (split_critical_edges): Export.
4085 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
4086
bf2b7c22 40872014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
4088
c334d998 4089 * cfgexpand.c (expand_stack_vars): Optionally disable
bf2b7c22 4090 asan stack protection.
4091 (expand_used_vars): Likewise.
4092 (partition_stack_vars): Likewise.
c334d998 4093 * asan.c (asan_emit_stack_protection): Optionally disable
bf2b7c22 4094 after return stack usage.
7466df22 4095 (instrument_derefs): Optionally disable memory access instrumentation.
bf2b7c22 4096 (instrument_builtin_call): Likewise.
4097 (instrument_strlen_call): Likewise.
7466df22 4098 (asan_protect_global): Optionally disable global variables protection.
bf2b7c22 4099 * doc/invoke.texi: Added doc for new options.
4100 * params.def: Added new options.
4101 * params.h: Likewise.
4102
964c7827 41032014-01-09 Jakub Jelinek <jakub@redhat.com>
4104
4105 PR rtl-optimization/59724
4106 * ifcvt.c (cond_exec_process_if_block): Don't call
4107 flow_find_head_matching_sequence with 0 longest_match.
4108 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
4109 non-active insns if !stop_after.
4110 (try_head_merge_bb): Revert 2014-01-07 changes.
4111
c8b3dc4f 41122014-01-08 Jeff Law <law@redhat.com>
4113
4114 * ree.c (get_sub_rtx): New function, extracted from...
4115 (merge_def_and_ext): Here.
4116 (combine_reaching_defs): Use get_sub_rtx.
4117
6cdce0f6 41182014-01-08 Eric Botcazou <ebotcazou@adacore.com>
4119
4120 * cgraph.h (varpool_variable_node): Do not choke on null node.
4121
75be3bab 41222014-01-08 Catherine Moore <clm@codesourcery.com>
4123
c334d998 4124 * config/mips/mips.md (simple_return): Attempt to use JRC
4125 for microMIPS.
75be3bab 4126 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
4127
3d59aca0 41282014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
4129
4130 PR rtl-optimization/59137
4131 * reorg.c (steal_delay_list_from_target): Call update_block for
4132 elided insns.
4133 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
4134
8a08427d 41352014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4136
4137 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4138 two duplicate entries.
4139
c7b53601 41402014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
4141
4142 Revert:
4143 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
4144
4145 * config/mips/mips.c (mips_truncated_op_cost): New function.
4146 (mips_rtx_costs): Adjust test for BADDU.
4147 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
4148
4149 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
4150
4151 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
4152 (*baddu_si): ...this new pattern.
4153
0891f4f9 41542014-01-08 Jakub Jelinek <jakub@redhat.com>
4155
4156 PR ipa/59722
4157 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
4158
a12f023f 41592014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4160
4161 PR middle-end/57748
4162 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
4163 inner_reference_p.
4164 (expand_expr, expand_normal): Adjust.
4165 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
4166 inner_reference_p. Use inner_reference_p to expand inner references.
4167 (store_expr): Adjust.
4168 * cfgexpand.c (expand_call_stmt): Adjust.
4169
c334d998 41702014-01-08 Rong Xu <xur@google.com>
67745126 4171
4172 * gcov-io.c (gcov_var): Move from gcov-io.h.
4173 (gcov_position): Ditto.
4174 (gcov_is_error): Ditto.
4175 (gcov_rewrite): Ditto.
4176 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
4177 only part to libgcc/libgcov.h.
4178
6db33a3d 41792014-01-08 Marek Polacek <polacek@redhat.com>
4180
4181 PR middle-end/59669
4182 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
4183
1603f939 41842014-01-08 Marek Polacek <polacek@redhat.com>
4185
4186 PR sanitizer/59667
4187 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
4188
396020c7 41892014-01-08 Jakub Jelinek <jakub@redhat.com>
4190
4191 PR rtl-optimization/59649
4192 * stor-layout.c (get_mode_bounds): For BImode return
4193 0 and STORE_FLAG_VALUE.
4194
8ded4352 41952014-01-08 Richard Biener <rguenther@suse.de>
4196
4197 PR middle-end/59630
4198 * gimple.h (is_gimple_builtin_call): Remove.
4199 (gimple_builtin_call_types_compatible_p): New.
4200 (gimple_call_builtin_p): New overload.
4201 * gimple.c (is_gimple_builtin_call): Remove.
4202 (validate_call): Rename to ...
4203 (gimple_builtin_call_types_compatible_p): ... this and export. Also
4204 check return types.
4205 (validate_type): New static function.
4206 (gimple_call_builtin_p): New overload and adjust.
4207 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
4208 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
4209 (gimple_fold_stmt_to_constant_1): Likewise.
4210 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
4211
3370c0ec 42122014-01-08 Richard Biener <rguenther@suse.de>
4213
4214 PR middle-end/59471
4215 * gimplify.c (gimplify_expr): Gimplify register-register type
4216 VIEW_CONVERT_EXPRs to separate stmts.
4217
30eead8d 42182014-01-07 Jeff Law <law@redhat.com>
4219
956391c1 4220 PR middle-end/53623
4221 * ree.c (combine_set_extension): Handle case where source
4222 and destination registers in an extension insn are different.
c334d998 4223 (combine_reaching_defs): Allow source and destination registers
4224 in extension to be different under limited circumstances.
956391c1 4225 (add_removable_extension): Remove restriction that the
c334d998 4226 source and destination registers in the extension are the same.
956391c1 4227 (find_and_remove_re): Emit a copy from the extension's
4228 destination to its source after the defining insn if
4229 the source and destination registers are different.
4230
30eead8d 4231 PR middle-end/59285
4232 * ifcvt.c (merge_if_block): If we are merging a block with more than
4233 one successor with a block with no successors, remove any BARRIER
4234 after the second block.
4235
80b9f631 42362014-01-07 Dan Xio Qiang <ziyan01@163.com>
4237
4238 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
4239
e59aa434 42402014-01-07 John David Anglin <danglin@gcc.gnu.org>
4241
4242 PR target/59652
4243 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
4244 for 14-bit register offsets when INT14_OK_STRICT is false.
4245
7d11c3b4 42462014-01-07 Roland Stigge <stigge@antcom.de>
4247 Michael Meissner <meissner@linux.vnet.ibm.com>
4248
4249 PR 57386/target
4250 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
c334d998 4251 Only check TFmode for SPE constants. Don't check TImode or TDmode.
7d11c3b4 4252
487880da 42532014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
4254
4255 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
4256 -mcpu.
4257
5832a5e2 42582014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
4259
4260 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
4261 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
4262 rtx is const0_rtx or not.
4263
2265e215 42642014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
4265
4266 PR target/58115
4267 * target-globals.c (save_target_globals): Remove this_fn_optab
4268 handling.
4269 * toplev.c: Include optabs.h.
4270 (target_reinit): Temporarily restore the global options if another
4271 set of options are in force.
4272
19f2ced2 42732014-01-07 Jakub Jelinek <jakub@redhat.com>
4274
177a616b 4275 PR rtl-optimization/58668
4276 * cfgcleanup.c (flow_find_cross_jump): Don't count
4277 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
4278 to determine what is counted.
4279 (flow_find_head_matching_sequence): Use active_insn_p to determine
4280 what is counted.
4281 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
4282 counting change.
4283 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
4284 determine what is counted.
4285
19f2ced2 4286 PR tree-optimization/59643
4287 * tree-predcom.c (split_data_refs_to_components): If one dr is
4288 read and one write, determine_offset fails and the write isn't
4289 in the bad component, just put the read into the bad component.
4290
62402de3 42912014-01-07 Mike Stump <mikestump@comcast.net>
4292 Jakub Jelinek <jakub@redhat.com>
4293
4294 PR pch/59436
4295 * tree-core.h (struct tree_optimization_option): Change optabs
4296 type from unsigned char * to void *.
4297 * optabs.c (init_tree_optimization_optabs): Adjust
4298 TREE_OPTIMIZATION_OPTABS initialization.
4299
22d5a519 43002014-01-06 Jakub Jelinek <jakub@redhat.com>
4301
4302 PR target/59644
4303 * config/i386/i386.h (struct machine_function): Add
4304 no_drap_save_restore field.
4305 * config/i386/i386.c (ix86_save_reg): Use
4306 !cfun->machine->no_drap_save_restore instead of
4307 crtl->stack_realign_needed.
4308 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
4309 this function clears frame_pointer_needed. Set
4310 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
4311 and DRAP reg is needed.
4312
6685d11c 43132014-01-06 Marek Polacek <polacek@redhat.com>
4314
4315 PR c/57773
4316 * doc/implement-c.texi: Mention that other integer types are
4317 permitted as bit-field types in strictly conforming mode.
4318
80b9f631 43192014-01-06 Felix Yang <fei.yang0953@gmail.com>
5ce4a75a 4320
4321 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
4322 is newly allocated.
4323
0c5bb1d0 43242014-01-06 Richard Earnshaw <rearnsha@arm.com>
4325
4326 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
4327
436b29f7 43282014-01-06 Martin Jambor <mjambor@suse.cz>
4329
4330 PR ipa/59008
4331 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
4332 to int.
4333 * ipa-prop.c (ipa_print_node_params): Fix indentation.
4334
6b44c9ee 43352014-01-06 Eric Botcazou <ebotcazou@adacore.com>
4336
4337 PR debug/59350
4338 PR debug/59510
4339 * var-tracking.c (add_stores): Preserve the value of the source even if
4340 we don't record the store.
4341
e35d6bbc 43422014-01-06 Terry Guo <terry.guo@arm.com>
4343
4344 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
4345
0fbd1542 43462014-01-05 Iain Sandoe <iain@codesourcery.com>
4347
4348 PR bootstrap/59541
4349 * config/darwin.c (darwin_function_section): Adjust return values to
4350 correspond to optimisation changes made in r206070.
4351
f3ea719e 43522014-01-05 Uros Bizjak <ubizjak@gmail.com>
4353
4354 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
4355 from prefetch_block tune setting.
4356 (nocona_cost): Correct size of prefetch block to 64.
4357
54b044c3 43582014-01-04 Eric Botcazou <ebotcazou@adacore.com>
4359
4360 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
4361 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
4362 used to save the static chain register in the computation of the offset
4363 from which the FP registers need to be restored.
4364
8688c545 43652014-01-04 Jakub Jelinek <jakub@redhat.com>
4366
9dbe1d59 4367 PR tree-optimization/59519
4368 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
4369 ICE if get_current_def (current_new_name) is already non-NULL, as long
4370 as it is a phi result of some other phi in *new_exit_bb that has
4371 the same argument.
4372
8688c545 4373 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
4374 or vmovdqu* for misaligned_operand.
4375 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
4376 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
4377 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
4378 aligned_mem for AVX512F masked aligned load and store builtins and for
4379 non-temporal moves.
4380
43812014-01-03 Bingfeng Mei <bmei@broadcom.com>
6e984e6f 4382
4383 PR tree-optimization/59651
f3ea719e 4384 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6e984e6f 4385 Address range for negative step should be added by TYPE_SIZE_UNIT.
4386
7e862b4e 43872014-01-03 Andreas Schwab <schwab@linux-m68k.org>
4388
4389 * config/m68k/m68k.c (handle_move_double): Handle pushes with
7466df22 4390 overlapping registers also for registers other than the stack pointer.
7e862b4e 4391
1545a06d 43922014-01-03 Marek Polacek <polacek@redhat.com>
4393
4394 PR other/59661
4395 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
4396 __builtin_FILE.
4397
ca94bc0d 43982014-01-03 Jakub Jelinek <jakub@redhat.com>
4399
0ff576b9 4400 PR target/59625
4401 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
4402 asm goto as jump.
4403
ca94bc0d 4404 * config/i386/i386.md (MODE_SIZE): New mode attribute.
4405 (push splitter): Use <P:MODE_SIZE> instead of
4406 GET_MODE_SIZE (<P:MODE>mode).
4407 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
4408 (mov -1, reg peephole2): Likewise.
4409 * config/i386/sse.md (*mov<mode>_internal,
4410 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
4411 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
4412 *<code><mode>3, *andnot<mode>3<mask_name>,
4413 <mask_codefor><code><mode>3<mask_name>): Likewise.
4414 * config/i386/subst.md (mask_mode512bit_condition,
4415 sd_mask_mode512bit_condition): Likewise.
4416
37d099d8 44172014-01-02 Xinliang David Li <davidxl@google.com>
4418
4419 PR tree-optimization/59303
ca94bc0d 4420 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
37d099d8 4421 (dump_predicates): Better output format.
4422 (pred_equal_p): New function.
4423 (is_neq_relop_p): Ditto.
4424 (is_neq_zero_form_p): Ditto.
4425 (pred_expr_equal_p): Ditto.
4426 (pred_neg_p): Ditto.
4427 (simplify_pred): Ditto.
4428 (simplify_preds_2): Ditto.
4429 (simplify_preds_3): Ditto.
4430 (simplify_preds_4): Ditto.
4431 (simplify_preds): Ditto.
4432 (push_pred): Ditto.
4433 (push_to_worklist): Ditto.
4434 (get_pred_info_from_cmp): Ditto.
4435 (is_degenerated_phi): Ditto.
4436 (normalize_one_pred_1): Ditto.
4437 (normalize_one_pred): Ditto.
4438 (normalize_one_pred_chain): Ditto.
4439 (normalize_preds): Ditto.
4440 (normalize_cond_1): Remove function.
4441 (normalize_cond): Ditto.
4442 (is_gcond_subset_of): Ditto.
4443 (is_subset_of_any): Ditto.
4444 (is_or_set_subset_of): Ditto.
4445 (is_and_set_subset_of): Ditto.
4446 (is_norm_cond_subset_of): Ditto.
4447 (pred_chain_length_cmp): Ditto.
4448 (convert_control_dep_chain_into_preds): Type change.
4449 (find_predicates): Ditto.
4450 (find_def_preds): Ditto.
4451 (destroy_predicates_vecs): Ditto.
4452 (find_matching_predicates_in_rest_chains): Ditto.
4453 (use_pred_not_overlap_with_undef_path_pred): Ditto.
4454 (is_pred_expr_subset): Ditto.
4455 (is_pred_chain_subset_of): Ditto.
4456 (is_included_in): Ditto.
4457 (is_superset_of): Ditto.
4458
3aea1f79 44592014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4460
f3ea719e 4461 Update copyright years.
3aea1f79 4462
e4f22041 44632014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
4464
4465 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
4466 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
f3ea719e 4467 config/arc/arc.md, config/arc/arc.opt,
4468 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
4469 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
4470 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
4471 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
4472 config/linux-protos.h, config/linux.c, config/winnt-c.c,
4473 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
4474 vtable-verify.c, vtable-verify.h: Use the standard form for the
4475 copyright notice.
e4f22041 4476
d67510b9 44772014-01-02 Tobias Burnus <burnus@net-b.de>
4478
4479 * gcc.c (process_command): Update copyright notice dates.
4480 * gcov-dump.c: Ditto.
4481 * gcov.c: Ditto.
4482 * doc/cpp.texi: Bump @copying's copyright year.
4483 * doc/cppinternals.texi: Ditto.
4484 * doc/gcc.texi: Ditto.
4485 * doc/gccint.texi: Ditto.
4486 * doc/gcov.texi: Ditto.
4487 * doc/install.texi: Ditto.
4488 * doc/invoke.texi: Ditto.
4489
5569181c 44902014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
b3390c66 4491
4492 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
4493
d733203b 44942014-01-01 Jakub Jelinek <jakub@redhat.com>
68b0b56c 4495
ff3ace14 4496 * config/i386/sse.md (*mov<mode>_internal): Guard
4497 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
4498
d733203b 4499 PR rtl-optimization/59647
4500 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
4501 new_rtx into UNSIGNED_FLOAT rtxes.
7dfbd804 4502\f
a80c339f 4503Copyright (C) 2014 Free Software Foundation, Inc.
7dfbd804 4504
4505Copying and distribution of this file, with or without modification,
4506are permitted in any medium without royalty provided the copyright
4507notice and this notice are preserved.