1 2015-03-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3 Backport of r214242, r214254, and bug fix patches from mainline
4 * config/rs6000/rs6000.c (context.h): New #include.
5 (tree-pass.h): Likewise.
6 (make_pass_analyze_swaps): New declaration.
7 (rs6000_option_override): Register swap-optimization pass.
8 (swap_web_entry): New class.
9 (special_handling_values): New enum.
10 (union_defs): New function.
11 (union_uses): Likewise.
12 (insn_is_load_p): Likewise.
13 (insn_is_store_p): Likewise.
14 (insn_is_swap_p): Likewise.
15 (rtx_is_swappable_p): Likewise.
16 (insn_is_swappable_p): Likewise.
17 (chain_purpose): New enum.
18 (chain_contains_only_swaps): New function.
19 (mark_swaps_for_removal): Likewise.
20 (swap_const_vector_halves): Likewise.
21 (adjust_subreg_index): Likewise.
22 (permute_load): Likewise.
23 (permute_store): Likewise.
24 (adjust_extract): Likewise.
25 (adjust_splat): Likewise.
26 (handle_special_swappables): Likewise.
27 (replace_swap_with_copy): Likewise.
28 (dump_swap_insn_table): Likewise.
29 (rs6000_analyze_swaps): Likewise.
30 (pass_data_analyze_swaps): New pass_data.
31 (pass_analyze_swaps): New class.
32 (pass_analyze_swaps::gate): New method.
33 (pass_analyze_swaps::execute): New method.
34 (make_pass_analyze_swaps): New function.
35 * config/rs6000/rs6000.opt (moptimize-swaps): New option.
36 * df.h (web_entry_base): New class, replacing struct web_entry.
37 (web_entry_base::pred): New method.
38 (web_entry_base::set_pred): Likewise.
39 (web_entry_base::unionfind_root): Likewise.
40 (web_entry_base::unionfind_union): Likewise.
41 (unionfind_root): Delete external reference.
42 (unionfind_union): Likewise.
43 (union_defs): Likewise.
44 * web.c (web_entry_base::unionfind_root): Convert to method.
45 (web_entry_base::unionfind_union): Likewise.
46 (web_entry): New class.
47 (union_match_dups): Convert to use class structure.
48 (union_defs): Likewise.
49 (entry_register): Likewise.
52 2015-01-23 Jakub Jelinek <jakub@redhat.com>
55 * omp-low.c (scan_sharing_clauses): Don't ignore
56 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
57 on target data/update constructs.
59 2015-01-23 Wei Mi <wmi@google.com>
61 Backported from trunk.
62 2015-01-22 Wei Mi <wmi@google.com>
64 PR rtl-optimization/64557
65 * dse.c (record_store): Call get_addr for mem_addr.
66 (check_mem_read_rtx): Likewise.
68 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
70 * config/s390/s390.md (atomic code attribute): Fix typo "ior" ->
73 2015-01-21 Wei Mi <wmi@google.com>
75 Backported from trunk.
76 2014-11-22 Jan Hubicka <hubicka@ucw.cz>
79 * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
80 as having abstract origin used.
81 * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
82 (clone_inlined_nodes): Copy abstract originflag.
83 * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.
85 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
87 Backport from mainline
88 * config/nios2/nios2.c (nios2_asm_file_end): Implement
89 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
91 (TARGET_ASM_FILE_END): Define.
93 2015-01-15 Martin Liska <mliska@suse.cz>
95 Backport from mainline
96 2014-11-27 Richard Biener <rguenther@suse.de>
99 * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
100 and instead return false when !fstrict-aliasing.
102 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
104 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
105 set the memory attributes in all cases but clear MEM_EXPR if need be.
107 2015-01-14 Jakub Jelinek <jakub@redhat.com>
109 Backported from mainline
110 2015-01-12 Jakub Jelinek <jakub@redhat.com>
113 * config/i386/i386.c (ix86_expand_prologue): Add
114 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
116 2015-01-13 Jakub Jelinek <jakub@redhat.com>
118 PR rtl-optimization/64286
119 * ree.c (combine_reaching_defs): Move part of comment earlier,
120 remove !SCALAR_INT_MODE_P check.
121 (add_removable_extension): Don't add vector mode
122 extensions if all uses of the source register aren't the same
125 2015-01-12 Jakub Jelinek <jakub@redhat.com>
127 PR tree-optimization/64563
128 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
129 instead of != VR_VARYING.
131 2015-01-14 Marek Polacek <polacek@redhat.com>
133 Backport from mainline
134 2015-01-13 Marek Polacek <polacek@redhat.com>
137 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
139 2015-01-13 Marc Glisse <marc.glisse@inria.fr>
142 * tree.c (build_qualified_type): Use a canonical type for
145 2015-01-13 Pat Haugen <pthaugen@us.ibm.com>
147 Backport from mainline
148 2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
151 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
152 input operands if only the second is inverted.
153 * config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
154 Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
155 rs6000_split_logical.
156 (*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
158 2015-01-13 Renlin Li <renlin.li@arm.com>
160 Backport from mainline:
161 2014-11-19 Renlin Li <renlin.li@arm.com>
164 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
166 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
168 Backport form mainline
169 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
172 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
174 2015-01-09 Jakub Jelinek <jakub@redhat.com>
176 PR rtl-optimization/64536
177 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
180 2015-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
182 Backport from mainline:
183 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
186 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
187 correct reload handler if -m32 -mpowerpc64 is used.
189 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
191 Backport from mainline:
192 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
194 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
196 * config/rs6000/t-rtems: Add e6500 multilibs.
198 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
200 Backport from mainline:
201 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
203 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
206 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
208 Backport from mainline:
209 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
211 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
214 2015-01-09 Renlin Li <renlin.li@arm.com>
216 Backport from mainline:
217 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
220 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
221 of __ARM_SIZEOF_WCHAR_T.
223 2015-01-08 Christian Bruel <christian.bruel@st.com>
226 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
228 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
230 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
231 instead of `m' constraint. Likewise for unnamed movb comparison
232 patterns using reg_before_reload_operand predicate.
233 * config/pa/predicates.md (reg_before_reload_operand): Tighten
234 predicate to reject register index and LO_SUM DLT memory forms
237 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
239 Backport from mainline:
240 2014-12-27 H.J. Lu <hongjiu.lu@intel.com>
243 * config/i386/i386.c (ix86_function_type_abi): Issue an error
244 when ms_abi attribute is used with x32.
246 2014-12-27 Uros Bizjak <ubizjak@gmail.com>
248 * config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
249 Emit movshdup for SSE3 and shufps otherwise.
250 (*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
251 Emit pshufd for SSE2 and shufps otherwise.
253 2014-12-24 Nick Clifton <nickc@redhat.com>
255 Backport from mainline:
256 2014-06-13 Nick Clifton <nickc@redhat.com>
258 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
259 requested alignment is active.
260 (LABEL_ALIGN): Likewise.
261 (LOOP_ALIGN): Likewise.
263 2014-03-25 Nick Clifton <nickc@redhat.com>
265 * config/rx/rx.c (rx_print_operand): Allow R operator to accept
268 2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
270 Backport from mainline
271 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
273 PR rtl-optimization/64010
274 * reload.c (push_reload): Before reusing a register contained
275 in an operand as input reload register, ensure that it is not
276 used in CALL_INSN_FUNCTION_USAGE.
278 2014-12-15 Jakub Jelinek <jakub@redhat.com>
281 * tsan.c (instrument_func_entry): Insert __tsan_func_entry
282 call on edge from entry block to single succ instead
283 of after labels of single succ of entry block.
285 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
287 Backported from mainline
288 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
290 PR rtl-optimization/64037
291 * combine.c (setup_incoming_promotions): Pass the argument
292 before any promotions happen to promote_function_mode.
294 2014-12-14 H.J. Lu <hongjiu.lu@intel.com>
296 Backported from mainline
297 2014-12-06 H.J. Lu <hongjiu.lu@intel.com>
300 * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
301 for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
303 2014-12-13 Jakub Jelinek <jakub@redhat.com>
305 Backported from mainline
306 2014-12-12 Jakub Jelinek <jakub@redhat.com>
308 PR tree-optimization/64269
309 * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
310 len2 or diff are too large.
312 2014-12-11 Eric Botcazou <ebotcazou@adacore.com>
314 * doc/md.texi (Insn Lengths): Fix description of (pc).
316 2014-12-11 Renlin Li <renlin.li@arm.com>
318 Backport from mainline
319 2014-12-11 Renlin Li <renlin.li@arm.com>
321 * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
323 (aarch64_override_options): Use selected_cpu's tuning.
325 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
327 Backport from mainline
328 2014-09-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
330 * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE): New
332 (XVCVUXDDP_SCALE): Likewise.
333 (XVCVDPSXDS_SCALE): Likewise.
334 (XVCVDPUXDS_SCALE): Likewise.
335 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
336 entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
337 VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
338 VSX_BUILTIN_XVCVDPUXDS_SCALE.
339 * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
341 * config/rs6000/rs6000.c (real.h): New include.
342 (rs6000_scale_v2df): New function.
343 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
344 (UNSPEC_VSX_XVCVUXDDP): Likewise.
345 (UNSPEC_VSX_XVCVDPSXDS): Likewise.
346 (UNSPEC_VSX_XVCVDPUXDS): Likewise.
347 (vsx_xvcvsxddp_scale): New define_expand.
348 (vsx_xvcvsxddp): New define_insn.
349 (vsx_xvcvuxddp_scale): New define_expand.
350 (vsx_xvcvuxddp): New define_insn.
351 (vsx_xvcvdpsxds_scale): New define_expand.
352 (vsx_xvcvdpsxds): New define_insn.
353 (vsx_xvcvdpuxds_scale): New define_expand.
354 (vsx_xvcvdpuxds): New define_insn.
355 * doc/extend.texi (vec_ctf): Add new prototypes.
358 (vec_splat): Likewise.
362 Backport from mainline
363 2014-08-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
365 * config/rs6000/altivec.h (vec_xl): New #define.
367 * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
368 (XXSPLTD_V2DI): Likewise.
369 (DIV_V2DI): Likewise.
370 (UDIV_V2DI): Likewise.
371 (MUL_V2DI): Likewise.
372 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
373 entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
374 VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
375 VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
376 * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
377 (UNSPEC_VSX_DIVSD): Likewise.
378 (UNSPEC_VSX_DIVUD): Likewise.
379 (UNSPEC_VSX_MULSD): Likewise.
380 (vsx_mul_v2di): New insn-and-split.
381 (vsx_div_v2di): Likewise.
382 (vsx_udiv_v2di): Likewise.
383 (vsx_xxspltd_<mode>): New insn.
385 Backport from mainline
386 2014-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
388 * config/rs6000/altivec.h (vec_cpsgn): New #define.
389 (vec_mergee): Likewise.
390 (vec_mergeo): Likewise.
391 (vec_cntlz): Likewise.
392 * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
393 entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
394 VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
396 * doc/extend.texi: Document various forms of vec_cpsgn,
397 vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
398 vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
399 vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
400 vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
401 vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
403 Backport from mainline
404 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
406 * config/rs6000/altivec.md (unspec enum): Fix typo in UNSPEC_VSLDOI.
407 (altivec_vsldoi_<mode>): Likewise.
410 2014-12-10 Jakub Jelinek <jakub@redhat.com>
412 PR tree-optimization/62021
413 * omp-low.c (simd_clone_adjust_return_type): Use
414 vector of pointer_sized_int_node types instead vector of pointer
416 (simd_clone_adjust_argument_types): Likewise.
418 2014-12-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
420 Backport from mainline:
421 2014-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
424 * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
425 for BUILT_IN_POW when flag_errno_math is present.
427 2014-12-10 Marek Polacek <polacek@redhat.com>
429 Backport from mainline
430 2014-12-10 Marek Polacek <polacek@redhat.com>
432 PR tree-optimization/61686
433 * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
436 2014-12-09 David Edelsohn <dje.gcc@gmail.com>
438 Backport from mainline
439 2014-12-05 David Edelsohn <dje.gcc@gmail.com>
441 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
442 alignment to section name. Increase default alignment to
445 2014-12-09 Uros Bizjak <ubizjak@gmail.com>
449 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
451 PR rtl-optimization/64037
452 * combine.c (setup_incoming_promotions): Pass the argument
453 before any promotions happen to promote_function_mode.
455 2014-12-09 Richard Biener <rguenther@suse.de>
457 PR tree-optimization/64191
458 * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
459 not relevant (nor are their uses).
461 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
463 Backport from mainline
464 2014-12-07 Oleg Endo <olegendo@gcc.gnu.org>
467 * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
469 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
471 Backport from mainline
472 2014-12-02 H.J. Lu <hongjiu.lu@intel.com>
475 * config/i386/i386.c (decide_alg): Stop only if there aren't
476 any usable algorithms.
478 2014-12-05 H.J. Lu <hongjiu.lu@intel.com>
480 Backport from mainline
481 2014-11-28 H.J. Lu <hongjiu.lu@intel.com>
483 PR rtl-optimization/64037
484 * combine.c (setup_incoming_promotions): Pass the argument
485 before any promotions happen to promote_function_mode.
487 2014-12-04 Tobias Burnus <burnus@net-b.de>
490 (ac_has_isl_schedule_constraints_compute_schedule):
492 * graphite-clast-to-gimple.c: For ISL 0.14, include deprecate headers.
493 * graphite-interchange.c: Ditto.
494 * graphite-poly.c: Ditto.
495 * graphite-sese-to-poly.c: Ditto.
496 * graphite-optimize-isl.c (getScheduleForBandList): Ditto.
497 Conditionally use ISL 0.13+ functions.
498 * config.in: Regenerate.
499 * configure: Regenerate.
501 2014-12-04 Jakub Jelinek <jakub@redhat.com>
504 * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
505 Handle COMPOUND_EXPR.
507 2014-12-03 Jakub Jelinek <jakub@redhat.com>
510 * expmed.c (expand_widening_mult): Return const0_rtx if
513 2014-12-03 Martin Jambor <mjambor@suse.cz>
516 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
517 type sizes before view_converting.
519 2014-12-03 Shanyao Chen <chenshanyao@huawei.com>
521 Backport from mainline
522 2014-11-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
525 * config/arm/arm.md (*movhi_insn): Use right formatting
528 2014-11-19 Felix Yang <felix.yang@huawei.com>
529 Shanyao Chen <chenshanyao@huawei.com>
532 * config/arm/arm.md (define_attr "arch"): Add v6t2.
533 (define_attr "arch_enabled"): Add test for the above.
534 (*movhi_insn_arch4): Add new alternative.
536 2014-12-03 Renlin Li <Renlin.Li@arm.com>
538 Backported from mainline
539 2014-12-03 Renlin Li <Renlin.Li@arm.com>
543 * ira.c (ira): Update preferred class.
545 2014-12-02 Uros Bizjak <ubizjak@gmail.com>
548 * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
549 using post-reload splitter. Use peephole2 pass instead.
550 (call_value_osf_tlsldm): Ditto.
551 (TLS_CALL): New int iterator.
552 (tls): New int attribute.
553 (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
554 and call_value_tlsldm using TLS_CALL int iterator.
556 2014-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
559 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
560 invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
562 2014-12-01 Richard Biener <rguenther@suse.de>
565 * tree.c (int_cst_hash_hash): Use TYPE_UID instead of
566 htab_hash_pointer to not break PCH.
568 2014-12-01 Martin Jambor <mjambor@suse.cz>
571 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
572 value of the argument to the type of the value in the condition.
574 2014-11-28 Jakub Jelinek <jakub@redhat.com>
576 Backported from mainline
577 2014-11-27 Jakub Jelinek <jakub@redhat.com>
580 * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
581 Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
582 not only if modifier is EXPAND_INITIALIZER, but whenever
583 COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
585 2014-11-19 Jakub Jelinek <jakub@redhat.com>
587 PR tree-optimization/63915
588 * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
589 true instead of false as last argument to gsi_replace.
592 * ubsan.c: Include tree-eh.h.
593 (instrument_bool_enum_load): Handle loads that can throw.
595 2014-10-31 Jakub Jelinek <jakub@redhat.com>
597 PR rtl-optimization/63659
598 * ree.c (update_reg_equal_equiv_notes): New function.
599 (combine_set_extension, transform_ifelse): Use it.
601 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
603 Backport from mainline.
604 2014-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
605 * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
608 2014-11-26 Richard Biener <rguenther@suse.de>
611 * tree-data-ref.c (split_constant_offset_1): Do not follow
612 SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
614 2014-11-26 Richard Biener <rguenther@suse.de>
616 Backport from mainline
617 2014-11-26 Richard Biener <rguenther@suse.de>
619 PR tree-optimization/62238
620 * tree-predcom.c (ref_at_iteration): Unshare the expression
621 before gimplifying it.
623 2014-11-25 Richard Biener <rguenther@suse.de>
625 PR tree-optimization/61927
626 * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
627 of group and pattern analysis to the one in GCC 4.8.
629 2014-11-07 Richard Biener <rguenther@suse.de>
631 PR tree-optimization/63605
632 * fold-const.c (fold_binary_loc): Properly use element_precision
633 for types that may not be scalar.
635 2014-10-28 Richard Biener <rguenther@suse.de>
638 * fold-const.c (fold_comparison): Properly guard simplifying
639 against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
641 2014-11-25 Rohit <rohitarulraj@freescale.com>
644 * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
645 added GCC hard register numbers for SPE high registers.
647 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
649 Backport from mainline
650 2014-11-23 Oleg Endo <olegendo@gcc.gnu.org>
653 * config/sh/sh_optimize_sett_clrt.cc
654 (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
655 of void. Abort at complex edges.
656 (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
659 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
661 Backport from mainline
662 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
666 * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
667 Do not emit bitwise not insn. Emit logical not insn sequence instead.
668 Adjust related comments throughout the file.
670 2014-11-22 Oleg Endo <olegendo@gcc.gnu.org>
672 Backport from mainline
673 2014-11-20 Segher Boessenkool <segher@kernel.crashing.org>
676 * config/sh/sh.c: Use signed char for signed field.
678 2014-11-22 Uros Bizjak <ubizjak@gmail.com>
680 * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
681 * config/i386/i386.c (ix86_option_override_internal): Do not increase
682 PARAM_MAX_COMPLETELY_PEELED_INSNS.
684 2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
687 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
688 the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
691 2014-11-21 Richard Biener <rguenther@suse.de>
693 PR tree-optimization/61750
694 * tree-ssa-forwprop.c (simplify_vce): Verify type sizes
695 match for the resulting VIEW_CONVERT_EXPR.
697 2014-11-19 Uros Bizjak <ubizjak@gmail.com>
700 * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
701 Output "b" and "nb" suffix for FP mode.
703 2014-11-19 Tom de Vries <tom@codesourcery.com>
705 Backport from mainline
706 PR tree-optimization/62167
707 * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
709 (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
712 2014-11-16 Eric Botcazou <ebotcazou@adacore.com>
714 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
715 * doc/tm.texi: Regenerate.
717 2014-11-14 Felix Yang <felix.yang@huawei.com>
719 Backport from mainline
720 2014-11-14 Felix Yang <felix.yang@huawei.com>
721 Jiji Jiang <jiangjiji@huawei.com>
723 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
724 VALL mode iterator instead of VALLDI.
726 2014-11-13 Teresa Johnson <tejohnson@google.com>
728 PR tree-optimization/63841
729 * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
731 2014-11-13 Christophe Lyon <christophe.lyon@linaro.org>
733 Backport from mainline
734 2014-11-02 Michael Collison <michael.collison@linaro.org>
736 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
737 to support vector modes.
738 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
740 2014-11-13 Eric Botcazou <ebotcazou@adacore.com>
742 * doc/tm.texi.in (SELECT_CC_MODE): Update example.
743 (REVERSIBLE_CC_MODE): Fix example.
744 (REVERSE_CONDITION): Fix typo.
745 * doc/tm.texi: Regenerate.
747 2014-11-12 Jakub Jelinek <jakub@redhat.com>
750 * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
751 chain instead of node->indirect_calls.
753 2014-11-11 Eric Botcazou <ebotcazou@adacore.com>
756 * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
757 smaller than 8 bytes.
758 (sparc_function_arg_1): Tweak.
759 (sparc_function_value_1): Tweak.
761 2014-11-08 Eric Botcazou <ebotcazou@adacore.com>
763 * config/arm/arm.c (arm_set_return_address): Mark the store as frame
765 (thumb_set_return_address): Likewise.
767 2014-11-07 Daniel Hellstrom <daniel@gaisler.com>
769 * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
770 * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
772 2014-11-07 Marek Polacek <polacek@redhat.com>
774 Backported from mainline
775 2014-10-23 Marek Polacek <polacek@redhat.com>
777 * c-ubsan.c (ubsan_instrument_shift): Perform the MINUS_EXPR
780 2014-11-06 John David Anglin <danglin@gcc.gnu.org>
782 * config/pa/pa.md (trap): New insn. Add "trap" to attribute type.
783 Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
786 2014-11-06 Daniel Hellstrom <daniel@gaisler.com>
788 * config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
789 * doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
790 * config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
792 * config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
793 * config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
794 * config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
795 * config/sparc/sparc.md (cpu): Add leon3v7.
796 * config/sparc/sparc.opt (enum processor_type): Add leon3v7.
798 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
801 * config/i386/i386.c (in_large_data_p): Reject automatic variables.
802 (ix86_encode_section_info): Do not check for non-automatic varibles
803 when setting SYMBOL_FLAG_FAR_ADDR flag.
804 (x86_64_elf_select_section): Do not check ix86_cmodel here.
805 (x86_64_elf_unique_section): Ditto.
806 (x86_elf_aligned_common): Emit tab before .largecomm.
808 2014-11-05 Uros Bizjak <ubizjak@gmail.com>
810 Backport from mainline:
811 2014-10-20 Uros Bizjak <ubizjak@gmail.com>
813 * varasm.c (const_alias_set): Remove.
814 (init_varasm_once): Remove initialization of const_alias_set.
815 (build_constant_desc): Do not set alias set to const_alias_set.
817 Backport from mainline:
818 2014-10-14 Uros Bizjak <ubizjak@gmail.com>
820 PR rtl-optimization/63475
821 * alias.c (true_dependence_1): Always use get_addr to extract
822 true address operands from x_addr and mem_addr. Use extracted
823 address operands to check for references with alignment ANDs.
824 Use extracted address operands with find_base_term and
825 base_alias_check. For noncanonicalized operands call canon_rtx with
826 extracted address operand.
827 (write_dependence_1): Ditto.
828 (may_alias_p): Ditto. Remove unused calls to canon_rtx.
830 Backport from mainline:
831 2014-10-10 Uros Bizjak <ubizjak@gmail.com>
833 PR rtl-optimization/63483
834 * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
835 references when alignment ANDs are involved.
836 (write_dependence_p): Ditto.
837 (may_alias_p): Ditto.
839 2014-10-31 DJ Delorie <dj@redhat.com>
841 * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
843 2014-10-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
845 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
846 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
847 * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
848 (LINK_SPEC): Include CA53_ERR_835769_SPEC.
850 2014-10-31 Jakub Jelinek <jakub@redhat.com>
853 * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
854 MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
855 instead of vr0.min - vr1.min and vr0.max - vr1.max.
857 2014-10-30 Georg-Johann Lay <avr@gjlay.de>
860 * config/avr/avr-protos.h (regmask): New inline function.
861 (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
862 * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
863 (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
864 * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
865 (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
866 (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
867 * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
868 (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
869 (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
870 * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
871 (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
872 (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
873 (fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
876 2014-10-30 Jakub Jelinek <jakub@redhat.com>
878 * BASE-VER: Set to 4.9.3.
879 * DEV-PHASE: Set to prerelease.
881 2014-10-30 Release Manager
883 * GCC 4.9.2 released.
885 2014-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
887 * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
888 recog state after aarch64_prev_real_insn call.
890 2014-10-27 Guozhi Wei <carrot@google.com>
892 PR tree-optimization/63530
893 tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
894 pointer alignment according to DR_MISALIGNMENT.
896 2014-10-25 Yury Gribov <y.gribov@samsung.com>
899 * asan.c (enum asan_check_flags): Fixed ASAN_CHECK_LAST.
901 2014-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
904 * collect2.c (main): Filter out -fno-lto.
906 2014-10-22 Richard Biener <rguenther@suse.de>
907 Tobias Burnus <burnus@net-b.de>
910 * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
912 2014-10-21 Jakub Jelinek <jakub@redhat.com>
914 PR tree-optimization/63563
915 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
916 if either dra or drb stmts are not normal loads/stores.
918 2014-10-17 Jakub Jelinek <jakub@redhat.com>
920 * asan.c (instrument_derefs): Allow instrumentation of odd-sized
921 accesses even for -fsanitize=address.
922 (execute_sanopt): Only allow use_calls for -fsanitize=kernel-address.
924 PR tree-optimization/63302
925 * tree-ssa-reassoc.c (optimize_range_tests_xor,
926 optimize_range_tests_diff): Use !integer_pow2p () instead of
929 2014-10-16 Yury Gribov <y.gribov@samsung.com>
931 * asan.c (instrument_derefs): Enable unaligned path for KASan.
933 2014-10-16 Yury Gribov <y.gribov@samsung.com>
935 Backport from mainline
936 2014-10-03 Yury Gribov <y.gribov@samsung.com>
938 * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
939 don't emit empty ctors.
941 2014-10-16 Yury Gribov <y.gribov@samsung.com>
943 Backport from mainline
944 2014-09-01 Yury Gribov <y.gribov@samsung.com>
949 * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
950 (build_check_stmt): Likewise.
951 (instrument_strlen_call): Likewise.
952 (asan_expand_check_ifn): Likewise and fix types.
953 (maybe_cast_to_ptrmode): New function.
955 2014-10-16 Yury Gribov <y.gribov@samsung.com>
957 Backport from mainline
958 2014-08-18 Yury Gribov <y.gribov@samsung.com>
962 * asan.c (instrument_derefs): Fix bitfield check.
964 2014-10-16 Yury Gribov <y.gribov@samsung.com>
966 Backport from mainline
967 2014-08-11 Yury Gribov <y.gribov@samsung.com>
969 * asan.c (asan_check_flags): New enum.
970 (build_check_stmt_with_calls): Removed function.
971 (build_check_stmt): Split inlining logic to
972 asan_expand_check_ifn.
973 (instrument_derefs): Rename parameter.
974 (instrument_mem_region_access): Rename parameter.
975 (instrument_strlen_call): Likewise.
976 (asan_expand_check_ifn): New function.
977 (asan_instrument): Remove old code.
978 (pass_sanopt::execute): Change handling of
979 asan-instrumentation-with-call-threshold.
980 (asan_clear_shadow): Fix formatting.
981 (asan_function_start): Likewise.
982 (asan_emit_stack_protection): Likewise.
983 * doc/invoke.texi (asan-instrumentation-with-call-threshold):
985 * internal-fn.c (expand_ASAN_CHECK): New function.
986 * internal-fn.def (ASAN_CHECK): New internal function.
987 * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
989 (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
990 * tree.c: Small comment fix.
992 2014-10-16 Yury Gribov <y.gribov@samsung.com>
994 Backport from mainline
995 2014-08-11 Yury Gribov <y.gribov@samsung.com>
997 * gimple.c (gimple_call_fnspec): Support internal functions.
998 (gimple_call_return_flags): Use const.
999 * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
1000 * internal-fn.def: Add fnspec information.
1001 * internal-fn.h (internal_fn_fnspec): New function.
1002 (init_internal_fns): Declare new function.
1003 * internal-fn.c (internal_fn_fnspec_array): New global variable.
1004 (init_internal_fns): New function.
1005 * tree-core.h: Update macro call.
1006 * tree.c (build_common_builtin_nodes): Initialize internal fns.
1008 Backport from mainline
1009 2014-08-12 Yury Gribov <y.gribov@samsung.com>
1011 * internal-fn.c (init_internal_fns): Fix off-by-one.
1013 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1015 Backport from mainline
1016 2014-07-31 Yury Gribov <y.gribov@samsung.com>
1018 * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
1019 * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
1020 * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
1022 * gcc.c (sanitize_spec_function): Support new option.
1023 (SANITIZER_SPEC): Remove now redundant check.
1024 * opts.c (common_handle_option): Support new option.
1025 (finish_options): Check for incompatibilities.
1026 * toplev.c (process_options): Split userspace-specific checks.
1028 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1030 Backport from mainline
1031 2014-06-24 Max Ostapenko <m.ostapenko@partner.samsung.com>
1033 * asan.c (instrument_strlen_call): Do not instrument first byte in
1034 strlen if already instrumented.
1036 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1038 Backport from mainline
1039 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1041 * asan.c (check_func): New function.
1042 (maybe_create_ssa_name): Likewise.
1043 (build_check_stmt_with_calls): Likewise.
1044 (use_calls_p): Likewise.
1045 (report_error_func): Change interface.
1046 (build_check_stmt): Allow non-integer lengths; add support
1048 (asan_instrument): Likewise.
1049 (instrument_mem_region_access): Moved code to
1051 (instrument_derefs): Likewise.
1052 (instrument_strlen_call): Likewise.
1053 * cfgcleanup.c (old_insns_match_p): Add support for new
1055 * doc/invoke.texi: Describe new parameter.
1056 * params.def: Define new parameter.
1057 * params.h: Likewise.
1058 * sanitizer.def: Describe new builtins.
1060 Backport from mainline
1061 2014-06-16 Yury Gribov <y.gribov@samsung.com>
1063 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
1065 Backport from mainline
1066 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1070 * asan.c (build_check_stmt): Add condition.
1072 Backport from mainline
1073 2014-06-18 Yury Gribov <y.gribov@samsung.com>
1077 * asan.c (instrument_strlen_call): Fixed instrumentation of
1080 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1082 Backport from mainline
1083 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1085 * asan.c (report_error_func): Add SLOW_P argument, use
1086 BUILT_IN_ASAN_*_N if set.
1087 (build_check_stmt): Likewise.
1088 (instrument_derefs): If T has insufficient alignment,
1089 force same handling as for odd sizes.
1091 2014-10-16 Yury Gribov <y.gribov@samsung.com>
1093 Backport from mainline
1094 2014-05-30 Jakub Jelinek <jakub@redhat.com>
1096 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
1097 BUILT_IN_ASAN_REPORT_STORE_N): New.
1098 * asan.c (struct asan_mem_ref): Change access_size type to
1100 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
1101 update_mem_ref_hash_table): Likewise.
1102 (asan_mem_ref_hasher::hash): Hash in a HWI.
1103 (report_error_func): Change size_in_bytes argument to HWI.
1104 Use *_N builtins if size_in_bytes is larger than 16 or not power of
1106 (build_shadow_mem_access): New function.
1107 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
1108 Handle size_in_bytes not power of two or larger than 16.
1109 (instrument_derefs): Don't give up if size_in_bytes is not
1110 power of two or is larger than 16.
1112 2014-10-15 Vladimir Makarov <vmakarov@redhat.com>
1114 PR rtl-optimization/63448
1115 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
1116 (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
1117 (LRA_MAX_INHERITANCE_PASSES): Use it.
1118 (lra_constraint_iter_after_spill): Remove.
1119 (lra_assignment_iter): New.
1120 (lra_assignment_iter_after_spill): New.
1121 * lra-assigns.c (lra_assignment_iter): New.
1122 (lra_assignment_iter_after_spill): New.
1123 (former_reload_pseudo_spill_p): New.
1124 (spill_for): Set up former_reload_pseudo_spill_p.
1125 (setup_live_pseudos_and_spill_after_risky): Ditto.
1126 (assign_by_spills): Ditto.
1127 (lra_assign): Increment lra_assignment_iter. Print the iteration
1128 number. Reset former_reload_pseudo_spill_p. Check
1129 lra_assignment_iter_after_spill.
1130 * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize
1131 lra_assignment_iter and lra_assignment_iter_after_spill.
1132 * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
1133 (lra_constraints): Remove code with
1134 lra_assignment_iter_after_spill.
1136 2014-10-15 Eric Botcazou <ebotcazou@adacore.com>
1138 * stor-layout.c (self_referential_size): Do not promote arguments.
1140 2014-10-15 Richard Biener <rguenther@suse.de>
1142 Backport from mainline
1143 2014-08-15 Richard Biener <rguenther@suse.de>
1145 PR tree-optimization/62031
1146 * tree-data-ref.c (dr_analyze_indices): Do not set
1147 DR_UNCONSTRAINED_BASE.
1148 (dr_may_alias_p): All indirect accesses have to go the
1149 formerly DR_UNCONSTRAINED_BASE path.
1150 * tree-data-ref.h (struct indices): Remove
1151 unconstrained_base member.
1152 (DR_UNCONSTRAINED_BASE): Remove.
1154 2014-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1156 Backport from mainline r215880
1157 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1159 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1160 Issue a warning message when vec_lvsl or vec_lvsr is used with a
1161 little endian target.
1163 Backport from mainline r215882
1164 2014-10-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1166 * altivec.md (altivec_lvsl): New define_expand.
1167 (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
1168 (altivec_lvsr): New define_expand.
1169 (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
1170 * rs6000.c (rs6000_expand_builtin): Change to use
1171 altivec_lvs[lr]_direct; remove commented-out code.
1173 2014-10-10 Richard Biener <rguenther@suse.de>
1175 PR tree-optimization/63379
1176 * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
1177 a neutral operand for min/max when it is not a reduction chain.
1179 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1181 Backport from mainline
1182 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1184 * configure.ac: Add --enable-fix-cortex-a53-835769 option.
1185 * configure: Regenerate.
1186 * config/aarch64/aarch64.c (aarch64_override_options): Handle
1187 TARGET_FIX_ERR_A53_835769_DEFAULT.
1188 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
1190 * doc/install.texi (aarch64*-*-*): Document new
1191 --enable-fix-cortex-a53-835769 option.
1193 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1195 Backport from mainline
1196 2014-10-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1197 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1199 * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
1200 (ADJUST_INSN_LENGTH): Define.
1201 * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
1202 * config/aarch64/aarch64.c (is_mem_p): New function.
1203 (is_memory_op): Likewise.
1204 (aarch64_prev_real_insn): Likewise.
1205 (is_madd_op): Likewise.
1206 (dep_between_memop_and_curr): Likewise.
1207 (aarch64_madd_needs_nop): Likewise.
1208 (aarch64_final_prescan_insn): Likewise.
1209 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
1210 and -mno-fix-cortex-a53-835769 options.
1212 2014-10-10 Richard Biener <rguenther@suse.de>
1214 PR tree-optimization/63380
1215 * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
1218 2014-10-09 Richard Biener <rguenther@suse.de>
1220 PR tree-optimization/61969
1221 * tree-nrv.c (pass_nrv::execute): Properly test for automatic
1224 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1226 Backport from mainline
1227 2014-10-09 Uros Bizjak <ubizjak@gmail.com>
1229 PR rtl-optimization/57003
1230 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
1231 also check CALL_INSN_FUNCTION_USAGE for clobbers again after
1232 killing regs_invalidated_by_call.
1234 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1236 Backport from mainline
1237 2014-10-08 Oleg Endo <olegendo@gcc.gnu.org>
1240 * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
1241 atomic_fetch_<fetchop_name>si_hard,
1242 atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
1243 atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
1244 atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
1245 atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
1247 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1250 * varpool.c (ctor_for_folding): Do not fold WEAK symbols.
1252 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1255 * ipa-devirt.c (restrict_to_inner_class): Do not ICE when type is
1258 2014-10-03 Jan Hubicka <hubicka@ucw.cz>
1261 * lto-streamer-out.c (lto_output): Handle thunks correctly.
1262 * cgraphclones.c (duplicate_thunk_for_node): Get thunk's arguments.
1264 2014-10-03 Jakub Jelinek <jakub@redhat.com>
1267 * omp-low.c (taskreg_contexts): New variable.
1268 (scan_omp_parallel): Push newly created context into taskreg_contexts
1269 vector and move record layout code to finish_taskreg_scan.
1270 (scan_omp_task): Likewise.
1271 (finish_taskreg_scan): New function.
1272 (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
1273 vector elements and release it.
1275 2014-10-02 Martin Jambor <mjambor@suse.cz>
1277 PR tree-optimization/63375
1278 * tree-sra.c (build_access_from_expr_1): Disqualify volatile
1281 2014-10-01 Jakub Jelinek <jakub@redhat.com>
1284 * dwarf2out.c (loc_list_from_tree): Handle TARGET_MEM_REF and
1288 * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
1289 argument to avx2_permv2ti.
1292 Backported from mainline
1293 2014-08-01 James Greenhalgh <james.greenhalgh@arm.com>
1296 * cgraphunit.c (analyze_functions): Use get_create rather than get
1297 for decls which are clones of abstract functions.
1299 2014-10-01 Jakub Jelinek <jakub@redhat.com>
1301 Backported from mainline
1302 2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
1305 * haifa-sched.c (schedule_block): Advance cycle at the end of BB
1308 2014-09-10 Jan Hubicka <hubicka@ucw.cz>
1310 PR tree-optimization/63186
1311 * ipa-split.c (test_nonssa_use): Skip nonforced labels.
1312 (mark_nonssa_use): Likewise.
1313 (verify_non_ssa_vars): Verify all header blocks for label
1316 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1318 Backport from mainline
1319 2014-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1321 * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
1323 2014-10-01 Uros Bizjak <ubizjak@gmail.com>
1325 Backport from mainline
1326 2014-09-30 Uros Bizjak <ubizjak@gmail.com>
1328 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
1329 (fmod<mode>3): Ditto.
1330 (fpremxf4_i387): Ditto.
1331 (reminderxf3): Ditto.
1332 (reminder<mode>3): Ditto.
1333 (fprem1xf4_i387): Ditto.
1335 2014-09-30 David Malcolm <dmalcolm@redhat.com>
1338 * Makefile.in (PLUGIN_HEADERS): Add pass-instances.def.
1340 2014-09-30 Jakub Jelinek <jakub@redhat.com>
1343 * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
1344 or invert_jump_1 if jump isn't any_condjump_p.
1346 2014-09-29 James Clarke <jrtc27@jrtc27.com>
1347 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1350 * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
1352 * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
1353 kernel version check to avoid incrementing it after every major OS X
1355 (darwin_default_min_version): Avoid static memory buffer.
1357 2014-09-29 Charles Baylis <charles.baylis@linaro.org>
1359 Backport from mainline r212303
1361 * config/arm/arm-protos.h (arm_legitimate_address_p,
1362 arm_is_constant_pool_ref): Add prototypes.
1363 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
1364 (arm_is_constant_pool_ref) New function.
1365 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
1366 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
1367 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
1368 operand and remove pool_range and neg_pool_range attributes.
1369 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
1370 pool_range and neg_pool_range attributes.
1371 * config/arm/constraints.md (Uh): New constraint. (Uq): Don't allow
1372 constant pool references.
1374 2014-09-29 Jakub Jelinek <jakub@redhat.com>
1377 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
1378 of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
1379 use the alignment of avar rather than ovar.
1381 2014-09-28 John David Anglin <danglin@gcc.gnu.org>
1383 * config/pa/pa.c (pa_output_function_epilogue): Only update
1384 last_address when a nonnote insn is found.
1386 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1388 Backport from mainline
1389 2014-09-25 Nick Clifton <nickc@redhat.com>
1390 2014-09-25 Oleg Endo <olegendo@gcc.gnu.org>
1393 * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask,
1394 atomic_test_and_set_soft_imask): Fix typo in instruction sequence.
1396 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1398 Backport from mainline r215559
1399 2014-09-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1402 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
1403 Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
1405 2014-09-25 Jakub Jelinek <jakub@redhat.com>
1407 PR tree-optimization/63341
1408 * tree-vectorizer.h (vect_create_data_ref_ptr,
1409 vect_create_addr_base_for_vector_ref): Add another tree argument
1410 defaulting to NULL_TREE.
1411 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
1412 argument, pass it down to vect_create_addr_base_for_vector_ref.
1413 (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
1414 add that to base_offset too if non-NULL.
1415 * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
1416 for dr_explicit_realign_optimized set it to vector byte size
1417 - 1 instead of setting offset, pass byte_offset down to
1418 vect_create_data_ref_ptr.
1420 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1422 Backport from mainline
1423 2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1425 * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
1426 refine the constraints used on 32/64-bit floating point moves.
1428 (f64_vsx): Likewise.
1431 (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
1432 (BOOL_REGS_OP1): Likewise.
1433 (BOOL_REGS_OP2): Likewise.
1434 (BOOL_REGS_UNARY): Likewise.
1435 (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
1436 32/64-bit floating point moves. Do not use wa, instead use ww/ws
1437 for moves involving VSX registers. Do not use constraints that
1438 target VSX registers for decimal types.
1439 (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
1440 (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
1442 2014-09-22 Marek Polacek <polacek@redhat.com>
1444 Backport from mainline
1445 2014-05-21 Marek Polacek <polacek@redhat.com>
1448 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
1450 2014-09-22 Jakub Jelinek <jakub@redhat.com>
1453 * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
1454 insert a debug source bind stmt setting DEBUG_EXPR_DECL
1455 instead of a normal gimple assignment stmt.
1457 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1459 Back port from trunk:
1460 2014-09-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1462 * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
1463 for base_reg_operand to be common between LO_SUM and PLUS.
1464 (fusion_gpr_mem_combo): New predicate to match a fused address
1465 that combines the addis and memory offset address.
1467 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
1469 (emit_fusion_gpr_load): Likewise.
1471 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
1472 signature to pass each argument separately, rather than
1473 using an operands array. Rewrite the insns found by peephole2 to
1474 be a single insn, rather than hoping the insns will still be
1475 together when the peephole pass is done. Drop being called via a
1477 (emit_fusion_gpr_load): Change calling signature to be called from
1478 the fusion_gpr_load_<mode> insns with a combined memory address
1479 instead of the peephole pass passing the addis and offset
1482 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
1484 (power8 fusion peephole): Drop support for doing power8 via a
1485 normal peephole that was created by the peephole2 pass.
1486 (power8 fusion peephole2): Create a new insn with the fused
1487 address, so that the fused operation is kept together after
1488 register allocation is done.
1489 (fusion_gpr_load_<mode>): Likewise.
1491 2014-09-18 Jakub Jelinek <jakub@redhat.com>
1494 * asan.c (transform_statements): Don't instrument clobber statements.
1496 2014-09-17 Jakub Jelinek <jakub@redhat.com>
1499 * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
1500 if there are only debug stmts after the noreturn call, instead
1501 remove the debug stmts.
1503 2014-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
1505 * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
1506 Enable selection of 'posix' or no thread model.
1508 2014-09-16 John David Anglin <danglin@gcc.gnu.org>
1511 * config/pa/pa.c (pa_function_value): Directly handle aggregates
1512 that fit exactly in a word or double word.
1514 2014-09-15 Markus Trippelsdorf <markus@trippelsdorf.de>
1516 * doc/install.texi (Options specification): add
1517 --disable-libsanitizer item.
1519 2014-09-12 DJ Delorie <dj@redhat.com>
1521 * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
1522 (extend_and_shift1_hipsi2): Likewise.
1523 (extend_and_shift2_hipsi2): Likewise.
1525 2014-09-12 Martin Jambor <mjambor@suse.cz>
1528 * cgraph.h (cgraph_analyze_function): Declare.
1529 * cgraphunit.c: (analyze_function): Remove forward declaration,
1530 rename to cgraph_analyze_function, made external.
1531 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
1532 new decl properly. Analyze the new thunk if it is expanded.
1534 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
1536 Backport from mainline
1537 2014-09-11 H.J. Lu <hongjiu.lu@intel.com>
1540 * config/i386/i386.c (ix86_option_override_internal): Also turn
1541 off OPTION_MASK_ABI_X32 for -m16.
1543 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
1545 Backport from mainline.
1546 2014-09-11 James Greenhalgh <james.greenhalgh@arm.com>
1548 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
1550 (vmull_high_lane_s32): Likewise.
1551 (vmull_high_lane_u16): Likewise.
1552 (vmull_high_lane_u32): Likewise.
1554 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
1556 Backport r214946 from mainline
1557 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1559 * config/aarch64/aarch64.md (adddi3_aarch64): Set type to neon_add.
1561 2014-09-11 Alan Lawrence <alan.lawrence@arm.com>
1563 Backport r214953 from mainline
1564 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
1566 * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
1567 uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
1569 (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
1570 vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
1571 vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
1572 vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
1573 vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
1574 vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
1575 vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
1576 vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
1577 vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
1578 vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
1579 vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
1580 vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
1581 vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
1582 vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
1583 vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
1584 vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
1585 vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
1586 vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
1587 vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
1588 vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
1589 with int{32,16,8}_t.
1591 2014-09-11 Jason Merrill <jason@redhat.com>
1594 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
1596 2014-09-11 Georg-Johann Lay <avr@gjlay.de>
1598 Backport from 2014-09-11 trunk r215152.
1601 * config/avr/avr.md (*tablejump.3byte-pc): New insn.
1602 (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber.
1603 (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
1605 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1607 Backport from mainline
1608 2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1610 * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
1611 V2DF, V4SF, DF, and DI modes.
1612 (vsx_fmav2df2): Likewise.
1613 (vsx_float_fix_<mode>2): Likewise.
1614 (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
1616 2014-09-10 Xinliang David Li <davidxl@google.com>
1618 Backport from mainline
1620 * config/arm/arm.md (movcond_addsi): Handle case where source
1621 and target operands are the same.
1623 2014-09-10 Alan Modra <amodra@gmail.com>
1626 * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
1629 2014-09-09 Bill Schmidt <wschmidt@us.ibm.com>
1631 Backported from mainline
1632 2014-09-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1634 * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
1635 selection of 0th memory doubleword, regardless of endianness.
1637 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1639 Backport from mainline
1640 2014-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1642 * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
1646 2014-09-09 Jason Merrill <jason@redhat.com>
1650 * gimple-fold.c (can_refer_decl_in_current_unit_p): Don't allow
1651 reference to a DECL_EXTERNAL COMDAT.
1653 2014-09-09 Richard Biener <rguenther@suse.de>
1655 Backport from mainline
1656 2014-08-05 Richard Biener <rguenther@suse.de>
1658 PR rtl-optimization/61672
1659 * emit-rtl.h (mem_attrs_eq_p): Declare.
1660 * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs.
1661 * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
1662 * cfgcleanup.c (merge_memattrs): Likewise.
1665 2014-08-11 Richard Biener <rguenther@suse.de>
1667 PR tree-optimization/62075
1668 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
1669 handle uses in patterns.
1671 2014-08-14 Richard Biener <rguenther@suse.de>
1673 PR rtl-optimization/62079
1674 * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
1677 2014-08-26 Richard Biener <rguenther@suse.de>
1679 PR tree-optimization/62175
1680 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1681 expand possibly trapping operations.
1683 2014-09-08 DJ Delorie <dj@redhat.com>
1685 * doc/invoke.texi (MSP430 Options): Add -minrt.
1687 2014-09-05 Easwaran Raman <eraman@google.com>
1689 Backport from mainline
1690 PR rtl-optimization/62146
1691 * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
1692 hoisted instruction unconditional.
1694 2014-09-04 Guozhi Wei <carrot@google.com>
1697 * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
1698 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
1699 it into two patterns.
1700 (move_lo_quad_internal_be_<mode>): Likewise.
1702 2014-09-03 Martin Jambor <mjambor@suse.cz>
1705 * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
1706 pass-trough jump functions correctly.
1708 2014-09-03 Martin Jambor <mjambor@suse.cz>
1711 * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
1712 created replacements in ascending order of offsets.
1713 (known_aggs_to_agg_replacement_list): Likewise.
1715 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
1717 Backport from mainline
1718 2014-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
1721 * config/sh/sh.md (ashlsi3): Handle negative shift count for
1723 (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
1725 2014-09-02 Kaz Kojima <kkojima@gcc.gnu.org>
1727 Backport from mainline
1728 2014-08-25 Kaz Kojima <kkojima@gcc.gnu.org>
1731 * config/sh/predicates.md (general_extend_operand): Disable
1732 TRUNCATE before reload completes.
1734 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
1736 Backport from mainline
1737 2014-09-01 Oleg Endo <olegendo@gcc.gnu.org>
1740 * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
1742 2014-09-01 Jakub Jelinek <jakub@redhat.com>
1745 * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
1746 returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
1747 (find_inc): Revert 2014-08-12 change.
1749 * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
1750 * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
1751 (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
1753 2014-09-01 Marek Polacek <polacek@redhat.com>
1755 Backport from mainline
1756 2014-08-21 Marek Polacek <polacek@redhat.com>
1759 * expr.c (is_aligning_offset): Remove logical not.
1761 2014-09-01 Marek Polacek <polacek@redhat.com>
1763 Backport from mainline
1764 2014-08-19 Marek Polacek <polacek@redhat.com>
1767 * cgraphunit.c (handle_alias_pairs): Fix condition.
1769 2014-08-30 John David Anglin <danglin@gcc.gnu.org>
1771 * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
1772 prefix to function labels when generating fast indirect calls.
1774 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
1776 Backport from mainline
1777 2014-08-27 Yvan Roux <yvan.roux@linaro.org>
1780 * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
1782 2014-08-27 Guozhi Wei <carrot@google.com>
1785 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
1786 amount before using it.
1788 2014-08-26 Joel Sherrill <joel.sherrill@oarcorp.com>
1790 * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
1792 2014-08-26 Marek Polacek <polacek@redhat.com>
1794 Backport from mainline
1795 2014-08-26 Marek Polacek <polacek@redhat.com>
1798 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
1799 LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
1801 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
1803 Backport from mainline
1804 2014-08-24 Oleg Endo <olegendo@gcc.gnu.org>
1807 * config/sh/sh.opt (musermode): Allow negative form.
1808 * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
1809 targets that don't support it.
1810 * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
1811 Document -mno-usermode option.
1813 2014-08-23 John David Anglin <danglin@gcc.gnu.org>
1816 * config/pa/pa.c (pa_output_function_epilogue): Don't set
1817 last_address when the current function is a thunk.
1818 (pa_asm_output_mi_thunk): When we don't have named sections or they
1819 are not being used, check that thunk can reach the stub table with a
1822 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
1824 Backport from mainline
1825 2014-08-22 Michael Meissner <meissner@linux.vnet.ibm.com>
1828 * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
1829 documentation to state it is only for VSX operations.
1831 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
1832 constraint only active if VSX.
1834 * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
1835 wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
1838 2014-08-21 Uros Bizjak <ubizjak@gmail.com>
1840 Backport from mainline
1841 2014-08-19 H.J. Lu <hongjiu.lu@intel.com>
1843 * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
1844 destination if it is used in source.
1845 (*clz<mode>2_lzcnt_falsedep_1): Likewise.
1846 (*popcount<mode>2_falsedep_1): Likewise.
1848 Backport from mainline
1849 2014-08-18 Uros Bizjak <ubizjak@gmail.com>
1852 * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
1854 * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
1855 * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
1856 (ffs<mode>2): Do not expand with tzcnt for
1857 TARGET_AVOID_FALSE_DEP_FOR_BMI.
1858 (ffssi2_no_cmove): Ditto.
1859 (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
1860 (ctz<mode>2): New expander.
1861 (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
1862 (*ctz<mode>2_falsedep): New insn.
1863 (*ctz<mode>2): Rename from ctz<mode>2.
1864 (clz<mode>2_lzcnt): New expander.
1865 (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
1866 (*clz<mode>2_lzcnt_falsedep): New insn.
1867 (*clz<mode>2): Rename from ctz<mode>2.
1868 (popcount<mode>2): New expander.
1869 (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
1870 (*popcount<mode>2_falsedep): New insn.
1871 (*popcount<mode>2): Rename from ctz<mode>2.
1872 (*popcount<mode>2_cmp): Remove.
1873 (*popcountsi2_cmp_zext): Ditto.
1875 2014-08-20 Martin Jambor <mjambor@suse.cz>
1876 Wei Mi <wmi@google.com>
1880 * tree-ssa-operands.c (update_stmt_operands): Remove
1881 MODIFIED_NORETURN_CALLS.
1882 * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
1883 (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
1884 (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
1885 (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
1886 * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
1887 * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
1888 (gimple_call_set_ctrl_altering): New func.
1889 (gimple_call_ctrl_altering_p): Ditto.
1890 * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
1891 (make_blocks): Use gimple_call_initialize_ctrl_altering.
1892 (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
1893 (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
1894 remove MODIFIED_NORETURN_CALLS.
1896 2014-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1898 Backport from mainline.
1899 2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1901 * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
1902 Remove unnecessary attributes.
1904 2014-08-16 John David Anglin <danglin@gcc.gnu.org>
1907 * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
1909 * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
1910 (pa_output_addr_vec, pa_output_addr_diff_vec): New.
1911 * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
1913 * config/pa/pa.md (begin_brtab): Delete insn.
1914 (end_brtab): Likewise.
1916 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
1918 Backport from mainline:
1919 2014-08-15 Oleg Endo <olegendo@gcc.gnu.org>
1921 * doc/invoke.texi (SH options): Document missing processor variant
1922 options. Remove references to Hitachi. Undocument deprecated mspace
1925 2014-08-15 Tom de Vries <tom@codesourcery.com>
1927 Backport from mainline:
1928 2014-08-14 Tom de Vries <tom@codesourcery.com>
1930 PR rtl-optimization/62004
1931 PR rtl-optimization/62030
1932 * ifcvt.c (rtx_interchangeable_p): New function.
1933 (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
1935 2014-08-05 Richard Biener <rguenther@suse.de>
1937 * emit-rtl.h (mem_attrs_eq_p): Declare.
1938 * emit-rtl.c (mem_attrs_eq_p): Export.
1940 2014-08-15 Jakub Jelinek <jakub@redhat.com>
1943 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
1944 OMP_CLAUSE_SHARED for global vars if the global var is mentioned
1945 in OMP_CLAUSE_MAP in some outer target region.
1947 2014-08-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1949 Backport from mainline
1950 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1953 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
1954 move to subtarget in serial version if result is ignored.
1956 2014-08-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1958 Backport from mainline
1959 2014-08-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
1962 * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
1963 bitfields, that is when size doesn't match the size of type or the
1964 size of the constructor.
1966 2014-08-12 Felix Yang <fei.yang0953@gmail.com>
1968 PR tree-optimization/62073
1969 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
1972 2014-08-12 Jakub Jelinek <jakub@redhat.com>
1975 * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
1976 any registers that are used in mem_insn.
1978 2014-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1980 Backport patch from mainline
1981 2014-08-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1983 * config/rs6000/constraints.md (wh constraint): New constraint,
1984 for FP registers if direct move is available.
1985 (wi constraint): New constraint, for VSX/FP registers that can
1986 handle 64-bit integers.
1987 (wj constraint): New constraint for VSX/FP registers that can
1988 handle 64-bit integers for direct moves.
1989 (wk constraint): New constraint for VSX/FP registers that can
1990 handle 64-bit doubles for direct moves.
1991 (wy constraint): Make documentation match implementation.
1993 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
1994 scalar_in_vmx_p field to simplify tests of whether SFmode or
1995 DFmode can go in the Altivec registers.
1996 (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
1997 (rs6000_setup_reg_addr_masks): Likewise.
1998 (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
1999 field, and wh/wi/wj/wk constraints.
2000 (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
2001 the wh/wi/wj/wk constraints.
2002 (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
2003 upper registers, prefer VSX registers unless the operation is a
2004 memory operation with REG+OFFSET addressing.
2006 * config/rs6000/vsx.md (VSr mode attribute): Add support for
2007 DImode. Change SFmode to use ww constraint instead of d to allow
2008 SF registers in the upper registers.
2011 (VSr5): Fix thinko in comment.
2012 (VSa): New mode attribute that is an alternative to wa, that
2013 returns the VSX register class that a mode can go in, but may not
2014 be the preferred register class.
2015 (VS_64dm): New mode attribute for appropriate register classes for
2016 referencing 64-bit elements of vectors for direct moves and normal
2018 (VS_64reg): Likewise.
2019 (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
2020 register allocator to only registers the data type can handle.
2021 (vsx_le_perm_load_<mode>): Likewise.
2022 (vsx_le_perm_store_<mode>): Likewise.
2023 (vsx_xxpermdi2_le_<mode>): Likewise.
2024 (vsx_xxpermdi4_le_<mode>): Likewise.
2025 (vsx_lxvd2x2_le_<mode>): Likewise.
2026 (vsx_lxvd2x4_le_<mode>): Likewise.
2027 (vsx_stxvd2x2_le_<mode>): Likewise.
2028 (vsx_add<mode>3): Likewise.
2029 (vsx_sub<mode>3): Likewise.
2030 (vsx_mul<mode>3): Likewise.
2031 (vsx_div<mode>3): Likewise.
2032 (vsx_tdiv<mode>3_internal): Likewise.
2033 (vsx_fre<mode>2): Likewise.
2034 (vsx_neg<mode>2): Likewise.
2035 (vsx_abs<mode>2): Likewise.
2036 (vsx_nabs<mode>2): Likewise.
2037 (vsx_smax<mode>3): Likewise.
2038 (vsx_smin<mode>3): Likewise.
2039 (vsx_sqrt<mode>2): Likewise.
2040 (vsx_rsqrte<mode>2): Likewise.
2041 (vsx_tsqrt<mode>2_internal): Likewise.
2042 (vsx_fms<mode>4): Likewise.
2043 (vsx_nfma<mode>4): Likewise.
2044 (vsx_eq<mode>): Likewise.
2045 (vsx_gt<mode>): Likewise.
2046 (vsx_ge<mode>): Likewise.
2047 (vsx_eq<mode>_p): Likewise.
2048 (vsx_gt<mode>_p): Likewise.
2049 (vsx_ge<mode>_p): Likewise.
2050 (vsx_xxsel<mode>): Likewise.
2051 (vsx_xxsel<mode>_uns): Likewise.
2052 (vsx_copysign<mode>3): Likewise.
2053 (vsx_float<VSi><mode>2): Likewise.
2054 (vsx_floatuns<VSi><mode>2): Likewise.
2055 (vsx_fix_trunc<mode><VSi>2): Likewise.
2056 (vsx_fixuns_trunc<mode><VSi>2): Likewise.
2057 (vsx_x<VSv>r<VSs>i): Likewise.
2058 (vsx_x<VSv>r<VSs>ic): Likewise.
2059 (vsx_btrunc<mode>2): Likewise.
2060 (vsx_b2trunc<mode>2): Likewise.
2061 (vsx_floor<mode>2): Likewise.
2062 (vsx_ceil<mode>2): Likewise.
2063 (vsx_<VS_spdp_insn>): Likewise.
2064 (vsx_xscvspdp): Likewise.
2065 (vsx_xvcvspuxds): Likewise.
2066 (vsx_float_fix_<mode>2): Likewise.
2067 (vsx_set_<mode>): Likewise.
2068 (vsx_extract_<mode>_internal1): Likewise.
2069 (vsx_extract_<mode>_internal2): Likewise.
2070 (vsx_extract_<mode>_load): Likewise.
2071 (vsx_extract_<mode>_store): Likewise.
2072 (vsx_splat_<mode>): Likewise.
2073 (vsx_xxspltw_<mode>): Likewise.
2074 (vsx_xxspltw_<mode>_direct): Likewise.
2075 (vsx_xxmrghw_<mode>): Likewise.
2076 (vsx_xxmrglw_<mode>): Likewise.
2077 (vsx_xxsldwi_<mode>): Likewise.
2078 (vsx_xscvdpspn): Tighten constraints to only use register classes
2080 (vsx_xscvspdpn): Likewise.
2081 (vsx_xscvdpspn_scalar): Likewise.
2083 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
2084 wj, and wk constraints.
2085 (GPR_REG_CLASS_P): New helper macro for register classes targeting
2086 general purpose registers.
2088 * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
2090 (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
2091 DImode instead of wm. Use wk constraint for direct move of DFmode
2093 (extendsidi2_lfiwax): Likewise.
2096 (movdi_internal64): Likewise.
2098 * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
2099 wk constraints. Make the wy constraint documentation match them
2102 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2104 Backport from mainline
2105 2014-08-04 Ganesh Gopalasubramanian
2106 <Ganesh.Gopalasubramanian@amd.com>
2108 * config/i386/i386.c (ix86_option_override_internal): Add
2109 PTA_RDRND and PTA_MOVBE for bdver4.
2111 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2113 Backport from mainline
2114 2014-08-04 Ganesh Gopalasubramanian
2115 <Ganesh.Gopalasubramanian@amd.com>
2117 * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
2118 family information. Handle BTVER2 cpu with cpuid family value.
2120 2014-08-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2122 Backport from mainline
2123 2014-06-16 Ganesh Gopalasubramanian
2124 <Ganesh.Gopalasubramanian@amd.com>
2126 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2127 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2128 handling 32-bit multiplication.
2130 2014-08-08 Guozhi Wei <carrot@google.com>
2132 * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
2134 2014-08-07 Ilya Tocar <ilya.tocar@intel.com>
2136 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
2139 2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
2142 * haifa-sched.c (advance_one_cycle): Fix dump.
2143 (schedule_block): Don't advance cycle if we are already at the
2144 beginning of the cycle.
2146 2014-08-06 Richard Biener <rguenther@suse.de>
2148 PR tree-optimization/61320
2149 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
2150 handle misaligned loads.
2152 2014-08-04 Rohit <rohitarulraj@freescale.com>
2155 * config/rs6000/rs6000.c
2156 (rs6000_reg_names): Add SPE high register names.
2157 (alt_reg_names): Likewise.
2158 (rs6000_dwarf_register_span): For SPE high registers, replace
2159 dwarf register numbers with GCC hard register numbers.
2160 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
2161 (rs6000_dbx_register_number): For SPE high registers, return dwarf
2162 register number for the corresponding GCC hard register number.
2163 * config/rs6000/rs6000.h
2164 (FIRST_PSEUDO_REGISTER): Update based on 32 newly added GCC hard
2165 register numbers for SPE high registers.
2166 (DWARF_FRAME_REGISTERS): Likewise.
2167 (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
2168 (DWARF_FRAME_REGNUM): Likewise.
2169 (FIXED_REGISTERS): Likewise.
2170 (CALL_USED_REGISTERS): Likewise.
2171 (CALL_REALLY_USED_REGISTERS): Likewise.
2172 (REG_ALLOC_ORDER): Likewise.
2173 (enum reg_class): Likewise.
2174 (REG_CLASS_NAMES): Likewise.
2175 (REG_CLASS_CONTENTS): Likewise.
2176 (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
2178 2014-08-01 Vladimir Makarov <vmakarov@redhat.com>
2180 * lra-constraints.c (remove_inheritance_pseudos): Process
2181 destination pseudo too.
2183 2014-08-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
2185 Backport from mainline
2186 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
2188 PR tree-optimization/61375
2189 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Cancel optimization if
2190 symbolic number cannot be represented in an unsigned HOST_WIDE_INT.
2191 (execute_optimize_bswap): Cancel optimization if CHAR_BIT != 8.
2193 2014-08-01 Richard Biener <rguenther@suse.de>
2195 PR tree-optimization/61964
2196 * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
2197 by structural equality.
2199 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2201 Backport from mainline
2202 2014-07-31 Oleg Endo <olegendo@gcc.gnu.org>
2205 * config/sh/sh.c (sh_legitimate_address_p,
2206 sh_legitimize_reload_address): Handle reg+reg address modes when
2207 ALLOW_INDEXED_ADDRESS is false.
2208 * config/sh/predicates.md (general_movsrc_operand,
2209 general_movdst_operand): Likewise.
2211 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2213 Backport from mainline
2214 2014-07-14 Jakub Jelinek <jakub@redhat.com>
2217 * config/i386/i386.c (classify_argument): Don't merge classes above
2220 2014-07-25 Uros Bizjak <ubizjak@gmail.com>
2222 * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
2224 2014-07-24 Kyle McMartin <kyle@redhat.com>
2226 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
2228 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2230 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
2232 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
2233 function. Issue -Wpsabi warning if future GCC releases will use
2234 different field alignment rules for this type.
2235 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
2236 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2237 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
2239 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2241 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): Issue
2242 -Wpsabi note when encountering a type where future GCC releases
2243 will apply different alignment requirements.
2245 2014-07-24 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2247 * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
2248 does not fit fully into floating-point registers, and there is still
2249 space in the register parameter area, issue -Wpsabi note that the ABI
2250 will change in a future GCC release.
2252 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2254 * config/arm/t-rtems-eabi: Add
2255 mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
2256 mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
2257 mbig-endian/mthumb/march=armv7-r, and
2258 mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
2261 2014-07-23 Sebastian Huber <sebastian.huber@embedded-brains.de>
2262 Chris Johns <chrisj@rtems.org>
2263 Joel Sherrill <joel.sherrill@oarcorp.com>
2265 * config.gcc: Add nios2-*-rtems*.
2266 * config/nios2/rtems.h: New file.
2267 * gcc/config/nios2/t-rtems: New file.
2269 2014-07-21 Peter Bergner <bergner@vnet.ibm.com>
2271 * config/rs6000/sysv4.h (LIBASAN_EARLY_SPEC): Define.
2272 (LIBTSAN_EARLY_SPEC): Likewise.
2274 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
2276 Backport from mainline
2277 2014-07-21 Uros Bizjak <ubizjak@gmail.com>
2280 * config/i386/avx512fintrin.h: Move constants for mantissa extraction
2281 out of #ifdef __OPTIMIZE__.
2283 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
2285 * expr.c (store_field): Handle VOIDmode for calls that return values
2286 in multiple locations.
2288 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
2290 * toplev.c (output_stack_usage): Adjust the location of the warning.
2292 2014-07-19 Daniel Cederman <cederman@gaisler.com>
2294 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
2295 (*membar_storeload): Disable for LEON3.
2297 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2299 Backport from mainline
2300 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
2303 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
2305 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2307 Backport from mainline
2308 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
2311 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
2312 Fix instruction constraint.
2313 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
2315 2014-07-17 Richard Biener <rguenther@suse.de>
2317 Backport from mainline
2318 2014-07-14 Richard Biener <rguenther@suse.de>
2320 PR tree-optimization/61779
2321 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
2322 simplifying a condition.
2324 2014-07-17 Richard Biener <rguenther@suse.de>
2326 PR rtl-optimization/61801
2327 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
2328 don't set reg_pending_barrier if it appears in a debug-insn.
2330 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
2332 Backport from trunk.
2334 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
2335 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
2336 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
2338 (cris_print_index, cris_print_operand, cris_constant_index_p)
2339 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
2340 (cris_address_cost): Ditto last CONSTANT_P.
2341 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
2342 callers changed. Yield cris_offsettable_symbol for non-PIC
2343 constant symbolic expressions including labels. Yield cris_unspec
2345 (cris_expand_pic_call_address): New parameter MARKERP. Set its
2346 target to pic_offset_table_rtx for calls that will likely go
2347 through PLT, const0_rtx when they can't. All callers changed.
2348 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
2349 symbolic expressions to be PICified. Remove second, redundant,
2350 assert on can_create_pseudo_p returning non-zero. Use
2351 replace_equiv_address_nv, not replace_equiv_address, for final
2353 * config/cris/cris.md ("movsi"): Move variable t to pattern
2354 toplevel. Adjust assert for new cris_symbol_type member. Use
2355 CONSTANT_P instead of CONSTANT_ADDRESS_P.
2356 ("*movsi_internal") <case 9>: Make check for valid unspec operands
2358 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
2359 ("call", "call_value"): Use second incoming operand as a marker
2360 for pic-offset-table-register being used.
2361 ("*expanded_call_non_v32", "*expanded_call_v32")
2362 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
2363 second incoming operand to CALL, match cris_call_type_marker.
2364 ("*expanded_call_value_side"): Ditto. Disable before reload_completed.
2365 ("*expanded_call_side"): Ditto. Fix typo in comment.
2366 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
2368 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
2369 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
2370 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
2371 users changed. Add members cris_offsettable_symbol and cris_unspec.
2372 (cris_symbol_type): Rename from cris_pic_symbol_type.
2373 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
2375 * config/cris/cris-protos.h (cris_symbol_type_of,
2376 cris_expand_pic_call_address): Adjust prototypes.
2377 (cris_legitimate_constant_p): New prototype.
2379 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
2380 an existing tmake_file. Don't add t-slibgcc and t-linux.
2382 2014-07-16 Jakub Jelinek <jakub@redhat.com>
2384 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
2385 on the FUNCTION_DECL.
2387 * BASE-VER: Set to 4.9.2.
2388 * DEV-PHASE: Set to prerelease.
2390 2014-07-16 Release Manager
2392 * GCC 4.9.1 released.
2394 2014-07-11 Rong Xu <xur@google.com>
2396 Backport r212462 trunk.
2398 * gcov-tool.c (gcov_output_files): Fix build error introduced in
2401 2014-07-10 Rong Xu <xur@google.com>
2403 Backport r212448 from trunk.
2405 Add gcov-tool: an offline gcda profile processing tool
2407 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
2408 (gcov_is_error): Ditto.
2409 (gcov_read_string): Ditto.
2410 (gcov_read_sync): Ditto.
2411 * gcov-io.h: Move counter defines to gcov-counter.def.
2412 * gcov-dump.c (tag_counters): Use gcov-counter.def.
2413 * coverage.c: Ditto.
2414 * gcov-tool.c: Offline gcda profile processing tool.
2415 (unlink_gcda_file): Remove one gcda file.
2416 (unlink_profile_dir): Remove gcda files from the profile path.
2417 (gcov_output_files): Output gcda files to an output dir.
2418 (profile_merge): Merge two profiles in directory.
2419 (print_merge_usage_message): Print merge usage.
2420 (merge_usage): Print merge usage and exit.
2421 (do_merge): Driver for profile merge sub-command.
2422 (profile_rewrite): Rewrite profile.
2423 (print_rewrite_usage_message): Print rewrite usage.
2424 (rewrite_usage): Print rewrite usage and exit.
2425 (do_rewrite): Driver for profile rewrite sub-command.
2426 (print_usage): Print gcov-info usage and exit.
2427 (print_version): Print gcov-info version.
2428 (process_args): Process arguments.
2429 (main): Main routine for gcov-tool.
2430 * Makefile.in: Build and install gcov-tool.
2431 * gcov-counter.def: New file split from gcov-io.h.
2432 * doc/gcc.texi: Include gcov-tool.texi.
2433 * doc/gcov-tool.texi: Document for gcov-tool.
2435 2014-07-10 Cary Coutant <ccoutant@google.com>
2437 Backport from trunk at r212211.
2439 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
2441 (resolve_addr_in_expr): When replacing the rtx in a location list
2442 entry, get a new address table entry.
2443 (dwarf2out_finish): Call index_location_lists even if there are no
2444 addr_index_table entries yet.
2446 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
2448 * doc/install.texi: Remove links to defunct package providers for
2451 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
2454 * function.c (allocate_struct_function): Revert r188667 change.
2456 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
2458 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
2460 Backport r211369 from trunk.
2461 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
2464 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
2465 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
2466 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
2467 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
2468 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
2469 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
2470 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
2471 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
2472 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
2475 2014-07-09 Alan Lawrence <alan.lawrence@arm.com>
2477 Backport r210219 from trunk.
2478 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2480 * config/arm/arm_neon.h: Update comment.
2481 * config/arm/neon-docgen.ml: Delete.
2482 * config/arm/neon-gen.ml: Delete.
2483 * doc/arm-neon-intrinsics.texi: Update comment.
2485 2014-07-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2487 Backport r211775 from trunk.
2488 2014-06-18 Terry Guo <terry.guo@arm.com>
2491 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
2494 2014-07-08 Jakub Jelinek <jakub@redhat.com>
2496 PR rtl-optimization/61673
2497 * combine.c (simplify_comparison): Test just mode's sign bit
2498 in tmode rather than the sign bit and any bits above it.
2500 2014-07-08 James Greenhalgh <james.greenhalgh@arm.com>
2502 Backport r212298 from trunk.
2503 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
2505 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
2506 (move_lo_quad_internal_be_<mode>): Likewise.
2507 (move_lo_quad_<mode>): Convert to define_expand.
2508 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
2509 (aarch64_simd_move_hi_quad_be_<mode>): New.
2510 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
2511 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
2512 (aarch64_combinez_be<mode>): New.
2513 (aarch64_combine<mode>): Convert to define_expand.
2514 (aarch64_combine_internal<mode>): New.
2515 (aarch64_simd_combine<mode>): Remove bogus RTL description.
2517 2014-07-08 Richard Biener <rguenther@suse.de>
2519 PR tree-optimization/61680
2520 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2521 Handle properly all read-write dependences with group accesses.
2523 PR tree-optimization/61681
2524 * tree-ssa-structalias.c (find_what_var_points_to): Expand
2525 NONLOCAL inside ESCAPED.
2527 2014-07-08 Alan Lawrence <alan.lawrence@arm.com>
2529 Backport r211502 from mainline.
2530 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
2533 * config/aarch64/aarch64-modes.def: Add V1DFmode.
2534 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
2537 2014-07-08 Jakub Jelinek <jakub@redhat.com>
2539 PR tree-optimization/61725
2540 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
2541 range, use range_includes_zerop_p instead of integer_zerop on
2542 vr0->min, only use log2 of max if min is not negative.
2544 2014-07-06 Gerald Pfeifer <gerald@pfeifer.com>
2546 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
2548 2014-07-04 Jakub Jelinek <jakub@redhat.com>
2551 * cgraphunit.c (expand_thunk): Call free_dominance_info.
2553 PR tree-optimization/61684
2554 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
2555 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
2557 2014-06-30 Jakub Jelinek <jakub@redhat.com>
2559 Backported from mainline
2560 2014-06-27 Jakub Jelinek <jakub@redhat.com>
2562 PR tree-optimization/57233
2563 PR tree-optimization/61299
2564 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
2566 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
2567 would be lowered to scalar shifts, check if corresponding
2568 shifts and vector BIT_IOR_EXPR are supported and don't lower
2569 or lower just to narrower vector type in that case.
2570 * expmed.c (expand_shift_1): Fix up handling of vector
2573 2014-06-25 Jakub Jelinek <jakub@redhat.com>
2575 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
2576 (LANG_HOOKS_DECLS): Add it.
2577 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
2579 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
2580 * langhooks.h (struct lang_hooks_for_decls): Add
2581 omp_clause_linear_ctor hook.
2582 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
2583 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
2584 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
2585 combined simd loop use omp_clause_linear_ctor hook.
2587 2014-06-24 Jakub Jelinek <jakub@redhat.com>
2589 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
2590 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is non-NULL.
2591 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
2592 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is non-NULL.
2593 (gimplify_adjust_omp_clauses): Likewise.
2594 * omp-low.c (lower_rec_simd_input_clauses,
2595 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
2596 safelen the same as safelen(1).
2597 * tree-nested.c (convert_nonlocal_omp_clauses,
2598 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
2599 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
2600 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
2601 Fixup handling of GIMPLE_OMP_TARGET.
2602 (convert_tramp_reference_stmt, convert_gimple_call): Handle
2605 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2607 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
2608 change in ORT_TARGET region, don't jump to do_outer.
2609 (struct gimplify_adjust_omp_clauses_data): New type.
2610 (gimplify_adjust_omp_clauses_1): Adjust for data being
2611 a struct gimplify_adjust_omp_clauses_data pointer instead
2612 of tree *. Pass pre_p as a new argument to
2613 lang_hooks.decls.omp_finish_clause hook.
2614 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
2615 splay_tree_foreach to pass both list_p and pre_p.
2616 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
2617 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
2618 gimplify_adjust_omp_clauses callers.
2619 * langhooks.c (lhd_omp_finish_clause): New function.
2620 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
2621 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
2622 * langhooks.h (struct lang_hooks_for_decls): Add a new
2623 gimple_seq * argument to omp_finish_clause hook.
2624 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
2625 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
2626 (scan_omp_parallel, lower_omp_for): When adding _LOOPTEMP_ clause var,
2627 add it to outer ctx's decl_map as identity.
2628 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
2629 * tree-nested.c (convert_nonlocal_omp_clauses,
2630 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
2631 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
2633 2014-06-10 Jakub Jelinek <jakub@redhat.com>
2636 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
2637 Set lastprivate_firstprivate even if omp_private_outer_ref
2638 langhook returns true.
2639 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
2640 langhook, call unshare_expr on new_var and call
2641 build_outer_var_ref to get the last argument.
2643 2014-05-11 Jakub Jelinek <jakub@redhat.com>
2645 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
2646 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
2647 number of operands to 3.
2648 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
2649 * tree-nested.c (convert_nonlocal_omp_clauses,
2650 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
2651 * gimplify.c (gimplify_scan_omp_clauses): Handle
2652 OMP_CLAUSE_LINEAR_STMT.
2653 * omp-low.c (lower_rec_input_clauses): Fix typo.
2654 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
2655 cast between Fortran boolean_type_node and C _Bool if needed.
2657 2014-06-30 Jason Merrill <jason@redhat.com>
2661 * gimplify.c (gimplify_arg): Non-static.
2662 * gimplify.h: Declare it.
2664 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
2666 Backport from Mainline
2667 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
2670 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
2671 Add alternative; make early clobber. Adjust both split patterns
2672 to use operand 0 as the working register.
2674 2014-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2676 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
2678 (VCONQ): Make comment more helpful.
2680 * config/aarch64/aarch64-simd.md
2681 (aarch64_sqdmulh_lane<mode>):
2682 Use VCOND for operands 2. Update lane checking and flipping logic.
2683 (aarch64_sqrdmulh_lane<mode>): Likewise.
2684 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
2685 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
2686 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
2687 attribute of operand 3 to VCOND.
2688 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
2689 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
2690 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
2691 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
2692 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
2693 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
2695 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
2696 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
2697 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
2698 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
2699 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
2700 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
2701 operand to VCOND. Update lane flipping and bounds checking logic.
2702 (aarch64_sqdmlal2_lane<mode>): Likewise.
2703 (aarch64_sqdmlsl_lane<mode>): Likewise.
2704 (aarch64_sqdmull_lane<mode>): Likewise.
2705 (aarch64_sqdmull2_lane<mode>): Likewise.
2706 (aarch64_sqdmlal_laneq<mode>): Replace VCON usage with VCONQ.
2707 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
2708 (aarch64_sqdmlal2_laneq<mode>): Emit
2709 aarch64_sqdmlal2_laneq<mode>_internal insn.
2710 Replace VCON with VCONQ.
2711 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
2712 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2713 (aarch64_sqdmull_laneq<mode>): Emit
2714 aarch64_sqdmull_laneq<mode>_internal insn.
2715 Replace VCON with VCONQ.
2716 (aarch64_sqdmull2_laneq<mode>): Emit
2717 aarch64_sqdmull2_laneq<mode>_internal insn.
2718 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
2719 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
2720 of 3rd argument to int16x4_t.
2721 (vqdmlalh_lane_s16): Likewise.
2722 (vqdmlslh_lane_s16): Likewise.
2723 (vqdmull_high_lane_s16): Likewise.
2724 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
2725 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
2726 (vqdmlsl_lane_s16): Likewise.
2727 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
2728 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
2729 (vqdmlals_lane_s32): Likewise.
2730 (vqdmlsls_lane_s32): Likewise.
2731 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
2732 (vqdmulls_lane_s32): Likewise.
2733 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
2734 (vqdmlsl_lane_s32): Likewise.
2735 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
2736 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
2737 (vqrdmulhh_lane_s16): Likewise.
2738 (vqdmlsl_high_lane_s16): Likewise.
2739 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
2740 (vqdmlsl_high_lane_s32): Likewise.
2741 (vqrdmulhs_lane_s32): Likewise.
2743 2014-06-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2745 Backport from Mainline
2746 2014-06-20 Jakub Jelinek <jakub@redhat.com>
2747 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
2749 PR tree-optimization/61306
2750 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
2751 expression instead of its size.
2752 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
2753 false to prevent optimization when the result is unpredictable due to
2754 arithmetic right shift of signed type with highest byte is set.
2755 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
2756 (find_bswap_1): Likewise. Return NULL to prevent optimization when the
2757 result is unpredictable due to sign extension.
2758 (find_bswap): Adapt to change in struct symbolic_number.
2760 2014-06-27 Martin Jambor <mjambor@suse.cz>
2763 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
2764 args_to_skip, use those from node instead. Copy args_to_skip and
2765 combined_args_to_skip from node to the new thunk.
2766 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
2767 (cgraph_create_virtual_clone): Moved computation of
2768 combined_args_to_skip...
2769 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
2771 2014-06-27 Uros Bizjak <ubizjak@gmail.com>
2773 Backport from mainline
2774 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
2777 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
2779 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2782 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
2783 extraction other than index 3.
2785 2014-06-26 Marc Glisse <marc.glisse@inria.fr>
2788 * config/i386/i386.md (x86_64_shrd, x86_shrd,
2789 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
2791 2014-06-26 Martin Jambor <mjambor@suse.cz>
2793 Backport from mainline
2794 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
2795 renamed to ipa_impossible_devirt_target. Fix typo.
2796 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
2797 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
2798 ipa_impossible_devirt_target.
2800 2014-06-25 Cong Hou <congh@google.com>
2802 * tree-vectorizer.h: Fixing incorrect number of patterns.
2804 2014-06-24 Cong Hou <congh@google.com>
2806 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
2807 pattern recognition.
2808 (type_conversion_p): PROMOTION is true if it's a type promotion
2809 conversion, and false otherwise. Return true if the given expression
2810 is a type conversion one.
2811 * tree-vectorizer.h: Adjust the number of patterns.
2812 * tree.def: Add SAD_EXPR.
2813 * optabs.def: Add sad_optab.
2814 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
2815 * expr.c (expand_expr_real_2): Likewise.
2816 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2817 * gimple.c (get_gimple_rhs_num_ops): Likewise.
2818 * optabs.c (optab_for_tree_code): Likewise.
2819 * tree-cfg.c (estimate_operator_cost): Likewise.
2820 * tree-ssa-operands.c (get_expr_operands): Likewise.
2821 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
2822 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
2823 * doc/generic.texi: Add document for SAD_EXPR.
2824 * doc/md.texi: Add document for ssad and usad.
2826 2014-06-24 Jakub Jelinek <jakub@redhat.com>
2829 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
2830 model family 6 CPU with has_longmode never use a CPU without
2833 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
2834 not mentioned in clauses use private clause if the iterator is
2835 declared in #pragma omp for simd, and when adding lastprivate
2836 instead, add it to the outer #pragma omp for too. Diagnose
2837 if the variable is private in outer context. For simd collapse > 1
2838 loops, replace all iterators with temporaries.
2839 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
2840 same even in collapse > 1 loops.
2842 2014-06-23 Alan Modra <amodra@gmail.com>
2845 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
2846 to zero on debug statements.
2848 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2850 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
2852 (aarch64_sqrdmulh_lane<mode>): Likewise.
2853 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
2854 (aarch64_sq<r>dmulh_lane<mode>_interna): ...this.
2855 (aarch64_sqdmulh_laneq<mode>): New expander.
2856 (aarch64_sqrdmulh_laneq<mode>): Likewise.
2857 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
2858 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
2859 (aarch64_sqdmulh_lane<mode>): New expander.
2860 (aarch64_sqrdmulh_lane<mode>): Likewise.
2861 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
2862 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
2863 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
2864 (aarch64_sqdmlal_laneq<mode>): Likewise.
2865 (aarch64_sqdmlsl_lane<mode>): Likewise.
2866 (aarch64_sqdmlsl_laneq<mode>): Likewise.
2867 (aarch64_sqdmlal2_lane<mode>): Likewise.
2868 (aarch64_sqdmlal2_laneq<mode>): Likewise.
2869 (aarch64_sqdmlsl2_lane<mode>): Likewise.
2870 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2871 (aarch64_sqdmull_lane<mode>): Likewise.
2872 (aarch64_sqdmull_laneq<mode>): Likewise.
2873 (aarch64_sqdmull2_lane<mode>): Likewise.
2874 (aarch64_sqdmull2_laneq<mode>): Likewise.
2876 2014-06-20 Martin Jambor <mjambor@suse.cz>
2879 * ipa-prop.c (impossible_devirt_target): New function.
2880 (try_make_edge_direct_virtual_call): Use it, also instead of
2883 2014-06-20 Martin Jambor <mjambor@suse.cz>
2886 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
2889 2014-06-20 Chung-Lin Tang <cltang@codesourcery.com>
2891 Backport from mainline
2893 2014-06-20 Julian Brown <julian@codesourcery.com>
2894 Chung-Lin Tang <cltang@codesourcery.com>
2896 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
2897 TARGET_THUMB1_ONLY. Add comments.
2899 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
2901 Backport from mainline
2902 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
2904 * config/i386/i386.c (decide_alg): Correctly handle
2905 maximum size of stringop algorithm.
2907 2014-06-18 Richard Henderson <rth@redhat.com>
2910 * config/aarch64/aarch64.md (tlsdesc_small): Clobber CC_REGNUM.
2912 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
2915 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
2916 variable 'size'; calculate 'size' right in the front; use
2917 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
2918 pcum->aapcs_stack_words.
2920 2014-06-17 Nick Clifton <nickc@redhat.com>
2922 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
2923 (umulhi3, mulsidi3, umulsidi3): Likewise.
2925 2014-06-17 Uros Bizjak <ubizjak@gmail.com>
2927 Backport from mainline
2928 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
2931 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
2932 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
2933 and corresponding splitters. Zero extend general register
2934 or memory input operand to XMM temporary. Enable for
2935 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
2936 (floatunssi<mode>2): Update expander predicate.
2938 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
2940 PR rtl-optimization/61325
2941 * lra-constraints.c (valid_address_p): Add forward declaration.
2942 (simplify_operand_subreg): Check address validity before and after
2943 alter_reg of memory subreg.
2945 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2948 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
2950 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
2952 Backport from mainline
2954 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
2956 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
2957 (BU_MISC_2): Rename to ...
2958 (BU_LDBL128_2): ... this.
2959 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
2960 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
2961 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
2963 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
2964 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
2965 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
2966 (unpacktf_1): Likewise.
2967 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
2968 (__builtin_longdouble_dw1): Likewise.
2969 * doc/sourcebuild.texi (longdouble128): Document.
2971 2014-06-13 Jeff Law <law@redhat.com>
2973 Backports from mainline:
2974 2014-06-13 Jeff Law <law@redhat.com>
2976 PR rtl-optimization/61094
2977 PR rtl-optimization/61446
2978 * ree.c (combine_reaching_defs): Get the mode for the copy from
2979 the extension insn rather than the defining insn.
2981 2014-06-02 Jeff Law <law@redhat.com>
2983 PR rtl-optimization/61094
2984 * ree.c (combine_reaching_defs): Do not reextend an insn if it
2985 was marked as do_no_reextend. If a copy is needed to eliminate
2986 an extension, then mark it as do_not_reextend.
2988 2014-06-13 Martin Jambor <mjambor@suse.cz>
2991 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
2992 cache_token if returning early.
2994 2014-06-12 Jakub Jelinek <jakub@redhat.com>
2997 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
2998 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
2999 if outer combined construct is distribute.
3000 (gimplify_omp_for): For OMP_DISTRIBUTE set
3001 gimplify_omp_ctxp->distribute.
3002 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3003 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3004 mapping into decl map.
3006 2014-06-12 Jeff Law <law@redhat.com>
3008 Backports from mainline:
3010 2014-06-12 Jeff Law <law@redhat.com>
3012 PR tree-optimization/61009
3013 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3014 value when we stop processing a block due to problematic PHIs.
3016 2014-06-05 Jeff Law <law@redhat.com>
3018 PR tree-optimization/61289
3019 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
3020 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
3021 looking for those which match LHS. All callers changed.
3022 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
3023 parameters and code which manipulated them. All callers changed.
3024 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
3025 and DST_MAP parameters. Simplify invalidation code by just calling
3026 invalidate_equivalences. All callers changed.
3027 (thread_across_edge): Simplify now that we don't need to maintain
3028 the map of equivalences to invalidate.
3030 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
3032 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3034 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3036 Backport from 2014-05-14 trunk r210418
3037 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
3038 shifted values to avoid build warning.
3040 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3042 Backport from 2014-05-09 trunk r210272
3044 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
3045 unsigned int initializers for regno_in, regno_out.
3047 Backport from 2014-06-12 trunk r211491
3050 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3051 loading from address spaces.
3053 2014-06-12 Alan Modra <amodra@gmail.com>
3056 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
3057 * doc/tm.texi: Regenerate.
3058 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
3059 Use throughout in place of REG_PARM_STACK_SPACE.
3060 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
3061 "incoming" param. Pass to rs6000_function_parms_need_stack.
3062 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
3063 prototype_p when incoming. Use function decl when incoming
3064 to handle K&R style functions.
3065 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
3066 (INCOMING_REG_PARM_STACK_SPACE): Define.
3068 2014-06-11 Richard Biener <rguenther@suse.de>
3070 PR tree-optimization/61452
3071 * tree-ssa-sccvn.c (visit_phi): Remove pointless setting of
3072 expr and has_constants in case we found a leader.
3073 (simplify_binary_expression): Always valueize operands first.
3074 (simplify_unary_expression): Likewise.
3076 2014-06-11 Richard Biener <rguenther@suse.de>
3079 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3080 Do not use the main variant for the type comparison.
3082 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3084 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3086 Simplify description of __crc32d and __crc32cd intrinsics.
3087 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3090 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
3092 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3093 call statement, if any.
3094 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3095 statements, if any. Tidy up.
3097 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3099 Back port from trunk
3100 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3103 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3104 iterators, VSX_D that handles 64-bit types, and VSX_LE that
3105 handles swapping the two 64-bit double words on little endian
3106 systems. Include V1TImode and optionally TImode in VSX_LE so that
3107 these types are properly swapped. Change all of the insns and
3108 splits that do the 64-bit swaps to use VSX_LE.
3109 (vsx_le_perm_load_<mode>): Likewise.
3110 (vsx_le_perm_store_<mode>): Likewise.
3111 (splitters for little endian memory operations): Likewise.
3112 (vsx_xxpermdi2_le_<mode>): Likewise.
3113 (vsx_lxvd2x2_le_<mode>): Likewise.
3114 (vsx_stxvd2x2_le_<mode>): Likewise.
3116 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
3118 PR rtl-optimization/61325
3119 * lra-constraints.c (process_address_1): Check scale equal to one
3120 to prevent transformation: base + scale * index => base + new_reg.
3122 2014-06-05 Martin Jambor <mjambor@suse.cz>
3125 * ipa-cp.c (determine_versionability): Pretend that tm_clones are
3128 2014-06-04 Richard Biener <rguenther@suse.de>
3130 PR tree-optimization/61383
3131 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
3134 2014-06-02 Jason Merrill <jason@redhat.com>
3137 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
3139 2014-06-03 Martin Jambor <mjambor@suse.cz>
3142 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
3145 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3147 Backport from mainline
3148 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3150 PR rtl-optimization/60866
3151 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
3152 Default it to -1. Pass it down to init_simplejump_data.
3153 (init_simplejump_data): New parameter old_seqno. Pass it down
3154 to get_seqno_for_a_jump.
3155 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
3156 initializing new jump seqno as a last resort. Add comment.
3157 (sel_redirect_edge_and_branch): Save old seqno of the conditional
3158 jump and pass it down to sel_init_new_insn.
3159 (sel_redirect_edge_and_branch_force): Likewise.
3161 2014-06-03 Andrey Belevantsev <abel@ispras.ru>
3163 Backport from mainline
3164 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
3166 PR rtl-optimization/60901
3167 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
3168 bb predecessor belongs to the same scheduling region. Adjust comment.
3170 2014-06-03 Uros Bizjak <ubizjak@gmail.com>
3172 Backport from mainline
3173 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
3176 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
3177 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
3179 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
3181 PR rtl-optimization/61325
3182 * lra-constraints.c (process_address): Rename to
3184 (process_address): New function.
3186 2014-05-29 Uros Bizjak <ubizjak@gmail.com>
3188 Backport from mainline
3189 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
3192 * config/i386/i386.c (ix86_rtx_costs)
3193 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
3196 2014-05-28 Eric Botcazou <ebotcazou@adacore.com>
3198 Backport from mainline
3199 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
3201 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
3202 predicate to detect a negative quotient.
3204 2014-05-28 Richard Biener <rguenther@suse.de>
3206 Backport from mainline
3207 2014-05-28 Richard Biener <rguenther@suse.de>
3210 * fold-const.c (fold_comparison): When folding
3211 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
3212 the sign of the remaining constant operand stays the same.
3214 2014-05-05 Richard Biener <rguenther@suse.de>
3217 * fold-const.c (fold_binary_loc): Consistently avoid
3218 canonicalizing X & CST away from a CST that is the mask
3221 2014-04-28 Richard Biener <rguenther@suse.de>
3223 PR tree-optimization/60979
3224 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
3225 SCOPs that end in a block with a successor with abnormal
3228 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3230 * configure.ac ($gcc_cv_ld_clearcap): New test.
3231 * configure: Regenerate.
3232 * config.in: Regenerate.
3233 * config/sol2.opt (mclear-hwcap): New option.
3234 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
3235 * config/sol2-clearcap.map: Moved here from
3236 testsuite/gcc.target/i386/clearcap.map.
3237 * config/sol2-clearcapv2.map: Move here from
3238 gcc.target/i386/clearcapv2.map.
3239 * config/t-sol2 (install): Depend on install-clearcap-map.
3240 (install-clearcap-map): New target.
3241 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
3244 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3247 * config/dbx.h (License): Add Runtime Library Exception.
3248 * config/newlib-stdint.h (License): Same.
3249 * config/rtems.h (License): Same
3250 * config/initfini-array.h (License): Same
3251 * config/v850/v850.h (License): Same.
3252 * config/v850/v850-opts.h (License): Same
3253 * config/v850/rtems.h (License): Same.
3255 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
3258 * doc/extend.texi (Local Labels): Note that label differences are
3259 not supported for AVR.
3261 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
3263 Backport from 2014-05-12 mainline r210322.
3264 Backport from 2014-05-27 mainline r210959, r210969.
3267 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
3268 * config/arm/arm-cores.def (License): Same.
3269 * config/arm/arm-opts.h (License): Same.
3270 * config/arm/aout.h (License): Same.
3271 * config/arm/bpabi.h (License): Same.
3272 * config/arm/elf.h (License): Same.
3273 * config/arm/linux-elf.h (License): Same.
3274 * config/arm/linux-gas.h (License): Same.
3275 * config/arm/netbsd-elf.h (License): Same.
3276 * config/arm/uclinux-eabi.h (License): Same.
3277 * config/arm/uclinux-elf.h (License): Same.
3278 * config/arm/vxworks.h (License): Same.
3280 2014-05-26 Michael Tautschnig <mt@debian.org>
3283 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
3284 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
3286 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3288 PR rtl-optimization/61215
3289 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
3290 simplify_gen_subreg until final substitution.
3292 2014-05-23 Alan Modra <amodra@gmail.com>
3295 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
3296 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
3297 Use "Y" constraint rather than "m".
3299 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
3301 PR rtl-optimization/60969
3302 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
3303 constraints. Set up mem cost for NO_REGS case.
3305 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
3307 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
3309 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
3312 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
3314 2014-05-22 Nick Clifton <nickc@redhat.com>
3316 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
3318 2014-05-22 Jakub Jelinek <jakub@redhat.com>
3320 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
3321 all padding bits in REAL_VALUE_TYPE are cleared.
3323 2014-05-21 Guozhi Wei <carrot@google.com>
3326 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
3328 (vqdmulhq_n_s16): Likewise.
3330 2014-05-21 Martin Jambor <mjambor@suse.cz>
3332 * doc/invoke.texi (Optimize Options): Document parameters
3333 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
3334 ipa-cp-array-index-hint-bonus.
3336 2014-05-21 Jakub Jelinek <jakub@redhat.com>
3339 * omp-low.c (handle_simd_reference): New function.
3340 (lower_rec_input_clauses): Use it. Defer adding reference
3341 initialization even for reduction without placeholder if in simd,
3342 handle it properly later on.
3344 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3347 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
3349 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
3350 (ipa_inline): Loop inline_to_all_callers until no more aliases
3353 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
3356 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
3358 2014-05-20 DJ Delorie <dj@redhat.com>
3360 * config/msp430/msp430.md (split): Don't allow subregs when
3361 splitting SImode adds.
3362 (andneghi): Fix subtraction logic.
3363 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
3365 2014-05-20 Nick Clifton <nickc@redhat.com>
3367 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
3368 (msp430_gimplify_va_arg_expr): New function.
3369 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
3371 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
3372 operand 0 in order to prevent confusion about the number of
3375 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3377 * config/arm/arm.md (arith_shiftsi): Do not predicate for
3380 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
3382 * arm.c (thumb1_reorg): When scanning backwards skip anything
3383 that's not a proper insn.
3385 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3387 * ipa.c (symtab_remove_unreachable_nodes): Remove
3388 symbol from comdat group if its body was eliminated.
3389 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
3390 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
3391 (symtab_unregister_node): ... this one.
3392 (verify_symtab_base): More strict checking of comdats.
3393 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
3395 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3397 * opts.c (common_handle_option): Disable -fipa-reference coorectly
3400 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
3403 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
3404 external aliases alive, too.
3406 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
3408 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
3410 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
3412 Backport from mainline
3413 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
3416 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
3419 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
3421 PR rtl-optimization/60969
3422 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
3423 Calculate costs for this case.
3425 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
3428 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
3429 (__TM_simple_begin): Use it.
3430 (__TM_begin): Likewise.
3432 2014-05-15 Martin Jambor <mjambor@suse.cz>
3435 * ipa-prop.c (update_indirect_edges_after_inlining): Check
3436 type_preserved flag when the indirect edge is polymorphic.
3438 2014-05-15 Martin Jambor <mjambor@suse.cz>
3441 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
3443 2014-05-15 Jakub Jelinek <jakub@redhat.com>
3445 PR tree-optimization/61158
3446 * fold-const.c (fold_binary_loc): If X is zero-extended and
3447 shiftc >= prec, make sure zerobits is all ones instead of
3448 invoking undefined behavior.
3450 2014-05-14 Cary Coutant <ccoutant@google.com>
3453 * opts.c (common_handle_option): Don't special-case "-g".
3454 (set_debug_level): Default to at least level 2 with "-g".
3456 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
3458 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
3460 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
3461 * config/sparc/sparc.md (fptype_ut699): New attribute.
3462 (in_branch_delay): Return false if -mfix-ut699 is specified and
3463 fptype_ut699 is set to single.
3464 (truncdfsf2): Add fptype_ut699 attribute.
3465 (fix_truncdfsi2): Likewise.
3466 (floatsisf2): Change fptype attribute.
3467 (fix_truncsfsi2): Likewise.
3468 (negtf2_notv9): Delete.
3469 (negtf2_v9): Likewise.
3470 (negtf2_hq): New instruction.
3471 (negtf2): New instruction and splitter.
3472 (negdf2_notv9): Rewrite.
3473 (abstf2_notv9): Delete.
3474 (abstf2_hq_v9): Likewise.
3475 (abstf2_v9): Likewise.
3476 (abstf2_hq): New instruction.
3477 (abstf2): New instruction and splitter.
3478 (absdf2_notv9): Rewrite.
3480 2014-05-14 Matthias Klose <doko@ubuntu.com>
3483 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
3484 Matthias Klose <doko@ubuntu.com>
3487 * optc-gen.awk: Fix option handling for -Wunused-parameter.
3489 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
3491 * doc/sourcebuild.texi: (dfp_hw): Document.
3492 (p8vector_hw): Likewise.
3493 (powerpc_eabi_ok): Likewise.
3494 (powerpc_elfv2): Likewise.
3495 (powerpc_htm_ok): Likewise.
3496 (ppc_recip_hw): Likewise.
3499 2014-05-13 Jeff Law <law@redhat.com>
3501 Backports fromm mainline:
3503 2014-05-08 Jeff Law <law@redhat.com>
3505 PR tree-optimization/61009
3506 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
3507 tri-state rather than a boolean. When a block is too big to
3508 thread through, inform caller via negative return value.
3509 (thread_across_edge): If a block was too big for normal threading,
3510 then it's too big for a joiner too, so remove temporary equivalences
3511 and return immediately.
3513 2014-04-28 Jeff Law <law@redhat.com>
3515 PR tree-optimization/60902
3516 * tree-ssa-threadedge.c
3517 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
3518 over real defs when invalidating outputs from statements that do not
3519 produce useful outputs for threading.
3521 2014-04-23 Jeff Law <law@redhat.com>
3523 PR tree-optimization/60902
3524 * tree-ssa-threadedge.c
3525 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
3526 invalidate outputs from statements that do not produce useful
3527 outputs for threading.
3529 2014-05-13 Richard Biener <rguenther@suse.de>
3532 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
3533 it needs revisiting whether the call still may be tail-called.
3535 2014-05-13 Jakub Jelinek <jakub@redhat.com>
3538 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
3539 is const0_rtx, return immediately. Don't test count == 0 when
3542 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3544 Backport from mainline
3545 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
3548 * config/avr/avr.c (avr_out_store_psi): Use correct constant
3551 2014-05-09 Uros Bizjak <ubizjak@gmail.com>
3553 Backport from mainline
3554 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
3557 * config/alpha/alpha.c: Include gimple-iterator.h.
3558 (alpha_gimple_fold_builtin): New function. Move
3559 ALPHA_BUILTIN_UMULH folding from ...
3560 (alpha_fold_builtin): ... here.
3561 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
3563 2014-05-09 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
3565 Backport from 2014-04-16 trunk r209446
3566 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
3568 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
3570 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
3572 Backport from 2014-05-09 trunk r210267
3575 * config/avr/avr.md (cc): Add new attribute set_vzn.
3576 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
3577 Set cc insn attribute to set_vzn instead of set_zn for alternatives
3578 with INC, DEC or NEG.
3579 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
3580 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
3581 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
3583 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
3584 Matthias Klose <doko@ubuntu.com>
3587 * optc-gen.awk: Fix option handling for -Wunused-parameter.
3589 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
3592 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
3594 2014-05-05 Marek Polacek <polacek@redhat.com>
3596 Back port from mainline
3597 2014-05-05 Marek Polacek <polacek@redhat.com>
3600 * opts.c (common_handle_option): Call error_at instead of warning_at.
3602 2014-05-04 Jan Hubicka <hubicka@ucw.cz>
3605 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
3607 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
3609 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
3610 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
3611 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
3612 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
3613 Use RS6000_BTM_HARD_FLOAT.
3614 (BU_MISC_2): Likewise.
3615 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3616 RS6000_BTM_HARD_FLOAT.
3617 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
3619 (rs6000_invalid_builtin): Add hard floating builtin support.
3620 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
3621 hard float builtins.
3622 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
3624 2014-05-03 Joey Ye <joey.ye@arm.com>
3626 Backport from mainline r209463
3627 2014-04-17 Joey Ye <joey.ye@arm.com>
3629 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
3631 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3633 Back port from mainline
3635 * config/sh/sh.c: Include stdlib headers before everything else.
3637 2014-05-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3639 PR tree-optimization/60930
3640 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
3641 creating a multiply candidate by folding two constant
3642 multiplicands when the result overflows.
3644 2014-05-02 Jakub Jelinek <jakub@redhat.com>
3646 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
3647 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
3648 (gimplify_adjust_omp_clauses): Simd region is never
3649 directly nested in combined parallel. Instead, for linear
3650 with copyin/copyout, if in combined for simd loop, make decl
3651 firstprivate/lastprivate on OMP_FOR.
3652 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
3653 expand_omp_for_static_chunk): When setting endvar, also set
3654 fd->loop.v to the same value.
3656 2014-05-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3658 Back port from mainline
3659 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3661 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
3662 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
3663 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
3664 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
3665 (TARGET_CRYPTO): Take TARGET_SIMD into account.
3667 2014-04-30 Michael Meissner <meissner@linux.vnet.ibm.com>
3669 Back port from mainline
3670 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
3672 * doc/extend.texi (PowerPC Built-in Functions): Document new
3673 powerpc extended divide, bcd, pack/unpack 128-bit, builtin
3675 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
3677 * config/rs6000/predicates.md (const_0_to_3_operand): New
3678 predicate to match 0..3 integer constants.
3680 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
3681 to support adding miscellaneous builtin functions.
3682 (BU_DFP_MISC_2): Likewise.
3683 (BU_P7_MISC_1): Likewise.
3684 (BU_P7_MISC_2): Likewise.
3685 (BU_P8V_MISC_3): Likewise.
3686 (BU_MISC_1): Likewise.
3687 (BU_MISC_2): Likewise.
3688 (DIVWE): Add extended divide builtin functions.
3691 (DIVWEUO): Likewise.
3695 (DIVDEUO): Likewise.
3696 (DXEX): Add decimal floating-point builtin functions.
3699 (DDEDPDQ): Likewise.
3701 (DENBCDQ): Likewise.
3708 (CDTBCD): Add new BCD builtin functions.
3712 (BCDADD_LT): Likewise.
3713 (BCDADD_EQ): Likewise.
3714 (BCDADD_GT): Likewise.
3715 (BCDADD_OV): Likewise.
3717 (BCDSUB_LT): Likewise.
3718 (BCDSUB_EQ): Likewise.
3719 (BCDSUB_GT): Likewise.
3720 (BCDSUB_OV): Likewise.
3721 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
3722 (UNPACK_TD): Likewise.
3723 (PACK_TF): Likewise.
3724 (UNPACK_TF): Likewise.
3725 (UNPACK_TF_0): Likewise.
3726 (UNPACK_TF_1): Likewise.
3727 (PACK_V1TI): Likewise.
3728 (UNPACK_V1TI): Likewise.
3730 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
3731 support for decimal floating point builtin functions.
3732 (rs6000_expand_ternop_builtin): Add checks for the new builtin
3733 functions that take constant arguments.
3734 (rs6000_invalid_builtin): Add decimal floating point builtin
3736 (rs6000_init_builtins): Setup long double, _Decimal64, and
3737 _Decimal128 types for new builtin functions.
3738 (builtin_function_type): Set the unsigned flags appropriately for
3739 the new builtin functions.
3740 (rs6000_opt_masks): Add support for decimal floating point builtin
3743 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
3744 floating point builtin functions.
3745 (RS6000_BTM_COMMON): Likewise.
3746 (RS6000_BTI_long_double): Likewise.
3747 (RS6000_BTI_dfloat64): Likewise.
3748 (RS6000_BTI_dfloat128): Likewise.
3749 (long_double_type_internal_node): Likewise.
3750 (dfloat64_type_internal_node): Likewise.
3751 (dfloat128_type_internal_node): Likewise.
3753 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
3754 2.07 bcd arithmetic instructions.
3755 (UNSPEC_BCDSUB): Likewise.
3756 (UNSPEC_BCD_OVERFLOW): Likewise.
3757 (UNSPEC_BCD_ADD_SUB): Likewise.
3758 (bcd_add_sub): Likewise.
3759 (BCD_TEST): Likewise.
3760 (bcd<bcd_add_sub>): Likewise.
3761 (bcd<bcd_add_sub>_test): Likewise.
3762 (bcd<bcd_add_sub>_test2): Likewise.
3763 (bcd<bcd_add_sub>_<code>): Likewise.
3764 (peephole2 for combined bcd ops): Likewise.
3766 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
3767 decimal floating point builtin functions.
3768 (UNSPEC_DENBCD): Likewise.
3769 (UNSPEC_DXEX): Likewise.
3770 (UNSPEC_DIEX): Likewise.
3771 (UNSPEC_DSCLI): Likewise.
3772 (UNSPEC_DSCRI): Likewise.
3773 (D64_D128): Likewise.
3774 (dfp_suffix): Likewise.
3775 (dfp_ddedpd_<mode>): Likewise.
3776 (dfp_denbcd_<mode>): Likewise.
3777 (dfp_dxex_<mode>): Likewise.
3778 (dfp_diex_<mode>): Likewise.
3779 (dfp_dscli_<mode>): Likewise.
3780 (dfp_dscri_<mode>): Likewise.
3782 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
3784 (UNSPEC_CDTBCD): Likewise.
3785 (UNSPEC_CBCDTD): Likewise.
3786 (UNSPEC_DIVE): Add support for new extended divide builtin
3788 (UNSPEC_DIVEO): Likewise.
3789 (UNSPEC_DIVEU): Likewise.
3790 (UNSPEC_DIVEUO): Likewise.
3791 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
3792 pack/unpack 128-bit types.
3793 (UNSPEC_PACK_128BIT): Likewise.
3794 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
3795 (udiv<mode>3): Use idiv_ldiv mode attribute.
3796 (div<mode>3): Likewise.
3797 (addg6s): Add new BCD builtin functions.
3800 (UNSPEC_DIV_EXTEND): Add support for new extended divide
3802 (div_extend): Likewise.
3803 (div<div_extend>_<mode>"): Likewise.
3804 (FP128_64): Add support for new builtin functions to pack/unpack
3806 (unpack<mode>): Likewise.
3807 (unpacktf_0): Likewise.
3808 (unpacktf_1): Likewise.
3809 (unpack<mode>_dm): Likewise.
3810 (unpack<mode>_nodm): Likewise.
3811 (pack<mode>): Likewise.
3812 (unpackv1ti): Likewise.
3813 (packv1ti): Likewise.
3815 2014-04-29 Pat Haugen <pthaugen@us.ibm.com>
3817 Backport from mainline
3818 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
3820 * config/rs6000/rs6000.md (addti3, subti3): New.
3822 2014-04-29 Jakub Jelinek <jakub@redhat.com>
3824 PR tree-optimization/60971
3825 * tree-tailcall.c (process_assignment): Reject conversions which
3828 2014-04-29 Nick Clifton <nickc@redhat.com>
3830 * config/msp430/msp430.md (umulsidi): Fix typo.
3831 (mulhisi3): Enable even inside interrupt handlers.
3832 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
3833 bigger return address pushed in large mode.
3835 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
3837 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
3838 (loadsync_<mode>): Change mode.
3839 (load_quadpti, store_quadpti): New.
3840 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
3841 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
3843 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
3845 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
3846 * configure: Regenerate.
3847 * config/sparc/sparc.opt (muser-mode): New option.
3848 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
3850 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
3851 * doc/invoke.texi (SPARC options): Document -muser-mode.
3853 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
3855 * doc/install.texi (Building with profile feedback): Remove
3858 2014-04-26 Tom de Vries <tom@codesourcery.com>
3860 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
3863 2014-04-25 Jakub Jelinek <jakub@redhat.com>
3865 PR tree-optimization/60960
3866 * tree-vect-generic.c (expand_vector_operation): Only call
3867 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
3869 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
3872 * config/sparc/sparc.md (ashlsi3_extend): Delete.
3874 2014-04-25 Richard Biener <rguenther@suse.de>
3877 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
3878 call stmt use/clobber sets during stmt walk instead of
3879 walking the possibly incomplete set of caller edges.
3881 2014-04-25 Richard Biener <rguenther@suse.de>
3884 * passes.c (apply_ipa_transforms): Inline into only caller ...
3885 (execute_one_pass): ... here. Properly bring in function
3886 bodies for nodes we want to apply IPA transforms to.
3888 2014-04-24 Jakub Jelinek <jakub@redhat.com>
3890 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
3891 * gimplify.c (omp_is_private): Change last argument's type to int.
3892 Only diagnose lastprivate if the simd argument is 1, only diagnose
3893 linear if the simd argument is 2.
3894 (gimplify_omp_for): Adjust omp_is_private callers. When adding
3895 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
3896 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
3897 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
3898 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
3899 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
3900 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
3901 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
3902 * tree-nested.c (convert_nonlocal_omp_clauses,
3903 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
3905 2014-04-23 Uros Bizjak <ubizjak@gmail.com>
3907 Backport from mainline
3908 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
3911 * config/i386/i386.c (ix86_expand_builtin)
3912 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
3913 register for target RTX.
3914 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
3916 2014-04-23 Richard Biener <rguenther@suse.de>
3918 PR tree-optimization/60903
3919 * tree-ssa-loop-im.c (analyze_memory_references): Remove
3920 commented code block.
3921 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
3922 loop flags to newly created BBs and edges.
3924 2014-04-23 Nick Clifton <nickc@redhat.com>
3926 * config/msp430/msp430.c (msp430_handle_option): Move function
3928 (msp430_option_override): Simplify mcu and mcpu option handling.
3929 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
3930 support for -mhwmult command line option.
3931 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
3932 -mhwmult command line option.
3933 (msp430_hwmult_enabled): Delete.
3934 (msp43o_output_labelref): Add support for -mhwmult command line
3936 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
3937 (umulsidi3): Likewise.
3938 * config/msp430/msp430.opt (mmcu): Add Report attribute.
3939 (mcpu, mlarge, msmall): Likewise.
3940 (mhwmult): New option.
3941 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
3943 (msp430_is_f5_mcu): Remove prototype.
3944 (msp430_use_f5_series_hwmult): Add prototype.
3945 * config/msp430/msp430-opts.h: New file.
3946 * common/config/msp430: New directory.
3947 * common/config/msp430/msp430-common.c: New file.
3948 * config.gcc (msp430): Remove target_has_targetm_common.
3949 * doc/invoke.texi: Document -mhwmult command line option.
3951 2014-04-23 Nick Clifton <nickc@redhat.com>
3953 * config/i386/cygwin.h (ENDFILE_SPEC): Include
3954 default-manifest.o if it can be found in the search path.
3955 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
3957 2014-04-23 Richard Biener <rguenther@suse.de>
3959 Backport from mainline
3960 2014-04-14 Richard Biener <rguenther@suse.de>
3963 * lto-streamer-out.c (wrap_refs): New function.
3964 (lto_output): Wrap symbol references in global initializes in
3965 type-preserving MEM_REFs.
3967 2014-04-23 Richard Biener <rguenther@suse.de>
3970 * tree-inline.c (declare_return_variable): Use mark_addressable.
3972 2014-04-23 Richard Biener <rguenther@suse.de>
3975 * loop-init.c (loop_optimizer_init): Make sure to apply
3976 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
3978 2014-04-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3980 Backport from mainline
3981 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
3984 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
3985 If mode is DDmode and TARGET_E500_DOUBLE allow move.
3987 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
3988 more debug information for E500 if -mdebug=reg.
3990 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
3992 Backport from mainline
3993 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
3996 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
3997 on count_exp to get mode.
3999 2014-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4001 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
4003 (vsx_xxmrglw_<mode>): Likewise.
4005 2014-04-22 Richard Biener <rguenther@suse.de>
4007 Backport from mainline
4008 2014-04-14 Richard Biener <rguenther@suse.de>
4011 * fold-const.c (negate_expr_p): Don't negate directional rounding
4013 (fold_negate_expr): Likewise.
4015 2014-04-22 Richard Biener <rguenther@suse.de>
4017 Backport from mainline
4018 2014-04-17 Richard Biener <rguenther@suse.de>
4021 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
4022 boolean results for comparisons.
4024 2014-04-22 Richard Biener <rguenther@suse.de>
4026 Backport from mainline
4027 2014-04-17 Richard Biener <rguenther@suse.de>
4029 PR tree-optimization/60841
4030 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
4031 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
4032 of stmts to SLP build.
4033 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
4034 (vect_analyze_slp): Likewise.
4035 (vect_analyze_slp_instance): Likewise.
4036 (vect_build_slp_tree): Limit overall SLP tree growth.
4037 * tree-vectorizer.h (vect_analyze_data_refs,
4038 vect_analyze_slp): Adjust prototypes.
4040 2014-04-22 Richard Biener <rguenther@suse.de>
4042 Backport from mainline
4043 2014-04-17 Richard Biener <rguenther@suse.de>
4045 PR tree-optimization/60836
4046 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
4047 initial PHI args to be gimple values.
4049 2014-04-22 Richard Biener <rguenther@suse.de>
4051 Backport from mainline
4052 2014-04-14 Richard Biener <rguenther@suse.de>
4054 PR tree-optimization/59817
4055 PR tree-optimization/60453
4056 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
4057 recursion to catch all CHRECs in the scalar evolution and restrict
4058 the predicate for the remains appropriately.
4060 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4062 PR tree-optimization/60823
4063 * omp-low.c (ipa_simd_modify_function_body): Go through
4064 all SSA_NAMEs and for those refering to vector arguments
4065 which are going to be replaced adjust SSA_NAME_VAR and,
4066 if it is a default definition, change it into a non-default
4067 definition assigned at the beginning of function from new_decl.
4068 (ipa_simd_modify_stmt_ops): Rewritten.
4069 * tree-dfa.c (set_ssa_default_def): When removing default def,
4070 check for NULL loc instead of NULL *loc.
4072 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
4075 * asan.c (asan_emit_stack_protection): Force the base to align to
4076 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
4077 appropriate bits if STRICT_ALIGNMENT.
4078 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
4080 (expand_used_vars): Leave a space in the stack frame for alignment
4081 if STRICT_ALIGNMENT.
4083 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4085 Backported from mainline
4086 2014-04-16 Jakub Jelinek <jakub@redhat.com>
4088 PR tree-optimization/60844
4089 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
4090 (propagate_op_to_single_use, remove_visited_stmt_chain,
4091 linearize_expr, repropagate_negates, reassociate_bb): Use it
4092 instead of gsi_remove.
4094 2014-04-22 Jakub Jelinek <jakub@redhat.com>
4096 * BASE-VER: Set to 4.9.1.
4097 * DEV-PHASE: Set to prerelease.
4099 2014-04-22 Release Manager
4101 * GCC 4.9.0 released.
4103 2014-04-18 Richard Henderson <rth@redhat.com>
4105 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
4106 to GET_MODE_SIZE, not a reg_class_t.
4108 2014-04-17 Jakub Jelinek <jakub@redhat.com>
4111 Forward port from 4.8 branch
4112 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
4114 * config/i386/bmiintrin.h (_blsi_u32): New.
4118 (_blsmsk_u32): Ditto.
4119 (_blsmsk_u64): Ditto.
4120 (_tzcnt_u32): Ditto.
4121 (_tzcnt_u64): Ditto.
4123 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4126 Revert the following patch
4128 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4131 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4132 software floating point or no floating point registers, do not
4133 allow any type in the FPRs. Eliminate a test for SPE SIMD types
4134 in GPRs that occurs after we tested for GPRs that would never be
4137 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4138 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4139 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
4140 specifically allow DDmode, since that does not use the SPE SIMD
4143 2014-04-15 Jakub Jelinek <jakub@redhat.com>
4146 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
4149 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
4151 * doc/invoke.texi (free): Document AArch64.
4153 2013-04-11 Jakub Jelinek <jakub@redhat.com>
4155 * DEV-PHASE: Set to prerelease.
4157 2014-04-11 Tobias Burnus <burnus@net-b.de>
4160 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
4161 * doc/gcc.texi (Service): Update description in the @menu
4162 * doc/invoke.texi (Option Summary): Remove misplaced and
4165 2014-04-11 Steve Ellcey <sellcey@mips.com>
4166 Jakub Jelinek <jakub@redhat.com>
4169 * expr.c (convert_move): Use emit_store_flag_force instead of
4170 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
4173 2014-04-11 Richard Biener <rguenther@suse.de>
4176 * varasm.c (assemble_alias): Avoid endless error reporting
4177 recursion by setting TREE_ASM_WRITTEN.
4179 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4181 * config/s390/s390.md: Add a splitter for NOT rtx.
4183 2014-04-11 Jakub Jelinek <jakub@redhat.com>
4185 PR rtl-optimization/60663
4186 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
4188 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
4189 Jakub Jelinek <jakub@redhat.com>
4192 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
4193 flag from decl_node to node.
4195 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4198 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
4199 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
4200 ameliorating the cases where it can be.
4202 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
4205 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4207 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4208 (loadsync_<mode>): Change mode.
4209 (load_quadpti, store_quadpti): New.
4210 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4211 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4212 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
4214 2014-04-09 Cong Hou <congh@google.com>
4217 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
4220 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4222 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
4223 instead of vnor to exploit possible fusion opportunity in the
4225 (altivec_expand_vec_perm_const_le): Likewise.
4227 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
4229 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
4230 (loadsync_<mode>): Change mode.
4231 (load_quadpti, store_quadpti): New.
4232 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
4233 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
4235 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
4238 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
4239 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
4240 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
4242 2014-04-08 Richard Biener <rguenther@suse.de>
4245 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
4246 a 64bit widest int print double-int similar to on HWI64 hosts.
4248 2014-04-08 Richard Biener <rguenther@suse.de>
4250 PR tree-optimization/60785
4251 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
4252 default defs properly.
4254 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
4256 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
4257 (Weffc++): Likewise.
4259 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
4261 * ipa-devirt.c (maybe_record_node): When node is not recorded,
4262 set completep to false rather than true.
4264 2014-04-07 Douglas B Rupp <rupp@adacore.com>
4267 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
4268 ARM_TARGET2_DWARF_FORMAT.
4270 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
4273 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
4274 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
4277 2014-04-07 Richard Biener <rguenther@suse.de>
4279 PR tree-optimization/60766
4280 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
4281 (may_eliminate_iv): Convert cand_value_at result to desired type.
4283 2014-04-07 Jason Merrill <jason@redhat.com>
4286 * common.opt (-fno-gnu-unique): Add.
4287 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
4289 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4291 * haifa-sched.c: Fix outdated function reference and minor
4292 grammar errors in introductory comment.
4294 2014-04-07 Richard Biener <rguenther@suse.de>
4297 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
4299 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
4301 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
4304 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
4305 size accounting for thunks.
4306 (pa_asm_output_mi_thunk): Use final_start_function() and
4307 final_end_function() to output function start and end directives.
4309 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
4311 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
4312 device specific ISA/ feature information. Remove short_sp and
4313 errata_skip ds. Add avr_device_specific_features enum to have device
4315 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
4316 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
4317 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
4318 updated device specific info.
4319 * config/avr/avr-mcus.def: Merge device specific details to
4320 dev_attribute field.
4321 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
4323 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
4324 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
4325 assembler if RMW isa supported by current device.
4326 * config/avr/genmultilib.awk: Update as device info structure changed.
4327 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
4329 2014-04-04 Cong Hou <congh@google.com>
4331 PR tree-optimization/60656
4332 * tree-vect-stmts.c (supportable_widening_operation):
4333 Fix a bug that elements in a vector with vect_used_by_reduction
4334 property are incorrectly reordered when the operation on it is not
4335 consistant with the one in reduction operation.
4337 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
4339 PR rtl-optimization/60155
4340 * gcse.c (record_set_data): New function.
4341 (single_set_gcse): New function.
4342 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
4343 (hoist_code): Likewise.
4344 (get_pressure_class_and_nregs): Likewise.
4346 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
4348 * explow.c (probe_stack_range): Emit a final optimization blockage.
4350 2014-04-04 Anthony Green <green@moxielogic.com>
4352 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
4355 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
4358 * lto-cgraph.c (input_overwrite_node): Check that partitioning
4359 flags are set only during streaming.
4360 * ipa.c (process_references, walk_polymorphic_call_targets,
4361 symtab_remove_unreachable_nodes): Drop bodies of always inline
4362 after early inlining.
4363 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
4365 2014-04-04 Jakub Jelinek <jakub@redhat.com>
4366 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4369 * dwarf2out.c (const_ok_for_output_1): Reject expressions
4372 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4375 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
4377 (cortex_a53_fdivd): Likewise.
4379 2014-04-04 Martin Jambor <mjambor@suse.cz>
4382 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
4384 * cgraph.c (clone_of_p): Also return true if thunks match.
4385 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
4386 cgraph_function_or_thunk_node and an obsolete comment.
4387 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
4389 (build_function_decl_skip_args): Likewise.
4390 (set_new_clone_decl_and_node_flags): New function.
4391 (duplicate_thunk_for_node): Likewise.
4392 (redirect_edge_duplicating_thunks): Likewise.
4393 (cgraph_clone_node): New parameter args_to_skip, pass it to
4394 redirect_edge_duplicating_thunks which is called instead of
4395 cgraph_redirect_edge_callee.
4396 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
4397 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
4399 2014-04-04 Jeff Law <law@redhat.com>
4402 * config/arm/predicates.md (const_int_I_operand): New predicate.
4403 (const_int_M_operand): Similarly.
4404 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
4406 (insv_t2, extv_reg, extzv_t2): Likewise.
4407 (load_multiple_with_writeback): Similarly for const_int_I_operand.
4408 (pop_multiple_with_writeback_and_return): Likewise.
4409 (vfp_pop_multiple_with_writeback): Likewise
4411 2014-04-04 Richard Biener <rguenther@suse.de>
4414 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
4415 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
4417 * gimplify.h (gimple_add_tmp_var_fn): Declare.
4418 * gimplify.c (gimple_add_tmp_var_fn): New function.
4419 * gimple-expr.h (create_tmp_reg_fn): Declare.
4420 * gimple-expr.c (create_tmp_reg_fn): New function.
4421 * gimple-low.c (record_vars_into): Don't change cfun.
4422 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
4423 code generation without cfun.
4425 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
4428 * Makefile.in (install-driver): Fix shell scripting.
4430 2014-04-03 Cong Hou <congh@google.com>
4432 PR tree-optimization/60505
4433 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
4434 threshold of number of iterations below which no vectorization
4436 * tree-vect-loop.c (new_loop_vec_info):
4437 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
4438 * tree-vect-loop.c (vect_analyze_loop_operations):
4439 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
4440 * tree-vect-loop.c (vect_transform_loop):
4441 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
4442 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
4443 of iterations of the loop and see if we should build the epilogue.
4445 2014-04-03 Richard Biener <rguenther@suse.de>
4447 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
4448 (streamer_tree_cache_create): Adjust.
4449 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
4450 to allow optional nodes array.
4451 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
4452 (streamer_tree_cache_append): Likewise.
4453 (streamer_tree_cache_create): Create nodes array optionally
4454 as specified by parameter.
4455 * lto-streamer-out.c (create_output_block): Avoid maintaining
4456 the node array in the writer cache.
4457 (DFS_write_tree): Remove assertion.
4458 (produce_asm_for_decls): Free the out decl state hash table early.
4459 * lto-streamer-in.c (lto_data_in_create): Adjust for
4460 streamer_tree_cache_create prototype change.
4462 2014-04-03 Richard Biener <rguenther@suse.de>
4464 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
4465 set TREE_CHAIN to NULL_TREE.
4467 2014-04-03 Richard Biener <rguenther@suse.de>
4469 PR tree-optimization/60740
4470 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
4471 over all GIMPLE_COND operands.
4473 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
4475 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
4476 (Weffc++): Remove Scott's numbering, merge lists and reference
4479 2014-04-03 Nick Clifton <nickc@redhat.com>
4481 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
4484 2014-04-03 Martin Jambor <mjambor@suse.cz>
4486 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
4487 mention gcc_unreachable before failing.
4488 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
4491 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
4494 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
4495 inconsistent code and instead mark the context inconsistent.
4496 (possible_polymorphic_call_targets): For inconsistent contexts
4497 return empty complete list.
4499 2014-04-02 Anthony Green <green@moxielogic.com>
4501 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
4502 (extendqisi2, extendhisi2): Define.
4503 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
4504 (WCHAR_TYPE): Change to unsigned int.
4506 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4508 PR tree-optimization/60733
4509 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
4510 insertion point for PHI candidates to be the end of the feeding
4511 block for the PHI argument.
4513 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
4515 PR rtl-optimization/60650
4516 * lra-constraints.c (process_alt_operands): Decrease reject for
4517 earlyclobber matching.
4519 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4521 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
4523 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4525 * config/spu/spu.c (pad_bb): Do not crash when the last
4526 insn is CODE_FOR_blockage.
4528 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4530 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
4531 lies outside the target mode.
4533 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4536 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
4537 software floating point or no floating point registers, do not
4538 allow any type in the FPRs. Eliminate a test for SPE SIMD types
4539 in GPRs that occurs after we tested for GPRs that would never be
4542 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
4543 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
4544 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
4545 specifically allow DDmode, since that does not use the SPE SIMD
4548 2014-04-02 Richard Biener <rguenther@suse.de>
4551 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
4552 MODE_INTs. Properly use negv_optab.
4553 (expand_abs): Likewise.
4555 2014-04-02 Richard Biener <rguenther@suse.de>
4558 * Makefile.in (install-driver): Guard extra installs with special
4561 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
4563 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4566 2014-04-01 Richard Henderson <rth@redhat.com>
4569 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
4570 alternative enabled before register allocation.
4572 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
4574 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
4575 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
4577 (nios2_large_got_address): Remove unneeded 'sym' parameter.
4578 (nios2_got_address): Update nios2_large_got_address call site.
4579 (nios2_delegitimize_address): New function.
4580 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
4581 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
4582 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
4584 2014-04-01 Martin Husemann <martin@duskware.de>
4586 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
4589 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
4591 PR rtl-optimization/60604
4592 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
4593 check from register_operand.
4594 (register_operand): Redefine in terms of general_operand.
4595 (nonmemory_operand): Use register_operand for the non-constant cases.
4597 2014-04-01 Richard Biener <rguenther@suse.de>
4599 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
4601 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
4603 * doc/invoke.texi (mapp-regs): Clarify.
4605 2014-03-31 Ulrich Drepper <drepper@gmail.com>
4607 * config/i386/avx512fintrin.h (__v32hi): Define type.
4608 (__v64qi): Likewise.
4609 (_mm512_set1_epi8): Define.
4610 (_mm512_set1_epi16): Define.
4611 (_mm512_set4_epi32): Define.
4612 (_mm512_set4_epi64): Define.
4613 (_mm512_set4_pd): Define.
4614 (_mm512_set4_ps): Define.
4615 (_mm512_setr4_epi64): Define.
4616 (_mm512_setr4_epi32): Define.
4617 (_mm512_setr4_pd): Define.
4618 (_mm512_setr4_ps): Define.
4619 (_mm512_setzero_epi32): Define.
4621 2014-03-31 Martin Jambor <mjambor@suse.cz>
4624 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
4625 callsite_arguments_match_p. Updated all callers. Also check types of
4626 corresponding formal parameters and actual arguments.
4627 (not_all_callers_have_enough_arguments_p) Renamed to
4628 some_callers_have_mismatched_arguments_p.
4630 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
4632 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
4634 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
4637 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
4640 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
4642 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
4643 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
4645 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
4646 Use FMAMODE_NOVF512 mode iterator.
4647 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
4648 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
4649 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
4650 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
4652 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
4653 Use VF_128_256 mode iterator.
4654 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
4657 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4659 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
4660 static chain if needed.
4662 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
4665 * lra-constraints.c (index_part_to_reg): New.
4666 (process_address): Use it.
4668 2014-03-27 Jeff Law <law@redhat.com>
4669 Jakub Jelinek <jakub@redhat.com>
4672 * expr.c (do_tablejump): Use simplify_gen_binary rather than
4673 gen_rtx_{PLUS,MULT} to build up the address expression.
4675 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
4676 creating non-canonical RTL.
4678 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4681 * ipa-inline.c (want_inline_small_function_p): Short circuit large
4682 functions; reorganize to make cheap checks first.
4683 (inline_small_functions): Do not estimate growth when dumping;
4685 * ipa-inline.h (inline_summary): Add min_size.
4686 (growth_likely_positive): New function.
4687 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
4688 (set_cond_stmt_execution_predicate): Cleanup.
4689 (estimate_edge_size_and_time): Compute min_size.
4690 (estimate_calls_size_and_time): Likewise.
4691 (estimate_node_size_and_time): Likewise.
4692 (inline_update_overall_summary): Update min_size.
4693 (do_estimate_edge_time): Likewise.
4694 (do_estimate_edge_size): Update.
4695 (do_estimate_edge_hints): Update.
4696 (growth_likely_positive): New function.
4698 2014-03-28 Jakub Jelinek <jakub@redhat.com>
4701 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
4702 also if addr has VOIDmode.
4704 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4706 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
4707 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
4709 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
4710 instructions as well as AdvancedSIMD loads.
4712 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4714 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
4715 Use crypto_aese type.
4716 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
4717 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
4718 crypto_aese, crypto_aesmc. Move to types.md.
4719 * config/arm/types.md (crypto_aes): Split into crypto_aese,
4721 * config/arm/iterators.md (crypto_type): Likewise.
4723 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
4725 * cgraph.c: Include expr.h and tree-dfa.h.
4726 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
4729 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
4732 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
4733 regs from checking multi-reg pseudos.
4735 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4737 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
4739 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4741 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
4742 if it would clobber the stack pointer, even temporarily.
4744 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
4746 * mode-switching.c: Make small adjustments to the top comment.
4748 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
4750 * config/rs6000/constraints.md (wD constraint): New constraint to
4751 match the constant integer to get the top DImode/DFmode out of a
4752 vector in a VSX register.
4754 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
4755 match the constant integer to get the top DImode/DFmode out of a
4756 vector in a VSX register.
4758 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
4761 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4764 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
4765 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
4767 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
4768 Optimize vec_extract of 64-bit values, where the value being
4769 extracted is in the top word, where we can use scalar
4770 instructions. Add direct move and store support. Combine the big
4771 endian/little endian vector select load support into a single insn.
4772 (vsx_extract_<mode>_internal1): Likewise.
4773 (vsx_extract_<mode>_internal2): Likewise.
4774 (vsx_extract_<mode>_load): Likewise.
4775 (vsx_extract_<mode>_store): Likewise.
4776 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
4777 combined into vsx_extract_<mode>_load.
4778 (vsx_extract_<mode>_one_le): Likewise.
4780 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
4781 define the top 64-bit vector element.
4783 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
4786 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4787 Document vec_vbpermq builtin.
4790 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
4791 enable use of xxsldwi and xxpermdi builtin functions.
4792 (vec_xxpermdi): Likewise.
4794 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
4795 Document use of vec_xxsldwi and vec_xxpermdi builtins.
4797 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
4799 PR rtl-optimization/60650
4800 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
4802 (find_spills_for): New.
4803 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
4804 Spill all pseudos on the second iteration.
4806 2014-03-27 Marek Polacek <polacek@redhat.com>
4809 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
4812 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4814 * config/s390/s390.c (s390_can_use_return_insn): Check for
4815 call-saved FPRs on 31 bit.
4817 2014-03-27 Jakub Jelinek <jakub@redhat.com>
4820 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
4821 if they need regimplification, just drop them instead of
4822 calling gimple_regimplify_operands on them.
4824 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
4827 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
4828 (aarch64_frame_pointer_required): Adjust logic.
4829 (aarch64_can_eliminate): Adjust logic.
4830 (aarch64_override_options_after_change): Adjust logic.
4832 2014-03-27 Dehao Chen <dehao@google.com>
4834 * ipa-inline.c (early_inliner): Update node's inline info.
4836 2014-03-26 Dehao Chen <dehao@google.com>
4838 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
4839 compiler inserted conditional jumps for NAN float check.
4841 2014-03-26 Jakub Jelinek <jakub@redhat.com>
4843 * ubsan.h (ubsan_create_data): Change second argument's type
4844 to const location_t *.
4845 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
4847 (ubsan_create_data): Change second argument to const location_t *PLOC.
4848 Create Loc field whenever PLOC is non-NULL.
4849 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
4850 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
4854 * real.c (real_to_integer2): Change type of low to UHWI.
4856 2014-03-26 Tobias Burnus <burnus@net-b.de>
4858 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
4859 (CILK_SELF_SPECS): New define.
4860 (driver_self_specs): Use it.
4862 2014-03-26 Richard Biener <rguenther@suse.de>
4864 * tree-pretty-print.c (percent_K_format): Implement special
4865 case for LTO and its stripped down BLOCK tree.
4867 2014-03-26 Jakub Jelinek <jakub@redhat.com>
4870 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
4872 * tree-vrp.c (simplify_internal_call_using_ranges): If only
4873 one range is range_int_cst_p, but not both, at least optimize
4874 addition/subtraction of 0 and multiplication by 0 or 1.
4875 * gimple-fold.c (gimple_fold_call): Fold
4876 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
4877 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
4878 INTEGER_CSTs, try to fold at least x * 0 and y - y.
4880 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
4882 PR rtl-optimization/60452
4883 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
4884 <case REG>: Return 1 for invalid offsets from the frame pointer.
4886 2014-03-26 Marek Polacek <polacek@redhat.com>
4889 * doc/extend.texi (C Extensions): Mention variable-length arrays in
4892 2014-03-26 Marek Polacek <polacek@redhat.com>
4895 * doc/extend.texi (Designated Inits): Describe what happens to omitted
4898 2014-03-26 Marek Polacek <polacek@redhat.com>
4901 * ira-color.c (update_conflict_hard_regno_costs): Perform the
4902 multiplication in unsigned type.
4904 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
4906 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
4908 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
4910 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
4912 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
4915 * cif-code.def (UNREACHABLE) New code.
4916 * ipa-inline.c (inline_small_functions): Skip edges to
4917 __builtlin_unreachable.
4918 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
4919 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
4920 predicate to __bulitin_unreachable.
4921 (set_cond_stmt_execution_predicate): Fix issue when
4922 invert_tree_comparison returns ERROR_MARK.
4923 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
4924 propagate to inline clones.
4925 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
4927 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
4928 * cgraphclones.c (cgraph_clone_node): If call destination is already
4929 ureachable, do not redirect it back.
4930 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
4933 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
4935 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
4936 Do not modify inline clones.
4938 2014-03-25 Jakub Jelinek <jakub@redhat.com>
4940 * config/i386/i386.md (general_sext_operand): New mode attr.
4941 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
4942 don't generate (sign_extend (const_int)).
4943 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
4944 operands[2]. Use We constraint instead of <i> and
4945 <general_sext_operand> predicate instead of <general_operand>.
4946 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
4947 * config/i386/constraints.md (We): New constraint.
4948 * config/i386/predicates.md (x86_64_sext_operand,
4949 sext_operand): New predicates.
4951 2014-03-25 Martin Jambor <mjambor@suse.cz>
4954 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
4955 inconsistent devirtualizations to __builtin_unreachable.
4957 2014-03-25 Marek Polacek <polacek@redhat.com>
4960 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
4962 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
4964 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
4965 order of elements for big-endian.
4967 2014-03-25 Richard Biener <rguenther@suse.de>
4970 * gimplify-me.c (gimple_regimplify_operands): Update the
4973 2014-03-25 Martin Jambor <mjambor@suse.cz>
4976 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
4977 (lto_output_varpool_node): Likewise.
4978 (input_overwrite_node): Likewise.
4979 (input_varpool_node): Likewise.
4981 2014-03-25 Richard Biener <rguenther@suse.de>
4983 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
4984 (run_gcc): Likewise.
4986 2014-03-25 Jakub Jelinek <jakub@redhat.com>
4988 * combine.c (simplify_compare_const): Add MODE argument.
4989 Handle mode_width 0 as very large mode_width.
4990 (try_combine, simplify_comparison): Adjust callers.
4992 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
4993 type to avoid signed integer overflow.
4994 * explow.c (plus_constant): Likewise.
4996 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
4998 * doc/generic.texi: Correct typos.
5000 2014-03-24 Tobias Burnus <burnus@net-b.de>
5002 * doc/invoke.texi (-flto): Expand section about
5003 using static libraries with LTO.
5005 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5007 PR rtl-optimization/60501
5008 * optabs.def (addptr3_optab): New optab.
5009 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
5010 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
5011 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
5013 * lra.c (emit_add3_insn): Use the addptr pattern if available.
5015 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
5017 2014-03-24 Ulrich Drepper <drepper@gmail.com>
5019 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
5022 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
5023 (_mm256_undefined_ps): Define.
5024 (_mm256_undefined_pd): Define.
5025 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
5026 (_mm_undefined_pd): Define.
5027 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
5028 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
5029 (_mm512_undefined_ps): Define.
5030 (_mm512_undefined_pd): Define.
5031 Use _mm*_undefined_*.
5032 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
5034 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
5036 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
5037 (lshr_simd): DI mode added.
5038 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
5039 (aarch64_ushr_simddi): Likewise.
5040 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
5041 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
5042 (vshrd_n_u64): Likewise.
5044 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5046 * Makefile.in (s-macro_list): Depend on cc1.
5048 2014-03-23 Teresa Johnson <tejohnson@google.com>
5050 * ipa-utils.c (ipa_print_order): Use specified dump file.
5052 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
5054 PR rtl-optimization/60601
5055 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
5057 * gcc.c (eval_spec_function): Initialize save_growing_value.
5059 2014-03-22 Jakub Jelinek <jakub@redhat.com>
5062 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
5063 code == MINUS_EXPR, never swap op0 with op1.
5065 * toplev.c (init_local_tick): Avoid signed integer multiplication
5067 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
5068 shift by first operand's bitsize.
5070 2014-03-21 Jakub Jelinek <jakub@redhat.com>
5073 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
5075 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
5076 TARGET_ISA_64BIT_P(x).
5078 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5080 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
5081 pattern for vector nor instead of subtract from splat(-1).
5082 (altivec_expand_vec_perm_const_le): Likewise.
5084 2014-03-21 Richard Henderson <rth@twiddle.net>
5087 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
5088 related insns after epilogue_completed.
5090 2014-03-21 Martin Jambor <mjambor@suse.cz>
5093 * cgraph.h (symtab_node): New flag body_removed.
5094 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
5095 when removing bodies.
5096 * symtab.c (dump_symtab_base): Dump body_removed flag.
5097 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
5098 had their bodies removed.
5100 2014-03-21 Martin Jambor <mjambor@suse.cz>
5103 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
5106 2014-03-21 Richard Biener <rguenther@suse.de>
5108 PR tree-optimization/60577
5109 * tree-core.h (struct tree_base): Document nothrow_flag use
5111 * tree.h (DECL_NONALIASED): New.
5112 (may_be_aliased): Adjust.
5113 * coverage.c (build_var): Set DECL_NONALIASED.
5115 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5117 * expr.c (expand_expr_real_1): Remove outdated comment.
5119 2014-03-20 Jakub Jelinek <jakub@redhat.com>
5122 * ira.c (adjust_cleared_regs): Call copy_rtx on
5123 *reg_equiv[REGNO (loc)].src_p before passing it to
5124 simplify_replace_fn_rtx.
5127 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
5128 into CONST, put pic register as first operand of PLUS. Use
5129 gen_const_mem for both 32-bit and 64-bit PIC got loads.
5131 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5133 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
5135 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5137 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
5138 around for store forwarding issue in the FPU on the UT699.
5139 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
5140 loads and operations if -mfix-ut699 is specified.
5141 (divtf3_hq): Tweak attribute.
5142 (sqrttf2_hq): Likewise.
5144 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
5146 * calls.c (store_one_arg): Remove incorrect const qualification on the
5147 type of the temporary.
5148 * cfgexpand.c (expand_return): Likewise.
5149 * expr.c (expand_constructor): Likewise.
5150 (expand_expr_real_1): Likewise.
5152 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5154 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
5157 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
5160 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
5162 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
5164 * config/arm/aarch-common-protos.h
5165 (alu_cost_table): Fix spelling of "extend".
5166 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
5168 2014-03-19 Richard Biener <rguenther@suse.de>
5171 * tree-core.h (tree_type_common): Re-order pointer members
5172 to reduce recursion depth during GC walks.
5174 2014-03-19 Marek Polacek <polacek@redhat.com>
5177 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
5178 before accessing it.
5180 2014-03-19 Richard Biener <rguenther@suse.de>
5183 * lto-streamer-in.c (input_function): In WPA stage do not drop
5186 2014-03-19 Jakub Jelinek <jakub@redhat.com>
5188 PR tree-optimization/60559
5189 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
5190 with build_zero_cst assignment.
5192 2014-03-18 Kai Tietz <ktietz@redhat.com>
5194 PR rtl-optimization/56356
5195 * sdbout.c (sdbout_parms): Verify that parms'
5196 incoming argument is valid.
5197 (sdbout_reg_parms): Likewise.
5199 2014-03-18 Richard Henderson <rth@redhat.com>
5202 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
5203 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
5204 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
5206 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
5208 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
5209 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
5210 Italicize plugin event names in description. Explain that
5211 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
5212 Remind that no GCC functions should be called after PLUGIN_FINISH.
5213 Explain what pragmas with expansion are.
5215 2014-03-18 Martin Liska <mliska@suse.cz>
5217 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
5218 gimple call statement is update.
5219 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
5220 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
5222 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5225 * ubsan.c (ubsan_instrument_unreachable): Call
5226 initialize_sanitizer_builtins.
5227 (ubsan_pass): Likewise.
5230 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
5231 varpool_finalize_decl instead of rest_of_decl_compilation.
5233 2014-03-18 Richard Biener <rguenther@suse.de>
5235 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
5236 by using bitmap_and_compl instead of bitmap_and_compl_into.
5237 (df_rd_transfer_function): Likewise.
5239 2014-03-18 Richard Biener <rguenther@suse.de>
5241 * doc/lto.texi (fresolution): Fix typo.
5243 2014-03-18 Richard Biener <rguenther@suse.de>
5245 * doc/invoke.texi (flto): Update for changes in 4.9.
5247 2014-03-18 Richard Biener <rguenther@suse.de>
5249 * doc/loop.texi: Remove section on the removed lambda framework.
5250 Update loop docs with recent changes in preserving loop structure.
5252 2014-03-18 Richard Biener <rguenther@suse.de>
5254 * doc/lto.texi (-fresolution): Document.
5256 2014-03-18 Richard Biener <rguenther@suse.de>
5258 * doc/contrib.texi: Adjust my name.
5260 2014-03-18 Jakub Jelinek <jakub@redhat.com>
5263 * internal-fn.c: Include diagnostic-core.h.
5264 (expand_BUILTIN_EXPECT): New function.
5265 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
5266 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
5267 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
5268 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
5270 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
5271 Revert 3 argument __builtin_expect code.
5272 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
5273 * gimple-fold.c (gimple_fold_call): Likewise.
5274 * tree.h (fold_builtin_expect): New prototype.
5275 * builtins.c (build_builtin_expect_predicate): Add predictor
5276 argument, if non-NULL, create 3 argument __builtin_expect.
5277 (fold_builtin_expect): No longer static. Add ARG2 argument,
5278 pass it through to build_builtin_expect_predicate.
5279 (fold_builtin_2): Adjust caller.
5280 (fold_builtin_3): Handle BUILT_IN_EXPECT.
5281 * internal-fn.def (BUILTIN_EXPECT): New.
5283 2014-03-18 Tobias Burnus <burnus@net-b.de>
5286 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
5287 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
5288 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
5290 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
5293 * predict.c (combine_predictions_for_bb): Fix up formatting.
5294 (expr_expected_value_1, expr_expected_value): Add predictor argument,
5295 fill what it points to if non-NULL.
5296 (tree_predict_by_opcode): Adjust caller, use the predictor.
5297 * predict.def (PRED_COMPARE_AND_SWAP): Add.
5299 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
5301 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
5302 proper constant for the store mode.
5304 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
5306 * symtab.c (change_decl_assembler_name): Fix transparent alias
5309 2014-03-16 Renlin Li <Renlin.Li@arm.com>
5311 * config/aarch64/aarch64.c: Correct the comments about the
5312 aarch64 stack layout.
5314 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
5316 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
5317 check for GF_OMP_FOR_KIND_FOR.
5319 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
5321 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
5322 ymm and zmm register names.
5324 2014-03-17 Jakub Jelinek <jakub@redhat.com>
5327 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
5328 note creation for the 2010-08-31 changes.
5330 2014-03-17 Marek Polacek <polacek@redhat.com>
5333 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
5334 as -fno-tree-loop-vectorize.
5335 (expand_omp_simd): Likewise.
5337 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
5339 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
5340 (eligible_for_call_delay): New prototype.
5341 * config/sparc/sparc.c (tls_call_delay): Rename into...
5342 (eligible_for_call_delay): ...this. Return false if the instruction
5343 cannot be put in the delay slot of a branch.
5344 (eligible_for_restore_insn): Simplify.
5345 (eligible_for_return_delay): Return false if the instruction cannot be
5346 put in the delay slot of a branch and simplify.
5347 (eligible_for_sibcall_delay): Return false if the instruction cannot be
5348 put in the delay slot of a branch.
5349 * config/sparc/sparc.md (fix_ut699): New attribute.
5350 (tls_call_delay): Delete.
5351 (in_call_delay): Reimplement.
5352 (eligible_for_sibcall_delay): Rename into...
5353 (in_sibcall_delay): ...this.
5354 (eligible_for_return_delay): Rename into...
5355 (in_return_delay): ...this.
5356 (in_branch_delay): Reimplement.
5357 (in_uncond_branch_delay): Delete.
5358 (in_annul_branch_delay): Delete.
5360 2014-03-14 Richard Henderson <rth@redhat.com>
5363 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
5364 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
5365 (*floathi<X87MODEF>2_i387_with_temp): Remove.
5366 (floathi splitters): Remove.
5367 (float<SWI48x>xf2): New pattern.
5368 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
5369 code that tried to handle DImode for 32-bit, but which was excluded
5370 by the pattern's condition. Drop allocation of stack temporary.
5371 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
5372 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
5373 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
5374 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
5375 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
5376 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
5377 (*float<SWI48><MODEF>2_sse_interunit): Remove.
5378 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
5379 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
5380 (*float<SWI48x><X87MODEF>2_i387): Remove.
5381 (all float _with_temp splitters): Remove.
5382 (*float<SWI48x><MODEF>2_i387): New pattern.
5383 (*float<SWI48><MODEF>2_sse): New pattern.
5384 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
5385 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
5387 2014-03-14 Jakub Jelinek <jakub@redhat.com>
5388 Marek Polacek <polacek@redhat.com>
5391 * common.opt (dump_base_name_prefixed): New Variable.
5392 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
5393 if x_dump_base_name_prefixed is already set, set it at the end.
5395 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
5397 PR rtl-optimization/60508
5398 * lra-constraints.c (get_reload_reg): Add new parameter
5400 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
5401 Pass the new parameter values.
5403 2014-03-14 Richard Biener <rguenther@suse.de>
5405 * common.opt: Revert unintented changes from r205065.
5408 2014-03-14 Richard Biener <rguenther@suse.de>
5411 * cfghooks.c (split_block): Properly adjust all loops the
5412 block was a latch of.
5414 2014-03-14 Martin Jambor <mjambor@suse.cz>
5417 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
5420 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
5423 * config/avr/avr.c (avr_set_current_function): Pass function name
5424 through default_strip_name_encoding before sanity checking instead
5425 of skipping the first char of the assembler name.
5427 2014-03-13 Richard Henderson <rth@redhat.com>
5430 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
5431 (ix86_force_to_memory, ix86_free_from_memory): Remove.
5432 * config/i386/i386-protos.h: Likewise.
5433 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
5434 in the expander instead of a splitter.
5435 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
5436 any possibility of requiring a memory.
5437 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
5438 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
5439 (fp branch splitters): Update for ix86_split_fp_branch.
5440 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
5441 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
5442 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
5443 (*fop_<MODEF>_2_i387): Remove f/r alternative.
5444 (*fop_<MODEF>_3_i387): Likewise.
5445 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
5446 (splitters for the fop_* register patterns): Remove.
5447 (fscalexf4_i387): Rename from *fscalexf4_i387.
5448 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
5450 2014-03-13 Jakub Jelinek <jakub@redhat.com>
5452 PR tree-optimization/59779
5453 * tree-dfa.c (get_ref_base_and_extent): Use double_int
5454 type for bitsize and maxsize instead of HOST_WIDE_INT.
5456 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
5458 PR rtl-optimization/57320
5459 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
5460 the CFG after thread_prologue_and_epilogue_insns.
5462 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
5464 PR rtl-optimization/57189
5465 * lra-constraints.c (process_alt_operands): Disfavor spilling
5468 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
5470 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
5472 2014-03-13 Jakub Jelinek <jakub@redhat.com>
5474 PR tree-optimization/59025
5476 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
5477 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
5479 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
5482 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
5483 calls of avr_out_plus_1.
5485 2014-03-13 Bin Cheng <bin.cheng@arm.com>
5487 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
5488 BB's single pred and update the father loop's latch info later.
5490 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5492 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
5496 (VEC_base): Likewise.
5497 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
5498 registers, we need to swap double words in little endian mode.
5500 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
5501 to be a container mode for 128-bit integer operations added in ISA
5502 2.07. Unlike TImode and PTImode, the preferred register set is
5503 the Altivec/VMX registers for the 128-bit operations.
5505 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
5507 (rs6000_split_128bit_ok_p): Likewise.
5509 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
5510 macros for creating ISA 2.07 normal and overloaded builtin
5511 functions with 3 arguments.
5512 (BU_P8V_OVERLOAD_3): Likewise.
5513 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
5514 for use as overloaded functions.
5515 (VPERM_1TI_UNS): Likewise.
5516 (VSEL_1TI): Likewise.
5517 (VSEL_1TI_UNS): Likewise.
5518 (ST_INTERNAL_1ti): Likewise.
5519 (LD_INTERNAL_1ti): Likewise.
5520 (XXSEL_1TI): Likewise.
5521 (XXSEL_1TI_UNS): Likewise.
5522 (VPERM_1TI): Likewise.
5523 (VPERM_1TI_UNS): Likewise.
5524 (XXPERMDI_1TI): Likewise.
5525 (SET_1TI): Likewise.
5526 (LXVD2X_V1TI): Likewise.
5527 (STXVD2X_V1TI): Likewise.
5528 (VEC_INIT_V1TI): Likewise.
5529 (VEC_SET_V1TI): Likewise.
5530 (VEC_EXT_V1TI): Likewise.
5531 (EQV_V1TI): Likewise.
5532 (NAND_V1TI): Likewise.
5533 (ORC_V1TI): Likewise.
5534 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
5535 added in ISA 2.07. Add both normal 'altivec' builtins, and the
5537 (VADDUQM): Likewise.
5538 (VSUBCUQ): Likewise.
5539 (VADDEUQM): Likewise.
5540 (VADDECUQ): Likewise.
5541 (VSUBEUQM): Likewise.
5542 (VSUBECUQ): Likewise.
5544 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
5545 __int128_t and __uint128_t types.
5546 (__uint128_type): Likewise.
5547 (altivec_categorize_keyword): Add support for vector __int128_t,
5548 vector __uint128_t, vector __int128, and vector unsigned __int128
5549 as a container type for TImode operations that need to be done in
5550 VSX/Altivec registers.
5551 (rs6000_macro_to_expand): Likewise.
5552 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
5553 to support 128-bit integer instructions vaddcuq, vadduqm,
5554 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
5555 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
5557 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
5558 for V1TImode, and set up preferences to use VSX/Altivec registers.
5559 Setup VSX reload handlers.
5560 (rs6000_debug_reg_global): Likewise.
5561 (rs6000_init_hard_regno_mode_ok): Likewise.
5562 (rs6000_preferred_simd_mode): Likewise.
5563 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
5564 (easy_altivec_constant): Likewise.
5565 (output_vec_const_move): Likewise.
5566 (rs6000_expand_vector_set): Convert V1TImode set and extract to
5568 (rs6000_expand_vector_extract): Likewise.
5569 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
5571 (rs6000_const_vec): Add support for V1TImode.
5572 (rs6000_emit_le_vsx_load): Swap double words when loading or
5573 storing TImode/V1TImode.
5574 (rs6000_emit_le_vsx_store): Likewise.
5575 (rs6000_emit_le_vsx_move): Likewise.
5576 (rs6000_emit_move): Add support for V1TImode.
5577 (altivec_expand_ld_builtin): Likewise.
5578 (altivec_expand_st_builtin): Likewise.
5579 (altivec_expand_vec_init_builtin): Likewise.
5580 (altivec_expand_builtin): Likewise.
5581 (rs6000_init_builtins): Add support for V1TImode type. Add
5582 support for ISA 2.07 128-bit integer builtins. Define type names
5583 for the VSX/Altivec vector types.
5584 (altivec_init_builtins): Add support for overloaded vector
5585 functions with V1TImode type.
5586 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
5587 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
5589 (rs6000_split_128bit_ok_p): Likewise.
5590 (rs6000_handle_altivec_attribute): Create V1TImode from vector
5591 __int128_t and vector __uint128_t.
5593 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
5594 and mode attributes.
5601 (VS_scalar): Likewise.
5602 (VS_double): Likewise.
5603 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
5605 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
5606 we support the ISA 2.07 128-bit integer arithmetic instructions.
5607 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
5608 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
5609 and TImode types for use with the builtin functions.
5610 (V1TI_type_node): Likewise.
5611 (unsigned_V1TI_type_node): Likewise.
5612 (intTI_type_internal_node): Likewise.
5613 (uintTI_type_internal_node): Likewise.
5615 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
5616 128-bit builtin functions.
5617 (UNSPEC_VADDEUQM): Likewise.
5618 (UNSPEC_VADDECUQ): Likewise.
5619 (UNSPEC_VSUBCUQ): Likewise.
5620 (UNSPEC_VSUBEUQM): Likewise.
5621 (UNSPEC_VSUBECUQ): Likewise.
5622 (VM): Add V1TImode to vector mode iterators.
5624 (VI_unit): Likewise.
5625 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
5626 (altivec_vaddcuq): Likewise.
5627 (altivec_vsubuqm): Likewise.
5628 (altivec_vsubcuq): Likewise.
5629 (altivec_vaddeuqm): Likewise.
5630 (altivec_vaddecuq): Likewise.
5631 (altivec_vsubeuqm): Likewise.
5632 (altivec_vsubecuq): Likewise.
5634 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
5636 (BOOL_128): Likewise.
5637 (BOOL_REGS_OUTPUT): Likewise.
5638 (BOOL_REGS_OP1): Likewise.
5639 (BOOL_REGS_OP2): Likewise.
5640 (BOOL_REGS_UNARY): Likewise.
5641 (BOOL_REGS_AND_CR0): Likewise.
5643 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
5644 128-bit integer builtin support.
5645 (vec_vadduqm): Likewise.
5646 (vec_vaddecuq): Likewise.
5647 (vec_vaddeuqm): Likewise.
5648 (vec_vsubecuq): Likewise.
5649 (vec_vsubeuqm): Likewise.
5650 (vec_vsubcuq): Likewise.
5651 (vec_vsubuqm): Likewise.
5653 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5654 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
5655 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
5656 128-bit integer add/subtract to ISA 2.07.
5658 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
5660 * config/arc/arc.c (arc_predicate_delay_insns):
5661 Fix third argument passed to conditionalize_nonjump.
5663 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
5665 * config/aarch64/aarch64-builtins.c
5666 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
5667 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
5668 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
5669 instead of __builtin_lfloor.
5670 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
5672 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5674 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
5675 (tree_ssa_ifcombine_bb_1): New function.
5676 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
5677 is an empty forwarder block to then_bb or vice versa and then_bb
5678 and else_bb are effectively swapped.
5680 2014-03-12 Christian Bruel <christian.bruel@st.com>
5683 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
5684 REG_CFA_DEF_CFA note.
5685 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
5686 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
5688 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
5690 PR tree-optimization/60454
5691 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
5693 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5695 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
5696 Do not define target_cpu_default2 to generic.
5697 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
5698 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
5699 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
5701 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5702 Marc Glisse <marc.glisse@inria.fr>
5704 PR tree-optimization/60502
5705 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
5706 instead of build_low_bits_mask.
5708 2014-03-12 Jakub Jelinek <jakub@redhat.com>
5711 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
5712 if there are multiple uses, but op doesn't live on E edge.
5713 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
5714 clobber stmts before __builtin_unreachable.
5716 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
5718 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
5719 hard_frame_pointer_rtx.
5720 * cse.c (cse_insn): Remove volatile check.
5721 * cselib.c (cselib_process_insn): Likewise.
5722 * dse.c (scan_insn): Likewise.
5724 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
5726 * config/arc/arc.c (conditionalize_nonjump): New function,
5728 (arc_ifcvt): ... this.
5729 (arc_predicate_delay_insns): Use it.
5731 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
5733 * config/arc/predicates.md (extend_operand): During/after reload,
5734 allow const_int_operand.
5735 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
5736 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
5737 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
5739 (umulsi3_highpart_i): Likewise.
5741 2014-03-11 Richard Biener <rguenther@suse.de>
5743 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
5744 Add asserts to guard possible wrong-code bugs.
5746 2014-03-11 Richard Biener <rguenther@suse.de>
5748 PR tree-optimization/60429
5749 PR tree-optimization/60485
5750 * tree-ssa-structalias.c (set_union_with_increment): Properly
5751 take into account all fields that overlap the shifted vars.
5752 (do_sd_constraint): Likewise.
5753 (do_ds_constraint): Likewise.
5754 (get_constraint_for_ptr_offset): Likewise.
5756 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
5758 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
5759 (nios2_compute_frame_layout):
5760 Add calculation of cfun->machine->fp_save_offset.
5761 (nios2_expand_prologue): Correct setting of frame pointer register
5763 (nios2_expand_epilogue): Update recovery of stack pointer from
5764 frame pointer accordingly.
5765 (nios2_initial_elimination_offset): Update calculation of offset
5766 for eliminating to HARD_FRAME_POINTER_REGNUM.
5768 2014-03-10 Jakub Jelinek <jakub@redhat.com>
5771 * ipa.c (symtab_remove_unreachable_nodes): Don't call
5772 cgraph_get_create_node on VAR_DECLs.
5774 2014-03-10 Richard Biener <rguenther@suse.de>
5777 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
5779 2014-03-08 Douglas B Rupp <rupp@gnat.com>
5781 * config/vms/vms.opt (vms_float_format): New variable.
5783 2014-03-08 Tobias Burnus <burnus@net-b.de>
5785 * doc/invoke.texi (-fcilkplus): Update implementation status.
5787 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
5788 Richard Biener <rguenther@suse.de>
5790 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
5791 consistently accross all TUs.
5792 (run_gcc): Enable -fshort-double automatically at link at link-time
5793 and disallow override.
5795 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
5798 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
5799 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
5800 if they can't be used.
5802 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5804 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
5805 for Solaris 11/x86 ld.
5806 * configure: Regenerate.
5808 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5810 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
5811 (LIB_TLS_SPEC): Save as ld_tls_libs.
5812 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
5813 (HAVE_AS_IX86_TLSLDM): New test.
5814 * configure, config.in: Regenerate.
5815 * config/i386/i386.c (legitimize_tls_address): Fall back to
5816 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
5817 cannot support TLS_MODEL_LOCAL_DYNAMIC.
5818 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
5819 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
5821 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
5823 * common.opt (fira-loop-pressure): Mark as optimization.
5825 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
5827 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
5828 an OpenMP mappable type.
5830 2014-03-06 Matthias Klose <doko@ubuntu.com>
5832 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
5833 MULTILIB_OSDIRNAMES is not defined.
5835 2014-03-06 Jakub Jelinek <jakub@redhat.com>
5836 Meador Inge <meadori@codesourcery.com>
5839 * config/arm/arm.c (arm_tls_symbol_p): Remove.
5840 (arm_legitimize_address): Call legitimize_tls_address for any
5841 arm_tls_referenced_p expression, handle constant addend. Call it
5842 before testing for !TARGET_ARM.
5843 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
5845 2014-03-06 Richard Biener <rguenther@suse.de>
5851 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
5853 * tree-streamer.c (record_common_node): Assert we don't record
5854 nodes with type double.
5855 (preload_common_node): Skip type double, complex double and double
5856 pointer since it is now frontend dependent due to fshort-double option.
5858 2014-03-06 Richard Biener <rguenther@suse.de>
5860 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
5861 or -fno-lto is specified and the linker has full plugin support.
5862 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
5863 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
5864 * lto-wrapper.c (merge_and_complain): Merge compile-time
5865 optimization levels.
5866 (run_gcc): And pass it through to the link options.
5868 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
5872 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
5874 * cselib.c (remove_useless_values): Skip to avoid quadratic
5875 behavior if the condition moved from...
5876 (cselib_process_insn): ... here holds.
5878 2014-03-05 Jakub Jelinek <jakub@redhat.com>
5881 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
5882 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
5885 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
5886 (TM_H): Add x86-tune.def.
5888 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5890 * config/aarch64/aarch64.c (generic_tunings):
5891 Use cortexa57_extra_costs.
5893 2014-03-05 Jakub Jelinek <jakub@redhat.com>
5896 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
5897 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
5898 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
5901 2014-03-04 Heiher <r@hev.cc>
5903 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
5904 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
5906 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
5908 * config/i386/predicates.md (const2356_operand): Change to ...
5909 (const2367_operand): ... this.
5910 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
5912 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
5913 (*avx512pf_scatterpf<mode>sf): Ditto.
5914 (avx512pf_scatterpf<mode>df): Ditto.
5915 (*avx512pf_scatterpf<mode>df_mask): Ditto.
5916 (*avx512pf_scatterpf<mode>df): Ditto.
5917 * config/i386/i386.c (ix86_expand_builtin): Update
5918 incorrect hint operand error message.
5920 2014-03-04 Richard Biener <rguenther@suse.de>
5922 * lto-section-in.c (lto_get_section_data): Fix const cast.
5924 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
5926 * tree-streamer.c (record_common_node): Assert we don't record
5927 nodes with type double.
5928 (preload_common_node): Skip type double, complex double and double
5929 pointer since it is now frontend dependent due to fshort-double option.
5931 2014-03-04 Richard Biener <rguenther@suse.de>
5934 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
5935 (lto_input_toplevel_asms): Likewise.
5936 * lto-section-in.c (lto_get_section_data): Instead do it here
5939 2014-03-04 Richard Biener <rguenther@suse.de>
5941 PR tree-optimization/60382
5942 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
5943 dead PHIs a reduction.
5945 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
5947 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
5949 (_mm_prefetch): Move out of GCC target("sse") pragma.
5950 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
5951 GCC target("prfchw") pragma.
5952 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
5954 * config/i386/i386.c (ix86_option_override_internal): Enable
5955 -mprfchw with -mprefetchwt1.
5957 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
5959 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
5962 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
5964 * opts.h (CL_PCH_IGNORE): Define.
5965 * targhooks.c (option_affects_pch_p):
5966 Return false for options that have CL_PCH_IGNORE set.
5967 * opt-functions.awk: Process PchIgnore.
5968 * doc/options.texi: Document PchIgnore.
5970 * config/arc/arc.opt (misize): Add PchIgnore property.
5972 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5974 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
5975 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
5976 constraint on constants to permit them being loaded into
5977 GENERAL_REGS or BASE_REGS.
5979 2014-03-03 Nick Clifton <nickc@redhat.com>
5981 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
5982 anti-cacnonical alternatives.
5983 (negandhi3_real): New pattern.
5984 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
5986 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5988 * config/avr/avr-mcus.def: Remove atxmega16x1.
5989 * config/avr/avr-tables.opt: Regenerate.
5990 * config/avr/t-multilib: Regenerate.
5991 * doc/avr-mmcu.texi: Regenerate.
5993 2014-03-03 Tobias Grosser <tobias@grosser.es>
5994 Mircea Namolaru <mircea.namolaru@inria.fr>
5996 PR tree-optimization/58028
5997 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
6000 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6002 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
6003 not handled by recognizers.
6005 2014-03-03 Jakub Jelinek <jakub@redhat.com>
6008 * function.c (expand_function_end): Don't emit
6009 clobber_return_register sequence if clobber_after is a BARRIER.
6010 * cfgexpand.c (construct_exit_block): Append instructions before
6011 return_label to prev_bb.
6013 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6015 * config/rs6000/constraints.md: Document reserved use of "wc".
6017 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6020 * ipa.c (function_and_variable_visibility): When dissolving comdat
6021 group, also set all symbols to local.
6023 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
6028 2013-12-14 Jan Hubicka <jh@suse.cz>
6030 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
6032 2014-03-02 Jon Beniston <jon@beniston.com>
6038 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
6039 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
6040 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
6041 (simple_return, *simple_return): New patterns
6042 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
6043 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
6045 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
6047 * dwarf2out.c (gen_subprogram_die): Tidy.
6049 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
6052 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
6053 (*mov_t_msb_neg_negc): ... this new insn.
6055 2014-02-28 Jason Merrill <jason@redhat.com>
6058 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
6061 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
6064 * dwarf2out.c (decltype_auto_die): New static.
6065 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
6066 (gen_type_die_with_usage): Handle 'decltype(auto)'.
6067 (is_cxx_auto): Likewise.
6069 2014-02-28 Ian Bolton <ian.bolton@arm.com>
6071 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
6072 we are not using general regs only.
6074 2014-02-28 Richard Biener <rguenther@suse.de>
6077 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
6078 previous fix and only allow to remove trivial pre-headers
6079 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
6080 (remove_forwarder_block): Properly update the latch of a loop.
6082 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6085 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
6086 (cselib_preserved_hash_table): New.
6087 (preserve_constants_and_equivs): Move preserved vals to it.
6088 (cselib_find_slot): Look it up first.
6089 (cselib_init): Initialize it.
6090 (cselib_finish): Release it.
6091 (dump_cselib_table): Dump it.
6093 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6096 * cselib.c (remove_useless_values): Skip to avoid quadratic
6097 behavior if the condition moved from...
6098 (cselib_process_insn): ... here holds.
6100 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
6103 * var-tracking.c (vt_initialize): Apply the same condition to
6104 preserve the CFA base value.
6106 2014-02-28 Joey Ye <joey.ye@arm.com>
6109 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
6110 if reload in progress or completed.
6112 2014-02-28 Tobias Burnus <burnus@net-b.de>
6115 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
6118 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
6120 * doc/tm.texi.in (Condition Code Status): Update documention for
6121 relative locations of cc0-setter and cc0-user.
6123 2014-02-27 Jeff Law <law@redhat.com>
6125 PR rtl-optimization/52714
6126 * combine.c (try_combine): When splitting an unrecognized PARALLEL
6127 into two independent simple sets, if I3 is a jump, ensure the
6128 pattern we place into I3 is a (set (pc) ...).
6130 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
6131 Jeff Law <law@redhat.com>
6133 PR rtl-optimization/49847
6134 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
6135 are in different blocks.
6136 * doc/tm.texi (Condition Code Status): Update documention for
6137 relative locations of cc0-setter and cc0-user.
6139 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
6142 * lra.c (lra_emit_add): Check SUBREG too.
6144 2014-02-27 Andreas Schwab <schwab@suse.de>
6146 * config/m68k/m68k.c (m68k_option_override): Disable
6147 -flive-range-shrinkage for classic m68k.
6148 (m68k_override_options_after_change): Likewise.
6150 2014-02-27 Marek Polacek <polacek@redhat.com>
6153 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
6154 -Wmaybe-uninitialized.
6156 2014-02-27 Alan Modra <amodra@gmail.com>
6159 * reload1.c (emit_input_reload_insns): When reload_override_in,
6160 set old to rl->in_reg when rl->in_reg is a subreg.
6162 2014-02-26 Richard Biener <rguenther@suse.de>
6165 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
6167 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6169 * common/config/i386/predicates.md (const1256_operand): Remove.
6170 (const2356_operand): New.
6171 (const_1_to_2_operand): Remove.
6172 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
6173 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
6174 (*avx512pf_gatherpf<mode>sf): Ditto.
6175 (avx512pf_gatherpf<mode>df): Ditto.
6176 (*avx512pf_gatherpf<mode>df_mask): Ditto.
6177 (*avx512pf_gatherpf<mode>df): Ditto.
6178 (avx512pf_scatterpf<mode>sf): Ditto.
6179 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
6180 (*avx512pf_scatterpf<mode>sf): Ditto.
6181 (avx512pf_scatterpf<mode>df): Ditto.
6182 (*avx512pf_scatterpf<mode>df_mask): Ditto.
6183 (*avx512pf_scatterpf<mode>df): Ditto.
6184 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
6186 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
6188 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
6189 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
6190 (_mm512_mask_testn_epi64_mask): Move to ...
6191 * config/i386/avx512cdintrin.h: Here.
6192 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
6193 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
6194 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
6195 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
6196 TARGET_AVX512F from TARGET_AVX512CD.
6198 2014-02-26 Richard Biener <rguenther@suse.de>
6201 * ipa.c (walk_polymorphic_call_targets): Properly guard
6202 call to inline_update_overall_summary.
6204 2014-02-26 Bin Cheng <bin.cheng@arm.com>
6207 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
6208 and latches only if requested. Fix latch if it is removed.
6209 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
6210 LOOPS_HAVE_PREHEADERS.
6212 2014-02-25 Andrew Pinski <apinski@cavium.com>
6214 * builtins.c (expand_builtin_thread_pointer): Create a new target
6215 when the target is NULL.
6217 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
6219 PR rtl-optimization/60317
6220 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6221 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
6222 * lra-assigns.c: Include params.h.
6223 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
6224 other reload pseudos considerations.
6226 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6228 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
6229 to use canonical form for nor<mode>3.
6231 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6234 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
6237 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
6239 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
6240 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
6241 (ix86_handle_option): Handle OPT_mprefetchwt1.
6242 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
6243 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6245 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
6246 OPTION_MASK_ISA_PREFETCHWT1.
6247 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
6248 (PTA_PREFETCHWT1): New.
6249 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
6250 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
6251 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
6252 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
6253 (*prefetch_avx512pf_<mode>_: Change into ...
6254 (*prefetch_prefetchwt1_<mode>: This.
6255 * config/i386/i386.opt (mprefetchwt1): New.
6256 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
6257 (_mm_prefetch): Handle intent to write.
6258 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
6260 2014-02-25 Richard Biener <rguenther@suse.de>
6263 * emit-rtl.c (mem_attrs_htab): Remove.
6264 (mem_attrs_htab_hash): Likewise.
6265 (mem_attrs_htab_eq): Likewise.
6266 (set_mem_attrs): Always allocate new mem-attrs when something changed.
6267 (init_emit_once): Do not allocate mem_attrs_htab.
6269 2014-02-25 Richard Biener <rguenther@suse.de>
6272 * lto-opts.c (lto_write_options): Output non-explicit conservative
6273 -fwrapv, -fno-trapv and -fno-strict-overflow.
6274 * lto-wrapper.c (merge_and_complain): Handle merging those options.
6275 (run_gcc): And pass them through.
6277 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6279 * sel-sched.c (calculate_new_fences): New parameter ptime.
6280 Calculate it as a maximum over all fence cycles.
6281 (sel_sched_region_2): Adjust the call to calculate_new_fences.
6282 Print the final schedule timing when sched_verbose.
6284 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
6286 PR rtl-optimization/60292
6287 * sel-sched.c (fill_vec_av_set): Do not reset target availability
6288 bit fot the fence instruction.
6290 2014-02-24 Alangi Derick <alangiderick@gmail.com>
6292 * calls.h: Fix typo in comment.
6294 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
6296 * config/pa/pa.c (pa_output_move_double): Don't valididate when
6297 adjusting offsetable addresses.
6299 2014-02-24 Guozhi Wei <carrot@google.com>
6301 * sparseset.h (sparseset_pop): Fix the wrong index.
6303 2014-02-24 Walter Lee <walt@tilera.com>
6305 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
6306 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
6308 * common/config/tilegx/tilegx-common.c
6309 (TARGET_DEFAULT_TARGET_FLAGS): Define.
6310 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
6312 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
6313 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
6314 (tilegx_gimplify_va_arg_expr): Handle big endian.
6315 (tilegx_expand_unaligned_load): Ditto.
6316 (tilegx_expand_unaligned_store): Ditto.
6317 (TARGET_RETURN_IN_MSB): New.
6318 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
6319 (TARGET_ENDIAN_DEFAULT): New.
6320 (TARGET_BIG_ENDIAN): Handle big endian.
6321 (BYTES_BIG_ENDIAN): Ditto.
6322 (WORDS_BIG_ENDIAN): Ditto.
6323 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
6326 * config/tilegx/tilegx.md (extv): Handle big endian.
6328 (insn_st<n>): Ditto.
6329 (insn_st<n>_add<bitsuffix>): Ditto.
6330 (insn_stnt<n>): Ditto.
6331 (insn_stnt<n>_add<bitsuffix>):Ditto.
6332 (vec_interleave_highv8qi): Handle big endian.
6333 (vec_interleave_highv8qi_be): New.
6334 (vec_interleave_highv8qi_le): New.
6335 (insn_v1int_h): Handle big endian.
6336 (vec_interleave_lowv8qi): Handle big endian.
6337 (vec_interleave_lowv8qi_be): New.
6338 (vec_interleave_lowv8qi_le): New.
6339 (insn_v1int_l): Handle big endian.
6340 (vec_interleave_highv4hi): Handle big endian.
6341 (vec_interleave_highv4hi_be): New.
6342 (vec_interleave_highv4hi_le): New.
6343 (insn_v2int_h): Handle big endian.
6344 (vec_interleave_lowv4hi): Handle big endian.
6345 (vec_interleave_lowv4hi_be): New.
6346 (vec_interleave_lowv4hi_le): New.
6347 (insn_v2int_l): Handle big endian.
6348 (vec_interleave_highv2si): Handle big endian.
6349 (vec_interleave_highv2si_be): New.
6350 (vec_interleave_highv2si_le): New.
6351 (insn_v4int_h): Handle big endian.
6352 (vec_interleave_lowv2si): Handle big endian.
6353 (vec_interleave_lowv2si_be): New.
6354 (vec_interleave_lowv2si_le): New.
6355 (insn_v4int_l): Handle big endian.
6356 * config/tilegx/tilegx.opt (mbig-endian): New option.
6357 (mlittle-endian): New option.
6358 * doc/install.texi: Document tilegxbe-linux.
6359 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
6361 2014-02-24 Martin Jambor <mjambor@suse.cz>
6364 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
6365 there are no parameter descriptors.
6367 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
6369 PR rtl-optimization/60268
6370 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
6371 initialization to ...
6372 (sched_rgn_init): ... here.
6373 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
6375 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6377 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
6380 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
6382 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
6385 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6387 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
6388 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
6390 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
6392 * config/microblaze/predicates.md: Add cmp_op predicate.
6393 * config/microblaze/microblaze.md: Add branch_compare instruction
6394 which uses cmp_op predicate and emits cmp insn before branch.
6395 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
6396 to microblaze_expand_conditional_branch and consolidate logic.
6397 (microblaze_expand_conditional_branch): emit branch_compare
6398 insn instead of handling cmp op separate from branch insn.
6400 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6402 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
6405 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6407 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
6408 define_insn with define_expand and new define_insn
6409 *altivec_lve<VI_char>x_internal.
6410 (altivec_stve<VI_char>x): Replace define_insn with define_expand
6411 and new define_insn *altivec_stve<VI_char>x_internal.
6412 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
6414 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
6416 (altivec_expand_stvex_be): New function.
6418 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
6420 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
6421 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
6422 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
6423 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
6425 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
6428 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
6429 instead of emit_move_insn.
6431 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6433 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
6435 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
6436 gen_altivec_vsumsws.
6438 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6440 * config/rs6000/altivec.md (altivec_lvxl): Rename as
6441 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
6442 (altivec_lvxl_<mode>): New define_expand incorporating
6443 -maltivec=be semantics where needed.
6444 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
6445 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
6446 semantics where needed.
6447 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
6448 (altivec_stvx_<mode>): New define_expand incorporating
6449 -maltivec=be semantics where needed.
6450 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
6451 VM2 iterator instead of V4SI.
6452 (altivec_stvxl_<mode>): New define_expand incorporating
6453 -maltivec=be semantics where needed.
6454 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
6455 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
6456 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
6457 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
6458 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
6459 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
6460 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
6461 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
6462 ALTIVEC_BUILTIN_STVXL.
6463 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
6464 (altivec_expand_stvx_be): Likewise.
6465 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
6466 (altivec_expand_lvx_be): Likewise.
6467 (altivec_expand_stvx_be): Likewise.
6468 (altivec_expand_builtin): Add cases for
6469 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
6470 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
6471 (altivec_init_builtins): Add definitions for
6472 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
6473 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
6475 2014-02-21 Catherine Moore <clm@codesourcery.com>
6477 * doc/invoke.texi (mvirt, mno-virt): Document.
6478 * config/mips/mips.opt (mvirt): New option.
6479 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
6481 2014-02-21 Richard Biener <rguenther@suse.de>
6483 PR tree-optimization/60276
6484 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
6485 (STMT_VINFO_MIN_NEG_DIST): New macro.
6486 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
6487 STMT_VINFO_MIN_NEG_DIST.
6488 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
6489 made for negative dependence distances still hold.
6491 2014-02-21 Richard Biener <rguenther@suse.de>
6494 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
6495 DECL_INITIAL for globals not in the current function context.
6497 2014-02-21 Jakub Jelinek <jakub@redhat.com>
6499 PR tree-optimization/56490
6500 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
6501 * tree-ssa-uninit.c: Include params.h.
6502 (compute_control_dep_chain): Add num_calls argument, return false
6503 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
6504 num_calls to recursive call.
6505 (find_predicates): Change dep_chain into normal array,
6506 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
6507 variable and adjust compute_control_dep_chain caller.
6508 (find_def_preds): Likewise.
6510 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
6512 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
6513 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
6515 2014-02-21 Nick Clifton <nickc@redhat.com>
6517 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
6518 (pushhi1): Likewise.
6519 (popqi1): Add mode to pre_dec.
6522 2014-02-21 Jakub Jelinek <jakub@redhat.com>
6524 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
6525 mode for mask of V8SFmode permutation.
6527 2014-02-20 Richard Henderson <rth@redhat.com>
6530 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
6531 a new pseudo for OLDVAL.
6533 2014-02-20 Jakub Jelinek <jakub@redhat.com>
6536 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
6537 gen_reg_rtx if d->testing_p.
6538 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
6539 if d->testing_p and we will certainly return true.
6540 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
6543 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
6545 * emit-rtl.c (gen_reg_rtx): Assert that
6546 crtl->emit.regno_pointer_align_length is non-zero.
6548 2014-02-20 Richard Henderson <rth@redhat.com>
6551 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
6552 on failure the store back into EXPECT.
6554 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
6555 Sandra Loosemore <sandra@codesourcery.com>
6557 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
6558 * config/nios2/nios2.c (nios2_function_profiler): Add
6559 -fPIC (flag_pic == 2) support.
6560 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
6561 (nios2_large_offset_p): New function.
6562 (nios2_unspec_reloc_p): Move up position, update to use
6563 nios2_large_offset_p.
6564 (nios2_unspec_address): Remove function.
6565 (nios2_unspec_offset): New function.
6566 (nios2_large_got_address): New function.
6567 (nios2_got_address): Add large offset support.
6568 (nios2_legitimize_tls_address): Update usage of removed and new
6570 (nios2_symbol_binds_local_p): New function.
6571 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
6572 (nios2_legitimize_address): Update to use nios2_large_offset_p.
6573 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
6574 (nios2_print_operand): Merge H/L processing, add hiadj/lo
6575 processing for (const (unspec ...)).
6576 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
6578 2014-02-20 Richard Biener <rguenther@suse.de>
6580 * tree-cfg.c (replace_uses_by): Mark altered BBs before
6581 doing the substitution.
6582 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
6584 2014-02-20 Martin Jambor <mjambor@suse.cz>
6587 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
6588 info when checking whether lattices are bottom.
6590 2014-02-20 Richard Biener <rguenther@suse.de>
6593 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
6596 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
6599 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
6600 parameter specifying the scaling.
6601 (inline_call): Update.
6602 (want_inline_recursively): Guard division by zero.
6603 (recursive_inlining): Update.
6604 * ipa-inline.h (clone_inlined_nodes): Update.
6606 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
6609 * config/i386/i386.c (classify_argument): Pass structures of size
6610 64 bytes or less in register.
6612 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
6613 Kirill Yukhin <kirill.yukhin@intel.com>
6615 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
6616 (_mm_rcp28_round_ss): Ditto.
6617 (_mm_rsqrt28_round_sd): Ditto.
6618 (_mm_rsqrt28_round_ss): Ditto.
6619 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
6620 (_mm_rcp14_round_ss): Ditto.
6621 (_mm_rsqrt14_round_sd): Ditto.
6622 (_mm_rsqrt14_round_ss): Ditto.
6623 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
6624 the first input operand, get rid of match_dup.
6625 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
6627 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
6629 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
6630 operand as the first input operand, set type attribute.
6631 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
6633 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
6634 operand as the first input operand, set type attribute.
6636 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6638 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
6641 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
6644 * config/i386/i386.c (construct_container): Remove TFmode check
6645 for X86_64_INTEGER_CLASS.
6647 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
6650 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
6651 only when -Wpsabi is enabled.
6653 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
6656 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
6657 passing arrays in registers are the same as for structs, so remove the
6658 special case for them.
6660 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
6662 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
6663 destination type, extract only the valid bits if the source type is not
6664 integral and has a different mode.
6666 2014-02-19 Richard Biener <rguenther@suse.de>
6669 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
6672 2014-02-19 Richard Biener <rguenther@suse.de>
6675 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
6676 (ipa_modify_call_arguments): Emit an argument load explicitely and
6677 preserve virtual SSA form there and for the replacement call.
6678 Do not update SSA form nor free dominance info.
6680 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6682 * ipa.c (function_and_variable_visibility): Also clear WEAK
6683 flag when disolving COMDAT_GROUP.
6685 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6687 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
6688 * ipa-prop.c (ipa_set_jf_known_type): Return early when
6690 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
6691 do more sanity checks.
6692 (detect_type_change): Return true when giving up early.
6693 (compute_complex_assign_jump_func): Fix type parameter of
6694 ipa_set_ancestor_jf.
6695 (compute_complex_ancestor_jump_func): Likewise.
6696 (update_jump_functions_after_inlining): Fix updating of
6698 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
6700 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
6702 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
6703 inline clones when edge disappears.
6705 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6708 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
6709 Split 64-bit moves into 2 patterns. Do not allow the use of
6710 direct move for TDmode in little endian, since the decimal value
6711 has little endian bytes within a word, but the 64-bit pieces are
6712 ordered in a big endian fashion, and normal subreg's of TDmode are
6714 (mov<mode>_64bit_dm): Likewise.
6715 (movtd_64bit_nodm): Likewise.
6717 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
6719 PR tree-optimization/60174
6720 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
6721 statement of an SSA_NAME that occurs in an abnormal PHI node.
6723 2014-02-18 Jakub Jelinek <jakub@redhat.com>
6726 * final.c (SEEN_BB): Remove.
6727 (SEEN_NOTE, SEEN_EMITTED): Renumber.
6728 (final_scan_insn): Don't force_source_line on second
6729 NOTE_INSN_BASIC_BLOCK.
6731 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
6734 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
6735 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
6736 (type_natural_mode): Warn ABI change when %zmm register is not
6737 available for AVX512F vector value passing.
6739 2014-02-18 Kai Tietz <ktietz@redhat.com>
6742 * config/i386/i386.c (ix86_expand_prologue): Use value in
6743 rax register as displacement when restoring %r10 or %rax.
6744 Fix wrong offset when restoring both registers.
6746 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
6748 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
6749 assertion with conditional return.
6751 2014-02-18 Jakub Jelinek <jakub@redhat.com>
6752 Uros Bizjak <ubizjak@gmail.com>
6755 * config/i386/driver-i386.c (host_detect_local_cpu): If
6756 YMM state is not saved by the OS, also clear has_f16c. Move
6757 CPUID 0x80000001 handling before YMM state saving checking.
6759 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
6761 PR rtl-optimization/58960
6762 * haifa-sched.c (alloc_global_sched_pressure_data): New,
6763 factored out from ...
6764 (sched_init): ... here.
6765 (free_global_sched_pressure_data): New, factored out from ...
6766 (sched_finish): ... here.
6767 * sched-int.h (free_global_sched_pressure_data): Declare.
6768 * sched-rgn.c (nr_regions_initial): New static global.
6769 (haifa_find_rgns): Initialize it.
6770 (schedule_region): Disable sched-pressure for the newly
6773 2014-02-17 Richard Biener <rguenther@suse.de>
6775 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
6776 release SSA defs of pattern stmts.
6778 2014-02-17 Richard Biener <rguenther@suse.de>
6780 * tree-inline.c (expand_call_inline): Release the virtual
6781 operand defined by the call we are about to inline.
6783 2014-02-17 Richard Biener <rguenther@suse.de>
6785 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
6787 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
6788 Ilya Tocar <ilya.tocar@intel.com>
6790 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
6791 arguments order in builtin.
6792 (_mm512_permutexvar_epi64): Ditto.
6793 (_mm512_mask_permutexvar_epi64): Ditto
6794 (_mm512_maskz_permutexvar_epi32): Ditto
6795 (_mm512_permutexvar_epi32): Ditto
6796 (_mm512_mask_permutexvar_epi32): Ditto
6798 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6800 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
6801 (p8_vmrgow): Likewise.
6803 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6805 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
6808 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
6811 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
6812 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
6813 into 64-bit and 32-bit moves. On 64-bit moves, add support for
6814 using direct move instructions on ISA 2.07. Also adjust
6815 instruction length for 64-bit.
6816 (mov<mode>_64bit, TFmode/TDmode): Likewise.
6817 (mov<mode>_32bit, TFmode/TDmode): Likewise.
6819 2014-02-15 Alan Modra <amodra@gmail.com>
6823 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
6824 find_replacement on parts of insn rtl that might be reloaded.
6826 2014-02-15 Richard Biener <rguenther@suse.de>
6828 PR tree-optimization/60183
6829 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
6830 (tree_ssa_phiprop): Calculate and free post-dominators.
6832 2014-02-14 Jeff Law <law@redhat.com>
6834 PR rtl-optimization/60131
6835 * ree.c (get_extended_src_reg): New function.
6836 (combine_reaching_defs): Use it rather than assuming location of REG.
6837 (find_and_remove_re): Verify first operand of extension is
6838 a REG before adding the insns to the copy list.
6840 2014-02-14 Roland McGrath <mcgrathr@google.com>
6842 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
6843 * configure: Regenerated.
6844 * config.in: Regenerated.
6845 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
6846 instead of ASM_SHORT.
6848 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
6849 Richard Earnshaw <rearnsha@arm.com>
6851 PR rtl-optimization/59535
6852 * lra-constraints.c (process_alt_operands): Encourage alternative
6853 when unassigned pseudo class is superset of the alternative class.
6854 (inherit_reload_reg): Don't inherit when optimizing for code size.
6855 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
6856 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
6857 modes not less than 4 for Thumb1.
6859 2014-02-14 Kyle McMartin <kyle@redhat.com>
6862 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
6864 2014-02-14 Richard Biener <rguenther@suse.de>
6866 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
6867 (get_frame_arg): Drop the assert with langhook types_compatible_p.
6868 Do not strip INDIRECT_REFs.
6870 2014-02-14 Richard Biener <rguenther@suse.de>
6873 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
6874 DECL_FUNCTION_SPECIFIC_TARGET.
6875 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
6876 * tree-streamer-out.c (pack_ts_target_option): Remove.
6877 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
6878 (write_ts_function_decl_tree_pointers): Do not stream
6879 DECL_FUNCTION_SPECIFIC_TARGET.
6880 * tree-streamer-in.c (unpack_ts_target_option): Remove.
6881 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
6882 (lto_input_ts_function_decl_tree_pointers): Do not stream
6883 DECL_FUNCTION_SPECIFIC_TARGET.
6885 2014-02-14 Jakub Jelinek <jakub@redhat.com>
6887 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
6888 (get_initial_def_for_induction, vectorizable_induction): Ignore
6889 debug stmts when looking for exit_phi.
6890 (vectorizable_live_operation): Fix up condition.
6892 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
6894 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
6895 nreverse() because it changes the content of original tree list.
6897 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
6899 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
6900 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
6902 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
6904 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
6905 GNU coding standards.
6907 2014-02-13 Jakub Jelinek <jakub@redhat.com>
6910 * dwarf2out.c (gen_subprogram_die): Don't call
6911 add_calling_convention_attribute if subr_die is old_die.
6913 2014-02-13 Sharad Singhai <singhai@google.com>
6915 * doc/optinfo.texi: Fix order of nodes.
6917 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
6919 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
6920 operands[2], not operands[3].
6922 2014-02-13 Richard Biener <rguenther@suse.de>
6925 * doc/install.texi (ISL): Update recommended version to 0.12.2,
6926 mention the possibility of an in-tree build.
6927 (CLooG): Update recommended version to 0.18.1, mention the
6928 possibility of an in-tree build and clarify that the ISL
6929 bundled with CLooG does not work.
6931 2014-02-13 Jakub Jelinek <jakub@redhat.com>
6934 * expr.c (compress_float_constant): If x is a hard register,
6935 extend into a pseudo and then move to x.
6937 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
6939 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
6940 caused by bad second argument to warning_at() with -mhotpatch and
6941 nested functions (e.g. with gfortran).
6943 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
6945 * opts.c (option_name): Remove "enabled by default" rider.
6947 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
6949 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
6951 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
6952 Uros Bizjak <ubizjak@gmail.com>
6955 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
6956 * configure: Regenerated.
6958 2014-02-12 Richard Biener <rguenther@suse.de>
6960 * vec.c (vec_prefix::calculate_allocation): Move as
6961 inline variant to vec.h.
6962 (vec_prefix::calculate_allocation_1): New out-of-line version.
6963 * vec.h (vec_prefix::calculate_allocation_1): Declare.
6964 (vec_prefix::m_has_auto_buf): Rename to ...
6965 (vec_prefix::m_using_auto_storage): ... this.
6966 (vec_prefix::calculate_allocation): Inline the easy cases
6967 and dispatch to calculate_allocation_1 which doesn't need the
6969 (va_heap::reserve): Use gcc_checking_assert.
6970 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
6971 m_using_auto_storage.
6972 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
6974 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
6975 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
6976 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
6978 2014-02-12 Richard Biener <rguenther@suse.de>
6980 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
6981 when we found a dependence.
6983 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
6985 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
6987 (maybe_fold_stmt): ... into this new function.
6988 * omp-low.c (lower_omp): Update comment.
6990 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
6993 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
6996 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
6998 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
6999 identifiers in comments.
7000 (cortexa53_extra_costs): Likewise.
7001 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
7002 (cortexa7_extra_costs): Likewise.
7003 (cortexa12_extra_costs): Likewise.
7004 (cortexa15_extra_costs): Likewise.
7005 (v7m_extra_costs): Likewise.
7007 2014-02-12 Richard Biener <rguenther@suse.de>
7010 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
7011 of posix_memalign being successful.
7012 (lower_stmt): Restrict lowering of posix_memalign to when
7013 -ftree-bit-ccp is enabled.
7015 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7017 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
7019 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7021 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
7023 PR rtl-optimization/60116
7024 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
7025 other_insn once the combination has been validated.
7027 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
7030 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
7032 * ipa-devirt.c: Include demangle.h
7033 (odr_violation_reported): New static variable.
7034 (add_type_duplicate): Update odr_violations.
7035 (maybe_record_node): Add completep parameter; update it.
7036 (record_target_from_binfo): Add COMPLETEP parameter;
7037 update it as needed.
7038 (possible_polymorphic_call_targets_1): Likewise.
7039 (struct polymorphic_call_target_d): Add nonconstruction_targets;
7040 rename FINAL to COMPLETE.
7041 (record_targets_from_bases): Sanity check we found the binfo;
7042 fix COMPLETEP updating.
7043 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
7044 parameter, fix computing of COMPLETEP.
7045 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
7046 at LTO time do demangling.
7047 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
7048 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
7050 (gimple_get_virt_method_for_binfo): Likewise.
7051 * gimple-fold.h (gimple_get_virt_method_for_binfo,
7052 gimple_get_virt_method_for_vtable): Update prototypes.
7054 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
7057 * genautomata.c (add_presence_absence): Fix typo with
7058 {final_}presence_list.
7060 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7063 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
7064 for VSX/Altivec vectors that land in GPR registers.
7066 2014-02-11 Richard Henderson <rth@redhat.com>
7067 Jakub Jelinek <jakub@redhat.com>
7070 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
7071 around drhs if type conversion to lacc->type is not useless.
7073 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7075 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
7077 (cortex-a57.cortex-a53): Likewise.
7078 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
7080 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7082 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
7085 2014-02-11 Renlin Li <Renlin.Li@arm.com>
7087 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
7088 add_options_for_arm_vfp3.
7090 2014-02-11 Jeff Law <law@redhat.com>
7093 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
7094 object with an undesirable mode.
7096 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7099 * config/i386/sol2-9.h: New file.
7100 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
7101 *-*-solaris2.9*): Use it.
7103 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7105 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
7106 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
7108 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
7110 * config/microblaze/microblaze.c: Extend mcpu version format
7112 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
7114 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
7116 2014-02-10 Richard Henderson <rth@redhat.com>
7119 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
7120 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
7121 ms-abi vs -mno-accumulate-outgoing-args.
7122 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
7123 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
7126 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7129 * cfgexpand.c (expand_asm_operands): Attach source location to
7130 ASM_INPUT rtx objects.
7131 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
7133 2014-02-10 Nick Clifton <nickc@redhat.com>
7135 * config/mn10300/mn10300.c (popcount): New function.
7136 (mn10300_expand_prologue): Include saved registers in stack usage
7139 2014-02-10 Jeff Law <law@redhat.com>
7142 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
7143 when changing the SET_DEST of a prior insn to avoid an input reload.
7145 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7147 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
7148 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
7149 -mcall-openbsd, or -mcall-linux.
7150 (CC1_ENDIAN_BIG_SPEC): Remove.
7151 (CC1_ENDIAN_LITTLE_SPEC): Remove.
7152 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7153 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
7154 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
7155 and %cc1_endian_default.
7156 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
7158 2014-02-10 Richard Biener <rguenther@suse.de>
7160 PR tree-optimization/60115
7161 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
7162 MEM_REF handling. Properly verify that the accesses are not
7163 out of the objects bound.
7165 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7167 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
7170 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
7172 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
7173 proper constants and fix formatting.
7174 (possible_polymorphic_call_targets): Fix formatting.
7176 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
7177 Ilya Tocar <ilya.tocar@intel.com>
7179 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
7180 (_mm512_loadu_epi32): Renamed into...
7181 (_mm512_loadu_si512): This.
7182 (_mm512_storeu_epi32): Renamed into...
7183 (_mm512_storeu_si512): This.
7184 (_mm512_maskz_ceil_ps): Removed.
7185 (_mm512_maskz_ceil_pd): Ditto.
7186 (_mm512_maskz_floor_ps): Ditto.
7187 (_mm512_maskz_floor_pd): Ditto.
7188 (_mm512_floor_round_ps): Ditto.
7189 (_mm512_floor_round_pd): Ditto.
7190 (_mm512_ceil_round_ps): Ditto.
7191 (_mm512_ceil_round_pd): Ditto.
7192 (_mm512_mask_floor_round_ps): Ditto.
7193 (_mm512_mask_floor_round_pd): Ditto.
7194 (_mm512_mask_ceil_round_ps): Ditto.
7195 (_mm512_mask_ceil_round_pd): Ditto.
7196 (_mm512_maskz_floor_round_ps): Ditto.
7197 (_mm512_maskz_floor_round_pd): Ditto.
7198 (_mm512_maskz_ceil_round_ps): Ditto.
7199 (_mm512_maskz_ceil_round_pd): Ditto.
7200 (_mm512_expand_pd): Ditto.
7201 (_mm512_expand_ps): Ditto.
7202 * config/i386/i386.c (ix86_builtins): Remove
7203 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
7204 (bdesc_args): Ditto.
7205 * config/i386/predicates.md (const1256_operand): New.
7206 (const_1_to_2_operand): Ditto.
7207 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
7208 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
7209 (*avx512pf_gatherpf<mode>sf): Ditto.
7210 (avx512pf_gatherpf<mode>df): Ditto.
7211 (*avx512pf_gatherpf<mode>df_mask): Ditto.
7212 (*avx512pf_gatherpf<mode>df): Ditto.
7213 (avx512pf_scatterpf<mode>sf): Ditto.
7214 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
7215 (*avx512pf_scatterpf<mode>sf): Ditto.
7216 (avx512pf_scatterpf<mode>df): Ditto.
7217 (*avx512pf_scatterpf<mode>df_mask): Ditto.
7218 (*avx512pf_scatterpf<mode>df): Ditto.
7219 (avx512f_expand<mode>): Removed.
7220 (<shift_insn><mode>3<mask_name>): Change predicate type.
7222 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7224 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
7225 not at the end of datarefs vector use ordered_remove to avoid
7226 reordering datarefs vector.
7229 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
7230 mark local addressable non-static vars as GOVD_PRIVATE
7231 instead of GOVD_LOCAL.
7232 * omp-low.c (lower_omp_for): Move gimple_bind_vars
7233 and BLOCK_VARS of gimple_bind_block to new_stmt rather
7237 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
7238 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
7239 assume_aligned or alloc_align attributes.
7240 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
7241 arguments. Handle also assume_aligned and alloc_align attributes.
7242 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
7243 calls to functions with assume_aligned or alloc_align attributes.
7244 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
7246 2014-02-08 Terry Guo <terry.guo@arm.com>
7248 * doc/invoke.texi: Document ARM -march=armv7e-m.
7250 2014-02-08 Jakub Jelinek <jakub@redhat.com>
7252 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
7253 flag on __cilkrts_rethrow builtin.
7256 * ipa-cp.c (determine_versionability): Fail at -O0
7257 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
7258 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
7261 2014-02-04 Jakub Jelinek <jakub@redhat.com>
7264 * tree-inline.c (copy_forbidden): Fail for
7265 __attribute__((optimize (0))) functions.
7267 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7269 * varpool.c: Include pointer-set.h.
7270 (varpool_remove_unreferenced_decls): Variables in other partitions
7271 will not be output; be however careful to not lose information
7274 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
7276 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
7277 lookup in the vtable constructor.
7279 2014-02-07 Jeff Law <law@redhat.com>
7282 * config/m68k/m68k.md (ashldi_extsi): Turn into a
7283 define_insn_and_split.
7285 * ipa-inline.c (inline_small_functions): Fix typos.
7287 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7289 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
7290 (s390_can_use_return_insn): Declare.
7291 * config/s390/s390.h (EPILOGUE_USES): Define.
7292 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
7294 (s390_chunkify_start): Handle return JUMP_LABELs.
7295 (s390_early_mach): Emit a main_pool instruction on the entry edge.
7296 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
7297 (s390_can_use_return_insn): New functions.
7298 (s390_fix_long_loop_prediction): Handle conditional returns.
7299 (TARGET_SET_UP_BY_PROLOGUE): Define.
7300 * config/s390/s390.md (ANY_RETURN): New code iterator.
7301 (*creturn, *csimple_return, return, simple_return): New patterns.
7303 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7305 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
7306 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
7307 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
7308 REG_CFA_RESTORE list when deciding not to restore a register.
7310 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7312 * config/s390/s390.c: Include tree-pass.h and context.h.
7313 (s390_early_mach): New function, split out from...
7314 (s390_emit_prologue): ...here.
7315 (pass_data_s390_early_mach): New pass structure.
7316 (pass_s390_early_mach): New class.
7317 (s390_option_override): Create and register early_mach pass.
7318 Move to end of file.
7320 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
7322 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
7323 to match for the exit block.
7325 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7327 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
7328 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
7329 Reject misaligned operands.
7331 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7333 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
7335 2014-02-07 Richard Biener <rguenther@suse.de>
7338 * gimple-low.c (lower_builtin_posix_memalign): New function.
7339 (lower_stmt): Call it to lower posix_memalign in a way
7340 to make alignment info accessible.
7342 2014-02-07 Jakub Jelinek <jakub@redhat.com>
7345 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
7346 __builtin_setjmp_receiver.
7348 2014-02-07 Richard Biener <rguenther@suse.de>
7351 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
7352 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
7353 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7354 Handle BUILT_IN_POSIX_MEMALIGN.
7355 (find_func_clobbers): Likewise.
7356 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7357 (call_may_clobber_ref_p_1): Likewise.
7359 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7362 * ipa-devirt.c (record_target_from_binfo): Remove overactive
7365 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7368 * lto-cgraph.c (lto_output_node): Use
7369 symtab_get_symbol_partitioning_class.
7370 (lto_output_varpool_node): likewise.
7371 (symtab_get_symbol_partitioning_class): Move here from
7373 * cgraph.h (symbol_partitioning_class): Likewise.
7374 (symtab_get_symbol_partitioning_class): Declare.
7376 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7378 * ggc.h (ggc_internal_cleared_alloc): New macro.
7379 * vec.h (vec_safe_copy): Handle memory stats.
7380 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
7381 * target-globals.c (save_target_globals): Likewise.
7383 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
7386 * expr.c (emit_move_resolve_push): Export; be bit more selective
7387 on when to clear alias set.
7388 * expr.h (emit_move_resolve_push): Declare.
7389 * function.h (struct function): Add tail_call_marked.
7390 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
7391 * config/i386/i386-protos.h (ix86_expand_push): Remove.
7392 * config/i386/i386.md (TImode move expander): De not call
7394 (FP push expanders): Preserve memory attributes.
7395 * config/i386/sse.md (push<mode>1): Remove.
7396 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
7397 (ix86_expand_push): Remove.
7398 * config/i386/mmx.md (push<mode>1): Remove.
7400 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7402 PR rtl-optimization/60030
7403 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
7404 lopart with paradoxical subreg before shifting it up by hprec.
7406 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7408 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
7409 Remove extra newline at end of file.
7410 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
7411 (arm_issue_rate): Handle cortexa57.
7412 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
7413 (cortex-a57.cortex-a53): Likewise.
7415 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7418 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
7419 don't record in REG_FRAME_RELATED_EXPR registers not set in that
7421 (arm_expand_prologue): Adjust all callers.
7422 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
7423 info, registers also at the lowest numbered registers side. Use
7424 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
7428 * var-tracking.c (adjust_mems): Before adding a SET to
7429 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
7431 2014-02-06 Alan Modra <amodra@gmail.com>
7434 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
7435 change SDmode to DDmode when lra_in_progress.
7437 2014-02-06 Jakub Jelinek <jakub@redhat.com>
7440 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
7441 free_data_ref on the dr first, and before goto again also set dr
7442 to the next dr. For simd_lane_access, free old datarefs[i] before
7443 overwriting it. For get_vectype_for_scalar_type failure, don't
7444 free_data_ref if simd_lane_access.
7446 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
7449 * tree.h (opts_for_fn): New inline function.
7450 (opt_for_fn): Define.
7451 * config/i386/i386.c (ix86_function_regparm): Use
7452 opt_for_fn (decl, optimize) instead of optimize.
7454 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
7456 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
7457 for SYMBOL_REF in large memory model.
7459 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7461 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
7463 (cortex-a57): Likewise.
7464 (cortex-a57.cortex-a53): Likewise.
7466 2014-02-06 Yury Gribov <y.gribov@samsung.com>
7467 Kugan Vivekanandarajah <kuganv@linaro.org>
7469 * config/arm/arm.c (arm_vector_alignment_reachable): Check
7471 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
7473 2014-02-06 Richard Biener <rguenther@suse.de>
7475 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
7476 set_loop_copy and initialize_original_copy_tables.
7478 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
7480 * config/aarch64/aarch64-simd.md
7481 (aarch64_ashr_simddi): Change QI to SI.
7483 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
7484 Jakub Jelinek <jakub@redhat.com>
7487 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
7490 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7492 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
7493 CODE_FOR_altivec_vpku[hw]um to
7494 CODE_FOR_altivec_vpku[hw]um_direct.
7495 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
7496 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
7497 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
7498 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
7500 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7502 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
7503 generation for -maltivec=be.
7504 (altivec_vsumsws): Simplify redundant test.
7506 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7508 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
7509 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
7510 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
7511 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
7512 gen_altivec_vpkuwum.
7513 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
7515 (altivec_vpks<VI_char>ss): Likewise.
7516 (altivec_vpks<VI_char>us): Likewise.
7517 (altivec_vpku<VI_char>us): Likewise.
7518 (altivec_vpku<VI_char>um): Likewise.
7519 (altivec_vpku<VI_char>um_direct): New (copy of
7520 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
7522 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
7523 target is little endian and -maltivec=be is not specified.
7524 (*altivec_vupkhs<VU_char>_direct): New (copy of
7525 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
7526 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
7527 target is little endian and -maltivec=be is not specified.
7528 (*altivec_vupkls<VU_char>_direct): New (copy of
7529 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
7530 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
7531 little endian and -maltivec=be is not specified.
7532 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
7533 little endian and -maltivec=be is not specified.
7535 2014-02-05 Richard Henderson <rth@redhat.com>
7538 * combine-stack-adj.c: Revert r206943.
7539 * sched-int.h (struct deps_desc): Add last_args_size.
7540 * sched-deps.c (init_deps): Initialize it.
7541 (sched_analyze_insn): Add OUTPUT dependencies between insns that
7542 contain REG_ARGS_SIZE notes.
7544 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
7546 * lto-cgraph.c (asm_nodes_output): Make global.
7547 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
7548 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
7549 (driver_handle_option): Handle OPT_fwpa.
7551 2014-02-05 Jakub Jelinek <jakub@redhat.com>
7554 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
7555 a comment typo and formatting issue. If odr_hash hasn't been
7556 created, return vNULL and set *completep to false.
7559 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
7560 bb with no successors.
7562 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
7565 * doc/invoke.texi (-march): Clarify documentation for ARM.
7569 2014-02-05 Richard Biener <rguenther@suse.de>
7571 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
7572 when not vectorizing because of too many alias checks.
7573 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7574 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
7576 2014-02-05 Nick Clifton <nickc@redhat.com>
7578 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
7579 accept extended registers in any mode when compiling for the MN10300.
7581 2014-02-05 Yury Gribov <y.gribov@samsung.com>
7583 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
7584 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
7585 sanitization attributes.
7586 (can_inline_edge_p): Likewise.
7587 (sanitize_attrs_match_for_inline_p): New function.
7589 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7591 * ipa-prop.c (detect_type_change): Shor circuit testing of
7592 type changes on THIS pointer.
7594 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
7597 * config/pa/pa.c (legitimize_tls_address): Return original address
7598 if not passed a SYMBOL_REF rtx.
7599 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
7601 (pa_emit_move_sequence): Simplify TLS source operands.
7602 (pa_legitimate_constant_p): Reject all TLS constants.
7603 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
7604 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
7606 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7608 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
7609 groups when we know they are controlled by LTO.
7610 * varasm.c (default_binds_local_p_1): If object is in other partition,
7611 it will be resolved locally.
7613 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7615 * config/host-linux.c (linux_gt_pch_use_address): Don't
7616 use SSIZE_MAX because it is not always defined.
7618 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
7621 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
7622 threshold for pseudo splitting.
7623 (update_ebb_live_info): Process call argument hard registers and
7624 hard registers from insn definition too.
7625 (max_small_class_regs_num): New constant.
7626 (inherit_in_ebb): Update live hard regs through EBBs. Update
7627 reloads_num only for small register classes. Don't split for
7630 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
7633 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
7636 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
7638 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
7641 2014-02-04 Marek Polacek <polacek@redhat.com>
7643 * gdbinit.in (pel): Define.
7645 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
7647 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
7650 2014-02-04 Richard Biener <rguenther@suse.de>
7653 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
7654 in function context local.
7655 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
7656 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
7657 similar to LTO_imported_decl_ref.
7659 2014-02-04 Jakub Jelinek <jakub@redhat.com>
7661 PR tree-optimization/60002
7662 * cgraphclones.c (build_function_decl_skip_args): Clear
7665 PR tree-optimization/60023
7666 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
7667 false to gsi_replace.
7668 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
7669 has been in some EH region and vec_stmt could throw, add
7670 vec_stmt into the same EH region.
7671 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
7672 has no lhs, ignore it.
7673 * internal-fn.c (expand_MASK_LOAD): Likewise.
7676 * tree-inline.c (copy_forbidden): Fail for
7677 __attribute__((optimize (0))) functions.
7680 * omp-low.c (simd_clone_struct_copy): If from->inbranch
7681 is set, copy one less argument.
7682 (expand_simd_clones): Don't subtract clone_info->inbranch
7683 from simd_clone_struct_alloc argument.
7685 PR rtl-optimization/57915
7686 * recog.c (simplify_while_replacing): If all unary/binary/relational
7687 operation arguments are constant, attempt to simplify those.
7690 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
7691 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
7693 2014-02-04 Richard Biener <rguenther@suse.de>
7695 PR tree-optimization/60012
7696 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
7697 TBAA disambiguation to all DDRs.
7699 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7702 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
7703 (LINK_SPEC): Use it for -shared, -shared-libgcc.
7705 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7708 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
7710 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7712 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
7713 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
7715 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7718 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
7719 to figure out targets of polymorphic calls with known decl.
7720 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7721 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
7722 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
7723 (get_polymorphic_call_info): ... here.
7724 (get_polymorphic_call_info_from_invariant): New function.
7726 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7728 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
7729 lookup via vtable pointer; check for type consistency
7730 and turn inconsitent facts into UNREACHABLE.
7731 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7732 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
7733 type inconsistent querries; return UNREACHABLE instead.
7735 2014-02-03 Richard Henderson <rth@twiddle.net>
7738 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
7739 already processed this node.
7740 (normalize_one_pred_1): Pass along mark_set.
7741 (normalize_one_pred): Create and destroy a pointer_set_t.
7742 (normalize_one_pred_chain): Likewise.
7744 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
7746 PR gcov-profile/58602
7747 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
7749 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
7752 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
7753 -fno-devirtualize; try to devirtualize by the knowledge of
7754 virtual table pointer given by aggregate propagation.
7755 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
7756 (ipa_print_node_jump_functions): Dump also offset that
7757 is relevant for polymorphic calls.
7758 (determine_known_aggregate_parts): Add arg_type parameter; use it
7759 instead of determining the type from pointer type.
7760 (ipa_compute_jump_functions_for_edge): Update call of
7761 determine_known_aggregate_parts.
7762 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
7763 (gimple_get_virt_method_for_binfo): ... here; simplify using
7764 vtable_pointer_value_to_vtable.
7765 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
7766 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
7767 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
7768 (vtable_pointer_value_to_vtable): Break out from ...; handle also
7770 (vtable_pointer_value_to_binfo): ... here.
7771 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
7773 2014-02-03 Teresa Johnson <tejohnson@google.com>
7775 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
7776 redef of outer loop index variable.
7778 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
7782 * doc/extend.texi (Function Attributes): Typo.
7784 2014-02-03 Cong Hou <congh@google.com>
7786 PR tree-optimization/60000
7787 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
7788 if the vectorized statement is a store. A store statement can only
7789 appear at the end of pattern statements.
7791 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
7793 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
7794 (ix86_option_override_internal): Default long double to 64-bit for
7795 32-bit Bionic and to 128-bit for 64-bit Bionic.
7797 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
7798 TARGET_LONG_DOUBLE_128 is true.
7799 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
7801 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
7802 (mlong-double-64): Negate -mlong-double-128.
7803 (mlong-double-128): New option.
7805 * config/i386/i386-c.c (ix86_target_macros): Define
7806 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
7808 * doc/invoke.texi: Document -mlong-double-128.
7810 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
7812 PR rtl-optimization/60024
7813 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
7815 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
7817 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
7819 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
7821 PR rtl-optimization/57662
7822 * sel-sched.c (code_motion_path_driver): Do not mark already not
7823 existing blocks in the visiting bitmap.
7825 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
7827 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
7828 on the insn being emitted.
7830 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
7831 Will Deacon <will.deacon@arm.com>
7833 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
7835 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7837 * config/arm/arm-tables.opt: Regenerate.
7839 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7841 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
7842 for vector types other than V16QImode.
7843 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
7844 define_expand, and call altivec_expand_vec_perm_le when producing
7845 code with little endian element order.
7846 (*altivec_vperm_<mode>_internal): New insn having previous
7847 behavior of altivec_vperm_<mode>.
7848 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
7849 altivec_expand_vec_perm_le when producing code with little endian
7851 (*altivec_vperm_<mode>_uns_internal): New insn having previous
7852 behavior of altivec_vperm_<mode>_uns.
7854 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7856 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
7857 (altivec_vsumsws): Add handling for -maltivec=be with a little
7859 (altivec_vsumsws_direct): New.
7860 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
7861 gen_altivec_vsumsws.
7863 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
7865 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
7866 vtable_pointer_value_to_binfo): New functions.
7867 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
7868 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
7870 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
7872 * config/nios2/nios2.md (load_got_register): Initialize GOT
7873 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
7874 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
7876 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
7878 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
7879 preserverd by passthrough, do not propagate the type.
7881 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
7883 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
7884 (mips_atomic_assign_expand_fenv): New function.
7885 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
7887 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
7889 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
7890 (__builtin_mips_set_fcsr): Likewise.
7891 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
7892 MIPS_USI_FTYPE_VOID.
7893 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
7894 (mips16_expand_set_fcsr): Likewise.
7895 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
7896 (mips16_set_fcsr_stub): Likewise.
7897 (mips16_get_fcsr_one_only_stub): New class.
7898 (mips16_set_fcsr_one_only_stub): Likewise.
7899 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
7900 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
7901 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
7902 (hard_float): New availability predicate.
7903 (mips_builtins): Add get_fcsr and set_fcsr.
7904 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
7905 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
7906 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
7907 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
7908 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
7911 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
7913 * config/mips/mips.c (mips_one_only_stub): New class.
7914 (mips_need_mips16_rdhwr_p): Replace with...
7915 (mips16_rdhwr_stub): ...this new variable.
7916 (mips16_stub_call_address): New function.
7917 (mips16_rdhwr_one_only_stub): New class.
7918 (mips_expand_thread_pointer): Use mips16_stub_call_address.
7919 (mips_output_mips16_rdhwr): Delete.
7920 (mips_finish_stub): New function.
7921 (mips_code_end): Use it to handle rdhwr stubs.
7923 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
7926 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
7927 when calculating size of integer atomic types.
7929 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
7931 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
7933 2014-02-01 Jakub Jelinek <jakub@redhat.com>
7935 PR tree-optimization/60003
7936 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
7937 * profile.c (branch_prob): Use gimple_call_builtin_p
7938 to check for BUILT_IN_SETJMP_RECEIVER.
7939 * tree-inline.c (copy_bb): Call notice_special_calls.
7941 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
7944 * lra-constraints.c (process_alt_operands): Update reload_sum only
7947 2014-01-31 Richard Henderson <rth@redhat.com>
7950 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
7951 until after else_eh is processed.
7953 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
7955 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
7956 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
7957 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
7958 in smmintrin.h, remove them.
7959 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
7960 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
7961 * config/i386/i386.md (ROUND_SAE): Fix value.
7962 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
7963 (const48_operand): New.
7964 * config/i386/subst.md (round), (round_expand): Use
7965 const_4_or_8_to_11_operand.
7966 (round_saeonly), (round_saeonly_expand): Use const48_operand.
7968 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
7970 * config/i386/constraints.md (Yk): Swap meaning with k.
7971 * config/i386/i386.md (movhi_internal): Change Yk to k.
7972 (movqi_internal): Ditto.
7973 (*k<logic><mode>): Ditto.
7976 (kandn<mode>): Ditto.
7977 (*<code>hi_1): Ditto.
7978 (*<code>qi_1): Ditto.
7979 (kxnor<mode>): Ditto.
7980 (kortestzhi): Ditto.
7981 (kortestchi): Ditto.
7983 (*one_cmplhi2_1): Ditto.
7984 (*one_cmplqi2_1): Ditto.
7985 * config/i386/sse.md (): Change k to Yk.
7986 (avx512f_load<mode>_mask): Ditto.
7987 (avx512f_blendm<mode>): Ditto.
7988 (avx512f_store<mode>_mask): Ditto.
7989 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
7990 (avx512f_storedqu<mode>_mask): Ditto.
7991 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
7993 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
7994 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
7995 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
7996 (avx512f_maskcmp<mode>3): Ditto.
7997 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
7998 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
7999 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
8000 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
8001 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
8002 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
8003 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
8004 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
8005 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
8006 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
8007 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
8008 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
8009 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
8010 (vec_extract_lo_<mode>_maskm): Ditto.
8011 (vec_extract_hi_<mode>_maskm): Ditto.
8012 (avx512f_vternlog<mode>_mask): Ditto.
8013 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
8014 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
8015 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
8016 (avx512f_<code>v8div16qi2_mask): Ditto.
8017 (avx512f_<code>v8div16qi2_mask_store): Ditto.
8018 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
8019 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
8020 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
8021 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
8022 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
8023 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8024 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
8025 (*avx512pf_scatterpf<mode>df_mask): Ditto.
8026 (avx512cd_maskb_vec_dupv8di): Ditto.
8027 (avx512cd_maskw_vec_dupv16si): Ditto.
8028 (avx512f_vpermi2var<mode>3_maskz): Ditto.
8029 (avx512f_vpermi2var<mode>3_mask): Ditto.
8030 (avx512f_vpermi2var<mode>3_mask): Ditto.
8031 (avx512f_vpermt2var<mode>3_maskz): Ditto.
8032 (*avx512f_gathersi<mode>): Ditto.
8033 (*avx512f_gathersi<mode>_2): Ditto.
8034 (*avx512f_gatherdi<mode>): Ditto.
8035 (*avx512f_gatherdi<mode>_2): Ditto.
8036 (*avx512f_scattersi<mode>): Ditto.
8037 (*avx512f_scatterdi<mode>): Ditto.
8038 (avx512f_compress<mode>_mask): Ditto.
8039 (avx512f_compressstore<mode>_mask): Ditto.
8040 (avx512f_expand<mode>_mask): Ditto.
8041 * config/i386/subst.md (mask): Change k to Yk.
8042 (mask_scalar_merge): Ditto.
8045 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
8047 * doc/extend.texi (Vector Extensions): Document ?: in C++.
8049 2014-01-31 Richard Biener <rguenther@suse.de>
8052 * builtins.c (fold_builtin_memory_op): Make sure to not
8053 use a floating-point mode or a boolean or enumeral type for
8056 2014-01-30 DJ Delorie <dj@redhat.com>
8058 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
8059 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
8060 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
8061 whenever main() has an epilogue.
8063 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8065 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
8066 unused variable "field".
8067 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
8068 (vsx_mergeh_<mode>): Likewise.
8069 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
8070 (altivec_vmrghh): Likewise.
8071 (altivec_vmrghw): Likewise.
8072 (altivec_vmrglb): Likewise.
8073 (altivec_vmrglh): Likewise.
8074 (altivec_vmrglw): Likewise.
8075 (altivec_vspltb): Add missing uses.
8076 (altivec_vsplth): Likewise.
8077 (altivec_vspltw): Likewise.
8078 (altivec_vspltsf): Likewise.
8080 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8083 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
8084 frame related instructions.
8086 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
8088 PR rtl-optimization/59959
8089 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
8090 any reload of register whose subreg is invalid.
8092 2014-01-30 Jakub Jelinek <jakub@redhat.com>
8094 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
8095 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
8096 Add missing return type - void.
8098 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8100 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
8101 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
8102 remove element index adjustment for endian (now handled in vsx.md
8104 (altivec_expand_vec_perm_const): Use
8105 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
8106 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
8107 (vsx_xxspltw_<mode>): Adjust element index for little endian.
8108 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
8109 define_expand and a new define_insn *altivec_vspltb_internal;
8110 adjust for -maltivec=be on a little endian target.
8111 (altivec_vspltb_direct): New.
8112 (altivec_vsplth): Divide into a define_expand and a new
8113 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
8114 little endian target.
8115 (altivec_vsplth_direct): New.
8116 (altivec_vspltw): Divide into a define_expand and a new
8117 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
8118 little endian target.
8119 (altivec_vspltw_direct): New.
8120 (altivec_vspltsf): Divide into a define_expand and a new
8121 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
8122 a little endian target.
8124 2014-01-30 Richard Biener <rguenther@suse.de>
8126 PR tree-optimization/59993
8127 * tree-ssa-forwprop.c (associate_pointerplus): Check we
8128 can propagate form the earlier stmt and avoid the transform
8129 when the intermediate result is needed.
8131 2014-01-30 Alangi Derick <alangiderick@gmail.com>
8133 * README.Portability: Fix typo.
8135 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
8137 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
8138 comparison_operator with ordered_comparison_operator.
8140 2014-01-30 Nick Clifton <nickc@redhat.com>
8142 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
8143 Rename to mn10300_store_multiple_regs.
8144 * config/mn10300/mn10300.c: Likewise.
8145 * config/mn10300/mn10300.md (store_movm): Fix typo: call
8146 store_multiple_regs.
8147 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
8148 Call mn10300_store_multiple_regs.
8150 2014-01-30 Nick Clifton <nickc@redhat.com>
8151 DJ Delorie <dj@redhat.com>
8153 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
8154 %fp 2 to keep registers after it properly word-aligned.
8155 (rl78_alloc_physical_registers_umul): Handle the case where both
8156 input operands are the same.
8158 2014-01-30 Richard Biener <rguenther@suse.de>
8160 PR tree-optimization/59903
8161 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
8164 2014-01-30 Jason Merrill <jason@redhat.com>
8167 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
8170 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
8172 2014-01-30 Richard Biener <rguenther@suse.de>
8174 PR tree-optimization/59951
8175 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
8177 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
8180 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
8181 SFmode to DFmode case.
8183 2014-01-29 DJ Delorie <dj@redhat.com>
8185 * config/msp430/msp430.opt (-minrt): New.
8186 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
8188 (ENDFILE_SPEC): Likewise.
8190 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
8192 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
8193 (estimate_function_body_sizes): Use it.
8195 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
8198 * dwarf2out.c (is_cxx_auto): New.
8199 (is_base_type): Use it.
8200 (gen_type_die_with_usage): Likewise.
8202 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8204 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
8205 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
8206 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
8207 -maltivec=be with LE targets.
8208 (vsx_mergeh_<mode>): Likewise.
8209 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
8210 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
8211 (altivec_vmrghb): Replace with define_expand and new
8212 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
8213 (altivec_vmrghb_direct): New define_insn.
8214 (altivec_vmrghh): Replace with define_expand and new
8215 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
8216 (altivec_vmrghh_direct): New define_insn.
8217 (altivec_vmrghw): Replace with define_expand and new
8218 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
8219 (altivec_vmrghw_direct): New define_insn.
8220 (*altivec_vmrghsf): Adjust for endianness.
8221 (altivec_vmrglb): Replace with define_expand and new
8222 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
8223 (altivec_vmrglb_direct): New define_insn.
8224 (altivec_vmrglh): Replace with define_expand and new
8225 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
8226 (altivec_vmrglh_direct): New define_insn.
8227 (altivec_vmrglw): Replace with define_expand and new
8228 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
8229 (altivec_vmrglw_direct): New define_insn.
8230 (*altivec_vmrglsf): Adjust for endianness.
8231 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8232 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8233 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
8234 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
8235 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8236 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8237 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
8238 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
8240 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
8242 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
8243 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
8246 2014-01-29 Richard Biener <rguenther@suse.de>
8248 PR tree-optimization/58742
8249 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
8250 associate_pointerplus_align.
8251 (associate_pointerplus_diff): New function.
8252 (associate_pointerplus): Likewise. Call associate_pointerplus_align
8253 and associate_pointerplus_diff.
8255 2014-01-29 Richard Biener <rguenther@suse.de>
8257 * lto-streamer.h (LTO_major_version): Bump to 3.
8258 (LTO_minor_version): Reset to 0.
8260 2014-01-29 Renlin Li <Renlin.Li@arm.com>
8262 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
8263 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
8264 (arm_file_start): Generate correct asm header for armv7ve.
8265 * config/arm/bpabi.h: Add multilib support for armv7ve.
8266 * config/arm/driver-arm.c: Change the architectures of cortex-a7
8267 and cortex-a15 to armv7ve.
8268 * config/arm/t-aprofile: Add multilib support for armv7ve.
8269 * doc/invoke.texi: Document -march=armv7ve.
8271 2014-01-29 Richard Biener <rguenther@suse.de>
8273 PR tree-optimization/58742
8274 * tree-ssa-forwprop.c (associate_plusminus): Return true
8275 if we changed sth, defer EH cleanup to ...
8276 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
8277 (simplify_mult): New function.
8279 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8282 PR tree-optimization/59920
8283 * tree.c (build_common_builtin_nodes): Remove
8284 __builtin_setjmp_dispatcher initialization.
8285 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
8286 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
8287 instead of gsi_after_labels + manually skipping debug stmts.
8288 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
8289 ignore bbs with IFN_ABNORMAL_DISPATCHER.
8290 * tree-inline.c (copy_edges_for_bb): Remove
8291 can_make_abnormal_goto argument, instead add abnormal_goto_dest
8292 argument. Ignore computed_goto_p stmts. Don't call
8293 make_abnormal_goto_edges. If a call might need abnormal edges
8294 for non-local gotos, see if it already has an edge to
8295 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
8296 with true argument, don't do anything then, otherwise add
8297 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
8298 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
8300 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
8301 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
8302 (lower_stmt): Don't set data->calls_builtin_setjmp.
8303 (lower_builtin_setjmp): Adjust comment.
8304 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
8305 * tree-cfg.c (found_computed_goto): Remove.
8306 (factor_computed_gotos): Remove.
8307 (make_goto_expr_edges): Return bool, true for computed gotos.
8308 Don't call make_abnormal_goto_edges.
8309 (build_gimple_cfg): Don't set found_computed_goto, don't call
8310 factor_computed_gotos.
8311 (computed_goto_p): No longer static.
8312 (make_blocks): Don't set found_computed_goto.
8313 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
8314 (make_edges): If make_goto_expr_edges returns true, push bb
8315 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
8316 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
8317 vector. Record mapping between bbs and OpenMP regions if there
8318 are any, adjust make_gimple_omp_edges caller. Call
8319 handle_abnormal_edges.
8320 (make_abnormal_goto_edges): Remove.
8321 * tree-cfg.h (make_abnormal_goto_edges): Remove.
8322 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
8323 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
8324 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
8325 * internal-fn.def (ABNORMAL_DISPATCHER): New.
8326 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
8327 filling *region also set *region_idx to (*region)->entry->index.
8330 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
8331 For REGs set ORIGINAL_REGNO.
8333 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
8335 * doc/md.texi: Mention that a target shouldn't implement
8336 vec_widen_(s|u)mul_even/odd pair if it is less efficient
8339 2014-01-29 Jakub Jelinek <jakub@redhat.com>
8341 PR tree-optimization/59594
8342 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
8343 a copy of the datarefs vector rather than the vector itself.
8345 2014-01-28 Jason Merrill <jason@redhat.com>
8348 * dwarf2out.c (auto_die): New static.
8349 (gen_type_die_with_usage): Handle C++1y 'auto'.
8350 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
8353 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
8356 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
8357 (SPEC_X32): Likewise.
8358 (SPEC_64): Likewise.
8359 * config/i386/i386.c (ix86_option_override_internal): Turn off
8360 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
8362 (x86_file_start): Output .code16gcc for TARGET_16BIT.
8363 * config/i386/i386.h (TARGET_16BIT): New macro.
8364 (TARGET_16BIT_P): Likewise.
8365 * config/i386/i386.opt: Add m16.
8366 * doc/invoke.texi: Document -m16.
8368 2014-01-28 Jakub Jelinek <jakub@redhat.com>
8370 PR preprocessor/59935
8371 * input.c (location_get_source_line): Bail out on when line number
8372 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
8374 2014-01-28 Richard Biener <rguenther@suse.de>
8376 PR tree-optimization/58742
8377 * tree-ssa-forwprop.c (associate_plusminus): Handle
8378 pointer subtraction of the form (T)(P + A) - (T)P.
8380 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8382 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
8385 2014-01-28 Richard Biener <rguenther@suse.de>
8388 2014-01-28 Richard Biener <rguenther@suse.de>
8390 PR rtl-optimization/45364
8391 PR rtl-optimization/59890
8392 * var-tracking.c (local_get_addr_clear_given_value): Handle
8393 already cleared slot.
8394 (val_reset): Handle not allocated local_get_addr_cache.
8395 (vt_find_locations): Use post-order on the inverted CFG.
8397 2014-01-28 Richard Biener <rguenther@suse.de>
8399 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
8401 2014-01-28 Richard Biener <rguenther@suse.de>
8403 PR rtl-optimization/45364
8404 PR rtl-optimization/59890
8405 * var-tracking.c (local_get_addr_clear_given_value): Handle
8406 already cleared slot.
8407 (val_reset): Handle not allocated local_get_addr_cache.
8408 (vt_find_locations): Use post-order on the inverted CFG.
8410 2014-01-28 Alan Modra <amodra@gmail.com>
8412 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
8413 * configure.ac <recursive call for build != host>: Define
8414 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
8415 and LD_FOR_BUILD too.
8416 * configure: Regenerate.
8418 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
8420 * config/i386/i386.c (get_builtin_code_for_version): Separate
8421 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
8422 Broadwell from Haswell.
8424 2014-01-27 Steve Ellcey <sellcey@mips.com>
8426 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
8427 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
8428 * config/mips/mips.c (mips_option_override): Change setting
8430 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
8431 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
8432 Change from Mask to Var.
8434 2014-01-27 Jeff Law <law@redhat.com>
8436 * ipa-inline.c (inline_small_functions): Fix typo.
8438 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
8440 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
8441 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
8442 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
8443 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
8444 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
8445 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
8446 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
8447 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
8448 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
8449 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
8450 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
8451 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
8452 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
8453 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
8454 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
8455 (_mm512_storeu_epi64): Ditto.
8456 (_mm512_cmpge_epi32_mask): Ditto.
8457 (_mm512_cmpge_epu32_mask): Ditto.
8458 (_mm512_cmpge_epi64_mask): Ditto.
8459 (_mm512_cmpge_epu64_mask): Ditto.
8460 (_mm512_cmple_epi32_mask): Ditto.
8461 (_mm512_cmple_epu32_mask): Ditto.
8462 (_mm512_cmple_epi64_mask): Ditto.
8463 (_mm512_cmple_epu64_mask): Ditto.
8464 (_mm512_cmplt_epi32_mask): Ditto.
8465 (_mm512_cmplt_epu32_mask): Ditto.
8466 (_mm512_cmplt_epi64_mask): Ditto.
8467 (_mm512_cmplt_epu64_mask): Ditto.
8468 (_mm512_cmpneq_epi32_mask): Ditto.
8469 (_mm512_cmpneq_epu32_mask): Ditto.
8470 (_mm512_cmpneq_epi64_mask): Ditto.
8471 (_mm512_cmpneq_epu64_mask): Ditto.
8472 (_mm512_expand_pd): Ditto.
8473 (_mm512_expand_ps): Ditto.
8474 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
8475 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
8476 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
8477 * config/i386/i386.c (ix86_builtins): Add
8478 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
8479 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
8480 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
8481 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
8482 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
8483 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
8484 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
8485 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
8486 IX86_BUILTIN_PMOVUSQW512_MEM.
8487 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
8488 __builtin_ia32_pmovsqd512mem_mask,
8489 __builtin_ia32_pmovqd512mem_mask,
8490 __builtin_ia32_pmovusqw512mem_mask,
8491 __builtin_ia32_pmovsqw512mem_mask,
8492 __builtin_ia32_pmovqw512mem_mask,
8493 __builtin_ia32_pmovusdw512mem_mask,
8494 __builtin_ia32_pmovsdw512mem_mask,
8495 __builtin_ia32_pmovdw512mem_mask,
8496 __builtin_ia32_pmovqb512mem_mask,
8497 __builtin_ia32_pmovusqb512mem_mask,
8498 __builtin_ia32_pmovsqb512mem_mask,
8499 __builtin_ia32_pmovusdb512mem_mask,
8500 __builtin_ia32_pmovsdb512mem_mask,
8501 __builtin_ia32_pmovdb512mem_mask.
8502 (bdesc_args): Add __builtin_ia32_expanddf512,
8503 __builtin_ia32_expandsf512.
8504 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
8505 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
8506 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
8507 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
8508 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
8509 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
8510 (avx512f_<code>v8div16qi2_mask_store): This.
8511 (avx512f_expand<mode>): New.
8513 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
8515 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
8517 (_mm512_mask_prefetch_i64gather_pd): Ditto.
8518 (_mm512_prefetch_i32scatter_pd): Ditto.
8519 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
8520 (_mm512_prefetch_i64scatter_pd): Ditto.
8521 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
8522 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
8523 (_mm512_mask_prefetch_i64gather_ps): Ditto.
8524 (_mm512_prefetch_i32scatter_ps): Ditto.
8525 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
8526 (_mm512_prefetch_i64scatter_ps): Ditto.
8527 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
8528 * config/i386/i386-builtin-types.def: Define
8529 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
8530 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
8531 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
8532 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
8533 IX86_BUILTIN_SCATTERPFQPD.
8534 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
8535 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
8536 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
8537 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
8538 __builtin_ia32_scatterpfqps.
8539 (ix86_expand_builtin): Expand new built-ins.
8540 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
8541 fix memory access data type.
8542 (*avx512pf_gatherpf<mode>_mask): Ditto.
8543 (*avx512pf_gatherpf<mode>): Ditto.
8544 (avx512pf_scatterpf<mode>): Ditto.
8545 (*avx512pf_scatterpf<mode>_mask): Ditto.
8546 (*avx512pf_scatterpf<mode>): Ditto.
8547 (GATHER_SCATTER_SF_MEM_MODE): New.
8548 (avx512pf_gatherpf<mode>df): Ditto.
8549 (*avx512pf_gatherpf<mode>df_mask): Ditto.
8550 (*avx512pf_scatterpf<mode>df): Ditto.
8552 2014-01-27 Jakub Jelinek <jakub@redhat.com>
8555 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
8556 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
8559 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
8561 * common/config/arm/arm-common.c
8562 (arm_rewrite_mcpu): Handle multiple names.
8564 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8566 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
8568 * gimple-builder.h (create_gimple_tmp): Delete.
8570 2014-01-27 Christian Bruel <christian.bruel@st.com>
8572 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
8575 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
8577 * config/pa/pa.md (call): Generate indirect long calls to non-local
8578 functions when outputing 32-bit code.
8579 (call_value): Likewise except for special call to buggy powf function.
8581 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
8582 portable runtime and PIC indirect calls.
8583 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
8584 and PIC call sequences. Use ldo instead of blr to set return register
8585 in PIC call sequence.
8587 2014-01-25 Walter Lee <walt@tilera.com>
8589 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
8590 avoid clobbering a live register.
8592 2014-01-25 Walter Lee <walt@tilera.com>
8594 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
8595 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
8596 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
8597 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
8599 2014-01-25 Walter Lee <walt@tilera.com>
8601 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
8602 arguments on even registers.
8603 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
8605 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
8606 (BIGGEST_ALIGNMENT): Ditto.
8607 (BIGGEST_FIELD_ALIGNMENT): Ditto.
8609 2014-01-25 Walter Lee <walt@tilera.com>
8611 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
8612 insns before bundling.
8613 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
8615 2014-01-25 Walter Lee <walt@tilera.com>
8617 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
8618 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
8619 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
8621 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
8623 * config/mips/constraints.md (kl): Delete.
8624 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
8625 define expands, using...
8626 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
8627 instructions for MIPS16.
8628 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
8629 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
8631 2014-01-25 Walter Lee <walt@tilera.com>
8633 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
8637 2014-01-25 Walter Lee <walt@tilera.com>
8639 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
8640 (TARGET_EXPAND_TO_RTL_HOOK): Define.
8642 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
8644 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
8647 2014-01-25 Jakub Jelinek <jakub@redhat.com>
8649 * print-rtl.c (in_call_function_usage): New var.
8650 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
8651 EXPR_LIST mode as mode and not as reg note name.
8654 * cfgloopmanip.c (copy_loop_info): If
8655 loop->warned_aggressive_loop_optimizations, make sure
8656 the flag is set in target loop too.
8658 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
8660 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
8662 * builtins.def: Likewise.
8663 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
8664 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
8665 * ira.c (ira_setup_eliminable_regset): Likewise.
8666 * omp-low.c (gate_expand_omp): Likewise.
8667 (execute_lower_omp): Likewise.
8668 (diagnose_sb_0): Likewise.
8669 (gate_diagnose_omp_blocks): Likewise.
8670 (simd_clone_clauses_extract): Likewise.
8673 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8675 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
8676 correction for little endian...
8677 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
8680 2014-01-24 Jeff Law <law@redhat.com>
8682 PR tree-optimization/59919
8683 * tree-vrp.c (find_assert_locations_1): Do not register asserts
8684 for non-returning calls.
8686 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
8688 * common/config/aarch64/aarch64-common.c
8689 (aarch64_rewrite_mcpu): Handle multiple names.
8690 * config/aarch64/aarch64.h
8691 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
8693 2014-01-24 Dodji Seketeli <dodji@redhat.com>
8695 * input.c (add_file_to_cache_tab): Handle the case where fopen
8698 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
8701 * config/i386/i386.md (pushsf splitter): Get stack adjustment
8702 from push operand if code of push isn't PRE_DEC.
8704 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8707 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
8708 -mquad-memory-atomic. Update -mquad-memory documentation to say
8709 it is only used for non-atomic loads/stores.
8711 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
8712 -mquad-memory or -mquad-memory-atomic switches.
8714 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
8715 -mquad-memory-atomic to ISA 2.07 support.
8717 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
8718 to separate support of normal quad word memory operations (ldq, stq)
8719 from the atomic quad word memory operations.
8721 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8722 support to separate non-atomic quad word operations from atomic
8723 quad word operations. Disable non-atomic quad word operations in
8724 little endian mode so that we don't have to swap words after the
8725 load and before the store.
8726 (quad_load_store_p): Add comment about atomic quad word support.
8727 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
8728 options printed with -mdebug=reg.
8730 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
8731 -mquad-memory-atomic as the test for whether we have quad word
8732 atomic instructions.
8733 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
8734 or -mp8-vector are used, allow byte/half-word atomic operations.
8736 * config/rs6000/sync.md (load_lockedti): Insure that the address
8737 is a proper indexed or indirect address for the lqarx instruction.
8738 On little endian systems, swap the hi/lo registers after the lqarx
8740 (load_lockedpti): Use indexed_or_indirect_operand predicate to
8741 insure the address is valid for the lqarx instruction.
8742 (store_conditionalti): Insure that the address is a proper indexed
8743 or indirect address for the stqcrx. instruction. On little endian
8744 systems, swap the hi/lo registers before doing the stqcrx.
8746 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
8747 insure the address is valid for the stqcrx. instruction.
8749 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
8750 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
8751 type of quad memory support is available.
8753 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
8756 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
8757 there is a danger of looping.
8759 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
8761 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8762 force flag_ira_loop_pressure if set via command line.
8764 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
8766 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
8767 (ashr_simd): New builtin handling DI mode.
8768 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
8769 (aarch64_sshr_simddi): New match pattern.
8770 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
8771 (vshrd_n_s64): Likewise.
8772 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
8774 2014-01-23 Nick Clifton <nickc@redhat.com>
8776 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
8777 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
8778 favour of mcu specific scripts.
8779 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
8782 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
8783 Alex Velenko <Alex.Velenko@arm.com>
8785 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
8786 (vaddv_s16): Likewise.
8787 (vaddv_s32): Likewise.
8788 (vaddv_u8): Likewise.
8789 (vaddv_u16): Likewise.
8790 (vaddv_u32): Likewise.
8791 (vaddvq_s8): Likewise.
8792 (vaddvq_s16): Likewise.
8793 (vaddvq_s32): Likewise.
8794 (vaddvq_s64): Likewise.
8795 (vaddvq_u8): Likewise.
8796 (vaddvq_u16): Likewise.
8797 (vaddvq_u32): Likewise.
8798 (vaddvq_u64): Likewise.
8799 (vaddv_f32): Likewise.
8800 (vaddvq_f32): Likewise.
8801 (vaddvq_f64): Likewise.
8802 (vmaxv_f32): Likewise.
8803 (vmaxv_s8): Likewise.
8804 (vmaxv_s16): Likewise.
8805 (vmaxv_s32): Likewise.
8806 (vmaxv_u8): Likewise.
8807 (vmaxv_u16): Likewise.
8808 (vmaxv_u32): Likewise.
8809 (vmaxvq_f32): Likewise.
8810 (vmaxvq_f64): Likewise.
8811 (vmaxvq_s8): Likewise.
8812 (vmaxvq_s16): Likewise.
8813 (vmaxvq_s32): Likewise.
8814 (vmaxvq_u8): Likewise.
8815 (vmaxvq_u16): Likewise.
8816 (vmaxvq_u32): Likewise.
8817 (vmaxnmv_f32): Likewise.
8818 (vmaxnmvq_f32): Likewise.
8819 (vmaxnmvq_f64): Likewise.
8820 (vminv_f32): Likewise.
8821 (vminv_s8): Likewise.
8822 (vminv_s16): Likewise.
8823 (vminv_s32): Likewise.
8824 (vminv_u8): Likewise.
8825 (vminv_u16): Likewise.
8826 (vminv_u32): Likewise.
8827 (vminvq_f32): Likewise.
8828 (vminvq_f64): Likewise.
8829 (vminvq_s8): Likewise.
8830 (vminvq_s16): Likewise.
8831 (vminvq_s32): Likewise.
8832 (vminvq_u8): Likewise.
8833 (vminvq_u16): Likewise.
8834 (vminvq_u32): Likewise.
8835 (vminnmv_f32): Likewise.
8836 (vminnmvq_f32): Likewise.
8837 (vminnmvq_f64): Likewise.
8839 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
8841 * config/aarch64/aarch64-simd.md
8842 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
8843 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
8844 (*aarch64_mul3_elt<mode>): Likewise.
8845 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
8846 (*aarch64_mul3_elt_to_64v2df): Likewise.
8847 (*aarch64_mla_elt<mode>): Likewise.
8848 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
8849 (*aarch64_mls_elt<mode>): Likewise.
8850 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
8851 (*aarch64_fma4_elt<mode>): Likewise.
8852 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
8853 (*aarch64_fma4_elt_to_64v2df): Likewise.
8854 (*aarch64_fnma4_elt<mode>): Likewise.
8855 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
8856 (*aarch64_fnma4_elt_to_64v2df): Likewise.
8857 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
8858 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
8859 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8860 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8861 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8862 (aarch64_sqdmull_lane<mode>_internal): Likewise.
8863 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8865 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
8867 * config/aarch64/aarch64-simd.md
8868 (aarch64_be_checked_get_lane<mode>): New define_expand.
8869 * config/aarch64/aarch64-simd-builtins.def
8870 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
8871 New builtin definition.
8872 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
8873 Use new safe be builtin.
8875 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
8877 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
8879 (aarch64_be_st1<mode>): Likewise.
8880 (aarch_ld1<VALL:mode>): Define_expand modified.
8881 (aarch_st1<VALL:mode>): Likewise.
8882 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
8883 (UNSPEC_ST1): Likewise.
8885 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
8887 * config/microblaze/microblaze.md: Add trap insn and attribute
8889 2014-01-23 Dodji Seketeli <dodji@redhat.com>
8891 PR preprocessor/58580
8892 * input.h (location_get_source_line): Take an additional line_size
8894 (void diagnostics_file_cache_fini): Declare new function.
8895 * input.c (struct fcache): New type.
8896 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
8897 New static constants.
8898 (diagnostic_file_cache_init, total_lines_num)
8899 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
8900 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
8901 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
8902 (get_next_line, read_next_line, goto_next_line, read_line_num):
8903 New static function definitions.
8904 (diagnostic_file_cache_fini): New function.
8905 (location_get_source_line): Take an additional output line_len
8906 parameter. Re-write using lookup_or_add_file_to_cache_tab and
8908 * diagnostic.c (diagnostic_finish): Call
8909 diagnostic_file_cache_fini.
8910 (adjust_line): Take an additional input parameter for the length
8911 of the line, rather than calculating it with strlen.
8912 (diagnostic_show_locus): Adjust the use of
8913 location_get_source_line and adjust_line with respect to their new
8914 signature. While displaying a line now, do not stop at the first
8915 null byte. Rather, display the zero byte as a space and keep
8916 going until we reach the size of the line.
8917 * Makefile.in: Add vec.o to OBJS-libcommon
8919 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
8920 Ilya Tocar <ilya.tocar@intel.com>
8922 * config/i386/avx512fintrin.h (_mm512_kmov): New.
8923 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
8924 (__builtin_ia32_kmov16): Ditto.
8925 * config/i386/i386.md (UNSPEC_KMOV): New.
8928 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
8930 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
8931 (_mm512_storeu_si512): Ditto.
8933 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
8936 * rtl.h (get_referenced_operands): Declare.
8937 * recog.c (get_referenced_operands): New function.
8938 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
8939 operands have been referenced when recording LO_SUM references.
8941 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
8943 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
8945 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
8947 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
8948 Enable for generic and recent AMD targets.
8950 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
8952 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
8953 ARG_SIZE note when adjustment was eliminated.
8955 2014-01-22 Jeff Law <law@redhat.com>
8957 PR tree-optimization/59597
8958 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
8959 in file. Accept new argument REGISTERING and use it to modify
8960 dump output appropriately.
8961 (register_jump_thread): Corresponding changes.
8962 (mark_threaded_blocks): Reinstate code to cancel unprofitable
8963 thread paths involving joiner blocks. Add code to dump cancelled
8964 jump threading paths.
8966 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
8968 PR rtl-optimization/59477
8969 * lra-constraints.c (inherit_in_ebb): Process call for living hard
8970 regs. Update reloads_num and potential_reload_hard_regs for all insns.
8972 2014-01-22 Tom Tromey <tromey@redhat.com>
8974 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
8976 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
8978 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
8980 PR rtl-optimization/59896
8981 * lra-constraints.c (process_alt_operands): Check unused note for
8982 matched operands of insn with no output reloads.
8984 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
8986 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
8987 (mips_move_from_gpr_cost): Likewise.
8989 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
8991 PR rtl-optimization/59858
8992 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
8993 ira_class_hard_regs_num.
8994 (process_alt_operands): Increase reject for dying matched operand.
8996 2014-01-21 Jakub Jelinek <jakub@redhat.com>
8999 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
9000 smaller than size, perform several stores or loads and stores
9001 at dst + count - size to store or copy all of size bytes, rather
9002 than just last modesize bytes.
9004 2014-01-20 DJ Delorie <dj@redhat.com>
9006 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
9007 that CLOBBERs are REGs before propogating their values.
9009 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
9012 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
9013 (cgraph_inline_failed_type): New function.
9014 * cgraph.h (DEFCIFCODE): Add type.
9015 (cgraph_inline_failed_type_t): New enum.
9016 (cgraph_inline_failed_type): New prototype.
9017 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
9018 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
9019 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
9020 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
9021 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
9022 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
9023 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
9024 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
9025 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
9026 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
9027 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
9028 OPTIMIZATION_MISMATCH.
9029 * tree-inline.c (expand_call_inline): Emit errors during
9030 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
9032 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9035 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
9036 mode attribute in insn output.
9038 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
9040 * output.h (output_constant): Delete.
9041 * varasm.c (output_constant): Make private.
9043 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
9045 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
9047 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9050 * tree.h (fold_builtin_strcat): New prototype.
9051 * builtins.c (fold_builtin_strcat): No longer static. Add len
9052 argument, if non-NULL, don't call c_strlen. Optimize
9053 directly into __builtin_memcpy instead of __builtin_strcpy.
9054 (fold_builtin_2): Adjust fold_builtin_strcat caller.
9055 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
9057 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
9059 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9060 for SImode_address_operand operands, having only a REG argument.
9062 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
9064 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
9065 loader name using mbig-endian.
9066 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
9068 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9070 * doc/invoke.texi (-march): Clarify documentation for AArch64.
9074 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
9076 * config/aarch64/aarch64-protos.h
9077 (aarch64_cannot_change_mode_class_ptr): Declare.
9078 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
9079 aarch64_cannot_change_mode_class_ptr): New.
9080 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
9081 backend hook aarch64_cannot_change_mode_class.
9083 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
9085 * common/config/aarch64/aarch64-common.c
9086 (aarch64_handle_option): Don't handle any option order logic here.
9087 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
9088 selected_cpu, warn on architecture version mismatch.
9089 (aarch64_override_options): Fix parsing order for option strings.
9091 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9092 Iain Sandoe <iain@codesourcery.com>
9095 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
9096 warning. Amend comment to reflect current functionality.
9098 2014-01-20 Richard Biener <rguenther@suse.de>
9101 * builtins.c (fold_builtin_strcat): Remove case better handled
9102 by tree-ssa-strlen.c.
9104 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
9106 * config/aarch64/aarch64.opt
9107 (mcpu, march, mtune): Make case-insensitive.
9109 2014-01-20 Jakub Jelinek <jakub@redhat.com>
9112 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
9113 if operands[1] is a REG or ZERO_EXTEND of a REG.
9115 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
9117 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
9119 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
9121 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
9122 long non-pic millicode calls.
9124 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9126 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
9128 2014-01-19 Kito Cheng <kito@0xlab.org>
9130 * builtins.c (expand_movstr): Check movstr expand done or fail.
9132 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9133 H.J. Lu <hongjiu.lu@intel.com>
9136 * config/i386/i386.md (*lea<mode>): Zero-extend return register
9137 to DImode for zero-extended addresses.
9139 2014-01-19 Jakub Jelinek <jakub@redhat.com>
9141 PR rtl-optimization/57763
9142 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
9143 on the new indirect jump_insn and increment LABEL_NUSES (label).
9145 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
9149 * config.gcc (x86_archs): New variable.
9150 (x86_64_archs): Likewise.
9151 (x86_cpus): Likewise.
9152 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
9153 --with-arch/--with-cpu= options.
9154 Support --with-arch=/--with-cpu={nehalem,westmere,
9155 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
9157 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9159 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
9160 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
9162 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
9164 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
9166 2014-01-18 Jakub Jelinek <jakub@redhat.com>
9169 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
9170 clear cpp_get_options (parse_in)->warn_unused_macros for
9171 ix86_target_macros_internal with cpp_define.
9173 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
9175 * jump.c (delete_related_insns): Keep (use (insn))s.
9176 * reorg.c (redundant_insn): Check for barriers too.
9178 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9180 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
9182 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
9184 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
9185 call to $$dyncall when TARGET_LONG_CALLS is true.
9187 2014-01-17 Jeff Law <law@redhat.com>
9189 * ree.c (combine_set_extension): Temporarily disable test for
9190 changing number of hard registers.
9192 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9195 * ipa-inline-analysis.c (inline_free_summary):
9196 Do not free summary of aliases.
9198 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9201 * gimplify.c (gimplify_expr): Use create_tmp_var
9202 instead of create_tmp_var_raw. If cond doesn't have
9203 integral type, don't add the IFN_ANNOTATE builtin at all.
9205 2014-01-17 Martin Jambor <mjambor@suse.cz>
9208 * ipa-cp.c (prev_edge_clone): New variable.
9209 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
9210 Also resize prev_edge_clone vector.
9211 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
9212 (ipcp_edge_removal_hook): New function.
9213 (ipcp_driver): Register ipcp_edge_removal_hook.
9215 2014-01-17 Andrew Pinski <apinski@cavium.com>
9216 Steve Ellcey <sellcey@mips.com>
9219 * config/mips/mips.c (mips_print_operand): Check operand mode instead
9222 2014-01-17 Jeff Law <law@redhat.com>
9225 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
9226 so that pass_ccp runs first.
9228 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9230 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
9231 (ix86_adjust_cost): Use !TARGET_XXX.
9232 (do_reorder_for_imul): Likewise.
9233 (swap_top_of_ready_list): Likewise.
9234 (ix86_sched_reorder): Likewise.
9236 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
9238 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
9239 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
9240 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
9241 (intel_memset): New. Duplicate slm_memset.
9242 (intel_cost): New. Duplicate slm_cost.
9243 (m_INTEL): New macro.
9244 (processor_target_table): Add "intel".
9245 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
9246 with PROCESSOR_INTEL for "intel".
9247 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
9248 PROCESSOR_SILVERMONT.
9249 (ix86_issue_rate): Likewise.
9250 (ix86_adjust_cost): Likewise.
9251 (ia32_multipass_dfa_lookahead): Likewise.
9252 (swap_top_of_ready_list): Likewise.
9253 (ix86_sched_reorder): Likewise.
9254 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
9255 instead of TARGET_OPT_AGU.
9256 * config/i386/i386.h (TARGET_INTEL): New.
9257 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
9258 (processor_type): Add PROCESSOR_INTEL.
9259 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
9260 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
9262 2014-01-17 Marek Polacek <polacek@redhat.com>
9265 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
9268 2014-01-17 Richard Biener <rguenther@suse.de>
9270 PR tree-optimization/46590
9271 * opts.c (default_options_table): Add entries for
9272 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
9273 all enabled at -O1 but not for -Og.
9274 * common.opt (fbranch-count-reg): Remove Init(1).
9275 (fmove-loop-invariants): Likewise.
9276 (ftree-pta): Likewise.
9278 2014-01-17 Jakub Jelinek <jakub@redhat.com>
9280 * config/i386/i386.c (ix86_data_alignment): For compatibility with
9281 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
9282 decls to at least the GCC 4.8 used alignments.
9285 * tree-nested.c (convert_nonlocal_reference_stmt,
9286 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
9287 of GIMPLE_BIND stmts, adjust associated decls.
9289 2014-01-17 Richard Biener <rguenther@suse.de>
9291 PR tree-optimization/46590
9292 * vec.h (vec<>::bseach): New member function implementing
9293 binary search according to C89 bsearch.
9294 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
9295 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
9296 bitmap pointer again. Make accesses_in_loop a flat array.
9297 (mem_ref_obstack): New global.
9298 (outermost_indep_loop): Adjust for mem_ref->stored changes.
9299 (mark_ref_stored): Likewise.
9300 (ref_indep_loop_p_2): Likewise.
9301 (set_ref_stored_in_loop): New helper function.
9302 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
9303 (memref_free): Adjust.
9304 (record_mem_ref_loc): Simplify.
9305 (gather_mem_refs_stmt): Adjust.
9306 (sort_locs_in_loop_postorder_cmp): New function.
9307 (analyze_memory_references): Sort accesses_in_loop after
9308 loop postorder number.
9309 (find_ref_loc_in_loop_cmp): New function.
9310 (for_all_locs_in_loop): Find relevant cluster of locs in
9311 accesses_in_loop and iterate without recursion.
9312 (execute_sm): Avoid uninit warning.
9313 (struct ref_always_accessed): Simplify.
9314 (ref_always_accessed::operator ()): Likewise.
9315 (ref_always_accessed_p): Likewise.
9316 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
9317 loop postorder numbers here.
9318 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
9321 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
9324 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
9325 on decls for which assemble_alias has been called.
9327 2014-01-17 Nick Clifton <nickc@redhat.com>
9329 * config/msp430/msp430.opt: (mcpu): New option.
9330 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
9331 (msp430_option_override): Parse target_cpu. If the MCU name
9332 matches a generic string, clear target_mcu.
9333 (msp430_attr): Allow numeric interrupt values up to 63.
9334 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
9335 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
9337 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
9339 * config/msp430/msp430.md (popm): Use %J rather than %I.
9340 (addsi3): Use msp430_nonimmediate_operand for operand 2.
9341 (addhi_cy_i): Use immediate_operand for operand 2.
9342 * doc/invoke.texi: Document -mcpu option.
9344 2014-01-17 Richard Biener <rguenther@suse.de>
9346 PR rtl-optimization/38518
9347 * df.h (df_analyze_loop): Declare.
9348 * df-core.c: Include cfgloop.h.
9349 (df_analyze_1): Split out main part of df_analyze.
9350 (df_analyze): Adjust.
9351 (loop_inverted_post_order_compute): New function.
9352 (loop_post_order_compute): Likewise.
9353 (df_analyze_loop): New function avoiding whole-function
9355 * loop-invariant.c (find_defs): Use df_analyze_loop.
9356 (find_invariants): Adjust.
9357 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
9359 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
9361 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
9362 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
9364 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
9366 * ipa-ref.c (ipa_remove_stmt_references): Fix references
9367 traversal when removing references.
9369 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
9372 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
9374 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
9377 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
9378 pushing a reload for an autoinc when we had previously reloaded an
9379 inner part of the address.
9381 2014-01-16 Jakub Jelinek <jakub@redhat.com>
9383 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
9385 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
9386 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
9387 when not giving up or versioning for alias only because of
9389 (vect_analyze_data_ref_dependences): Set to true.
9390 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
9392 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
9393 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
9397 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
9400 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
9401 operand 0 predicate for gathers, use a new pseudo as subtarget.
9403 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
9406 * lra-constraints.c (process_alt_operands): Add printing debug info.
9407 Check absence of input/output reloads for matched operands too.
9409 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
9411 PR rtl-optimization/59835
9412 * ira.c (ira_init_register_move_cost): Increase cost for
9415 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
9417 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
9419 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
9422 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
9423 non-register objects. Use gen_(high/low)part more consistently.
9426 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
9429 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
9430 endian support, remove tests for WORDS_BIG_ENDIAN.
9431 (p8_mfvsrd_3_<mode>): Likewise.
9432 (reload_gpr_from_vsx<mode>): Likewise.
9433 (reload_gpr_from_vsxsf): Likewise.
9434 (p8_mfvsrd_4_disf): Likewise.
9436 2014-01-16 Richard Biener <rguenther@suse.de>
9438 PR rtl-optimization/46590
9439 * lcm.c (compute_antinout_edge): Use postorder iteration.
9440 (compute_laterin): Use inverted postorder iteration.
9442 2014-01-16 Nick Clifton <nickc@redhat.com>
9445 * varasm.c (output_constant): Return the number of bytes actually
9447 (output_constructor_array_range): Update the field size with the
9448 number of bytes emitted by output_constant.
9449 (output_constructor_regular_field): Likewise. Also do not
9450 complain if the total number of bytes emitted is now greater
9451 than the expected fieldpos.
9452 * output.h (output_constant): Update prototype and descriptive comment.
9454 2014-01-16 Marek Polacek <polacek@redhat.com>
9457 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
9458 it is error_mark_node.
9460 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
9462 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
9463 VALID_AVX256_REG_OR_OI_MODE.
9465 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
9467 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
9468 current procedure should be profiled.
9470 2014-01-15 Andrew Pinski <apinski@cavium.com>
9472 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
9473 of moving from/to the STACK_REG register class.
9475 2014-01-15 Richard Henderson <rth@redhat.com>
9478 * reginfo.c (global_regs_decl): Globalize.
9479 * rtl.h (global_regs_decl): Declare.
9480 * ira.c (do_reload): Diagnose frame_pointer_needed and it
9481 reserved via global_regs.
9483 2014-01-15 Teresa Johnson <tejohnson@google.com>
9485 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
9487 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9489 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
9490 and vmulosh rather than call gen_vec_widen_smult_*.
9491 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
9492 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
9493 (vec_widen_smult_even_v16qi): Likewise.
9494 (vec_widen_umult_even_v8hi): Likewise.
9495 (vec_widen_smult_even_v8hi): Likewise.
9496 (vec_widen_umult_odd_v16qi): Likewise.
9497 (vec_widen_smult_odd_v16qi): Likewise.
9498 (vec_widen_umult_odd_v8hi): Likewise.
9499 (vec_widen_smult_odd_v8hi): Likewise.
9500 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
9501 vmuloub rather than call gen_vec_widen_umult_*.
9502 (vec_widen_umult_lo_v16qi): Likewise.
9503 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
9504 vmulosb rather than call gen_vec_widen_smult_*.
9505 (vec_widen_smult_lo_v16qi): Likewise.
9506 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
9507 rather than call gen_vec_widen_umult_*.
9508 (vec_widen_umult_lo_v8hi): Likewise.
9509 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
9510 rather than call gen_vec_widen_smult_*.
9511 (vec_widen_smult_lo_v8hi): Likewise.
9513 2014-01-15 Jeff Law <law@redhat.com>
9515 PR tree-optimization/59747
9516 * ree.c (find_and_remove_re): Properly handle case where a second
9517 eliminated extension requires widening a copy created for elimination
9518 of a prior extension.
9519 (combine_set_extension): Ensure that the number of hard regs needed
9520 for a destination register does not change when we widen it.
9522 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
9524 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
9525 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
9526 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
9527 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
9528 (avr-*-rtems*): Likewise.
9529 (bfin*-rtems*): Likewise.
9530 (moxie-*-rtems*): Likewise.
9531 (h8300-*-rtems*): Likewise.
9532 (i[34567]86-*-rtems*): Likewise.
9533 (lm32-*-rtems*): Likewise.
9534 (m32r-*-rtems*): Likewise.
9535 (m68k-*-rtems*): Likewise.
9536 (microblaze*-*-rtems*): Likewise.
9537 (mips*-*-rtems*): Likewise.
9538 (powerpc-*-rtems*): Likewise.
9539 (sh-*-rtems*): Likewise.
9540 (sparc-*-rtems*): Likewise.
9541 (sparc64-*-rtems*): Likewise.
9542 (v850-*-rtems*): Likewise.
9543 (m32c-*-rtems*): Likewise.
9545 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
9547 PR rtl-optimization/59511
9548 * ira.c (ira_init_register_move_cost): Use memory costs for some
9549 cases of register move cost calculations.
9550 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
9551 instead of BB frequency.
9552 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
9553 * lra-assigns.c (find_hard_regno_for): Ditto.
9555 2014-01-15 Richard Biener <rguenther@suse.de>
9557 PR tree-optimization/59822
9558 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
9559 (vectorizable_load): Use it to hoist defs of uses of invariant
9560 loads out of the loop.
9562 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
9563 Kugan Vivekanandarajah <kuganv@linaro.org>
9566 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
9569 2014-01-15 Richard Biener <rguenther@suse.de>
9571 PR rtl-optimization/59802
9572 * lcm.c (compute_available): Use inverted postorder to seed
9573 the initial worklist.
9575 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9578 * config/s390/s390.c (s390_preferred_reload_class): Don't return
9579 ADDR_REGS for invalid symrefs in non-PIC code.
9581 2014-01-15 Jakub Jelinek <jakub@redhat.com>
9584 * builtins.c (determine_block_size): Initialize *probable_max_size
9585 even if len_rtx is CONST_INT.
9587 2014-01-14 Andrew Pinski <apinski@cavium.com>
9589 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
9590 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
9591 (cortexa53_tunings): Likewise.
9592 (aarch64_sched_issue_rate): New function.
9593 (TARGET_SCHED_ISSUE_RATE): Define.
9595 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
9597 * ira-costs.c (find_costs_and_classes): Add missed
9598 ira_init_register_move_cost_if_necessary.
9600 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
9603 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
9605 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
9608 * config/i386/i386.c (type_natural_mode): Add a bool parameter
9609 to indicate if type is used for function return value. Warn ABI
9610 change if the vector mode isn't available for function return value.
9611 (ix86_function_arg_advance): Pass false to type_natural_mode.
9612 (ix86_function_arg): Likewise.
9613 (ix86_gimplify_va_arg): Likewise.
9614 (function_arg_32): Don't warn ABI change.
9615 (ix86_function_value): Pass true to type_natural_mode.
9616 (ix86_return_in_memory): Likewise.
9617 (ix86_struct_value_rtx): Removed.
9618 (TARGET_STRUCT_VALUE_RTX): Likewise.
9620 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
9622 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
9623 converting a conditional jump into a conditional return.
9625 2014-01-14 Richard Biener <rguenther@suse.de>
9627 PR tree-optimization/58921
9628 PR tree-optimization/59006
9629 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
9630 hoisting invariant stmts.
9631 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
9632 invariant loads on the preheader edge if possible.
9634 2014-01-14 Joey Ye <joey.ye@arm.com>
9636 * doc/plugin.texi (Building GCC plugins): Update to C++.
9638 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
9640 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
9641 (_mm_rcp28_round_ss): Ditto.
9642 (_mm_rsqrt28_round_sd): Ditto.
9643 (_mm_rsqrt28_round_ss): Ditto.
9644 (_mm_rcp28_sd): Ditto.
9645 (_mm_rcp28_ss): Ditto.
9646 (_mm_rsqrt28_sd): Ditto.
9647 (_mm_rsqrt28_ss): Ditto.
9648 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
9649 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
9650 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
9651 (IX86_BUILTIN_RCP28SD): Ditto.
9652 (IX86_BUILTIN_RCP28SS): Ditto.
9653 (IX86_BUILTIN_RSQRT28SD): Ditto.
9654 (IX86_BUILTIN_RSQRT28SS): Ditto.
9655 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
9656 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
9657 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
9658 (ix86_expand_special_args_builtin): Expand new FTYPE.
9659 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
9660 (srcp14<mode>): Make insn unary.
9661 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
9662 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
9663 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
9664 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
9665 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
9666 Fix rounding: make it SAE only.
9667 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
9669 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
9671 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
9672 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
9673 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
9674 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
9675 (round_saeonly_mask_scalar_operand4): Ditto.
9676 (round_saeonly_mask_scalar_op3): Ditto.
9677 (round_saeonly_mask_scalar_op4): Ditto.
9679 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9681 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9682 Implement -maltivec=be for vec_insert and vec_extract.
9684 2014-01-10 DJ Delorie <dj@redhat.com>
9686 * config/msp430/msp430.md (call_internal): Don't allow memory
9687 references with SP as the base register.
9688 (call_value_internal): Likewise.
9689 * config/msp430/constraints.md (Yc): New. For memory references
9690 that don't use SP as a base register.
9692 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
9693 "an integer without a # prefix"
9694 * config/msp430/msp430.md (epilogue_helper): Use it.
9696 2014-01-13 Jakub Jelinek <jakub@redhat.com>
9699 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
9700 AVX512F gather builtins.
9701 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
9702 on gather decls with INTEGER_TYPE masktype.
9703 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
9704 directly into the builtin rather than hoisting it before loop.
9706 PR tree-optimization/59387
9707 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
9708 (scev_const_prop): If folded_casts and type has undefined overflow,
9709 use force_gimple_operand instead of force_gimple_operand_gsi and
9710 for each added stmt if it is assign with
9711 arith_code_with_undefined_signed_overflow, call
9712 rewrite_to_defined_overflow.
9713 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
9714 gimple-fold.h instead.
9715 (arith_code_with_undefined_signed_overflow,
9716 rewrite_to_defined_overflow): Moved to ...
9717 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
9718 rewrite_to_defined_overflow): ... here. No longer static.
9719 Include gimplify-me.h.
9720 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
9721 rewrite_to_defined_overflow): New prototypes.
9723 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9725 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
9727 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
9729 * builtins.c (get_object_alignment_2): Minor tweak.
9730 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
9732 2014-01-13 Christian Bruel <christian.bruel@st.com>
9734 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
9735 optimized non constant lengths.
9737 2014-01-13 Jakub Jelinek <jakub@redhat.com>
9740 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
9741 load as __atomic_load_N if possible.
9743 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
9745 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
9747 (rs6000_expand_builtin): Adjust call.
9749 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
9752 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
9753 * config/rs6000/rs6000.c: Include target-globals.h.
9754 (rs6000_set_current_function): Instead of doing target_reinit
9755 unconditionally, use save_target_globals_default_opts and
9756 restore_target_globals.
9758 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
9760 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
9761 (rs6000_expand_builtin): Handle mffs and mtfsf.
9762 (rs6000_init_builtins): Define mffs and mtfsf.
9763 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
9764 (rs6000_mffs): New pattern.
9765 (rs6000_mtfsf): New pattern.
9767 2014-01-11 Bin Cheng <bin.cheng@arm.com>
9769 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
9770 Start narrowing with START. Apply candidate-use pair
9771 and check overall cost in narrowing.
9772 (iv_ca_prune): Pass new argument.
9774 2014-01-10 Jeff Law <law@redhat.com>
9777 * ree.c (combine_reaching_defs): Ensure the defining statement
9778 occurs before the extension when optimizing extensions with
9779 different source and destination hard registers.
9781 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
9784 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
9785 vtables into the type inheritance graph.
9787 2014-01-10 Jakub Jelinek <jakub@redhat.com>
9789 PR rtl-optimization/59754
9790 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
9791 modes in the REGNO != REGNO case.
9793 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9795 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
9797 2014-01-10 Jakub Jelinek <jakub@redhat.com>
9799 PR tree-optimization/59745
9800 * tree-predcom.c (tree_predictive_commoning_loop): Call
9801 free_affine_expand_cache if giving up because components is NULL.
9803 * target-globals.c (save_target_globals): Allocate < 4KB structs using
9804 GC in payload of target_globals struct instead of allocating them on
9805 the heap and the larger structs separately using GC.
9806 * target-globals.h (struct target_globals): Make regs, hard_regs,
9807 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
9808 of GTY((skip)) and change type to void *.
9809 (reset_target_globals): Cast loads from those fields to corresponding
9812 2014-01-10 Steve Ellcey <sellcey@mips.com>
9815 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
9816 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
9817 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
9819 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
9822 * aarch64-modes.def (CC_Zmode): New flags mode.
9823 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
9824 represents an equality.
9825 (aarch64_get_condition_code): Handle CC_Zmode.
9826 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
9828 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9830 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
9831 extraction in good case.
9833 2014-01-10 Richard Biener <rguenther@suse.de>
9835 PR tree-optimization/59374
9836 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
9837 checking after SLP discovery. Mark stmts not participating
9838 in any SLP instance properly.
9840 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9842 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
9843 when handling a SET rtx.
9845 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9847 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
9848 (cortex-a57): Likewise.
9849 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
9851 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9853 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
9854 non-iwmmxt builtins.
9856 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
9860 * ipa-devirt.c record_target_from_binfo): Take as argument
9861 stack of binfos and lookup matching one for virtual inheritance.
9862 (possible_polymorphic_call_targets_1): Update.
9864 2014-01-10 Huacai Chen <chenhc@lemote.com>
9866 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
9867 kernel strings for Loongson-2E/2F/3A.
9869 2014-01-10 Jakub Jelinek <jakub@redhat.com>
9872 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
9873 is_gimple_call before calling gimple_call_internal_p.
9875 2014-01-09 Steve Ellcey <sellcey@mips.com>
9877 * Makefile.in (TREE_FLOW_H): Remove.
9878 (TREE_SSA_H): Add file names from tree-flow.h.
9879 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
9880 * tree.h: Remove tree-flow.h reference.
9881 * hash-table.h: Remove tree-flow.h reference.
9882 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
9883 reference with tree-ssa-loop.h.
9885 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9887 * doc/invoke.texi: Add -maltivec={be,le} options, and document
9888 default element-order behavior for -maltivec.
9889 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
9890 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
9891 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
9892 when targeting big endian, at least for now.
9893 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
9895 2014-01-09 Jakub Jelinek <jakub@redhat.com>
9898 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
9899 var satisfies use_register_for_decl, just take into account type
9900 alignment, rather than decl alignment.
9902 PR tree-optimization/59622
9903 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
9904 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
9905 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
9906 Don't devirtualize for inplace at all. For targets.length () == 1,
9907 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
9909 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
9911 * config/i386/i386.md (cpu): Remove the unused btver1.
9913 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
9915 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
9917 2014-01-09 Jakub Jelinek <jakub@redhat.com>
9920 * tree-core.h (struct target_globals): New forward declaration.
9921 (struct tree_target_option): Add globals field.
9922 * tree.h (TREE_TARGET_GLOBALS): Define.
9923 (prepare_target_option_nodes_for_pch): New prototype.
9924 * target-globals.h (struct target_globals): Define even if
9926 * tree.c (prepare_target_option_node_for_pch,
9927 prepare_target_option_nodes_for_pch): New functions.
9928 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
9929 * config/i386/i386.c: Include target-globals.h.
9930 (ix86_set_current_function): Instead of doing target_reinit
9931 unconditionally, use save_target_globals_default_opts and
9932 restore_target_globals.
9934 2014-01-09 Richard Biener <rguenther@suse.de>
9936 PR tree-optimization/59715
9937 * tree-cfg.h (split_critical_edges): Declare.
9938 * tree-cfg.c (split_critical_edges): Export.
9939 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
9941 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
9943 * cfgexpand.c (expand_stack_vars): Optionally disable
9944 asan stack protection.
9945 (expand_used_vars): Likewise.
9946 (partition_stack_vars): Likewise.
9947 * asan.c (asan_emit_stack_protection): Optionally disable
9948 after return stack usage.
9949 (instrument_derefs): Optionally disable memory access instrumentation.
9950 (instrument_builtin_call): Likewise.
9951 (instrument_strlen_call): Likewise.
9952 (asan_protect_global): Optionally disable global variables protection.
9953 * doc/invoke.texi: Added doc for new options.
9954 * params.def: Added new options.
9955 * params.h: Likewise.
9957 2014-01-09 Jakub Jelinek <jakub@redhat.com>
9959 PR rtl-optimization/59724
9960 * ifcvt.c (cond_exec_process_if_block): Don't call
9961 flow_find_head_matching_sequence with 0 longest_match.
9962 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
9963 non-active insns if !stop_after.
9964 (try_head_merge_bb): Revert 2014-01-07 changes.
9966 2014-01-08 Jeff Law <law@redhat.com>
9968 * ree.c (get_sub_rtx): New function, extracted from...
9969 (merge_def_and_ext): Here.
9970 (combine_reaching_defs): Use get_sub_rtx.
9972 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
9974 * cgraph.h (varpool_variable_node): Do not choke on null node.
9976 2014-01-08 Catherine Moore <clm@codesourcery.com>
9978 * config/mips/mips.md (simple_return): Attempt to use JRC
9980 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
9982 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
9984 PR rtl-optimization/59137
9985 * reorg.c (steal_delay_list_from_target): Call update_block for
9987 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
9989 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9991 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
9992 two duplicate entries.
9994 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
9997 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
9999 * config/mips/mips.c (mips_truncated_op_cost): New function.
10000 (mips_rtx_costs): Adjust test for BADDU.
10001 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
10003 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
10005 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
10006 (*baddu_si): ...this new pattern.
10008 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10011 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
10013 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
10015 PR middle-end/57748
10016 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
10018 (expand_expr, expand_normal): Adjust.
10019 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
10020 inner_reference_p. Use inner_reference_p to expand inner references.
10021 (store_expr): Adjust.
10022 * cfgexpand.c (expand_call_stmt): Adjust.
10024 2014-01-08 Rong Xu <xur@google.com>
10026 * gcov-io.c (gcov_var): Move from gcov-io.h.
10027 (gcov_position): Ditto.
10028 (gcov_is_error): Ditto.
10029 (gcov_rewrite): Ditto.
10030 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
10031 only part to libgcc/libgcov.h.
10033 2014-01-08 Marek Polacek <polacek@redhat.com>
10035 PR middle-end/59669
10036 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
10038 2014-01-08 Marek Polacek <polacek@redhat.com>
10041 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
10043 2014-01-08 Jakub Jelinek <jakub@redhat.com>
10045 PR rtl-optimization/59649
10046 * stor-layout.c (get_mode_bounds): For BImode return
10047 0 and STORE_FLAG_VALUE.
10049 2014-01-08 Richard Biener <rguenther@suse.de>
10051 PR middle-end/59630
10052 * gimple.h (is_gimple_builtin_call): Remove.
10053 (gimple_builtin_call_types_compatible_p): New.
10054 (gimple_call_builtin_p): New overload.
10055 * gimple.c (is_gimple_builtin_call): Remove.
10056 (validate_call): Rename to ...
10057 (gimple_builtin_call_types_compatible_p): ... this and export. Also
10058 check return types.
10059 (validate_type): New static function.
10060 (gimple_call_builtin_p): New overload and adjust.
10061 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
10062 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
10063 (gimple_fold_stmt_to_constant_1): Likewise.
10064 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
10066 2014-01-08 Richard Biener <rguenther@suse.de>
10068 PR middle-end/59471
10069 * gimplify.c (gimplify_expr): Gimplify register-register type
10070 VIEW_CONVERT_EXPRs to separate stmts.
10072 2014-01-07 Jeff Law <law@redhat.com>
10074 PR middle-end/53623
10075 * ree.c (combine_set_extension): Handle case where source
10076 and destination registers in an extension insn are different.
10077 (combine_reaching_defs): Allow source and destination registers
10078 in extension to be different under limited circumstances.
10079 (add_removable_extension): Remove restriction that the
10080 source and destination registers in the extension are the same.
10081 (find_and_remove_re): Emit a copy from the extension's
10082 destination to its source after the defining insn if
10083 the source and destination registers are different.
10085 PR middle-end/59285
10086 * ifcvt.c (merge_if_block): If we are merging a block with more than
10087 one successor with a block with no successors, remove any BARRIER
10088 after the second block.
10090 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
10092 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
10094 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
10097 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
10098 for 14-bit register offsets when INT14_OK_STRICT is false.
10100 2014-01-07 Roland Stigge <stigge@antcom.de>
10101 Michael Meissner <meissner@linux.vnet.ibm.com>
10104 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
10105 Only check TFmode for SPE constants. Don't check TImode or TDmode.
10107 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
10109 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
10112 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
10114 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
10115 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
10116 rtx is const0_rtx or not.
10118 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
10121 * target-globals.c (save_target_globals): Remove this_fn_optab
10123 * toplev.c: Include optabs.h.
10124 (target_reinit): Temporarily restore the global options if another
10125 set of options are in force.
10127 2014-01-07 Jakub Jelinek <jakub@redhat.com>
10129 PR rtl-optimization/58668
10130 * cfgcleanup.c (flow_find_cross_jump): Don't count
10131 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
10132 to determine what is counted.
10133 (flow_find_head_matching_sequence): Use active_insn_p to determine
10135 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
10137 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
10138 determine what is counted.
10140 PR tree-optimization/59643
10141 * tree-predcom.c (split_data_refs_to_components): If one dr is
10142 read and one write, determine_offset fails and the write isn't
10143 in the bad component, just put the read into the bad component.
10145 2014-01-07 Mike Stump <mikestump@comcast.net>
10146 Jakub Jelinek <jakub@redhat.com>
10149 * tree-core.h (struct tree_optimization_option): Change optabs
10150 type from unsigned char * to void *.
10151 * optabs.c (init_tree_optimization_optabs): Adjust
10152 TREE_OPTIMIZATION_OPTABS initialization.
10154 2014-01-06 Jakub Jelinek <jakub@redhat.com>
10157 * config/i386/i386.h (struct machine_function): Add
10158 no_drap_save_restore field.
10159 * config/i386/i386.c (ix86_save_reg): Use
10160 !cfun->machine->no_drap_save_restore instead of
10161 crtl->stack_realign_needed.
10162 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
10163 this function clears frame_pointer_needed. Set
10164 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
10165 and DRAP reg is needed.
10167 2014-01-06 Marek Polacek <polacek@redhat.com>
10170 * doc/implement-c.texi: Mention that other integer types are
10171 permitted as bit-field types in strictly conforming mode.
10173 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
10175 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
10176 is newly allocated.
10178 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
10180 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
10182 2014-01-06 Martin Jambor <mjambor@suse.cz>
10185 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
10187 * ipa-prop.c (ipa_print_node_params): Fix indentation.
10189 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
10193 * var-tracking.c (add_stores): Preserve the value of the source even if
10194 we don't record the store.
10196 2014-01-06 Terry Guo <terry.guo@arm.com>
10198 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
10200 2014-01-05 Iain Sandoe <iain@codesourcery.com>
10203 * config/darwin.c (darwin_function_section): Adjust return values to
10204 correspond to optimisation changes made in r206070.
10206 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
10208 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
10209 from prefetch_block tune setting.
10210 (nocona_cost): Correct size of prefetch block to 64.
10212 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
10214 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
10215 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
10216 used to save the static chain register in the computation of the offset
10217 from which the FP registers need to be restored.
10219 2014-01-04 Jakub Jelinek <jakub@redhat.com>
10221 PR tree-optimization/59519
10222 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
10223 ICE if get_current_def (current_new_name) is already non-NULL, as long
10224 as it is a phi result of some other phi in *new_exit_bb that has
10227 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
10228 or vmovdqu* for misaligned_operand.
10229 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
10230 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
10231 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
10232 aligned_mem for AVX512F masked aligned load and store builtins and for
10233 non-temporal moves.
10235 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
10237 PR tree-optimization/59651
10238 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10239 Address range for negative step should be added by TYPE_SIZE_UNIT.
10241 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
10243 * config/m68k/m68k.c (handle_move_double): Handle pushes with
10244 overlapping registers also for registers other than the stack pointer.
10246 2014-01-03 Marek Polacek <polacek@redhat.com>
10249 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
10252 2014-01-03 Jakub Jelinek <jakub@redhat.com>
10255 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
10258 * config/i386/i386.md (MODE_SIZE): New mode attribute.
10259 (push splitter): Use <P:MODE_SIZE> instead of
10260 GET_MODE_SIZE (<P:MODE>mode).
10261 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
10262 (mov -1, reg peephole2): Likewise.
10263 * config/i386/sse.md (*mov<mode>_internal,
10264 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
10265 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
10266 *<code><mode>3, *andnot<mode>3<mask_name>,
10267 <mask_codefor><code><mode>3<mask_name>): Likewise.
10268 * config/i386/subst.md (mask_mode512bit_condition,
10269 sd_mask_mode512bit_condition): Likewise.
10271 2014-01-02 Xinliang David Li <davidxl@google.com>
10273 PR tree-optimization/59303
10274 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
10275 (dump_predicates): Better output format.
10276 (pred_equal_p): New function.
10277 (is_neq_relop_p): Ditto.
10278 (is_neq_zero_form_p): Ditto.
10279 (pred_expr_equal_p): Ditto.
10280 (pred_neg_p): Ditto.
10281 (simplify_pred): Ditto.
10282 (simplify_preds_2): Ditto.
10283 (simplify_preds_3): Ditto.
10284 (simplify_preds_4): Ditto.
10285 (simplify_preds): Ditto.
10286 (push_pred): Ditto.
10287 (push_to_worklist): Ditto.
10288 (get_pred_info_from_cmp): Ditto.
10289 (is_degenerated_phi): Ditto.
10290 (normalize_one_pred_1): Ditto.
10291 (normalize_one_pred): Ditto.
10292 (normalize_one_pred_chain): Ditto.
10293 (normalize_preds): Ditto.
10294 (normalize_cond_1): Remove function.
10295 (normalize_cond): Ditto.
10296 (is_gcond_subset_of): Ditto.
10297 (is_subset_of_any): Ditto.
10298 (is_or_set_subset_of): Ditto.
10299 (is_and_set_subset_of): Ditto.
10300 (is_norm_cond_subset_of): Ditto.
10301 (pred_chain_length_cmp): Ditto.
10302 (convert_control_dep_chain_into_preds): Type change.
10303 (find_predicates): Ditto.
10304 (find_def_preds): Ditto.
10305 (destroy_predicates_vecs): Ditto.
10306 (find_matching_predicates_in_rest_chains): Ditto.
10307 (use_pred_not_overlap_with_undef_path_pred): Ditto.
10308 (is_pred_expr_subset): Ditto.
10309 (is_pred_chain_subset_of): Ditto.
10310 (is_included_in): Ditto.
10311 (is_superset_of): Ditto.
10313 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10315 Update copyright years.
10317 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
10319 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
10320 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10321 config/arc/arc.md, config/arc/arc.opt,
10322 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
10323 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
10324 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
10325 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
10326 config/linux-protos.h, config/linux.c, config/winnt-c.c,
10327 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
10328 vtable-verify.c, vtable-verify.h: Use the standard form for the
10331 2014-01-02 Tobias Burnus <burnus@net-b.de>
10333 * gcc.c (process_command): Update copyright notice dates.
10334 * gcov-dump.c: Ditto.
10336 * doc/cpp.texi: Bump @copying's copyright year.
10337 * doc/cppinternals.texi: Ditto.
10338 * doc/gcc.texi: Ditto.
10339 * doc/gccint.texi: Ditto.
10340 * doc/gcov.texi: Ditto.
10341 * doc/install.texi: Ditto.
10342 * doc/invoke.texi: Ditto.
10344 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
10346 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
10348 2014-01-01 Jakub Jelinek <jakub@redhat.com>
10350 * config/i386/sse.md (*mov<mode>_internal): Guard
10351 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
10353 PR rtl-optimization/59647
10354 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
10355 new_rtx into UNSIGNED_FLOAT rtxes.
10357 Copyright (C) 2014 Free Software Foundation, Inc.
10359 Copying and distribution of this file, with or without modification,
10360 are permitted in any medium without royalty provided the copyright
10361 notice and this notice are preserved.