5d7eef5e68e1656888bc7391ca4c0e942cec4677
[gcc.git] / gcc / ChangeLog
1 2014-04-03 Nick Clifton <nickc@redhat.com>
2
3 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
4 properly.
5
6 2014-04-03 Martin Jambor <mjambor@suse.cz>
7
8 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
9 mention gcc_unreachable before failing.
10 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
11 removed symbols.
12
13 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
14
15 PR ipa/60659
16 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type inconsistent
17 code and instead mark the context inconsistent.
18 (possible_polymorphic_call_targets): For inconsistent contexts
19 return empty complete list.
20
21 2014-04-02 Anthony Green <green@moxielogic.com>
22
23 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
24 (extendqisi2, extendhisi2): Define.
25 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
26 (WCHAR_TYPE): Change to unsigned int.
27
28 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29
30 PR tree-optimization/60733
31 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
32 insertion point for PHI candidates to be the end of the feeding
33 block for the PHI argument.
34
35 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
36
37 PR rtl-optimization/60650
38 * lra-constraints.c (process_alt_operands): Decrease reject for
39 earlyclobber matching.
40
41 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
42
43 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
44
45 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
46
47 * config/spu/spu.c (pad_bb): Do not crash when the last
48 insn is CODE_FOR_blockage.
49
50 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
51
52 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
53 lies outside the target mode.
54
55 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
56
57 PR target/60735
58 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
59 software floating point or no floating point registers, do not
60 allow any type in the FPRs. Eliminate a test for SPE SIMD types
61 in GPRs that occurs after we tested for GPRs that would never be
62 true.
63
64 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
65 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
66 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
67 specifically allow DDmode, since that does not use the SPE SIMD
68 instructions.
69
70 2014-04-02 Richard Biener <rguenther@suse.de>
71
72 PR middle-end/60729
73 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
74 MODE_INTs. Properly use negv_optab.
75 (expand_abs): Likewise.
76
77 2014-04-02 Richard Biener <rguenther@suse.de>
78
79 PR bootstrap/60719
80 * Makefile.in (install-driver): Guard extra installs with special
81 names properly.
82
83 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
84
85 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
86 Document vec_vgbbd.
87
88 2014-04-01 Richard Henderson <rth@redhat.com>
89
90 PR target/60704
91 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
92 alternative enabled before register allocation.
93
94 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
95
96 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
97 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
98 typo.
99 (nios2_large_got_address): Remove unneeded 'sym' parameter.
100 (nios2_got_address): Update nios2_large_got_address call site.
101 (nios2_delegitimize_address): New function.
102 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
103 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
104 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
105
106 2014-04-01 Martin Husemann <martin@duskware.de>
107
108 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
109 for -mabi=32.
110
111 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
112
113 PR rtl-optimization/60604
114 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
115 check from register_operand.
116 (register_operand): Redefine in terms of general_operand.
117 (nonmemory_operand): Use register_operand for the non-constant cases.
118
119 2014-04-01 Richard Biener <rguenther@suse.de>
120
121 * gimple.h (struct gimple_statement_base): Align subcode to
122 16 bits.
123
124 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
125
126 * doc/invoke.texi (mapp-regs): Clarify.
127
128 2014-03-31 Ulrich Drepper <drepper@gmail.com>
129
130 * config/i386/avx512fintrin.h (__v32hi): Define type.
131 (__v64qi): Likewise.
132 (_mm512_set1_epi8): Define.
133 (_mm512_set1_epi16): Define.
134 (_mm512_set4_epi32): Define.
135 (_mm512_set4_epi64): Define.
136 (_mm512_set4_pd): Define.
137 (_mm512_set4_ps): Define.
138 (_mm512_setr4_epi64): Define.
139 (_mm512_setr4_epi32): Define.
140 (_mm512_setr4_pd): Define.
141 (_mm512_setr4_ps): Define.
142 (_mm512_setzero_epi32): Define.
143
144 2014-03-31 Martin Jambor <mjambor@suse.cz>
145
146 PR middle-end/60647
147 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
148 callsite_arguments_match_p. Updated all callers. Also check types of
149 corresponding formal parameters and actual arguments.
150 (not_all_callers_have_enough_arguments_p) Renamed to
151 some_callers_have_mismatched_arguments_p.
152
153 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
154
155 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
156
157 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
158
159 PR target/60034
160 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
161 section anchor.
162
163 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
164
165 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
166 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
167 Split out
168 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
169 Use FMAMODE_NOVF512 mode iterator.
170 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
171 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
172 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
173 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
174 Split out
175 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
176 Use VF_128_256 mode iterator.
177 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
178 Ditto.
179
180 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
181
182 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
183 static chain if needed.
184
185 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
186
187 PR target/60697
188 * lra-constraints.c (index_part_to_reg): New.
189 (process_address): Use it.
190
191 2014-03-27 Jeff Law <law@redhat.com>
192 Jakub Jelinek <jakub@redhat.com>
193
194 PR target/60648
195 * expr.c (do_tablejump): Use simplify_gen_binary rather than
196 gen_rtx_{PLUS,MULT} to build up the address expression.
197
198 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
199 creating non-canonical RTL.
200
201 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
202
203 PR ipa/60243
204 * ipa-inline.c (want_inline_small_function_p): Short circuit large
205 functions; reorganize to make cheap checks first.
206 (inline_small_functions): Do not estimate growth when dumping;
207 it is expensive.
208 * ipa-inline.h (inline_summary): Add min_size.
209 (growth_likely_positive): New function.
210 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
211 (set_cond_stmt_execution_predicate): Cleanup.
212 (estimate_edge_size_and_time): Compute min_size.
213 (estimate_calls_size_and_time): Likewise.
214 (estimate_node_size_and_time): Likewise.
215 (inline_update_overall_summary): Update min_size.
216 (do_estimate_edge_time): Likewise.
217 (do_estimate_edge_size): Update.
218 (do_estimate_edge_hints): Update.
219 (growth_likely_positive): New function.
220
221 2014-03-28 Jakub Jelinek <jakub@redhat.com>
222
223 PR target/60693
224 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
225 also if addr has VOIDmode.
226
227 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
228
229 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
230 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
231 Declare extern.
232 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
233 instructions as well as AdvancedSIMD loads.
234
235 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
236
237 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
238 Use crypto_aese type.
239 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
240 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
241 crypto_aese, crypto_aesmc. Move to types.md.
242 * config/arm/types.md (crypto_aes): Split into crypto_aese,
243 crypto_aesmc.
244 * config/arm/iterators.md (crypto_type): Likewise.
245
246 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
247
248 * cgraph.c: Include expr.h and tree-dfa.h.
249 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
250 remove LHS.
251
252 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
253
254 PR target/60675
255 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
256 regs from checking multi-reg pseudos.
257
258 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
259
260 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
261
262 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
263
264 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
265 if it would clobber the stack pointer, even temporarily.
266
267 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
268
269 * mode-switching.c: Make small adjustments to the top comment.
270
271 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
272
273 * config/rs6000/constraints.md (wD constraint): New constraint to
274 match the constant integer to get the top DImode/DFmode out of a
275 vector in a VSX register.
276
277 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
278 match the constant integer to get the top DImode/DFmode out of a
279 vector in a VSX register.
280
281 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
282 for ISA 2.07.
283
284 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
285 vbpermq builtins.
286
287 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
288 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
289
290 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
291 Optimize vec_extract of 64-bit values, where the value being
292 extracted is in the top word, where we can use scalar
293 instructions. Add direct move and store support. Combine the big
294 endian/little endian vector select load support into a single insn.
295 (vsx_extract_<mode>_internal1): Likewise.
296 (vsx_extract_<mode>_internal2): Likewise.
297 (vsx_extract_<mode>_load): Likewise.
298 (vsx_extract_<mode>_store): Likewise.
299 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
300 combined into vsx_extract_<mode>_load.
301 (vsx_extract_<mode>_one_le): Likewise.
302
303 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
304 define the top 64-bit vector element.
305
306 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
307 constraint.
308
309 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
310 Document vec_vbpermq builtin.
311
312 PR target/60672
313 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
314 enable use of xxsldwi and xxpermdi builtin functions.
315 (vec_xxpermdi): Likewise.
316
317 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
318 Document use of vec_xxsldwi and vec_xxpermdi builtins.
319
320 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
321
322 PR rtl-optimization/60650
323 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
324 first_p. Use it.
325 (find_spills_for): New.
326 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
327 Spill all pseudos on the second iteration.
328
329 2014-03-27 Marek Polacek <polacek@redhat.com>
330
331 PR c/50347
332 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
333 types.
334
335 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
336
337 * config/s390/s390.c (s390_can_use_return_insn): Check for
338 call-saved FPRs on 31 bit.
339
340 2014-03-27 Jakub Jelinek <jakub@redhat.com>
341
342 PR middle-end/60682
343 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
344 if they need regimplification, just drop them instead of
345 calling gimple_regimplify_operands on them.
346
347 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
348
349 PR target/60580
350 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
351 (aarch64_frame_pointer_required): Adjust logic.
352 (aarch64_can_eliminate): Adjust logic.
353 (aarch64_override_options_after_change): Adjust logic.
354
355 2014-03-27 Dehao Chen <dehao@google.com>
356
357 * ipa-inline.c (early_inliner): Update node's inline info.
358
359 2014-03-26 Dehao Chen <dehao@google.com>
360
361 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
362 compiler inserted conditional jumps for NAN float check.
363
364 2014-03-26 Jakub Jelinek <jakub@redhat.com>
365
366 * ubsan.h (ubsan_create_data): Change second argument's type
367 to const location_t *.
368 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
369 _("<unknown>").
370 (ubsan_create_data): Change second argument to const location_t *PLOC.
371 Create Loc field whenever PLOC is non-NULL.
372 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
373 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
374 callers.
375
376 PR other/59545
377 * real.c (real_to_integer2): Change type of low to UHWI.
378
379 2014-03-26 Tobias Burnus <burnus@net-b.de>
380
381 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
382 (CILK_SELF_SPECS): New define.
383 (driver_self_specs): Use it.
384
385 2014-03-26 Richard Biener <rguenther@suse.de>
386
387 * tree-pretty-print.c (percent_K_format): Implement special
388 case for LTO and its stripped down BLOCK tree.
389
390 2014-03-26 Jakub Jelinek <jakub@redhat.com>
391
392 PR sanitizer/60636
393 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
394
395 * tree-vrp.c (simplify_internal_call_using_ranges): If only
396 one range is range_int_cst_p, but not both, at least optimize
397 addition/subtraction of 0 and multiplication by 0 or 1.
398 * gimple-fold.c (gimple_fold_call): Fold
399 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
400 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
401 INTEGER_CSTs, try to fold at least x * 0 and y - y.
402
403 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
404
405 PR rtl-optimization/60452
406 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
407 <case REG>: Return 1 for invalid offsets from the frame pointer.
408
409 2014-03-26 Marek Polacek <polacek@redhat.com>
410
411 PR c/37428
412 * doc/extend.texi (C Extensions): Mention variable-length arrays in
413 a structure/union.
414
415 2014-03-26 Marek Polacek <polacek@redhat.com>
416
417 PR c/39525
418 * doc/extend.texi (Designated Inits): Describe what happens to omitted
419 field members.
420
421 2014-03-26 Marek Polacek <polacek@redhat.com>
422
423 PR other/59545
424 * ira-color.c (update_conflict_hard_regno_costs): Perform the
425 multiplication in unsigned type.
426
427 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
428
429 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
430
431 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
432
433 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
434
435 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
436
437 PR ipa/60315
438 * cif-code.def (UNREACHABLE) New code.
439 * ipa-inline.c (inline_small_functions): Skip edges to
440 __builtlin_unreachable.
441 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
442 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
443 predicate to __bulitin_unreachable.
444 (set_cond_stmt_execution_predicate): Fix issue when
445 invert_tree_comparison returns ERROR_MARK.
446 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
447 propagate to inline clones.
448 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
449 to unreachable.
450 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
451 * cgraphclones.c (cgraph_clone_node): If call destination is already
452 ureachable, do not redirect it back.
453 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
454 unreachable.
455
456 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
457
458 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
459 Do not modify inline clones.
460
461 2014-03-25 Jakub Jelinek <jakub@redhat.com>
462
463 * config/i386/i386.md (general_sext_operand): New mode attr.
464 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
465 don't generate (sign_extend (const_int)).
466 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
467 operands[2]. Use We constraint instead of <i> and
468 <general_sext_operand> predicate instead of <general_operand>.
469 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
470 * config/i386/constraints.md (We): New constraint.
471 * config/i386/predicates.md (x86_64_sext_operand,
472 sext_operand): New predicates.
473
474 2014-03-25 Martin Jambor <mjambor@suse.cz>
475
476 PR ipa/60600
477 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
478 inconsistent devirtualizations to __builtin_unreachable.
479
480 2014-03-25 Marek Polacek <polacek@redhat.com>
481
482 PR c/35449
483 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
484
485 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
486
487 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
488 order of elements for big-endian.
489
490 2014-03-25 Richard Biener <rguenther@suse.de>
491
492 PR middle-end/60635
493 * gimplify-me.c (gimple_regimplify_operands): Update the
494 re-gimplifed stmt.
495
496 2014-03-25 Martin Jambor <mjambor@suse.cz>
497
498 PR ipa/59176
499 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
500 (lto_output_varpool_node): Likewise.
501 (input_overwrite_node): Likewise.
502 (input_varpool_node): Likewise.
503
504 2014-03-25 Richard Biener <rguenther@suse.de>
505
506 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
507 (run_gcc): Likewise.
508
509 2014-03-25 Jakub Jelinek <jakub@redhat.com>
510
511 * combine.c (simplify_compare_const): Add MODE argument.
512 Handle mode_width 0 as very large mode_width.
513 (try_combine, simplify_comparison): Adjust callers.
514
515 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
516 type to avoid signed integer overflow.
517 * explow.c (plus_constant): Likewise.
518
519 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
520
521 * doc/generic.texi: Correct typos.
522
523 2014-03-24 Tobias Burnus <burnus@net-b.de>
524
525 * doc/invoke.texi (-flto): Expand section about
526 using static libraries with LTO.
527
528 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
529
530 PR rtl-optimization/60501
531 * optabs.def (addptr3_optab): New optab.
532 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
533 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
534 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
535
536 * lra.c (emit_add3_insn): Use the addptr pattern if available.
537
538 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
539
540 2014-03-24 Ulrich Drepper <drepper@gmail.com>
541
542 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
543 _mm512_set1_pd.
544
545 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
546 (_mm256_undefined_ps): Define.
547 (_mm256_undefined_pd): Define.
548 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
549 (_mm_undefined_pd): Define.
550 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
551 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
552 (_mm512_undefined_ps): Define.
553 (_mm512_undefined_pd): Define.
554 Use _mm*_undefined_*.
555 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
556
557 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
558
559 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
560 (lshr_simd): DI mode added.
561 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
562 (aarch64_ushr_simddi): Likewise.
563 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
564 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
565 (vshrd_n_u64): Likewise.
566
567 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
568
569 * Makefile.in (s-macro_list): Depend on cc1.
570
571 2014-03-23 Teresa Johnson <tejohnson@google.com>
572
573 * ipa-utils.c (ipa_print_order): Use specified dump file.
574
575 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
576
577 PR rtl-optimization/60601
578 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
579
580 * gcc.c (eval_spec_function): Initialize save_growing_value.
581
582 2014-03-22 Jakub Jelinek <jakub@redhat.com>
583
584 PR sanitizer/60613
585 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
586 code == MINUS_EXPR, never swap op0 with op1.
587
588 * toplev.c (init_local_tick): Avoid signed integer multiplication
589 overflow.
590 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
591 shift by first operand's bitsize.
592
593 2014-03-21 Jakub Jelinek <jakub@redhat.com>
594
595 PR target/60610
596 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
597 redefine to 1 or 0.
598 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
599 TARGET_ISA_64BIT_P(x).
600
601 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
602
603 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
604 pattern for vector nor instead of subtract from splat(-1).
605 (altivec_expand_vec_perm_const_le): Likewise.
606
607 2014-03-21 Richard Henderson <rth@twiddle.net>
608
609 PR target/60598
610 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
611 related insns after epilogue_completed.
612
613 2014-03-21 Martin Jambor <mjambor@suse.cz>
614
615 PR ipa/59176
616 * cgraph.h (symtab_node): New flag body_removed.
617 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
618 when removing bodies.
619 * symtab.c (dump_symtab_base): Dump body_removed flag.
620 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
621 had their bodies removed.
622
623 2014-03-21 Martin Jambor <mjambor@suse.cz>
624
625 PR ipa/60419
626 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
627 in the border.
628
629 2014-03-21 Richard Biener <rguenther@suse.de>
630
631 PR tree-optimization/60577
632 * tree-core.h (struct tree_base): Document nothrow_flag use
633 in VAR_DECL_NONALIASED.
634 * tree.h (VAR_DECL_NONALIASED): New.
635 (may_be_aliased): Adjust.
636 * coverage.c (build_var): Set VAR_DECL_NONALIASED.
637
638 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
639
640 * expr.c (expand_expr_real_1): Remove outdated comment.
641
642 2014-03-20 Jakub Jelinek <jakub@redhat.com>
643
644 PR middle-end/60597
645 * ira.c (adjust_cleared_regs): Call copy_rtx on
646 *reg_equiv[REGNO (loc)].src_p before passing it to
647 simplify_replace_fn_rtx.
648
649 PR target/60568
650 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
651 into CONST, put pic register as first operand of PLUS. Use
652 gen_const_mem for both 32-bit and 64-bit PIC got loads.
653
654 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
655
656 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
657
658 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
659
660 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
661 around for store forwarding issue in the FPU on the UT699.
662 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
663 loads and operations if -mfix-ut699 is specified.
664 (divtf3_hq): Tweak attribute.
665 (sqrttf2_hq): Likewise.
666
667 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
668
669 * calls.c (store_one_arg): Remove incorrect const qualification on the
670 type of the temporary.
671 * cfgexpand.c (expand_return): Likewise.
672 * expr.c (expand_constructor): Likewise.
673 (expand_expr_real_1): Likewise.
674
675 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
676
677 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
678 of parts.
679
680 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
681
682 PR target/60039
683 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
684
685 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
686
687 * config/arm/aarch-common-protos.h
688 (alu_cost_table): Fix spelling of "extend".
689 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
690
691 2014-03-19 Richard Biener <rguenther@suse.de>
692
693 PR middle-end/60553
694 * tree-core.h (tree_type_common): Re-order pointer members
695 to reduce recursion depth during GC walks.
696
697 2014-03-19 Marek Polacek <polacek@redhat.com>
698
699 PR sanitizer/60569
700 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
701 before accessing it.
702
703 2014-03-19 Richard Biener <rguenther@suse.de>
704
705 PR lto/59543
706 * lto-streamer-in.c (input_function): In WPA stage do not drop
707 debug stmts.
708
709 2014-03-19 Jakub Jelinek <jakub@redhat.com>
710
711 PR tree-optimization/60559
712 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
713 with build_zero_cst assignment.
714
715 2014-03-18 Kai Tietz <ktietz@redhat.com>
716
717 PR rtl-optimization/56356
718 * sdbout.c (sdbout_parms): Verify that parms'
719 incoming argument is valid.
720 (sdbout_reg_parms): Likewise.
721
722 2014-03-18 Richard Henderson <rth@redhat.com>
723
724 PR target/60562
725 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
726 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
727 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
728
729 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
730
731 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
732 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
733 Italicize plugin event names in description. Explain that
734 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
735 Remind that no GCC functions should be called after PLUGIN_FINISH.
736 Explain what pragmas with expansion are.
737
738 2014-03-18 Martin Liska <mliska@suse.cz>
739
740 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
741 gimple call statement is update.
742 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
743 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
744
745 2014-03-18 Jakub Jelinek <jakub@redhat.com>
746
747 PR sanitizer/60557
748 * ubsan.c (ubsan_instrument_unreachable): Call
749 initialize_sanitizer_builtins.
750 (ubsan_pass): Likewise.
751
752 PR sanitizer/60535
753 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
754 varpool_finalize_decl instead of rest_of_decl_compilation.
755
756 2014-03-18 Richard Biener <rguenther@suse.de>
757
758 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
759 by using bitmap_and_compl instead of bitmap_and_compl_into.
760 (df_rd_transfer_function): Likewise.
761
762 2014-03-18 Richard Biener <rguenther@suse.de>
763
764 * doc/lto.texi (fresolution): Fix typo.
765
766 2014-03-18 Richard Biener <rguenther@suse.de>
767
768 * doc/invoke.texi (flto): Update for changes in 4.9.
769
770 2014-03-18 Richard Biener <rguenther@suse.de>
771
772 * doc/loop.texi: Remove section on the removed lambda framework.
773 Update loop docs with recent changes in preserving loop structure.
774
775 2014-03-18 Richard Biener <rguenther@suse.de>
776
777 * doc/lto.texi (-fresolution): Document.
778
779 2014-03-18 Richard Biener <rguenther@suse.de>
780
781 * doc/contrib.texi: Adjust my name.
782
783 2014-03-18 Jakub Jelinek <jakub@redhat.com>
784
785 PR ipa/58721
786 * internal-fn.c: Include diagnostic-core.h.
787 (expand_BUILTIN_EXPECT): New function.
788 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
789 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
790 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
791 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
792 IFN_BUILTIN_EXPECT.
793 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
794 Revert 3 argument __builtin_expect code.
795 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
796 * gimple-fold.c (gimple_fold_call): Likewise.
797 * tree.h (fold_builtin_expect): New prototype.
798 * builtins.c (build_builtin_expect_predicate): Add predictor
799 argument, if non-NULL, create 3 argument __builtin_expect.
800 (fold_builtin_expect): No longer static. Add ARG2 argument,
801 pass it through to build_builtin_expect_predicate.
802 (fold_builtin_2): Adjust caller.
803 (fold_builtin_3): Handle BUILT_IN_EXPECT.
804 * internal-fn.def (BUILTIN_EXPECT): New.
805
806 2014-03-18 Tobias Burnus <burnus@net-b.de>
807
808 PR ipa/58721
809 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
810 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
811 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
812
813 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
814
815 PR ipa/58721
816 * predict.c (combine_predictions_for_bb): Fix up formatting.
817 (expr_expected_value_1, expr_expected_value): Add predictor argument,
818 fill what it points to if non-NULL.
819 (tree_predict_by_opcode): Adjust caller, use the predictor.
820 * predict.def (PRED_COMPARE_AND_SWAP): Add.
821
822 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
823
824 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
825 proper constant for the store mode.
826
827 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
828
829 * symtab.c (change_decl_assembler_name): Fix transparent alias
830 chain construction.
831
832 2014-03-16 Renlin Li <Renlin.Li@arm.com>
833
834 * config/aarch64/aarch64.c: Correct the comments about the
835 aarch64 stack layout.
836
837 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
838
839 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
840 check for GF_OMP_FOR_KIND_FOR.
841
842 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
843
844 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
845 ymm and zmm register names.
846
847 2014-03-17 Jakub Jelinek <jakub@redhat.com>
848
849 PR target/60516
850 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
851 note creation for the 2010-08-31 changes.
852
853 2014-03-17 Marek Polacek <polacek@redhat.com>
854
855 PR middle-end/60534
856 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
857 as -fno-tree-loop-vectorize.
858 (expand_omp_simd): Likewise.
859
860 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
861
862 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
863 (eligible_for_call_delay): New prototype.
864 * config/sparc/sparc.c (tls_call_delay): Rename into...
865 (eligible_for_call_delay): ...this. Return false if the instruction
866 cannot be put in the delay slot of a branch.
867 (eligible_for_restore_insn): Simplify.
868 (eligible_for_return_delay): Return false if the instruction cannot be
869 put in the delay slot of a branch and simplify.
870 (eligible_for_sibcall_delay): Return false if the instruction cannot be
871 put in the delay slot of a branch.
872 * config/sparc/sparc.md (fix_ut699): New attribute.
873 (tls_call_delay): Delete.
874 (in_call_delay): Reimplement.
875 (eligible_for_sibcall_delay): Rename into...
876 (in_sibcall_delay): ...this.
877 (eligible_for_return_delay): Rename into...
878 (in_return_delay): ...this.
879 (in_branch_delay): Reimplement.
880 (in_uncond_branch_delay): Delete.
881 (in_annul_branch_delay): Delete.
882
883 2014-03-14 Richard Henderson <rth@redhat.com>
884
885 PR target/60525
886 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
887 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
888 (*floathi<X87MODEF>2_i387_with_temp): Remove.
889 (floathi splitters): Remove.
890 (float<SWI48x>xf2): New pattern.
891 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
892 code that tried to handle DImode for 32-bit, but which was excluded
893 by the pattern's condition. Drop allocation of stack temporary.
894 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
895 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
896 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
897 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
898 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
899 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
900 (*float<SWI48><MODEF>2_sse_interunit): Remove.
901 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
902 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
903 (*float<SWI48x><X87MODEF>2_i387): Remove.
904 (all float _with_temp splitters): Remove.
905 (*float<SWI48x><MODEF>2_i387): New pattern.
906 (*float<SWI48><MODEF>2_sse): New pattern.
907 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
908 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
909
910 2014-03-14 Jakub Jelinek <jakub@redhat.com>
911 Marek Polacek <polacek@redhat.com>
912
913 PR middle-end/60484
914 * common.opt (dump_base_name_prefixed): New Variable.
915 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
916 if x_dump_base_name_prefixed is already set, set it at the end.
917
918 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
919
920 PR rtl-optimization/60508
921 * lra-constraints.c (get_reload_reg): Add new parameter
922 in_subreg_p.
923 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
924 Pass the new parameter values.
925
926 2014-03-14 Richard Biener <rguenther@suse.de>
927
928 * common.opt: Revert unintented changes from r205065.
929 * opts.c: Likewise.
930
931 2014-03-14 Richard Biener <rguenther@suse.de>
932
933 PR middle-end/60518
934 * cfghooks.c (split_block): Properly adjust all loops the
935 block was a latch of.
936
937 2014-03-14 Martin Jambor <mjambor@suse.cz>
938
939 PR lto/60461
940 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
941 and simplify it.
942
943 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
944
945 PR target/59396
946 * config/avr/avr.c (avr_set_current_function): Pass function name
947 through default_strip_name_encoding before sanity checking instead
948 of skipping the first char of the assembler name.
949
950 2014-03-13 Richard Henderson <rth@redhat.com>
951
952 PR debug/60438
953 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
954 (ix86_force_to_memory, ix86_free_from_memory): Remove.
955 * config/i386/i386-protos.h: Likewise.
956 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
957 in the expander instead of a splitter.
958 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
959 any possibility of requiring a memory.
960 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
961 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
962 (fp branch splitters): Update for ix86_split_fp_branch.
963 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
964 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
965 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
966 (*fop_<MODEF>_2_i387): Remove f/r alternative.
967 (*fop_<MODEF>_3_i387): Likewise.
968 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
969 (splitters for the fop_* register patterns): Remove.
970 (fscalexf4_i387): Rename from *fscalexf4_i387.
971 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
972
973 2014-03-13 Jakub Jelinek <jakub@redhat.com>
974
975 PR tree-optimization/59779
976 * tree-dfa.c (get_ref_base_and_extent): Use double_int
977 type for bitsize and maxsize instead of HOST_WIDE_INT.
978
979 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
980
981 PR rtl-optimization/57320
982 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
983 the CFG after thread_prologue_and_epilogue_insns.
984
985 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
986
987 PR rtl-optimization/57189
988 * lra-constraints.c (process_alt_operands): Disfavor spilling
989 vector pseudos.
990
991 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
992
993 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
994
995 2014-03-13 Jakub Jelinek <jakub@redhat.com>
996
997 PR tree-optimization/59025
998 PR middle-end/60418
999 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
1000 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
1001
1002 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
1003
1004 PR target/60486
1005 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
1006 calls of avr_out_plus_1.
1007
1008 2014-03-13 Bin Cheng <bin.cheng@arm.com>
1009
1010 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
1011 BB's single pred and update the father loop's latch info later.
1012
1013 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1014
1015 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
1016 (VEC_M): Likewise.
1017 (VEC_N): Likewise.
1018 (VEC_R): Likewise.
1019 (VEC_base): Likewise.
1020 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
1021 registers, we need to swap double words in little endian mode.
1022
1023 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
1024 to be a container mode for 128-bit integer operations added in ISA
1025 2.07. Unlike TImode and PTImode, the preferred register set is
1026 the Altivec/VMX registers for the 128-bit operations.
1027
1028 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
1029 declarations.
1030 (rs6000_split_128bit_ok_p): Likewise.
1031
1032 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
1033 macros for creating ISA 2.07 normal and overloaded builtin
1034 functions with 3 arguments.
1035 (BU_P8V_OVERLOAD_3): Likewise.
1036 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
1037 for use as overloaded functions.
1038 (VPERM_1TI_UNS): Likewise.
1039 (VSEL_1TI): Likewise.
1040 (VSEL_1TI_UNS): Likewise.
1041 (ST_INTERNAL_1ti): Likewise.
1042 (LD_INTERNAL_1ti): Likewise.
1043 (XXSEL_1TI): Likewise.
1044 (XXSEL_1TI_UNS): Likewise.
1045 (VPERM_1TI): Likewise.
1046 (VPERM_1TI_UNS): Likewise.
1047 (XXPERMDI_1TI): Likewise.
1048 (SET_1TI): Likewise.
1049 (LXVD2X_V1TI): Likewise.
1050 (STXVD2X_V1TI): Likewise.
1051 (VEC_INIT_V1TI): Likewise.
1052 (VEC_SET_V1TI): Likewise.
1053 (VEC_EXT_V1TI): Likewise.
1054 (EQV_V1TI): Likewise.
1055 (NAND_V1TI): Likewise.
1056 (ORC_V1TI): Likewise.
1057 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
1058 added in ISA 2.07. Add both normal 'altivec' builtins, and the
1059 overloaded builtin.
1060 (VADDUQM): Likewise.
1061 (VSUBCUQ): Likewise.
1062 (VADDEUQM): Likewise.
1063 (VADDECUQ): Likewise.
1064 (VSUBEUQM): Likewise.
1065 (VSUBECUQ): Likewise.
1066
1067 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
1068 __int128_t and __uint128_t types.
1069 (__uint128_type): Likewise.
1070 (altivec_categorize_keyword): Add support for vector __int128_t,
1071 vector __uint128_t, vector __int128, and vector unsigned __int128
1072 as a container type for TImode operations that need to be done in
1073 VSX/Altivec registers.
1074 (rs6000_macro_to_expand): Likewise.
1075 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
1076 to support 128-bit integer instructions vaddcuq, vadduqm,
1077 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
1078 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
1079
1080 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
1081 for V1TImode, and set up preferences to use VSX/Altivec registers.
1082 Setup VSX reload handlers.
1083 (rs6000_debug_reg_global): Likewise.
1084 (rs6000_init_hard_regno_mode_ok): Likewise.
1085 (rs6000_preferred_simd_mode): Likewise.
1086 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
1087 (easy_altivec_constant): Likewise.
1088 (output_vec_const_move): Likewise.
1089 (rs6000_expand_vector_set): Convert V1TImode set and extract to
1090 simple move.
1091 (rs6000_expand_vector_extract): Likewise.
1092 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
1093 addressing.
1094 (rs6000_const_vec): Add support for V1TImode.
1095 (rs6000_emit_le_vsx_load): Swap double words when loading or
1096 storing TImode/V1TImode.
1097 (rs6000_emit_le_vsx_store): Likewise.
1098 (rs6000_emit_le_vsx_move): Likewise.
1099 (rs6000_emit_move): Add support for V1TImode.
1100 (altivec_expand_ld_builtin): Likewise.
1101 (altivec_expand_st_builtin): Likewise.
1102 (altivec_expand_vec_init_builtin): Likewise.
1103 (altivec_expand_builtin): Likewise.
1104 (rs6000_init_builtins): Add support for V1TImode type. Add
1105 support for ISA 2.07 128-bit integer builtins. Define type names
1106 for the VSX/Altivec vector types.
1107 (altivec_init_builtins): Add support for overloaded vector
1108 functions with V1TImode type.
1109 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
1110 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
1111 external function.
1112 (rs6000_split_128bit_ok_p): Likewise.
1113 (rs6000_handle_altivec_attribute): Create V1TImode from vector
1114 __int128_t and vector __uint128_t.
1115
1116 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
1117 and mode attributes.
1118 (VSX_M): Likewise.
1119 (VSX_M2): Likewise.
1120 (VSm): Likewise.
1121 (VSs): Likewise.
1122 (VSr): Likewise.
1123 (VSv): Likewise.
1124 (VS_scalar): Likewise.
1125 (VS_double): Likewise.
1126 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
1127
1128 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
1129 we support the ISA 2.07 128-bit integer arithmetic instructions.
1130 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
1131 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
1132 and TImode types for use with the builtin functions.
1133 (V1TI_type_node): Likewise.
1134 (unsigned_V1TI_type_node): Likewise.
1135 (intTI_type_internal_node): Likewise.
1136 (uintTI_type_internal_node): Likewise.
1137
1138 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
1139 128-bit builtin functions.
1140 (UNSPEC_VADDEUQM): Likewise.
1141 (UNSPEC_VADDECUQ): Likewise.
1142 (UNSPEC_VSUBCUQ): Likewise.
1143 (UNSPEC_VSUBEUQM): Likewise.
1144 (UNSPEC_VSUBECUQ): Likewise.
1145 (VM): Add V1TImode to vector mode iterators.
1146 (VM2): Likewise.
1147 (VI_unit): Likewise.
1148 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
1149 (altivec_vaddcuq): Likewise.
1150 (altivec_vsubuqm): Likewise.
1151 (altivec_vsubcuq): Likewise.
1152 (altivec_vaddeuqm): Likewise.
1153 (altivec_vaddecuq): Likewise.
1154 (altivec_vsubeuqm): Likewise.
1155 (altivec_vsubecuq): Likewise.
1156
1157 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
1158 mode iterators.
1159 (BOOL_128): Likewise.
1160 (BOOL_REGS_OUTPUT): Likewise.
1161 (BOOL_REGS_OP1): Likewise.
1162 (BOOL_REGS_OP2): Likewise.
1163 (BOOL_REGS_UNARY): Likewise.
1164 (BOOL_REGS_AND_CR0): Likewise.
1165
1166 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
1167 128-bit integer builtin support.
1168 (vec_vadduqm): Likewise.
1169 (vec_vaddecuq): Likewise.
1170 (vec_vaddeuqm): Likewise.
1171 (vec_vsubecuq): Likewise.
1172 (vec_vsubeuqm): Likewise.
1173 (vec_vsubcuq): Likewise.
1174 (vec_vsubuqm): Likewise.
1175
1176 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
1177 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
1178 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
1179 128-bit integer add/subtract to ISA 2.07.
1180
1181 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
1182
1183 * config/arc/arc.c (arc_predicate_delay_insns):
1184 Fix third argument passed to conditionalize_nonjump.
1185
1186 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
1187
1188 * config/aarch64/aarch64-builtins.c
1189 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
1190 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
1191 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
1192 instead of __builtin_lfloor.
1193 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
1194
1195 2014-03-12 Jakub Jelinek <jakub@redhat.com>
1196
1197 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
1198 (tree_ssa_ifcombine_bb_1): New function.
1199 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
1200 is an empty forwarder block to then_bb or vice versa and then_bb
1201 and else_bb are effectively swapped.
1202
1203 2014-03-12 Christian Bruel <christian.bruel@st.com>
1204
1205 PR target/60264
1206 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
1207 REG_CFA_DEF_CFA note.
1208 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
1209 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
1210
1211 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
1212
1213 PR tree-optimization/60454
1214 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
1215
1216 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1217
1218 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
1219 Do not define target_cpu_default2 to generic.
1220 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
1221 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
1222 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
1223
1224 2014-03-12 Jakub Jelinek <jakub@redhat.com>
1225 Marc Glisse <marc.glisse@inria.fr>
1226
1227 PR tree-optimization/60502
1228 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
1229 instead of build_low_bits_mask.
1230
1231 2014-03-12 Jakub Jelinek <jakub@redhat.com>
1232
1233 PR middle-end/60482
1234 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
1235 if there are multiple uses, but op doesn't live on E edge.
1236 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
1237 clobber stmts before __builtin_unreachable.
1238
1239 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
1240
1241 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
1242 hard_frame_pointer_rtx.
1243 * cse.c (cse_insn): Remove volatile check.
1244 * cselib.c (cselib_process_insn): Likewise.
1245 * dse.c (scan_insn): Likewise.
1246
1247 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
1248
1249 * config/arc/arc.c (conditionalize_nonjump): New function,
1250 broken out of ...
1251 (arc_ifcvt): ... this.
1252 (arc_predicate_delay_insns): Use it.
1253
1254 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
1255
1256 * config/arc/predicates.md (extend_operand): During/after reload,
1257 allow const_int_operand.
1258 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
1259 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
1260 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
1261 to "i".
1262 (umulsi3_highpart_i): Likewise.
1263
1264 2014-03-11 Richard Biener <rguenther@suse.de>
1265
1266 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
1267 Add asserts to guard possible wrong-code bugs.
1268
1269 2014-03-11 Richard Biener <rguenther@suse.de>
1270
1271 PR tree-optimization/60429
1272 PR tree-optimization/60485
1273 * tree-ssa-structalias.c (set_union_with_increment): Properly
1274 take into account all fields that overlap the shifted vars.
1275 (do_sd_constraint): Likewise.
1276 (do_ds_constraint): Likewise.
1277 (get_constraint_for_ptr_offset): Likewise.
1278
1279 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
1280
1281 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
1282 (nios2_compute_frame_layout):
1283 Add calculation of cfun->machine->fp_save_offset.
1284 (nios2_expand_prologue): Correct setting of frame pointer register
1285 in prologue.
1286 (nios2_expand_epilogue): Update recovery of stack pointer from
1287 frame pointer accordingly.
1288 (nios2_initial_elimination_offset): Update calculation of offset
1289 for eliminating to HARD_FRAME_POINTER_REGNUM.
1290
1291 2014-03-10 Jakub Jelinek <jakub@redhat.com>
1292
1293 PR ipa/60457
1294 * ipa.c (symtab_remove_unreachable_nodes): Don't call
1295 cgraph_get_create_node on VAR_DECLs.
1296
1297 2014-03-10 Richard Biener <rguenther@suse.de>
1298
1299 PR middle-end/60474
1300 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
1301
1302 2014-03-08 Douglas B Rupp <rupp@gnat.com>
1303
1304 * config/vms/vms.opt (vms_float_format): New variable.
1305
1306 2014-03-08 Tobias Burnus <burnus@net-b.de>
1307
1308 * doc/invoke.texi (-fcilkplus): Update implementation status.
1309
1310 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
1311 Richard Biener <rguenther@suse.de>
1312
1313 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
1314 consistently accross all TUs.
1315 (run_gcc): Enable -fshort-double automatically at link at link-time
1316 and disallow override.
1317
1318 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
1319
1320 PR target/58271
1321 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
1322 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
1323 if they can't be used.
1324
1325 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1326
1327 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
1328 for Solaris 11/x86 ld.
1329 * configure: Regenerate.
1330
1331 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1332
1333 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
1334 (LIB_TLS_SPEC): Save as ld_tls_libs.
1335 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
1336 (HAVE_AS_IX86_TLSLDM): New test.
1337 * configure, config.in: Regenerate.
1338 * config/i386/i386.c (legitimize_tls_address): Fall back to
1339 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
1340 cannot support TLS_MODEL_LOCAL_DYNAMIC.
1341 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
1342 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
1343
1344 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
1345
1346 * common.opt (fira-loop-pressure): Mark as optimization.
1347
1348 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
1349
1350 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
1351 an OpenMP mappable type.
1352
1353 2014-03-06 Matthias Klose <doko@ubuntu.com>
1354
1355 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
1356 MULTILIB_OSDIRNAMES is not defined.
1357
1358 2014-03-06 Jakub Jelinek <jakub@redhat.com>
1359 Meador Inge <meadori@codesourcery.com>
1360
1361 PR target/58595
1362 * config/arm/arm.c (arm_tls_symbol_p): Remove.
1363 (arm_legitimize_address): Call legitimize_tls_address for any
1364 arm_tls_referenced_p expression, handle constant addend. Call it
1365 before testing for !TARGET_ARM.
1366 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
1367
1368 2014-03-06 Richard Biener <rguenther@suse.de>
1369
1370 PR middle-end/60445
1371 PR lto/60424
1372 PR lto/60427
1373 Revert
1374 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
1375
1376 * tree-streamer.c (record_common_node): Assert we don't record
1377 nodes with type double.
1378 (preload_common_node): Skip type double, complex double and double
1379 pointer since it is now frontend dependent due to fshort-double option.
1380
1381 2014-03-06 Richard Biener <rguenther@suse.de>
1382
1383 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
1384 or -fno-lto is specified and the linker has full plugin support.
1385 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
1386 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
1387 * lto-wrapper.c (merge_and_complain): Merge compile-time
1388 optimization levels.
1389 (run_gcc): And pass it through to the link options.
1390
1391 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
1392
1393 PR debug/60381
1394 Revert:
1395 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
1396 PR debug/59992
1397 * cselib.c (remove_useless_values): Skip to avoid quadratic
1398 behavior if the condition moved from...
1399 (cselib_process_insn): ... here holds.
1400
1401 2014-03-05 Jakub Jelinek <jakub@redhat.com>
1402
1403 PR plugins/59335
1404 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
1405 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
1406
1407 PR plugins/59335
1408 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
1409 (TM_H): Add x86-tune.def.
1410
1411 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1412
1413 * config/aarch64/aarch64.c (generic_tunings):
1414 Use cortexa57_extra_costs.
1415
1416 2014-03-05 Jakub Jelinek <jakub@redhat.com>
1417
1418 PR lto/60404
1419 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
1420 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
1421 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
1422 cost for in_lto_p.
1423
1424 2014-03-04 Heiher <r@hev.cc>
1425
1426 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
1427 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
1428
1429 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
1430
1431 * config/i386/predicates.md (const2356_operand): Change to ...
1432 (const2367_operand): ... this.
1433 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
1434 const2367_operand.
1435 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1436 (*avx512pf_scatterpf<mode>sf): Ditto.
1437 (avx512pf_scatterpf<mode>df): Ditto.
1438 (*avx512pf_scatterpf<mode>df_mask): Ditto.
1439 (*avx512pf_scatterpf<mode>df): Ditto.
1440 * config/i386/i386.c (ix86_expand_builtin): Update
1441 incorrect hint operand error message.
1442
1443 2014-03-04 Richard Biener <rguenther@suse.de>
1444
1445 * lto-section-in.c (lto_get_section_data): Fix const cast.
1446
1447 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
1448
1449 * tree-streamer.c (record_common_node): Assert we don't record
1450 nodes with type double.
1451 (preload_common_node): Skip type double, complex double and double
1452 pointer since it is now frontend dependent due to fshort-double option.
1453
1454 2014-03-04 Richard Biener <rguenther@suse.de>
1455
1456 PR lto/60405
1457 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
1458 (lto_input_toplevel_asms): Likewise.
1459 * lto-section-in.c (lto_get_section_data): Instead do it here
1460 for every section.
1461
1462 2014-03-04 Richard Biener <rguenther@suse.de>
1463
1464 PR tree-optimization/60382
1465 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
1466 dead PHIs a reduction.
1467
1468 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
1469
1470 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
1471 hint value.
1472 (_mm_prefetch): Move out of GCC target("sse") pragma.
1473 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
1474 GCC target("prfchw") pragma.
1475 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
1476 for locality <= 2.
1477 * config/i386/i386.c (ix86_option_override_internal): Enable
1478 -mprfchw with -mprefetchwt1.
1479
1480 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
1481
1482 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
1483 Mark as varying.
1484
1485 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
1486
1487 * opts.h (CL_PCH_IGNORE): Define.
1488 * targhooks.c (option_affects_pch_p):
1489 Return false for options that have CL_PCH_IGNORE set.
1490 * opt-functions.awk: Process PchIgnore.
1491 * doc/options.texi: Document PchIgnore.
1492
1493 * config/arc/arc.opt (misize): Add PchIgnore property.
1494
1495 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1496
1497 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
1498 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
1499 constraint on constants to permit them being loaded into
1500 GENERAL_REGS or BASE_REGS.
1501
1502 2014-03-03 Nick Clifton <nickc@redhat.com>
1503
1504 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
1505 anti-cacnonical alternatives.
1506 (negandhi3_real): New pattern.
1507 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
1508
1509 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1510
1511 * config/avr/avr-mcus.def: Remove atxmega16x1.
1512 * config/avr/avr-tables.opt: Regenerate.
1513 * config/avr/t-multilib: Regenerate.
1514 * doc/avr-mmcu.texi: Regenerate.
1515
1516 2014-03-03 Tobias Grosser <tobias@grosser.es>
1517 Mircea Namolaru <mircea.namolaru@inria.fr>
1518
1519 PR tree-optimization/58028
1520 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
1521 scalar dimensions.
1522
1523 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1524
1525 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
1526 not handled by recognizers.
1527
1528 2014-03-03 Jakub Jelinek <jakub@redhat.com>
1529
1530 PR middle-end/60175
1531 * function.c (expand_function_end): Don't emit
1532 clobber_return_register sequence if clobber_after is a BARRIER.
1533 * cfgexpand.c (construct_exit_block): Append instructions before
1534 return_label to prev_bb.
1535
1536 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1537
1538 * config/rs6000/constraints.md: Document reserved use of "wc".
1539
1540 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
1541
1542 PR ipa/60150
1543 * ipa.c (function_and_variable_visibility): When dissolving comdat
1544 group, also set all symbols to local.
1545
1546 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
1547
1548 PR ipa/60306
1549
1550 Revert:
1551 2013-12-14 Jan Hubicka <jh@suse.cz>
1552 PR middle-end/58477
1553 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
1554
1555 2014-03-02 Jon Beniston <jon@beniston.com>
1556
1557 PR bootstrap/48230
1558 PR bootstrap/50927
1559 PR bootstrap/52466
1560 PR target/46898
1561 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
1562 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
1563 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
1564 (simple_return, *simple_return): New patterns
1565 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
1566 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
1567
1568 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
1569
1570 * dwarf2out.c (gen_subprogram_die): Tidy.
1571
1572 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
1573
1574 PR target/60071
1575 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
1576 (*mov_t_msb_neg_negc): ... this new insn.
1577
1578 2014-02-28 Jason Merrill <jason@redhat.com>
1579
1580 PR c++/58678
1581 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
1582 function.
1583
1584 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
1585
1586 PR c++/60314
1587 * dwarf2out.c (decltype_auto_die): New static.
1588 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
1589 (gen_type_die_with_usage): Handle 'decltype(auto)'.
1590 (is_cxx_auto): Likewise.
1591
1592 2014-02-28 Ian Bolton <ian.bolton@arm.com>
1593
1594 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
1595 we are not using general regs only.
1596
1597 2014-02-28 Richard Biener <rguenther@suse.de>
1598
1599 PR target/60280
1600 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
1601 previous fix and only allow to remove trivial pre-headers
1602 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
1603 (remove_forwarder_block): Properly update the latch of a loop.
1604
1605 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
1606
1607 PR debug/59992
1608 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
1609 (cselib_preserved_hash_table): New.
1610 (preserve_constants_and_equivs): Move preserved vals to it.
1611 (cselib_find_slot): Look it up first.
1612 (cselib_init): Initialize it.
1613 (cselib_finish): Release it.
1614 (dump_cselib_table): Dump it.
1615
1616 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
1617
1618 PR debug/59992
1619 * cselib.c (remove_useless_values): Skip to avoid quadratic
1620 behavior if the condition moved from...
1621 (cselib_process_insn): ... here holds.
1622
1623 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
1624
1625 PR debug/57232
1626 * var-tracking.c (vt_initialize): Apply the same condition to
1627 preserve the CFA base value.
1628
1629 2014-02-28 Joey Ye <joey.ye@arm.com>
1630
1631 PR target/PR60169
1632 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
1633 if reload in progress or completed.
1634
1635 2014-02-28 Tobias Burnus <burnus@net-b.de>
1636
1637 PR middle-end/60147
1638 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
1639 NAMELIST_DECL.
1640
1641 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
1642
1643 * doc/tm.texi.in (Condition Code Status): Update documention for
1644 relative locations of cc0-setter and cc0-user.
1645
1646 2014-02-27 Jeff Law <law@redhat.com>
1647
1648 PR rtl-optimization/52714
1649 * combine.c (try_combine): When splitting an unrecognized PARALLEL
1650 into two independent simple sets, if I3 is a jump, ensure the
1651 pattern we place into I3 is a (set (pc) ...).
1652
1653 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
1654 Jeff Law <law@redhat.com>
1655
1656 PR rtl-optimization/49847
1657 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
1658 are in different blocks.
1659 * doc/tm.texi (Condition Code Status): Update documention for
1660 relative locations of cc0-setter and cc0-user.
1661
1662 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
1663
1664 PR target/59222
1665 * lra.c (lra_emit_add): Check SUBREG too.
1666
1667 2014-02-27 Andreas Schwab <schwab@suse.de>
1668
1669 * config/m68k/m68k.c (m68k_option_override): Disable
1670 -flive-range-shrinkage for classic m68k.
1671 (m68k_override_options_after_change): Likewise.
1672
1673 2014-02-27 Marek Polacek <polacek@redhat.com>
1674
1675 PR middle-end/59223
1676 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
1677 -Wmaybe-uninitialized.
1678
1679 2014-02-27 Alan Modra <amodra@gmail.com>
1680
1681 PR target/57936
1682 * reload1.c (emit_input_reload_insns): When reload_override_in,
1683 set old to rl->in_reg when rl->in_reg is a subreg.
1684
1685 2014-02-26 Richard Biener <rguenther@suse.de>
1686
1687 PR bootstrap/60343
1688 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
1689
1690 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
1691
1692 * common/config/i386/predicates.md (const1256_operand): Remove.
1693 (const2356_operand): New.
1694 (const_1_to_2_operand): Remove.
1695 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
1696 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
1697 (*avx512pf_gatherpf<mode>sf): Ditto.
1698 (avx512pf_gatherpf<mode>df): Ditto.
1699 (*avx512pf_gatherpf<mode>df_mask): Ditto.
1700 (*avx512pf_gatherpf<mode>df): Ditto.
1701 (avx512pf_scatterpf<mode>sf): Ditto.
1702 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
1703 (*avx512pf_scatterpf<mode>sf): Ditto.
1704 (avx512pf_scatterpf<mode>df): Ditto.
1705 (*avx512pf_scatterpf<mode>df_mask): Ditto.
1706 (*avx512pf_scatterpf<mode>df): Ditto.
1707 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
1708
1709 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
1710
1711 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
1712 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
1713 (_mm512_mask_testn_epi64_mask): Move to ...
1714 * config/i386/avx512cdintrin.h: Here.
1715 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
1716 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
1717 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
1718 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
1719 TARGET_AVX512F from TARGET_AVX512CD.
1720
1721 2014-02-26 Richard Biener <rguenther@suse.de>
1722
1723 PR ipa/60327
1724 * ipa.c (walk_polymorphic_call_targets): Properly guard
1725 call to inline_update_overall_summary.
1726
1727 2014-02-26 Bin Cheng <bin.cheng@arm.com>
1728
1729 PR target/60280
1730 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
1731 and latches only if requested. Fix latch if it is removed.
1732 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
1733 LOOPS_HAVE_PREHEADERS.
1734
1735 2014-02-25 Andrew Pinski <apinski@cavium.com>
1736
1737 * builtins.c (expand_builtin_thread_pointer): Create a new target
1738 when the target is NULL.
1739
1740 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
1741
1742 PR rtl-optimization/60317
1743 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
1744 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
1745 * lra-assigns.c: Include params.h.
1746 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
1747 other reload pseudos considerations.
1748
1749 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1750
1751 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
1752 to use canonical form for nor<mode>3.
1753
1754 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1755
1756 PR target/55426
1757 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
1758 conversions.
1759
1760 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
1761
1762 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
1763 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
1764 (ix86_handle_option): Handle OPT_mprefetchwt1.
1765 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
1766 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1767 PREFETCHWT1 CPUID.
1768 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
1769 OPTION_MASK_ISA_PREFETCHWT1.
1770 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
1771 (PTA_PREFETCHWT1): New.
1772 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
1773 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
1774 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
1775 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
1776 (*prefetch_avx512pf_<mode>_: Change into ...
1777 (*prefetch_prefetchwt1_<mode>: This.
1778 * config/i386/i386.opt (mprefetchwt1): New.
1779 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
1780 (_mm_prefetch): Handle intent to write.
1781 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
1782
1783 2014-02-25 Richard Biener <rguenther@suse.de>
1784
1785 PR middle-end/60291
1786 * emit-rtl.c (mem_attrs_htab): Remove.
1787 (mem_attrs_htab_hash): Likewise.
1788 (mem_attrs_htab_eq): Likewise.
1789 (set_mem_attrs): Always allocate new mem-attrs when something changed.
1790 (init_emit_once): Do not allocate mem_attrs_htab.
1791
1792 2014-02-25 Richard Biener <rguenther@suse.de>
1793
1794 PR lto/60319
1795 * lto-opts.c (lto_write_options): Output non-explicit conservative
1796 -fwrapv, -fno-trapv and -fno-strict-overflow.
1797 * lto-wrapper.c (merge_and_complain): Handle merging those options.
1798 (run_gcc): And pass them through.
1799
1800 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
1801
1802 * sel-sched.c (calculate_new_fences): New parameter ptime.
1803 Calculate it as a maximum over all fence cycles.
1804 (sel_sched_region_2): Adjust the call to calculate_new_fences.
1805 Print the final schedule timing when sched_verbose.
1806
1807 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
1808
1809 PR rtl-optimization/60292
1810 * sel-sched.c (fill_vec_av_set): Do not reset target availability
1811 bit fot the fence instruction.
1812
1813 2014-02-24 Alangi Derick <alangiderick@gmail.com>
1814
1815 * calls.h: Fix typo in comment.
1816
1817 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
1818
1819 * config/pa/pa.c (pa_output_move_double): Don't valididate when
1820 adjusting offsetable addresses.
1821
1822 2014-02-24 Guozhi Wei <carrot@google.com>
1823
1824 * sparseset.h (sparseset_pop): Fix the wrong index.
1825
1826 2014-02-24 Walter Lee <walt@tilera.com>
1827
1828 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
1829 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
1830 triplet.
1831 * common/config/tilegx/tilegx-common.c
1832 (TARGET_DEFAULT_TARGET_FLAGS): Define.
1833 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
1834 (LINK_SPEC): Ditto.
1835 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
1836 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
1837 (tilegx_gimplify_va_arg_expr): Handle big endian.
1838 (tilegx_expand_unaligned_load): Ditto.
1839 (tilegx_expand_unaligned_store): Ditto.
1840 (TARGET_RETURN_IN_MSB): New.
1841 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
1842 (TARGET_ENDIAN_DEFAULT): New.
1843 (TARGET_BIG_ENDIAN): Handle big endian.
1844 (BYTES_BIG_ENDIAN): Ditto.
1845 (WORDS_BIG_ENDIAN): Ditto.
1846 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
1847 (ENDIAN_SPEC): New.
1848 (EXTRA_SPECS): New.
1849 * config/tilegx/tilegx.md (extv): Handle big endian.
1850 (extzv): Ditto.
1851 (insn_st<n>): Ditto.
1852 (insn_st<n>_add<bitsuffix>): Ditto.
1853 (insn_stnt<n>): Ditto.
1854 (insn_stnt<n>_add<bitsuffix>):Ditto.
1855 (vec_interleave_highv8qi): Handle big endian.
1856 (vec_interleave_highv8qi_be): New.
1857 (vec_interleave_highv8qi_le): New.
1858 (insn_v1int_h): Handle big endian.
1859 (vec_interleave_lowv8qi): Handle big endian.
1860 (vec_interleave_lowv8qi_be): New.
1861 (vec_interleave_lowv8qi_le): New.
1862 (insn_v1int_l): Handle big endian.
1863 (vec_interleave_highv4hi): Handle big endian.
1864 (vec_interleave_highv4hi_be): New.
1865 (vec_interleave_highv4hi_le): New.
1866 (insn_v2int_h): Handle big endian.
1867 (vec_interleave_lowv4hi): Handle big endian.
1868 (vec_interleave_lowv4hi_be): New.
1869 (vec_interleave_lowv4hi_le): New.
1870 (insn_v2int_l): Handle big endian.
1871 (vec_interleave_highv2si): Handle big endian.
1872 (vec_interleave_highv2si_be): New.
1873 (vec_interleave_highv2si_le): New.
1874 (insn_v4int_h): Handle big endian.
1875 (vec_interleave_lowv2si): Handle big endian.
1876 (vec_interleave_lowv2si_be): New.
1877 (vec_interleave_lowv2si_le): New.
1878 (insn_v4int_l): Handle big endian.
1879 * config/tilegx/tilegx.opt (mbig-endian): New option.
1880 (mlittle-endian): New option.
1881 * doc/install.texi: Document tilegxbe-linux.
1882 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
1883
1884 2014-02-24 Martin Jambor <mjambor@suse.cz>
1885
1886 PR ipa/60266
1887 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
1888 there are no parameter descriptors.
1889
1890 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
1891
1892 PR rtl-optimization/60268
1893 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
1894 initialization to ...
1895 (sched_rgn_init): ... here.
1896 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
1897
1898 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1899
1900 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
1901 names.
1902
1903 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
1904
1905 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
1906 definition.
1907
1908 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1909
1910 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
1911 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
1912
1913 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
1914
1915 * config/microblaze/predicates.md: Add cmp_op predicate.
1916 * config/microblaze/microblaze.md: Add branch_compare instruction
1917 which uses cmp_op predicate and emits cmp insn before branch.
1918 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
1919 to microblaze_expand_conditional_branch and consolidate logic.
1920 (microblaze_expand_conditional_branch): emit branch_compare
1921 insn instead of handling cmp op separate from branch insn.
1922
1923 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1924
1925 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
1926 to permit subregs.
1927
1928 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1929
1930 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
1931 define_insn with define_expand and new define_insn
1932 *altivec_lve<VI_char>x_internal.
1933 (altivec_stve<VI_char>x): Replace define_insn with define_expand
1934 and new define_insn *altivec_stve<VI_char>x_internal.
1935 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
1936 prototype.
1937 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
1938 lve*x built-ins.
1939 (altivec_expand_stvex_be): New function.
1940
1941 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
1942
1943 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
1944 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
1945 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
1946 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
1947
1948 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
1949
1950 PR target/60298
1951 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
1952 instead of emit_move_insn.
1953
1954 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1955
1956 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
1957 vspltw with vsldoi.
1958 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
1959 gen_altivec_vsumsws.
1960
1961 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1962
1963 * config/rs6000/altivec.md (altivec_lvxl): Rename as
1964 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
1965 (altivec_lvxl_<mode>): New define_expand incorporating
1966 -maltivec=be semantics where needed.
1967 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
1968 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
1969 semantics where needed.
1970 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
1971 (altivec_stvx_<mode>): New define_expand incorporating
1972 -maltivec=be semantics where needed.
1973 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
1974 VM2 iterator instead of V4SI.
1975 (altivec_stvxl_<mode>): New define_expand incorporating
1976 -maltivec=be semantics where needed.
1977 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
1978 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
1979 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
1980 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
1981 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
1982 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
1983 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
1984 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
1985 ALTIVEC_BUILTIN_STVXL.
1986 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
1987 (altivec_expand_stvx_be): Likewise.
1988 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
1989 (altivec_expand_lvx_be): Likewise.
1990 (altivec_expand_stvx_be): Likewise.
1991 (altivec_expand_builtin): Add cases for
1992 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
1993 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
1994 (altivec_init_builtins): Add definitions for
1995 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
1996 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
1997
1998 2014-02-21 Catherine Moore <clm@codesourcery.com>
1999
2000 * doc/invoke.texi (mvirt, mno-virt): Document.
2001 * config/mips/mips.opt (mvirt): New option.
2002 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
2003
2004 2014-02-21 Richard Biener <rguenther@suse.de>
2005
2006 PR tree-optimization/60276
2007 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
2008 (STMT_VINFO_MIN_NEG_DIST): New macro.
2009 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
2010 STMT_VINFO_MIN_NEG_DIST.
2011 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
2012 made for negative dependence distances still hold.
2013
2014 2014-02-21 Richard Biener <rguenther@suse.de>
2015
2016 PR middle-end/60291
2017 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
2018 DECL_INITIAL for globals not in the current function context.
2019
2020 2014-02-21 Jakub Jelinek <jakub@redhat.com>
2021
2022 PR tree-optimization/56490
2023 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
2024 * tree-ssa-uninit.c: Include params.h.
2025 (compute_control_dep_chain): Add num_calls argument, return false
2026 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
2027 num_calls to recursive call.
2028 (find_predicates): Change dep_chain into normal array,
2029 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
2030 variable and adjust compute_control_dep_chain caller.
2031 (find_def_preds): Likewise.
2032
2033 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
2034
2035 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
2036 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
2037
2038 2014-02-21 Nick Clifton <nickc@redhat.com>
2039
2040 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
2041 (pushhi1): Likewise.
2042 (popqi1): Add mode to pre_dec.
2043 (pophi1): Likewise.
2044
2045 2014-02-21 Jakub Jelinek <jakub@redhat.com>
2046
2047 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
2048 mode for mask of V8SFmode permutation.
2049
2050 2014-02-20 Richard Henderson <rth@redhat.com>
2051
2052 PR c++/60272
2053 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
2054 a new pseudo for OLDVAL.
2055
2056 2014-02-20 Jakub Jelinek <jakub@redhat.com>
2057
2058 PR target/57896
2059 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
2060 gen_reg_rtx if d->testing_p.
2061 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
2062 if d->testing_p and we will certainly return true.
2063 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
2064 if d->testing_p.
2065
2066 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
2067
2068 * emit-rtl.c (gen_reg_rtx): Assert that
2069 crtl->emit.regno_pointer_align_length is non-zero.
2070
2071 2014-02-20 Richard Henderson <rth@redhat.com>
2072
2073 PR c++/60272
2074 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
2075 on failure the store back into EXPECT.
2076
2077 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
2078 Sandra Loosemore <sandra@codesourcery.com>
2079
2080 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
2081 * config/nios2/nios2.c (nios2_function_profiler): Add
2082 -fPIC (flag_pic == 2) support.
2083 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
2084 (nios2_large_offset_p): New function.
2085 (nios2_unspec_reloc_p): Move up position, update to use
2086 nios2_large_offset_p.
2087 (nios2_unspec_address): Remove function.
2088 (nios2_unspec_offset): New function.
2089 (nios2_large_got_address): New function.
2090 (nios2_got_address): Add large offset support.
2091 (nios2_legitimize_tls_address): Update usage of removed and new
2092 functions.
2093 (nios2_symbol_binds_local_p): New function.
2094 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
2095 (nios2_legitimize_address): Update to use nios2_large_offset_p.
2096 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
2097 (nios2_print_operand): Merge H/L processing, add hiadj/lo
2098 processing for (const (unspec ...)).
2099 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
2100
2101 2014-02-20 Richard Biener <rguenther@suse.de>
2102
2103 * tree-cfg.c (replace_uses_by): Mark altered BBs before
2104 doing the substitution.
2105 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
2106
2107 2014-02-20 Martin Jambor <mjambor@suse.cz>
2108
2109 PR ipa/55260
2110 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
2111 info when checking whether lattices are bottom.
2112
2113 2014-02-20 Richard Biener <rguenther@suse.de>
2114
2115 PR middle-end/60221
2116 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
2117 regions at -O0.
2118
2119 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
2120
2121 PR ipa/58555
2122 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
2123 parameter specifying the scaling.
2124 (inline_call): Update.
2125 (want_inline_recursively): Guard division by zero.
2126 (recursive_inlining): Update.
2127 * ipa-inline.h (clone_inlined_nodes): Update.
2128
2129 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
2130
2131 PR target/60204
2132 * config/i386/i386.c (classify_argument): Pass structures of size
2133 64 bytes or less in register.
2134
2135 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
2136 Kirill Yukhin <kirill.yukhin@intel.com>
2137
2138 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
2139 (_mm_rcp28_round_ss): Ditto.
2140 (_mm_rsqrt28_round_sd): Ditto.
2141 (_mm_rsqrt28_round_ss): Ditto.
2142 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
2143 (_mm_rcp14_round_ss): Ditto.
2144 (_mm_rsqrt14_round_sd): Ditto.
2145 (_mm_rsqrt14_round_ss): Ditto.
2146 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
2147 the first input operand, get rid of match_dup.
2148 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
2149 attribute to sse.
2150 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
2151 Ditto.
2152 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
2153 operand as the first input operand, set type attribute.
2154 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
2155 Set type attribute.
2156 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
2157 operand as the first input operand, set type attribute.
2158
2159 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2160
2161 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
2162 bit of zero.
2163
2164 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
2165
2166 PR target/60207
2167 * config/i386/i386.c (construct_container): Remove TFmode check
2168 for X86_64_INTEGER_CLASS.
2169
2170 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
2171
2172 PR target/59794
2173 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
2174 only when -Wpsabi is enabled.
2175
2176 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
2177
2178 PR target/59799
2179 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
2180 passing arrays in registers are the same as for structs, so remove the
2181 special case for them.
2182
2183 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
2184
2185 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
2186 destination type, extract only the valid bits if the source type is not
2187 integral and has a different mode.
2188
2189 2014-02-19 Richard Biener <rguenther@suse.de>
2190
2191 PR ipa/60243
2192 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
2193 for all calls.
2194
2195 2014-02-19 Richard Biener <rguenther@suse.de>
2196
2197 PR ipa/60243
2198 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
2199 (ipa_modify_call_arguments): Emit an argument load explicitely and
2200 preserve virtual SSA form there and for the replacement call.
2201 Do not update SSA form nor free dominance info.
2202
2203 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
2204
2205 * ipa.c (function_and_variable_visibility): Also clear WEAK
2206 flag when disolving COMDAT_GROUP.
2207
2208 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
2209
2210 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
2211 * ipa-prop.c (ipa_set_jf_known_type): Return early when
2212 not devirtualizing.
2213 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
2214 do more sanity checks.
2215 (detect_type_change): Return true when giving up early.
2216 (compute_complex_assign_jump_func): Fix type parameter of
2217 ipa_set_ancestor_jf.
2218 (compute_complex_ancestor_jump_func): Likewise.
2219 (update_jump_functions_after_inlining): Fix updating of
2220 ancestor function.
2221 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
2222
2223 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
2224
2225 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
2226 inline clones when edge disappears.
2227
2228 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2229
2230 PR target/60203
2231 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
2232 Split 64-bit moves into 2 patterns. Do not allow the use of
2233 direct move for TDmode in little endian, since the decimal value
2234 has little endian bytes within a word, but the 64-bit pieces are
2235 ordered in a big endian fashion, and normal subreg's of TDmode are
2236 not allowed.
2237 (mov<mode>_64bit_dm): Likewise.
2238 (movtd_64bit_nodm): Likewise.
2239
2240 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
2241
2242 PR tree-optimization/60174
2243 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
2244 statement of an SSA_NAME that occurs in an abnormal PHI node.
2245
2246 2014-02-18 Jakub Jelinek <jakub@redhat.com>
2247
2248 PR sanitizer/60142
2249 * final.c (SEEN_BB): Remove.
2250 (SEEN_NOTE, SEEN_EMITTED): Renumber.
2251 (final_scan_insn): Don't force_source_line on second
2252 NOTE_INSN_BASIC_BLOCK.
2253
2254 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
2255
2256 PR target/60205
2257 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
2258 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
2259 (type_natural_mode): Warn ABI change when %zmm register is not
2260 available for AVX512F vector value passing.
2261
2262 2014-02-18 Kai Tietz <ktietz@redhat.com>
2263
2264 PR target/60193
2265 * config/i386/i386.c (ix86_expand_prologue): Use value in
2266 rax register as displacement when restoring %r10 or %rax.
2267 Fix wrong offset when restoring both registers.
2268
2269 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
2270
2271 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
2272 assertion with conditional return.
2273
2274 2014-02-18 Jakub Jelinek <jakub@redhat.com>
2275 Uros Bizjak <ubizjak@gmail.com>
2276
2277 PR driver/60233
2278 * config/i386/driver-i386.c (host_detect_local_cpu): If
2279 YMM state is not saved by the OS, also clear has_f16c. Move
2280 CPUID 0x80000001 handling before YMM state saving checking.
2281
2282 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
2283
2284 PR rtl-optimization/58960
2285 * haifa-sched.c (alloc_global_sched_pressure_data): New,
2286 factored out from ...
2287 (sched_init): ... here.
2288 (free_global_sched_pressure_data): New, factored out from ...
2289 (sched_finish): ... here.
2290 * sched-int.h (free_global_sched_pressure_data): Declare.
2291 * sched-rgn.c (nr_regions_initial): New static global.
2292 (haifa_find_rgns): Initialize it.
2293 (schedule_region): Disable sched-pressure for the newly
2294 generated regions.
2295
2296 2014-02-17 Richard Biener <rguenther@suse.de>
2297
2298 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
2299 release SSA defs of pattern stmts.
2300
2301 2014-02-17 Richard Biener <rguenther@suse.de>
2302
2303 * tree-inline.c (expand_call_inline): Release the virtual
2304 operand defined by the call we are about to inline.
2305
2306 2014-02-17 Richard Biener <rguenther@suse.de>
2307
2308 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
2309
2310 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
2311 Ilya Tocar <ilya.tocar@intel.com>
2312
2313 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
2314 arguments order in builtin.
2315 (_mm512_permutexvar_epi64): Ditto.
2316 (_mm512_mask_permutexvar_epi64): Ditto
2317 (_mm512_maskz_permutexvar_epi32): Ditto
2318 (_mm512_permutexvar_epi32): Ditto
2319 (_mm512_mask_permutexvar_epi32): Ditto
2320
2321 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2322
2323 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
2324 (p8_vmrgow): Likewise.
2325
2326 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2327
2328 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
2329 endian targets.
2330
2331 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2332
2333 PR target/60203
2334 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
2335 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
2336 into 64-bit and 32-bit moves. On 64-bit moves, add support for
2337 using direct move instructions on ISA 2.07. Also adjust
2338 instruction length for 64-bit.
2339 (mov<mode>_64bit, TFmode/TDmode): Likewise.
2340 (mov<mode>_32bit, TFmode/TDmode): Likewise.
2341
2342 2014-02-15 Alan Modra <amodra@gmail.com>
2343
2344 PR target/58675
2345 PR target/57935
2346 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
2347 find_replacement on parts of insn rtl that might be reloaded.
2348
2349 2014-02-15 Richard Biener <rguenther@suse.de>
2350
2351 PR tree-optimization/60183
2352 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
2353 (tree_ssa_phiprop): Calculate and free post-dominators.
2354
2355 2014-02-14 Jeff Law <law@redhat.com>
2356
2357 PR rtl-optimization/60131
2358 * ree.c (get_extended_src_reg): New function.
2359 (combine_reaching_defs): Use it rather than assuming location of REG.
2360 (find_and_remove_re): Verify first operand of extension is
2361 a REG before adding the insns to the copy list.
2362
2363 2014-02-14 Roland McGrath <mcgrathr@google.com>
2364
2365 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
2366 * configure: Regenerated.
2367 * config.in: Regenerated.
2368 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
2369 instead of ASM_SHORT.
2370
2371 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
2372 Richard Earnshaw <rearnsha@arm.com>
2373
2374 PR rtl-optimization/59535
2375 * lra-constraints.c (process_alt_operands): Encourage alternative
2376 when unassigned pseudo class is superset of the alternative class.
2377 (inherit_reload_reg): Don't inherit when optimizing for code size.
2378 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
2379 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
2380 modes not less than 4 for Thumb1.
2381
2382 2014-02-14 Kyle McMartin <kyle@redhat.com>
2383
2384 PR pch/60010
2385 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
2386
2387 2014-02-14 Richard Biener <rguenther@suse.de>
2388
2389 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
2390 (get_frame_arg): Drop the assert with langhook types_compatible_p.
2391 Do not strip INDIRECT_REFs.
2392
2393 2014-02-14 Richard Biener <rguenther@suse.de>
2394
2395 PR lto/60179
2396 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
2397 DECL_FUNCTION_SPECIFIC_TARGET.
2398 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
2399 * tree-streamer-out.c (pack_ts_target_option): Remove.
2400 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
2401 (write_ts_function_decl_tree_pointers): Do not stream
2402 DECL_FUNCTION_SPECIFIC_TARGET.
2403 * tree-streamer-in.c (unpack_ts_target_option): Remove.
2404 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
2405 (lto_input_ts_function_decl_tree_pointers): Do not stream
2406 DECL_FUNCTION_SPECIFIC_TARGET.
2407
2408 2014-02-14 Jakub Jelinek <jakub@redhat.com>
2409
2410 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
2411 (get_initial_def_for_induction, vectorizable_induction): Ignore
2412 debug stmts when looking for exit_phi.
2413 (vectorizable_live_operation): Fix up condition.
2414
2415 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
2416
2417 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
2418 nreverse() because it changes the content of original tree list.
2419
2420 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
2421
2422 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
2423 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
2424
2425 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
2426
2427 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
2428 GNU coding standards.
2429
2430 2014-02-13 Jakub Jelinek <jakub@redhat.com>
2431
2432 PR debug/60152
2433 * dwarf2out.c (gen_subprogram_die): Don't call
2434 add_calling_convention_attribute if subr_die is old_die.
2435
2436 2014-02-13 Sharad Singhai <singhai@google.com>
2437
2438 * doc/optinfo.texi: Fix order of nodes.
2439
2440 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
2441
2442 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
2443 operands[2], not operands[3].
2444
2445 2014-02-13 Richard Biener <rguenther@suse.de>
2446
2447 PR bootstrap/59878
2448 * doc/install.texi (ISL): Update recommended version to 0.12.2,
2449 mention the possibility of an in-tree build.
2450 (CLooG): Update recommended version to 0.18.1, mention the
2451 possibility of an in-tree build and clarify that the ISL
2452 bundled with CLooG does not work.
2453
2454 2014-02-13 Jakub Jelinek <jakub@redhat.com>
2455
2456 PR target/43546
2457 * expr.c (compress_float_constant): If x is a hard register,
2458 extend into a pseudo and then move to x.
2459
2460 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
2461
2462 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
2463 caused by bad second argument to warning_at() with -mhotpatch and
2464 nested functions (e.g. with gfortran).
2465
2466 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
2467
2468 * opts.c (option_name): Remove "enabled by default" rider.
2469
2470 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
2471
2472 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
2473
2474 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
2475 Uros Bizjak <ubizjak@gmail.com>
2476
2477 PR target/60151
2478 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
2479 * configure: Regenerated.
2480
2481 2014-02-12 Richard Biener <rguenther@suse.de>
2482
2483 * vec.c (vec_prefix::calculate_allocation): Move as
2484 inline variant to vec.h.
2485 (vec_prefix::calculate_allocation_1): New out-of-line version.
2486 * vec.h (vec_prefix::calculate_allocation_1): Declare.
2487 (vec_prefix::m_has_auto_buf): Rename to ...
2488 (vec_prefix::m_using_auto_storage): ... this.
2489 (vec_prefix::calculate_allocation): Inline the easy cases
2490 and dispatch to calculate_allocation_1 which doesn't need the
2491 prefix address.
2492 (va_heap::reserve): Use gcc_checking_assert.
2493 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
2494 m_using_auto_storage.
2495 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
2496 member and adjust.
2497 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
2498 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
2499 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
2500
2501 2014-02-12 Richard Biener <rguenther@suse.de>
2502
2503 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
2504 when we found a dependence.
2505
2506 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
2507
2508 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
2509 common code...
2510 (maybe_fold_stmt): ... into this new function.
2511 * omp-low.c (lower_omp): Update comment.
2512
2513 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
2514 last use.
2515
2516 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
2517 dereference.
2518
2519 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
2520
2521 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
2522 identifiers in comments.
2523 (cortexa53_extra_costs): Likewise.
2524 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
2525 (cortexa7_extra_costs): Likewise.
2526 (cortexa12_extra_costs): Likewise.
2527 (cortexa15_extra_costs): Likewise.
2528 (v7m_extra_costs): Likewise.
2529
2530 2014-02-12 Richard Biener <rguenther@suse.de>
2531
2532 PR middle-end/60092
2533 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
2534 of posix_memalign being successful.
2535 (lower_stmt): Restrict lowering of posix_memalign to when
2536 -ftree-bit-ccp is enabled.
2537
2538 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2539
2540 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
2541 arg_loc.
2542 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2543
2544 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
2545
2546 PR rtl-optimization/60116
2547 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
2548 other_insn once the combination has been validated.
2549
2550 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
2551
2552 PR lto/59468
2553 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
2554 and wrapper.
2555 * ipa-devirt.c: Include demangle.h
2556 (odr_violation_reported): New static variable.
2557 (add_type_duplicate): Update odr_violations.
2558 (maybe_record_node): Add completep parameter; update it.
2559 (record_target_from_binfo): Add COMPLETEP parameter;
2560 update it as needed.
2561 (possible_polymorphic_call_targets_1): Likewise.
2562 (struct polymorphic_call_target_d): Add nonconstruction_targets;
2563 rename FINAL to COMPLETE.
2564 (record_targets_from_bases): Sanity check we found the binfo;
2565 fix COMPLETEP updating.
2566 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
2567 parameter, fix computing of COMPLETEP.
2568 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
2569 at LTO time do demangling.
2570 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
2571 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
2572 parameter.
2573 (gimple_get_virt_method_for_binfo): Likewise.
2574 * gimple-fold.h (gimple_get_virt_method_for_binfo,
2575 gimple_get_virt_method_for_vtable): Update prototypes.
2576
2577 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
2578
2579 PR target/49008
2580 * genautomata.c (add_presence_absence): Fix typo with
2581 {final_}presence_list.
2582
2583 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2584
2585 PR target/60137
2586 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
2587 for VSX/Altivec vectors that land in GPR registers.
2588
2589 2014-02-11 Richard Henderson <rth@redhat.com>
2590 Jakub Jelinek <jakub@redhat.com>
2591
2592 PR debug/59776
2593 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
2594 around drhs if type conversion to lacc->type is not useless.
2595
2596 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2597
2598 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
2599 tuning struct.
2600 (cortex-a57.cortex-a53): Likewise.
2601 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
2602
2603 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2604
2605 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
2606 arm_restrict_it.
2607
2608 2014-02-11 Renlin Li <Renlin.Li@arm.com>
2609
2610 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
2611 add_options_for_arm_vfp3.
2612
2613 2014-02-11 Jeff Law <law@redhat.com>
2614
2615 PR middle-end/54041
2616 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
2617 object with an undesirable mode.
2618
2619 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2620
2621 PR libgomp/60107
2622 * config/i386/sol2-9.h: New file.
2623 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
2624 *-*-solaris2.9*): Use it.
2625
2626 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
2627
2628 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
2629 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
2630
2631 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
2632
2633 * config/microblaze/microblaze.c: Extend mcpu version format
2634
2635 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
2636
2637 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
2638
2639 2014-02-10 Richard Henderson <rth@redhat.com>
2640
2641 PR target/59927
2642 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
2643 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
2644 ms-abi vs -mno-accumulate-outgoing-args.
2645 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
2646 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
2647 respect to ms-abi.
2648
2649 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
2650
2651 PR middle-end/60080
2652 * cfgexpand.c (expand_asm_operands): Attach source location to
2653 ASM_INPUT rtx objects.
2654 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
2655
2656 2014-02-10 Nick Clifton <nickc@redhat.com>
2657
2658 * config/mn10300/mn10300.c (popcount): New function.
2659 (mn10300_expand_prologue): Include saved registers in stack usage
2660 count.
2661
2662 2014-02-10 Jeff Law <law@redhat.com>
2663
2664 PR middle-end/52306
2665 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
2666 when changing the SET_DEST of a prior insn to avoid an input reload.
2667
2668 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2669
2670 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
2671 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
2672 -mcall-openbsd, or -mcall-linux.
2673 (CC1_ENDIAN_BIG_SPEC): Remove.
2674 (CC1_ENDIAN_LITTLE_SPEC): Remove.
2675 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2676 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
2677 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
2678 and %cc1_endian_default.
2679 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
2680
2681 2014-02-10 Richard Biener <rguenther@suse.de>
2682
2683 PR tree-optimization/60115
2684 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
2685 MEM_REF handling. Properly verify that the accesses are not
2686 out of the objects bound.
2687
2688 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2689
2690 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
2691 coretex to cortex.
2692
2693 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
2694
2695 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
2696 proper constants and fix formatting.
2697 (possible_polymorphic_call_targets): Fix formatting.
2698
2699 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
2700 Ilya Tocar <ilya.tocar@intel.com>
2701
2702 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
2703 (_mm512_loadu_epi32): Renamed into...
2704 (_mm512_loadu_si512): This.
2705 (_mm512_storeu_epi32): Renamed into...
2706 (_mm512_storeu_si512): This.
2707 (_mm512_maskz_ceil_ps): Removed.
2708 (_mm512_maskz_ceil_pd): Ditto.
2709 (_mm512_maskz_floor_ps): Ditto.
2710 (_mm512_maskz_floor_pd): Ditto.
2711 (_mm512_floor_round_ps): Ditto.
2712 (_mm512_floor_round_pd): Ditto.
2713 (_mm512_ceil_round_ps): Ditto.
2714 (_mm512_ceil_round_pd): Ditto.
2715 (_mm512_mask_floor_round_ps): Ditto.
2716 (_mm512_mask_floor_round_pd): Ditto.
2717 (_mm512_mask_ceil_round_ps): Ditto.
2718 (_mm512_mask_ceil_round_pd): Ditto.
2719 (_mm512_maskz_floor_round_ps): Ditto.
2720 (_mm512_maskz_floor_round_pd): Ditto.
2721 (_mm512_maskz_ceil_round_ps): Ditto.
2722 (_mm512_maskz_ceil_round_pd): Ditto.
2723 (_mm512_expand_pd): Ditto.
2724 (_mm512_expand_ps): Ditto.
2725 * config/i386/i386.c (ix86_builtins): Remove
2726 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
2727 (bdesc_args): Ditto.
2728 * config/i386/predicates.md (const1256_operand): New.
2729 (const_1_to_2_operand): Ditto.
2730 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
2731 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
2732 (*avx512pf_gatherpf<mode>sf): Ditto.
2733 (avx512pf_gatherpf<mode>df): Ditto.
2734 (*avx512pf_gatherpf<mode>df_mask): Ditto.
2735 (*avx512pf_gatherpf<mode>df): Ditto.
2736 (avx512pf_scatterpf<mode>sf): Ditto.
2737 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
2738 (*avx512pf_scatterpf<mode>sf): Ditto.
2739 (avx512pf_scatterpf<mode>df): Ditto.
2740 (*avx512pf_scatterpf<mode>df_mask): Ditto.
2741 (*avx512pf_scatterpf<mode>df): Ditto.
2742 (avx512f_expand<mode>): Removed.
2743 (<shift_insn><mode>3<mask_name>): Change predicate type.
2744
2745 2014-02-08 Jakub Jelinek <jakub@redhat.com>
2746
2747 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
2748 not at the end of datarefs vector use ordered_remove to avoid
2749 reordering datarefs vector.
2750
2751 PR c/59984
2752 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
2753 mark local addressable non-static vars as GOVD_PRIVATE
2754 instead of GOVD_LOCAL.
2755 * omp-low.c (lower_omp_for): Move gimple_bind_vars
2756 and BLOCK_VARS of gimple_bind_block to new_stmt rather
2757 than copying them.
2758
2759 PR middle-end/60092
2760 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
2761 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
2762 assume_aligned or alloc_align attributes.
2763 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
2764 arguments. Handle also assume_aligned and alloc_align attributes.
2765 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
2766 calls to functions with assume_aligned or alloc_align attributes.
2767 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
2768
2769 2014-02-08 Terry Guo <terry.guo@arm.com>
2770
2771 * doc/invoke.texi: Document ARM -march=armv7e-m.
2772
2773 2014-02-08 Jakub Jelinek <jakub@redhat.com>
2774
2775 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
2776 flag on __cilkrts_rethrow builtin.
2777
2778 PR ipa/60026
2779 * ipa-cp.c (determine_versionability): Fail at -O0
2780 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
2781 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
2782
2783 Revert:
2784 2014-02-04 Jakub Jelinek <jakub@redhat.com>
2785
2786 PR ipa/60026
2787 * tree-inline.c (copy_forbidden): Fail for
2788 __attribute__((optimize (0))) functions.
2789
2790 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
2791
2792 * varpool.c: Include pointer-set.h.
2793 (varpool_remove_unreferenced_decls): Variables in other partitions
2794 will not be output; be however careful to not lose information
2795 about partitioning.
2796
2797 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
2798
2799 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
2800 lookup in the vtable constructor.
2801
2802 2014-02-07 Jeff Law <law@redhat.com>
2803
2804 PR target/40977
2805 * config/m68k/m68k.md (ashldi_extsi): Turn into a
2806 define_insn_and_split.
2807
2808 * ipa-inline.c (inline_small_functions): Fix typos.
2809
2810 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2811
2812 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
2813 (s390_can_use_return_insn): Declare.
2814 * config/s390/s390.h (EPILOGUE_USES): Define.
2815 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
2816 instructions.
2817 (s390_chunkify_start): Handle return JUMP_LABELs.
2818 (s390_early_mach): Emit a main_pool instruction on the entry edge.
2819 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
2820 (s390_can_use_return_insn): New functions.
2821 (s390_fix_long_loop_prediction): Handle conditional returns.
2822 (TARGET_SET_UP_BY_PROLOGUE): Define.
2823 * config/s390/s390.md (ANY_RETURN): New code iterator.
2824 (*creturn, *csimple_return, return, simple_return): New patterns.
2825
2826 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2827
2828 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
2829 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
2830 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
2831 REG_CFA_RESTORE list when deciding not to restore a register.
2832
2833 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2834
2835 * config/s390/s390.c: Include tree-pass.h and context.h.
2836 (s390_early_mach): New function, split out from...
2837 (s390_emit_prologue): ...here.
2838 (pass_data_s390_early_mach): New pass structure.
2839 (pass_s390_early_mach): New class.
2840 (s390_option_override): Create and register early_mach pass.
2841 Move to end of file.
2842
2843 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
2844
2845 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
2846 to match for the exit block.
2847
2848 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2849
2850 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
2851 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
2852 Reject misaligned operands.
2853
2854 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2855
2856 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
2857
2858 2014-02-07 Richard Biener <rguenther@suse.de>
2859
2860 PR middle-end/60092
2861 * gimple-low.c (lower_builtin_posix_memalign): New function.
2862 (lower_stmt): Call it to lower posix_memalign in a way
2863 to make alignment info accessible.
2864
2865 2014-02-07 Jakub Jelinek <jakub@redhat.com>
2866
2867 PR c++/60082
2868 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
2869 __builtin_setjmp_receiver.
2870
2871 2014-02-07 Richard Biener <rguenther@suse.de>
2872
2873 PR middle-end/60092
2874 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
2875 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
2876 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
2877 Handle BUILT_IN_POSIX_MEMALIGN.
2878 (find_func_clobbers): Likewise.
2879 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
2880 (call_may_clobber_ref_p_1): Likewise.
2881
2882 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2883
2884 PR ipa/59918
2885 * ipa-devirt.c (record_target_from_binfo): Remove overactive
2886 sanity check.
2887
2888 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2889
2890 PR ipa/59469
2891 * lto-cgraph.c (lto_output_node): Use
2892 symtab_get_symbol_partitioning_class.
2893 (lto_output_varpool_node): likewise.
2894 (symtab_get_symbol_partitioning_class): Move here from
2895 lto/lto-partition.c
2896 * cgraph.h (symbol_partitioning_class): Likewise.
2897 (symtab_get_symbol_partitioning_class): Declare.
2898
2899 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2900
2901 * ggc.h (ggc_internal_cleared_alloc): New macro.
2902 * vec.h (vec_safe_copy): Handle memory stats.
2903 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
2904 * target-globals.c (save_target_globals): Likewise.
2905
2906 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
2907
2908 PR target/60077
2909 * expr.c (emit_move_resolve_push): Export; be bit more selective
2910 on when to clear alias set.
2911 * expr.h (emit_move_resolve_push): Declare.
2912 * function.h (struct function): Add tail_call_marked.
2913 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
2914 * config/i386/i386-protos.h (ix86_expand_push): Remove.
2915 * config/i386/i386.md (TImode move expander): De not call
2916 ix86_expand_push.
2917 (FP push expanders): Preserve memory attributes.
2918 * config/i386/sse.md (push<mode>1): Remove.
2919 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
2920 (ix86_expand_push): Remove.
2921 * config/i386/mmx.md (push<mode>1): Remove.
2922
2923 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2924
2925 PR rtl-optimization/60030
2926 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
2927 lopart with paradoxical subreg before shifting it up by hprec.
2928
2929 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2930
2931 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
2932 Remove extra newline at end of file.
2933 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
2934 (arm_issue_rate): Handle cortexa57.
2935 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
2936 (cortex-a57.cortex-a53): Likewise.
2937
2938 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2939
2940 PR target/59575
2941 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
2942 don't record in REG_FRAME_RELATED_EXPR registers not set in that
2943 bitmask.
2944 (arm_expand_prologue): Adjust all callers.
2945 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
2946 info, registers also at the lowest numbered registers side. Use
2947 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
2948 XEXP.
2949
2950 PR debug/59992
2951 * var-tracking.c (adjust_mems): Before adding a SET to
2952 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
2953
2954 2014-02-06 Alan Modra <amodra@gmail.com>
2955
2956 PR target/60032
2957 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
2958 change SDmode to DDmode when lra_in_progress.
2959
2960 2014-02-06 Jakub Jelinek <jakub@redhat.com>
2961
2962 PR middle-end/59150
2963 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
2964 free_data_ref on the dr first, and before goto again also set dr
2965 to the next dr. For simd_lane_access, free old datarefs[i] before
2966 overwriting it. For get_vectype_for_scalar_type failure, don't
2967 free_data_ref if simd_lane_access.
2968
2969 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
2970
2971 PR target/60062
2972 * tree.h (opts_for_fn): New inline function.
2973 (opt_for_fn): Define.
2974 * config/i386/i386.c (ix86_function_regparm): Use
2975 opt_for_fn (decl, optimize) instead of optimize.
2976
2977 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
2978
2979 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
2980 for SYMBOL_REF in large memory model.
2981
2982 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2983
2984 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
2985 and crypto support.
2986 (cortex-a57): Likewise.
2987 (cortex-a57.cortex-a53): Likewise.
2988
2989 2014-02-06 Yury Gribov <y.gribov@samsung.com>
2990 Kugan Vivekanandarajah <kuganv@linaro.org>
2991
2992 * config/arm/arm.c (arm_vector_alignment_reachable): Check
2993 unaligned_access.
2994 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
2995
2996 2014-02-06 Richard Biener <rguenther@suse.de>
2997
2998 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
2999 set_loop_copy and initialize_original_copy_tables.
3000
3001 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
3002
3003 * config/aarch64/aarch64-simd.md
3004 (aarch64_ashr_simddi): Change QI to SI.
3005
3006 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
3007 Jakub Jelinek <jakub@redhat.com>
3008
3009 PR middle-end/60013
3010 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
3011 of the dataflow.
3012
3013 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3014
3015 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
3016 CODE_FOR_altivec_vpku[hw]um to
3017 CODE_FOR_altivec_vpku[hw]um_direct.
3018 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
3019 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
3020 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
3021 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
3022
3023 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3024
3025 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
3026 generation for -maltivec=be.
3027 (altivec_vsumsws): Simplify redundant test.
3028
3029 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3030
3031 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
3032 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
3033 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
3034 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
3035 gen_altivec_vpkuwum.
3036 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
3037 BYTES_BIG_ENDIAN.
3038 (altivec_vpks<VI_char>ss): Likewise.
3039 (altivec_vpks<VI_char>us): Likewise.
3040 (altivec_vpku<VI_char>us): Likewise.
3041 (altivec_vpku<VI_char>um): Likewise.
3042 (altivec_vpku<VI_char>um_direct): New (copy of
3043 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
3044 internal use).
3045 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
3046 target is little endian and -maltivec=be is not specified.
3047 (*altivec_vupkhs<VU_char>_direct): New (copy of
3048 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
3049 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
3050 target is little endian and -maltivec=be is not specified.
3051 (*altivec_vupkls<VU_char>_direct): New (copy of
3052 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
3053 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
3054 little endian and -maltivec=be is not specified.
3055 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
3056 little endian and -maltivec=be is not specified.
3057
3058 2014-02-05 Richard Henderson <rth@redhat.com>
3059
3060 PR debug/52727
3061 * combine-stack-adj.c: Revert r206943.
3062 * sched-int.h (struct deps_desc): Add last_args_size.
3063 * sched-deps.c (init_deps): Initialize it.
3064 (sched_analyze_insn): Add OUTPUT dependencies between insns that
3065 contain REG_ARGS_SIZE notes.
3066
3067 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
3068
3069 * lto-cgraph.c (asm_nodes_output): Make global.
3070 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
3071 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
3072 (driver_handle_option): Handle OPT_fwpa.
3073
3074 2014-02-05 Jakub Jelinek <jakub@redhat.com>
3075
3076 PR ipa/59947
3077 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
3078 a comment typo and formatting issue. If odr_hash hasn't been
3079 created, return vNULL and set *completep to false.
3080
3081 PR middle-end/57499
3082 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
3083 bb with no successors.
3084
3085 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
3086
3087 PR target/59718
3088 * doc/invoke.texi (-march): Clarify documentation for ARM.
3089 (-mtune): Likewise.
3090 (-mcpu): Likewise.
3091
3092 2014-02-05 Richard Biener <rguenther@suse.de>
3093
3094 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
3095 when not vectorizing because of too many alias checks.
3096 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
3097 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
3098
3099 2014-02-05 Nick Clifton <nickc@redhat.com>
3100
3101 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
3102 accept extended registers in any mode when compiling for the MN10300.
3103
3104 2014-02-05 Yury Gribov <y.gribov@samsung.com>
3105
3106 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
3107 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
3108 sanitization attributes.
3109 (can_inline_edge_p): Likewise.
3110 (sanitize_attrs_match_for_inline_p): New function.
3111
3112 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
3113
3114 * ipa-prop.c (detect_type_change): Shor circuit testing of
3115 type changes on THIS pointer.
3116
3117 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
3118
3119 PR target/59777
3120 * config/pa/pa.c (legitimize_tls_address): Return original address
3121 if not passed a SYMBOL_REF rtx.
3122 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
3123 addresses.
3124 (pa_emit_move_sequence): Simplify TLS source operands.
3125 (pa_legitimate_constant_p): Reject all TLS constants.
3126 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
3127 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
3128
3129 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
3130
3131 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
3132 groups when we know they are controlled by LTO.
3133 * varasm.c (default_binds_local_p_1): If object is in other partition,
3134 it will be resolved locally.
3135
3136 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
3137
3138 * config/host-linux.c (linux_gt_pch_use_address): Don't
3139 use SSIZE_MAX because it is not always defined.
3140
3141 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
3142
3143 PR bootstrap/59913
3144 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
3145 threshold for pseudo splitting.
3146 (update_ebb_live_info): Process call argument hard registers and
3147 hard registers from insn definition too.
3148 (max_small_class_regs_num): New constant.
3149 (inherit_in_ebb): Update live hard regs through EBBs. Update
3150 reloads_num only for small register classes. Don't split for
3151 outputs of jumps.
3152
3153 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
3154
3155 PR ipa/60058
3156 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
3157 is non-null.
3158
3159 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
3160
3161 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
3162 visibility is safe.
3163
3164 2014-02-04 Marek Polacek <polacek@redhat.com>
3165
3166 * gdbinit.in (pel): Define.
3167
3168 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
3169
3170 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
3171 behavior.
3172
3173 2014-02-04 Richard Biener <rguenther@suse.de>
3174
3175 PR lto/59723
3176 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
3177 in function context local.
3178 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
3179 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
3180 similar to LTO_imported_decl_ref.
3181
3182 2014-02-04 Jakub Jelinek <jakub@redhat.com>
3183
3184 PR tree-optimization/60002
3185 * cgraphclones.c (build_function_decl_skip_args): Clear
3186 DECL_LANG_SPECIFIC.
3187
3188 PR tree-optimization/60023
3189 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
3190 false to gsi_replace.
3191 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
3192 has been in some EH region and vec_stmt could throw, add
3193 vec_stmt into the same EH region.
3194 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
3195 has no lhs, ignore it.
3196 * internal-fn.c (expand_MASK_LOAD): Likewise.
3197
3198 PR ipa/60026
3199 * tree-inline.c (copy_forbidden): Fail for
3200 __attribute__((optimize (0))) functions.
3201
3202 PR other/58712
3203 * omp-low.c (simd_clone_struct_copy): If from->inbranch
3204 is set, copy one less argument.
3205 (expand_simd_clones): Don't subtract clone_info->inbranch
3206 from simd_clone_struct_alloc argument.
3207
3208 PR rtl-optimization/57915
3209 * recog.c (simplify_while_replacing): If all unary/binary/relational
3210 operation arguments are constant, attempt to simplify those.
3211
3212 PR middle-end/59261
3213 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
3214 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
3215
3216 2014-02-04 Richard Biener <rguenther@suse.de>
3217
3218 PR tree-optimization/60012
3219 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
3220 TBAA disambiguation to all DDRs.
3221
3222 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3223
3224 PR target/59788
3225 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
3226 (LINK_SPEC): Use it for -shared, -shared-libgcc.
3227
3228 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
3229
3230 PR ipa/59882
3231 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
3232
3233 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
3234
3235 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
3236 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
3237
3238 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
3239
3240 PR ipa/59831
3241 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
3242 to figure out targets of polymorphic calls with known decl.
3243 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3244 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
3245 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
3246 (get_polymorphic_call_info): ... here.
3247 (get_polymorphic_call_info_from_invariant): New function.
3248
3249 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
3250
3251 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
3252 lookup via vtable pointer; check for type consistency
3253 and turn inconsitent facts into UNREACHABLE.
3254 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3255 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
3256 type inconsistent querries; return UNREACHABLE instead.
3257
3258 2014-02-03 Richard Henderson <rth@twiddle.net>
3259
3260 PR tree-opt/59924
3261 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
3262 already processed this node.
3263 (normalize_one_pred_1): Pass along mark_set.
3264 (normalize_one_pred): Create and destroy a pointer_set_t.
3265 (normalize_one_pred_chain): Likewise.
3266
3267 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
3268
3269 PR gcov-profile/58602
3270 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
3271
3272 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
3273
3274 PR ipa/59831
3275 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
3276 -fno-devirtualize; try to devirtualize by the knowledge of
3277 virtual table pointer given by aggregate propagation.
3278 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
3279 (ipa_print_node_jump_functions): Dump also offset that
3280 is relevant for polymorphic calls.
3281 (determine_known_aggregate_parts): Add arg_type parameter; use it
3282 instead of determining the type from pointer type.
3283 (ipa_compute_jump_functions_for_edge): Update call of
3284 determine_known_aggregate_parts.
3285 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
3286 (gimple_get_virt_method_for_binfo): ... here; simplify using
3287 vtable_pointer_value_to_vtable.
3288 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
3289 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
3290 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
3291 (vtable_pointer_value_to_vtable): Break out from ...; handle also
3292 POINTER_PLUS_EXPR.
3293 (vtable_pointer_value_to_binfo): ... here.
3294 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
3295
3296 2014-02-03 Teresa Johnson <tejohnson@google.com>
3297
3298 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
3299 redef of outer loop index variable.
3300
3301 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
3302
3303 PR c++/53017
3304 PR c++/59211
3305 * doc/extend.texi (Function Attributes): Typo.
3306
3307 2014-02-03 Cong Hou <congh@google.com>
3308
3309 PR tree-optimization/60000
3310 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
3311 if the vectorized statement is a store. A store statement can only
3312 appear at the end of pattern statements.
3313
3314 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
3315
3316 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
3317 (ix86_option_override_internal): Default long double to 64-bit for
3318 32-bit Bionic and to 128-bit for 64-bit Bionic.
3319
3320 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
3321 TARGET_LONG_DOUBLE_128 is true.
3322 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
3323
3324 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
3325 (mlong-double-64): Negate -mlong-double-128.
3326 (mlong-double-128): New option.
3327
3328 * config/i386/i386-c.c (ix86_target_macros): Define
3329 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
3330
3331 * doc/invoke.texi: Document -mlong-double-128.
3332
3333 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
3334
3335 PR rtl-optimization/60024
3336 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
3337
3338 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
3339
3340 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
3341
3342 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
3343
3344 PR rtl-optimization/57662
3345 * sel-sched.c (code_motion_path_driver): Do not mark already not
3346 existing blocks in the visiting bitmap.
3347
3348 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
3349
3350 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
3351 on the insn being emitted.
3352
3353 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
3354 Will Deacon <will.deacon@arm.com>
3355
3356 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
3357
3358 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3359
3360 * config/arm/arm-tables.opt: Regenerate.
3361
3362 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3363
3364 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
3365 for vector types other than V16QImode.
3366 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
3367 define_expand, and call altivec_expand_vec_perm_le when producing
3368 code with little endian element order.
3369 (*altivec_vperm_<mode>_internal): New insn having previous
3370 behavior of altivec_vperm_<mode>.
3371 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
3372 altivec_expand_vec_perm_le when producing code with little endian
3373 element order.
3374 (*altivec_vperm_<mode>_uns_internal): New insn having previous
3375 behavior of altivec_vperm_<mode>_uns.
3376
3377 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3378
3379 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
3380 (altivec_vsumsws): Add handling for -maltivec=be with a little
3381 endian target.
3382 (altivec_vsumsws_direct): New.
3383 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
3384 gen_altivec_vsumsws.
3385
3386 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
3387
3388 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
3389 vtable_pointer_value_to_binfo): New functions.
3390 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
3391 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
3392
3393 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
3394
3395 * config/nios2/nios2.md (load_got_register): Initialize GOT
3396 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
3397 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
3398
3399 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
3400
3401 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
3402 preserverd by passthrough, do not propagate the type.
3403
3404 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
3405
3406 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
3407 (mips_atomic_assign_expand_fenv): New function.
3408 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
3409
3410 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
3411
3412 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
3413 (__builtin_mips_set_fcsr): Likewise.
3414 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
3415 MIPS_USI_FTYPE_VOID.
3416 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
3417 (mips16_expand_set_fcsr): Likewise.
3418 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
3419 (mips16_set_fcsr_stub): Likewise.
3420 (mips16_get_fcsr_one_only_stub): New class.
3421 (mips16_set_fcsr_one_only_stub): Likewise.
3422 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
3423 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
3424 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
3425 (hard_float): New availability predicate.
3426 (mips_builtins): Add get_fcsr and set_fcsr.
3427 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
3428 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
3429 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
3430 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
3431 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
3432 patterns.
3433
3434 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
3435
3436 * config/mips/mips.c (mips_one_only_stub): New class.
3437 (mips_need_mips16_rdhwr_p): Replace with...
3438 (mips16_rdhwr_stub): ...this new variable.
3439 (mips16_stub_call_address): New function.
3440 (mips16_rdhwr_one_only_stub): New class.
3441 (mips_expand_thread_pointer): Use mips16_stub_call_address.
3442 (mips_output_mips16_rdhwr): Delete.
3443 (mips_finish_stub): New function.
3444 (mips_code_end): Use it to handle rdhwr stubs.
3445
3446 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
3447
3448 PR target/60017
3449 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
3450 when calculating size of integer atomic types.
3451
3452 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
3453
3454 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
3455
3456 2014-02-01 Jakub Jelinek <jakub@redhat.com>
3457
3458 PR tree-optimization/60003
3459 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
3460 * profile.c (branch_prob): Use gimple_call_builtin_p
3461 to check for BUILT_IN_SETJMP_RECEIVER.
3462 * tree-inline.c (copy_bb): Call notice_special_calls.
3463
3464 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
3465
3466 PR bootstrap/59985
3467 * lra-constraints.c (process_alt_operands): Update reload_sum only
3468 on the first pass.
3469
3470 2014-01-31 Richard Henderson <rth@redhat.com>
3471
3472 PR middle-end/60004
3473 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
3474 until after else_eh is processed.
3475
3476 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
3477
3478 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
3479 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
3480 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
3481 in smmintrin.h, remove them.
3482 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
3483 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
3484 * config/i386/i386.md (ROUND_SAE): Fix value.
3485 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
3486 (const48_operand): New.
3487 * config/i386/subst.md (round), (round_expand): Use
3488 const_4_or_8_to_11_operand.
3489 (round_saeonly), (round_saeonly_expand): Use const48_operand.
3490
3491 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
3492
3493 * config/i386/constraints.md (Yk): Swap meaning with k.
3494 * config/i386/i386.md (movhi_internal): Change Yk to k.
3495 (movqi_internal): Ditto.
3496 (*k<logic><mode>): Ditto.
3497 (*andhi_1): Ditto.
3498 (*andqi_1): Ditto.
3499 (kandn<mode>): Ditto.
3500 (*<code>hi_1): Ditto.
3501 (*<code>qi_1): Ditto.
3502 (kxnor<mode>): Ditto.
3503 (kortestzhi): Ditto.
3504 (kortestchi): Ditto.
3505 (kunpckhi): Ditto.
3506 (*one_cmplhi2_1): Ditto.
3507 (*one_cmplqi2_1): Ditto.
3508 * config/i386/sse.md (): Change k to Yk.
3509 (avx512f_load<mode>_mask): Ditto.
3510 (avx512f_blendm<mode>): Ditto.
3511 (avx512f_store<mode>_mask): Ditto.
3512 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
3513 (avx512f_storedqu<mode>_mask): Ditto.
3514 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
3515 Ditto.
3516 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
3517 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
3518 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
3519 (avx512f_maskcmp<mode>3): Ditto.
3520 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
3521 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
3522 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
3523 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
3524 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
3525 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
3526 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
3527 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
3528 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
3529 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
3530 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
3531 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
3532 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
3533 (vec_extract_lo_<mode>_maskm): Ditto.
3534 (vec_extract_hi_<mode>_maskm): Ditto.
3535 (avx512f_vternlog<mode>_mask): Ditto.
3536 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
3537 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
3538 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
3539 (avx512f_<code>v8div16qi2_mask): Ditto.
3540 (avx512f_<code>v8div16qi2_mask_store): Ditto.
3541 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
3542 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
3543 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
3544 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
3545 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
3546 (*avx512pf_gatherpf<mode>df_mask): Ditto.
3547 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
3548 (*avx512pf_scatterpf<mode>df_mask): Ditto.
3549 (avx512cd_maskb_vec_dupv8di): Ditto.
3550 (avx512cd_maskw_vec_dupv16si): Ditto.
3551 (avx512f_vpermi2var<mode>3_maskz): Ditto.
3552 (avx512f_vpermi2var<mode>3_mask): Ditto.
3553 (avx512f_vpermi2var<mode>3_mask): Ditto.
3554 (avx512f_vpermt2var<mode>3_maskz): Ditto.
3555 (*avx512f_gathersi<mode>): Ditto.
3556 (*avx512f_gathersi<mode>_2): Ditto.
3557 (*avx512f_gatherdi<mode>): Ditto.
3558 (*avx512f_gatherdi<mode>_2): Ditto.
3559 (*avx512f_scattersi<mode>): Ditto.
3560 (*avx512f_scatterdi<mode>): Ditto.
3561 (avx512f_compress<mode>_mask): Ditto.
3562 (avx512f_compressstore<mode>_mask): Ditto.
3563 (avx512f_expand<mode>_mask): Ditto.
3564 * config/i386/subst.md (mask): Change k to Yk.
3565 (mask_scalar_merge): Ditto.
3566 (sd): Ditto.
3567
3568 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
3569
3570 * doc/extend.texi (Vector Extensions): Document ?: in C++.
3571
3572 2014-01-31 Richard Biener <rguenther@suse.de>
3573
3574 PR middle-end/59990
3575 * builtins.c (fold_builtin_memory_op): Make sure to not
3576 use a floating-point mode or a boolean or enumeral type for
3577 the copy operation.
3578
3579 2014-01-30 DJ Delorie <dj@redhat.com>
3580
3581 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
3582 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
3583 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
3584 whenever main() has an epilogue.
3585
3586 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3587
3588 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
3589 unused variable "field".
3590 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
3591 (vsx_mergeh_<mode>): Likewise.
3592 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
3593 (altivec_vmrghh): Likewise.
3594 (altivec_vmrghw): Likewise.
3595 (altivec_vmrglb): Likewise.
3596 (altivec_vmrglh): Likewise.
3597 (altivec_vmrglw): Likewise.
3598 (altivec_vspltb): Add missing uses.
3599 (altivec_vsplth): Likewise.
3600 (altivec_vspltw): Likewise.
3601 (altivec_vspltsf): Likewise.
3602
3603 2014-01-30 Jakub Jelinek <jakub@redhat.com>
3604
3605 PR target/59923
3606 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
3607 frame related instructions.
3608
3609 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
3610
3611 PR rtl-optimization/59959
3612 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
3613 any reload of register whose subreg is invalid.
3614
3615 2014-01-30 Jakub Jelinek <jakub@redhat.com>
3616
3617 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
3618 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
3619 Add missing return type - void.
3620
3621 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3622
3623 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
3624 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
3625 remove element index adjustment for endian (now handled in vsx.md
3626 and altivec.md).
3627 (altivec_expand_vec_perm_const): Use
3628 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
3629 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
3630 (vsx_xxspltw_<mode>): Adjust element index for little endian.
3631 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
3632 define_expand and a new define_insn *altivec_vspltb_internal;
3633 adjust for -maltivec=be on a little endian target.
3634 (altivec_vspltb_direct): New.
3635 (altivec_vsplth): Divide into a define_expand and a new
3636 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
3637 little endian target.
3638 (altivec_vsplth_direct): New.
3639 (altivec_vspltw): Divide into a define_expand and a new
3640 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
3641 little endian target.
3642 (altivec_vspltw_direct): New.
3643 (altivec_vspltsf): Divide into a define_expand and a new
3644 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
3645 a little endian target.
3646
3647 2014-01-30 Richard Biener <rguenther@suse.de>
3648
3649 PR tree-optimization/59993
3650 * tree-ssa-forwprop.c (associate_pointerplus): Check we
3651 can propagate form the earlier stmt and avoid the transform
3652 when the intermediate result is needed.
3653
3654 2014-01-30 Alangi Derick <alangiderick@gmail.com>
3655
3656 * README.Portability: Fix typo.
3657
3658 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
3659
3660 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
3661 comparison_operator with ordered_comparison_operator.
3662
3663 2014-01-30 Nick Clifton <nickc@redhat.com>
3664
3665 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
3666 Rename to mn10300_store_multiple_regs.
3667 * config/mn10300/mn10300.c: Likewise.
3668 * config/mn10300/mn10300.md (store_movm): Fix typo: call
3669 store_multiple_regs.
3670 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
3671 Call mn10300_store_multiple_regs.
3672
3673 2014-01-30 Nick Clifton <nickc@redhat.com>
3674 DJ Delorie <dj@redhat.com>
3675
3676 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
3677 %fp 2 to keep registers after it properly word-aligned.
3678 (rl78_alloc_physical_registers_umul): Handle the case where both
3679 input operands are the same.
3680
3681 2014-01-30 Richard Biener <rguenther@suse.de>
3682
3683 PR tree-optimization/59903
3684 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
3685 check properly.
3686
3687 2014-01-30 Jason Merrill <jason@redhat.com>
3688
3689 PR c++/59633
3690 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
3691
3692 PR c++/59645
3693 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
3694
3695 2014-01-30 Richard Biener <rguenther@suse.de>
3696
3697 PR tree-optimization/59951
3698 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
3699
3700 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
3701
3702 PR target/59784
3703 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
3704 SFmode to DFmode case.
3705
3706 2014-01-29 DJ Delorie <dj@redhat.com>
3707
3708 * config/msp430/msp430.opt (-minrt): New.
3709 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
3710 if -minrt given.
3711 (ENDFILE_SPEC): Likewise.
3712
3713 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
3714
3715 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
3716 (estimate_function_body_sizes): Use it.
3717
3718 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
3719
3720 PR c++/58561
3721 * dwarf2out.c (is_cxx_auto): New.
3722 (is_base_type): Use it.
3723 (gen_type_die_with_usage): Likewise.
3724
3725 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3726
3727 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
3728 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
3729 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
3730 -maltivec=be with LE targets.
3731 (vsx_mergeh_<mode>): Likewise.
3732 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
3733 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
3734 (altivec_vmrghb): Replace with define_expand and new
3735 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
3736 (altivec_vmrghb_direct): New define_insn.
3737 (altivec_vmrghh): Replace with define_expand and new
3738 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
3739 (altivec_vmrghh_direct): New define_insn.
3740 (altivec_vmrghw): Replace with define_expand and new
3741 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
3742 (altivec_vmrghw_direct): New define_insn.
3743 (*altivec_vmrghsf): Adjust for endianness.
3744 (altivec_vmrglb): Replace with define_expand and new
3745 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
3746 (altivec_vmrglb_direct): New define_insn.
3747 (altivec_vmrglh): Replace with define_expand and new
3748 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
3749 (altivec_vmrglh_direct): New define_insn.
3750 (altivec_vmrglw): Replace with define_expand and new
3751 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
3752 (altivec_vmrglw_direct): New define_insn.
3753 (*altivec_vmrglsf): Adjust for endianness.
3754 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
3755 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
3756 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
3757 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
3758 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
3759 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
3760 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
3761 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
3762
3763 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
3764
3765 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
3766 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
3767 whitespace.
3768
3769 2014-01-29 Richard Biener <rguenther@suse.de>
3770
3771 PR tree-optimization/58742
3772 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
3773 associate_pointerplus_align.
3774 (associate_pointerplus_diff): New function.
3775 (associate_pointerplus): Likewise. Call associate_pointerplus_align
3776 and associate_pointerplus_diff.
3777
3778 2014-01-29 Richard Biener <rguenther@suse.de>
3779
3780 * lto-streamer.h (LTO_major_version): Bump to 3.
3781 (LTO_minor_version): Reset to 0.
3782
3783 2014-01-29 Renlin Li <Renlin.Li@arm.com>
3784
3785 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
3786 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
3787 (arm_file_start): Generate correct asm header for armv7ve.
3788 * config/arm/bpabi.h: Add multilib support for armv7ve.
3789 * config/arm/driver-arm.c: Change the architectures of cortex-a7
3790 and cortex-a15 to armv7ve.
3791 * config/arm/t-aprofile: Add multilib support for armv7ve.
3792 * doc/invoke.texi: Document -march=armv7ve.
3793
3794 2014-01-29 Richard Biener <rguenther@suse.de>
3795
3796 PR tree-optimization/58742
3797 * tree-ssa-forwprop.c (associate_plusminus): Return true
3798 if we changed sth, defer EH cleanup to ...
3799 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
3800 (simplify_mult): New function.
3801
3802 2014-01-29 Jakub Jelinek <jakub@redhat.com>
3803
3804 PR middle-end/59917
3805 PR tree-optimization/59920
3806 * tree.c (build_common_builtin_nodes): Remove
3807 __builtin_setjmp_dispatcher initialization.
3808 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
3809 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
3810 instead of gsi_after_labels + manually skipping debug stmts.
3811 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
3812 ignore bbs with IFN_ABNORMAL_DISPATCHER.
3813 * tree-inline.c (copy_edges_for_bb): Remove
3814 can_make_abnormal_goto argument, instead add abnormal_goto_dest
3815 argument. Ignore computed_goto_p stmts. Don't call
3816 make_abnormal_goto_edges. If a call might need abnormal edges
3817 for non-local gotos, see if it already has an edge to
3818 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
3819 with true argument, don't do anything then, otherwise add
3820 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
3821 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
3822 caller.
3823 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
3824 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
3825 (lower_stmt): Don't set data->calls_builtin_setjmp.
3826 (lower_builtin_setjmp): Adjust comment.
3827 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
3828 * tree-cfg.c (found_computed_goto): Remove.
3829 (factor_computed_gotos): Remove.
3830 (make_goto_expr_edges): Return bool, true for computed gotos.
3831 Don't call make_abnormal_goto_edges.
3832 (build_gimple_cfg): Don't set found_computed_goto, don't call
3833 factor_computed_gotos.
3834 (computed_goto_p): No longer static.
3835 (make_blocks): Don't set found_computed_goto.
3836 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
3837 (make_edges): If make_goto_expr_edges returns true, push bb
3838 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
3839 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
3840 vector. Record mapping between bbs and OpenMP regions if there
3841 are any, adjust make_gimple_omp_edges caller. Call
3842 handle_abnormal_edges.
3843 (make_abnormal_goto_edges): Remove.
3844 * tree-cfg.h (make_abnormal_goto_edges): Remove.
3845 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
3846 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
3847 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
3848 * internal-fn.def (ABNORMAL_DISPATCHER): New.
3849 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
3850 filling *region also set *region_idx to (*region)->entry->index.
3851
3852 PR other/58712
3853 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
3854 For REGs set ORIGINAL_REGNO.
3855
3856 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
3857
3858 * doc/md.texi: Mention that a target shouldn't implement
3859 vec_widen_(s|u)mul_even/odd pair if it is less efficient
3860 than hi/lo pair.
3861
3862 2014-01-29 Jakub Jelinek <jakub@redhat.com>
3863
3864 PR tree-optimization/59594
3865 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
3866 a copy of the datarefs vector rather than the vector itself.
3867
3868 2014-01-28 Jason Merrill <jason@redhat.com>
3869
3870 PR c++/53756
3871 * dwarf2out.c (auto_die): New static.
3872 (gen_type_die_with_usage): Handle C++1y 'auto'.
3873 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
3874 on definition.
3875
3876 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
3877
3878 PR target/59672
3879 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
3880 (SPEC_X32): Likewise.
3881 (SPEC_64): Likewise.
3882 * config/i386/i386.c (ix86_option_override_internal): Turn off
3883 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
3884 for TARGET_16BIT.
3885 (x86_file_start): Output .code16gcc for TARGET_16BIT.
3886 * config/i386/i386.h (TARGET_16BIT): New macro.
3887 (TARGET_16BIT_P): Likewise.
3888 * config/i386/i386.opt: Add m16.
3889 * doc/invoke.texi: Document -m16.
3890
3891 2014-01-28 Jakub Jelinek <jakub@redhat.com>
3892
3893 PR preprocessor/59935
3894 * input.c (location_get_source_line): Bail out on when line number
3895 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
3896
3897 2014-01-28 Richard Biener <rguenther@suse.de>
3898
3899 PR tree-optimization/58742
3900 * tree-ssa-forwprop.c (associate_plusminus): Handle
3901 pointer subtraction of the form (T)(P + A) - (T)P.
3902
3903 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3904
3905 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
3906 at const_int_cost.
3907
3908 2014-01-28 Richard Biener <rguenther@suse.de>
3909
3910 Revert
3911 2014-01-28 Richard Biener <rguenther@suse.de>
3912
3913 PR rtl-optimization/45364
3914 PR rtl-optimization/59890
3915 * var-tracking.c (local_get_addr_clear_given_value): Handle
3916 already cleared slot.
3917 (val_reset): Handle not allocated local_get_addr_cache.
3918 (vt_find_locations): Use post-order on the inverted CFG.
3919
3920 2014-01-28 Richard Biener <rguenther@suse.de>
3921
3922 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
3923
3924 2014-01-28 Richard Biener <rguenther@suse.de>
3925
3926 PR rtl-optimization/45364
3927 PR rtl-optimization/59890
3928 * var-tracking.c (local_get_addr_clear_given_value): Handle
3929 already cleared slot.
3930 (val_reset): Handle not allocated local_get_addr_cache.
3931 (vt_find_locations): Use post-order on the inverted CFG.
3932
3933 2014-01-28 Alan Modra <amodra@gmail.com>
3934
3935 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
3936 * configure.ac <recursive call for build != host>: Define
3937 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
3938 and LD_FOR_BUILD too.
3939 * configure: Regenerate.
3940
3941 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
3942
3943 * config/i386/i386.c (get_builtin_code_for_version): Separate
3944 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
3945 Broadwell from Haswell.
3946
3947 2014-01-27 Steve Ellcey <sellcey@mips.com>
3948
3949 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
3950 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
3951 * config/mips/mips.c (mips_option_override): Change setting
3952 of TARGET_DSP.
3953 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
3954 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
3955 Change from Mask to Var.
3956
3957 2014-01-27 Jeff Law <law@redhat.com>
3958
3959 * ipa-inline.c (inline_small_functions): Fix typo.
3960
3961 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
3962
3963 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
3964 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
3965 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
3966 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
3967 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
3968 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
3969 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
3970 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
3971 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
3972 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
3973 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
3974 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
3975 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
3976 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
3977 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
3978 (_mm512_storeu_epi64): Ditto.
3979 (_mm512_cmpge_epi32_mask): Ditto.
3980 (_mm512_cmpge_epu32_mask): Ditto.
3981 (_mm512_cmpge_epi64_mask): Ditto.
3982 (_mm512_cmpge_epu64_mask): Ditto.
3983 (_mm512_cmple_epi32_mask): Ditto.
3984 (_mm512_cmple_epu32_mask): Ditto.
3985 (_mm512_cmple_epi64_mask): Ditto.
3986 (_mm512_cmple_epu64_mask): Ditto.
3987 (_mm512_cmplt_epi32_mask): Ditto.
3988 (_mm512_cmplt_epu32_mask): Ditto.
3989 (_mm512_cmplt_epi64_mask): Ditto.
3990 (_mm512_cmplt_epu64_mask): Ditto.
3991 (_mm512_cmpneq_epi32_mask): Ditto.
3992 (_mm512_cmpneq_epu32_mask): Ditto.
3993 (_mm512_cmpneq_epi64_mask): Ditto.
3994 (_mm512_cmpneq_epu64_mask): Ditto.
3995 (_mm512_expand_pd): Ditto.
3996 (_mm512_expand_ps): Ditto.
3997 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
3998 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
3999 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
4000 * config/i386/i386.c (ix86_builtins): Add
4001 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
4002 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
4003 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
4004 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
4005 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
4006 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
4007 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
4008 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
4009 IX86_BUILTIN_PMOVUSQW512_MEM.
4010 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
4011 __builtin_ia32_pmovsqd512mem_mask,
4012 __builtin_ia32_pmovqd512mem_mask,
4013 __builtin_ia32_pmovusqw512mem_mask,
4014 __builtin_ia32_pmovsqw512mem_mask,
4015 __builtin_ia32_pmovqw512mem_mask,
4016 __builtin_ia32_pmovusdw512mem_mask,
4017 __builtin_ia32_pmovsdw512mem_mask,
4018 __builtin_ia32_pmovdw512mem_mask,
4019 __builtin_ia32_pmovqb512mem_mask,
4020 __builtin_ia32_pmovusqb512mem_mask,
4021 __builtin_ia32_pmovsqb512mem_mask,
4022 __builtin_ia32_pmovusdb512mem_mask,
4023 __builtin_ia32_pmovsdb512mem_mask,
4024 __builtin_ia32_pmovdb512mem_mask.
4025 (bdesc_args): Add __builtin_ia32_expanddf512,
4026 __builtin_ia32_expandsf512.
4027 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
4028 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
4029 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
4030 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
4031 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
4032 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
4033 (avx512f_<code>v8div16qi2_mask_store): This.
4034 (avx512f_expand<mode>): New.
4035
4036 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
4037
4038 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
4039 New.
4040 (_mm512_mask_prefetch_i64gather_pd): Ditto.
4041 (_mm512_prefetch_i32scatter_pd): Ditto.
4042 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
4043 (_mm512_prefetch_i64scatter_pd): Ditto.
4044 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
4045 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
4046 (_mm512_mask_prefetch_i64gather_ps): Ditto.
4047 (_mm512_prefetch_i32scatter_ps): Ditto.
4048 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
4049 (_mm512_prefetch_i64scatter_ps): Ditto.
4050 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
4051 * config/i386/i386-builtin-types.def: Define
4052 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
4053 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
4054 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
4055 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
4056 IX86_BUILTIN_SCATTERPFQPD.
4057 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
4058 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
4059 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
4060 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
4061 __builtin_ia32_scatterpfqps.
4062 (ix86_expand_builtin): Expand new built-ins.
4063 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
4064 fix memory access data type.
4065 (*avx512pf_gatherpf<mode>_mask): Ditto.
4066 (*avx512pf_gatherpf<mode>): Ditto.
4067 (avx512pf_scatterpf<mode>): Ditto.
4068 (*avx512pf_scatterpf<mode>_mask): Ditto.
4069 (*avx512pf_scatterpf<mode>): Ditto.
4070 (GATHER_SCATTER_SF_MEM_MODE): New.
4071 (avx512pf_gatherpf<mode>df): Ditto.
4072 (*avx512pf_gatherpf<mode>df_mask): Ditto.
4073 (*avx512pf_scatterpf<mode>df): Ditto.
4074
4075 2014-01-27 Jakub Jelinek <jakub@redhat.com>
4076
4077 PR bootstrap/59934
4078 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
4079 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
4080 reached.
4081
4082 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
4083
4084 * common/config/arm/arm-common.c
4085 (arm_rewrite_mcpu): Handle multiple names.
4086 * config/arm/arm.h
4087 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
4088
4089 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
4090
4091 * gimple-builder.h (create_gimple_tmp): Delete.
4092
4093 2014-01-27 Christian Bruel <christian.bruel@st.com>
4094
4095 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
4096 words comparisons.
4097
4098 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
4099
4100 * config/pa/pa.md (call): Generate indirect long calls to non-local
4101 functions when outputing 32-bit code.
4102 (call_value): Likewise except for special call to buggy powf function.
4103
4104 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
4105 portable runtime and PIC indirect calls.
4106 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
4107 and PIC call sequences. Use ldo instead of blr to set return register
4108 in PIC call sequence.
4109
4110 2014-01-25 Walter Lee <walt@tilera.com>
4111
4112 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
4113 avoid clobbering a live register.
4114
4115 2014-01-25 Walter Lee <walt@tilera.com>
4116
4117 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
4118 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
4119 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
4120 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
4121
4122 2014-01-25 Walter Lee <walt@tilera.com>
4123
4124 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
4125 arguments on even registers.
4126 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
4127 STACK_BOUNDARY.
4128 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
4129 (BIGGEST_ALIGNMENT): Ditto.
4130 (BIGGEST_FIELD_ALIGNMENT): Ditto.
4131
4132 2014-01-25 Walter Lee <walt@tilera.com>
4133
4134 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
4135 insns before bundling.
4136 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
4137
4138 2014-01-25 Walter Lee <walt@tilera.com>
4139
4140 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
4141 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
4142 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
4143
4144 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
4145
4146 * config/mips/constraints.md (kl): Delete.
4147 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
4148 define expands, using...
4149 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
4150 instructions for MIPS16.
4151 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
4152 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
4153
4154 2014-01-25 Walter Lee <walt@tilera.com>
4155
4156 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
4157 (clzdi2): Ditto.
4158 (ffsdi2): Ditto.
4159
4160 2014-01-25 Walter Lee <walt@tilera.com>
4161
4162 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
4163 (TARGET_EXPAND_TO_RTL_HOOK): Define.
4164
4165 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
4166
4167 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
4168 Handle XOR.
4169
4170 2014-01-25 Jakub Jelinek <jakub@redhat.com>
4171
4172 * print-rtl.c (in_call_function_usage): New var.
4173 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
4174 EXPR_LIST mode as mode and not as reg note name.
4175
4176 PR middle-end/59561
4177 * cfgloopmanip.c (copy_loop_info): If
4178 loop->warned_aggressive_loop_optimizations, make sure
4179 the flag is set in target loop too.
4180
4181 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
4182
4183 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
4184 flag_cilkplus.
4185 * builtins.def: Likewise.
4186 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
4187 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
4188 * ira.c (ira_setup_eliminable_regset): Likewise.
4189 * omp-low.c (gate_expand_omp): Likewise.
4190 (execute_lower_omp): Likewise.
4191 (diagnose_sb_0): Likewise.
4192 (gate_diagnose_omp_blocks): Likewise.
4193 (simd_clone_clauses_extract): Likewise.
4194 (gate): Likewise.
4195
4196 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4197
4198 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
4199 correction for little endian...
4200 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
4201 here.
4202
4203 2014-01-24 Jeff Law <law@redhat.com>
4204
4205 PR tree-optimization/59919
4206 * tree-vrp.c (find_assert_locations_1): Do not register asserts
4207 for non-returning calls.
4208
4209 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
4210
4211 * common/config/aarch64/aarch64-common.c
4212 (aarch64_rewrite_mcpu): Handle multiple names.
4213 * config/aarch64/aarch64.h
4214 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
4215
4216 2014-01-24 Dodji Seketeli <dodji@redhat.com>
4217
4218 * input.c (add_file_to_cache_tab): Handle the case where fopen
4219 returns NULL.
4220
4221 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
4222
4223 PR target/59929
4224 * config/i386/i386.md (pushsf splitter): Get stack adjustment
4225 from push operand if code of push isn't PRE_DEC.
4226
4227 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4228
4229 PR target/59909
4230 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4231 -mquad-memory-atomic. Update -mquad-memory documentation to say
4232 it is only used for non-atomic loads/stores.
4233
4234 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
4235 -mquad-memory or -mquad-memory-atomic switches.
4236
4237 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
4238 -mquad-memory-atomic to ISA 2.07 support.
4239
4240 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
4241 to separate support of normal quad word memory operations (ldq, stq)
4242 from the atomic quad word memory operations.
4243
4244 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4245 support to separate non-atomic quad word operations from atomic
4246 quad word operations. Disable non-atomic quad word operations in
4247 little endian mode so that we don't have to swap words after the
4248 load and before the store.
4249 (quad_load_store_p): Add comment about atomic quad word support.
4250 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
4251 options printed with -mdebug=reg.
4252
4253 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
4254 -mquad-memory-atomic as the test for whether we have quad word
4255 atomic instructions.
4256 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
4257 or -mp8-vector are used, allow byte/half-word atomic operations.
4258
4259 * config/rs6000/sync.md (load_lockedti): Insure that the address
4260 is a proper indexed or indirect address for the lqarx instruction.
4261 On little endian systems, swap the hi/lo registers after the lqarx
4262 instruction.
4263 (load_lockedpti): Use indexed_or_indirect_operand predicate to
4264 insure the address is valid for the lqarx instruction.
4265 (store_conditionalti): Insure that the address is a proper indexed
4266 or indirect address for the stqcrx. instruction. On little endian
4267 systems, swap the hi/lo registers before doing the stqcrx.
4268 instruction.
4269 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
4270 insure the address is valid for the stqcrx. instruction.
4271
4272 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
4273 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
4274 type of quad memory support is available.
4275
4276 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
4277
4278 PR regression/59915
4279 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
4280 there is a danger of looping.
4281
4282 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
4283
4284 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4285 force flag_ira_loop_pressure if set via command line.
4286
4287 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
4288
4289 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
4290 (ashr_simd): New builtin handling DI mode.
4291 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
4292 (aarch64_sshr_simddi): New match pattern.
4293 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
4294 (vshrd_n_s64): Likewise.
4295 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
4296
4297 2014-01-23 Nick Clifton <nickc@redhat.com>
4298
4299 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
4300 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
4301 favour of mcu specific scripts.
4302 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
4303 430x multilibs.
4304
4305 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
4306 Alex Velenko <Alex.Velenko@arm.com>
4307
4308 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
4309 (vaddv_s16): Likewise.
4310 (vaddv_s32): Likewise.
4311 (vaddv_u8): Likewise.
4312 (vaddv_u16): Likewise.
4313 (vaddv_u32): Likewise.
4314 (vaddvq_s8): Likewise.
4315 (vaddvq_s16): Likewise.
4316 (vaddvq_s32): Likewise.
4317 (vaddvq_s64): Likewise.
4318 (vaddvq_u8): Likewise.
4319 (vaddvq_u16): Likewise.
4320 (vaddvq_u32): Likewise.
4321 (vaddvq_u64): Likewise.
4322 (vaddv_f32): Likewise.
4323 (vaddvq_f32): Likewise.
4324 (vaddvq_f64): Likewise.
4325 (vmaxv_f32): Likewise.
4326 (vmaxv_s8): Likewise.
4327 (vmaxv_s16): Likewise.
4328 (vmaxv_s32): Likewise.
4329 (vmaxv_u8): Likewise.
4330 (vmaxv_u16): Likewise.
4331 (vmaxv_u32): Likewise.
4332 (vmaxvq_f32): Likewise.
4333 (vmaxvq_f64): Likewise.
4334 (vmaxvq_s8): Likewise.
4335 (vmaxvq_s16): Likewise.
4336 (vmaxvq_s32): Likewise.
4337 (vmaxvq_u8): Likewise.
4338 (vmaxvq_u16): Likewise.
4339 (vmaxvq_u32): Likewise.
4340 (vmaxnmv_f32): Likewise.
4341 (vmaxnmvq_f32): Likewise.
4342 (vmaxnmvq_f64): Likewise.
4343 (vminv_f32): Likewise.
4344 (vminv_s8): Likewise.
4345 (vminv_s16): Likewise.
4346 (vminv_s32): Likewise.
4347 (vminv_u8): Likewise.
4348 (vminv_u16): Likewise.
4349 (vminv_u32): Likewise.
4350 (vminvq_f32): Likewise.
4351 (vminvq_f64): Likewise.
4352 (vminvq_s8): Likewise.
4353 (vminvq_s16): Likewise.
4354 (vminvq_s32): Likewise.
4355 (vminvq_u8): Likewise.
4356 (vminvq_u16): Likewise.
4357 (vminvq_u32): Likewise.
4358 (vminnmv_f32): Likewise.
4359 (vminnmvq_f32): Likewise.
4360 (vminnmvq_f64): Likewise.
4361
4362 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
4363
4364 * config/aarch64/aarch64-simd.md
4365 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
4366 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
4367 (*aarch64_mul3_elt<mode>): Likewise.
4368 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
4369 (*aarch64_mul3_elt_to_64v2df): Likewise.
4370 (*aarch64_mla_elt<mode>): Likewise.
4371 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
4372 (*aarch64_mls_elt<mode>): Likewise.
4373 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
4374 (*aarch64_fma4_elt<mode>): Likewise.
4375 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
4376 (*aarch64_fma4_elt_to_64v2df): Likewise.
4377 (*aarch64_fnma4_elt<mode>): Likewise.
4378 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4379 (*aarch64_fnma4_elt_to_64v2df): Likewise.
4380 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
4381 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
4382 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
4383 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
4384 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4385 (aarch64_sqdmull_lane<mode>_internal): Likewise.
4386 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4387
4388 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
4389
4390 * config/aarch64/aarch64-simd.md
4391 (aarch64_be_checked_get_lane<mode>): New define_expand.
4392 * config/aarch64/aarch64-simd-builtins.def
4393 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
4394 New builtin definition.
4395 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
4396 Use new safe be builtin.
4397
4398 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
4399
4400 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
4401 New define_insn.
4402 (aarch64_be_st1<mode>): Likewise.
4403 (aarch_ld1<VALL:mode>): Define_expand modified.
4404 (aarch_st1<VALL:mode>): Likewise.
4405 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
4406 (UNSPEC_ST1): Likewise.
4407
4408 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
4409
4410 * config/microblaze/microblaze.md: Add trap insn and attribute
4411
4412 2014-01-23 Dodji Seketeli <dodji@redhat.com>
4413
4414 PR preprocessor/58580
4415 * input.h (location_get_source_line): Take an additional line_size
4416 parameter.
4417 (void diagnostics_file_cache_fini): Declare new function.
4418 * input.c (struct fcache): New type.
4419 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
4420 New static constants.
4421 (diagnostic_file_cache_init, total_lines_num)
4422 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
4423 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
4424 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
4425 (get_next_line, read_next_line, goto_next_line, read_line_num):
4426 New static function definitions.
4427 (diagnostic_file_cache_fini): New function.
4428 (location_get_source_line): Take an additional output line_len
4429 parameter. Re-write using lookup_or_add_file_to_cache_tab and
4430 read_line_num.
4431 * diagnostic.c (diagnostic_finish): Call
4432 diagnostic_file_cache_fini.
4433 (adjust_line): Take an additional input parameter for the length
4434 of the line, rather than calculating it with strlen.
4435 (diagnostic_show_locus): Adjust the use of
4436 location_get_source_line and adjust_line with respect to their new
4437 signature. While displaying a line now, do not stop at the first
4438 null byte. Rather, display the zero byte as a space and keep
4439 going until we reach the size of the line.
4440 * Makefile.in: Add vec.o to OBJS-libcommon
4441
4442 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
4443 Ilya Tocar <ilya.tocar@intel.com>
4444
4445 * config/i386/avx512fintrin.h (_mm512_kmov): New.
4446 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
4447 (__builtin_ia32_kmov16): Ditto.
4448 * config/i386/i386.md (UNSPEC_KMOV): New.
4449 (kmovw): Ditto.
4450
4451 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
4452
4453 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
4454 (_mm512_storeu_si512): Ditto.
4455
4456 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
4457
4458 PR target/52125
4459 * rtl.h (get_referenced_operands): Declare.
4460 * recog.c (get_referenced_operands): New function.
4461 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
4462 operands have been referenced when recording LO_SUM references.
4463
4464 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
4465
4466 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
4467
4468 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
4469
4470 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
4471 Enable for generic and recent AMD targets.
4472
4473 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
4474
4475 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
4476 ARG_SIZE note when adjustment was eliminated.
4477
4478 2014-01-22 Jeff Law <law@redhat.com>
4479
4480 PR tree-optimization/59597
4481 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
4482 in file. Accept new argument REGISTERING and use it to modify
4483 dump output appropriately.
4484 (register_jump_thread): Corresponding changes.
4485 (mark_threaded_blocks): Reinstate code to cancel unprofitable
4486 thread paths involving joiner blocks. Add code to dump cancelled
4487 jump threading paths.
4488
4489 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
4490
4491 PR rtl-optimization/59477
4492 * lra-constraints.c (inherit_in_ebb): Process call for living hard
4493 regs. Update reloads_num and potential_reload_hard_regs for all insns.
4494
4495 2014-01-22 Tom Tromey <tromey@redhat.com>
4496
4497 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
4498 PARAMS.
4499 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
4500
4501 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
4502
4503 PR rtl-optimization/59896
4504 * lra-constraints.c (process_alt_operands): Check unused note for
4505 matched operands of insn with no output reloads.
4506
4507 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
4508
4509 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
4510 (mips_move_from_gpr_cost): Likewise.
4511
4512 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
4513
4514 PR rtl-optimization/59858
4515 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
4516 ira_class_hard_regs_num.
4517 (process_alt_operands): Increase reject for dying matched operand.
4518
4519 2014-01-21 Jakub Jelinek <jakub@redhat.com>
4520
4521 PR target/59003
4522 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
4523 smaller than size, perform several stores or loads and stores
4524 at dst + count - size to store or copy all of size bytes, rather
4525 than just last modesize bytes.
4526
4527 2014-01-20 DJ Delorie <dj@redhat.com>
4528
4529 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
4530 that CLOBBERs are REGs before propogating their values.
4531
4532 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
4533
4534 PR middle-end/59789
4535 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
4536 (cgraph_inline_failed_type): New function.
4537 * cgraph.h (DEFCIFCODE): Add type.
4538 (cgraph_inline_failed_type_t): New enum.
4539 (cgraph_inline_failed_type): New prototype.
4540 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
4541 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
4542 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
4543 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
4544 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
4545 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
4546 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
4547 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
4548 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
4549 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
4550 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
4551 OPTIMIZATION_MISMATCH.
4552 * tree-inline.c (expand_call_inline): Emit errors during
4553 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
4554
4555 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
4556
4557 PR target/59685
4558 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
4559 mode attribute in insn output.
4560
4561 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
4562
4563 * output.h (output_constant): Delete.
4564 * varasm.c (output_constant): Make private.
4565
4566 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
4567
4568 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
4569
4570 2014-01-20 Jakub Jelinek <jakub@redhat.com>
4571
4572 PR middle-end/59860
4573 * tree.h (fold_builtin_strcat): New prototype.
4574 * builtins.c (fold_builtin_strcat): No longer static. Add len
4575 argument, if non-NULL, don't call c_strlen. Optimize
4576 directly into __builtin_memcpy instead of __builtin_strcpy.
4577 (fold_builtin_2): Adjust fold_builtin_strcat caller.
4578 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
4579
4580 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
4581
4582 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4583 for SImode_address_operand operands, having only a REG argument.
4584
4585 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
4586
4587 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
4588 loader name using mbig-endian.
4589 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
4590
4591 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
4592
4593 * doc/invoke.texi (-march): Clarify documentation for AArch64.
4594 (-mtune): Likewise.
4595 (-mcpu): Likewise.
4596
4597 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
4598
4599 * config/aarch64/aarch64-protos.h
4600 (aarch64_cannot_change_mode_class_ptr): Declare.
4601 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
4602 aarch64_cannot_change_mode_class_ptr): New.
4603 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
4604 backend hook aarch64_cannot_change_mode_class.
4605
4606 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
4607
4608 * common/config/aarch64/aarch64-common.c
4609 (aarch64_handle_option): Don't handle any option order logic here.
4610 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
4611 selected_cpu, warn on architecture version mismatch.
4612 (aarch64_override_options): Fix parsing order for option strings.
4613
4614 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4615 Iain Sandoe <iain@codesourcery.com>
4616
4617 PR bootstrap/59496
4618 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
4619 warning. Amend comment to reflect current functionality.
4620
4621 2014-01-20 Richard Biener <rguenther@suse.de>
4622
4623 PR middle-end/59860
4624 * builtins.c (fold_builtin_strcat): Remove case better handled
4625 by tree-ssa-strlen.c.
4626
4627 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
4628
4629 * config/aarch64/aarch64.opt
4630 (mcpu, march, mtune): Make case-insensitive.
4631
4632 2014-01-20 Jakub Jelinek <jakub@redhat.com>
4633
4634 PR target/59880
4635 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
4636 if operands[1] is a REG or ZERO_EXTEND of a REG.
4637
4638 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
4639
4640 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
4641
4642 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
4643
4644 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
4645 long non-pic millicode calls.
4646
4647 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4648
4649 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
4650
4651 2014-01-19 Kito Cheng <kito@0xlab.org>
4652
4653 * builtins.c (expand_movstr): Check movstr expand done or fail.
4654
4655 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
4656 H.J. Lu <hongjiu.lu@intel.com>
4657
4658 PR target/59379
4659 * config/i386/i386.md (*lea<mode>): Zero-extend return register
4660 to DImode for zero-extended addresses.
4661
4662 2014-01-19 Jakub Jelinek <jakub@redhat.com>
4663
4664 PR rtl-optimization/57763
4665 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
4666 on the new indirect jump_insn and increment LABEL_NUSES (label).
4667
4668 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
4669
4670 PR bootstrap/59580
4671 PR bootstrap/59583
4672 * config.gcc (x86_archs): New variable.
4673 (x86_64_archs): Likewise.
4674 (x86_cpus): Likewise.
4675 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
4676 --with-arch/--with-cpu= options.
4677 Support --with-arch=/--with-cpu={nehalem,westmere,
4678 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
4679
4680 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
4681
4682 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
4683 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
4684
4685 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
4686
4687 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
4688
4689 2014-01-18 Jakub Jelinek <jakub@redhat.com>
4690
4691 PR target/58944
4692 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
4693 clear cpp_get_options (parse_in)->warn_unused_macros for
4694 ix86_target_macros_internal with cpp_define.
4695
4696 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
4697
4698 * jump.c (delete_related_insns): Keep (use (insn))s.
4699 * reorg.c (redundant_insn): Check for barriers too.
4700
4701 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
4702
4703 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
4704
4705 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
4706
4707 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
4708 call to $$dyncall when TARGET_LONG_CALLS is true.
4709
4710 2014-01-17 Jeff Law <law@redhat.com>
4711
4712 * ree.c (combine_set_extension): Temporarily disable test for
4713 changing number of hard registers.
4714
4715 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
4716
4717 PR middle-end/58125
4718 * ipa-inline-analysis.c (inline_free_summary):
4719 Do not free summary of aliases.
4720
4721 2014-01-17 Jakub Jelinek <jakub@redhat.com>
4722
4723 PR middle-end/59706
4724 * gimplify.c (gimplify_expr): Use create_tmp_var
4725 instead of create_tmp_var_raw. If cond doesn't have
4726 integral type, don't add the IFN_ANNOTATE builtin at all.
4727
4728 2014-01-17 Martin Jambor <mjambor@suse.cz>
4729
4730 PR ipa/59736
4731 * ipa-cp.c (prev_edge_clone): New variable.
4732 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
4733 Also resize prev_edge_clone vector.
4734 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
4735 (ipcp_edge_removal_hook): New function.
4736 (ipcp_driver): Register ipcp_edge_removal_hook.
4737
4738 2014-01-17 Andrew Pinski <apinski@cavium.com>
4739 Steve Ellcey <sellcey@mips.com>
4740
4741 PR target/59462
4742 * config/mips/mips.c (mips_print_operand): Check operand mode instead
4743 of operator mode.
4744
4745 2014-01-17 Jeff Law <law@redhat.com>
4746
4747 PR middle-end/57904
4748 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
4749 so that pass_ccp runs first.
4750
4751 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
4752
4753 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
4754 (ix86_adjust_cost): Use !TARGET_XXX.
4755 (do_reorder_for_imul): Likewise.
4756 (swap_top_of_ready_list): Likewise.
4757 (ix86_sched_reorder): Likewise.
4758
4759 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
4760
4761 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4762 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
4763 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
4764 (intel_memset): New. Duplicate slm_memset.
4765 (intel_cost): New. Duplicate slm_cost.
4766 (m_INTEL): New macro.
4767 (processor_target_table): Add "intel".
4768 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
4769 with PROCESSOR_INTEL for "intel".
4770 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
4771 PROCESSOR_SILVERMONT.
4772 (ix86_issue_rate): Likewise.
4773 (ix86_adjust_cost): Likewise.
4774 (ia32_multipass_dfa_lookahead): Likewise.
4775 (swap_top_of_ready_list): Likewise.
4776 (ix86_sched_reorder): Likewise.
4777 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
4778 instead of TARGET_OPT_AGU.
4779 * config/i386/i386.h (TARGET_INTEL): New.
4780 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
4781 (processor_type): Add PROCESSOR_INTEL.
4782 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
4783 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
4784
4785 2014-01-17 Marek Polacek <polacek@redhat.com>
4786
4787 PR c/58346
4788 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
4789 size is zero.
4790
4791 2014-01-17 Richard Biener <rguenther@suse.de>
4792
4793 PR tree-optimization/46590
4794 * opts.c (default_options_table): Add entries for
4795 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
4796 all enabled at -O1 but not for -Og.
4797 * common.opt (fbranch-count-reg): Remove Init(1).
4798 (fmove-loop-invariants): Likewise.
4799 (ftree-pta): Likewise.
4800
4801 2014-01-17 Jakub Jelinek <jakub@redhat.com>
4802
4803 * config/i386/i386.c (ix86_data_alignment): For compatibility with
4804 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
4805 decls to at least the GCC 4.8 used alignments.
4806
4807 PR fortran/59440
4808 * tree-nested.c (convert_nonlocal_reference_stmt,
4809 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
4810 of GIMPLE_BIND stmts, adjust associated decls.
4811
4812 2014-01-17 Richard Biener <rguenther@suse.de>
4813
4814 PR tree-optimization/46590
4815 * vec.h (vec<>::bseach): New member function implementing
4816 binary search according to C89 bsearch.
4817 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
4818 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
4819 bitmap pointer again. Make accesses_in_loop a flat array.
4820 (mem_ref_obstack): New global.
4821 (outermost_indep_loop): Adjust for mem_ref->stored changes.
4822 (mark_ref_stored): Likewise.
4823 (ref_indep_loop_p_2): Likewise.
4824 (set_ref_stored_in_loop): New helper function.
4825 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
4826 (memref_free): Adjust.
4827 (record_mem_ref_loc): Simplify.
4828 (gather_mem_refs_stmt): Adjust.
4829 (sort_locs_in_loop_postorder_cmp): New function.
4830 (analyze_memory_references): Sort accesses_in_loop after
4831 loop postorder number.
4832 (find_ref_loc_in_loop_cmp): New function.
4833 (for_all_locs_in_loop): Find relevant cluster of locs in
4834 accesses_in_loop and iterate without recursion.
4835 (execute_sm): Avoid uninit warning.
4836 (struct ref_always_accessed): Simplify.
4837 (ref_always_accessed::operator ()): Likewise.
4838 (ref_always_accessed_p): Likewise.
4839 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
4840 loop postorder numbers here.
4841 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
4842 numbers.
4843
4844 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
4845
4846 PR c++/57945
4847 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
4848 on decls for which assemble_alias has been called.
4849
4850 2014-01-17 Nick Clifton <nickc@redhat.com>
4851
4852 * config/msp430/msp430.opt: (mcpu): New option.
4853 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
4854 (msp430_option_override): Parse target_cpu. If the MCU name
4855 matches a generic string, clear target_mcu.
4856 (msp430_attr): Allow numeric interrupt values up to 63.
4857 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
4858 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
4859 option.
4860 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
4861 Add mcpu matches.
4862 * config/msp430/msp430.md (popm): Use %J rather than %I.
4863 (addsi3): Use msp430_nonimmediate_operand for operand 2.
4864 (addhi_cy_i): Use immediate_operand for operand 2.
4865 * doc/invoke.texi: Document -mcpu option.
4866
4867 2014-01-17 Richard Biener <rguenther@suse.de>
4868
4869 PR rtl-optimization/38518
4870 * df.h (df_analyze_loop): Declare.
4871 * df-core.c: Include cfgloop.h.
4872 (df_analyze_1): Split out main part of df_analyze.
4873 (df_analyze): Adjust.
4874 (loop_inverted_post_order_compute): New function.
4875 (loop_post_order_compute): Likewise.
4876 (df_analyze_loop): New function avoiding whole-function
4877 postorder computes.
4878 * loop-invariant.c (find_defs): Use df_analyze_loop.
4879 (find_invariants): Adjust.
4880 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
4881
4882 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
4883
4884 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
4885 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
4886
4887 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
4888
4889 * ipa-ref.c (ipa_remove_stmt_references): Fix references
4890 traversal when removing references.
4891
4892 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
4893
4894 PR ipa/59775
4895 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
4896
4897 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
4898
4899 PR middle-end/56791
4900 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
4901 pushing a reload for an autoinc when we had previously reloaded an
4902 inner part of the address.
4903
4904 2014-01-16 Jakub Jelinek <jakub@redhat.com>
4905
4906 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
4907 field.
4908 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
4909 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
4910 when not giving up or versioning for alias only because of
4911 loop->safelen.
4912 (vect_analyze_data_ref_dependences): Set to true.
4913 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
4914 is a GIMPLE_PHI.
4915 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
4916 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
4917 to the condition.
4918
4919 PR middle-end/58344
4920 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
4921
4922 PR target/59839
4923 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
4924 operand 0 predicate for gathers, use a new pseudo as subtarget.
4925
4926 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
4927
4928 PR middle-end/59609
4929 * lra-constraints.c (process_alt_operands): Add printing debug info.
4930 Check absence of input/output reloads for matched operands too.
4931
4932 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
4933
4934 PR rtl-optimization/59835
4935 * ira.c (ira_init_register_move_cost): Increase cost for
4936 impossible modes.
4937
4938 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
4939
4940 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
4941
4942 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
4943
4944 PR target/59780
4945 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
4946 non-register objects. Use gen_(high/low)part more consistently.
4947 Fix assertions.
4948
4949 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4950
4951 PR target/59844
4952 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
4953 endian support, remove tests for WORDS_BIG_ENDIAN.
4954 (p8_mfvsrd_3_<mode>): Likewise.
4955 (reload_gpr_from_vsx<mode>): Likewise.
4956 (reload_gpr_from_vsxsf): Likewise.
4957 (p8_mfvsrd_4_disf): Likewise.
4958
4959 2014-01-16 Richard Biener <rguenther@suse.de>
4960
4961 PR rtl-optimization/46590
4962 * lcm.c (compute_antinout_edge): Use postorder iteration.
4963 (compute_laterin): Use inverted postorder iteration.
4964
4965 2014-01-16 Nick Clifton <nickc@redhat.com>
4966
4967 PR middle-end/28865
4968 * varasm.c (output_constant): Return the number of bytes actually
4969 emitted.
4970 (output_constructor_array_range): Update the field size with the
4971 number of bytes emitted by output_constant.
4972 (output_constructor_regular_field): Likewise. Also do not
4973 complain if the total number of bytes emitted is now greater
4974 than the expected fieldpos.
4975 * output.h (output_constant): Update prototype and descriptive comment.
4976
4977 2014-01-16 Marek Polacek <polacek@redhat.com>
4978
4979 PR middle-end/59827
4980 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
4981 it is error_mark_node.
4982
4983 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
4984
4985 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
4986 VALID_AVX256_REG_OR_OI_MODE.
4987
4988 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
4989
4990 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
4991 current procedure should be profiled.
4992
4993 2014-01-15 Andrew Pinski <apinski@cavium.com>
4994
4995 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
4996 of moving from/to the STACK_REG register class.
4997
4998 2014-01-15 Richard Henderson <rth@redhat.com>
4999
5000 PR debug/54694
5001 * reginfo.c (global_regs_decl): Globalize.
5002 * rtl.h (global_regs_decl): Declare.
5003 * ira.c (do_reload): Diagnose frame_pointer_needed and it
5004 reserved via global_regs.
5005
5006 2014-01-15 Teresa Johnson <tejohnson@google.com>
5007
5008 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
5009
5010 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
5011
5012 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
5013 and vmulosh rather than call gen_vec_widen_smult_*.
5014 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
5015 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
5016 (vec_widen_smult_even_v16qi): Likewise.
5017 (vec_widen_umult_even_v8hi): Likewise.
5018 (vec_widen_smult_even_v8hi): Likewise.
5019 (vec_widen_umult_odd_v16qi): Likewise.
5020 (vec_widen_smult_odd_v16qi): Likewise.
5021 (vec_widen_umult_odd_v8hi): Likewise.
5022 (vec_widen_smult_odd_v8hi): Likewise.
5023 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
5024 vmuloub rather than call gen_vec_widen_umult_*.
5025 (vec_widen_umult_lo_v16qi): Likewise.
5026 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
5027 vmulosb rather than call gen_vec_widen_smult_*.
5028 (vec_widen_smult_lo_v16qi): Likewise.
5029 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
5030 rather than call gen_vec_widen_umult_*.
5031 (vec_widen_umult_lo_v8hi): Likewise.
5032 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
5033 rather than call gen_vec_widen_smult_*.
5034 (vec_widen_smult_lo_v8hi): Likewise.
5035
5036 2014-01-15 Jeff Law <law@redhat.com>
5037
5038 PR tree-optimization/59747
5039 * ree.c (find_and_remove_re): Properly handle case where a second
5040 eliminated extension requires widening a copy created for elimination
5041 of a prior extension.
5042 (combine_set_extension): Ensure that the number of hard regs needed
5043 for a destination register does not change when we widen it.
5044
5045 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
5046
5047 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
5048 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
5049 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
5050 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
5051 (avr-*-rtems*): Likewise.
5052 (bfin*-rtems*): Likewise.
5053 (moxie-*-rtems*): Likewise.
5054 (h8300-*-rtems*): Likewise.
5055 (i[34567]86-*-rtems*): Likewise.
5056 (lm32-*-rtems*): Likewise.
5057 (m32r-*-rtems*): Likewise.
5058 (m68k-*-rtems*): Likewise.
5059 (microblaze*-*-rtems*): Likewise.
5060 (mips*-*-rtems*): Likewise.
5061 (powerpc-*-rtems*): Likewise.
5062 (sh-*-rtems*): Likewise.
5063 (sparc-*-rtems*): Likewise.
5064 (sparc64-*-rtems*): Likewise.
5065 (v850-*-rtems*): Likewise.
5066 (m32c-*-rtems*): Likewise.
5067
5068 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
5069
5070 PR rtl-optimization/59511
5071 * ira.c (ira_init_register_move_cost): Use memory costs for some
5072 cases of register move cost calculations.
5073 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
5074 instead of BB frequency.
5075 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
5076 * lra-assigns.c (find_hard_regno_for): Ditto.
5077
5078 2014-01-15 Richard Biener <rguenther@suse.de>
5079
5080 PR tree-optimization/59822
5081 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
5082 (vectorizable_load): Use it to hoist defs of uses of invariant
5083 loads out of the loop.
5084
5085 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
5086 Kugan Vivekanandarajah <kuganv@linaro.org>
5087
5088 PR target/59695
5089 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
5090 truncation.
5091
5092 2014-01-15 Richard Biener <rguenther@suse.de>
5093
5094 PR rtl-optimization/59802
5095 * lcm.c (compute_available): Use inverted postorder to seed
5096 the initial worklist.
5097
5098 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5099
5100 PR target/59803
5101 * config/s390/s390.c (s390_preferred_reload_class): Don't return
5102 ADDR_REGS for invalid symrefs in non-PIC code.
5103
5104 2014-01-15 Jakub Jelinek <jakub@redhat.com>
5105
5106 PR other/58712
5107 * builtins.c (determine_block_size): Initialize *probable_max_size
5108 even if len_rtx is CONST_INT.
5109
5110 2014-01-14 Andrew Pinski <apinski@cavium.com>
5111
5112 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
5113 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
5114 (cortexa53_tunings): Likewise.
5115 (aarch64_sched_issue_rate): New function.
5116 (TARGET_SCHED_ISSUE_RATE): Define.
5117
5118 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
5119
5120 * ira-costs.c (find_costs_and_classes): Add missed
5121 ira_init_register_move_cost_if_necessary.
5122
5123 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
5124
5125 PR target/59787
5126 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
5127
5128 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
5129
5130 PR target/59794
5131 * config/i386/i386.c (type_natural_mode): Add a bool parameter
5132 to indicate if type is used for function return value. Warn ABI
5133 change if the vector mode isn't available for function return value.
5134 (ix86_function_arg_advance): Pass false to type_natural_mode.
5135 (ix86_function_arg): Likewise.
5136 (ix86_gimplify_va_arg): Likewise.
5137 (function_arg_32): Don't warn ABI change.
5138 (ix86_function_value): Pass true to type_natural_mode.
5139 (ix86_return_in_memory): Likewise.
5140 (ix86_struct_value_rtx): Removed.
5141 (TARGET_STRUCT_VALUE_RTX): Likewise.
5142
5143 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
5144
5145 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
5146 converting a conditional jump into a conditional return.
5147
5148 2014-01-14 Richard Biener <rguenther@suse.de>
5149
5150 PR tree-optimization/58921
5151 PR tree-optimization/59006
5152 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
5153 hoisting invariant stmts.
5154 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
5155 invariant loads on the preheader edge if possible.
5156
5157 2014-01-14 Joey Ye <joey.ye@arm.com>
5158
5159 * doc/plugin.texi (Building GCC plugins): Update to C++.
5160
5161 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
5162
5163 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
5164 (_mm_rcp28_round_ss): Ditto.
5165 (_mm_rsqrt28_round_sd): Ditto.
5166 (_mm_rsqrt28_round_ss): Ditto.
5167 (_mm_rcp28_sd): Ditto.
5168 (_mm_rcp28_ss): Ditto.
5169 (_mm_rsqrt28_sd): Ditto.
5170 (_mm_rsqrt28_ss): Ditto.
5171 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
5172 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
5173 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
5174 (IX86_BUILTIN_RCP28SD): Ditto.
5175 (IX86_BUILTIN_RCP28SS): Ditto.
5176 (IX86_BUILTIN_RSQRT28SD): Ditto.
5177 (IX86_BUILTIN_RSQRT28SS): Ditto.
5178 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
5179 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
5180 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
5181 (ix86_expand_special_args_builtin): Expand new FTYPE.
5182 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
5183 (srcp14<mode>): Make insn unary.
5184 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
5185 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
5186 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
5187 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
5188 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
5189 Fix rounding: make it SAE only.
5190 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
5191 Ditto.
5192 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
5193 Ditto.
5194 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
5195 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
5196 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
5197 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
5198 (round_saeonly_mask_scalar_operand4): Ditto.
5199 (round_saeonly_mask_scalar_op3): Ditto.
5200 (round_saeonly_mask_scalar_op4): Ditto.
5201
5202 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5203
5204 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5205 Implement -maltivec=be for vec_insert and vec_extract.
5206
5207 2014-01-10 DJ Delorie <dj@redhat.com>
5208
5209 * config/msp430/msp430.md (call_internal): Don't allow memory
5210 references with SP as the base register.
5211 (call_value_internal): Likewise.
5212 * config/msp430/constraints.md (Yc): New. For memory references
5213 that don't use SP as a base register.
5214
5215 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
5216 "an integer without a # prefix"
5217 * config/msp430/msp430.md (epilogue_helper): Use it.
5218
5219 2014-01-13 Jakub Jelinek <jakub@redhat.com>
5220
5221 PR target/59617
5222 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
5223 AVX512F gather builtins.
5224 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
5225 on gather decls with INTEGER_TYPE masktype.
5226 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
5227 directly into the builtin rather than hoisting it before loop.
5228
5229 PR tree-optimization/59387
5230 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
5231 (scev_const_prop): If folded_casts and type has undefined overflow,
5232 use force_gimple_operand instead of force_gimple_operand_gsi and
5233 for each added stmt if it is assign with
5234 arith_code_with_undefined_signed_overflow, call
5235 rewrite_to_defined_overflow.
5236 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
5237 gimple-fold.h instead.
5238 (arith_code_with_undefined_signed_overflow,
5239 rewrite_to_defined_overflow): Moved to ...
5240 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
5241 rewrite_to_defined_overflow): ... here. No longer static.
5242 Include gimplify-me.h.
5243 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
5244 rewrite_to_defined_overflow): New prototypes.
5245
5246 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5247
5248 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
5249
5250 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
5251
5252 * builtins.c (get_object_alignment_2): Minor tweak.
5253 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
5254
5255 2014-01-13 Christian Bruel <christian.bruel@st.com>
5256
5257 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
5258 optimized non constant lengths.
5259
5260 2014-01-13 Jakub Jelinek <jakub@redhat.com>
5261
5262 PR libgomp/59194
5263 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
5264 load as __atomic_load_N if possible.
5265
5266 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
5267
5268 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
5269 target parameter.
5270 (rs6000_expand_builtin): Adjust call.
5271
5272 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
5273
5274 PR target/58115
5275 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
5276 * config/rs6000/rs6000.c: Include target-globals.h.
5277 (rs6000_set_current_function): Instead of doing target_reinit
5278 unconditionally, use save_target_globals_default_opts and
5279 restore_target_globals.
5280
5281 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
5282 FPSCR.
5283 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
5284 (rs6000_expand_builtin): Handle mffs and mtfsf.
5285 (rs6000_init_builtins): Define mffs and mtfsf.
5286 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
5287 (rs6000_mffs): New pattern.
5288 (rs6000_mtfsf): New pattern.
5289
5290 2014-01-11 Bin Cheng <bin.cheng@arm.com>
5291
5292 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
5293 Start narrowing with START. Apply candidate-use pair
5294 and check overall cost in narrowing.
5295 (iv_ca_prune): Pass new argument.
5296
5297 2014-01-10 Jeff Law <law@redhat.com>
5298
5299 PR middle-end/59743
5300 * ree.c (combine_reaching_defs): Ensure the defining statement
5301 occurs before the extension when optimizing extensions with
5302 different source and destination hard registers.
5303
5304 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
5305
5306 PR ipa/58585
5307 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
5308 vtables into the type inheritance graph.
5309
5310 2014-01-10 Jakub Jelinek <jakub@redhat.com>
5311
5312 PR rtl-optimization/59754
5313 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
5314 modes in the REGNO != REGNO case.
5315
5316 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5317
5318 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
5319
5320 2014-01-10 Jakub Jelinek <jakub@redhat.com>
5321
5322 PR tree-optimization/59745
5323 * tree-predcom.c (tree_predictive_commoning_loop): Call
5324 free_affine_expand_cache if giving up because components is NULL.
5325
5326 * target-globals.c (save_target_globals): Allocate < 4KB structs using
5327 GC in payload of target_globals struct instead of allocating them on
5328 the heap and the larger structs separately using GC.
5329 * target-globals.h (struct target_globals): Make regs, hard_regs,
5330 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
5331 of GTY((skip)) and change type to void *.
5332 (reset_target_globals): Cast loads from those fields to corresponding
5333 types.
5334
5335 2014-01-10 Steve Ellcey <sellcey@mips.com>
5336
5337 PR plugins/59335
5338 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
5339 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
5340 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
5341
5342 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
5343
5344 PR target/59744
5345 * aarch64-modes.def (CC_Zmode): New flags mode.
5346 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
5347 represents an equality.
5348 (aarch64_get_condition_code): Handle CC_Zmode.
5349 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
5350
5351 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5352
5353 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
5354 extraction in good case.
5355
5356 2014-01-10 Richard Biener <rguenther@suse.de>
5357
5358 PR tree-optimization/59374
5359 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
5360 checking after SLP discovery. Mark stmts not participating
5361 in any SLP instance properly.
5362
5363 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5364
5365 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
5366 when handling a SET rtx.
5367
5368 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5369
5370 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
5371 (cortex-a57): Likewise.
5372 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
5373
5374 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5375
5376 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
5377 non-iwmmxt builtins.
5378
5379 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
5380
5381 PR ipa/58252
5382 PR ipa/59226
5383 * ipa-devirt.c record_target_from_binfo): Take as argument
5384 stack of binfos and lookup matching one for virtual inheritance.
5385 (possible_polymorphic_call_targets_1): Update.
5386
5387 2014-01-10 Huacai Chen <chenhc@lemote.com>
5388
5389 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
5390 kernel strings for Loongson-2E/2F/3A.
5391
5392 2014-01-10 Jakub Jelinek <jakub@redhat.com>
5393
5394 PR middle-end/59670
5395 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
5396 is_gimple_call before calling gimple_call_internal_p.
5397
5398 2014-01-09 Steve Ellcey <sellcey@mips.com>
5399
5400 * Makefile.in (TREE_FLOW_H): Remove.
5401 (TREE_SSA_H): Add file names from tree-flow.h.
5402 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
5403 * tree.h: Remove tree-flow.h reference.
5404 * hash-table.h: Remove tree-flow.h reference.
5405 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
5406 reference with tree-ssa-loop.h.
5407
5408 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5409
5410 * doc/invoke.texi: Add -maltivec={be,le} options, and document
5411 default element-order behavior for -maltivec.
5412 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
5413 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
5414 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
5415 when targeting big endian, at least for now.
5416 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
5417
5418 2014-01-09 Jakub Jelinek <jakub@redhat.com>
5419
5420 PR middle-end/47735
5421 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
5422 var satisfies use_register_for_decl, just take into account type
5423 alignment, rather than decl alignment.
5424
5425 PR tree-optimization/59622
5426 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
5427 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
5428 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
5429 Don't devirtualize for inplace at all. For targets.length () == 1,
5430 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
5431
5432 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
5433
5434 * config/i386/i386.md (cpu): Remove the unused btver1.
5435
5436 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
5437
5438 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
5439
5440 2014-01-09 Jakub Jelinek <jakub@redhat.com>
5441
5442 PR target/58115
5443 * tree-core.h (struct target_globals): New forward declaration.
5444 (struct tree_target_option): Add globals field.
5445 * tree.h (TREE_TARGET_GLOBALS): Define.
5446 (prepare_target_option_nodes_for_pch): New prototype.
5447 * target-globals.h (struct target_globals): Define even if
5448 !SWITCHABLE_TARGET.
5449 * tree.c (prepare_target_option_node_for_pch,
5450 prepare_target_option_nodes_for_pch): New functions.
5451 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
5452 * config/i386/i386.c: Include target-globals.h.
5453 (ix86_set_current_function): Instead of doing target_reinit
5454 unconditionally, use save_target_globals_default_opts and
5455 restore_target_globals.
5456
5457 2014-01-09 Richard Biener <rguenther@suse.de>
5458
5459 PR tree-optimization/59715
5460 * tree-cfg.h (split_critical_edges): Declare.
5461 * tree-cfg.c (split_critical_edges): Export.
5462 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
5463
5464 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
5465
5466 * cfgexpand.c (expand_stack_vars): Optionally disable
5467 asan stack protection.
5468 (expand_used_vars): Likewise.
5469 (partition_stack_vars): Likewise.
5470 * asan.c (asan_emit_stack_protection): Optionally disable
5471 after return stack usage.
5472 (instrument_derefs): Optionally disable memory access instrumentation.
5473 (instrument_builtin_call): Likewise.
5474 (instrument_strlen_call): Likewise.
5475 (asan_protect_global): Optionally disable global variables protection.
5476 * doc/invoke.texi: Added doc for new options.
5477 * params.def: Added new options.
5478 * params.h: Likewise.
5479
5480 2014-01-09 Jakub Jelinek <jakub@redhat.com>
5481
5482 PR rtl-optimization/59724
5483 * ifcvt.c (cond_exec_process_if_block): Don't call
5484 flow_find_head_matching_sequence with 0 longest_match.
5485 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
5486 non-active insns if !stop_after.
5487 (try_head_merge_bb): Revert 2014-01-07 changes.
5488
5489 2014-01-08 Jeff Law <law@redhat.com>
5490
5491 * ree.c (get_sub_rtx): New function, extracted from...
5492 (merge_def_and_ext): Here.
5493 (combine_reaching_defs): Use get_sub_rtx.
5494
5495 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
5496
5497 * cgraph.h (varpool_variable_node): Do not choke on null node.
5498
5499 2014-01-08 Catherine Moore <clm@codesourcery.com>
5500
5501 * config/mips/mips.md (simple_return): Attempt to use JRC
5502 for microMIPS.
5503 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
5504
5505 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
5506
5507 PR rtl-optimization/59137
5508 * reorg.c (steal_delay_list_from_target): Call update_block for
5509 elided insns.
5510 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
5511
5512 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5513
5514 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
5515 two duplicate entries.
5516
5517 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
5518
5519 Revert:
5520 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
5521
5522 * config/mips/mips.c (mips_truncated_op_cost): New function.
5523 (mips_rtx_costs): Adjust test for BADDU.
5524 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
5525
5526 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
5527
5528 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
5529 (*baddu_si): ...this new pattern.
5530
5531 2014-01-08 Jakub Jelinek <jakub@redhat.com>
5532
5533 PR ipa/59722
5534 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
5535
5536 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
5537
5538 PR middle-end/57748
5539 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
5540 inner_reference_p.
5541 (expand_expr, expand_normal): Adjust.
5542 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
5543 inner_reference_p. Use inner_reference_p to expand inner references.
5544 (store_expr): Adjust.
5545 * cfgexpand.c (expand_call_stmt): Adjust.
5546
5547 2014-01-08 Rong Xu <xur@google.com>
5548
5549 * gcov-io.c (gcov_var): Move from gcov-io.h.
5550 (gcov_position): Ditto.
5551 (gcov_is_error): Ditto.
5552 (gcov_rewrite): Ditto.
5553 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
5554 only part to libgcc/libgcov.h.
5555
5556 2014-01-08 Marek Polacek <polacek@redhat.com>
5557
5558 PR middle-end/59669
5559 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
5560
5561 2014-01-08 Marek Polacek <polacek@redhat.com>
5562
5563 PR sanitizer/59667
5564 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
5565
5566 2014-01-08 Jakub Jelinek <jakub@redhat.com>
5567
5568 PR rtl-optimization/59649
5569 * stor-layout.c (get_mode_bounds): For BImode return
5570 0 and STORE_FLAG_VALUE.
5571
5572 2014-01-08 Richard Biener <rguenther@suse.de>
5573
5574 PR middle-end/59630
5575 * gimple.h (is_gimple_builtin_call): Remove.
5576 (gimple_builtin_call_types_compatible_p): New.
5577 (gimple_call_builtin_p): New overload.
5578 * gimple.c (is_gimple_builtin_call): Remove.
5579 (validate_call): Rename to ...
5580 (gimple_builtin_call_types_compatible_p): ... this and export. Also
5581 check return types.
5582 (validate_type): New static function.
5583 (gimple_call_builtin_p): New overload and adjust.
5584 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
5585 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
5586 (gimple_fold_stmt_to_constant_1): Likewise.
5587 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
5588
5589 2014-01-08 Richard Biener <rguenther@suse.de>
5590
5591 PR middle-end/59471
5592 * gimplify.c (gimplify_expr): Gimplify register-register type
5593 VIEW_CONVERT_EXPRs to separate stmts.
5594
5595 2014-01-07 Jeff Law <law@redhat.com>
5596
5597 PR middle-end/53623
5598 * ree.c (combine_set_extension): Handle case where source
5599 and destination registers in an extension insn are different.
5600 (combine_reaching_defs): Allow source and destination registers
5601 in extension to be different under limited circumstances.
5602 (add_removable_extension): Remove restriction that the
5603 source and destination registers in the extension are the same.
5604 (find_and_remove_re): Emit a copy from the extension's
5605 destination to its source after the defining insn if
5606 the source and destination registers are different.
5607
5608 PR middle-end/59285
5609 * ifcvt.c (merge_if_block): If we are merging a block with more than
5610 one successor with a block with no successors, remove any BARRIER
5611 after the second block.
5612
5613 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
5614
5615 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
5616
5617 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
5618
5619 PR target/59652
5620 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
5621 for 14-bit register offsets when INT14_OK_STRICT is false.
5622
5623 2014-01-07 Roland Stigge <stigge@antcom.de>
5624 Michael Meissner <meissner@linux.vnet.ibm.com>
5625
5626 PR 57386/target
5627 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
5628 Only check TFmode for SPE constants. Don't check TImode or TDmode.
5629
5630 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
5631
5632 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
5633 -mcpu.
5634
5635 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
5636
5637 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
5638 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
5639 rtx is const0_rtx or not.
5640
5641 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
5642
5643 PR target/58115
5644 * target-globals.c (save_target_globals): Remove this_fn_optab
5645 handling.
5646 * toplev.c: Include optabs.h.
5647 (target_reinit): Temporarily restore the global options if another
5648 set of options are in force.
5649
5650 2014-01-07 Jakub Jelinek <jakub@redhat.com>
5651
5652 PR rtl-optimization/58668
5653 * cfgcleanup.c (flow_find_cross_jump): Don't count
5654 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
5655 to determine what is counted.
5656 (flow_find_head_matching_sequence): Use active_insn_p to determine
5657 what is counted.
5658 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
5659 counting change.
5660 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
5661 determine what is counted.
5662
5663 PR tree-optimization/59643
5664 * tree-predcom.c (split_data_refs_to_components): If one dr is
5665 read and one write, determine_offset fails and the write isn't
5666 in the bad component, just put the read into the bad component.
5667
5668 2014-01-07 Mike Stump <mikestump@comcast.net>
5669 Jakub Jelinek <jakub@redhat.com>
5670
5671 PR pch/59436
5672 * tree-core.h (struct tree_optimization_option): Change optabs
5673 type from unsigned char * to void *.
5674 * optabs.c (init_tree_optimization_optabs): Adjust
5675 TREE_OPTIMIZATION_OPTABS initialization.
5676
5677 2014-01-06 Jakub Jelinek <jakub@redhat.com>
5678
5679 PR target/59644
5680 * config/i386/i386.h (struct machine_function): Add
5681 no_drap_save_restore field.
5682 * config/i386/i386.c (ix86_save_reg): Use
5683 !cfun->machine->no_drap_save_restore instead of
5684 crtl->stack_realign_needed.
5685 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
5686 this function clears frame_pointer_needed. Set
5687 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
5688 and DRAP reg is needed.
5689
5690 2014-01-06 Marek Polacek <polacek@redhat.com>
5691
5692 PR c/57773
5693 * doc/implement-c.texi: Mention that other integer types are
5694 permitted as bit-field types in strictly conforming mode.
5695
5696 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
5697
5698 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
5699 is newly allocated.
5700
5701 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
5702
5703 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
5704
5705 2014-01-06 Martin Jambor <mjambor@suse.cz>
5706
5707 PR ipa/59008
5708 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
5709 to int.
5710 * ipa-prop.c (ipa_print_node_params): Fix indentation.
5711
5712 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
5713
5714 PR debug/59350
5715 PR debug/59510
5716 * var-tracking.c (add_stores): Preserve the value of the source even if
5717 we don't record the store.
5718
5719 2014-01-06 Terry Guo <terry.guo@arm.com>
5720
5721 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
5722
5723 2014-01-05 Iain Sandoe <iain@codesourcery.com>
5724
5725 PR bootstrap/59541
5726 * config/darwin.c (darwin_function_section): Adjust return values to
5727 correspond to optimisation changes made in r206070.
5728
5729 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
5730
5731 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
5732 from prefetch_block tune setting.
5733 (nocona_cost): Correct size of prefetch block to 64.
5734
5735 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
5736
5737 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
5738 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
5739 used to save the static chain register in the computation of the offset
5740 from which the FP registers need to be restored.
5741
5742 2014-01-04 Jakub Jelinek <jakub@redhat.com>
5743
5744 PR tree-optimization/59519
5745 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
5746 ICE if get_current_def (current_new_name) is already non-NULL, as long
5747 as it is a phi result of some other phi in *new_exit_bb that has
5748 the same argument.
5749
5750 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
5751 or vmovdqu* for misaligned_operand.
5752 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
5753 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
5754 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
5755 aligned_mem for AVX512F masked aligned load and store builtins and for
5756 non-temporal moves.
5757
5758 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
5759
5760 PR tree-optimization/59651
5761 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5762 Address range for negative step should be added by TYPE_SIZE_UNIT.
5763
5764 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
5765
5766 * config/m68k/m68k.c (handle_move_double): Handle pushes with
5767 overlapping registers also for registers other than the stack pointer.
5768
5769 2014-01-03 Marek Polacek <polacek@redhat.com>
5770
5771 PR other/59661
5772 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
5773 __builtin_FILE.
5774
5775 2014-01-03 Jakub Jelinek <jakub@redhat.com>
5776
5777 PR target/59625
5778 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
5779 asm goto as jump.
5780
5781 * config/i386/i386.md (MODE_SIZE): New mode attribute.
5782 (push splitter): Use <P:MODE_SIZE> instead of
5783 GET_MODE_SIZE (<P:MODE>mode).
5784 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
5785 (mov -1, reg peephole2): Likewise.
5786 * config/i386/sse.md (*mov<mode>_internal,
5787 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
5788 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
5789 *<code><mode>3, *andnot<mode>3<mask_name>,
5790 <mask_codefor><code><mode>3<mask_name>): Likewise.
5791 * config/i386/subst.md (mask_mode512bit_condition,
5792 sd_mask_mode512bit_condition): Likewise.
5793
5794 2014-01-02 Xinliang David Li <davidxl@google.com>
5795
5796 PR tree-optimization/59303
5797 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
5798 (dump_predicates): Better output format.
5799 (pred_equal_p): New function.
5800 (is_neq_relop_p): Ditto.
5801 (is_neq_zero_form_p): Ditto.
5802 (pred_expr_equal_p): Ditto.
5803 (pred_neg_p): Ditto.
5804 (simplify_pred): Ditto.
5805 (simplify_preds_2): Ditto.
5806 (simplify_preds_3): Ditto.
5807 (simplify_preds_4): Ditto.
5808 (simplify_preds): Ditto.
5809 (push_pred): Ditto.
5810 (push_to_worklist): Ditto.
5811 (get_pred_info_from_cmp): Ditto.
5812 (is_degenerated_phi): Ditto.
5813 (normalize_one_pred_1): Ditto.
5814 (normalize_one_pred): Ditto.
5815 (normalize_one_pred_chain): Ditto.
5816 (normalize_preds): Ditto.
5817 (normalize_cond_1): Remove function.
5818 (normalize_cond): Ditto.
5819 (is_gcond_subset_of): Ditto.
5820 (is_subset_of_any): Ditto.
5821 (is_or_set_subset_of): Ditto.
5822 (is_and_set_subset_of): Ditto.
5823 (is_norm_cond_subset_of): Ditto.
5824 (pred_chain_length_cmp): Ditto.
5825 (convert_control_dep_chain_into_preds): Type change.
5826 (find_predicates): Ditto.
5827 (find_def_preds): Ditto.
5828 (destroy_predicates_vecs): Ditto.
5829 (find_matching_predicates_in_rest_chains): Ditto.
5830 (use_pred_not_overlap_with_undef_path_pred): Ditto.
5831 (is_pred_expr_subset): Ditto.
5832 (is_pred_chain_subset_of): Ditto.
5833 (is_included_in): Ditto.
5834 (is_superset_of): Ditto.
5835
5836 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5837
5838 Update copyright years.
5839
5840 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
5841
5842 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
5843 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
5844 config/arc/arc.md, config/arc/arc.opt,
5845 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
5846 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
5847 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
5848 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
5849 config/linux-protos.h, config/linux.c, config/winnt-c.c,
5850 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
5851 vtable-verify.c, vtable-verify.h: Use the standard form for the
5852 copyright notice.
5853
5854 2014-01-02 Tobias Burnus <burnus@net-b.de>
5855
5856 * gcc.c (process_command): Update copyright notice dates.
5857 * gcov-dump.c: Ditto.
5858 * gcov.c: Ditto.
5859 * doc/cpp.texi: Bump @copying's copyright year.
5860 * doc/cppinternals.texi: Ditto.
5861 * doc/gcc.texi: Ditto.
5862 * doc/gccint.texi: Ditto.
5863 * doc/gcov.texi: Ditto.
5864 * doc/install.texi: Ditto.
5865 * doc/invoke.texi: Ditto.
5866
5867 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5868
5869 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
5870
5871 2014-01-01 Jakub Jelinek <jakub@redhat.com>
5872
5873 * config/i386/sse.md (*mov<mode>_internal): Guard
5874 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
5875
5876 PR rtl-optimization/59647
5877 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
5878 new_rtx into UNSIGNED_FLOAT rtxes.
5879 \f
5880 Copyright (C) 2014 Free Software Foundation, Inc.
5881
5882 Copying and distribution of this file, with or without modification,
5883 are permitted in any medium without royalty provided the copyright
5884 notice and this notice are preserved.