1 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
3 * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
4 different trapping status if -fnon-call-exceptions is enabled.
6 2014-07-20 Eric Botcazou <ebotcazou@adacore.com>
8 * expr.c (store_field): Handle VOIDmode for calls that return values
11 2014-07-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13 * config/rs6000/altivec.md (unspec enum): Fix typo in
15 (altivec_vsldoi_<mode>): Likewise.
17 2014-07-20 Roman Gareev <gareevroman@gmail.com>
19 * graphite-isl-ast-to-gimple.c:
20 Fixes a formatting issue related to the number of characters in the
23 2014-07-20 Roman Gareev <gareevroman@gmail.com>
25 * graphite-isl-ast-to-gimple.c:
26 Add using of build_nonstandard_integer_type instead of
27 int128_integer_type_node
29 2014-07-19 Eric Botcazou <ebotcazou@adacore.com>
31 * toplev.c (output_stack_usage): Adjust the location of the warning.
33 2014-07-19 Daniel Cederman <cederman@gaisler.com>
35 * config/sparc/sync.md (*membar_storeload_leon3): New insn.
36 (*membar_storeload): Disable for LEON3.
38 2014-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
40 PR rtl-optimization/61461
41 * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
43 2014-07-18 Uros Bizjak <ubizjak@gmail.com>
46 * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
47 Fix instruction constraint.
48 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
50 2014-07-18 Jonathan Wakely <jwakely@redhat.com>
52 * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
54 2014-07-18 Chung-Ju Wu <jasonwucj@gmail.com>
56 * config/nds32/nds32.c (nds32_can_eliminate): Follow the
58 (nds32_register_move_cost): Likewise.
59 (nds32_memory_move_cost): Likewise.
60 (nds32_address_cost): Likewise.
62 2014-07-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
64 * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
66 2014-07-17 John David Anglin <danglin@gcc.gnu.org>
68 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
69 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
70 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
71 (HAVE_sync_compare_and_swapqi): Define.
72 (HAVE_sync_compare_and_swaphi): Likewise.
73 (HAVE_sync_compare_and_swapsi): Likewise.
75 2014-07-17 Richard Sandiford <rdsandiford@googlemail.com>
77 * config/mips/p5600.md: Add missing cpu tests.
79 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
81 * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
86 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
88 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
89 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
91 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
93 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
94 (vmlal_high_lane_s32): Likewise.
95 (vmlal_high_lane_u16): Likewise.
96 (vmlal_high_lane_u32): Likewise.
97 (vmlsl_high_lane_s16): Likewise.
98 (vmlsl_high_lane_s32): Likewise.
99 (vmlsl_high_lane_u16): Likewise.
100 (vmlsl_high_lane_u32): Likewise.
102 2014-07-17 Terry Guo <terry.guo@arm.com>
104 * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
105 (alus_reg): Renamed to alus_sreg.
106 * config/arm/arm-fixed.md: Change type of non-dsp instructions
107 from alu_reg to alu_sreg. Change type of dsp instructions from
108 alu_reg to alu_dsp_reg.
109 * config/arm/thumb1.md: Likewise.
110 * config/arm/thumb2.md: Likewise.
111 * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
112 * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
113 with alu_sreg and alus_sreg.
114 * config/arm/arm1026ejs.md (alu_op): Likewise.
115 * config/arm/arm1136jfs.md (11_alu_op): Likewise.
116 * config/arm/arm926ejs.md (9_alu_op): Likewise.
117 * config/arm/fa526.md (526_alu_op): Likewise.
118 * config/arm/fa606te.md (606te_alu_op): Likewise.
119 * config/arm/fa626te.md (626te_alu_op): Likewise.
120 * config/arm/fa726te.md (726te_alu_op): Likewise.
121 * config/arm/fmp626.md (mp626_alu_op): Likewise.
122 * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
123 alu_sreg, alu_dsp_reg and alus_sreg.
124 * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
125 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
126 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
127 * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
128 * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
129 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
130 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
131 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
132 * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
133 * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
134 subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
135 *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
136 (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
137 sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
138 subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
139 alus_reg to alus_sreg.
141 2014-07-17 Andreas Schwab <schwab@linux-m68k.org>
143 * real.c (encode_ieee_extended_motorola): Clear integer bit in the
146 2014-07-17 Richard Biener <rguenther@suse.de>
148 PR rtl-optimization/61801
149 * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
150 ASM_INPUT don't set reg_pending_barrier if it appears in a
153 2014-07-16 DJ Delorie <dj@redhat.com>
155 * config/rx/rx.c (rx_option_override): Fix alignment values.
156 (rx_align_for_label): Likewise.
158 2014-07-17 Hans-Peter Nilsson <hp@axis.com>
161 * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
162 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
163 (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
165 (cris_print_index, cris_print_operand, cris_constant_index_p)
166 (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
167 (cris_address_cost): Ditto last CONSTANT_P.
168 (cris_symbol_type_of): Rename from cris_pic_symbol_type_of. All
169 callers changed. Yield cris_offsettable_symbol for non-PIC
170 constant symbolic expressions including labels. Yield cris_unspec
172 (cris_expand_pic_call_address): New parameter MARKERP. Set its
173 target to pic_offset_table_rtx for calls that will likely go
174 through PLT, const0_rtx when they can't. All callers changed.
175 Assert flag_pic. Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
176 symbolic expressions to be PICified. Remove second, redundant,
177 assert on can_create_pseudo_p returning non-zero. Use
178 replace_equiv_address_nv, not replace_equiv_address, for final
180 * config/cris/cris.md ("movsi"): Move variable t to pattern
181 toplevel. Adjust assert for new cris_symbol_type member. Use
182 CONSTANT_P instead of CONSTANT_ADDRESS_P.
183 ("*movsi_internal") <case 9>: Make check for valid unspec operands
185 <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition
187 ("call", "call_value"): Use second incoming operand as a marker
188 for pic-offset-table-register being used.
189 ("*expanded_call_non_v32", "*expanded_call_v32")
190 ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
191 second incoming operand to CALL, match cris_call_type_marker.
192 ("*expanded_call_value_side"): Ditto. Disable before
194 ("*expanded_call_side"): Ditto. Fix typo in comment.
195 (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
197 * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
198 * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
199 (enum cris_symbol_type): Rename from cris_pic_symbol_type. All
200 users changed. Add members cris_offsettable_symbol and
202 (cris_symbol_type): Rename from cris_pic_symbol_type.
203 * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
205 * config/cris/cris-protos.h (cris_symbol_type_of,
206 cris_expand_pic_call_address): Adjust prototypes.
207 (cris_legitimate_constant_p): New prototype.
209 * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
210 an existing tmake_file. Don't add t-slibgcc and t-linux.
212 2014-07-17 Jason Merrill <jason@redhat.com>
215 * symtab.c (symtab_remove_from_same_comdat_group): Also
216 set_comdat_group to NULL_TREE.
217 (verify_symtab): Fix diagnostic.
219 2014-07-16 David Wohlferd <dw@LimeGreenSocks.com>
222 * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
224 2014-07-16 Dodji Seketeli <dodji@redhat.com>
226 Support location tracking for built-in macro tokens
227 * input.h (is_location_from_builtin_token): New function
229 * input.c (is_location_from_builtin_token): New function
231 * toplev.c (general_init): Tell libcpp what the pre-defined
232 spelling location for built-in tokens is.
234 2014-07-16 Jakub Jelinek <jakub@redhat.com>
236 * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
237 on the FUNCTION_DECL.
239 2014-07-16 Richard Biener <rguenther@suse.de>
242 * doc/extend.texi (always_inline): Clarify.
244 2014-07-15 Eric Christopher <echristo@gmail.com>
246 * doc/invoke.texi (Link Options): Document -z option.
248 2014-07-15 Uros Bizjak <ubizjak@gmail.com>
250 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
251 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
253 2014-07-15 Jan Hubicka <hubicka@ucw.cz>
255 * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
257 2014-07-15 Bernd Schmidt <bernds@codesourcery.com>
259 * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
260 varpool_assemble_decl.
261 * varpool.c (varpool_assemble_decl): Assert that node->definition is
264 2014-07-15 Michael Matz <matz@suse.de>
266 PR rtl-optimization/61772
267 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
269 2014-07-15 Richard Biener <rguenther@suse.de>
271 * opts.c (default_options_table): Disable bit-ccp at -Og.
273 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
275 * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
277 2014-07-14 Jan Hubicka <hubicka@ucw.cz>
279 * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
280 NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
281 call langhook for unknown declaration.
282 (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
283 * tree.h (DECL_ARGUMENTS): Update.
284 * print-tree.c (print_node): Update.
285 * tree-core.h (tree_decl_non_common): Remove arguments.
286 (tree_function_decl): Add arguments.
288 2014-07-14 Richard Earnshaw <rearnsha@arm.com>
290 * aarch64.md (add_losym_<mode>): Set type to alu_imm.
292 2014-07-14 Richard Biener <rguenther@suse.de>
294 PR tree-optimization/61779
295 * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
296 simplifying a condition.
298 2014-07-14 Richard Biener <rguenther@suse.de>
300 * builtins.c (c_strlen): Make only_value == 2 really only
301 affect warning generation.
303 2014-07-14 Richard Biener <rguenther@suse.de>
305 PR tree-optimization/61757
306 PR tree-optimization/61783
307 PR tree-optimization/61787
308 * tree-ssa-dom.c (record_equality): Revert canonicalization
309 change and add comment.
310 (propagate_rhs_into_lhs): Revert previous fix, removing
311 loop depth restriction again.
313 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
315 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
316 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
317 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
318 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
319 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
320 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
321 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
323 2014-07-14 Richard Biener <rguenther@suse.de>
325 * cgraph.h (decl_in_symtab_p): Make inline.
327 2014-07-14 Jakub Jelinek <jakub@redhat.com>
330 * doc/invoke.texi (-Wmemset-transposed-args): Document.
333 * config/i386/i386.c (classify_argument): Don't merge classes above
336 2014-07-13 Jan Hubicka <hubicka@ucw.cz>
338 * cgraph.h (symtab_node): Add nonzero_address.
339 (decl_in_symtab_p): Break out from ...
340 (symtab_get_node): ... here.
341 * fold-const.c: Include cgraph.h
342 (tree_single_nonzero_warnv_p): Use symtab to determine
343 if symbol is non-zero.
344 * symtab.c (symtab_node::nonzero_address): New method.
346 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
348 * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
349 forgotten in previous commit.
351 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
353 * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
355 * ipa-devirt.c: Include stor-layout.h and intl.h
356 (odr_subtypes_equivalent_p): New function.
357 (warn_odr): New function.
358 (warn_type_mismatch): New function.
359 (odr_types_equivalent_p): New function.
360 (add_type_duplicate): Use it.
361 * common.opt (Wodr): New flag.
362 * doc/invoke.texi (Wodr): Document new warning.
364 2014-07-12 Jan Hubicka <hubicka@ucw.cz>
366 * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
367 (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
368 * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
369 (varpool_get_constructor): Push CTORS_IN timevar.
370 * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
372 2014-07-12 Uros Bizjak <ubizjak@gmail.com>
374 * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
375 Remove VOID_FTYPE_PUSHORT.
376 * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
377 Change code to USHORT_FTYPE_VOID.
378 (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
379 (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
380 (ix86_atomic_assign_expand_fenv): Update for
381 __builtin_ia32_fnstsw changes.
382 * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
383 (fnstsw): Change operand 0 to nonimmediate operand.
385 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
387 * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
388 (varpool_get_constructor): New function.
389 (varpool_ctor_useable_for_folding_p): Break out from ...
390 (ctor_for_folding): ... here; use varpool_get_constructor.
391 (varpool_assemble_decl): Likewise.
392 * lto-streamer.h (struct output_block): Turn cgraph_node
394 (lto_input_variable_constructor): Declare.
395 * ipa-visibility.c (function_and_variable_visibility): Use
396 varpool_get_constructor.
397 * cgraph.h (varpool_get_constructor): Declare.
398 (varpool_ctor_useable_for_folding_p): New function.
399 * lto-streamer-out.c (get_symbol_initial_value): Take encoder
400 parameter; return error_mark_node for non-trivial constructors.
401 (lto_write_tree_1, DFS_write_tree): Update use of
402 get_symbol_initial_value.
403 (output_function): Update initialization of symbol.
404 (output_constructor): New function.
405 (copy_function): Rename to ..
406 (copy_function_or_variable): ... this one; handle vars too.
407 (lto_output): Output variable sections.
408 * lto-streamer-in.c (input_constructor): New function.
409 (lto_read_body): Rename from ...
410 (lto_read_body_or_constructor): ... this one; handle vars too.
411 (lto_input_variable_constructor): New function.
412 * ipa-prop.c (ipa_prop_write_jump_functions,
413 ipa_prop_write_all_agg_replacement): Update.
414 * lto-cgraph.c (compute_ltrans_boundary): Use it.
415 (output_cgraph_opt_summary): Set symbol to NULL.
417 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
419 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
420 non-polymorphic types.
421 * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
422 * ipa-devirt.c (types_same_for_odr): Do not explode when one
423 of types is not polymorphic.
425 2014-07-11 Vladimir Makarov <vmakarov@redhat.com>
427 * lra-constraints.c (remove_inheritance_pseudos): Process
428 destination pseudo too.
430 2014-07-11 Rong Xu <xur@google.com>
432 * gcov-tool.c (gcov_output_files): Fix build error introduced in
435 2014-07-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
437 * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
438 * config/avr/avr-devices.c (AVR_MCU): Same.
439 (avr_mcu_types): add text start value to end of device list.
440 * config/avr/avr-mcus.def: Add text section start for all devices.
441 (ata5782): Add new avr5 device.
443 * config/avr/avr-tables.opt: Regenerate.
444 * config/avr/avr.h: Add declaration for text section start handler.
445 (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
447 (LINK_SPEC): Include text section start handler to linker spec.
448 * config/avr/driver-avr.c (avr_device_to_text_start): New function to
449 pass -Ttext option to linker if the text section start for the device
451 * config/avr/t-multilib: Regenerate.
452 * doc/avr-mmcu.texi: Regenerate.
454 2014-07-11 David Edelsohn <dje.gcc@gmail.com>
456 * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
457 * config/rs6000/aix52.h (LINK_SPEC): Same.
458 * config/rs6000/aix53.h (LINK_SPEC): Same.
459 * config/rs6000/aix61.h (LINK_SPEC): Same.
460 * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
462 2014-07-11 Roman Gareev <gareevroman@gmail.com>
464 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
465 (graphite_verify): New function.
466 (ivs_params_clear): New function.
467 (gcc_expression_from_isl_ast_expr_id): New function.
468 (gcc_expression_from_isl_expr_int): New function.
469 (binary_op_to_tree): New function.
470 (ternary_op_to_tree): New function.
471 (unary_op_to_tree): New function.
472 (nary_op_to_tree): New function.
473 (gcc_expression_from_isl_expr_op): New function.
474 (gcc_expression_from_isl_expression): New function.
475 (graphite_create_new_loop): New function.
476 (translate_isl_ast_for_loop): New function.
477 (get_upper_bound): New function.
478 (graphite_create_new_loop_guard): New function.
479 (translate_isl_ast_node_for): New function.
480 (translate_isl_ast): New function.
481 (add_parameters_to_ivs_params): New function.
482 (scop_to_isl_ast): New parameter ip.
483 (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
485 2014-07-11 Jan Hubicka <hubicka@ucw.cz>
487 * config/xtensa/predicates.md (call expander): Update for
488 DECL_SECTION_NAME being string.
490 2014-07-11 Richard Biener <rguenther@suse.de>
493 * builtins.c (fold_builtin_memory_op): Inline memory moves that
494 can be implemented with a single load followed by a single store.
495 (c_strlen): Only warn when only_value is not 2.
497 2014-07-11 Evgeny Stupachenko <evstupac@gmail.com>
499 * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
501 2014-07-11 Marat Zakirov <m.zakirov@samsung.com>
504 * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
505 (*movhi_bytes): Likewise.
506 (*arm_movqi_insn): Likewise.
508 2014-07-11 Uros Bizjak <ubizjak@gmail.com>
511 * config/alpha/alpha.c: Include tree-pass.h, context.h
513 (pass_data_handle_trap_shadows): New pass.
514 (pass_handle_trap_shadows::gate): New pass gate function.
515 (make_pass_handle_trap_shadows): New function.
516 (rest_of_handle_trap_shadows): Ditto.
518 (alpha_align_insns_1): Rename from alpha_align_insns.
519 (pass_data_align_insns): New pass.
520 (pass_align_insns::gate): New pass gate function.
521 (make_pass_aling_insns): New function.
522 (rest_of_align_insns): Ditto.
523 (alpha_align_insns): Ditto.
525 (alpha_option_override): Declare handle_trap_shadows info
526 and align_insns_info. Register handle_trap_shadows and align_insns
528 (alpha_reorg): Do not call alpha_trap_shadows and
529 alpha_align_insn from here.
531 (alpha_pad_function_end): Do not skip BARRIERs.
533 2014-07-10 Rong Xu <xur@google.com>
535 Add gcov-tool: an offline gcda profile processing tool support.
536 * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
537 (gcov_is_error): Ditto.
538 (gcov_read_string): Ditto.
539 (gcov_read_sync): Ditto.
540 * gcov-io.h: Move counter defines to gcov-counter.def.
541 * gcov-dump.c (tag_counters): Use gcov-counter.def.
543 * gcov-tool.c: Offline gcda profile processing tool.
544 (unlink_gcda_file): Remove one gcda file.
545 (unlink_profile_dir): Remove gcda files from the profile path.
546 (gcov_output_files): Output gcda files to an output dir.
547 (profile_merge): Merge two profiles in directory.
548 (print_merge_usage_message): Print merge usage.
549 (merge_usage): Print merge usage and exit.
550 (do_merge): Driver for profile merge sub-command.
551 (profile_rewrite): Rewrite profile.
552 (print_rewrite_usage_message): Print rewrite usage.
553 (rewrite_usage): Print rewrite usage and exit.
554 (do_rewrite): Driver for profile rewrite sub-command.
555 (print_usage): Print gcov-info usage and exit.
556 (print_version): Print gcov-info version.
557 (process_args): Process arguments.
558 (main): Main routine for gcov-tool.
559 * Makefile.in: Build and install gcov-tool.
560 * gcov-counter.def: New file split from gcov-io.h.
561 * doc/gcc.texi: Include gcov-tool.texi.
562 * doc/gcov-tool.texi: Document for gcov-tool.
564 2014-07-10 Richard Biener <rguenther@suse.de>
566 PR tree-optimization/61757
567 * tree-ssa-dom.c (loop_depth_of_name): Restore.
568 (propagate_rhs_into_lhs): Revert part of last change.
570 2014-07-10 Thomas Schwinge <thomas@codesourcery.com>
572 * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
575 2014-07-10 Eric Botcazou <ebotcazou@adacore.com>
578 * function.c (allocate_struct_function): Revert r188667 change.
580 * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
582 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com>
584 * doc/install.texi: Remove links to defunct package providers for
587 2014-07-09 Tom de Vries <tom@codesourcery.com>
589 * final.c (get_call_fndecl): Declare.
590 (self_recursive_call_p): New function.
591 (collect_fn_hard_reg_usage): Handle self-recursive function calls.
593 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
595 * ipa-devirt.c (record_node): Walk through aliases.
597 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
599 * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
601 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
604 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
606 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
608 * ipa-visibility.c (function_and_variable_visibility): Remove
609 temporary hack disabling local aliases on AIX.
611 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
613 * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
614 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
616 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
618 * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
619 * rs6000/rs6000.c: Inline output of .set instruction.
620 (declare_alias_data): New struct.
621 (rs6000_declare_alias): New function.
622 (rs6000_xcoff_declare_function_name): Use it.
623 (rs6000_xcoff_declare_object_name): New function.
624 * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
625 (ASM_OUTPUT_DEF): Turn to empty definition.
627 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
630 * hash-table.h: use hash_table::value_type instead of
631 Descriptor::value_type in the return types of several methods.
633 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
635 * tree-pass.h (pass_data): Remove has_execute member.
636 * passes.c (execute_one_pass): Don't check pass->has_execute.
637 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
638 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
639 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
640 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
641 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
642 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
643 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
644 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
645 gimple-low.c, gimple-ssa-isolate-paths.c,
646 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
647 ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
648 ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
649 ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
650 lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
651 postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
652 reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
653 stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
654 tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
655 tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
656 tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
657 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
658 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
659 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
660 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
661 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
662 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
663 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
664 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
665 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
666 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
667 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
668 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
669 web.c: Remove initializer for pass_data::has_execute.
671 2014-07-08 Trevor Saunders <tsaunders@mozilla.com>
673 * graphite-htab.h: Use hash_map instead of hash_table.
674 * graphite-clast-to-gimple.c: Adjust.
675 * passes.c: Use hash_map instead of hash_table.
677 * sese.h: Remove now unused code.
679 2014-07-08 Sriraman Tallam <tmsriram@google.com>
682 * config/i386/i386.c (ix86_in_large_data_p): Check for size less
685 2014-07-08 Jakub Jelinek <jakub@redhat.com>
687 PR rtl-optimization/61673
688 * combine.c (simplify_comparison): Test just mode's sign bit
689 in tmode rather than the sign bit and any bits above it.
691 2014-07-08 Roman Gareev <gareevroman@gmail.com>
693 * graphite-isl-ast-to-gimple.c (generate_isl_context):
694 Add __isl_give to the declaration.
695 (generate_isl_schedule): Likewise.
696 (scop_to_isl_ast): Likewise.
698 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
700 * config/arm/arm.c (cortexa5_extra_costs): New table.
701 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
703 2014-07-08 Jakub Jelinek <jakub@redhat.com>
705 PR tree-optimization/61725
706 * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
707 range, use range_includes_zerop_p instead of integer_zerop on
708 vr0->min, only use log2 of max if min is not negative.
710 2014-07-08 Richard Biener <rguenther@suse.de>
712 * tree-ssa-dom.h (loop_depth_of_name): Remove.
713 * tree-ssa-dom.c (record_equivalences_from_phis): Remove
714 restriction on loop depth difference.
715 (record_equality): Likewise.
716 (propagate_rhs_into_lhs): Likewise. Simplify condition.
717 (loop_depth_of_name): Remove.
718 * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
719 restriction on loop depth difference.
720 (init_copy_prop): Likewise.
722 2014-07-08 Jan Hubicka <hubicka@ucw.cz>
724 * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
726 (walk_aliased_vdefs): Likewise.
727 * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
728 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
729 (detect_type_change_from_memory_writes): Check if entry was reached.
731 2014-07-08 Richard Biener <rguenther@suse.de>
733 PR tree-optimization/61681
734 * tree-ssa-structalias.c (find_what_var_points_to): Expand
735 NONLOCAL inside ESCAPED.
737 2014-07-08 Richard Biener <rguenther@suse.de>
739 PR tree-optimization/61680
740 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
741 Handle properly all read-write dependences with group accesses.
743 2014-07-08 Yuri Rumyantsev <ysrumyan@gmail.com>
745 PR tree-optimization/61576
746 * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
747 block containing reduction statement is predecessor of phi basi block.
749 2014-07-08 Marek Polacek <polacek@redhat.com>
752 * fold-const.c (round_up_loc): Change the parameter type.
754 * fold-const.h (round_up_loc): Adjust declaration.
755 * stor-layout.c (finalize_record_size): Check for too large types.
757 2014-07-07 Jan Hubicka <hubicka@ucw.cz>
759 * symtab.c: Include calls.h.
760 (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
762 2014-07-07 Maciej W. Rozycki <macro@codesourcery.com>
764 * config/rs6000/rs6000.c (output_vec_const_move): Handle
765 little-endian code generation.
766 * config/rs6000/spe.md (spe_evmergehi): Rename to...
767 (vec_perm00_v2si): ... this. Handle little-endian code generation.
768 (spe_evmergehilo): Rename to...
769 (vec_perm01_v2si): ... this. Handle little-endian code generation.
770 (spe_evmergelo): Rename to...
771 (vec_perm11_v2si): ... this. Handle little-endian code generation.
772 (spe_evmergelohi): Rename to...
773 (vec_perm10_v2si): ... this. Handle little-endian code generation.
774 (spe_evmergehi, spe_evmergehilo): New expanders.
775 (spe_evmergelo, spe_evmergelohi): Likewise.
776 (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
777 (*frob_tf_ti): Likewise.
778 (*frob_<mode>_di_2): Likewise.
779 (*frob_tf_di_8_2): Likewise.
780 (*frob_di_<mode>): Likewise.
781 (*frob_ti_tf): Likewise.
782 (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
783 (*frob_ti_<mode>_8_2): Likewise.
784 (*frob_ti_tf_2): Likewise.
785 (mov_si<mode>_e500_subreg0): Rename to...
786 (mov_si<mode>_e500_subreg0_be): ... this. Restrict to the big
788 (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
789 (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
790 (*mov_si<mode>_e500_subreg0_elf_low_be): ... this. Restrict to
791 the big endianness only.
792 (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
793 (*mov_si<mode>_e500_subreg0_2): Rename to...
794 (*mov_si<mode>_e500_subreg0_2_be): ... this. Restrict to the
795 big big endianness only.
796 (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
797 (*mov_si<mode>_e500_subreg4): Rename to...
798 (*mov_si<mode>_e500_subreg4_be): ... this. Restrict to the big
800 (mov_si<mode>_e500_subreg4_le): New instruction pattern.
801 (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
802 (*mov_si<mode>_e500_subreg4_elf_low_be): ... this. Restrict to
803 the big endianness only.
804 (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
806 (*mov_si<mode>_e500_subreg4_2): Rename to...
807 (*mov_si<mode>_e500_subreg4_2_be): ... this. Restrict to the big
809 (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
810 (*mov_sitf_e500_subreg8): Rename to...
811 (*mov_sitf_e500_subreg8_be): ... this. Restrict to the big
813 (*mov_sitf_e500_subreg8_le): New instruction pattern.
814 (*mov_sitf_e500_subreg8_2): Rename to...
815 (*mov_sitf_e500_subreg8_2_be): ... this. Restrict to the big
817 (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
818 (*mov_sitf_e500_subreg12): Rename to...
819 (*mov_sitf_e500_subreg12_be): ... this. Restrict to the big
821 (*mov_sitf_e500_subreg12_le): New instruction pattern.
822 (*mov_sitf_e500_subreg12_2): Rename to...
823 (*mov_sitf_e500_subreg12_2_be): ... this. Restrict to the big
825 (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
827 2014-07-07 Max Ostapenko <m.ostapenko@partner.samsung.com>
829 * asan.c (instrument_strlen_call): Do not instrument first byte
830 in strlen if already instrumented.
832 2014-07-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
834 * config/arm/arm.opt (mwords-little-endian): Delete.
835 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
836 of TARGET_LITTLE_WORDS.
837 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
838 * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
840 * doc/invoke.texi: Remove references to -mwords-little-endian.
842 2014-07-07 Jakub Jelinek <jakub@redhat.com>
844 * expmed.c (struct init_expmed_rtl): Change all fields but
845 pow2 and cint from struct rtx_def to rtx.
846 (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
847 (init_expmed): Likewise. Allocate all the 18 rtxes and ggc_free them
850 2014-07-06 Marek Polacek <polacek@redhat.com>
853 * doc/invoke.texi: Document -Wsizeof-array-argument.
855 2014-07-05 Gerald Pfeifer <gerald@pfeifer.com>
857 * wide-int.h (wide_int_storage): Change declaration from struct
860 2014-07-05 Jan Hubicka <hubicka@ucw.cz>
862 * cgraph.c (cgraph_create_indirect_edge): Update call of
863 get_polymorphic_call_info.
864 * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
865 (possible_polymorphic_call_targets): Add parameter call.
866 (decl_maybe_in_construction_p): New predicate.
867 (get_polymorphic_call_info): Add parameter call;
868 use decl_maybe_in_construction_p.
869 * gimple-fold.c (fold_gimple_assign): Update use of
870 possible_polymorphic_call_targets.
871 (gimple_fold_call): Likewise.
872 * ipa-prop.c: Inlcude calls.h
873 (ipa_binfo_from_known_type_jfunc): Check that known type is record.
874 (param_type_may_change_p): New predicate.
875 (detect_type_change_from_memory_writes): Break out from ...
876 (detect_type_change): ... this one; use param_type_may_change_p.
877 (detect_type_change_ssa): Use param_type_may_change_p.
878 (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
880 2014-07-05 Charles Baylis <charles.baylis@linaro.org>
883 * config/arm/arm-protos.h (arm_legitimate_address_p,
884 arm_is_constant_pool_ref): Add prototypes.
885 * config/arm/arm.c (arm_legitimate_address_p): Remove static.
886 (arm_is_constant_pool_ref) New function.
887 * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
888 arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
889 (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
890 operand. Remove pool_range and neg_pool_range attributes.
891 (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
892 pool_range and neg_pool_range attributes.
893 * config/arm/constraints.md (Uh): New constraint.
894 (Uq): Don't allow constant pool references.
896 2014-07-04 James Greenhalgh <james.greenhalgh@arm.com>
898 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
899 (move_lo_quad_internal_be_<mode>): Likewise.
900 (move_lo_quad_<mode>): Convert to define_expand.
901 (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
902 (aarch64_simd_move_hi_quad_be_<mode>): New.
903 (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
904 (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
905 (aarch64_combinez_be<mode>): New.
906 (aarch64_combine<mode>): Convert to define_expand.
907 (aarch64_combine_internal<mode>): New.
908 (aarch64_simd_combine<mode>): Remove bogus RTL description.
910 2014-07-04 Tom de Vries <tom@codesourcery.com>
912 * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
913 combination of earlyclobber and read/write modifiers.
915 2014-07-04 Tom de Vries <tom@codesourcery.com>
917 * config/aarch64/aarch64-simd.md
918 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
920 2014-07-04 Richard Earnshaw <rearnsha@arm.com>
923 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
925 2014-07-04 Jakub Jelinek <jakub@redhat.com>
928 * cgraphunit.c (expand_thunk): Call free_dominance_info.
930 PR tree-optimization/61684
931 * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
932 rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
934 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
935 Kito Cheng <kito@0xlab.org>
936 Monk Chiang <sh.chiang04@gmail.com>
938 * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
939 (nds32_symbol_load_store_p): Move to ...
940 (nds32_fp_as_gp_check_available): Move to ...
941 * config/nds32/nds32-fp-as-gp.c: ... here.
942 * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
945 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
946 Kito Cheng <kito@0xlab.org>
947 Monk Chiang <sh.chiang04@gmail.com>
949 * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
950 (nds32_expand_store_multiple): Move to ...
951 (nds32_expand_movmemqi): Move to ...
952 * config/nds32/nds32-memory-manipulation.c: ... here.
954 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
955 Kito Cheng <kito@0xlab.org>
956 Monk Chiang <sh.chiang04@gmail.com>
958 * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
959 (nds32_output_casesi_pc_relative): Move to ...
960 (nds32_output_casesi): Move to ...
961 (nds32_mem_format): Move to ...
962 (nds32_output_16bit_store): Move to ...
963 (nds32_output_16bit_load): Move to ...
964 (nds32_output_32bit_store): Move to ...
965 (nds32_output_32bit_load): Move to ...
966 (nds32_output_32bit_load_s): Move to ...
967 (nds32_output_stack_push): Move to ...
968 (nds32_output_stack_pop): Move to ...
969 * config/nds32/nds32-md-auxiliary.c: ... here.
971 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
972 Ling-Hua Tseng <uranus@tinlans.org>
974 * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
975 the purpose of this file.
977 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
978 Kito Cheng <kito@0xlab.org>
979 Monk Chiang <sh.chiang04@gmail.com>
981 * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
982 (nds32_address_cost): Move implementation to ...
983 * config/nds32/nds32-cost.c: ... here.
984 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
985 (nds32_address_cost_impl): Declare.
987 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
988 Kito Cheng <kito@0xlab.org>
989 Monk Chiang <sh.chiang04@gmail.com>
991 * config/nds32/nds32.c
992 (nds32_consecutive_registers_load_store_p): Move to ...
993 (nds32_valid_multiple_load_store): Move to ...
994 (nds32_valid_stack_push_pop): Move to ...
995 (nds32_can_use_bclr_p): Move to ...
996 (nds32_can_use_bset_p): Move to ...
997 (nds32_can_use_btgl_p): Move to ...
998 (nds32_can_use_bitci_p): Move to ...
999 * config/nds32/nds32-predicates.c: ... here.
1001 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
1002 Kito Cheng <kito@0xlab.org>
1003 Monk Chiang <sh.chiang04@gmail.com>
1005 * config/nds32/nds32.c
1006 (nds32_expand_builtin_null_ftype_reg): Move to ...
1007 (nds32_expand_builtin_reg_ftype_imm): Move to ...
1008 (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
1009 (nds32_init_builtins): Move implementation to ...
1010 (nds32_expand_builtin): Move implementation to ...
1011 * config/nds32/nds32-intrinsic.c: ... here.
1012 * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
1013 (nds32_expand_builtin_impl): Declare.
1015 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
1016 Kito Cheng <kito@0xlab.org>
1017 Monk Chiang <sh.chiang04@gmail.com>
1019 * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
1020 (nds32_emit_section_tail_template): Move to ...
1021 (nds32_emit_isr_jmptbl_section): Move to ...
1022 (nds32_emit_isr_vector_section): Move to ...
1023 (nds32_emit_isr_reset_conten): Move to ...
1024 (nds32_check_isr_attrs_conflict): Move to ...
1025 (nds32_construct_isr_vectors_information): Move to ...
1026 (nds32_asm_file_start): Move implementation to ...
1027 (nds32_asm_file_end): Move implementation to ...
1028 * config/nds32/nds32-isr.c: ... here.
1029 * config/nds32/nds32-protos.h
1030 (nds32_check_isr_attrs_conflict): Declare.
1031 (nds32_construct_isr_vectors_information): Declare.
1032 (nds32_asm_file_start_for_isr): Declare.
1033 (nds32_asm_file_end_for_isr): Declare.
1035 2014-07-04 Chung-Ju Wu <jasonwucj@gmail.com>
1036 Kito Cheng <kito@0xlab.org>
1037 Monk Chiang <sh.chiang04@gmail.com>
1039 * config.gcc (nds32*): Add new modules to extra_objs.
1040 (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
1041 (nds32be-*-*): Likewise.
1042 * config/nds32/nds32-cost.c: New file.
1043 * config/nds32/nds32-fp-as-gp.c: New file.
1044 * config/nds32/nds32-intrinsic.c: New file.
1045 * config/nds32/nds32-isr.c: New file.
1046 * config/nds32/nds32-md-auxiliary.c: New file.
1047 * config/nds32/nds32-memory-manipulation.c: New file.
1048 * config/nds32/nds32-pipelines-auxiliary.c: New file.
1049 * config/nds32/nds32-predicates.c: New file.
1050 * config/nds32/t-nds32: New file.
1052 2014-07-03 Jakub Jelinek <jakub@redhat.com>
1054 PR tree-optimization/61682
1055 * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
1056 using cases and when one of the operands is equal to 1.
1058 2014-07-03 Segher Boessenkool <segher@kernel.crashing.org>
1060 * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
1061 ashr<mode>3): Correct mode of operands[2].
1062 (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
1063 lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
1064 Correct mode of operands[2]. Fix split condition.
1066 2014-07-03 Richard Earnshaw <rearnsha@arm.com>
1068 * arm.md (arch): Add armv6_or_vfpv3.
1069 (arch_enabled): Add test for the above.
1070 * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
1072 (sqrtsf_vfp, sqrtdf_vfp): Likewise.
1074 2014-07-03 Jakub Jelinek <jakub@redhat.com>
1076 * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
1077 * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
1078 HWI 1 and negate the unsigned value.
1079 * expmed.c (expand_sdiv_pow2): For modes wider than word always
1080 use AND instead of shift.
1081 * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
1083 2014-07-03 Marek Polacek <polacek@redhat.com>
1085 * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
1086 (-fsanitize=float-divide-by-zero): Move to the table with
1087 -fsanitize=undefined suboptions.
1088 (-fsanitize=float-cast-overflow): Likewise.
1090 2014-07-03 Maciej W. Rozycki <macro@codesourcery.com>
1092 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
1093 BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
1096 2014-07-03 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1098 * loop-invariant.c (struct invariant): Add a new member: eqno;
1099 (find_identical_invariants): Update eqno;
1100 (create_new_invariant): Init eqno;
1101 (get_inv_cost): Compute comp_cost with eqno;
1103 2014-07-02 Segher Boessenkool <segher@kernel.crashing.org>
1105 * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
1106 (walk_insn_part) <ROTATE, ROTATERT>: New cases.
1107 (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
1108 * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
1109 Only do the transformation if both HAVE_rotate and HAVE_rotatert.
1111 2014-07-02 Christian Bruel <christian.bruel@st.com>
1115 * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
1116 (make_preds_opaque): Delete.
1117 (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
1118 (commit_mode_sets): New function.
1119 (optimize_mode_switching): Handle current_mode to mode_switching_emit.
1120 Process all modes at once.
1121 * basic-block.h (pre_edge_lcm_avs): Declare.
1122 * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
1123 Call clear_aux_for_edges. Fix comments.
1124 (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
1125 (pre_edge_rev_lcm): Idem.
1126 * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
1128 * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
1129 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
1131 * config/i386/i386.c (x96_emit_mode_set): Idem.
1132 * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
1133 * config/sh/sh.md (toggle_pr): Defined if TARGET_FPU_SINGLE.
1134 (fpscr_toggle) Disallow from delay slot.
1135 * target.def (emit_mode_set): Add prev_mode parameter.
1136 * doc/tm.texi: Regenerate.
1138 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1140 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
1143 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
1145 * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
1146 vtable_pointer_value_to_vtable): Constify.
1147 (contains_polymorphic_type_p): Declare.
1148 * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
1149 vtable_pointer_value_to_vtable): Constify.
1150 (contains_polymorphic_type_p): New predicate.
1151 * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
1153 (ipa_set_ancestor_jf): Likewise.
1154 (detect_type_change): Return false in easy cases.
1155 (compute_complex_assign_jump_func): Require type to contain
1157 (compute_known_type_jump_func): Likewise.
1159 2014-07-01 Jan Hubicka <hubicka@ucw.cz>
1161 * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
1163 (type_in_anonymous_namespace_p): Constify argument.
1164 * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
1165 * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
1166 (main_odr_variant): New function.
1167 (hash_type_name): Make static; update assert; do not ICE on
1169 (types_same_for_odr): Bring here from tree.c; simplify and remove
1170 old structural comparing code that doesn't work for templates.
1171 (odr_hasher::equal): Update assert.
1172 (add_type_duplicate): Return true when bases should be computed;
1173 replace incomplete loader by complete; do not output duplicated
1174 warnings; do not ICE on non-records; set odr_violated flag.
1175 (get_odr_type): Be ready to replace incomplete type by complete
1176 one; work on ODR variants instead of main variants; reorder item
1177 in array so bases have still smaller indexes.
1178 (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
1179 (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
1181 2014-07-01 Cary Coutant <ccoutant@google.com>
1183 * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
1185 (resolve_addr_in_expr): When replacing the rtx in a location list
1186 entry, get a new address table entry.
1187 (dwarf2out_finish): Call index_location_lists even if there are no
1188 addr_index_table entries yet.
1190 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
1192 * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
1193 change for not being obvious.
1195 2014-07-01 Trevor Saunders <tsaunders@mozilla.com>
1197 * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
1200 2014-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1202 * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
1203 (vcagt_f64): Likewise.
1204 (vcale_f64): Likewise.
1205 (vcaled_f64): Likewise.
1206 (vcales_f32): Likewise.
1207 (vcalt_f64): Likewise.
1208 (vcaltd_f64): Likewise.
1209 (vcalts_f32): Likewise.
1211 2014-07-01 Marek Polacek <polacek@redhat.com>
1213 * doc/invoke.texi: Document -Wint-conversion.
1215 2014-07-01 Marek Polacek <polacek@redhat.com>
1218 * doc/invoke.texi: Document -Wincompatible-pointer-types.
1220 2014-07-01 Martin Liska <mliska@suse.cz>
1222 IPA REF alias refactoring
1223 * cgraph.h (iterate_direct_aliases): New function.
1224 (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
1225 * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
1226 FOR_EACH_ALIAS added.
1227 (cgraph_for_node_and_aliases): Likewise.
1228 * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
1229 * ipa-inline.c (reset_edge_caches): Likewise.
1230 (update_caller_keys): Likewise.
1231 * trans-mem.c (ipa_tm_execute): Likewise.
1232 *varpool.c (varpool_analyze_node): Likewise.
1233 (varpool_for_node_and_aliases): Likewise.
1234 * ipa-ref.h (first_alias): New function.
1235 (last_alias): Likewise.
1236 (has_aliases_p): Likewise.
1237 * ipa-ref.c (ipa_ref::remove_reference): Removal function
1238 is sensitive to IPA_REF_ALIASes.
1239 * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
1240 are put at the beginning of the list.
1241 (symtab_node::iterate_direct_aliases): New function.
1243 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1246 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
1248 (write_ts_type_common_tree_pointers): Do not stream fields not set
1249 for incomplete types; do not stream duplicated fields for variants;
1250 sanity check that variant and type match.
1251 (write_ts_type_non_common_tree_pointers): Likewise.
1252 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
1253 TYPE_SIZE whether type is complete.
1254 (lto_input_ts_type_common_tree_pointers): Do same changes as in
1255 write_ts_type_common_tree_pointers
1256 (lto_input_ts_type_non_common_tree_pointers): Likewise.
1258 2014-06-30 Joseph Myers <joseph@codesourcery.com>
1260 * var-tracking.c (add_stores): Return instead of asserting if old
1261 and new values for conditional store are the same.
1263 2014-06-30 Richard Henderson <rth@redhat.com>
1267 * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
1268 the cfg if there were any changes.
1269 * passes.def: Revert move of peephole2 after reorder_blocks;
1270 move duplicate_computed_gotos before peephole2.
1272 2014-06-30 Uros Bizjak <ubizjak@gmail.com>
1274 * except.c (emit_note_eh_region_end): New helper function.
1275 (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
1276 emit EH_REGION_END note.
1277 * jump.c (cleanup_barriers): Do not split a call and its
1278 corresponding CALL_ARG_LOCATION note.
1280 2014-06-30 Jeff Law <law@redhat.com>
1282 PR tree-optimization/61607
1283 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
1284 deeper into the SSA_NAME_VALUE chain.
1286 2014-06-30 Marek Polacek <polacek@redhat.com>
1288 * convert.c (convert_to_integer): Don't instrument conversions if the
1289 function has no_sanitize_undefined attribute.
1290 * ubsan.c: Don't run the ubsan pass if the function has
1291 no_sanitize_undefined attribute.
1293 2014-06-30 Jakub Jelinek <jakub@redhat.com>
1295 * doc/invoke.texi (-fsanitize=bounds): Move to the table with
1296 -fsanitize=undefined suboptions.
1298 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
1300 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
1301 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
1302 against bigendian and adjust indices.
1304 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
1306 * doc/install.texi (Specific, aarch64*-*-*): Fix markup. Reword a bit.
1308 2014-06-30 Marcus Shawcroft <marcus.shawcroft@arm.com>
1311 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
1312 Add alternative; make early clobber. Adjust both split patterns
1313 to use operand 0 as the working register.
1315 2014-06-30 Jakub Jelinek <jakub@redhat.com>
1317 * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
1318 as ira_object_id_map might be NULL, or 1.
1320 2014-06-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
1322 * loop-invariant.c (get_inv_cost): Handle register class.
1323 (gain_for_invariant): Check the register pressure of the inv
1324 and its overlapped register class, other than all.
1326 2014-06-30 Gerald Pfeifer <gerald@pfeifer.com>
1328 * doc/invoke.texi (Optimize Options): Fix descriptions of
1329 ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
1331 2014-06-29 David Wohlferd <dw@LimeGreenSocks.com>
1333 * doc/extend.texi (Function Attributes): Update 'naked' attribute
1336 2014-06-29 Tobias Grosser <tobias@grosser.es>
1339 * graphite-isl-ast-to-gimple.c: Add missing guards.
1341 2014-06-29 Roman Gareev <gareevroman@gmail.com>
1343 * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
1344 * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
1345 * flag-types.h: Add new enum fgraphite_generator.
1346 * graphite-isl-ast-to-gimple.c: New.
1347 * graphite-isl-ast-to-gimple.h: New.
1348 * graphite.c (graphite_transform_loops): Add choice of Graphite
1349 code generator, which depends on flag_graphite_code_gen.
1351 2014-06-29 Roman Gareev <gareevroman@gmail.com>
1353 * graphite-dependences.c (subtract_commutative_associative_deps):
1354 Add NULL checking of the following variables: must_raw_no_source,
1355 may_raw_no_source, must_war_no_source, may_war_no_source,
1356 must_waw_no_source, may_waw_no_source, must_raw, may_raw,
1357 must_war, may_war, must_waw, may_waw.
1359 2014-06-29 Roman Gareev <gareevroman@gmail.com>
1361 * graphite-clast-to-gimple.c: gloog is renamed to
1362 graphite_regenerate_ast_cloog. gloog_error is renamed to
1363 graphite_regenerate_error.
1364 * graphite-clast-to-gimple.h: The definition of the struct
1365 bb_pbb_def is moved to graphite-htab.h.
1366 Add inclusion of the hash-table.h.
1367 * graphite-htab.h: The declaration of the function gloog is moved
1368 to graphite-clast-to-gimple.h and renamed to
1369 graphite_regenerate_ast_cloog.
1370 * graphite.c (graphite_transform_loops): gloog is renamed
1371 to graphite_regenerate_ast_cloog.
1373 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1375 * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
1377 (write_ts_type_common_tree_pointers): Do not stream fields not set
1378 for incomplete types; do not stream duplicated fields for variants;
1379 sanity check that variant and type match.
1380 (write_ts_type_non_common_tree_pointers): Likewise.
1381 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
1382 TYPE_SIZE whether type is complete.
1383 (lto_input_ts_type_common_tree_pointers): Do same changes as in
1384 write_ts_type_common_tree_pointers
1385 (lto_input_ts_type_non_common_tree_pointers): Likewise.
1387 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1389 * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
1391 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1393 * tree-inline.c (remap_type_1): Do not duplicate fields
1394 that are shared in between type and its main variant.
1396 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1398 * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
1400 (ipa_set_ancestor_jf) Likewise.
1401 (check_stmt_for_type_change): Check that we work on main variant.
1402 (detect_type_change): Look into main variant.
1403 (compute_known_type_jump_func): Check that main variant has BINFO.
1405 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1407 * ipa-devirt.c (set_type_binfo): New function.
1408 (add_type_duplicate): Use it.
1409 (get_odr_type): Sanity check that binfos points to main variants.
1410 (get_class_context): Be sure the context's outer_type is main variant.
1411 (contains_type_p): Walk main variant.
1412 (get_polymorphic_call_info_for_decl): Set outer_type to be
1414 (get_polymorphic_call_info): Likewise.
1415 (possible_polymorphic_call_targets): Sanity check that we operate
1418 2014-06-28 Jan Hubicka <hubicka@ucw.cz>
1420 * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
1422 2014-06-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1424 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
1425 accidental change due to wide-int branch merge.
1427 2014-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1429 * configure.ac (gcc_cv_as_compress_debug): Check for assembler
1430 compressed debug support.
1431 (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
1432 * configure: Regenerate.
1433 * config.in: Regenerate.
1434 * common.opt (compressed_debug_sections): New enum.
1435 (gz, gz=): New options.
1436 * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
1437 (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
1438 (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
1439 * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
1440 LINK_COMPRESS_DEBUG_SPEC.
1441 * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1442 * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
1443 * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
1444 (Debugging Options): Document -gz[=type].
1446 2014-06-27 Martin Jambor <mjambor@suse.cz>
1449 * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
1450 args_to_skip, use those from node instead. Copy args_to_skip and
1451 combined_args_to_skip from node to the new thunk.
1452 (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
1453 (cgraph_create_virtual_clone): Moved computation of
1454 combined_args_to_skip...
1455 (cgraph_clone_node): ...here, simplify it to bitmap_ior..
1457 2014-06-27 trevor Saunders <tsaunders@mozilla.com>
1459 * config/i386/winnt.c (i386_pe_section_type_flags): Remove
1460 redundant diagnostic machinary.
1462 2014-06-27 Richard Biener <rguenther@suse.de>
1464 * tree-ssa-math-opts.c (bswap_replace): Fix
1465 SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
1467 2014-06-27 Martin Liska <mliska@suse.cz>
1469 * gimple.h (gimple_location_safe): New function introduced.
1470 * cgraphunit.c (walk_polymorphic_call_targets): Usage
1471 of gimple_location_safe replaces gimple_location.
1472 (gimple_fold_call): Likewise.
1473 * ipa-devirt.c (ipa_devirt): Likewise.
1474 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1475 * ipa.c (walk_polymorphic_call_targets): Likewise.
1476 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
1478 2014-06-27 Jakub Jelinek <jakub@redhat.com>
1480 PR tree-optimization/57233
1481 PR tree-optimization/61299
1482 * tree-vect-generic.c (get_compute_type, count_type_subparts): New
1484 (expand_vector_operations_1): Use them. If {L,R}ROTATE_EXPR
1485 would be lowered to scalar shifts, check if corresponding
1486 shifts and vector BIT_IOR_EXPR are supported and don't lower
1487 or lower just to narrower vector type in that case.
1488 * expmed.c (expand_shift_1): Fix up handling of vector
1491 2014-06-26 Uros Bizjak <ubizjak@gmail.com>
1494 * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
1496 2014-06-26 Jan Hubicka <hubicka@ucw.cz>
1498 * doc/invoke.texi (-fsemantic-interposition): Document.
1499 * common.opt (fsemantic-interposition): New flag.
1500 * varasm.c (decl_replaceable_p): Use it.
1502 2014-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1505 * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
1506 extraction other than index 3.
1508 2014-06-26 Teresa Johnson <tejohnson@google.com>
1510 * doc/invoke.texi: Fix typo.
1511 * dumpfile.c: Add support for documented -fdump-* options
1512 optimized/missed/note/optall.
1514 2014-06-26 Martin Jambor <mjambor@suse.cz>
1516 * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
1517 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
1518 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
1519 (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
1520 * opts.c (default_options_optimization): Set
1521 PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
1522 * doc/invoke.texi (allow-load-data-races)
1523 (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
1524 (allow-store-data-races): Document the new default.
1526 2014-06-26 Martin Jambor <mjambor@suse.cz>
1528 * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
1529 renamed to ipa_impossible_devirt_target. Fix typo.
1530 * ipa-prop.h (ipa_impossible_devirt_target): Declare.
1531 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
1532 ipa_impossible_devirt_target.
1534 2014-06-26 Richard Biener <rguenther@suse.de>
1536 PR tree-optimization/61607
1537 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
1538 explaining why we restrict copies on loop depth.
1539 * tree-ssa-dom.c (cprop_operand): Remove restriction on
1541 (record_equivalences_from_phis): Instead add it here.
1543 2014-06-26 Bernd Schmidt <bernds@codesourcery.com>
1545 * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
1546 (LTO_WRAPPER_OBJS): New variable.
1547 (lto-wrapper$(exeext)): Use it.
1548 * collect2.c: Include "collect-utils.h".
1549 (verbose, debug): Remove variables.
1550 (at_file_supplied): No longer static.
1551 (tool_name): New variable.
1552 (do_wait, fork_execute, maybe_unlink): Don't declare.
1553 (tool_cleanup): No longer static.
1554 (notice): Remove function.
1555 (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
1557 (collect_wait, do_wait, collect_execute): Remove functions.
1558 (maybe_unlink): No longer static.
1559 * collect2.h (verbose, debug): Don't declare.
1560 (at_file_supplied): Declare.
1561 * collect-utils.c (utils_cleanup): New arg from_signal. All callers
1563 (collect_execute): Replace with implementation from collect2, plus a
1564 new arg use_atfile. All callers changed.
1565 (collect_wait): Replace with implementation from collect2.
1566 (maybe_unlink_file): Remove function.
1567 (fork_execute): Replace with implementation from collect2, plus a
1568 new arg use_atfile. All callers changed.
1569 (do_wait): Add call to utils_cleanup to the error path.
1570 * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
1571 (tool_cleanup): Adjust declarations.
1572 * lto-wrapper.c (tool_cleanup): Add unused bool argument.
1573 * tlink.c: Include "collect-utils.h".
1574 (tlink_execute): New arg use_atfile. All callers changed.
1575 (tlink_init, tlink_execute): Remove declarations.
1577 * collect-utils.c (save_temps): New variable.
1578 (do_wait): Use it instead of debug. Use fatal_error.
1579 * collect-utils.h (save_temps): Declare.
1580 * collect2.c (verbose): Rename from vflag. All uses changed.
1581 (tool_cleanup): New function, copied from collect_atexit.
1582 (collect_atexit, handler): Just call it.
1583 * collect2.h (verbose): Declaration renamed from vflag.
1584 * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
1587 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
1588 (lto-wrapper$(exeext)): Link with collect-utils.o.
1589 * collect-utils.c: New file.
1590 * collect-utils.h: New file.
1591 * lto-wrapper.c: Include "collect-utils.h".
1592 (args_name): Delete variable.
1593 (tool_name): New variable.
1594 (tool_cleanup): New function.
1595 (maybe_unlink): Renamed from maybe_unlink_file. All callers changed.
1596 (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
1597 (fork_execute): Remove functions.
1599 2014-06-26 Nick Clifton <nickc@redhat.com>
1601 * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
1603 * doc/extend.texi (Function Attributes): Fix typo in description
1604 of RX vector attribute.
1606 2014-06-26 James Greenhalgh <james.greenhalgh@arm.com>
1608 * config.gcc (supported_defaults): Error when passing either
1609 --with-tune or --with-arch in conjunction with --with-cpu for ARM.
1611 2014-06-26 Richard Biener <rguenther@suse.de>
1613 * tree-ssa-dom.c (cprop_operand): Remove restriction on
1614 propagating volatile pointers.
1616 2014-06-26 Richard Biener <rguenther@suse.de>
1618 PR tree-optimization/61607
1619 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
1620 loop if we redirected its latch edge.
1621 (thread_block_1): Do not cancel loops prematurely.
1623 2014-06-25 Jan Hubicka <hubicka@ucw.cz>
1625 * toplev.c (backend_init_target): Move init_emit_regs and
1627 (backend_init) ... here; skip ira_init_once and backend_init_target.
1628 (target_reinit) ... and here; clear
1629 this_target_rtl->lang_dependent_initialized.
1630 (lang_dependent_init_target): Clear
1631 this_target_rtl->lang_dependent_initialized;
1632 break out rtl initialization to ...
1633 (initialize_rtl): ... here; call also backend_init_target
1635 * toplev.h (initialize_rtl): New function.
1636 * function.c: Include toplev.h
1637 (init_function_start): Call initialize_rtl.
1638 * rtl.h (target_rtl): Add target_specific_initialized,
1639 lang_dependent_initialized.
1641 2014-06-25 Paul Gortmaker <paul.gortmaker@windriver.com>
1642 Jakub Jelinek <jakub@redhat.com>
1644 * gcc.c (set_multilib_dir): Malloc "." pointer as well.
1646 2014-06-25 Tom de Vries <tom@codesourcery.com>
1648 * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
1650 2014-06-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
1652 * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
1653 check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
1654 Issue a strict overflow warning if appropriate.
1656 2014-06-25 Martin Liska <mliska@suse.cz>
1659 * Makefile.in: Removed header file (ipa-ref-inline.h).
1660 * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
1662 (cgraph_speculative_call_info): Likewise.
1663 (cgraph_for_node_thunks_and_aliases): Likewise.
1664 (cgraph_for_node_and_aliases): Likewise.
1665 (verify_cgraph_node): Likewise.
1666 * cgraph.h: Batch of IPA REF functions become member functions of
1667 symtab_node: add_reference, maybe_add_reference, clone_references,
1668 clone_referring, clone_reference, find_reference,
1669 remove_stmt_references, remove_all_references,
1670 remove_all_referring, dump_references, dump_referring,
1671 has_alias_p, iterate_reference, iterate_referring.
1672 * cgraphbuild.c (record_reference): New IPA REF function used.
1673 (record_type_list): Likewise.
1674 (record_eh_tables): Likewise.
1675 (mark_address): Likewise.
1676 (mark_load): Likewise.
1677 (mark_store): Likewise.
1678 (pass_build_cgraph_edges): Likewise.
1679 (rebuild_cgraph_edge): Likewise.
1680 (cgraph_rebuild_references): Likewise.
1681 (pass_remove_cgraph_callee_edges): Likewise.
1682 * cgraphclones.c (cgraph_clone_node): Likewise.
1683 (cgraph_create_virtual_clone): Likewise.
1684 (cgraph_materialize_clone): Likewise.
1685 (cgraph_materialize_all_clones): Likewise.
1686 * cgraphunit.c (cgraph_reset_node): Likewise.
1687 (cgraph_reset_node): Likewise.
1688 (analyze_function): Likewise.
1689 (assemble_thunks_and_aliases): Likewise.
1690 (expand_function): Likewise.
1691 * ipa-comdats.c (propagate_comdat_group): Likewise.
1692 (enqueue_references): Likewise.
1693 * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
1694 (create_specialized_node): Likewise.
1695 * ipa-devirt.c (referenced_from_vtable_p): Likewise.
1696 * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
1697 * ipa-inline.c (reset_edge_caches): Likewise.
1698 (update_caller_keys): Likewise.
1699 (execute): Likewise.
1700 * ipa-prop.c (remove_described_reference): Likewise.
1701 (propagate_controlled_uses): Likewise.
1702 (ipa_edge_duplication_hook): Likewise.
1703 (ipa_modify_call_arguments): Likewise.
1704 * ipa-pure-const.c (propagate_pure_const): Likewise.
1705 * ipa-ref-inline.h: Header file removed, functions moved
1706 to symtab_node class.
1707 * ipa-ref.c (remove_reference): New class member function.
1708 (cannot_lead_to_return): New class member function.
1709 (referring_ref_list): Likewise.
1710 (referred_ref_list): Likewise.
1711 Rest of functions moved to symtab_node class.
1712 * ipa-ref.h: New member functions remove_reference,
1713 cannot_lead_to_return, referring_ref_list, referred_ref_list added
1715 ipa_ref_list class has new member functions: first_reference,
1716 first_referring, clear, nreferences.
1717 * ipa-reference.c (analyze_function): New IPA REF function used.
1718 (write_node_summary_p): Likewise.
1719 (ipa_reference_write_optimization_summary): Likewise.
1720 * ipa-split.c (split_function): Likewise.
1721 * ipa-utils.c (ipa_reverse_postorder): Likewise.
1722 * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
1723 (function_and_variable_visibility): Likewise.
1724 * ipa.c (has_addr_references_p): Likewise.
1725 (process_references): Argument type changed.
1726 (symtab_remove_unreachable_nodes): New IPA REF function used.
1727 (process_references): Likewise.
1728 (set_writeonly_bit): Likewise.
1729 * lto-cgraph.c: Implementation of new symtab_node member functions
1730 that uses new IPA REF functions.
1731 * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
1733 * lto-streamer-out.c (output_symbol_p): Likewise.
1734 * lto-streamer.h (referenced_from_this_partition_p): Argument type
1736 * symtab.c: Implementation of new IPA REF API.
1737 * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
1738 (ipa_tm_create_version): Likewise.
1739 (ipa_tm_execute): Likewise.
1740 * tree-emutls.c (gen_emutls_addr): Likewise.
1741 * tree-inline.c (copy_bb): Likewise.
1742 (delete_unreachable_blocks_update_callgraph): Likewise.
1743 * varpool.c (varpool_remove_unreferenced_decls): Likewise.
1744 (varpool_for_node_and_aliases): Likewise.
1746 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
1748 * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
1750 2014-06-25 Trevor Saunders <tsaunders@mozilla.com>
1753 * fold-const.c (fold_checksum_tree): Use a hash_table of const
1754 tree_node * instead of tree_node *.
1756 (print_fold_checksum): Likewise.
1757 (fold_check_failed): Likewise.
1758 (debug_fold_checksum): Likewise.
1759 (fold_build1_stat_loc): Likewise.
1760 (fold_build2_stat_loc): Likewise.
1761 (fold_build3_stat_loc): Likewise.
1762 (fold_build_call_array_loc): Likewise.
1764 2014-06-25 David Edelsohn <dje.gcc@gmail.com>
1766 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
1767 implementation with call to...
1768 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
1770 * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
1773 2014-06-25 Marc Glisse <marc.glisse@inria.fr>
1775 PR tree-optimization/57742
1776 * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
1777 after replacing the statement.
1779 2014-06-25 Nick Clifton <nickc@redhat.com>
1781 * config/v850/v850.c (GHS_default_section_names): Change to const
1783 (GHS_current_section_names): Likewise.
1784 (v850_insert_attributes): Do not build strings, just assign the
1785 names directly. Change the type of 'chosen_section' to const
1787 * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
1788 directly to the array entry.
1789 * config/v850/v850.h (GHS_default_section_names): Change to const
1791 (GHS_current_section_names): Likewise.
1793 2014-06-25 Jakub Jelinek <jakub@redhat.com>
1795 * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
1796 (LANG_HOOKS_DECLS): Add it.
1797 * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
1799 * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
1800 * langhooks.h (struct lang_hooks_for_decls): Add
1801 omp_clause_linear_ctor hook.
1802 * omp-low.c (lower_rec_input_clauses): Set max_vf even if
1803 OMP_CLAUSE_LINEAR_ARRAY is set. Don't fold_convert
1804 OMP_CLAUSE_LINEAR_STEP. For OMP_CLAUSE_LINEAR_ARRAY in
1805 combined simd loop use omp_clause_linear_ctor hook.
1807 2014-06-24 Cong Hou <congh@google.com>
1809 * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
1810 pattern recognition.
1811 (type_conversion_p): PROMOTION is true if it's a type promotion
1812 conversion, and false otherwise. Return true if the given expression
1813 is a type conversion one.
1814 * tree-vectorizer.h: Adjust the number of patterns.
1815 * tree.def: Add SAD_EXPR.
1816 * optabs.def: Add sad_optab.
1817 * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
1818 * expr.c (expand_expr_real_2): Likewise.
1819 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1820 * gimple.c (get_gimple_rhs_num_ops): Likewise.
1821 * optabs.c (optab_for_tree_code): Likewise.
1822 * tree-cfg.c (estimate_operator_cost): Likewise.
1823 * tree-ssa-operands.c (get_expr_operands): Likewise.
1824 * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
1825 * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
1826 * doc/generic.texi: Add document for SAD_EXPR.
1827 * doc/md.texi: Add document for ssad and usad.
1829 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1831 * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
1832 qualification in cast.
1834 2014-06-24 Jan Hubicka <hubicka@ucw.cz>
1836 * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
1837 * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
1838 * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
1839 (tree_function_decl): ... here.
1840 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
1841 streaming of vindex to ...
1842 (write_ts_function_decl_tree_pointers): ... here.
1843 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
1844 Do not stream DECL_VINDEX.
1845 (lto_input_ts_function_decl_tree_pointers): Stream it here.
1847 2014-06-24 Catherine Moore <clm@codesourcery.com>
1848 Sandra Loosemore <sandra@codesourcery.com>
1850 * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
1851 * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
1852 * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
1854 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
1856 * doc/invoke.texi (Warning Options): Remove duplicated
1857 -Wmaybe-uninitialized.
1859 2014-06-24 Marc Glisse <marc.glisse@inria.fr>
1861 PR tree-optimization/57742
1862 * tree-ssa-strlen.c (get_string_length): Ignore malloc.
1863 (handle_builtin_malloc, handle_builtin_memset): New functions.
1864 (strlen_optimize_stmt): Call them.
1865 * passes.def: Move strlen after loop+dom but before vrp.
1867 2014-06-24 Jakub Jelinek <jakub@redhat.com>
1870 * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
1871 model family 6 CPU with has_longmode never use a CPU without
1874 2014-06-24 H.J. Lu <hongjiu.lu@intel.com>
1877 * config/i386/driver-i386.c (host_detect_local_cpu): Revert
1880 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1882 * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
1883 * dominance.c (iterate_fix_dominators): Use hash_map instead of
1885 * hash-map.h: New file.
1886 * ipa-comdats.c: Use hash_map instead of pointer_map.
1888 * lto-section-out.c: Adjust.
1889 * lto-streamer.h: Replace pointer_map with hash_map.
1890 * symtab.c (verify_symtab): Likewise.
1891 * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
1892 * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
1893 * tree-streamer.h: Likewise.
1894 * tree-streamer.c: Adjust.
1895 * pointer-set.h: Remove pointer_map.
1897 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1899 * hash-table.h: Add a template arg to choose between storing values
1900 and storing pointers to values, and then provide partial
1901 specializations for both.
1902 * tree-browser.c (tree_upper_hasher): Provide the type the hash table
1903 should store, not the type values should point to.
1904 * tree-into-ssa.c (var_info_hasher): Likewise.
1905 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
1906 * tree-complex.c: Adjust.
1907 * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
1908 table instead of int_tree_map *.
1909 * tree-parloops.c: Adjust.
1910 * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
1911 type is being stored.
1912 * tree-vectorizer.c: Adjust.
1914 2014-06-24 Trevor Saunders <tsaunders@mozilla.com>
1916 * hash-table.h: Remove a layer of indirection from hash_table so that
1917 it contains the hash table's data instead of a pointer to the data.
1918 * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
1919 config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
1920 config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
1921 data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
1922 fold-const.c, gcse.c, ggc-common.c,
1923 gimple-ssa-strength-reduction.c, gimplify.c,
1924 graphite-clast-to-gimple.c, graphite-dependences.c,
1925 graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
1926 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
1927 loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
1928 lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
1929 postreload-gcse.c, sese.c, statistics.c, store-motion.c,
1930 trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
1931 tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
1932 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
1933 tree-ssa-live.c, tree-ssa-loop-im.c,
1934 tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1935 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
1936 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
1937 tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
1938 tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
1939 tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
1940 vtable-verify.c, vtable-verify.h: Adjust.
1942 2014-06-24 Richard Biener <rguenther@suse.de>
1944 PR tree-optimization/61572
1945 * tree-ssa-sink.c (statement_sink_location): Do not sink
1946 loads from hard registers.
1948 2014-06-24 Jakub Jelinek <jakub@redhat.com>
1950 * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
1951 not mentioned in clauses use private clause if the iterator is
1952 declared in #pragma omp for simd, and when adding lastprivate
1953 instead, add it to the outer #pragma omp for too. Diagnose
1954 if the variable is private in outer context. For simd collapse > 1
1955 loops, replace all iterators with temporaries.
1956 * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
1957 same even in collapse > 1 loops.
1959 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
1960 OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
1962 <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
1963 (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
1965 (gimplify_adjust_omp_clauses): Likewise.
1966 * omp-low.c (lower_rec_simd_input_clauses,
1967 lower_rec_input_clauses, expand_omp_simd): Handle non-constant
1968 safelen the same as safelen(1).
1969 * tree-nested.c (convert_nonlocal_omp_clauses,
1970 convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED. For
1971 OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
1972 (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
1973 Fixup handling of GIMPLE_OMP_TARGET.
1974 (convert_tramp_reference_stmt, convert_gimple_call): Handle
1977 2014-06-24 Chung-Lin Tang <cltang@codesourcery.com>
1979 PR tree-optimization/61554
1980 * tree-ssa-propagate.c: Include "bitmap.h".
1981 (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
1982 properly update constructor/destructor.
1983 (substitute_and_fold_dom_walker::before_dom_children):
1984 Remove call to gimple_purge_dead_eh_edges, add bb->index to
1985 need_eh_cleaup instead.
1986 (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
1989 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
1991 * varpool.c (dump_varpool_node): Dump used_by_single_function.
1992 * tree-pass.h (make_pass_ipa_single_use): New pass.
1993 * cgraph.h (used_by_single_function): New flag.
1994 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
1996 * passes.def (pass_ipa_single_use): Scedule.
1997 * ipa.c (BOTTOM): New macro.
1998 (meet): New function
1999 (propagate_single_user): New function.
2000 (ipa_single_use): New function.
2001 (pass_data_ipa_single_use): New pass.
2002 (pass_ipa_single_use): New pass.
2003 (pass_ipa_single_use::gate): New gate.
2004 (make_pass_ipa_single_use): New function.
2006 2014-06-23 Kai Tietz <ktietz@redhat.com>
2009 * passes.def (peephole2): Move peephole2 pass before sched2 pass.
2010 * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
2012 2014-06-23 Richard Biener <rguenther@suse.de>
2014 * tree-ssa-loop.c (gate_loop): New function.
2015 (pass_tree_loop::gate): Call it.
2016 (pass_data_tree_no_loop, pass_tree_no_loop,
2017 make_pass_tree_no_loop): New.
2018 * tree-vectorizer.c: Include tree-scalar-evolution.c
2019 (pass_slp_vectorize::execute): Initialize loops and SCEV if
2021 (pass_slp_vectorize::clone): New method.
2022 * timevar.def (TV_TREE_NOLOOP): New.
2023 * tree-pass.h (make_pass_tree_no_loop): Declare.
2024 * passes.def (pass_tree_no_loop): New pass group with
2027 2014-06-23 H.J. Lu <hongjiu.lu@intel.com>
2030 * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
2031 to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
2033 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
2035 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
2038 2014-06-23 Alan Modra <amodra@gmail.com>
2041 * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
2042 to zero on debug statements.
2044 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
2047 * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
2048 Ignore third operand if present by marking qualifier_internal.
2050 * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
2052 * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
2054 (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
2055 arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
2056 (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
2057 vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
2058 vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
2059 vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
2060 vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
2061 vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
2062 vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
2063 vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
2064 vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
2065 vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
2066 vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
2067 vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
2068 vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
2069 vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
2070 logic in GCC vector extensions
2072 (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
2073 vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
2074 vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
2075 vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
2076 vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
2077 vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
2078 vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
2079 vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
2080 vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
2081 vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
2083 (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
2085 (vget_high_s64, vget_high_u64): Reimplement with GCC vector
2088 (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
2089 (vget_low_s64): Use __GET_LOW macro.
2090 (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
2091 gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
2092 (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
2093 (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
2094 __builtin_aarch64_lane_boundsi, use GCC vector extensions.
2096 (vcombine_s64): Use GCC vector extensions; remove cast.
2097 (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
2098 vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
2099 vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
2100 Fix type signature; remove cast.
2102 2014-06-23 Alan Lawrence <alan.lawrence@arm.com>
2105 * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
2107 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
2110 (BUILTIN_VD_RE): Remove.
2111 (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
2112 (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
2113 * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
2115 (vreinterpretv1df*, vreinterpret*v1df): New.
2116 (vreinterpretdf*, vreinterpret*df): Remove.
2117 * config/aarch64/aarch64-simd.md (aarch64_create,
2118 aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
2119 * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
2121 * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
2122 (vcreate_f64): Remove cast, use v1df builtin.
2123 (vcombine_f64): Remove cast, get elements with gcc vector extensions.
2124 (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
2125 vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
2126 vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
2127 vmov_n_f64, vst1_f64): Use gcc vector extensions.
2128 (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
2129 add range check using __builtin_aarch64_im_lane_boundsi.
2130 (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
2131 vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
2132 type signature, use gcc vector extensions.
2133 (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
2134 vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
2135 vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
2136 vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
2137 vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
2138 vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
2139 vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
2140 vreinterpret_u64_f64): Use v1df builtin not df.
2142 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
2144 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
2147 2014-06-23 Jan Hubicka <hubicka@ucw.cz>
2149 * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
2152 2014-06-23 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2154 * loop-invariant.c (pre_check_invariant_p): New function.
2155 (find_invariant_insn): Call pre_check_invariant_p.
2157 2014-06-22 Richard Henderson <rth@redhat.com>
2160 * compare-elim.c (struct comparison): Add eh_note.
2161 (find_comparison_dom_walker::before_dom_children): Don't eliminate
2162 a redundant comparison in a different EH region. Purge EH edges if
2165 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2167 * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
2168 (var_shift): Use it.
2169 (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
2170 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
2171 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
2172 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
2173 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
2174 *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
2175 *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
2176 *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
2177 *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
2178 *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
2179 *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
2180 *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
2181 *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
2182 *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
2183 *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
2184 *rotldi3_internal15be): Use the new attribute. Merge register and
2185 integer alternatives.
2187 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2189 * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
2190 define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
2191 split, *ashrdi3_internal3 and split): Delete, merge into...
2192 (ashr<mode>3): New expander.
2193 (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
2194 (*ashrsi3_64): Fix formatting. Replace "i" by "n".
2196 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2198 * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
2199 *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
2200 *rotldi3_internal3 and split): Delete, merge into...
2201 (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
2202 (*rotlsi3_64): Fix formatting. Fix condition. Replace "i" by "n".
2203 Use "rotlw" extended mnemonic.
2205 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2207 * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
2208 and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
2209 and split, *ashldi3_internal3 and split): Delete, merge into...
2210 (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
2211 (*ashlsi3_64): Fix formatting. Replace "i" by "n".
2213 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2215 * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
2216 (lshrsi3, two anonymous define_insns and define_splits,
2217 lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
2218 *lshrdi3_internal3 and split): Delete, merge into...
2219 (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
2220 (*lshrsi3_64): Fix formatting. Replace "i" by "n".
2222 2014-06-22 Segher Boessenkool <segher@kernel.crashing.org>
2224 * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
2225 Remove "O" alternative.
2227 2014-06-22 Richard Sandiford <rdsandiford@googlemail.com>
2229 * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
2230 (mips_move_from_gpr_cost): Likewise.
2231 (mips_register_move_cost): Update accordingly.
2232 (mips_secondary_reload_class): Remove name of in_p.
2234 2014-06-22 Marc Glisse <marc.glisse@inria.fr>
2237 * config/i386/i386.md (x86_64_shrd, x86_shrd,
2238 ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
2240 2014-06-21 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2242 * config/nios2/nios2.c: Include "builtins.h".
2244 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
2246 * cgraph.h (tls_model_names): New variable.
2247 * print-tree.c (print_node): Simplify.
2248 * varpool.c (tls_model_names): New variable.
2249 (dump_varpool_node): Output tls model.
2251 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
2253 * ipa-visibility.c (function_and_variable_visibility): Disable
2254 temporarily local aliases for some targets.
2256 2014-06-20 Marek Polacek <polacek@redhat.com>
2258 * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
2259 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
2260 into SANITIZE_UNDEFINED.
2261 * doc/invoke.texi: Describe -fsanitize=bounds.
2262 * gimplify.c (gimplify_call_expr): Add gimplification of internal
2263 functions created in the FEs.
2264 * internal-fn.c: Move "internal-fn.h" after "tree.h".
2265 (expand_UBSAN_BOUNDS): New function.
2266 * internal-fn.def (UBSAN_BOUNDS): New internal function.
2267 * internal-fn.h: Don't define internal functions here.
2268 * opts.c (common_handle_option): Add -fsanitize=bounds.
2269 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
2270 BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
2271 * tree-core.h: Define internal functions here.
2272 (struct tree_base): Add ifn field.
2273 * tree-pretty-print.c: Include "internal-fn.h".
2274 (dump_generic_node): Handle functions without CALL_EXPR_FN.
2275 * tree.c (get_callee_fndecl): Likewise.
2276 (build_call_expr_internal_loc): New function.
2277 * tree.def (CALL_EXPR): Update description.
2278 * tree.h (CALL_EXPR_IFN): Define.
2279 (build_call_expr_internal_loc): Declare.
2280 * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
2282 (ubsan_type_descriptor): Change bool parameter to enum
2283 ubsan_print_style. Adjust the code. Add handling of
2285 (ubsan_expand_bounds_ifn): New function.
2286 (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
2287 (ubsan_build_overflow_builtin): Likewise.
2288 (instrument_bool_enum_load): Likewise.
2289 (ubsan_instrument_float_cast): Likewise.
2290 * ubsan.h (enum ubsan_print_style): New enum.
2291 (ubsan_expand_bounds_ifn): Declare.
2292 (ubsan_type_descriptor): Adjust declaration. Use a default parameter.
2294 2014-06-20 Maciej W. Rozycki <macro@codesourcery.com>
2296 * config/rs6000/rs6000.md: Append `DONE' to preparation
2297 statements of `bswap' pattern splitters.
2299 2014-06-20 Tom de Vries <tom@codesourcery.com>
2301 * target.def (call_fusage_contains_non_callee_clobbers): Update
2303 * doc/tm.texi: Regenerate.
2305 2014-06-20 Yury Gribov <y.gribov@samsung.com>
2306 Max Ostapenko <m.ostapenko@partner.samsung.com>
2309 * asan.c (instrument_strlen_call): Fixed instrumentation of
2312 2014-06-20 Martin Jambor <mjambor@suse.cz>
2315 * ipa-prop.c (impossible_devirt_target): New function.
2316 (try_make_edge_direct_virtual_call): Use it, also instead of
2319 2014-06-20 Yury Gribov <y.gribov@samsung.com>
2320 Max Ostapenko <m.ostapenko@partner.samsung.com>
2323 * asan.c (build_check_stmt): Add condition.
2325 2014-06-20 Martin Jambor <mjambor@suse.cz>
2328 * cgraph.c (clone_of_p): Allow skipped_branch to deal with
2331 2014-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2333 * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
2335 (VCONQ): Make comment more helpful.
2337 * config/aarch64/aarch64-simd.md
2338 (aarch64_sqdmulh_lane<mode>):
2339 Use VCOND for operands 2. Update lane checking and flipping logic.
2340 (aarch64_sqrdmulh_lane<mode>): Likewise.
2341 (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
2342 (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
2343 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
2344 attribute of operand 3 to VCOND.
2345 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
2346 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
2347 (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
2348 (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
2349 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
2350 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
2352 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
2353 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
2354 (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
2355 (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
2356 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
2357 (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
2358 operand to VCOND. Update lane flipping and bounds checking logic.
2359 (aarch64_sqdmlal2_lane<mode>): Likewise.
2360 (aarch64_sqdmlsl_lane<mode>): Likewise.
2361 (aarch64_sqdmull_lane<mode>): Likewise.
2362 (aarch64_sqdmull2_lane<mode>): Likewise.
2363 (aarch64_sqdmlal_laneq<mode>):
2364 Replace VCON usage with VCONQ.
2365 Emit aarch64_sqdmlal_laneq<mode>_internal insn.
2366 (aarch64_sqdmlal2_laneq<mode>): Emit
2367 aarch64_sqdmlal2_laneq<mode>_internal insn.
2368 Replace VCON with VCONQ.
2369 (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
2370 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2371 (aarch64_sqdmull_laneq<mode>): Emit
2372 aarch64_sqdmull_laneq<mode>_internal insn.
2373 Replace VCON with VCONQ.
2374 (aarch64_sqdmull2_laneq<mode>): Emit
2375 aarch64_sqdmull2_laneq<mode>_internal insn.
2376 (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
2377 * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
2378 of 3rd argument to int16x4_t.
2379 (vqdmlalh_lane_s16): Likewise.
2380 (vqdmlslh_lane_s16): Likewise.
2381 (vqdmull_high_lane_s16): Likewise.
2382 (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
2383 (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
2384 (vqdmlsl_lane_s16): Likewise.
2385 (vqdmull_lane_s16): Don't create temporary int16x8_t value.
2386 (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
2387 (vqdmlals_lane_s32): Likewise.
2388 (vqdmlsls_lane_s32): Likewise.
2389 (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
2390 (vqdmulls_lane_s32): Likewise.
2391 (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
2392 (vqdmlsl_lane_s32): Likewise.
2393 (vqdmull_lane_s32): Don't create temporary int32x4_t value.
2394 (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
2395 (vqrdmulhh_lane_s16): Likewise.
2396 (vqdmlsl_high_lane_s16): Likewise.
2397 (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
2398 (vqdmlsl_high_lane_s32): Likewise.
2399 (vqrdmulhs_lane_s32): Likewise.
2401 2014-06-20 Tom de Vries <tom@codesourcery.com>
2403 * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
2404 get_call_reg_set_usage.
2406 2014-06-20 Tom de Vries <tom@codesourcery.com>
2408 * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
2409 it contains all call_used_regs.
2411 2014-06-20 Tom de Vries <tom@codesourcery.com>
2413 * final.c (collect_fn_hard_reg_usage): Add and use variable
2416 2014-06-20 Jan Hubicka <hubicka@ucw.cz>
2418 * cgraph.h (struct symtab_node): Add field in_init_priority_hash
2419 (set_init_priority, get_init_priority, set_fini_priority,
2420 get_fini_priority): New methods.
2421 * tree.c (init_priority_for_decl): Remove.
2422 (init_ttree): Do not initialize init priority.
2423 (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
2424 (decl_priority_info): Remove.
2425 (decl_init_priority_insert): Rewrite.
2426 (decl_fini_priority_insert): Rewrite.
2427 * tree.h (tree_priority_map_eq, tree_priority_map_hash,
2428 tree_priority_map_marked_p): Remove.
2429 * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
2430 * lto-streamer-out.c (hash_tree): Do not hash priorities.
2431 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
2432 not output priorities.
2433 (pack_ts_function_decl_value_fields): Likewise.
2434 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
2435 not input priorities.
2436 (unpack_ts_function_decl_value_fields): Likewise.
2437 * symtab.c (symbol_priority_map): Declare.
2438 (init_priority_hash): Declare.
2439 (symtab_unregister_node): Unregister from priority hash, too.
2440 (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
2442 (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
2443 (symbol_priority_info): New function.
2444 (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
2446 * tree-core.h (tree_priority_map): Remove.
2448 2014-06-20 Jakub Jelinek <jakub@redhat.com>
2450 * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
2451 0xff to uint64_t before shifting it up.
2453 2014-06-20 Julian Brown <julian@codesourcery.com>
2454 Chung-Lin Tang <cltang@codesourcery.com>
2456 * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
2457 TARGET_THUMB1_ONLY. Add comments.
2459 2014-06-19 Tom de Vries <tom@codesourcery.com>
2461 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
2462 return type to void.
2463 * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
2465 2014-06-19 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2467 * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
2468 as "move", from depends_on.
2470 2014-06-19 Terry Guo <terry.guo@arm.com>
2472 * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
2475 2014-06-18 Segher Boessenkool <segher@kernel.crashing.org>
2477 * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
2479 (REG_ALLOC_ORDER): Update comment. Move cr5 earlier.
2481 2014-06-18 Kaz Kojima <kkojima@gcc.gnu.org>
2484 * config/sh/sh.c (prepare_move_operands): Don't process TLS
2485 addresses here if reload in progress or completed.
2487 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
2489 * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
2490 "TARGET_MIPS16 ? M16_REGS : GR_REGS".
2491 * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
2492 (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
2493 (mips_register_priority): New function that implements the target
2494 hook TARGET_REGISTER_PRIORITY.
2495 (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
2496 (mips_lra_p): Likewise for TARGET_LRA_P.
2497 (TARGET_REGISTER_PRIORITY): Define macro.
2498 (TARGET_SPILL_CLASS): Likewise.
2499 (TARGET_LRA_P): Likewise.
2500 * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
2502 (REG_CLASS_NAMES): Likewise.
2503 (REG_CLASS_CONTENTS): Likewise.
2504 (BASE_REG_CLASS): Use M16_SP_REGS.
2505 * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
2506 New set attribute to enable alternatives depending on the register
2508 (*mul_acc_si_r3900, *mul_sub_si): Likewise.
2509 (*lea64): Disable pattern for MIPS16.
2510 * config/mips/mips.opt (mlra): New option.
2512 2014-06-18 Robert Suchanek <robert.suchanek@imgtec.com>
2514 * lra-constraints.c (base_to_reg): New function.
2515 (process_address): Use new function.
2517 2014-06-18 Tom de Vries <tom@codesourcery.com>
2519 * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
2520 * config/aarch64/aarch64.c
2521 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
2522 (aarch64_emit_call_insn): New function.
2523 (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
2525 * config/aarch64/aarch64.md (define_expand "call_internal")
2526 (define_expand "call_value_internal", define_expand "sibcall_internal")
2527 (define_expand "sibcall_value_internal"): New.
2528 (define_expand "call", define_expand "call_value")
2529 (define_expand "sibcall", define_expand "sibcall_value"): Use internal
2530 expand variant and aarch64_emit_call_insn.
2532 2014-06-18 Radovan Obradovic <robradovic@mips.com>
2533 Tom de Vries <tom@codesourcery.com>
2535 * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
2536 * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
2538 (arm_emit_call_insn): Add and use sibcall parameter. Add IP and CC
2539 clobbers to CALL_INSN_FUNCTION_USAGE.
2540 (define_expand "sibcall_internal")
2541 (define_expand "sibcall_value_internal"): New.
2542 (define_expand "call", define_expand "call_value"): Add argument to
2544 (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
2545 (define_expand "sibcall_value"): Use sibcall_value_internal and
2548 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2550 * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
2552 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2554 * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
2557 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2559 * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
2560 push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
2561 annotations. Fix DWARF information.
2563 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2565 * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
2566 __udivmoddi4, and fixups for negative operands.
2568 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2570 * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
2572 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2574 * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
2577 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2579 * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
2582 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2584 * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
2585 describing register usage on function entry and exit.
2587 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2589 * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
2590 (__aeabi_ldivmod): Fix whitespace.
2592 2014-06-18 Andreas Schwab <schwab@suse.de>
2594 * doc/md.texi (Standard Names): Use @itemx for grouped items.
2595 Remove blank line after @item.
2597 2014-06-18 Richard Henderson <rth@redhat.com>
2600 * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
2602 2014-06-18 Charles Baylis <charles.baylis@linaro.org>
2604 * config/arm/arm.c (neon_vector_mem_operand): Allow register
2605 POST_MODIFY for neon loads and stores.
2606 (arm_print_operand): Output post-index register for neon loads and
2609 2014-06-18 Richard Biener <rguenther@suse.de>
2611 * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
2613 2014-06-18 Richard Biener <rguenther@suse.de>
2615 * tree-pass.h (make_pass_dce_loop): Remove.
2616 * passes.def: Replace pass_dce_loop with pass_dce.
2617 * tree-ssa-dce.c (perform_tree_ssa_dce): If something
2618 changed free niter estimates and reset the scev cache.
2619 (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
2620 make_pass_dce_loop): Remove.
2621 * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
2622 (fini_copy_prop): Return whether something changed. Always
2623 let substitute_and_fold perform DCE and free niter estimates
2624 and reset the scev cache if so.
2625 (execute_copy_prop): If sth changed schedule cleanup-cfg.
2626 (pass_data_copy_prop): Do not unconditionally schedule
2627 cleanup-cfg or update-ssa.
2629 2014-06-18 Yuri Rumyantsev <ysrumyan@gmail.com>
2631 PR tree-optimization/61518
2632 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
2633 reduction var is used in reduction stmt or phi-function only.
2635 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2637 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
2639 2014-06-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
2641 PR tree-optimization/61517
2642 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
2643 whose rhs's first tree is the source expression instead of the
2645 (find_bswap_or_nop): Likewise.
2646 (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
2647 gimple stmt whose rhs's first tree is the source. In the memory source
2648 case, move the stmt to be replaced close to one of the original load to
2649 avoid the problem of a store between the load and the stmt's original
2651 (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
2654 2014-06-18 Andreas Schwab <schwab@suse.de>
2656 PR rtl-optimization/54555
2657 * postreload.c (move2add_use_add2_insn): Substitute
2658 STRICT_LOW_PART only if it is cheaper.
2660 2014-06-18 Uros Bizjak <ubizjak@gmail.com>
2662 * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
2663 Do not use unspec as call operand. Use memory_operand instead of
2664 memory_nox32_operand and add "m" operand constraint. Disable
2665 pattern for TARGET_X32.
2666 (*sibcall_pop_memory): Ditto.
2667 (*sibcall_value_memory): Ditto.
2668 (*sibcall_value_pop_memory): Ditto.
2669 (sibcall peepholes): Merge SImode and DImode patterns using
2670 W mode iterator. Use memory_operand instead of memory_nox32_operand.
2671 Disable pattern for TARGET_X32. Check if eliminated register is
2672 really dead after call insn. Generate call RTX without unspec operand.
2673 (sibcall_value peepholes): Ditto.
2674 (sibcall_pop peepholes): Fix call insn RTXes. Use memory_operand
2675 instead of memory_nox32_operand. Check if eliminated register is
2676 really dead after call insn. Generate call RTX without unspec operand.
2677 (sibcall_value_pop peepholes): Ditto.
2678 * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
2680 2014-06-18 Terry Guo <terry.guo@arm.com>
2683 * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
2686 2014-06-18 Olivier Hainque <hainque@adacore.com>
2688 * tree-core.h (tree_block): Add an "end_locus" field, allowing
2689 memorization of the end of block source location.
2690 * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
2691 * gimplify.c (gimplify_bind_expr): Propagate the block start and
2692 end source location info we have on the block entry/exit code we
2695 2014-06-18 Richard Biener <rguenther@suse.de>
2697 * common.opt (fssa-phiopt): New option.
2698 * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
2700 * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
2701 * doc/invoke.texi (-fssa-phiopt): Document.
2703 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2705 * genattrtab.c (n_bypassed): New variable.
2706 (process_bypasses): Initialise n_bypassed.
2707 Count number of bypassed reservations.
2708 (make_automaton_attrs): Allocate space for bypassed reservations
2709 rather than number of bypasses.
2711 2014-06-18 Richard Biener <rguenther@suse.de>
2713 * tree-ssa-propagate.c (replace_phi_args_in): Return whether
2714 we propagated anything.
2715 (substitute_and_fold_dom_walker::before_dom_children): Something
2716 changed if we propagated into PHI arguments.
2717 * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
2720 2014-06-18 Evgeny Stupachenko <evstupac@gmail.com>
2722 * config/i386/i386.c (ix86_reassociation_width): Add alternative for
2724 * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
2725 * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
2726 * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
2727 Introduces alternative way of loads group permutaions.
2728 (vect_transform_grouped_load): Try alternative way of permutations.
2730 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2732 * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
2733 changed in ORT_TARGET region, don't jump to do_outer.
2734 (struct gimplify_adjust_omp_clauses_data): New type.
2735 (gimplify_adjust_omp_clauses_1): Adjust for data being
2736 a struct gimplify_adjust_omp_clauses_data pointer instead
2737 of tree *. Pass pre_p as a new argument to
2738 lang_hooks.decls.omp_finish_clause hook.
2739 (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
2740 splay_tree_foreach to pass both list_p and pre_p.
2741 (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
2742 gimplify_omp_workshare, gimplify_omp_target_update): Adjust
2743 gimplify_adjust_omp_clauses callers.
2744 * langhooks.c (lhd_omp_finish_clause): New function.
2745 * langhooks-def.h (lhd_omp_finish_clause): New prototype.
2746 (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
2747 * langhooks.h (struct lang_hooks_for_decls): Add a new
2748 gimple_seq * argument to omp_finish_clause hook.
2749 * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
2750 non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
2751 (scan_omp_parallel, lower_omp_for): When adding
2752 _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
2753 * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
2754 * tree-nested.c (convert_nonlocal_omp_clauses,
2755 convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
2756 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
2758 2014-06-17 Andrew MacLeod <amacleod@redhat.com>
2760 * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
2761 * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
2763 2014-06-17 Xinliang David Li <davidxl@google.com>
2765 * tree-pretty-print.c (dump_function_header): Print cgraph uid.
2766 * passes.c (pass_init_dump_file): Do not set initialize
2767 flag to false unconditionally.
2769 2014-06-17 Richard Biener <rguenther@suse.de>
2771 * genopinit.c (main): Use vec<>::qsort method.
2772 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
2774 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
2776 2014-06-17 Matthew Fortune <matthew.fortune@imgtec.com>
2778 * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
2779 * config/mips/mips.c (mips_expand_fcc_reload): Remove.
2780 (mips_move_to_gpr_cost): Remove ST_REGS case.
2781 (mips_move_from_gpr_cost): Likewise.
2782 (mips_register_move_cost): Likewise.
2783 (mips_secondary_reload_class): Likewise.
2785 2014-06-17 Richard Biener <rguenther@suse.de>
2787 * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
2788 (pass_all_optimizations): Move 3rd copy-prop pass from after
2789 fre to before ifcombine/phiopt.
2791 2014-06-17 Richard Biener <rguenther@suse.de>
2793 * tree-switch-conversion.c (collect_switch_conv_info): Simplify
2794 and allow all blocks to be forwarders.
2796 2014-06-17 Yufeng Zhang <yufeng.zhang@arm.com>
2799 * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
2800 variable 'size'; calculate 'size' right in the front; use
2801 'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
2802 pcum->aapcs_stack_words.
2804 2014-06-17 Nick Clifton <nickc@redhat.com>
2806 * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
2807 (umulhi3, mulsidi3, umulsidi3): Likewise.
2809 2014-06-17 Thomas Schwinge <thomas@codesourcery.com>
2812 * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
2813 check for section name.
2815 2014-06-17 Richard Biener <rguenther@suse.de>
2817 * tree-ssa-propagate.c: Include domwalk.h.
2818 (substitute_and_fold): Outline main worker into a domwalker ...
2819 (substitute_and_fold_dom_walker::before_dom_children): ... here.
2820 Schedule stmts we can fully propagate for removal. Remove
2822 (substitute_and_fold): Apply a dominator walk to perform
2823 substitution. Process stmts scheduled for removal here.
2825 2014-06-17 Richard Biener <rguenther@suse.de>
2827 * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
2830 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
2832 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
2833 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
2834 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
2835 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
2836 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
2838 (get_fpscr) : Likewise.
2840 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
2842 PR rtl-optimization/61325
2843 * lra-constraints.c (valid_address_p): Add forward declaration.
2844 (simplify_operand_subreg): Check address validity before and after
2845 alter_reg of memory subreg.
2847 2014-06-16 Uros Bizjak <ubizjak@gmail.com>
2849 * config/i386/i386.c (decide_alg): Correctly handle
2850 maximum size of stringop algorithm.
2852 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2854 * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
2856 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
2858 PR rtl-optimization/61522
2859 * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
2861 2014-06-16 Jan Hubicka <hubicka@ucw.cz>
2864 * symtab.c (symtab_node::reset_section): New method.
2865 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
2867 * cgraph.h (reset_section): Declare.
2868 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
2869 do not consider comdat locals.
2870 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
2872 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
2873 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
2874 reset sections of symbols dragged out of the comdats.
2875 (function_and_variable_visibility): Reset sections of
2878 2014-06-16 Richard Biener <rguenther@suse.de>
2880 PR tree-optimization/61482
2881 * tree-vrp.c (adjust_range_with_scev): Avoid setting of
2882 [-INF(OVF), +INF(OVF)] range.
2884 2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2886 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2887 instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2888 handling 32-bit multiplication.
2890 2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
2893 * lra-lives.c (process_bb_lives): Skip creating copy during
2894 insn scan when src/dest has constrained to same regno.
2896 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
2898 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
2899 DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
2901 2014-06-16 Yury Gribov <y.gribov@samsung.com>
2903 * asan.c (check_func): New function.
2904 (maybe_create_ssa_name): Likewise.
2905 (build_check_stmt_with_calls): Likewise.
2906 (use_calls_p): Likewise.
2907 (report_error_func): Change interface.
2908 (build_check_stmt): Allow non-integer lengths; add support
2910 (asan_instrument): Likewise.
2911 (instrument_mem_region_access): Moved code to build_check_stmt.
2912 (instrument_derefs): Likewise.
2913 (instrument_strlen_call): Likewise.
2914 * cfgcleanup.c (old_insns_match_p): Add support for new functions.
2915 * doc/invoke.texi: Describe new parameter.
2916 * params.def: Define new parameter.
2917 * params.h: Likewise.
2918 * sanitizer.def: Describe new builtins.
2920 2014-06-16 Richard Biener <rguenther@suse.de>
2922 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2923 Make all defs available at the end.
2924 (eliminate): If we remove a PHI node schedule cfg-cleanup.
2926 2014-06-18 Jakub Jelinek <jakub@redhat.com>
2929 * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
2931 2014-06-16 Richard Sandiford <rdsandiford@googlemail.com>
2934 * auto-inc-dec.c (merge_in_block): Fix location of insn_info
2935 initialization. Replace remaining use of uid.
2937 2014-06-15 Jan Hubicka <hubicka@ucw.cz>
2939 * c-family/c-common.c (handle_tls_model_attribute): Use
2941 * c-family/c-common.c (handle_tls_model_attribute): Use
2943 * cgraph.h (struct varpool_node): Add tls_model.
2944 * tree.c (decl_tls_model, set_decl_tls_model): New functions.
2945 * tree.h (DECL_TLS_MODEL): Update.
2946 (DECL_THREAD_LOCAL_P): Check that variable is static.
2947 (decl_tls_model): Declare.
2948 (set_decl_tls_model): Declare.
2949 * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
2950 set symbol prorperties.
2951 (get_emutls_init_templ_addr): Cleanup.
2952 (new_emutls_decl): Update.
2953 * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
2954 (lto_input_varpool_node): Likewise.
2955 * lto-streamer-out.c (hash_tree): Likewise.
2956 * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
2957 not stream DECL_TLS_MODEL.
2958 * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
2959 * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
2961 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
2963 * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
2965 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
2967 * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
2968 (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
2970 (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
2971 (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
2972 (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
2973 (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
2974 (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
2975 (df_get_artificial_defs, df_get_artificial_uses)
2976 (df_single_def, df_single_use): Update accordingly.
2977 (df_refs_chain_dump): Take the first element in a linked list as
2978 parameter, rather than a pointer to an array of pointers.
2979 * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
2980 * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
2981 (df_chain_create_bb_process_use): Likewise.
2982 (df_md_bb_local_compute_process_def): Likewise.
2983 * fwprop.c (process_defs, process_uses): Likewise.
2984 (register_active_defs, update_uses): Likewise.
2985 (forward_propagate_asm): Update for new df_ref linking.
2986 * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
2987 (df_null_ref_rec, df_null_mw_rec): Likewise.
2988 (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
2990 (df_scan_free_bb_info): Remove check for null artificial_defs.
2991 (df_install_ref_incremental): Adjust for new df_ref linking.
2992 Use a single-element insertion rather than a full sort.
2993 (df_ref_chain_delete_du_chain): Take the first element
2994 in a linked list as parameter, rather than a pointer to an array of
2996 (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
2997 (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
2998 (df_insn_info_delete): Remove check for null defs and call to
2999 df_scan_free_mws_vec.
3000 (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
3001 null rather than df_null_*_rec.
3002 (df_insn_rescan_debug_internal): Likewise, and update null
3003 checks in the same way. Remove check for null defs.
3004 (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
3005 Move a single element rather doing a full sort.
3006 (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
3008 (df_notes_rescan): Likewise. Use a merge rather than a full sort.
3009 Initialize df_ref and df_mw_hardreg lists to null rather than
3011 (df_ref_compare): Take df_refs as parameter, transferring the
3013 (df_ref_ptr_compare): ...this new function.
3014 (df_sort_and_compress_refs): Update accordingly.
3015 (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
3017 (df_mw_ptr_compare): ...this new function.
3018 (df_sort_and_compress_mws): Update accordingly.
3019 (df_install_refs, df_install_mws): Return a linked list rather than
3020 an array of pointers.
3021 (df_refs_add_to_chains): Assert that old lists are empty rather
3023 (df_insn_refs_verify): Don't handle null defs speciailly.
3024 * web.c (union_match_dups): Update for new df_ref linking.
3026 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
3028 * df.h (df_ref_create, df_ref_remove): Delete.
3029 * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
3030 (df_ref_remove): Likewise.
3032 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
3034 * df.h (df_single_def, df_single_use): New functions.
3035 * ira.c (find_moveable_pseudos): Use them.
3037 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
3039 * df.h (FOR_EACH_INSN_INFO_MW): New macro.
3040 * df-problems.c (df_note_bb_compute): Use it.
3041 * regstat.c (regstat_bb_compute_ri): Likewise.
3043 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
3045 * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
3046 * cse.c (cse_extended_basic_block): Use them.
3047 * dce.c (mark_artificial_use): Likewise.
3048 * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
3049 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
3050 (df_chain_remove_problem, df_chain_bb_dump): Likewise.
3051 (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
3052 (df_simulate_initialize_backwards): Likewise.
3053 (df_simulate_finalize_backwards): Likewise.
3054 (df_simulate_initialize_forwards): Likewise.
3055 (df_md_simulate_artificial_defs_at_top): Likewise.
3056 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
3057 * regrename.c (init_rename_info): Likewise.
3058 * regstat.c (regstat_bb_compute_ri): Likewise.
3059 (regstat_bb_compute_calls_crossed): Likewise.
3061 2014-06-15 Richard Sandiford <rdsandiford@googlemail.com>
3063 * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
3064 (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
3065 (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
3066 * auto-inc-dec.c (find_inc, merge_in_block): Use them.
3067 * combine.c (create_log_links): Likewise.
3068 * compare-elim.c (find_flags_uses_in_insn): Likewise.
3069 (try_eliminate_compare): Likewise.
3070 * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
3071 * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
3072 (remove_reg_equal_equiv_notes_for_defs): Likewise.
3073 (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
3074 (word_dce_process_block, dce_process_block): Likewise.
3075 * ddg.c (def_has_ccmode_p): Likewise.
3076 * df-core.c (df_bb_regno_first_def_find): Likewise.
3077 (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
3078 * df-problems.c (df_rd_simulate_one_insn): Likewise.
3079 (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
3080 (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
3081 (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
3082 (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
3083 (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
3084 (df_simulate_find_defs, df_simulate_find_uses): Likewise.
3085 (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
3086 (df_simulate_uses, df_md_simulate_one_insn): Likewise.
3087 * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
3088 * fwprop.c (local_ref_killed_between_p): Likewise.
3089 (all_uses_available_at, free_load_extend): Likewise.
3090 * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
3091 * hw-doloop.c (scan_loop): Likewise.
3092 * ifcvt.c (dead_or_predicable): Likewise.
3093 * init-regs.c (initialize_uninitialized_regs): Likewise.
3094 * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
3095 (process_bb_node_lives): Likewise.
3096 * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
3097 (find_moveable_pseudos): Likewise.
3098 * loop-invariant.c (check_dependencies, record_uses): Likewise.
3099 * recog.c (peep2_find_free_register): Likewise.
3100 * ree.c (get_defs): Likewise.
3101 * regstat.c (regstat_bb_compute_ri): Likewise.
3102 (regstat_bb_compute_calls_crossed): Likewise.
3103 * sched-deps.c (find_inc, find_mem): Likewise.
3104 * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
3105 (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
3106 * shrink-wrap.c (requires_stack_frame_p): Likewise.
3107 (prepare_shrink_wrap): Likewise.
3108 * store-motion.c (compute_store_table, build_store_vectors): Likewise.
3109 * web.c (union_defs, pass_web::execute): Likewise.
3110 * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
3111 (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
3113 2014-06-13 Vladimir Makarov <vmakarov@redhat.com>
3115 * lra-assign.c (assign_by_spills): Add code to assign vector regs
3116 to inheritance pseudos.
3117 * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
3119 2014-06-13 Peter Bergner <bergner@vnet.ibm.com>
3122 * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
3123 (BU_MISC_2): Rename to ...
3124 (BU_LDBL128_2): ... this.
3125 * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
3126 (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
3127 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3129 (rs6000_invalid_builtin): Add long double 128-bit builtin support.
3130 (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
3131 * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
3132 (unpacktf_1): Likewise.
3133 * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
3134 (__builtin_longdouble_dw1): Likewise.
3135 * doc/sourcebuild.texi (longdouble128): Document.
3137 2014-06-13 Jeff Law <law@redhat.com>
3139 PR rtl-optimization/61094
3140 PR rtl-optimization/61446
3141 * ree.c (combine_reaching_defs): Get the mode for the copy from
3142 the extension insn rather than the defining insn.
3144 2014-06-13 Dehao Chen <dehao@google.com>
3146 * dwarf2out.c (add_linkage_name): Emit more linkage name.
3148 2014-06-13 Thomas Schwinge <thomas@codesourcery.com>
3150 * doc/install.texi (--enable-linker-plugin-configure-flags)
3151 (--enable-linker-plugin-flags): Document new flags.
3153 2014-06-13 Martin Jambor <mjambor@suse.cz>
3156 * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
3157 cache_token if returning early.
3159 2014-06-13 Nick Clifton <nickc@redhat.com>
3161 * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
3162 requested alignment is active.
3163 (LABEL_ALIGN): Likewise.
3164 (LOOP_ALIGN): Likewise.
3166 2014-06-13 Richard Biener <rguenther@suse.de>
3168 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3169 Rewrite to propagate the VN result into all uses where
3170 possible and to remove stmts becoming dead because of that.
3171 (eliminate): Generalize stmt removal handling, remove in
3172 reverse dominator order to support proper debug stmt
3173 generation. Update stmts before removing stmts.
3174 * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
3176 2014-06-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
3178 PR tree-optimization/61375
3179 * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
3180 symbolic number cannot be represented in an uint64_t.
3181 (find_bswap_or_nop_1): Likewise.
3183 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
3185 * symtab.c (symtab_node::reset_section): New method.
3186 * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
3188 * cgraph.h (reset_section): Declare.
3189 * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
3190 do not consider comdat locals.
3191 * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
3193 * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
3194 (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
3195 reset sections of symbols dragged out of the comdats.
3196 (function_and_variable_visibility): Reset sections of
3199 2014-06-12 Jan Hubicka <hubicka@ucw.cz>
3201 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
3202 to use symtab and decl_binds_to_current_def_p
3203 * tree-vectorizer.c (increase_alignment): Increase alignment
3204 of alias target, too.
3206 2014-06-12 Jakub Jelinek <jakub@redhat.com>
3209 * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
3210 (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
3211 if outer combined construct is distribute.
3212 (gimplify_omp_for): For OMP_DISTRIBUTE set
3213 gimplify_omp_ctxp->distribute.
3214 * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3215 GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3216 mapping into decl map.
3218 2014-06-12 Jason Merrill <jason@redhat.com>
3220 * common.opt (fabi-version): Change default to 0.
3222 2014-06-12 Jason Merrill <jason@redhat.com>
3224 * toplev.c (process_options): Reject -fabi-version=1.
3226 2014-06-12 Jeff Law <law@redhat.com>
3228 PR tree-optimization/61009
3229 * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3230 value when we stop processing a block due to problematic PHIs.
3232 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
3234 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
3235 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
3236 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
3237 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
3238 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
3239 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
3240 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
3241 are not in the spec.
3243 2014-06-10 Alan Lawrence <alan.lawrence@arm.com>
3246 * config/aarch64/aarch64-modes.def: Add V1DFmode.
3247 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3250 2014-06-12 Eric Botcazou <ebotcazou@adacore.com>
3252 * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3254 2014-06-12 Georg-Johann Lay <avr@gjlay.de>
3257 * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3258 loading from address spaces.
3260 2014-06-12 Martin Liska <mliska@suse.cz>
3263 * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
3264 statement is reachable.
3266 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
3268 * symtab.c (section_hash): New hash.
3269 (symtab_unregister_node): Clear section before freeing.
3270 (hash_section_hash_entry): New haser.
3271 (eq_sections): New function.
3272 (symtab_node::set_section_for_node): New method.
3273 (set_section_1): Update.
3274 (symtab_node::set_section): Take string instead of tree as parameter.
3275 (symtab_resolve_alias): Update.
3276 * cgraph.h (section_hash_entry_d): New structure.
3277 (section_hash_entry): New typedef.
3278 (cgraph_node): Change comdat_group_ to x_comdat_group,
3279 change section_ to x_section and turn into section_hash_entry;
3280 update accestors; put set_section_for_node offline.
3281 * tree.c (decl_section_name): Turn into string.
3282 (set_decl_section_name): Change parameter to be string.
3283 * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
3284 * sdbout.c (sdbout_one_type): Update.
3285 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
3286 * varasm.c (IN_NAMED_SECTION, get_named_section,
3287 resolve_unique_section, hot_function_section, get_named_text_section,
3288 USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
3289 make_decl_rtl, default_unique_section): Update.
3290 * config/c6x/c6x.c (c6x_in_small_data_p): Update.
3291 (c6x_elf_unique_section): Update.
3292 * config/nios2/nios2.c (nios2_in_small_data_p): Update.
3293 * config/pa/pa.c (pa_function_section): Update.
3294 * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
3295 * config/ia64/ia64.c (ia64_in_small_data_p): Update.
3296 * config/arc/arc.c (arc_in_small_data_p): Update.
3297 * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
3298 * config/mcore/mcore.c (mcore_unique_section): Update.
3299 * config/mips/mips.c (mips16_build_function_stub): Update.
3300 (mips16_build_call_stub): Update.
3301 (mips_function_rodata_section): Update.
3302 (mips_in_small_data_p): Update.
3303 * config/score/score.c (score_in_small_data_p): Update.
3304 * config/rx/rx.c (rx_in_small_data): Update.
3305 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
3306 (rs6000_xcoff_asm_named_section): Update.
3307 (rs6000_xcoff_unique_section): Update.
3308 * config/frv/frv.c (frv_string_begins_with): Update.
3309 (frv_in_small_data_p): Update.
3310 * config/v850/v850.c (v850_encode_data_area): Update.
3311 * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
3312 (bfin_handle_l1_data_attribute): Update.
3313 (bfin_handle_l2_attribute): Update.
3314 * config/mep/mep.c (mep_unique_section): Update.
3315 * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
3317 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
3318 (h8300_handle_tiny_data_attribute): Update.
3319 * config/m32r/m32r.c (m32r_in_small_data_p): Update.
3320 (m32r_in_small_data_p): Update.
3321 * config/alpha/alpha.c (alpha_in_small_data_p): Update.
3322 * config/i386/i386.c (ix86_in_large_data_p): Update.
3323 * config/i386/winnt.c (i386_pe_unique_section): Update.
3324 * config/darwin.c (darwin_function_section): Update.
3325 * config/lm32/lm32.c (lm32_in_small_data_p): Update.
3326 * tree-emutls.c (get_emutls_init_templ_addr): Update.
3327 (new_emutls_decl): Update.
3328 * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
3329 input_varpool_node): Update.
3330 (ead_string_cst): Turn to ...
3331 (read_string): ... this one.
3332 * dwarf2out.c (secname_for_decl): Update.
3333 * asan.c (asan_protect_global): Update.
3335 2014-06-11 DJ Delorie <dj@redhat.com>
3337 * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
3339 * config/rx/rx.c (rx_option_override): Likewise.
3340 (rx_align_for_label): Likewise.
3342 * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
3344 2014-06-11 Maciej W. Rozycki <macro@codesourcery.com>
3346 * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
3349 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3351 * common.md: New file.
3352 * doc/md.texi: Update description of generic, machine-independent
3354 * config/s390/constraints.md (e): Delete.
3355 * Makefile.in (md_file): Include common.md.
3356 * config/m32c/t-m32c (md_file): Likewise.
3357 * genpreds.c (general_mem): New array.
3358 (generic_constraint_letters): Remove constraints now defined by
3360 (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
3361 Allow the first character to be '<' or '>' as well.
3362 * genoutput.c (general_mem): New array.
3363 (indep_constraints): Remove constraints now defined by common.md.
3364 (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
3365 Remove special handling of 'm'.
3366 * ira-costs.c (record_reg_classes): Remove special handling of
3367 constraints now defined by common.md.
3368 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
3369 * ira-lives.c (single_reg_class): Likewise.
3370 (ira_implicitly_set_insn_hard_regs): Likewise.
3371 * lra-constraints.c (reg_class_from_constraints): Likewise.
3372 (process_alt_operands, process_address, curr_insn_transform): Likewise.
3373 * postreload.c (reload_cse_simplify_operands): Likewise.
3374 * reload.c (push_secondary_reload, scratch_reload_class)
3375 (find_reloads, alternative_allows_const_pool_ref): Likewise.
3376 * reload1.c (maybe_fix_stack_asms): Likewise.
3377 * targhooks.c (default_secondary_reload): Likewise.
3378 * stmt.c (parse_output_constraint): Likewise.
3379 * recog.c (preprocess_constraints): Likewise.
3380 (constrain_operands, peep2_find_free_register): Likewise.
3381 (asm_operand_ok): Likewise, but add a comment saying why 'o'
3382 must be handled specially.
3384 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3386 * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
3387 * genpreds.c (have_const_dbl_constraints): Delete.
3388 (add_constraint): Don't set it.
3389 (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
3390 * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
3391 constraints using the lookup_constraint logic.
3392 * ira-lives.c (single_reg_class): Likewise.
3393 * ira.c (ira_setup_alts): Likewise.
3394 * lra-constraints.c (process_alt_operands): Likewise.
3395 * recog.c (asm_operand_ok, constrain_operands): Likewise.
3396 * reload.c (find_reloads): Likewise.
3398 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3400 * genpreds.c (const_int_start, const_int_end): New variables.
3401 (choose_enum_order): Output CONST_INT constraints before memory
3403 (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
3405 * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
3406 * ira.c (ira_setup_alts): Likewise.
3407 * lra-constraints.c (process_alt_operands): Likewise.
3408 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
3409 * reload.c (find_reloads): Likewise.
3411 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3413 * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
3414 decmem_ok and incmem_ok. Reformat other bitfields for consistency.
3415 * recog.c (preprocess_constraints): Update accordingly.
3417 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3419 * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
3420 (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
3421 (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
3422 * genpreds.c (print_type_tree): New function.
3423 (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
3424 REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
3425 EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
3426 Write out enum constraint_type and get_constraint_type.
3427 * lra-constraints.c (satisfies_memory_constraint_p): Take a
3428 constraint_num rather than a constraint string.
3429 (satisfies_address_constraint_p): Likewise.
3430 (reg_class_from_constraints): Avoid old constraint macros.
3431 (process_alt_operands, process_address_1): Likewise.
3432 (curr_insn_transform): Likewise.
3433 * ira-costs.c (record_reg_classes): Likewise.
3434 (record_operand_costs): Likewise.
3435 * ira-lives.c (single_reg_class): Likewise.
3436 (ira_implicitly_set_insn_hard_regs): Likewise.
3437 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
3438 * postreload.c (reload_cse_simplify_operands): Likewise.
3439 * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
3440 (constrain_operands, peep2_find_free_register): Likewise.
3441 * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
3442 (find_reloads, alternative_allows_const_pool_ref): Likewise.
3443 * reload1.c (maybe_fix_stack_asms): Likewise.
3444 * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3445 * targhooks.c (default_secondary_reload): Likewise.
3446 * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
3447 to EXTRA_CONSTRAINT_STR.
3448 * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
3450 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3452 * genpreds.c (write_constraint_satisfied_p_1): Replace with...
3453 (write_constraint_satisfied_p_array): ...this new function.
3454 (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
3456 (write_insn_preds_c): Update accordingly.
3458 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3460 * genpreds.c (write_lookup_constraint): Rename to...
3461 (write_lookup_constraint_1): ...this.
3462 (write_lookup_constraint_array): New function.
3463 (write_tm_preds_h): Define lookup_constraint as an inline function
3464 that uses write_lookup_constraint_array where possible.
3465 (write_insn_preds_c): Update for the changes above.
3467 2014-06-11 Richard Sandiford <rdsandiford@googlemail.com>
3469 * doc/md.texi (regclass_for_constraint): Rename to...
3470 (reg_class_for_constraint): ...this.
3471 * genpreds.c (num_constraints, enum_order, register_start)
3472 (register_end, satisfied_start, memory_start, memory_end)
3473 (address_start, address_end): New variables.
3474 (add_constraint): Count the number of constraints.
3475 (choose_enum_order): New function.
3476 (write_enum_constraint_num): Iterate over enum_order.
3477 (write_regclass_for_constraint): Rename to...
3478 (write_reg_class_for_constraint_1): ...this and update output
3480 (write_constraint_satisfied_p): Rename to...
3481 (write_constraint_satisfied_p_1): ...this and update output
3482 accordingly. Do nothing if all extra constraints are register
3484 (write_insn_extra_memory_constraint): Delete.
3485 (write_insn_extra_address_constraint): Delete.
3486 (write_range_function): New function.
3487 (write_tm_preds_h): Define constraint_satisfied_p and
3488 reg_class_for_constraint as inline functions that do a range check
3489 before calling the out-of-line function. Use write_range_function
3490 to implement insn_extra_{register,memory,address}_constraint,
3491 the first of which is new.
3492 (write_insn_preds_c): Update after above changes to write_* functions.
3493 (main): Call choose_enum_order.
3495 2014-06-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
3497 PR tree-optimization/61306
3498 * tree-ssa-math-opts.c (struct symbolic_number): Store type of
3499 expression instead of its size.
3500 (do_shift_rotate): Adapt to change in struct symbolic_number. Return
3501 false to prevent optimization when the result is unpredictable due to
3502 arithmetic right shift of signed type with highest byte is set.
3503 (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
3504 (init_symbolic_number): Likewise.
3505 (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
3506 when the result is unpredictable due to sign extension.
3508 2014-06-11 Terry Guo <terry.guo@arm.com>
3510 * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
3511 (*thumb1_addsi3): Ditto.
3512 (*thumb_subdi3): Ditto.
3513 (thumb1_subsi3_insn): Ditto.
3514 (*thumb_mulsi3): Ditto.
3515 (*thumb_mulsi3_v6): Ditto.
3516 (*thumb1_andsi3_insn): Ditto.
3517 (thumb1_bicsi3): Ditto.
3518 (*thumb1_iorsi3_insn): Ditto.
3519 (*thumb1_xorsi3_insn): Ditto.
3520 (*thumb1_ashlsi3): Ditto.
3521 (*thumb1_ashrsi3): Ditto.
3522 (*thumb1_lshrsi3): Ditto.
3523 (*thumb1_rotrsi3): Ditto.
3524 (*thumb1_negdi2): Ditto.
3525 (*thumb1_negsi2): Ditto.
3526 (*thumb1_abssi2): Ditto.
3527 (*thumb1_neg_abssi2): Ditto.
3528 (*thumb1_one_cmplsi2): Ditto.
3529 (*thumb1_zero_extendhisi2): Ditto.
3530 (*thumb1_zero_extendqisi2): Ditto.
3531 (*thumb1_zero_extendqisi2_v6): Ditto.
3532 (thumb1_extendhisi2): Ditto.
3533 (thumb1_extendqisi2): Ditto.
3534 (*thumb1_movdi_insn): Ditto.
3535 (*thumb1_movsi_insn): Ditto.
3536 (*thumb1_movhi_insn): Ditto.
3537 (thumb_movhi_clobber): Ditto.
3538 (*thumb1_movqi_insn): Ditto.
3539 (*thumb1_movhf): Ditto.
3540 (*thumb1_movsf_insn): Ditto.
3541 (*thumb_movdf_insn): Ditto.
3544 (cbranchqi4): Ditto.
3545 (cbranchsi4_insn): Ditto.
3546 (cbranchsi4_scratch): Ditto.
3547 (*negated_cbranchsi4): Ditto.
3548 (*tbit_cbranch): Ditto.
3549 (*tlobits_cbranch): Ditto.
3550 (*tstsi3_cbranch): Ditto.
3551 (*cbranchne_decr1): Ditto.
3552 (*addsi3_cbranch): Ditto.
3553 (*addsi3_cbranch_scratch): Ditto.
3554 (*thumb_cmpdi_zero): Ditto.
3555 (cstoresi_eq0_thumb1): Ditto.
3556 (cstoresi_ne0_thumb1): Ditto.
3557 (*cstoresi_eq0_thumb1_insn): Ditto.
3558 (*cstoresi_ne0_thumb1_insn): Ditto.
3559 (cstoresi_nltu_thumb1): Ditto.
3560 (cstoresi_ltu_thumb1): Ditto.
3561 (thumb1_addsi3_addgeu): Ditto.
3562 (*thumb_jump): Ditto.
3563 (*call_reg_thumb1_v5): Ditto.
3564 (*call_reg_thumb1): Ditto.
3565 (*call_value_reg_thumb1_v5): Ditto.
3566 (*call_value_reg_thumb1): Ditto.
3567 (*call_insn): Ditto.
3568 (*call_value_insn): Ditto.
3569 (thumb1_casesi_internal_pic): Ditto.
3570 (thumb1_casesi_dispatch): Ditto.
3571 (*thumb1_indirect_jump): Ditto.
3572 (prologue_thumb1_interwork): Ditto.
3573 (*epilogue_insns): Ditto.
3574 (consttable_1): Ditto.
3575 (consttable_2): Ditto.
3577 (*thumb1_tablejump): Ditto.
3578 (thumb_eh_return): Ditto.
3579 (define_peephole2): Two of them are thumb1 only and got moved into
3581 (define_split): Six of them are thumb1 only and got moved into new
3583 * config/arm/thumb1.md: New file comprised of above thumb1 only
3586 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3588 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
3589 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
3591 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
3592 (aarch64_crc_builtin_datum): New struct.
3593 (aarch64_crc_builtin_data): New.
3594 (aarch64_init_crc32_builtins): New function.
3595 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
3596 (aarch64_crc32_expand_builtin): New.
3597 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
3598 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
3599 __ARM_FEATURE_CRC32 when appropriate.
3600 (TARGET_CRC32): Define.
3601 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
3602 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
3603 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
3604 (aarch64_<crc_variant>): New pattern.
3605 * config/aarch64/arm_acle.h: New file.
3606 * config/aarch64/iterators.md (CRC): New int iterator.
3607 (crc_variant, crc_mode): New int attributes.
3608 * doc/aarch64-acle-intrinsics.texi: New file.
3609 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
3610 Include aarch64-acle-intrinsics.texi.
3612 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com>
3614 * tree-vect-data-refs.c (vect_grouped_store_supported): New
3615 check for stores group of length 3.
3616 (vect_permute_store_chain): New permutations for stores group of
3618 * tree-vect-stmts.c (vect_model_store_cost): Change cost
3619 of vec_perm_shuffle for the new permutations.
3621 2014-06-11 Jan Hubicka <hubicka@ucw.cz>
3623 * ipa-visibility.c (function_and_variable_visibility): Disable virtual
3624 table rewriting temporarily on targets not supporting ONE_ONLY.
3626 2014-06-11 Richard Biener <rguenther@suse.de>
3630 2014-06-04 Richard Biener <rguenther@suse.de>
3632 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
3633 TREE_PUBLIC and DECL_EXTERNAL decls.
3635 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
3637 * varasm.c (set_implicit_section): New function.
3638 (resolve_unique_section): Use it to set implicit section
3640 (get_named_text_section): Use symtab_get_node (decl)->implicit_section
3641 (default_function_section): Likewise.
3642 (decl_binds_to_current_def_p): Constify argument.
3643 * varasm.h (decl_binds_to_current_def_p): Update prototype.
3644 * asan.c (asan_protect_global): Use
3645 symtab_get_node (decl)->implicit_section.
3646 * symtab.c (dump_symtab_base): Dump implicit sections.
3647 (verify_symtab_base): Verify sanity of sectoins and comdats.
3648 (symtab_resolve_alias): Alias share the section of its target.
3649 (set_section_1): New function.
3650 (symtab_node::set_section): Move here, recurse to aliases.
3651 (verify_symtab): Check for duplicated symtab lists.
3652 * tree-core.h (implicit_section_name_p): Remove.
3653 * tree-vect-data-refs.c: Include varasm.h.
3654 (vect_can_force_dr_alignment_p): Fix conditional on when
3655 decl bints to current definition; use
3656 symtab_get_node (decl)->implicit_section.
3657 * cgraph.c (cgraph_make_node_local_1): Fix section set.
3658 * cgraph.h (struct symtab_node): Add implicit_section.
3659 (set_section): Rename to ...
3660 (set_section_for_node): ... this one.
3661 (set_section): Declare.
3662 * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
3663 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3664 input_overwrite_node, input_varpool_node): Stream implicit_section.
3665 * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
3666 removal; it will fail in LTO.
3668 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3670 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
3671 Change second alternative type to f_mcr.
3672 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
3673 and 12th alternatives' types to f_mcr and f_mrc.
3674 (*movdi_aarch64): Same for 12th and 13th alternatives.
3675 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
3676 (aarch64_movtilow_tilow): Change type to fmov.
3678 2014-06-10 Jiong Wang <jiong.wang@arm.com>
3680 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
3681 (aarch64_save_or_restore_callee_save_registers): Fix layout.
3683 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3685 * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
3687 (aarch64_sqrdmulh_lane<mode>): Likewise.
3688 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3689 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3690 (aarch64_sqdmulh_laneq<mode>): New expander.
3691 (aarch64_sqrdmulh_laneq<mode>): Likewise.
3692 (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
3693 (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
3694 (aarch64_sqdmulh_lane<mode>): New expander.
3695 (aarch64_sqrdmulh_lane<mode>): Likewise.
3696 (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3697 (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3698 (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
3699 (aarch64_sqdmlal_laneq<mode>): Likewise.
3700 (aarch64_sqdmlsl_lane<mode>): Likewise.
3701 (aarch64_sqdmlsl_laneq<mode>): Likewise.
3702 (aarch64_sqdmlal2_lane<mode>): Likewise.
3703 (aarch64_sqdmlal2_laneq<mode>): Likewise.
3704 (aarch64_sqdmlsl2_lane<mode>): Likewise.
3705 (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3706 (aarch64_sqdmull_lane<mode>): Likewise.
3707 (aarch64_sqdmull_laneq<mode>): Likewise.
3708 (aarch64_sqdmull2_lane<mode>): Likewise.
3709 (aarch64_sqdmull2_laneq<mode>): Likewise.
3711 2014-06-10 Richard Biener <rguenther@suse.de>
3713 PR tree-optimization/61438
3714 * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
3715 (eliminate_dom_walker::before_dom_children): Only try to inhibit
3716 insertion of IVs if running PRE.
3717 (eliminate): Adjust.
3718 (pass_pre::execute): Likewise.
3719 (pass_fre::execute): Likewise.
3721 2014-06-10 Richard Biener <rguenther@suse.de>
3724 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3725 Do not use the main variant for the type comparison.
3726 (ncr_compar): Likewise.
3727 (nonoverlapping_component_refs_p): Likewise.
3729 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
3731 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
3732 REG_CFA_RESTORE mode.
3734 2014-06-10 Evgeny Stupachenko <evstupac@gmail.com>
3736 * config/i386/i386.c (expand_vec_perm_pblendv): New.
3737 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
3738 expand_vec_perm_pblendv.
3740 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3742 * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3744 Simplify description of __crc32d and __crc32cd intrinsics.
3745 * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3748 2014-06-10 Thomas Schwinge <thomas@codesourcery.com>
3751 * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
3752 * config.in: Regenerate.
3753 * configure: Likewise.
3755 2014-06-10 Jan Hubicka <hubicka@ucw.cz>
3757 * ipa-reference.c (is_proper_for_analysis): Exclude addressable
3759 (intersect_static_var_sets): Remove.
3760 (propagate): Do not prune local statics.
3762 2014-06-10 Jakub Jelinek <jakub@redhat.com>
3765 * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3766 Set lastprivate_firstprivate even if omp_private_outer_ref
3767 langhook returns true.
3768 <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
3769 langhook, call unshare_expr on new_var and call
3770 build_outer_var_ref to get the last argument.
3772 2014-06-10 Marek Polacek <polacek@redhat.com>
3775 * doc/extend.texi: Add cindex for transparent_union.
3777 2014-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
3779 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
3780 init_symbolic_number ().
3782 2014-05-18 John David Anglin <danglin@gcc.gnu.org>
3785 * emit-rtl.c (reset_all_used_flags): In a sequence, check that
3786 XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
3787 (verify_rtl_sharing): Likewise.
3789 2014-06-09 Marc Glisse <marc.glisse@inria.fr>
3792 * tree.c (build_qualified_type): Use a canonical type for
3795 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3797 * config/arm/arm-modes.def: Remove XFmode.
3799 2014-06-09 Alan Lawrence <alan.lawrence@arm.com>
3802 * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3803 vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3804 vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3805 vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3806 vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3807 vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3808 vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3809 vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3810 vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3812 2014-06-09 Jan Hubicka <hubicka@ucw.cz>
3814 * tree-core.h (tree_decl_with_vis): Remove section_name.
3816 2014-06-09 Kito Cheng <kito@0xlab.org>
3818 * ira.c (ira): Don't call init_caller_save if LRA enabled
3819 since LRA use its own infrastructure to handle that.
3821 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
3823 * symtab.c (dump_symtab_base): Update dumping.
3824 (symtab_make_decl_local): Clear only DECL_COMDAT.
3825 * tree-vect-data-refs.c (Check that variable is static before
3826 tampering with sections.
3827 * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
3828 (cgraph_create_virtual_clone): Likewise.
3829 * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
3830 (decl_section_name, set_decl_section_name): New accessors.
3831 (find_decls_types_r): Do not walk section name
3832 * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
3833 (decl_comdat_group, decl_comdat_group_id): Constify.
3834 (decl_section_name, set_decl_section_name): Update.
3835 * varpool.c (varpool_finalize_named_section_flags): Use get_section.
3836 * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
3837 (cgraph_make_node_local_1): Clear section and comdat group.
3838 * cgraph.h (set_comdat_group): Sanity check.
3839 (get_section, set_section): New.
3840 * ipa-comdats.c (ipa_comdats): Use get_section.
3841 * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
3842 * lto-streamer-out.c: Do not follow section names.
3843 * c-family/c-common.c (handle_section_attribute): Update.
3844 * lto-cgraph.c (lto_output_node): Output section.
3845 (lto_output_varpool_node): Likewise.
3846 (read_comdat_group): Rename to ...
3847 (read_identifier): ... this one.
3848 (read_string_cst): New function.
3849 (input_node, input_varpool_node): Input section names.
3850 * tree-emutls.c (get_emutls_init_templ_addr): Update.
3851 (new_emutls_decl): Update.
3852 (secname_for_decl): Check section names only of static vars.
3853 * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
3854 * config/i386/winnt.c (i386_pe_unique_section): Likewise.
3855 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
3856 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
3857 * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
3858 * config/mcore/mcore.c (mcore_unique_section): Likewise.
3859 * config/mips/mips.c (mips16_build_function_stub): Likewise.
3860 * config/v850/v850.c (v850_insert_attributes): Likewise.
3861 * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
3863 (h8300_handle_tiny_data_attribute): Likewise.
3864 * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
3865 (bfin_handle_l2_attribute): Likewise.
3867 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
3869 * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
3870 remove static initializer.
3872 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
3874 * varasm.c (use_blocks_for_decl_p): Check symbol table
3875 instead of alias attribute.
3876 (place_block_symbol): Recurse on aliases.
3878 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
3880 * ipa-visibility.c: Include varasm.h
3881 (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
3883 2014-06-07 Jan Hubicka <hubicka@ucw.cz>
3885 * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
3888 2014-06-07 Steven Bosscher <steven@gcc.gnu.org>
3890 * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
3891 from test_insn into GGC space escape via SET_SRC.
3893 2014-06-07 Eric Botcazou <ebotcazou@adacore.com>
3895 * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3896 call statement, if any.
3897 (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3898 statements, if any. Tidy up.
3900 2014-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3903 * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3904 iterators, VSX_D that handles 64-bit types, and VSX_LE that
3905 handles swapping the two 64-bit double words on little endian
3906 systems. Include V1TImode and optionally TImode in VSX_LE so that
3907 these types are properly swapped. Change all of the insns and
3908 splits that do the 64-bit swaps to use VSX_LE.
3909 (vsx_le_perm_load_<mode>): Likewise.
3910 (vsx_le_perm_store_<mode>): Likewise.
3911 (splitters for little endian memory operations): Likewise.
3912 (vsx_xxpermdi2_le_<mode>): Likewise.
3913 (vsx_lxvd2x2_le_<mode>): Likewise.
3914 (vsx_stxvd2x2_le_<mode>): Likewise.
3916 2014-06-06 Uros Bizjak <ubizjak@gmail.com>
3919 * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
3920 define_insn_and_split pattern, merged from *floatunssi<mode>2_1
3921 and corresponding splitters. Zero extend general register
3922 or memory input operand to XMM temporary. Enable for
3923 TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
3924 (floatunssi<mode>2): Update expander predicate.
3926 2014-06-06 Vladimir Makarov <vmakarov@redhat.com>
3928 PR rtl-optimization/61325
3929 * lra-constraints.c (process_address_1): Check scale equal to one
3930 to prevent transformation: base + scale * index => base + new_reg.
3932 2014-06-06 Richard Biener <rguenther@suse.de>
3934 PR tree-optimization/59299
3935 * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
3937 (nearest_common_dominator_of_uses): Likewise.
3938 (statement_sink_location): Adjust. Support sinking loads.
3940 2014-06-06 Martin Jambor <mjambor@suse.cz>
3942 * ipa-prop.c (get_place_in_agg_contents_list): New function.
3943 (build_agg_jump_func_from_list): Likewise.
3944 (determine_known_aggregate_parts): Renamed to
3945 determine_locally_known_aggregate_parts. Moved some functionality
3946 to the two functions above, removed bound checks.
3948 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
3950 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
3951 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
3952 (aarch64_progress_pointer): Likewise.
3953 (aarch64_copy_one_part_and_move_pointers): Likewise.
3954 (aarch64_expand_movmen): Likewise.
3955 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
3956 * config/aarch64/aarch64.md (movmem<mode>): New.
3958 2014-06-06 Bingfeng Mei <bmei@broadcom.com>
3960 * targhooks.c (default_add_stmt_cost): Call target specific
3961 hook instead of default one.
3963 2014-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
3965 * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
3966 endianness instead of host endianness.
3967 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
3970 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
3973 * function.c (instantiate_decls): Process the saved static chain.
3974 (expand_function_start): If not optimizing, save the static chain
3976 * tree-nested.c (convert_all_function_calls): Always create the static
3977 chain for nested functions if not optimizing.
3979 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
3981 * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
3983 2014-06-06 Richard Biener <rguenther@suse.de>
3985 * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
3986 (construct_init_block): Likewise.
3987 (construct_exit_block): Likewise.
3988 (pass_expand::execute): Likewise.
3989 * graphite.c (graphite_transforms): Replace check for current_loops
3990 with a check for > 1 loops.
3991 (pass_graphite_transforms::execute): Adjust.
3992 * ipa-split.c (split_function): Remove check for current_loops.
3993 * omp-low.c (expand_parallel_call): Likewise.
3994 (expand_omp_for_init_counts): Likewise.
3995 (extract_omp_for_update_vars): Likewise.
3996 (expand_omp_for_generic): Likewise.
3997 (expand_omp_sections): Likewise.
3998 (expand_omp_target): Likewise.
3999 * tracer.c (tail_duplicate): Likewise.
4000 (pass_tracer::execute): Likewise.
4001 * trans-mem.c (expand_transaction): Likewise.
4002 * tree-complex.c (expand_complex_div_wide): Likewise.
4003 * tree-eh.c (lower_resx): Likewise.
4004 (cleanup_empty_eh_merge_phis): Likewise.
4005 * tree-predcom.c (run_tree_predictive_commoning): Replace check for
4006 current_loops with a check for > 1 loops.
4007 (pass_predcom::execute): Adjust.
4008 * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
4009 * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
4010 * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
4011 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
4012 * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
4013 * tree-switch-conversion.c (process_switch): Likewise.
4014 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
4015 * tree-vrp.c (vrp_visit_phi_node): Likewise.
4016 (execute_vrp): Likewise.
4017 * ubsan.c (ubsan_expand_null_ifn): Likewise.
4019 2014-06-06 Eric Botcazou <ebotcazou@adacore.com>
4021 * rtl.h (insn_location): Declare.
4022 * cfgcleanup.c (try_forward_edges): Compare the locus of locations
4023 with UNKNOWN_LOCATION.
4024 * emit-rtl.c (insn_location): New function.
4025 * final.c (notice_source_line): Check that the instruction has a
4026 location before retrieving it and use insn_location.
4027 * modulo-sched.c (loop_single_full_bb_p): Likewise.
4028 * print-rtl.c (print_rtx): Likewise.
4030 2014-06-06 Richard Biener <rguenther@suse.de>
4032 * passes.def: Move 2nd VRP pass before phi-only-cprop.
4034 2014-06-06 Christian Bruel <christian.bruel@st.com>
4036 PR tree-optimization/43934
4037 * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
4040 2014-06-06 Richard Sandiford <rdsandiford@googlemail.com>
4042 * ira-lives.c (single_reg_class): Add missing break. Explicitly
4043 return NO_REGS for extra address and memory constraints. Handle
4044 operands that match (or are equivalent to something that matches)
4045 extra constant constraints. Ignore other non-register operands.
4047 2014-06-06 Alan Modra <amodra@gmail.com>
4050 * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
4051 * doc/tm.texi: Regenerate.
4052 * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
4053 Use throughout in place of REG_PARM_STACK_SPACE.
4054 * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
4055 "incoming" param. Pass to rs6000_function_parms_need_stack.
4056 (rs6000_function_parms_need_stack): Add "incoming" param, ignore
4057 prototype_p when incoming. Use function decl when incoming
4058 to handle K&R style functions.
4059 * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
4060 (INCOMING_REG_PARM_STACK_SPACE): Define.
4062 2014-06-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4065 * cfgexpand.c (expand_debug_expr): Use address space of nested
4066 TREE_TYPE for ADDR_EXPR and MEM_REF.
4068 2014-06-05 Jeff Law <law@redhat.com>
4070 PR tree-optimization/61289
4071 * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
4072 DST_MAP parameters. Invalidate by walking all the SSA_NAME_VALUES
4073 looking for those which match LHS. All callers changed.
4074 (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
4075 parameters and code which manipulated them. All callers changed.
4076 (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
4077 and DST_MAP parameters. Simplify invalidation code by just calling
4078 invalidate_equivalences. All callers changed.
4079 (thread_across_edge): Simplify now that we don't need to maintain
4080 the map of equivalences to invalidate.
4082 2014-06-05 Kai Tietz <ktietz@redhat.com>
4083 Richard Henderson <rth@redhat.com>
4086 * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
4087 checking for !TARGET_X32.
4088 * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
4089 (sibcall_intern): New define_insn, plus required peepholes.
4090 (sibcall_pop_intern): Likewise.
4091 (sibcall_value_intern): Likewise.
4092 (sibcall_value_pop_intern): Likewise.
4094 2014-06-05 Ilya Enkovich <ilya.enkovich@intel.com>
4096 * tree-inline.c (tree_function_versioning): Check DF info existence
4097 before accessing it.
4099 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
4101 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
4103 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
4104 aarch64_frame hard_fp_offset and frame_size.
4105 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
4106 frame_size; remove original_frame_size.
4107 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
4108 (aarch64_initial_elimination_offset): Remove frame_size and
4109 offset. Use aarch64_frame frame_size.
4111 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
4112 Jiong Wang <jiong.wang@arm.com>
4113 Renlin <renlin.li@arm.com>
4115 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
4116 initialization of R30 offset. Update offset. Iterate core
4117 regisers upto X30. Remove X29, X30 specific code.
4119 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
4120 Jiong Wang <jiong.wang@arm.com>
4122 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
4123 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
4124 (aarch64_register_saved_on_entry): Adjust test.
4126 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
4128 * config/aarch64/aarch64.h (machine_function): Move
4129 saved_varargs_size from here...
4130 (aarch64_frame): ... to here.
4132 * config/aarch64/aarch64.c (aarch64_expand_prologue)
4133 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
4134 (aarch64_initial_elimination_offset)
4135 (aarch64_setup_incoming_varargs): Adjust location of
4138 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
4140 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
4143 2014-06-05 Jaydeep Patil <Jaydeep.Patil@imgtec.com>
4144 Prachi Godbole <Prachi.Godbole@imgtec.com>
4146 * config/mips/mips-cpus.def: Add definition for p5600. Updated
4147 mips32r5 entry to use PROCESSOR_P5600.
4148 * config/mips/mips-tables.opt: Regenerate.
4149 * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
4150 * config/mips/mips.c (mips_fmadd_bypass): New function.
4151 (mips_rtx_cost_data): Add costs for p5600.
4152 (mips_issue_rate): Add support for p5600.
4153 (mips_multipass_dfa_lookahead): Likewise.
4154 * config/mips/mips.h (TUNE_P5600): New define.
4155 (TUNE_MACC_CHAINS): Add TUNE_P5600.
4156 (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
4157 * config/mips/mips.md: Include p5600.md.
4158 (processor): Add p5600.
4159 * config/mips/p5600.md: New file.
4161 2014-06-05 Evgeny Stupachenko <evstupac@gmail.com>
4163 * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
4164 * config/i386/predicates.md (palignr_operand): New.
4165 Indicates if permutation is suitable for palignr instruction.
4167 2014-06-05 Yuri Rumyantsev <ysrumyan@gmail.com>
4169 PR tree-optimization/61319
4170 * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
4171 stmt belongs to loop.
4173 2014-06-05 Richard Biener <rguenther@suse.de>
4175 * gimplify.c (create_tmp_from_val): Remove is_formal parameter
4176 and set DECL_GIMPLE_REG_P unconditionally if appropriate.
4177 (lookup_tmp_var): Adjust.
4178 (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
4180 2014-06-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4182 * config/arm/arm.md (enabled): Disable opt_enabled attribute.
4184 2014-06-05 Marek Polacek <polacek@redhat.com>
4187 * doc/invoke.texi: Document -Wlogical-not-parentheses.
4189 2014-06-04 Tom de Vries <tom@codesourcery.com>
4191 * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
4194 2014-06-04 Marc Glisse <marc.glisse@inria.fr>
4196 PR tree-optimization/61385
4197 * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
4199 2014-06-04 Bernd Schmidt <bernds@codesourcery.com>
4201 * lto-wrapper.c (fatal, fatal_perror): Remove functions. All callers
4202 changed to use fatal_error.
4203 (main): Ensure lto_wrapper_cleanup is run atexit.
4205 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4207 * lra-constraints.c (valid_address_p): Move earlier in file.
4208 (address_eliminator): New structure.
4209 (satisfies_memory_constraint_p): New function.
4210 (satisfies_address_constraint_p): Likewise.
4211 (process_alt_operands, process_address, curr_insn_transform): Use them.
4213 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4215 * lra-int.h (lra_static_insn_data): Make operand_alternative a
4217 (target_lra_int, default_target_lra_int, this_target_lra_int)
4218 (op_alt_data): Delete.
4219 * lra.h (lra_init): Delete.
4220 * lra.c (default_target_lra_int, this_target_lra_int): Delete.
4221 (init_insn_code_data_once): Remove op_alt_data handling.
4222 (finish_insn_code_data_once): Likewise.
4223 (init_op_alt_data): Delete.
4224 (get_static_insn_data): Initialize operand_alternative to null.
4225 (free_insn_recog_data): Cast operand_alternative before freeing it.
4226 (setup_operand_alternative): Take the operand_alternative as
4227 parameter and assume it isn't already cached in the static
4229 (lra_set_insn_recog_data): Update accordingly.
4231 * ira.c (ira_init): Don't call lra_init.
4232 * target-globals.h (this_target_lra_int): Declare.
4233 (target_globals): Remove lra_int.
4234 (restore_target_globals): Update accordingly.
4235 * target-globals.c: Don't include lra-int.h.
4236 (default_target_globals, save_target_globals): Remove lra_int.
4238 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4240 * recog.h (operand_alternative): Convert reg_class, reject,
4241 matched and matches into bitfields.
4242 (preprocess_constraints): New overload.
4243 (preprocess_insn_constraints): New function.
4244 (preprocess_constraints): Take the insn as parameter.
4245 (recog_op_alt): Change into a pointer.
4246 (target_recog): Add x_op_alt.
4247 * recog.c (asm_op_alt): New variable.
4248 (recog_op_alt): Change into a pointer.
4249 (preprocess_constraints): New overload, replacing the old function
4250 definition with one that doesn't use global state.
4251 (preprocess_insn_constraints): New function.
4252 (preprocess_constraints): Use them. Take the insn as parameter.
4253 Use asm_op_alt for asms.
4254 (recog_init): Free existing x_op_alt entries.
4255 * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
4257 (make_early_clobber_and_input_conflicts): Likewise.
4258 (process_bb_node_lives): Pass the insn to process_constraints.
4259 * reg-stack.c (check_asm_stack_operands): Likewise.
4260 (subst_asm_stack_regs): Likewise.
4261 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
4262 * regrename.c (build_def_use): Likewise.
4263 * sched-deps.c (sched_analyze_insn): Likewise.
4264 * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
4265 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
4266 (note_invalid_constants): Likewise.
4267 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4268 (ix86_legitimate_combined_insn): Make operand_alternative pointer
4271 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4273 * recog.c (preprocess_constraints): Don't skip disabled alternatives.
4274 * ira-lives.c (check_and_make_def_conflict): Check for disabled
4276 (make_early_clobber_and_input_conflicts): Likewise.
4277 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4279 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4281 * recog.h (alternative_class): New function.
4282 (which_op_alt): Return a const recog_op_alt.
4283 * reg-stack.c (check_asm_stack_operands): Update type accordingly.
4284 (subst_asm_stack_regs): Likewise.
4285 * config/arm/arm.c (note_invalid_constants): Likewise.
4286 * regcprop.c (copyprop_hardreg_forward_1): Likewise. Don't modify
4287 the operand_alternative; use alternative class instead.
4288 * sel-sched.c (get_reg_class): Likewise.
4289 * regrename.c (build_def_use): Likewise.
4290 (hide_operands, restore_operands, record_out_operands): Update type
4293 2014-06-04 Richard Sandiford <rdsandiford@googlemail.com>
4295 * recog.h (recog_op_alt): Convert to a flat array.
4296 (which_op_alt): New function.
4297 * recog.c (recog_op_alt): Convert to a flat array.
4298 (preprocess_constraints): Update accordingly, grouping all
4299 operands of the same alternative together, rather than the
4301 * ira-lives.c (check_and_make_def_conflict): Likewise.
4302 (make_early_clobber_and_input_conflicts): Likewise.
4303 * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4304 * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
4305 (subst_asm_stack_regs): Likewise.
4306 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
4307 * regrename.c (hide_operands, record_out_operands): Likewise.
4308 (build_def_use): Likewise.
4309 * sel-sched.c (get_reg_class): Likewise.
4310 * config/arm/arm.c (note_invalid_constants): Likewise.
4312 2014-06-04 Jason Merrill <jason@redhat.com>
4316 * gimplify.c (gimplify_arg): Non-static.
4317 * gimplify.h: Declare it.
4319 2014-06-04 Richard Biener <rguenther@suse.de>
4321 * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
4322 TREE_PUBLIC and DECL_EXTERNAL decls.
4324 2014-06-04 Matthew Fortune <matthew.fortune@imgtec.com>
4326 * regcprop.c (copyprop_hardreg_forward_1): Account for
4327 HARD_REGNO_CALL_PART_CLOBBERED.
4329 2014-06-04 Richard Biener <rguenther@suse.de>
4331 * configure.ac: Check whether the underlying type of int64_t
4332 is long or long long.
4333 * configure: Regenerate.
4334 * config.in: Likewise.
4335 * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
4336 (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
4338 2014-06-04 Richard Biener <rguenther@suse.de>
4340 PR tree-optimization/60098
4341 * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
4343 (dse_optimize_stmt): Simplify, now that we found a kill
4346 2014-06-04 Richard Biener <rguenther@suse.de>
4348 * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
4349 of accesses with non-invariant address.
4351 2014-06-04 Martin Liska <mliska@suse.cz>
4353 * cgraph.h (cgraph_make_wrapper): New function introduced.
4354 * cgraphunit.c (cgraph_make_wrapper): The function implementation.
4355 * ipa-inline.h (inline_analyze_function): The function is global.
4356 * ipa-inline-analysis.c (inline_analyze_function): Likewise.
4358 2014-06-04 Martin Liska <mliska@suse.cz>
4360 * tree.h (private_lookup_attribute_starting): New function.
4361 (lookup_attribute_starting): Likewise.
4362 * tree.c (private_lookup_attribute_starting): Likewise.
4364 2014-06-04 Martin Liska <mliska@suse.cz>
4366 * cgraph.h (expand_thunk): New argument added.
4367 (address_taken_from_non_vtable_p): New global function.
4368 * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
4369 * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
4370 * cgraphunit.c (analyze_function): Likewise.
4371 (assemble_thunks_and_aliases): Argument added to call.
4372 (expand_thunk): New argument forces to produce GIMPLE thunk.
4374 2014-06-04 Martin Liska <mliska@suse.cz>
4376 * coverage.h (coverage_compute_cfg_checksum): Argument added.
4377 * coverage.c (coverage_compute_cfg_checksum): Likewise.
4378 * profile.c (branch_prob): Likewise.
4380 2014-06-04 Martin Jambor <mjambor@suse.cz>
4383 * ipa-pure-const.c (propagate_pure_const): Add unreachable default
4384 handler for switch on an ipa_ref_use enum.
4385 * ipa-reference.c (analyze_function): Likewise.
4387 2014-06-04 Kai Tietz <ktietz@redhat.com>
4389 * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
4390 from old call-instruction.
4392 2014-06-04 Bin Cheng <bin.cheng@arm.com>
4394 * config/aarch64/aarch64.c (aarch64_classify_address)
4395 (aarch64_legitimize_reload_address): Support full addressing modes
4397 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
4398 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
4400 2014-06-03 Andrew Pinski <apinski@cavium.com>
4402 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
4405 2014-06-03 Andrew Pinski <apinski@cavium.com>
4407 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
4408 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
4410 2014-06-03 Kai Tietz <ktietz@redhat.com>
4412 * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
4415 2014-06-03 Dehao Chen <dehao@google.com>
4417 * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
4420 2014-06-03 Marek Polacek <polacek@redhat.com>
4423 * doc/invoke.texi: Document -Wswitch-bool.
4424 * function.c (stack_protect_epilogue): Cast controlling expression of
4426 * gengtype.c (walk_type): Generate switch expression with its
4427 controlling expression cast to int.
4429 2014-06-03 Vishnu K S <Vishnu.k_s@atmel.com>
4431 * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
4433 * config/avr/avr-tables.opt: Regenerate.
4434 * config/avr/t-multilib: Regenerate.
4435 * doc/avr-mmcu.texi: Regenerate.
4437 2014-06-03 Vishnu K S <vishnu.k_s@atmel.com>
4438 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
4440 * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
4441 (ata6617c, ata664251): Add new avr35 devices.
4442 (ata6612c): Add new avr4 device.
4443 (ata6613c, ata6614q): Add new avr5 devices.
4444 * config/avr/avr-tables.opt: Regenerate.
4445 * config/avr/t-multilib: Regenerate.
4446 * doc/avr-mmcu.texi: Regenerate.
4448 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
4450 * gcc/config/aarch64/aarch64-builtins.c
4451 (aarch64_types_binop_ssu_qualifiers): New static data.
4452 (TYPES_BINOP_SSU): Define.
4453 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
4454 urshr_n, ushll_n): Use appropriate unsigned qualifiers.
4455 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
4456 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
4457 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
4458 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
4459 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
4460 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
4461 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
4462 suffix to builtin function name, remove cast.
4463 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
4464 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
4465 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
4467 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
4469 * gcc/config/aarch64/aarch64-builtins.c
4470 (aarch64_types_binop_uus_qualifiers,
4471 aarch64_types_shift_to_unsigned_qualifiers,
4472 aarch64_types_unsigned_shiftacc_qualifiers): Define.
4473 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
4474 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
4475 sqshlu_n, uqshl_n): Update qualifiers.
4476 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
4477 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
4478 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
4479 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
4480 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
4481 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
4482 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
4483 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
4484 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
4485 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
4486 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
4487 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
4488 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
4489 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
4490 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
4491 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
4492 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
4493 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
4494 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
4495 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
4496 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
4497 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
4498 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
4499 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
4500 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
4501 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
4502 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
4504 2014-06-03 Teresa Johnson <tejohnson@google.com>
4506 * tree-sra.c (modify_function): Record caller nodes after rebuild.
4508 2014-06-02 Jason Merrill <jason@redhat.com>
4511 * varpool.c (ctor_for_folding): Handle uninitialized vtables.
4513 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
4515 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
4518 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
4520 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
4522 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
4523 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
4524 * config/aarch64/iterators.md (REVERSE): New iterator.
4525 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
4526 (rev_op): New int_attribute.
4527 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
4528 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
4529 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
4530 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
4531 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
4532 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
4533 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
4534 Replace temporary __asm__ with __builtin_shuffle.
4536 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
4538 * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
4540 * config/mips/mips-tables.opt: Regenerate.
4541 * config/mips/mips.c (mips_compute_frame_info): Changed if statement
4542 to use mips_isa_rev rather than ISA_MIPS32R2.
4543 * config/mips/mips.h (ISA_MIPS32R3): New define.
4544 (ISA_MIPS32R5): New define.
4545 (ISA_MIPS64R3): New define.
4546 (ISA_MIPS64R5): New define.
4547 (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
4548 ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
4549 (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
4551 (MIPS_ISA_SYNCI_SPEC): Likewise.
4552 (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
4553 (LINK_SPEC): Added mips32r3 and mips32r5.
4554 * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
4555 to mips32r2; and mips64r3 and mips64r5 to mips64r2.
4556 * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
4557 * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
4558 * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
4559 * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
4560 * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
4562 2014-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
4564 * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
4566 * config/mips/mips.opt (mxpa): New option.
4567 * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
4570 2014-06-03 Martin Jambor <mjambor@suse.cz>
4573 * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
4576 2014-06-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
4578 PR tree-optimization/61328
4579 * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
4580 initialization from find_bswap_or_nop_1.
4581 (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
4582 in source_expr2 before using the size value the function sets. Also
4583 make use of init_symbolic_number () in both the old place and
4584 find_bswap_or_nop_load () to avoid reading uninitialized memory when
4585 doing recursion in the GIMPLE_BINARY_RHS case.
4587 2014-06-03 Richard Biener <rguenther@suse.de>
4589 PR tree-optimization/61383
4590 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
4593 2014-06-03 Richard Sandiford <rdsandiford@googlemail.com>
4595 * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
4596 (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
4597 (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
4598 (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
4600 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
4601 (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
4602 * system.h: ...here and make it unconditional.
4603 * target.def (conditional_register_usage): Mention
4604 define_register_constraint instead of old-style constraint macros.
4605 * doc/tm.texi.in: Remove documentation for old-style constraint macros.
4606 * doc/tm.texi: Regenerate.
4607 * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
4608 protected by !USE_MD_CONSTRAINTS.
4609 * config/frv/frv.md: Remove quote from old version of documentation.
4610 * config/frv/frv.c (frv_conditional_register_usage): Likewise.
4611 * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
4612 CONST_DOUBLE_OK_FOR_LETTER.
4613 * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
4615 2014-06-02 Andrew Pinski <apinski@cavium.com>
4617 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
4618 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
4619 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
4620 file whose name depends on -mabi= and -mbig-endian.
4621 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
4622 Handle LP64 better and handle ilp32 too.
4623 (MULTILIB_OPTIONS): Delete.
4624 (MULTILIB_DIRNAMES): Delete.
4626 2014-06-02 Andrew MacLeod <amacleod@redhat.com>
4628 * expr.h: Remove prototypes of functions defined in builtins.c.
4629 * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
4630 Remove prototypes of functions defined in builtins.c.
4631 * builtins.h: Update prototype list to include all exported functions.
4632 * builtins.c: (default_libc_has_function, gnu_libc_has_function,
4633 no_c99_libc_has_function): Move to targhooks.c
4634 (build_string_literal, build_call_expr_loc_array,
4635 build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
4637 (expand_builtin_object_size, fold_builtin_object_size): Make static.
4638 * targhooks.c (default_libc_has_function, gnu_libc_has_function,
4639 no_c99_libc_has_function): Relocate from builtins.c.
4640 * tree.c: Include builtins.h.
4641 (build_call_expr_loc_array, build_call_expr_loc_vec,
4642 build_call_expr_loc, build_call_expr, build_string_literal): Relocate
4644 * fold-const.h (fold_fma): Move prototype to builtins.h.
4645 * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
4646 * asan.c: Include builtins.h.
4647 * cfgexpand.c: Likewise.
4648 * convert.c: Likewise.
4649 * emit-rtl.c: Likewise.
4650 * except.c: Likewise.
4652 * fold-const.c: Likewise.
4653 * gimple-fold.c: Likewise.
4654 * gimple-ssa-strength-reduction.c: Likewise.
4655 * gimplify.c: Likewise.
4656 * ipa-inline.c: Likewise.
4657 * ipa-prop.c: Likewise.
4658 * lto-streamer-out.c: Likewise.
4660 * tree-inline.c: Likewise.
4661 * tree-object-size.c: Likewise.
4662 * tree-sra.c: Likewise.
4663 * tree-ssa-ccp.c: Likewise.
4664 * tree-ssa-forwprop.c: Likewise.
4665 * tree-ssa-loop-ivcanon.c: Likewise.
4666 * tree-ssa-loop-ivopts.c: Likewise.
4667 * tree-ssa-math-opts.c: Likewise.
4668 * tree-ssa-reassoc.c: Likewise.
4669 * tree-ssa-threadedge.c: Likewise.
4670 * tree-streamer-in.c: Likewise.
4671 * tree-vect-data-refs.c: Likewise.
4672 * tree-vect-patterns.c: Likewise.
4673 * tree-vect-stmts.c: Likewise.
4674 * config/aarch64/aarch64.c: Likewise.
4675 * config/alpha/alpha.c: Likewise.
4676 * config/arc/arc.c: Likewise.
4677 * config/arm/arm.c: Likewise.
4678 * config/avr/avr.c: Likewise.
4679 * config/bfin/bfin.c: Likewise.
4680 * config/c6x/c6x.c: Likewise.
4681 * config/cr16/cr16.c: Likewise.
4682 * config/cris/cris.c: Likewise.
4683 * config/epiphany/epiphany.c: Likewise.
4684 * config/fr30/fr30.c: Likewise.
4685 * config/frv/frv.c: Likewise.
4686 * config/h8300/h8300.c: Likewise.
4687 * config/i386/i386.c: Likewise.
4688 * config/i386/winnt.c: Likewise.
4689 * config/ia64/ia64.c: Likewise.
4690 * config/iq2000/iq2000.c: Likewise.
4691 * config/lm32/lm32.c: Likewise.
4692 * config/m32c/m32c.c: Likewise.
4693 * config/m32r/m32r.c: Likewise.
4694 * config/m68k/m68k.c: Likewise.
4695 * config/mcore/mcore.c: Likewise.
4696 * config/mep/mep.c: Likewise.
4697 * config/microblaze/microblaze.c: Likewise.
4698 * config/mips/mips.c: Likewise.
4699 * config/mmix/mmix.c: Likewise.
4700 * config/mn10300/mn10300.c: Likewise.
4701 * config/moxie/moxie.c: Likewise.
4702 * config/msp430/msp430.c: Likewise.
4703 * config/nds32/nds32.c: Likewise.
4704 * config/pa/pa.c: Likewise.
4705 * config/pdp11/pdp11.c: Likewise.
4706 * config/picochip/picochip.c: Likewise.
4707 * config/rl78/rl78.c: Likewise.
4708 * config/rs6000/rs6000.c: Likewise.
4709 * config/rx/rx.c: Likewise.
4710 * config/s390/s390.c: Likewise.
4711 * config/score/score.c: Likewise.
4712 * config/sh/sh.c: Likewise.
4713 * config/sparc/sparc.c: Likewise.
4714 * config/spu/spu.c: Likewise.
4715 * config/stormy16/stormy16.c: Likewise.
4716 * config/tilegx/tilegx.c: Likewise.
4717 * config/tilepro/tilepro.c: Likewise.
4718 * config/v850/v850.c: Likewise.
4719 * config/vax/vax.c: Likewise.
4720 * config/xtensa/xtensa.c: Likewise.
4722 2014-06-02 Jeff Law <law@redhat.com>
4724 PR rtl-optimization/61094
4725 * ree.c (combine_reaching_defs): Do not reextend an insn if it
4726 was marked as do_no_reextend. If a copy is needed to eliminate
4727 an extension, then mark it as do_not_reextend.
4729 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
4731 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
4733 2014-06-02 Richard Henderson <rth@redhat.com>
4736 * config/alpha/alpha.c (print_operand_address): Allow symbolic
4737 addresses inside asms. Use output_operand_lossage instead of
4740 2014-06-02 Uros Bizjak <ubizjak@gmail.com>
4743 * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
4744 GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
4746 2014-06-02 Tom de Vries <tom@codesourcery.com>
4748 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
4749 case that x has VOIDmode.
4751 2014-06-02 Bernd Schmidt <bernds@codesourcery.com>
4753 * varasm.c (copy_constant): Delete function.
4754 (build_constant_desc): Don't call it.
4756 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4759 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
4760 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
4761 with immediate_operand.
4763 2014-06-02 Andreas Schwab <schwab@suse.de>
4765 * config/ia64/ia64.c
4766 (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
4767 pending_data_specs first.
4769 2014-06-02 Richard Biener <rguenther@suse.de>
4771 PR tree-optimization/61378
4772 * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
4775 2014-06-01 Uros Bizjak <ubizjak@gmail.com>
4777 * config/i386/constraints.md (Bw): Rename from 'w'.
4778 (Bz): Rename from 'z'.
4779 * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
4781 2014-06-01 Kai Tietz <ktietz@redhat.com>
4784 * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
4785 * config/i386/i386.md (sibcall_insn_operand): Use Bs
4786 instead of m constraint.
4788 2014-05-31 Andreas Schwab <schwab@linux-m68k.org>
4790 * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
4791 a separate alternative where the scratch operand 2 is marked as
4794 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
4796 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
4797 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
4798 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
4799 and __builtins_arm_get_fpscr.
4800 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
4801 __builtins_arm_get_fpscr.
4802 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
4803 __builtins_arm_ldfpscr.
4804 (arm_atomic_assign_expand_fenv): New function.
4805 * config/arm/vfp.md (set_fpscr): New pattern.
4806 (get_fpscr) : Likewise.
4807 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
4809 * doc/extend.texi (AARCH64 Built-in Functions) : Document
4810 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
4812 2014-05-30 Jakub Jelinek <jakub@redhat.com>
4814 * asan.c (report_error_func): Add SLOW_P argument, use
4815 BUILT_IN_ASAN_*_N if set.
4816 (build_check_stmt): Likewise.
4817 (instrument_derefs): If T has insufficient alignment,
4818 force same handling as for odd sizes.
4820 * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
4821 BUILT_IN_ASAN_REPORT_STORE_N): New.
4822 * asan.c (struct asan_mem_ref): Change access_size type to
4824 (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
4825 update_mem_ref_hash_table): Likewise.
4826 (asan_mem_ref_hasher::hash): Hash in a HWI.
4827 (report_error_func): Change size_in_bytes argument to HWI.
4828 Use *_N builtins if size_in_bytes is larger than 16 or not power of
4830 (build_shadow_mem_access): New function.
4831 (build_check_stmt): Use it. Change size_in_bytes argument to HWI.
4832 Handle size_in_bytes not power of two or larger than 16.
4833 (instrument_derefs): Don't give up if size_in_bytes is not
4834 power of two or is larger than 16.
4836 2014-05-30 Kai Tietz <ktietz@redhat.com>
4839 * config/i386/i386.c (x86_output_mi_thunk): Add memory case
4840 for sibling-tail-calls.
4841 * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
4843 * config/i386/predicates.md (sibcall_memory_operand): New predicate.
4844 (sibcall_insn_operand): Add check for sibcall_memory_operand.
4846 2014-05-30 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
4848 * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
4849 * config/avr/avr-tables.opt: Regenerate.
4850 * config/avr/t-multilib: Regenerate.
4851 * doc/avr-mmcu.texi: Regenerate.
4853 2014-05-30 Ian Lance Taylor <iant@google.com>
4855 * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
4858 2014-05-30 Tom de Vries <tom@codesourcery.com>
4860 * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
4863 2014-05-30 Tom de Vries <tom@codesourcery.com>
4865 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
4866 * lra.c (initialize_lra_reg_info_element): Add init of
4867 actual_call_used_reg_set field.
4868 (lra): Call lra_create_live_ranges before lra_inheritance for
4870 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
4872 * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
4873 instead of call_used_reg_set for -fuse-caller-save.
4874 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
4876 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4878 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
4880 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
4882 2014-05-30 Richard Sandiford <rdsandiford@googlemail.com>
4884 * ira.c (ira_get_dup_out_num): Check for output operands at
4885 the start of the loop. Handle cases where an included alternative
4886 follows an excluded one.
4888 2014-05-29 Mike Stump <mikestump@comcast.net>
4891 * collect2.c (maybe_run_lto_and_relink): Be sure to always run
4892 post ld passes when lto is used.
4894 2014-05-29 Vladimir Makarov <vmakarov@redhat.com>
4896 PR rtl-optimization/61325
4897 * lra-constraints.c (process_address): Rename to process_address_1.
4898 (process_address): New function.
4900 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
4902 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
4903 TYPES_BINOPV): New static data.
4904 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
4906 * config/aarch64/aarch64-simd.md (aarch64_ext,
4907 aarch64_im_lane_boundsi): New patterns.
4908 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
4910 (aarch64_evpc_ext): New function.
4912 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
4914 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
4915 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
4916 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
4917 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
4918 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
4920 2014-05-29 Tom de Vries <tom@codesourcery.com>
4922 * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
4924 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
4925 Richard Sandiford <rdsandiford@googlemail.com>
4927 * arm/iterators.md (shiftable_ops): New code iterator.
4928 (t2_binop0, arith_shift_insn): New code attributes.
4929 * arm/predicates.md (shift_nomul_operator): New predicate.
4930 * arm/arm.md (insn_enabled): Delete.
4931 (enabled): Remove insn_enabled test.
4932 (*arith_shiftsi): Delete. Replace with ...
4933 (*<arith_shift_insn>_multsi): ... new pattern.
4934 (*<arith_shift_insn>_shiftsi): ... new pattern.
4935 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
4937 2014-05-29 Radovan Obradovic <robradovic@mips.com>
4938 Tom de Vries <tom@codesourcery.com>
4940 * config/mips/mips.h (POST_CALL_TMP_REG): Define.
4941 * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
4943 (mips_split_call): Use POST_CALL_TMP_REG.
4944 (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
4946 2014-05-29 Tom de Vries <tom@codesourcery.com>
4948 * final.c (collect_fn_hard_reg_usage): Guard variable declaration
4949 with #ifdef STACK_REGS.
4951 2014-05-28 Jan Hubicka <hubicka@ucw.cz>
4953 * varasm.c (get_variable_section): Walk aliases.
4954 (place_block_symbol): Walk aliases.
4956 2014-05-28 Tom de Vries <tom@codesourcery.com>
4959 2014-05-28 Tom de Vries <tom@codesourcery.com>
4961 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
4962 * lra.c (initialize_lra_reg_info_element): Add init of
4963 actual_call_used_reg_set field.
4964 (lra): Call lra_create_live_ranges before lra_inheritance for
4966 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
4968 * lra-constraints.c (need_for_call_save_p): Use
4969 actual_call_used_reg_set instead of call_used_reg_set for
4971 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
4973 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
4975 * doc/md.texi: Document that the % constraint character must
4976 be at the beginning of the string.
4977 * genoutput.c (validate_insn_alternatives): Check that '=',
4978 '+' and '%' only appear at the beginning of a constraint.
4979 * ira.c (commutative_constraint_p): Delete.
4980 (ira_get_dup_out_num): Expect the '%' commutativity marker to be
4981 at the start of the string.
4982 * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
4984 * config/arm/neon.md (bicdi3_neon): Likewise.
4985 * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
4986 (slt_si, sltu_si): Likewise.
4987 * config/vax/vax.md (sbcdi3): Likewise.
4988 * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
4989 * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
4990 (mul64): Move '%' to beginning of constraint.
4991 * config/arm/arm.md (*xordi3_insn): Likewise.
4992 * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
4995 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
4997 * doc/md.texi: Document the restrictions on the "enabled" attribute.
4999 2014-05-28 Jason Merrill <jason@redhat.com>
5002 * cgraph.h (symtab_node::get_comdat_group_id): New.
5003 * cgraphunit.c (analyze_functions): Call it.
5004 * symtab.c (dump_symtab_node): Likewise.
5005 * tree.c (decl_comdat_group_id): New.
5006 * tree.h: Declare it.
5007 * lto-streamer-out.c (write_symbol): Use it.
5008 * trans-mem.c (ipa_tm_create_version_alias): Likewise.
5010 2014-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5012 PR bootstrap/PR61146
5013 * wide-int.cc: Do not include longlong.h when compiling with clang.
5015 2014-05-28 Richard Biener <rguenther@suse.de>
5017 * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
5018 * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
5019 (vrp_visit_assignment_or_call): Print less vertical space.
5020 (vrp_visit_stmt): Likewise.
5021 (vrp_visit_phi_node): Likewise. For a PHI argument with
5022 VR_VARYING range consider recording it as copy.
5024 2014-05-28 Richard Biener <rguenther@suse.de>
5027 2014-05-28 Richard Biener <rguenther@suse.de>
5029 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
5031 2014-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
5033 * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
5034 sufficiently aligned and an offset is used at the same time.
5035 (expand_expr_real_1): Likewise.
5037 2014-05-28 Richard Biener <rguenther@suse.de>
5040 * fold-const.c (fold_comparison): When folding
5041 X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
5042 the sign of the remaining constant operand stays the same.
5044 2014-05-28 Kaushik Phatak <kaushik.phatak@kpit.com>
5046 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
5047 __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
5048 (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
5050 (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
5051 * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
5052 (m32bit-doubles) Likewise.
5053 * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
5054 * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
5057 2014-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5059 * configure.ac ($gcc_cv_ld_clearcap): New test.
5060 * configure: Regenerate.
5061 * config.in: Regenerate.
5062 * config/sol2.opt (mclear-hwcap): New option.
5063 * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
5064 * config/sol2-clearcap.map: Moved here from
5065 testsuite/gcc.target/i386/clearcap.map.
5066 * config/sol2-clearcapv2.map: Move here from
5067 gcc.target/i386/clearcapv2.map.
5068 * config/t-sol2 (install): Depend on install-clearcap-map.
5069 (install-clearcap-map): New target.
5070 * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
5073 2014-05-28 Richard Biener <rguenther@suse.de>
5075 * hwint.h (*_HALF_WIDE_INT*): Move to ...
5076 * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
5077 ... here and remove the rest.
5078 * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
5080 2014-05-28 Richard Biener <rguenther@suse.de>
5082 PR tree-optimization/61335
5083 * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
5084 new range fails, drop to varying.
5086 2014-05-28 Olivier Hainque <hainque@adacore.com>
5088 * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
5089 (CPP_SPEC): Add entry for -mcpu=8548.
5090 * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
5091 * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
5093 2014-05-28 Tom de Vries <tom@codesourcery.com>
5095 * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
5096 * lra.c (initialize_lra_reg_info_element): Add init of
5097 actual_call_used_reg_set field.
5098 (lra): Call lra_create_live_ranges before lra_inheritance for
5100 * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
5102 * lra-constraints.c (need_for_call_save_p): Use
5103 actual_call_used_reg_set instead of call_used_reg_set for
5105 * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
5107 2014-05-28 Radovan Obradovic <robradovic@mips.com>
5108 Tom de Vries <tom@codesourcery.com>
5110 * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
5112 (@item -fuse-caller-save): New item.
5114 2014-05-28 Radovan Obradovic <robradovic@mips.com>
5115 Tom de Vries <tom@codesourcery.com>
5117 * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
5118 OPT_fuse_caller_save.
5120 2014-05-28 Radovan Obradovic <robradovic@mips.com>
5121 Tom de Vries <tom@codesourcery.com>
5123 * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
5124 * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
5125 get_call_reg_set_usage.
5126 * resource.c (mark_set_resources, mark_target_live_regs): Use
5127 get_call_reg_set_usage.
5128 * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
5130 (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
5131 * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
5132 Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5133 * ira-build.c (ira_create_allocno): Init
5134 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5135 (create_cap_allocno, propagate_allocno_info)
5136 (propagate_some_info_from_allocno)
5137 (copy_info_to_removed_store_destinations): Handle
5138 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5139 * ira-costs.c (ira_tune_allocno_costs): Use
5140 ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
5142 2014-05-28 Radovan Obradovic <robradovic@mips.com>
5143 Tom de Vries <tom@codesourcery.com>
5145 * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
5146 and function_used_regs_valid fields.
5147 * final.c: Move include of hard-reg-set.h to before rtl.h to declare
5148 find_all_hard_reg_sets.
5149 (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
5150 (get_call_reg_set_usage): New function.
5151 (rest_of_handle_final): Use collect_fn_hard_reg_usage.
5152 * regs.h (get_call_reg_set_usage): Declare.
5154 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
5157 * config/dbx.h (License): Add Runtime Library Exception.
5158 * config/newlib-stdint.h (License): Same.
5159 * config/rtems.h (License): Same
5160 * config/initfini-array.h (License): Same
5161 * config/v850/v850.h (License): Same.
5162 * config/v850/v850-opts.h (License): Same
5163 * config/v850/rtems.h (License): Same.
5165 2014-05-28 Georg-Johann Lay <avr@gjlay.de>
5168 * doc/extend.texi (Local Labels): Note that label differences are
5169 not supported for AVR.
5171 2014-05-28 Richard Sandiford <rdsandiford@googlemail.com>
5172 Olivier Hainque <hainque@adacore.com>
5174 * rtl.h (set_for_reg_notes): Declare.
5175 * emit-rtl.c (set_for_reg_notes): New function.
5176 (set_unique_reg_note): Use it.
5177 * optabs.c (add_equal_note): Likewise
5179 2014-05-27 Andrew Pinski <apinski@cavium.com>
5181 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
5182 Use <w> for the register in assembly template.
5183 (stack_protect_test): Use the mode of operands[0] for the result.
5184 (stack_protect_test_<mode>): Use <w> for the register
5185 in assembly template.
5187 2014-05-27 DJ Delorie <dj@redhat.com>
5189 * config/rx/rx.c (add_vector_labels): New.
5190 (rx_output_function_prologue): Call it.
5191 (rx_handle_func_attribute): Don't require empty arguments.
5192 (rx_handle_vector_attribute): New.
5193 (rx_attribute_table): Add "vector" attribute.
5194 * doc/extend.texi (interrupt, vector): Document new/changed
5195 RX-specific attributes.
5197 * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
5199 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
5201 * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
5202 predicate to detect a negative quotient.
5204 2014-05-27 Eric Botcazou <ebotcazou@adacore.com>
5206 * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
5207 to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
5208 Add X - Y CMP 0 to X CMP Y transformation.
5209 (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
5211 2014-05-27 Segher Boessenkool <segher@kernel.crashing.org>
5213 * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
5216 2014-05-27 Steve Ellcey <sellcey@mips.com>
5218 * config/mips/mips.c: Add include of cgraph.h.
5220 2014-05-27 Richard Biener <rguenther@suse.de>
5222 * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
5224 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
5227 * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
5228 * config/arm/arm-cores.def (License): Same.
5229 * config/arm/arm-opts.h (License): Same.
5230 * config/arm/aout.h (License): Same.
5231 * config/arm/bpabi.h (License): Same.
5232 * config/arm/elf.h (License): Same.
5233 * config/arm/linux-elf.h (License): Same.
5234 * config/arm/linux-gas.h (License): Same.
5235 * config/arm/netbsd-elf.h (License): Same.
5236 * config/arm/uclinux-eabi.h (License): Same.
5237 * config/arm/uclinux-elf.h (License): Same.
5238 * config/arm/vxworks.h (License): Same.
5240 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5242 * config/arm/neon.md (neon_bswap<mode>): New pattern.
5243 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
5244 (arm_init_neon_builtins): Handle NEON_BSWAP.
5245 Define required type nodes.
5246 (arm_expand_neon_builtin): Handle NEON_BSWAP.
5247 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
5248 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
5249 * config/arm/iterators.md (VDQHSD): New mode iterator.
5251 2014-05-27 Richard Biener <rguenther@suse.de>
5253 * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
5254 Try using literal operands when comparing value-ranges failed.
5256 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
5258 * ira.c (commutative_operand): Adjust for change to recog_data.
5259 [Missing from previous commit.]
5261 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
5263 * system.h (TEST_BIT): New macro.
5264 * recog.h (alternative_mask): New type.
5265 (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
5266 (recog_data_d): Replace alternative_enabled_p array with
5267 enabled_alternatives.
5268 (target_recog): New structure.
5269 (default_target_recog, this_target_recog): Declare.
5270 (get_enabled_alternatives, recog_init): Likewise.
5271 * recog.c (default_target_recog, this_target_recog): New variables.
5272 (get_enabled_alternatives): New function.
5273 (extract_insn): Use it.
5274 (recog_init): New function.
5275 (preprocess_constraints, constrain_operands): Adjust for change to
5277 * postreload.c (reload_cse_simplify_operands): Likewise.
5278 * reload.c (find_reloads): Likewise.
5279 * ira-costs.c (record_reg_classes): Likewise.
5280 * ira-lives.c (single_reg_class): Likewise. Fix bug in which
5281 all alternatives after a disabled one would be skipped.
5282 (ira_implicitly_set_insn_hard_regs): Likewise.
5283 * ira.c (ira_setup_alts): Adjust for change to recog_data.
5284 * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
5285 with enabled_alternatives.
5286 * lra.c (free_insn_recog_data): Update accordingly.
5287 (lra_update_insn_recog_data): Likewise.
5288 (lra_set_insn_recog_data): Likewise. Use get_enabled_alternatives.
5289 * lra-constraints.c (process_alt_operands): Likewise. Handle
5290 only_alternative as part of the enabled mask.
5291 * target-globals.h (this_target_recog): Declare.
5292 (target_globals): Add a recog field.
5293 (restore_target_globals): Restore this_target_recog.
5294 * target-globals.c: Include recog.h.
5295 (default_target_globals): Initialize recog field.
5296 (save_target_globals): Likewise.
5297 * reginfo.c (reinit_regs): Call recog_init.
5298 * toplev.c (backend_init_target): Likewise.
5300 2014-05-27 Richard Sandiford <rdsandiford@googlemail.com>
5302 * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
5303 rather than any named insn's code.
5305 2014-05-27 Georg-Johann Lay <avr@gjlay.de>
5308 * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
5309 * config/arm/arm-cores.def (License): Same.
5311 2014-05-26 Jan Hubicka <hubicka@ucw.cz>
5313 * tree.h (decl_comdat_group): Declare.
5314 * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
5315 * tree.c (decl_comdat_group): Here.
5317 2014-05-26 Richard Sandiford <r.sandiford@uk.ibm.com>
5319 PR rtl-optimization/61222
5320 * combine.c (simplify_shift_const_1): When moving a PLUS outside
5321 the shift, truncate the PLUS operand to the result mode.
5323 2014-05-26 Uros Bizjak <ubizjak@gmail.com>
5326 * config/i386/i386.c (ix86_rtx_costs)
5327 <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
5330 2014-05-26 Martin Jambor <mjambor@suse.cz>
5332 * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
5335 2014-05-26 Richard Biener <rguenther@suse.de>
5337 * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
5338 wi::int_traits <long long>, wi::int_traits <unsigned long long>):
5339 Provide specializations.
5340 (wi::int_traits <HOST_WIDE_INT>,
5341 wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
5343 2014-05-26 Alan Modra <amodra@gmail.com>
5346 * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
5347 params and return a bool. Remove dead code. Update comment.
5348 Assert we have a const_int source. Remove bogus code from
5349 32-bit HWI days. Move !TARGET_POWERPC64 handling, and correct
5350 handling of constants > 2G and reg_equal note, from..
5351 (rs6000_emit_set_long_const): ..here. Remove unneeded param and
5352 return value. Update comment. If we can, use a new pseudo
5353 for intermediate calculations.
5354 * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
5356 * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
5357 call to rs6000_emit_set_const in splitter.
5358 (movdi_internal64+2, +3): Likewise.
5360 2014-05-26 Richard Biener <rguenther@suse.de>
5362 * system.h: Define __STDC_FORMAT_MACROS before
5363 including inttypes.h.
5364 * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
5365 HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
5366 HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
5367 HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
5368 HOST_WIDEST_INT_C): Remove.
5369 (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
5370 if C99 inttypes.h is not available.
5371 * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
5372 * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
5373 * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
5374 * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
5375 * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
5376 (struct output_info): Likewise.
5377 (print_statistics): Adjust.
5378 (dump_bitmap_statistics): Likewise.
5379 * bt-load.c (migrate_btr_defs): Print with PRId64.
5380 * cfg.c (dump_edge_info, dump_bb_info): Likewise.
5381 (MAX_SAFE_MULTIPLIER): Adjust.
5382 * cfghooks.c (dump_bb_for_graph): Print with PRId64.
5383 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
5384 dump_cgraph_node): Likewise.
5385 * final.c (dump_basic_block_info): Likewise.
5386 * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
5387 * gcov.c (format_gcov): Likewise.
5388 * ipa-cp.c (good_cloning_opportunity_p): Likewise. Use int64_t
5390 (get_clone_agg_value): Use HOST_WIDE_INT for offset.
5391 * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
5392 (inline_small_functions, dump_overall_stats, dump_inline_stats):
5393 Use PRId64 for dumping.
5394 * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
5395 * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
5396 (add_allocno_hard_regs): Adjust.
5397 * loop-doloop.c (doloop_modify): Print using PRId64.
5398 * loop-iv.c (inverse): Compute in uint64_t.
5399 (determine_max_iter, iv_number_of_iterations): Likewise.
5400 * loop-unroll.c (decide_peel_completely, decide_peel_simple):
5402 * lto-streamer-out.c (write_symbol): Use uint64_t.
5403 * mcf.c (CAP_INFINITY): Use int64_t maximum.
5404 (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
5405 find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
5406 * modulo-sched.c (const_iteration_count): Use int64_t.
5407 (sms_schedule): Dump using PRId64.
5408 * predict.c (dump_prediction): Likewise.
5409 * pretty-print.h (pp_widest_integer): Remove.
5410 * profile.c (get_working_sets, is_edge_inconsistent,
5411 is_inconsistent, read_profile_edge_counts): Dump using PRId64.
5412 * tree-pretty-print.c (pp_double_int): Remove case handling
5413 HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
5414 * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
5416 (pass_optimize_bswap::execute): Remove restriction on hosts.
5417 * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
5418 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
5419 * tree.c (widest_int_cst_value): Remove.
5420 * tree.h (widest_int_cst_value): Likewise.
5421 * value-prof.c (dump_histogram_value): Print using PRId64.
5422 * gengtype.c (main): Also inject int64_t.
5423 * ggc-page.c (struct max_alignment): Use int64_t.
5424 * alloc-pool.c (struct allocation_object_def): Likewise.
5425 * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
5427 * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
5428 * doc/tm.texi: Regenerated.
5429 * gengtype-lex.l (IWORD): Handle [u]int64_t.
5430 * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
5431 * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
5432 mmix_output_register_setting): Use [u]int64_t in prototypes.
5433 * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
5434 mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
5435 mmix_output_octa, mmix_output_shifted_value): Adjust.
5436 (mmix_intval): Adjust. Remove unreachable case.
5437 * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
5439 2014-05-26 Richard Biener <rguenther@suse.de>
5441 * configure.ac: Drop __int64 type check. Insist that we
5442 found uint64_t and int64_t.
5443 * hwint.h (HOST_BITS_PER___INT64): Remove.
5444 (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
5445 (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
5446 (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
5447 (HOST_WIDEST_FAST_INT): Remove __int64 case.
5448 * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
5449 for dst_q_src_df_rms_cdt.
5450 * configure: Regenerate.
5451 * config.in: Likewise.
5453 2014-05-26 Michael Tautschnig <mt@debian.org>
5456 * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
5457 __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
5459 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5461 PR rtl-optimization/61278
5462 * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
5464 2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5466 PR rtl-optimization/61220
5467 Part of PR rtl-optimization/61225
5468 * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
5469 insn; skip split_edge for a block with only one successor.
5471 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5473 * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
5476 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5478 * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
5479 (update_vtable_references): New function.
5480 (function_and_variable_visibility): Rewrite also vtable initializers.
5481 * varpool.c (cgraph_variable_initializer_availability): Remove assert.
5483 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5485 * ggc.h (ggc_grow): New function.
5486 * ggc-none.c (ggc_grow): New function.
5487 * ggc-page.c (ggc_grow): Likewise.
5489 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5491 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
5492 address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
5493 comdat_can_be_unshared_p, cgraph_externally_visible_p,
5494 varpool_externally_visible_p, can_replace_by_local_alias,
5495 update_visibility_by_resolution_info, function_and_variable_visibility,
5496 pass_data_ipa_function_and_variable_visibility,
5497 make_pass_ipa_function_and_variable_visibility,
5498 whole_program_function_and_variable_visibility,
5499 pass_data_ipa_whole_program_visibility,
5500 make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
5501 * cgraph.h (cgraph_local_node_p): Declare.
5502 * ipa-visibility.c: New file.
5503 * Makefile.in (OBJS): Add ipa-visiblity.o
5505 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5507 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
5508 that var decl is available.
5510 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5512 * tree-core.h (tree_decl_with_vis): Replace comdat_group by
5513 symtab_node pointer.
5514 * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
5515 (find_decls_types_r): Do not walk COMDAT_GROUP.
5516 * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
5517 * varasm.c (make_decl_one_only): Use set_comdat_group;
5518 create node if needed.
5519 * ipa-inline-transform.c (save_inline_function_body): Update
5520 way we decl->symtab mapping.
5521 * symtab.c (symtab_hash, hash_node, eq_node
5522 symtab_insert_node_to_hashtable): Remove.
5523 (symtab_register_node): Update.
5524 (symtab_unregister_node): Update.
5525 (symtab_get_node): Reimplement as inline function.
5526 (symtab_add_to_same_comdat_group): Update.
5527 (symtab_dissolve_same_comdat_group_list): Update.
5528 (dump_symtab_base): Update.
5529 (verify_symtab_base): Update.
5530 (symtab_make_decl_local): Update.
5531 (fixup_same_cpp_alias_visibility): Update.
5532 (symtab_nonoverwritable_alias): Update.
5533 * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
5534 * ipa.c (update_visibility_by_resolution_info): UPdate.
5535 * bb-reorder.c: Include cgraph.h
5536 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
5538 * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
5539 * cgraph.c (cgraph_get_create_node): Update.
5540 * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
5542 (symtab_get_node): Make inline.
5543 (symtab_insert_node_to_hashtable): Remove.
5544 (symtab_can_be_discarded): Update.
5545 (decl_comdat_group): New function.
5546 * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
5548 * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
5550 (read_comdat_group): New function.
5551 (input_node, input_varpool_node): Use it.
5552 * trans-mem.c (ipa_tm_create_version_alias): Update code creating
5554 * mips.c (mips_start_unique_function): Likewise.
5555 (ix86_code_end): Likewise.
5556 (rs6000_code_end): Likweise.
5557 * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
5559 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5561 * gengtype-state.c (fatal_reading_state): Bring offline.
5562 * optabs.c (widening_optab_handler): Bring offline.
5563 * optabs.h (widening_optab_handler): Likewise.
5564 * final.c (get_attr_length_1): Likewise.
5566 2014-05-23 Jan Hubicka <hubicka@ucw.cz>
5568 * sched-int.h (sd_iterator_cond): Manually tail recurse.
5570 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5572 * config/rs6000/440.md (ppc440-integer): Include shift without dot.
5573 (ppc440-compare): Include shift with dot.
5574 * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
5575 * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
5577 * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
5579 (e6500_sfx2): Include it.
5580 * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
5581 *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
5582 *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
5583 andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
5584 *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
5585 *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
5586 *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
5587 *lshiftrt_internal1le, *lshiftrt_internal1be,
5588 *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
5589 *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
5590 *rotldi3_internal10le, *rotldi3_internal10be,
5591 *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
5592 ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
5593 ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
5594 *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
5595 define_insns): Use type "shift" in the appropriate alternatives.
5597 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5599 * config/rs6000/rs6000.md (type): Add "logical". Delete
5601 (dot): Adjust comment.
5602 (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
5603 *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
5604 *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
5605 anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
5606 *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
5607 *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
5608 *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
5609 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
5611 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5612 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
5613 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5614 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5615 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5616 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5617 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5618 * config/rs6000/8540.md (ppc8540_su): Adjust.
5619 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5620 cell-cmp-microcoded): Adjust.
5621 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
5622 * config/rs6000/e500mc.md (e500mc_su): Adjust.
5623 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
5624 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
5625 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
5626 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5627 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
5628 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
5629 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
5631 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
5632 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
5633 Adjust. Adjust comment.
5634 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5635 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
5637 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5639 * config/rs6000/rs6000.md (type): Add "add".
5640 (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
5641 *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
5642 define_insns): Use it.
5643 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
5645 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5646 * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
5647 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5648 * config/rs6000/601.md (ppc601-integer): Adjust.
5649 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5650 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5651 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5652 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5653 * config/rs6000/8540.md (ppc8540_su): Adjust.
5654 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5655 cell-cmp-microcoded): Adjust.
5656 * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
5657 * config/rs6000/e500mc.md (e500mc_su): Adjust.
5658 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
5659 * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
5660 * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
5661 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5662 * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
5663 * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
5664 * config/rs6000/power6.md (power6-integer, power6-fast-compare):
5666 * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
5667 * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
5668 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5669 * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
5671 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5673 * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
5674 "delayed_compare", "var_delayed_compare".
5675 (var_shift): New attribute.
5676 (cell_micro): Adjust.
5677 (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
5678 *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
5679 rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
5680 *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
5681 *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
5682 *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
5683 *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
5684 *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
5685 *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
5686 *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
5687 *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
5688 rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
5689 *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
5690 *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
5691 *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
5692 *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
5693 *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
5694 *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
5695 *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
5696 *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
5697 *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
5698 *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
5699 *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
5700 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5701 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5703 * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5704 * config/rs6000/440.md (ppc440-integer): Adjust.
5705 * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5706 * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
5707 * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5708 * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5709 * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5710 * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5711 * config/rs6000/8540.md (ppc8540_su): Adjust.
5712 * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5713 cell-cmp-microcoded): Adjust.
5714 * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
5715 * config/rs6000/e500mc.md (e500mc_su): Adjust.
5716 * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
5717 e500mc64_delayed): Adjust.
5718 * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
5719 * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
5720 * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5721 * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
5722 * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
5723 * config/rs6000/power6.md (power6-shift, power6-var-rotate,
5724 power6-delayed-compare, power6-var-delayed-compare): Adjust.
5725 * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
5726 * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
5728 * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5729 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
5731 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5733 * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv". Add "div".
5734 (bits): New mode_attr.
5735 (idiv_ldiv): Delete mode_attr.
5736 (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
5737 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5738 rs6000_adjust_priority, is_nonpipeline_insn,
5739 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5741 * config/rs6000/40x.md (ppc403-idiv): Adjust.
5742 * config/rs6000/440.md (ppc440-idiv): Adjust.
5743 * config/rs6000/476.md (ppc476-idiv): Adjust.
5744 * config/rs6000/601.md (ppc601-idiv): Adjust.
5745 * config/rs6000/603.md (ppc603-idiv): Adjust.
5746 * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
5747 ppc620-ldiv): Adjust.
5748 * config/rs6000/7450.md (ppc7450-idiv): Adjust.
5749 * config/rs6000/7xx.md (ppc750-idiv): Adjust.
5750 * config/rs6000/8540.md (ppc8540_divide): Adjust.
5751 * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
5752 * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
5753 * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
5754 * config/rs6000/e500mc.md (e500mc_divide): Adjust.
5755 * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
5756 * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
5757 * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
5758 * config/rs6000/mpc.md (mpccore-idiv): Adjust.
5759 * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
5760 * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
5761 * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
5762 * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
5763 * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
5764 * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
5765 * config/rs6000/titan.md (titan_fxu_div): Adjust.
5767 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5769 * config/rs6000/rs6000.md (type): Delete "insert_word",
5770 "insert_dword". Add "insert".
5771 (size): Update comment.
5772 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5773 insn_must_be_first_in_group): Adjust.
5774 (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
5775 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
5776 *insvsi_internal6, insvdi_internal): Adjust.
5778 * config/rs6000/40x.md (ppc403-integer): Adjust.
5779 * config/rs6000/440.md (ppc440-integer): Adjust.
5780 * config/rs6000/476.md (ppc476-simple-integer): Adjust.
5781 * config/rs6000/601.md (ppc601-integer): Adjust.
5782 * config/rs6000/603.md (ppc603-integer): Adjust.
5783 * config/rs6000/6xx.md (ppc604-integer): Adjust.
5784 * config/rs6000/7450.md (ppc7450-integer): Adjust.
5785 * config/rs6000/7xx.md (ppc750-integer): Adjust.
5786 * config/rs6000/8540.md (ppc8540_su): Adjust.
5787 * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
5788 * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
5789 * config/rs6000/e500mc.md (e500mc_su): Adjust.
5790 * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
5791 * config/rs6000/e5500.md (e5500_sfx): Adjust.
5792 * config/rs6000/e6500.md (e6500_sfx): Adjust.
5793 * config/rs6000/mpc.md (mpccore-integer): Adjust.
5794 * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
5795 * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
5796 * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
5797 * config/rs6000/power7.md (power7-integer): Adjust.
5798 * config/rs6000/power8.md (power8-1cyc): Adjust.
5799 * config/rs6000/rs64.md (rs64a-integer): Adjust.
5800 * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
5802 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5804 * config/rs6000/rs6000.md (type): Add "mul". Delete "imul",
5805 "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
5806 (size): New attribute.
5807 (dot): New attribute.
5808 (cell_micro): Adjust.
5809 (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
5810 umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
5811 *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
5812 umuldi3_highpart): Adjust.
5813 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5814 rs6000_adjust_priority, is_nonpipeline_insn,
5815 insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5817 * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
5818 ppc405-imul3): Adjust.
5819 * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
5820 * config/rs6000/476.md (ppc476-imul): Adjust.
5821 * config/rs6000/601.md (ppc601-imul): Adjust.
5822 * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
5823 * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
5824 ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
5825 * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
5826 * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
5828 * config/rs6000/8540.md (ppc8540_multiply): Adjust.
5829 * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
5830 * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
5832 * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
5833 * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
5834 * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
5835 * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
5836 * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
5837 * config/rs6000/mpc.md (mpccore-imul): Adjust.
5838 * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
5839 power4-lmul, power4-imul, power4-imul3): Adjust.
5840 * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
5841 power5-lmul, power5-imul, power5-imul3): Adjust.
5842 * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
5843 power6-lmul, power6-imul, power6-imul3): Adjust.
5844 * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
5845 * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
5847 * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
5848 rs64a-lmul): Adjust.
5849 * config/rs6000/titan.md (titan_imul): Adjust.
5851 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5853 * config/rs6000/rs6000.md (type): Add new value "halfmul".
5854 (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
5855 *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
5856 *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
5857 *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
5858 *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
5859 * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
5860 * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
5861 * config/rs6000/476.md (ppc476-imul): Add type halfmul.
5862 * config/rs6000/titan.md: Delete nonsensical comment.
5863 (titan_imul): Add type imul3.
5864 (titan_mulhw): Remove type imul3; add type halfmul.
5866 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
5868 * config/rs6000/rs6000.md (type): Reorder, reformat.
5870 2014-05-23 Martin Jambor <mjambor@suse.cz>
5872 PR tree-optimization/53787
5873 * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
5874 * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
5875 analysis_done, update all uses.
5876 * ipa-prop.c: Include domwalk.h
5877 (param_analysis_info): Removed.
5878 (param_aa_status): New type.
5879 (ipa_bb_info): Likewise.
5880 (func_body_info): Likewise.
5881 (ipa_get_bb_info): New function.
5882 (aa_overwalked): Likewise.
5883 (find_dominating_aa_status): Likewise.
5884 (parm_bb_aa_status_for_bb): Likewise.
5885 (parm_preserved_before_stmt_p): Changed to use new param AA info.
5886 (load_from_unmodified_param): Accept func_body_info as a parameter
5887 instead of parms_ainfo.
5888 (parm_ref_data_preserved_p): Changed to use new param AA info.
5889 (parm_ref_data_pass_through_p): Likewise.
5890 (ipa_load_from_parm_agg_1): Likewise. Update callers.
5891 (compute_complex_assign_jump_func): Changed to use new param AA info.
5892 (compute_complex_ancestor_jump_func): Likewise.
5893 (ipa_compute_jump_functions_for_edge): Likewise.
5894 (ipa_compute_jump_functions): Removed.
5895 (ipa_compute_jump_functions_for_bb): New function.
5896 (ipa_analyze_indirect_call_uses): Likewise, moved variable
5898 (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
5899 and info, moved variable declarations down.
5900 (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
5902 (ipa_analyze_stmt_uses): Likewise.
5903 (ipa_analyze_params_uses): Removed.
5904 (ipa_analyze_params_uses_in_bb): New function.
5905 (ipa_analyze_controlled_uses): Likewise.
5906 (free_ipa_bb_info): Likewise.
5907 (analysis_dom_walker): New class.
5908 (ipa_analyze_node): Handle node-specific forbidden analysis,
5909 initialize and free func_body_info, use dominator walker.
5910 (ipcp_modif_dom_walker): New class.
5911 (ipcp_transform_function): Create and free func_body_info, use
5912 ipcp_modif_dom_walker, moved a lot of functionality there.
5914 2014-05-23 Marek Polacek <polacek@redhat.com>
5915 Jakub Jelinek <jakub@redhat.com>
5917 * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
5918 * gcc.c (sanitize_spec_function): Likewise.
5919 * convert.c (convert_to_integer): Include "ubsan.h". Add
5920 floating-point to integer instrumentation.
5921 * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
5922 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
5923 SANITIZE_NONDEFAULT.
5924 * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
5925 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
5926 BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
5927 * ubsan.c: Include "realmpfr.h" and "dfp.h".
5928 (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
5929 (ubsan_type_descriptor): Set tkind to 0xffff for types other than
5930 float/double/long double.
5931 (ubsan_instrument_float_cast): New function.
5932 * ubsan.h (ubsan_instrument_float_cast): Declare.
5934 2014-05-23 Jiong Wang <jiong.wang@arm.com>
5936 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
5938 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
5939 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
5940 Adjust for tailcalling through registers.
5941 * config/aarch64/aarch64.h (enum reg_class): New caller save
5943 (REG_CLASS_NAMES): Likewise.
5944 (REG_CLASS_CONTENTS): Likewise.
5945 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
5946 Allow tailcalling without decls.
5948 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
5950 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
5951 Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
5953 * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
5954 gsi, and variables v_* to v*.
5956 2014-05-23 Eric Botcazou <ebotcazou@adacore.com>
5958 * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
5960 2014-05-23 Thomas Schwinge <thomas@codesourcery.com>
5962 * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
5963 * omp-low.c: Update accordingly.
5965 * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
5966 for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
5967 GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
5968 GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
5969 GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
5970 GF_OMP_TARGET_KIND_UPDATE.
5972 * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
5973 Explicitly enumerate the expected region types.
5975 2014-05-23 Paul Eggert <eggert@cs.ucla.edu>
5978 * doc/extend.texi (Function Attributes): Fix __attribute__ ((malloc))
5979 documentation; the old documentation didn't clearly state the
5980 constraints on the contents of the pointed-to storage.
5982 2014-05-23 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
5984 Fix bootstrap error on ia64
5985 * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
5986 Return default value.
5988 2014-05-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
5990 PR tree-optimization/54733
5991 * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
5993 (find_bswap_or_nop_load): New.
5994 (find_bswap_1): Renamed to ...
5995 (find_bswap_or_nop_1): This. Also add support for memory source.
5996 (find_bswap): Renamed to ...
5997 (find_bswap_or_nop): This. Also add support for memory source and
5998 detection of bitwise operations equivalent to load in target
6000 (execute_optimize_bswap): Likewise. Also move its leading comment back
6001 in place and split statement transformation into ...
6002 (bswap_replace): This.
6004 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
6006 PR rtl-optimization/61215
6007 * lra-elelimination.c (lra_eliminate_regs_1): Don't use
6008 simplify_gen_subreg until final substitution.
6010 2014-05-23 Alan Modra <amodra@gmail.com>
6013 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
6014 * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
6015 Use "Y" constraint rather than "m".
6017 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
6019 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
6021 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
6022 New function declaration.
6023 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
6024 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
6025 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
6026 (aarch64_init_builtins) : Initialize builtins
6027 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
6028 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
6029 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
6030 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
6031 and __builtins_aarch64_set_fpsr.
6032 (aarch64_atomic_assign_expand_fenv): New function.
6033 * config/aarch64/aarch64.md (set_fpcr): New pattern.
6034 (get_fpcr) : Likewise.
6035 (set_fpsr) : Likewise.
6036 (get_fpsr) : Likewise.
6037 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
6038 and UNSPECV_SET_FPSR.
6039 * doc/extend.texi (AARCH64 Built-in Functions) : Document
6040 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
6041 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
6043 2014-05-22 Vladimir Makarov <vmakarov@redhat.com>
6045 PR rtl-optimization/60969
6046 * ira-costs.c (record_reg_classes): Process NO_REGS for matching
6047 constraints. Set up mem cost for NO_REGS case.
6049 2014-05-22 Thomas Schwinge <thomas@codesourcery.com>
6051 * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
6053 2012-05-22 Bernd Schmidt <bernds@codesourcery.com>
6055 * config/darwin.c: Include "lto-section-names.h".
6056 (LTO_SEGMENT_NAME): Don't define.
6057 * config/i386/winnt.c: Include "lto-section-names.h".
6058 * lto-streamer.c: Include "lto-section-names.h".
6059 * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
6060 * lto-wrapper.c: Include "lto-section-names.h".
6061 (LTO_SECTION_NAME_PREFIX): Don't define.
6062 * lto-section-names.h: New file.
6063 * cgraphunit.c: Include "lto-section-names.h".
6065 2014-05-22 Peter Bergner <bergner@vnet.ibm.com>
6067 * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
6069 2014-05-22 Richard Earnshaw <rearnsha@arm.com>
6072 * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
6074 2014-05-22 Nick Clifton <nickc@redhat.com>
6076 * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
6078 2014-05-22 Eric Botcazou <ebotcazou@adacore.com>
6080 * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
6081 -> (T)A transformation to integer types.
6083 2014-05-22 Teresa Johnson <tejohnson@google.com>
6085 * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
6086 (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
6087 (gcov_rewrite): Use gcov_nonruntime_assert.
6089 (gcov_write_words): Ditto.
6090 (gcov_write_length): Ditto.
6091 (gcov_read_words): Use gcov_nonruntime_assert, and remove
6092 gcc_assert from IN_LIBGCOV code.
6093 (gcov_read_summary): Use gcov_error to flag profile corruption.
6094 (gcov_sync): Use gcov_nonruntime_assert.
6095 (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
6096 (gcov_histo_index): Use gcov_nonruntime_assert.
6097 (static void gcov_histogram_merge): Ditto.
6098 (compute_working_sets): Ditto.
6099 * gcov-io.h (gcov_nonruntime_assert): Define.
6100 (gcov_error): Define for !IN_LIBGCOV
6102 2014-05-22 Richard Biener <rguenther@suse.de>
6104 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6105 BUILT_IN_REALLOC like BUILT_IN_STRDUP.
6106 (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
6107 and deallocation site.
6108 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6109 Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
6110 passing through the incoming points-to set.
6111 (handle_lhs_call): Use flags argument instead of recomputing it.
6112 (find_func_aliases_for_call): Call handle_lhs_call with proper
6115 2014-05-22 Jakub Jelinek <jakub@redhat.com>
6117 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
6118 all padding bits in REAL_VALUE_TYPE are cleared.
6120 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6122 Cleanup and improve multipass_dfa_lookahead_guard
6123 * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
6124 (core2i7_first_cycle_multipass_begin,)
6125 (core2i7_first_cycle_multipass_issue,)
6126 (core2i7_first_cycle_multipass_backtrack): Update signature.
6127 * config/ia64/ia64.c
6128 (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
6129 (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
6130 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
6132 (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
6133 ia64_first_cycle_multipass_dfa_lookahead_guard_spec. Update return
6135 * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
6137 * doc/tm.texi: Regenerate.
6139 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
6140 * haifa-sched.c (ready_try): Make signed to allow negative values.
6141 (rebug_ready_list_1): Update.
6142 (choose_ready): Simplify.
6143 (sched_extend_ready_list): Update.
6145 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6147 Remove IA64 speculation tweaking flags
6148 * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
6149 speculation tuning flags.
6150 (msched-prefer-non-data-spec-insns,)
6151 (msched-prefer-non-control-spec-insns): Obsolete options.
6152 * haifa-sched.c (choose_ready): Remove handling of
6153 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
6154 * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
6155 and PREFER_NON_DATA_SPEC.
6156 * sel-sched.c (process_spec_exprs): Remove handling of
6157 PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
6159 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6161 Improve scheduling debug output
6162 * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
6163 (advance_one_cycle): Update.
6164 (schedule_insn, queue_to_ready): Add debug printouts.
6165 (debug_ready_list_1): New static function.
6166 (debug_ready_list): Update.
6167 (max_issue): Add debug printouts.
6168 (dump_insn_stream): New static function.
6169 (schedule_block): Use it. Also better indent printouts.
6171 2014-05-22 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6173 Fix sched_insn debug counter
6174 * haifa-sched.c (schedule_insn): Update.
6175 (struct haifa_saved_data): Add nonscheduled_insns_begin.
6176 (save_backtrack_point, restore_backtrack_point): Update.
6177 (first_nonscheduled_insn): New static function.
6178 (queue_to_ready, choose_ready): Use it.
6179 (schedule_block): Init nonscheduled_insns_begin.
6180 (sched_emit_insn): Update.
6183 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
6185 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
6187 (aarch64_secondary_reload) : LikeWise.
6188 (aarch64_class_max_nregs) : Remove CORE_REGS.
6189 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
6190 (REG_CLASS_NAMES) : Likewise.
6191 (REG_CLASS_CONTENTS) : LikeWise.
6192 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
6194 2014-05-21 Guozhi Wei <carrot@google.com>
6197 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
6199 (vqdmulhq_n_s16): Likewise.
6201 2014-05-21 Segher Boessenkool <segher@kernel.crashing.org>
6203 * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
6205 2014-05-21 Marek Polacek <polacek@redhat.com>
6208 * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
6210 2014-05-21 Martin Jambor <mjambor@suse.cz>
6212 * doc/invoke.texi (Optimize Options): Document parameters
6213 ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
6214 ipa-cp-array-index-hint-bonus.
6216 2014-05-21 Mark Wielaard <mjw@redhat.com>
6219 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
6220 version >= 3 or not strict DWARF.
6221 * langhooks.h (struct lang_hooks_for_types): Add
6222 enum_underlying_base_type.
6223 * langhooks.c (lhd_enum_underlying_base_type): New function.
6224 * gcc/langhooks.h (struct lang_hooks_for_types): Add
6225 enum_underlying_base_type.
6226 * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
6227 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
6228 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
6230 2014-05-21 Richard Biener <rguenther@suse.de>
6232 * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
6234 2014-05-21 John Marino <gnugcc@marino.st>
6236 * config.gcc (*-*-dragonfly*): New target.
6237 * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
6238 * configure: Regenerate.
6239 * config/dragonfly-stdint.h: New.
6240 * config/dragonfly.h: New.
6241 * config/dragonfly.opt: New.
6242 * config/i386/dragonfly.h: New.
6243 * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
6245 2014-05-21 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
6247 * tree.def (VOID_CST): New.
6248 * tree-core.h (TI_VOID): New.
6249 * tree.h (void_node): New.
6250 * tree.c (tree_node_structure_for_code, tree_code_size)
6251 (iterative_hash_expr): Handle VOID_CST.
6252 (build_common_tree_nodes): Initialize void_node.
6254 2014-05-21 Bernd Schmidt <bernds@codesourcery.com>
6256 * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
6258 (reload, calculate_needs_all_insns, reload_as_needed): Use them.
6260 * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
6263 * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
6264 flag_reorder_blocks_and_partition.
6265 * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
6267 2014-05-21 Oleg Endo <olegendo@gcc.gnu.org>
6270 * config/sh/sh.md (*addc_r_1): Rename to addc_t_r. Remove empty
6272 (*addc_r_t): Add new insn_and_split.
6274 2014-05-21 Jakub Jelinek <jakub@redhat.com>
6277 * omp-low.c (handle_simd_reference): New function.
6278 (lower_rec_input_clauses): Use it. Defer adding reference
6279 initialization even for reduction without placeholder if in simd,
6280 handle it properly later on.
6282 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
6284 PR tree-optimization/60899
6285 * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
6286 assume all static symbols will have definition wile parsing and
6287 check the do have definition later in compilation; check that
6288 variable referring symbol will be output before concluding that
6289 reference is safe; be conservative for referring local statics;
6290 be more precise about when comdat is output in other partition.
6292 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
6295 * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
6297 * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
6298 (ipa_inline): Loop inline_to_all_callers until no more aliases
6301 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
6303 * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
6304 set writeonly flag only for vars actually written to.
6306 2014-05-20 Dehao Chen <dehao@google.com>
6308 * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
6309 and callee count to get clone count.
6310 * tree-inline.c (expand_call_inline): Use callee count instead of bb
6313 2014-05-20 Richard Sandiford <rdsandiford@googlemail.com>
6315 PR rtl-optimization/61243
6316 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
6318 2014-05-20 Xinliang David Li <davidxl@google.com>
6320 * cgraphunit.c (walk_polymorphic_call_targets): Add
6321 dbgcnt and fopt-info support.
6322 * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
6323 * ipa-devirt.c (ipa_devirt): Ditto.
6324 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
6325 * ipa.c (walk_polymorphic_call_targets): Ditto.
6326 * gimple-fold.c (fold_gimple_assign): Ditto.
6327 (gimple_fold_call): Ditto.
6328 * dbgcnt.def: New counter.
6330 2014-05-20 DJ Delorie <dj@redhat.com>
6332 * config/msp430/msp430.md (split): Don't allow subregs when
6333 splitting SImode adds.
6334 (andneghi): Fix subtraction logic.
6335 * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
6337 2014-05-20 Jan Hubicka <hubicka@ucw.cz>
6339 * tree.h (DECL_ONE_ONLY): Return true only for externally visible
6341 * except.c (switch_to_exception_section, resolve_unique_section,
6342 get_named_text_section, default_function_rodata_section,
6343 align_variable, get_block_for_decl, default_section_type_flags):
6344 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
6345 * symtab.c (symtab_add_to_same_comdat_group,
6346 symtab_make_decl_local, fixup_same_cpp_alias_visibility,
6347 symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
6349 * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
6350 * bb-reorder.c (pass_partition_blocks::gate): Likewise.
6351 * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
6352 (c6x_function_in_section_p): Likewise.
6353 * config/darwin.c (machopic_select_section): Likewise.
6354 * config/arm/arm.c (arm_function_in_section_p): Likewise.
6355 * config/mips/mips.c (mips_function_rodata_section): Likewise.
6356 * config/mep/mep.c (mep_select_section): LIkewise.
6357 * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
6359 2014-05-20 Eric Botcazou <ebotcazou@adacore.com>
6361 * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
6362 EH region of calls to pure functions that can throw an exception.
6363 * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
6364 (copy_reference_ops_from_call): Also copy the EH region of the call if
6365 it can throw an exception.
6367 2014-05-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6369 * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
6370 nested VEC_SELECTs that are inverses of each other.
6372 2014-05-20 Richard Biener <rguenther@suse.de>
6374 * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
6375 (extract_and_process_scc_for_name): not here.
6376 (cond_dom_walker::before_dom_children): Only process
6377 stmts that end the BB in interesting ways.
6378 (run_scc_vn): Mark param uses as visited.
6380 2014-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6382 * config/arm/arm.md (arith_shiftsi): Do not predicate for
6385 2014-05-20 Nick Clifton <nickc@redhat.com>
6387 * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
6388 (msp430_gimplify_va_arg_expr): New function.
6389 (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
6391 * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
6392 operand 0 in order to prevent confusion about the number of
6395 2014-05-20 Richard Biener <rguenther@suse.de>
6397 PR tree-optimization/61221
6398 * tree-ssa-pre.c (el_to_update): Remove.
6399 (eliminate_dom_walker::before_dom_children): Handle released
6400 VDEFs by value-numbering them to the associated VUSE. Update
6401 stmt immediately for substituted call address.
6402 (eliminate): Remove delayed stmt updating code.
6403 * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
6404 possibly late re-numbered vuses.
6405 (vn_reference_lookup_2): Adjust.
6406 (vn_reference_lookup_pieces): Likewise.
6407 (vn_reference_lookup): Likewise.
6409 2014-05-20 Richard Biener <rguenther@suse.de>
6411 * config.gcc: Remove need_64bit_hwint.
6412 * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
6413 * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
6415 * config.in: Regenerate.
6416 * configure: Likewise.
6418 2014-05-19 David Wohlferd <dw@LimeGreenSocks.com>
6420 * doc/extend.texi: Create Label Attributes section,
6421 move all label attributes into it and reference it.
6423 2014-05-19 Richard Earnshaw <rearnsha@arm.com>
6425 * arm.c (thumb1_reorg): When scanning backwards skip anything
6426 that's not a proper insn.
6428 2014-05-19 Richard Biener <rguenther@suse.de>
6430 PR tree-optimization/61221
6431 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6432 Do nothing for unreachable blocks.
6433 * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
6434 Improve unreachability detection.
6436 2014-05-19 Richard Biener <rguenther@suse.de>
6438 PR tree-optimization/61209
6439 * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
6441 2014-05-19 Nick Clifton <nickc@redhat.com>
6443 * except.c (init_eh): Fix computation of builtin setjmp buffer
6444 size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
6446 2014-05-19 Richard Biener <rguenther@suse.de>
6448 PR tree-optimization/61184
6449 * tree-vrp.c (is_negative_overflow_infinity): Use
6450 TREE_OVERFLOW_P and do that check first.
6451 (is_positive_overflow_infinity): Likewise.
6452 (is_overflow_infinity): Likewise.
6453 (vrp_operand_equal_p): Properly treat operands with
6454 differing overflow as not equal.
6456 2014-05-19 Bernd Schmidt <bernds@codesourcery.com>
6458 * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
6459 shift simplification where it was intended.
6461 2014-05-19 Christian Bruel <christian.bruel@st.com>
6464 * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
6466 2014-05-19 Richard Sandiford <r.sandiford@uk.ibm.com>
6469 * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
6472 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
6474 * reg-notes.def (CROSSING_JUMP): Likewise.
6475 * rtl.h (rtx_def): Update comment for jump flag.
6476 (CROSSING_JUMP_P): Define.
6477 * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
6478 of a REG_CROSSING_JUMP note.
6479 * cfghooks.c (tidy_fallthru_edges): Likewise.
6480 * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
6481 * emit-rtl.c (try_split): Likewise.
6482 * haifa-sched.c (sched_create_recovery_edges): Likewise.
6483 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
6484 * jump.c (redirect_jump_2): Likewise.
6485 * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
6486 (relax_delay_slots): Likewise.
6487 * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
6488 (bbit_di): Likewise.
6489 * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
6490 * config/sh/sh.md (jump_compact): Likewise.
6491 * bb-reorder.c (rotate_loop): Likewise.
6492 (pass_duplicate_computed_gotos::execute): Likewise.
6493 (add_reg_crossing_jump_notes): Rename to...
6494 (update_crossing_jump_flags): ...this.
6495 (pass_partition_blocks::execute): Update accordingly.
6497 2014-05-19 Richard Sandiford <rdsandiford@googlemail.com>
6499 * tree.h: Remove extraneous template <>.
6501 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
6503 * ipa.c (symtab_remove_unreachable_nodes): Remove
6504 symbol from comdat group if its body was eliminated.
6505 (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
6506 * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
6507 (symtab_unregister_node): ... this one.
6508 (verify_symtab_base): More strict checking of comdats.
6509 * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
6511 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
6513 * tree-pass.h (make_pass_ipa_comdats): New pass.
6514 * timevar.def (TV_IPA_COMDATS): New timevar.
6515 * passes.def (pass_ipa_comdats): Add.
6516 * Makefile.in (OBJS): Add ipa-comdats.o
6517 * ipa-comdats.c: New file.
6519 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
6521 * ipa.c (update_visibility_by_resolution_info): New function.
6522 (function_and_variable_visibility): Use it.
6524 2014-05-17 Jan Hubicka <hubicka@ucw.cz>
6526 * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
6528 (FOR_EACH_DEFINED_SYMBOL): New macro.
6529 (varpool_first_static_initializer, varpool_next_static_initializer,
6530 varpool_first_defined_variable, varpool_next_defined_variable):
6532 (symtab_in_same_comdat_p): Correctly deal with inline functions.
6534 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6536 * ggc-page.c (ggc_handle_finalizers): Add comment.
6538 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6540 * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
6541 * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
6542 (ggc_internal_cleared_alloc): Likewise.
6543 * ggc-page.c (finalizer): New class.
6544 (vec_finalizer): Likewise.
6545 (globals::finalizers): New member.
6546 (globals::vec_finalizers): Likewise.
6547 (ggc_internal_alloc): Record the finalizer if any for the block being
6549 (ggc_handle_finalizers): New function.
6550 (ggc_collect): Call ggc_handle_finalizers.
6551 * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
6553 (ggc_internal_cleared_alloc): Likewise.
6554 (finalize): New function.
6555 (need_finalization_p): Likewise.
6556 (ggc_alloc): Install the type's destructor as the finalizer if it
6558 (ggc_cleared_alloc): Likewise.
6559 (ggc_vec_alloc): Likewise.
6560 (ggc_cleared_vec_alloc): Likewise.
6562 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6564 * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
6566 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6568 * alias.c (record_alias_subset): Adjust.
6569 * bitmap.c (bitmap_element_allocate): Likewise.
6570 (bitmap_gc_alloc_stat): Likewise.
6571 * cfg.c (init_flow): Likewise.
6572 (alloc_block): Likewise.
6573 (unchecked_make_edge): Likewise.
6574 * cfgloop.c (alloc_loop): Likewise.
6575 (flow_loops_find): Likewise.
6576 (rescan_loop_exit): Likewise.
6577 * cfgrtl.c (init_rtl_bb_info): Likewise.
6578 * cgraph.c (insert_new_cgraph_node_version): Likewise.
6579 (cgraph_allocate_node): Likewise.
6580 (cgraph_create_edge_1): Likewise.
6581 (cgraph_allocate_init_indirect_info): Likewise.
6582 * cgraphclones.c (cgraph_clone_edge): Likewise.
6583 * cgraphunit.c (add_asm_node): Likewise.
6584 (init_lowered_empty_function): Likewise.
6585 * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
6586 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
6587 (alpha_use_linkage): Likewise.
6588 * config/arc/arc.c (arc_init_machine_status): Likewise.
6589 * config/arm/arm.c (arm_init_machine_status): Likewise.
6590 * config/avr/avr.c (avr_init_machine_status): Likewise.
6591 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
6592 * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
6593 * config/cris/cris.c (cris_init_machine_status): Likewise.
6594 * config/darwin.c (machopic_indirection_name): Likewise.
6595 (darwin_build_constant_cfstring): Likewise.
6596 (darwin_enter_string_into_cfstring_table): Likewise.
6597 * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
6598 * config/frv/frv.c (frv_init_machine_status): Likewise.
6599 * config/i386/i386.c (get_dllimport_decl): Likewise.
6600 (ix86_init_machine_status): Likewise.
6601 (assign_386_stack_local): Likewise.
6602 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
6603 (i386_pe_maybe_record_exported_symbol): Likewise.
6604 (i386_pe_record_stub): Likewise.
6605 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
6606 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
6607 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
6608 (m32c_note_pragma_address): Likewise.
6609 * config/mep/mep.c (mep_init_machine_status): Likewise.
6610 (mep_note_pragma_flag): Likewise.
6611 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
6612 (mips16_local_alias): Likewise.
6613 (mips_init_machine_status): Likewise.
6614 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
6615 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
6616 * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
6617 * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
6618 * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
6619 * config/pa/pa.c (pa_init_machine_status): Likewise.
6620 (pa_get_deferred_plabel): Likewise.
6621 * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
6622 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
6623 (rs6000_init_machine_status): Likewise.
6624 (output_toc): Likewise.
6625 * config/s390/s390.c (s390_init_machine_status): Likewise.
6626 * config/score/score.c (score_output_external): Likewise.
6627 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6628 * config/spu/spu.c (spu_init_machine_status): Likewise.
6629 * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
6630 * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
6631 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6632 * coverage.c (coverage_end_function): Likewise.
6633 * dbxout.c (dbxout_init): Likewise.
6634 * doc/gty.texi: Don't mention variable_size attribute.
6635 * dwarf2cfi.c (new_cfi): Adjust.
6636 (new_cfi_row): Likewise.
6637 (copy_cfi_row): Likewise.
6638 (create_cie_data): Likewise.
6639 * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
6640 (new_loc_descr): Likewise.
6641 (find_AT_string_in_table): Likewise.
6642 (add_addr_table_entry): Likewise.
6643 (new_die): Likewise.
6644 (add_var_loc_to_decl): Likewise.
6645 (clone_die): Likewise.
6646 (clone_as_declaration): Likewise.
6647 (break_out_comdat_types): Likewise.
6648 (new_loc_list): Likewise.
6649 (add_loc_descr_to_each): Likewise.
6650 (add_location_or_const_value_attribute): Likewise.
6651 (add_linkage_name): Likewise.
6652 (lookup_filename): Likewise.
6653 (dwarf2out_var_location): Likewise.
6654 (new_line_info_table): Likewise.
6655 (dwarf2out_init): Likewise.
6656 (mem_loc_descriptor): Likewise.
6657 (loc_descriptor): Likewise.
6658 (add_const_value_attribute): Likewise.
6659 (tree_add_const_value_attribute): Likewise.
6660 (comp_dir_string): Likewise.
6661 (dwarf2out_vms_debug_main_pointer): Likewise.
6662 (string_cst_pool_decl): Likewise.
6663 * emit-rtl.c (set_mem_attrs): Likewise.
6664 (get_reg_attrs): Likewise.
6665 (start_sequence): Likewise.
6666 (init_emit): Likewise.
6667 (init_emit_regs): Likewise.
6668 * except.c (init_eh_for_function): Likewise.
6669 (gen_eh_region): Likewise.
6670 (gen_eh_region_catch): Likewise.
6671 (gen_eh_landing_pad): Likewise.
6672 (add_call_site): Likewise.
6673 * function.c (add_frame_space): Likewise.
6674 (insert_temp_slot_address): Likewise.
6675 (assign_stack_temp_for_type): Likewise.
6676 (get_hard_reg_initial_val): Likewise.
6677 (allocate_struct_function): Likewise.
6678 (prepare_function_start): Likewise.
6679 (types_used_by_var_decl_insert): Likewise.
6680 * gengtype.c (variable_size_p): Remove function.
6681 (enum alloc_quantity): Remove enum.
6682 (write_typed_alloc_def): Remove function.
6683 (write_typed_struct_alloc_def): Likewise.
6684 (write_typed_typedef_alloc_def): Likewise.
6685 (write_typed_alloc_defns): Likewise.
6687 * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
6688 (ggc_cleared_alloc_ptr_array_two_args): Likewise.
6689 * ggc.h (ggc_alloc): new function.
6690 (ggc_cleared_alloc): Likewise.
6691 (ggc_vec_alloc): Template on type of vector element, and remove
6692 element size argument.
6693 (ggc_cleared_vec_alloc): Likewise.
6694 * gimple.c (gimple_build_omp_for): Adjust.
6695 (gimple_copy): Likewise.
6696 * ipa-cp.c (get_replacement_map): Likewise.
6697 (find_aggregate_values_for_callers_subset): Likewise.
6698 (known_aggs_to_agg_replacement_list): Likewise.
6699 * ipa-devirt.c (get_odr_type): Likewise.
6700 * ipa-prop.c (ipa_node_duplication_hook): Likewise.
6701 (read_agg_replacement_chain): Likewise.
6702 * loop-iv.c (get_simple_loop_desc): Likewise.
6703 * lto-cgraph.c (input_node_opt_summary): Likewise.
6704 * lto-section-in.c (lto_new_in_decl_state): Likewise.
6705 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
6706 (input_eh_region): Likewise.
6707 (input_eh_lp): Likewise.
6708 (input_cfg): Likewise.
6709 * optabs.c (set_optab_libfunc): Likewise.
6710 (init_tree_optimization_optabs): Likewise.
6711 (set_conv_libfunc): Likewise.
6712 * passes.c (do_per_function_toporder): Likewise.
6713 * rtl.h: Don't use variable_size gty attribute.
6714 * sese.c (if_region_set_false_region): Adjust.
6715 * stringpool.c (gt_pch_save_stringpool): Likewise.
6716 * target-globals.c (save_target_globals): Likewise.
6717 * toplev.c (general_init): Likewise.
6718 * trans-mem.c (record_tm_replacement): Likewise.
6719 (split_bb_make_tm_edge): Likewise.
6720 * tree-cfg.c (move_sese_region_to_fn): Likewise.
6721 * tree-data-ref.h (lambda_vector_new): Likewise.
6722 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
6723 * tree-iterator.c (tsi_link_before): Likewise.
6724 (tsi_link_after): Likewise.
6725 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
6726 * tree-ssa-loop-niter.c (record_estimate): Likewise.
6727 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
6728 * tree-ssa-operands.h: Don't use variable_size gty attribute.
6729 * tree-ssa.c (init_tree_ssa): Adjust.
6730 * tree-ssanames.c (set_range_info): Likewise.
6731 (get_ptr_info): Likewise.
6732 (duplicate_ssa_name_ptr_info): Likewise.
6733 (duplicate_ssa_name_range_info): Likewise.
6734 * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
6735 (unpack_ts_fixed_cst_value_fields): Likewise.
6736 * tree.c (build_fixed): Likewise.
6737 (build_real): Likewise.
6738 (build_string): Likewise.
6739 (decl_priority_info): Likewise.
6740 (decl_debug_expr_insert): Likewise.
6741 (decl_value_expr_insert): Likewise.
6742 (decl_debug_args_insert): Likewise.
6743 (type_hash_add): Likewise.
6744 (build_omp_clause): Likewise.
6745 * ubsan.c (decl_for_type_insert): Likewise.
6746 * varasm.c (get_unnamed_section): Likewise.
6747 (get_noswitch_section): Likewise.
6748 (get_section): Likewise.
6749 (get_block_for_section): Likewise.
6750 (create_block_symbol): Likewise.
6751 (build_constant_desc): Likewise.
6752 (create_constant_pool): Likewise.
6753 (force_const_mem): Likewise.
6754 (record_tm_clone_pair): Likewise.
6755 * varpool.c (varpool_create_empty_node): Likewise.
6757 2014-05-17 Trevor Saunders <tsaunders@mozilla.com>
6759 * dwarf2out.c (tree_add_const_value_attribute): Call
6760 ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
6761 * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
6762 instead of ggc_internal_<x>alloc_stat.
6763 * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
6764 (ggc_realloc): Likewise.
6765 * ggc-none.c (ggc_internal_alloc): Likewise.
6766 (ggc_internal_cleared_alloc): Likewise.
6767 * ggc-page.c: Likewise.
6768 * ggc.h (ggc_internal_alloc_stat): Likewise.
6769 (ggc_internal_alloc): Remove macro.
6770 (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
6771 (ggc_internal_cleared_alloc): Remove macro.
6772 (GGC_RESIZEVEC): Adjust.
6773 (ggc_resizevar): Remove macro.
6774 (ggc_internal_vec_alloc_stat): Drop _stat suffix.
6775 (ggc_internal_cleared_vec_alloc_stat): Likewise.
6776 (ggc_internal_vec_cleared_alloc): Remove macro.
6777 (ggc_alloc_atomic_stat): Drop _stat suffix.
6778 (ggc_alloc_atomic): Remove macro.
6779 (ggc_alloc_cleared_atomic): Remove macro.
6780 (ggc_alloc_string_stat): Drop _stat suffix.
6781 (ggc_alloc_string): Remove macro.
6782 (ggc_alloc_rtx_def_stat): Adjust.
6783 (ggc_alloc_tree_node_stat): Likewise.
6784 (ggc_alloc_cleared_tree_node_stat): Likewise.
6785 (ggc_alloc_cleared_gimple_statement_stat): Likewise.
6786 (ggc_alloc_cleared_simd_clone_stat): Likewise.
6787 * gimple.c (gimple_build_omp_for): Likewise.
6788 (gimple_copy): Likewise.
6789 * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
6790 * toplev.c (realloc_for_line_map): Adjust.
6791 * tree-data-ref.h (lambda_vector_new): Likewise.
6792 * tree-phinodes.c (allocate_phi_node): Likewise.
6793 * tree.c (grow_tree_vec_stat): Likewise.
6794 * vec.h (va_gc::reserve): Adjust.
6796 2014-05-17 Ajit Agarwal <ajitkum@xilinx.com>
6798 * config/microblaze/microblaze.c (break_handler): New Declaration.
6799 (microblaze_break_function_p,microblaze_is_break_handler): New.
6800 (compute_frame_size): Use microblaze_break_function_p.
6801 Add the test of break_handler.
6802 (microblaze_function_prologue) : Add the test of variable
6803 break_handler. Check the fnname by BREAK_HANDLER_NAME.
6804 (microblaze_function_epilogue) : Add the test of break_handler.
6805 (microblaze_globalize_label) : Add the test of break_handler.
6806 Check the name by BREAK_HANDLER_NAME.
6808 * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
6810 * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
6811 microblaze_is_break_handler test.
6812 (call_internal1,call_value_intern): Use microblaze_break_function_p.
6813 Use SYMBOL_REF_DECL.
6815 * config/microblaze/microblaze-protos.h
6816 (microblaze_break_function_p,microblaze_is_break_handler):
6819 * doc/extend.texi (MicroBlaze break_handler Functions): Document
6820 new MicroBlaze break_handler functions.
6822 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
6824 * doc/extend.texi (Size of an asm): Move node text according
6825 to its @menu entry position.
6827 2014-05-17 Marc Glisse <marc.glisse@inria.fr>
6829 PR tree-optimization/61140
6830 PR tree-optimization/61150
6831 PR tree-optimization/61197
6832 * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
6834 2014-05-17 Uros Bizjak <ubizjak@gmail.com>
6836 * doc/invoke.texi (free): Mention Alpha. Also enabled at -Os.
6838 2014-05-17 Richard Sandiford <r.sandiford@uk.ibm.com>
6840 * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
6841 __SIZEOF_INT128__ is defined.
6843 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
6845 * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
6846 (rs6000_delegitimize_address): Use it.
6848 2014-05-17 Richard Sandiford <rdsandiford@googlemail.com>
6850 * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
6851 inplace argument. Store the new address in the original MEM when true.
6852 * emit-rtl.c (change_address_1): Likewise.
6853 (adjust_address_1, adjust_automodify_address_1, offset_address):
6855 * rtl.h (plus_constant): Add an inplace argument.
6856 * explow.c (plus_constant): Likewise. Try to reuse the original PLUS
6857 when true. Avoid generating (plus X (const_int 0)).
6858 * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
6859 in-place. Pass true to plus_constant.
6860 (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
6862 2014-05-16 Dehao Chen <dehao@google.com>
6864 * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
6866 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
6869 * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
6871 * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
6873 2014-05-16 Dehao Chen <dehao@google.com>
6875 * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
6876 optimize_function_for_size_p.
6877 * regs.h (REG_FREQ_FROM_BB): Likewise.
6879 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
6882 * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
6883 negt_reg_operand cases.
6884 * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
6886 * config/sh/predicates.md (cbranch_treg_value): Simplify.
6888 2014-05-16 Oleg Endo <olegendo@gcc.gnu.org>
6890 * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
6893 2014-05-16 David Malcolm <dmalcolm@redhat.com>
6896 2014-04-29 David Malcolm <dmalcolm@redhat.com>
6898 * tree-cfg.c (dump_function_to_file): Dump the return type of
6899 functions, in a line to itself before the function body, mimicking
6900 the layout of a C function.
6902 2014-05-16 Dehao Chen <dehao@google.com>
6904 * cfghooks.c (make_forwarder_block): Use direct computation to
6905 get fall-through edge's count and frequency.
6907 2014-05-16 Benno Schulenberg <bensberg@justemail.net>
6909 * config/arc/arc.c (arc_init): Fix typo in error message.
6910 * config/i386/i386.c (ix86_expand_builtin): Likewise.
6911 (split_stack_prologue_scratch_regno): Likewise.
6912 * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
6913 word from error message.
6915 2014-05-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6917 * ira-costs.c: Fix typo in comment.
6919 2014-05-16 David Wohlferd <dw@LimeGreenSocks.com>
6921 * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
6923 2014-05-16 Jan Hubicka <hubicka@ucw.cz>
6925 * varpool.c (dump_varpool_node): Dump write-only flag.
6926 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
6928 * tree-cfg.c (execute_fixup_cfg): Remove statements setting
6929 write-only variables.
6930 * ipa.c (process_references): New function.
6931 (set_readonly_bit): New function.
6932 (set_writeonly_bit): New function.
6933 (clear_addressable_bit): New function.
6934 (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
6935 fix handling of aliases.
6936 * cgraph.h (struct varpool_node): Add writeonly flag.
6938 2014-05-16 Vladimir Makarov <vmakarov@redhat.com>
6940 PR rtl-optimization/60969
6941 * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
6942 Calculate costs for this case.
6944 2014-05-16 Eric Botcazou <ebotcazou@adacore.com>
6946 * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
6947 <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
6949 2014-05-16 Richard Biener <rguenther@suse.de>
6951 PR tree-optimization/61194
6952 * tree-vect-patterns.c (adjust_bool_pattern): Also handle
6953 bool patterns ending in a COND_EXPR.
6955 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6957 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
6959 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6961 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
6962 where we were unable to cost an RTX.
6964 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6966 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
6969 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6970 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6972 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
6974 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6975 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6977 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
6978 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
6980 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6981 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6983 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
6986 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6987 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6989 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
6992 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6993 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
6995 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
6996 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
6998 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
6999 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7001 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
7004 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7005 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7007 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
7008 ZERO_EXTEND and SIGN_EXTEND better.
7010 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7011 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7013 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
7016 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7017 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7019 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
7020 costs when costing loads and stores to memory.
7022 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7023 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
7025 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
7028 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7030 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
7032 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7033 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7035 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
7037 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
7039 (aarch64_rtx_mult_cost): New.
7040 (aarch64_rtx_costs): Use it, refactor as appropriate.
7042 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7043 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
7045 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
7046 emit instructions, return number of instructions which would
7048 (aarch64_add_constant): Update call to aarch64_build_constant.
7049 (aarch64_output_mi_thunk): Likewise.
7050 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
7053 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7055 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
7056 (TARGET_RTX_COSTS): Call it.
7058 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7060 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
7061 (cortexa57_vector_cost): Likewise.
7062 (cortexa57_tunings): Use them.
7064 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
7066 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
7067 (cpu_addrcost_table): Use it.
7068 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
7069 (aarch64_address_cost): Rewrite using aarch64_classify_address,
7072 2014-05-16 Richard Biener <rguenther@suse.de>
7074 * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
7075 (set_ssa_val_to): Handle unexpected sets to VN_TOP.
7076 (visit_phi): Ignore edges marked as not executable.
7077 (class cond_dom_walker): New.
7078 (cond_dom_walker::before_dom_children): Value-number
7079 control statements and mark successor edges as not
7080 executable if possible.
7081 (run_scc_vn): First walk all control statements in
7082 dominator order, marking edges as not executable.
7083 * tree-inline.c (copy_edges_for_bb): Be not confused
7084 about random edge flags.
7086 2014-05-16 Richard Biener <rguenther@suse.de>
7088 * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
7090 2014-05-15 Peter Bergner <bergner@vnet.ibm.com>
7093 * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
7094 (__TM_simple_begin): Use it.
7095 (__TM_begin): Likewise.
7097 2014-05-15 Martin Jambor <mjambor@suse.cz>
7100 * ipa-prop.c (update_indirect_edges_after_inlining): Check
7101 type_preserved flag when the indirect edge is polymorphic.
7103 2014-05-15 Martin Jambor <mjambor@suse.cz>
7105 PR tree-optimization/61090
7106 * tree-sra.c (sra_modify_expr): Pass the current gsi to
7107 build_ref_for_model.
7109 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7111 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
7112 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
7114 2014-05-15 Jakub Jelinek <jakub@redhat.com>
7116 PR tree-optimization/61158
7117 * fold-const.c (fold_binary_loc): If X is zero-extended and
7118 shiftc >= prec, make sure zerobits is all ones instead of
7119 invoking undefined behavior.
7121 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7123 * regcprop.h: New file.
7124 * regcprop.c (skip_debug_insn_p): New decl.
7125 (replace_oldest_value_reg): Check skip_debug_insn_p.
7126 (copyprop_hardreg_forward_bb_without_debug_insn): New function.
7127 * shrink-wrap.c: Include regcprop.h.
7128 (prepare_shrink_wrap): Call
7129 copyprop_hardreg_forward_bb_without_debug_insn.
7131 2014-05-15 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7133 * shrink-wrap.h: Update comment.
7134 * shrink-wrap.c: Update comment.
7135 (next_block_for_reg): Rename to live_edge_for_reg.
7136 (live_edge_for_reg): Allow live_edge->dest has two predecessors.
7137 (move_insn_for_shrink_wrap): Split live_edge.
7138 (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
7140 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
7142 * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
7144 * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
7145 * config/sparc/sparc.md (fptype_ut699): New attribute.
7146 (in_branch_delay): Return false if -mfix-ut699 is specified and
7147 fptype_ut699 is set to single.
7148 (truncdfsf2): Add fptype_ut699 attribute.
7149 (fix_truncdfsi2): Likewise.
7150 (floatsisf2): Change fptype attribute.
7151 (fix_truncsfsi2): Likewise.
7152 (negtf2_notv9): Delete.
7153 (negtf2_v9): Likewise.
7154 (negtf2_hq): New instruction.
7155 (negtf2): New instruction and splitter.
7156 (negdf2_notv9): Rewrite.
7157 (abstf2_notv9): Delete.
7158 (abstf2_hq_v9): Likewise.
7159 (abstf2_v9): Likewise.
7160 (abstf2_hq): New instruction.
7161 (abstf2): New instruction and splitter.
7162 (absdf2_notv9): Rewrite.
7164 2014-05-14 Cary Coutant <ccoutant@google.com>
7167 * opts.c (common_handle_option): Don't special-case "-g".
7168 (set_debug_level): Default to at least level 2 with "-g".
7170 2014-05-14 DJ Delorie <dj@redhat.com>
7172 * config/msp430/msp430.c (msp430_builtin): Add
7173 MSP430_BUILTIN_DELAY_CYCLES.
7174 (msp430_init_builtins): Register void __delay_cycles(long long).
7175 (msp430_builtin_decl): Add it.
7176 (cg_magic_constant): New.
7177 (msp430_expand_delay_cycles): New.
7178 (msp430_expand_builtin): Call it.
7179 (msp430_print_operand_raw): Change integer printing from "int" to
7181 * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
7182 (delay_cycles_start): New.
7183 (delay_cycles_end): New.
7184 (delay_cycles_32): New.
7185 (delay_cycles_32x): New.
7186 (delay_cycles_16): New.
7187 (delay_cycles_16x): New.
7188 (delay_cycles_2): New.
7189 (delay_cycles_1): New.
7190 * doc/extend.texi: Document __delay_cycles().
7192 2014-05-14 Sandra Loosemore <sandra@codesourcery.com>
7194 * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
7195 length attribute computation.
7197 2014-05-14 Richard Sandiford <rdsandiford@googlemail.com>
7200 * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
7202 2014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com>
7205 * config/sparc/sparc.md: Fix types of low and high in DI constant
7206 splitter. Use gen_int_mode in some other splitters.
7208 2014-05-14 Martin Jambor <mjambor@suse.cz>
7211 * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
7213 2014-05-14 James Norris <jnorris@codesourcery.com>
7215 * omp-low.c (expand_parallel_call): Remove shadow variable.
7216 (expand_omp_taskreg): Likewise.
7218 2014-05-14 Ilya Tocar <ilya.tocar@intel.com>
7220 * common/config/i386/i386-common.c
7221 (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
7222 (OPTION_MASK_ISA_XSAVES_SET): Ditto.
7223 (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
7224 (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
7225 (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
7226 (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
7227 (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
7228 * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
7229 xsavecintrin.h, xsavesintrin.h.
7230 (x86_64-*-*): Ditto.
7231 * config/i386/clflushoptintrin.h: New.
7232 * config/i386/xsavecintrin.h: Ditto.
7233 * config/i386/xsavesintrin.h: Ditto.
7234 * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
7235 (bit_XSAVES): Ditto.
7236 (bit_XSAVES): Ditto.
7237 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
7238 -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
7240 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7241 OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
7242 OPTION_MASK_ISA_XSAVES.
7243 * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
7245 (PTA_CLFLUSHOPT) Define.
7246 (PTA_XSAVEC): Ditto.
7247 (PTA_XSAVES): Ditto.
7248 (ix86_option_override_internal): Handle new options.
7249 (ix86_valid_target_attribute_inner_p): Ditto.
7250 (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
7251 IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
7252 IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
7253 (bdesc_special_args): Add __builtin_ia32_xsaves,
7254 __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
7255 __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
7256 (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
7257 (ix86_expand_builtin): Handle new builtins.
7258 * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
7259 (TARGET_CLFLUSHOPT_P): Ditto.
7260 (TARGET_XSAVEC): Ditto.
7261 (TARGET_XSAVEC_P): Ditto.
7262 (TARGET_XSAVES): Ditto.
7263 (TARGET_XSAVES_P): Ditto.
7264 * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
7265 (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
7266 (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
7268 (ANY_XRSTOR64): Ditto.
7270 (xrstor): Change into <xrstor>.
7271 (xrstor_rex64): Change into <xrstor>_rex64.
7272 (xrstor64): Change into <xrstor>64
7274 * config/i386/i386.opt (mclflushopt): New.
7277 * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
7279 * doc/invoke.texi: Document new options.
7281 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
7283 PR rtl-optimization/60866
7284 * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
7285 Default it to -1. Pass it down to init_simplejump_data.
7286 (init_simplejump_data): New parameter old_seqno. Pass it down
7287 to get_seqno_for_a_jump.
7288 (get_seqno_for_a_jump): New parameter old_seqno. Use it for
7289 initializing new jump seqno as a last resort. Add comment.
7290 (sel_redirect_edge_and_branch): Save old seqno of the conditional
7291 jump and pass it down to sel_init_new_insn.
7292 (sel_redirect_edge_and_branch_force): Likewise.
7294 2014-05-14 Georg-Johann Lay <avr@gjlay.de>
7296 * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
7297 shifted values to avoid build warning.
7299 2014-05-14 Eric Botcazou <ebotcazou@adacore.com>
7301 * cfgcleanup.c (try_forward_edges): Use location_t for locations.
7302 * cfgrtl.c (rtl_merge_blocks): Fix comment.
7303 (cfg_layout_merge_blocks): Likewise.
7304 * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
7306 2014-05-14 Andrey Belevantsev <abel@ispras.ru>
7308 PR rtl-optimization/60901
7309 * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
7310 bb predecessor belongs to the same scheduling region. Adjust comment.
7312 2014-05-13 Peter Bergner <bergner@vnet.ibm.com>
7314 * doc/sourcebuild.texi: (dfp_hw): Document.
7315 (p8vector_hw): Likewise.
7316 (powerpc_eabi_ok): Likewise.
7317 (powerpc_elfv2): Likewise.
7318 (powerpc_htm_ok): Likewise.
7319 (ppc_recip_hw): Likewise.
7322 2014-05-13 Cary Coutant <ccoutant@google.com>
7324 * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
7326 2014-05-13 David Malcolm <dmalcolm@redhat.com>
7328 * gengtype-parse.c (require3): Eliminate in favor of...
7330 (require_template_declaration): Update to support optional single *
7333 * gengtype.c (get_ultimate_base_class): Add a non-const overload.
7334 (create_user_defined_type): Handle a single level of explicit
7335 pointerness within template arguments.
7336 (struct write_types_data): Add field "kind".
7337 (filter_type_name): Handle "*" character.
7338 (write_user_func_for_structure_ptr): Require a write_types_data
7339 rather than just a prefix string, so that we can look up the kind
7340 of the wtd and use it as an index into wrote_user_func_for_ptr,
7341 ensuring that such functions are written at most once. Support
7342 subclasses by invoking the marking function of the ultimate base class.
7343 (write_user_func_for_structure_body): Require a write_types_data
7344 rather than just a prefix string, so that we can pass this to
7345 write_user_func_for_structure_ptr.
7346 (write_func_for_structure): Likewise.
7347 (ggc_wtd): Add initializer of new "kind" field.
7348 (pch_wtd): Likewise.
7350 * gengtype.h (enum write_types_kinds): New.
7351 (struct type): Add field wrote_user_func_for_ptr to the "s"
7354 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
7356 * fold-const.c (optimize_bit_field_compare): Use wi:: operations
7357 instead of const_binop.
7358 (fold_binary_loc): Likewise.
7360 2014-05-13 Richard Sandiford <r.sandiford@uk.ibm.com>
7362 * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
7363 calculation to match get_ref_base_and_extent.
7365 2014-05-13 Catherine Moore <clm@codesourcery.com>
7366 Sandra Loosemore <sandra@codesourcery.com>
7368 * configure.ac: Fix assembly for explicit JALR relocation check.
7369 * configure: Regenerate.
7371 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7373 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
7374 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
7375 Remove associated type declarations and initialisations.
7376 (arm_expand_neon_builtin): Likewise.
7377 (neon_emit_pair_result_insn): Delete.
7378 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
7379 * config/arm/neon.md (neon_vtrn<mode>): Delete.
7380 (neon_vzip<mode>): Likewise.
7381 (neon_vuzp<mode>): Likewise.
7383 2014-05-13 Richard Biener <rguenther@suse.de>
7386 * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
7387 it needs revisiting whether the call still may be tail-called.
7389 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7391 * rtl.def (SYMBOL_REF): Remove middle "0" field.
7392 * rtl.h (block_symbol): Reduce number of fields to 2.
7393 (rtx_def): Add u2.symbol_ref_flags.
7394 (SYMBOL_REF_FLAGS): Use it.
7395 (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
7396 (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
7397 * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
7398 Lower index of SYMBOL_REF_DATA.
7399 * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
7400 Print SYMBOL_REF_FLAGS at the same time.
7401 * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
7403 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7405 * rtl.def (VAR_LOCATION): Remove "i" field.
7406 * rtl.h (rtx_def): Add u2.var_location_status.
7407 (PAT_VAR_LOCATION_STATUS): Use it.
7408 (gen_rtx_VAR_LOCATION): Declare.
7409 * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
7410 * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
7411 * var-tracking.c (emit_note_insn_var_location): Remove casts.
7413 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7415 * rtl.def (scratch): Fix outdated comment and remove "0" field.
7416 * gengtype.c (adjust_field_rtx_def): Update accordingly.
7418 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7420 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
7421 (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
7422 * rtl.h (rtx_def): Add insn_uid to u2 field.
7423 (RTX_FLAG_CHECK8): Delete in favor of...
7424 (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
7425 (INSN_DELETED_P): Update accordingly.
7426 (INSN_UID): Use u2.insn_uid.
7427 (INSN_CHAIN_CODE_P): Define.
7428 (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
7429 (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
7430 (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
7431 (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
7432 (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
7433 indices accordingly.
7434 * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
7435 Update indices for insn-chain rtxes.
7436 * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
7437 (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
7438 * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
7439 * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
7440 * combine.c (try_combine): Likewise.
7441 * ira.c (setup_prohibited_mode_move_regs): Likewise.
7443 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7445 * rtl.def (REG): Remove middle field.
7446 * rtl.h (rtx_def): Add orignal_regno to u2.
7447 (ORIGINAL_REGNO): Use it instead of field 1.
7448 (REG_ATTRS): Lower field index accordingly.
7449 * gengtype.c (adjust_field_rtx_def): Remove handling of
7450 ORIGINAL_REGNO. Move REG_ATTRS index down.
7451 * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
7452 code that prints the REGNO.
7454 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7456 * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
7459 2014-05-13 Richard Sandiford <rdsandiford@googlemail.com>
7461 * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
7463 2014-05-13 Bin Cheng <bin.cheng@arm.com>
7465 * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
7466 (alloc_iv): Lower base expressions containing ADDR_EXPR.
7468 2014-05-13 Ian Bolton <ian.bolton@arm.com>
7470 * config/aarch64/aarch64-protos.h
7471 (aarch64_hard_regno_caller_save_mode): New prototype.
7472 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
7474 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
7476 2014-05-13 Christian Bruel <christian.bruel@st.com>
7478 * target.def (mode_switching): New hook vector.
7479 (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
7480 (mode_exit, modepriority_to_mode): Likewise.
7481 * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
7482 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7483 * target.h: Include tm.h and hard-reg-set.h.
7484 * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
7485 (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
7486 * doc/tm.texi Regenerate.
7487 * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
7488 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7489 * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
7490 (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
7491 * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
7492 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7493 * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
7494 (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
7495 * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
7496 (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
7497 (ix86_emit_mode_set): Hookify.
7498 * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
7500 (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7501 * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
7502 (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
7503 (epiphany_mode_priority_to_mode): Remove declaration.
7504 * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
7505 (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
7506 (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
7508 (epiphany_mode_priority_to_mode): Change priority type. Hookify.
7509 (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
7510 (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
7512 2014-05-13 Jakub Jelinek <jakub@redhat.com>
7515 * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
7516 is const0_rtx, return immediately. Don't test count == 0 when
7519 2014-05-13 Zhenqiang Chen <zhenqiang.chen@linaro.org>
7521 * Makefile.in: add shrink-wrap.o.
7522 * config/i386/i386.c: include "shrink-wrap.h"
7523 * function.c: Likewise.
7524 (requires_stack_frame_p, next_block_for_reg,
7525 move_insn_for_shrink_wrap, prepare_shrink_wrap,
7526 dup_block_and_redirect): Move to shrink-wrap.c
7527 (thread_prologue_and_epilogue_insns): Extract three code segments
7528 as functions in shrink-wrap.c
7529 * function.h: Move #ifdef HAVE_simple_return ... #endif block to
7531 * shrink-wrap.c: New file.
7532 * shrink-wrap.h: New file.
7534 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
7536 * doc/extend.texi: Reflect current numbers of pragmas. Remove
7537 reference to Solaris.
7539 2014-05-12 Mike Stump <mikestump@comcast.net>
7542 * genattrtab.c (filename): Add.
7543 (convert_set_attr_alternative): Improve error message.
7544 (check_defs): Restore read_md_filename for error messages.
7545 (gen_insn): Save filename.
7547 2014-05-12 Dimitris Papavasiliou <dpapavas@gmail.com>
7549 * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
7550 -fno-local-ivars and -fivar-visibility.
7551 * c-family/c.opt: Make -Wshadow also implicitly enable
7554 2014-05-12 David Wohlferd <dw@LimeGreenSocks.com>
7556 * doc/tm.texi: Remove reference to deleted macro.
7557 * doc/tm.texi.in: Likewise.
7559 2014-05-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7562 * config/avr/avr.c (avr_out_store_psi): Use correct constant
7565 2014-05-12 Georg-Johann Lay <avr@gjlay.de>
7568 * config/arm/arm.h (License): Add GCC Runtime Library Exception.
7569 * config/arm/aout.h (License): Same.
7570 * config/arm/bpabi.h (License): Same.
7571 * config/arm/elf.h (License): Same.
7572 * config/arm/linux-elf.h (License): Same.
7573 * config/arm/linux-gas.h (License): Same.
7574 * config/arm/netbsd-elf.h (License): Same.
7575 * config/arm/uclinux-eabi.h (License): Same.
7576 * config/arm/uclinux-elf.h (License): Same.
7577 * config/arm/vxworks.h (License): Same.
7579 2014-05-11 Jakub Jelinek <jakub@redhat.com>
7581 * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
7582 * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
7583 number of operands to 3.
7584 (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
7585 * tree-nested.c (convert_nonlocal_omp_clauses,
7586 convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
7587 * gimplify.c (gimplify_scan_omp_clauses): Handle
7588 OMP_CLAUSE_LINEAR_STMT.
7589 * omp-low.c (lower_rec_input_clauses): Fix typo.
7590 (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
7591 cast between Fortran boolean_type_node and C _Bool if
7594 2014-05-11 Richard Sandiford <rdsandiford@googlemail.com>
7596 PR tree-optimization/61136
7597 * wide-int.h (multiple_of_p): Define a version that doesn't return
7599 * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
7600 integer_zerop/const_binop pair.
7601 (multiple_of_p): Likewise, converting both operands to widest_int
7604 2014-05-09 Teresa Johnson <tejohnson@google.com>
7606 * cgraphunit.c (analyze_functions): Use correct dump file.
7608 2014-05-09 Florian Weimer <fweimer@redhat.com>
7610 * cfgexpand.c (stack_protect_decl_p): New function, extracted from
7612 (stack_protect_return_slot_p): New function.
7613 (expand_used_vars): Call stack_protect_decl_p and
7614 stack_protect_return_slot_p for -fstack-protector-strong.
7616 2014-05-09 David Wohlferd <LimeGreenSocks@yahoo.com>
7617 Andrew Haley <aph@redhat.com>
7618 Richard Sandiford <rdsandiford@googlemail.com>
7620 * doc/extend.texi: Rewrite inline asm page / re-org asm-related
7623 2014-05-09 Kenneth Zadeck <zadeck@naturalbridge.com>
7626 * fold-const.c (fold_binary_loc): Changed width of mask.
7628 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
7630 * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
7631 unsigned int initializers for regno_in, regno_out.
7633 2014-05-09 Georg-Johann Lay <avr@gjlay.de>
7636 * config/avr/avr.md (cc): Add new attribute set_vzn.
7637 (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
7638 Set cc insn attribute to set_vzn instead of set_zn for alternatives
7639 with INC, DEC or NEG.
7640 * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
7641 (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
7642 INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
7644 2014-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7647 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7649 * wide-int.cc (UTItype): Define.
7650 (UDWtype): Define for appropriate W_TYPE_SIZE.
7652 2014-05-09 Richard Biener <rguenther@suse.de>
7654 * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
7655 * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
7656 (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
7657 (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
7658 ssa_propagate): Adjust.
7660 2014-05-08 Jeff Law <law@redhat.com>
7662 PR tree-optimization/61009
7663 * tree-ssa-threadedge.c (thread_through_normal_block): Return a
7664 tri-state rather than a boolean. When a block is too big to
7665 thread through, inform caller via negative return value.
7666 (thread_across_edge): If a block was too big for normal threading,
7667 then it's too big for a joiner too, so remove temporary equivalences
7668 and return immediately.
7670 2014-05-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
7671 Matthias Klose <doko@ubuntu.com>
7674 * optc-gen.awk: Fix option handling for -Wunused-parameter.
7676 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
7679 * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
7681 2014-05-08 Uros Bizjak <ubizjak@gmail.com>
7684 * config/alpha/alpha.c: Include gimple-iterator.h.
7685 (alpha_gimple_fold_builtin): New function. Move
7686 ALPHA_BUILTIN_UMULH folding from ...
7687 (alpha_fold_builtin): ... here.
7688 (TARGET_GIMPLE_FOLD_BUILTIN): New define.
7690 2014-05-08 Wei Mi <wmi@google.com>
7693 * config/i386/i386.c (ix86_compute_frame_layout): Update
7694 preferred_stack_boundary for call, expanded from tls descriptor.
7695 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
7696 to depend on SP register.
7697 (*tls_local_dynamic_base_32_gnu): Ditto.
7698 (*tls_local_dynamic_32_once): Ditto.
7699 (tls_global_dynamic_64_<mode>): Set
7700 ix86_tls_descriptor_calls_expanded_in_cfun.
7701 (tls_local_dynamic_base_64_<mode>): Ditto.
7702 (tls_global_dynamic_32): Set
7703 ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
7704 to depend on SP register.
7705 (tls_local_dynamic_base_32): Ditto.
7707 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7709 * config/arm/arm_neon.h: Update comment.
7710 * config/arm/neon-docgen.ml: Delete.
7711 * config/arm/neon-gen.ml: Delete.
7712 * doc/arm-neon-intrinsics.texi: Update comment.
7714 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7716 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
7718 (vand, vorr, veor, vorn, vbic): Remove.
7719 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
7721 (neon_vsub_unspec): Likewise.
7722 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
7724 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7726 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
7727 (vadd_s16): Likewise.
7728 (vadd_s32): Likewise.
7729 (vadd_f32): Likewise.
7730 (vadd_u8): Likewise.
7731 (vadd_u16): Likewise.
7732 (vadd_u32): Likewise.
7733 (vadd_s64): Likewise.
7734 (vadd_u64): Likewise.
7735 (vaddq_s8): Likewise.
7736 (vaddq_s16): Likewise.
7737 (vaddq_s32): Likewise.
7738 (vaddq_s64): Likewise.
7739 (vaddq_f32): Likewise.
7740 (vaddq_u8): Likewise.
7741 (vaddq_u16): Likewise.
7742 (vaddq_u32): Likewise.
7743 (vaddq_u64): Likewise.
7744 (vmul_s8): Likewise.
7745 (vmul_s16): Likewise.
7746 (vmul_s32): Likewise.
7747 (vmul_f32): Likewise.
7748 (vmul_u8): Likewise.
7749 (vmul_u16): Likewise.
7750 (vmul_u32): Likewise.
7751 (vmul_p8): Likewise.
7752 (vmulq_s8): Likewise.
7753 (vmulq_s16): Likewise.
7754 (vmulq_s32): Likewise.
7755 (vmulq_f32): Likewise.
7756 (vmulq_u8): Likewise.
7757 (vmulq_u16): Likewise.
7758 (vmulq_u32): Likewise.
7759 (vsub_s8): Likewise.
7760 (vsub_s16): Likewise.
7761 (vsub_s32): Likewise.
7762 (vsub_f32): Likewise.
7763 (vsub_u8): Likewise.
7764 (vsub_u16): Likewise.
7765 (vsub_u32): Likewise.
7766 (vsub_s64): Likewise.
7767 (vsub_u64): Likewise.
7768 (vsubq_s8): Likewise.
7769 (vsubq_s16): Likewise.
7770 (vsubq_s32): Likewise.
7771 (vsubq_s64): Likewise.
7772 (vsubq_f32): Likewise.
7773 (vsubq_u8): Likewise.
7774 (vsubq_u16): Likewise.
7775 (vsubq_u32): Likewise.
7776 (vsubq_u64): Likewise.
7777 (vand_s8): Likewise.
7778 (vand_s16): Likewise.
7779 (vand_s32): Likewise.
7780 (vand_u8): Likewise.
7781 (vand_u16): Likewise.
7782 (vand_u32): Likewise.
7783 (vand_s64): Likewise.
7784 (vand_u64): Likewise.
7785 (vandq_s8): Likewise.
7786 (vandq_s16): Likewise.
7787 (vandq_s32): Likewise.
7788 (vandq_s64): Likewise.
7789 (vandq_u8): Likewise.
7790 (vandq_u16): Likewise.
7791 (vandq_u32): Likewise.
7792 (vandq_u64): Likewise.
7793 (vorr_s8): Likewise.
7794 (vorr_s16): Likewise.
7795 (vorr_s32): Likewise.
7796 (vorr_u8): Likewise.
7797 (vorr_u16): Likewise.
7798 (vorr_u32): Likewise.
7799 (vorr_s64): Likewise.
7800 (vorr_u64): Likewise.
7801 (vorrq_s8): Likewise.
7802 (vorrq_s16): Likewise.
7803 (vorrq_s32): Likewise.
7804 (vorrq_s64): Likewise.
7805 (vorrq_u8): Likewise.
7806 (vorrq_u16): Likewise.
7807 (vorrq_u32): Likewise.
7808 (vorrq_u64): Likewise.
7809 (veor_s8): Likewise.
7810 (veor_s16): Likewise.
7811 (veor_s32): Likewise.
7812 (veor_u8): Likewise.
7813 (veor_u16): Likewise.
7814 (veor_u32): Likewise.
7815 (veor_s64): Likewise.
7816 (veor_u64): Likewise.
7817 (veorq_s8): Likewise.
7818 (veorq_s16): Likewise.
7819 (veorq_s32): Likewise.
7820 (veorq_s64): Likewise.
7821 (veorq_u8): Likewise.
7822 (veorq_u16): Likewise.
7823 (veorq_u32): Likewise.
7824 (veorq_u64): Likewise.
7825 (vbic_s8): Likewise.
7826 (vbic_s16): Likewise.
7827 (vbic_s32): Likewise.
7828 (vbic_u8): Likewise.
7829 (vbic_u16): Likewise.
7830 (vbic_u32): Likewise.
7831 (vbic_s64): Likewise.
7832 (vbic_u64): Likewise.
7833 (vbicq_s8): Likewise.
7834 (vbicq_s16): Likewise.
7835 (vbicq_s32): Likewise.
7836 (vbicq_s64): Likewise.
7837 (vbicq_u8): Likewise.
7838 (vbicq_u16): Likewise.
7839 (vbicq_u32): Likewise.
7840 (vbicq_u64): Likewise.
7841 (vorn_s8): Likewise.
7842 (vorn_s16): Likewise.
7843 (vorn_s32): Likewise.
7844 (vorn_u8): Likewise.
7845 (vorn_u16): Likewise.
7846 (vorn_u32): Likewise.
7847 (vorn_s64): Likewise.
7848 (vorn_u64): Likewise.
7849 (vornq_s8): Likewise.
7850 (vornq_s16): Likewise.
7851 (vornq_s32): Likewise.
7852 (vornq_s64): Likewise.
7853 (vornq_u8): Likewise.
7854 (vornq_u16): Likewise.
7855 (vornq_u32): Likewise.
7856 (vornq_u64): Likewise.
7858 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7860 * wide-int.cc (UTItype): Define.
7861 (UDWtype): Define for appropriate W_TYPE_SIZE.
7863 2014-05-08 Marc Glisse <marc.glisse@inria.fr>
7865 PR tree-optimization/59100
7866 * tree-ssa-phiopt.c: Include tree-inline.h.
7867 (neutral_element_p, absorbing_element_p): New functions.
7868 (value_replacement): Handle conditional binary operations with a
7869 neutral or absorbing element.
7871 2014-05-08 Richard Biener <rguenther@suse.de>
7873 * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
7874 folding the expression.
7875 (valueize_expr): Remove.
7876 (visit_reference_op_load): Do not valueize the result of
7878 (simplify_binary_expression): Likewise.
7879 (simplify_unary_expression): Likewise.
7881 2014-05-08 Richard Biener <rguenther@suse.de>
7883 * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
7884 looking at TYPE_ARG_TYPES.
7886 2014-05-08 Richard Biener <rguenther@suse.de>
7888 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
7889 pointer propagation special-case.
7891 2014-05-08 Bin Cheng <bin.cheng@arm.com>
7893 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
7894 core part of address expressions.
7896 2014-05-08 Alan Modra <amodra@gmail.com>
7899 * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
7900 loads and stores when -mno-strict-align at any alignment.
7901 (expand_block_clear): Similarly. Also correct calculation of
7904 2014-05-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7907 * tree-complex.c (expand_complex_move): Keep line info when expanding
7909 * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
7910 of complex expression. Use new argument to display correct location
7911 for values coming from phi statement.
7912 (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
7913 (warn_uninitialized_phi): Pass location of phi argument to
7915 * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
7916 COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
7918 2014-05-07 Segher Boessenkool <segher@kernel.crashing.org>
7920 * config/rs6000/predicates.md (indexed_address_mem): New.
7921 * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
7922 load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
7923 fpstore_ux, fpstore_u.
7924 (sign_extend, indexed, update): New.
7925 (cell_micro): Adjust.
7926 (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
7927 *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
7928 *movsi_internal1, *movsi_internal1_single, *movhi_internal,
7929 *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
7930 *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
7931 *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
7932 *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
7933 *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
7934 *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
7935 *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
7936 *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
7937 *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
7938 *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
7939 *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
7940 *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
7942 * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
7943 * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
7944 *vsx_extract_<mode>_store): Adjust.
7945 * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
7946 is_cracked_insn, insn_must_be_first_in_group,
7947 insn_must_be_last_in_group): Adjust.
7949 * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
7951 * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
7952 ppc440-fpstore): Adjust.
7953 * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
7954 ppc476-fpstore): Adjust.
7955 * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
7956 ppc601-fpstore): Adjust.
7957 * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
7959 * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
7961 * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
7962 ppc7450-fpstore): Adjust.
7963 * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
7964 * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
7965 * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
7967 * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
7968 cell-fpload, cell-fpload-update, cell-store, cell-store-update,
7969 cell-fpstore, cell-fpstore-update): Adjust.
7970 * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
7971 ppce300c3_store, ppce300c3_fpstore): Adjust.
7972 * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
7973 e500mc_fpstore): Adjust.
7974 * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
7975 e500mc64_store, e500mc64_fpstore): Adjust.
7976 * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
7977 e5500_fpstore): Adjust.
7978 * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
7979 e6500_fpstore): Adjust.
7980 * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
7982 * config/rs6000/power4.md (power4-load, power4-load-ext,
7983 power4-load-ext-update, power4-load-ext-update-indexed,
7984 power4-load-update-indexed, power4-load-update, power4-fpload,
7985 power4-fpload-update, power4-store, power4-store-update,
7986 power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
7988 * config/rs6000/power5.md (power5-load, power5-load-ext,
7989 power5-load-ext-update, power5-load-ext-update-indexed,
7990 power5-load-update-indexed, power5-load-update, power5-fpload,
7991 power5-fpload-update, power5-store, power5-store-update,
7992 power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
7994 * config/rs6000/power6.md (power6-load, power6-load-ext,
7995 power6-load-update, power6-load-update-indexed,
7996 power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
7997 power6-fpload-update, power6-store, power6-store-update,
7998 power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
8000 * config/rs6000/power7.md (power7-load, power7-load-ext,
8001 power7-load-update, power7-load-update-indexed,
8002 power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
8003 power7-fpload-update, power7-store, power7-store-update,
8004 power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
8006 * config/rs6000/power8.md (power8-load, power8-load-update,
8007 power8-load-ext, power8-load-ext-update, power8-fpload,
8008 power8-fpload-update, power8-store, power8-store-update-indexed,
8009 power8-fpstore, power8-fpstore-update): Adjust.
8010 * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
8012 * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
8013 titan_lsu_store, titan_lsu_fpstore): Adjust.
8014 * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
8016 2014-05-07 Oleg Endo <olegendo@gcc.gnu.org>
8019 * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
8020 unrolled byte insns. Emit address increments after move insns.
8022 2014-05-07 David Malcolm <dmalcolm@redhat.com>
8024 * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
8025 const_gimple, rather than a gimple.
8026 (gimple_call_builtin_p): Likewise, for the three variants.
8028 * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
8029 (gimple_call_builtin_p): Likewise, for the three variants.
8031 2014-05-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
8033 PR tree-optimization/61095
8034 * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
8036 2014-05-07 Richard Biener <rguenther@suse.de>
8038 PR tree-optimization/61034
8039 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
8040 (maybe_skip_until): Use translate to take into account
8041 lattices when trying to do disambiguations.
8042 (get_continuation_for_phi_1): Likewise.
8043 (get_continuation_for_phi): Adjust for added translate arguments.
8044 (walk_non_aliased_vuses): Likewise.
8045 * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
8046 (walk_non_aliased_vuses): Likewise.
8047 (call_may_clobber_ref_p_1): Declare.
8048 * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
8049 calls. Stop early if we are only supposed to disambiguate.
8050 * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
8052 2014-05-07 Joern Rennecke <joern.rennecke@embecosm.com>
8054 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
8055 Emit an error when the function has arguments.
8057 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
8059 * cfgloop.h (unswitch_loops): Remove.
8060 * doc/passes.texi: Remove references to loop-unswitch.c
8061 * timevar.def (TV_LOOP_UNSWITCH): Remove.
8063 2014-05-07 Evgeny Stupachenko <evstupac@gmail.com>
8065 * tree-vect-data-refs.c (vect_grouped_load_supported): New
8066 check for loads group of length 3.
8067 (vect_permute_load_chain): New permutations for loads group of
8069 * tree-vect-stmts.c (vect_model_load_cost): Change cost
8070 of vec_perm_shuffle for the new permutations.
8072 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
8074 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
8075 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
8076 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
8077 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
8078 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
8079 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
8080 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
8081 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
8083 2014-05-07 Thomas Schwinge <thomas@codesourcery.com>
8085 * loop-unswitch.c: Delete.
8087 2014-05-07 Richard Biener <rguenther@suse.de>
8089 * config.gcc: Always set need_64bit_hwint to yes.
8091 2014-05-07 Chung-Ju Wu <jasonwucj@gmail.com>
8093 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
8094 of using optimize_size.
8096 2014-05-06 Mike Stump <mikestump@comcast.net>
8098 * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
8100 2014-05-06 Joseph Myers <joseph@codesourcery.com>
8102 * config/i386/sse.md (*mov<mode>_internal)
8103 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
8104 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
8105 (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
8106 (*<code><mode>3, *andnot<mode>3<mask_name>)
8107 (<mask_codefor><code><mode>3<mask_name>): Only consider
8108 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
8110 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
8113 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
8115 * lra-constraints.c (valid_address_p): Move earlier in file.
8116 Add a constraint argument to the address_info version.
8117 (satisfies_memory_constraint_p): New function.
8118 (satisfies_address_constraint_p): Likewise.
8119 (process_alt_operands, curr_insn_transform): Use them.
8120 (process_address): Pass the constraint to valid_address_p when
8121 checking address operands.
8123 2014-05-06 Richard Sandiford <r.sandiford@uk.ibm.com>
8125 * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
8126 to their respective blocks. Fix inadvertent use of "node".
8128 2014-05-06 Richard Sandiford <rdsandiford@googlemail.com>
8130 * emit-rtl.c (init_derived_machine_modes): New functionm, split
8132 (init_emit_once): ...here.
8133 * rtl.h (init_derived_machine_modes): Declare.
8134 * toplev.c (do_compile): Call it even if no_backend.
8136 2014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com>
8137 Mike Stump <mikestump@comcast.net>
8138 Richard Sandiford <rdsandiford@googlemail.com>
8139 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8141 * alias.c (ao_ref_from_mem): Use wide-int interfaces.
8142 (rtx_equal_for_memref_p): Update comment.
8143 (adjust_offset_for_component_ref): Use wide-int interfaces.
8144 * builtins.c (get_object_alignment_2): Likewise.
8145 (c_readstr): Likewise.
8146 (target_char_cast): Add comment.
8147 (determine_block_size): Use wide-int interfaces.
8148 (expand_builtin_signbit): Likewise.
8149 (fold_builtin_int_roundingfn): Likewise.
8150 (fold_builtin_bitop): Likewise.
8151 (fold_builtin_bswap): Likewise.
8152 (fold_builtin_logarithm): Use signop.
8153 (fold_builtin_pow): Likewise.
8154 (fold_builtin_memory_op): Use wide-int interfaces.
8155 (fold_builtin_object_size): Likewise.
8156 * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
8157 nb_iterations_estimate.
8158 (record_niter_bound): Use wide-int interfaces.
8159 (get_estimated_loop_iterations_int): Likewise.
8160 (get_estimated_loop_iterations): Likewise.
8161 (get_max_loop_iterations): Likewise.
8162 * cfgloop.h: Include wide-int.h.
8163 (struct nb_iter_bound): Change bound to widest_int.
8164 (struct loop): Change nb_iterations_upper_bound and
8165 nb_iterations_estimate to widest_int.
8166 (record_niter_bound): Switch to use widest_int.
8167 (get_estimated_loop_iterations): Likewise.
8168 (get_max_loop_iterations): Likewise.
8169 (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
8170 update for wide-int.
8171 * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
8172 * combine.c (try_combine): Likewise.
8173 (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
8174 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
8176 (aarch64_float_const_representable_p): Likewise.
8177 * config/arc/arc.c: Include wide-int.h.
8178 (arc_can_use_doloop_p): Use wide-int interfaces.
8179 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
8180 (vfp3_const_double_index): Likewise.
8181 * config/avr/avr.c (avr_out_round): Likewise.
8182 (avr_fold_builtin): Likewise.
8183 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
8184 (bfin_can_use_doloop_p): Likewise.
8185 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
8186 (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
8187 * config/i386/i386.c: Include wide-int.h.
8188 (ix86_data_alignment): Use wide-int interfaces.
8189 (ix86_local_alignment): Likewise.
8190 (ix86_emit_swsqrtsf): Update real_from_integer.
8191 * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
8192 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
8193 * config/rs6000/predicates.md (any_operand): Add const_wide_int.
8194 (zero_constant): Likewise.
8195 (input_operand): Likewise.
8196 (splat_input_operand): Likewise.
8197 (non_logical_cint_operand): Change const_double to const_wide_int.
8198 * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
8199 (easy_altivec_constant): Remove comment.
8200 (paired_expand_vector_init): Use CONSTANT_P.
8201 (rs6000_legitimize_address): Handle CONST_WIDE_INT.
8202 (rs6000_emit_move): Update checks.
8203 (rs6000_aggregate_candidate): Use wide-int interfaces.
8204 (rs6000_expand_ternop_builtin): Likewise.
8205 (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
8206 (rs6000_assemble_integer): Likewise.
8207 (rs6000_hash_constant): Likewise.
8208 (output_toc): Likewise.
8209 (rs6000_rtx_costs): Likewise.
8210 (rs6000_emit_swrsqrt); Update call to real_from_integer.
8211 * config/rs6000/rs6000-c.c: Include wide-int.h.
8212 (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
8213 * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
8214 * config/rs6000/rs6000.md: Use const_scalar_int_operand.
8215 Handle CONST_WIDE_INT.
8216 * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
8217 Use tree_fits_uhwi_p.
8218 * config/sparc/sparc.c: Include wide-int.h.
8219 (sparc_fold_builtin): Use wide-int interfaces.
8220 * config/vax/vax.c: Include wide-int.h.
8221 (vax_float_literal): Use real_from_integer.
8222 * coretypes.h (struct hwivec_def): New.
8224 (const_hwivec): New.
8225 * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
8226 (equiv_constant): Handle CONST_WIDE_INT.
8227 * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
8228 (cselib_hash_rtx): Handle CONST_WIDE_INT.
8229 * dbxout.c (stabstr_U): Use wide-int interfaces.
8230 (dbxout_type): Update to use cst_fits_shwi_p.
8231 * defaults.h (LOG2_BITS_PER_UNIT): Define.
8232 (TARGET_SUPPORTS_WIDE_INT): Add default.
8233 * dfp.c: Include wide-int.h.
8234 (decimal_real_to_integer2): Use wide-int interfaces and rename to
8235 decimal_real_to_integer.
8236 * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
8237 decimal_real_to_integer.
8238 * doc/generic.texi (Constant expressions): Update for wide_int.
8239 * doc/rtl.texi (const_double): Likewise.
8240 (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
8241 (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
8242 * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
8243 (REAL_VALUE_FROM_INT): Remove.
8244 (TARGET_SUPPORTS_WIDE_INT): New.
8245 * doc/tm.texi: Regenerate.
8246 * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
8247 * double-int.h: Include wide-int.h.
8248 (struct wi::int_traits): New.
8249 * dwarf2out.c (get_full_len): New.
8250 (dw_val_equal_p): Add case dw_val_class_wide_int.
8251 (size_of_loc_descr): Likewise.
8252 (output_loc_operands): Likewise.
8253 (insert_double): Remove.
8254 (insert_wide_int): New.
8256 (print_die): Add case dw_val_class_wide_int.
8257 (attr_checksum): Likewise.
8258 (attr_checksum_ordered): Likewise.
8259 (same_dw_val_p): Likewise.
8260 (size_of_die): Likewise.
8261 (value_format): Likewise.
8262 (output_die): Likewise.
8263 (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
8265 (clz_loc_descriptor): Use wide-int interfaces.
8266 (mem_loc_descriptor): Likewise. Handle CONST_WIDE_INT.
8267 (loc_descriptor): Use wide-int interfaces. Handle CONST_WIDE_INT.
8268 (round_up_to_align): Use wide-int interfaces.
8269 (field_byte_offset): Likewise.
8270 (insert_double): Rename to insert_wide_int. Use wide-int interfaces.
8271 (add_const_value_attribute): Handle CONST_WIDE_INT. Update
8272 CONST_DOUBLE handling. Use wide-int interfaces.
8273 (add_bound_info): Use tree_fits_uhwi_p. Use wide-int interfaces.
8274 (gen_enumeration_type_die): Use add_AT_wide.
8275 (hash_loc_operands): Add case dw_val_class_wide_int.
8276 (compare_loc_operands): Likewise.
8277 * dwarf2out.h: Include wide-int.h.
8278 (wide_int_ptr): New.
8279 (enum dw_val_class): Add dw_val_class_wide_int.
8280 (struct dw_val_struct): Add val_wide.
8281 * emit-rtl.c (const_wide_int_htab): New.
8282 (const_wide_int_htab_hash): New.
8283 (const_wide_int_htab_eq): New.
8284 (lookup_const_wide_int): New.
8285 (const_double_htab_hash): Use wide-int interfaces.
8286 (const_double_htab_eq): Likewise.
8287 (rtx_to_double_int): Conditionally compile for wide-int.
8288 (immed_double_int_const): Rename to immed_wide_int_const and
8289 update for wide-int.
8290 (immed_double_const): Conditionally compile for wide-int.
8291 (init_emit_once): Use wide-int interfaces.
8292 * explow.c (plus_constant): Likewise.
8293 * expmed.c (mask_rtx): Move further up file. Use wide-int interfaces.
8294 (lshift_value): Use wide-int interfaces.
8295 (expand_mult): Likewise.
8296 (choose_multiplier): Likewise.
8297 (expand_smod_pow2): Likewise.
8298 (make_tree): Likewise.
8299 * expr.c (convert_modes): Consolidate handling of constants.
8300 Use wide-int interfaces.
8301 (emit_group_load_1): Add note.
8302 (store_expr): Update comment.
8303 (get_inner_reference): Use wide-int interfaces.
8304 (expand_constructor): Update comment.
8305 (expand_expr_real_2): Use wide-int interfaces.
8306 (expand_expr_real_1): Likewise.
8307 (reduce_to_bit_field_precision): Likewise.
8308 (const_vector_from_tree): Likewise.
8309 * final.c: Include wide-int-print.h.
8310 (output_addr_const): Handle CONST_WIDE_INT. Use CONST_DOUBLE_AS_INT_P.
8311 * fixed-value.c: Include wide-int.h.
8312 (fixed_from_string): Use wide-int interfaces.
8313 (fixed_to_decimal): Likewise.
8314 (fixed_convert_from_real): Likewise.
8315 (real_convert_from_fixed): Likewise.
8316 * fold-const.h (mem_ref_offset): Return an offset_int.
8317 (div_if_zero_remainder): Remove code parameter.
8318 * fold-const.c (div_if_zero_remainder): Remove code parameter.
8319 Use wide-int interfaces.
8320 (may_negate_without_overflow_p): Use wide-int interfaces.
8321 (negate_expr_p): Likewise.
8322 (fold_negate_expr): Likewise.
8323 (int_const_binop_1): Likewise.
8324 (const_binop): Likewise.
8325 (fold_convert_const_int_from_int): Likewise.
8326 (fold_convert_const_int_from_real): Likewise.
8327 (fold_convert_const_int_from_fixed): Likewise.
8328 (fold_convert_const_fixed_from_int): Likewise.
8329 (all_ones_mask_p): Take an unsigned size. Use wide-int interfaces.
8330 (sign_bit_p): Use wide-int interfaces.
8331 (make_range_step): Likewise.
8332 (build_range_check): Likewise. Pass an integer of the correct type
8333 instead of using integer_one_node.
8334 (range_predecessor): Pass an integer of the correct type instead
8335 of using integer_one_node.
8336 (range_successor): Likewise.
8337 (merge_ranges): Likewise.
8338 (unextend): Use wide-int interfaces.
8339 (extract_muldiv_1): Likewise.
8340 (fold_div_compare): Likewise.
8341 (fold_single_bit_test): Likewise.
8342 (fold_sign_changed_comparison): Likewise.
8343 (try_move_mult_to_index): Update calls to div_if_zero_remainder.
8344 (fold_plusminus_mult_expr): Use wide-int interfaces.
8345 (native_encode_int): Likewise.
8346 (native_interpret_int): Likewise.
8347 (fold_unary_loc): Likewise.
8348 (pointer_may_wrap_p): Likewise.
8349 (size_low_cst): Likewise.
8350 (mask_with_tz): Likewise.
8351 (fold_binary_loc): Likewise.
8352 (fold_ternary_loc): Likewise.
8353 (multiple_of_p): Likewise.
8354 (tree_call_nonnegative_warnv_p): Update calls to
8355 tree_int_cst_min_precision and real_from_integer.
8356 (fold_negate_const): Use wide-int interfaces.
8357 (fold_abs_const): Likewise.
8358 (fold_relational_const): Use tree_int_cst_lt.
8359 (round_up_loc): Use wide-int interfaces.
8360 * genemit.c (gen_exp): Add CONST_WIDE_INT case.
8361 * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
8362 * gengtype.c: Remove include of double-int.h.
8363 (do_typedef): Use wide-int interfaces.
8364 (open_base_files): Add wide-int.h.
8365 (main): Add offset_int and widest_int typedefs.
8366 * gengtype-lex.l: Handle "^".
8367 (CXX_KEYWORD): Add "static".
8368 * gengtype-parse.c (require3): New.
8369 (require_template_declaration): Handle constant template arguments
8370 and nested templates.
8371 * gengtype-state.c: Don't include "double-int.h".
8372 * genpreds.c (write_one_predicate_function): Update comment.
8373 (write_tm_constrs_h): Add check for hval and lval use in
8375 * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
8376 (add_to_sequence): Likewise.
8377 * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
8378 and const_double_operand.
8379 * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
8381 * gimple-fold.c (get_base_constructor): Likewise.
8382 (fold_array_ctor_reference): Likewise.
8383 (fold_nonarray_ctor_reference): Likewise.
8384 (fold_const_aggregate_ref_1): Likewise.
8385 (gimple_val_nonnegative_real_p): Likewise.
8386 (gimple_fold_indirect_ref): Likewise.
8387 * gimple-pretty-print.c (dump_ssaname_info): Likewise.
8388 * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
8389 (struct slsr_cand_d): Change index to be widest_int.
8390 (struct incr_info_d): Change incr to be widest_int.
8391 (alloc_cand_and_find_basis): Use wide-int interfaces.
8392 (slsr_process_phi): Likewise.
8393 (backtrace_base_for_ref): Likewise. Return a widest_int.
8394 (restructure_reference): Take a widest_int instead of a double_int.
8395 (slsr_process_ref): Use wide-int interfaces.
8396 (create_mul_ssa_cand): Likewise.
8397 (create_mul_imm_cand): Likewise.
8398 (create_add_ssa_cand): Likewise.
8399 (create_add_imm_cand): Take a widest_int instead of a double_int.
8400 (slsr_process_add): Use wide-int interfaces.
8401 (slsr_process_cast): Likewise.
8402 (slsr_process_copy): Likewise.
8403 (dump_candidate): Likewise.
8404 (dump_incr_vec): Likewise.
8405 (replace_ref): Likewise.
8406 (cand_increment): Likewise. Return a widest_int.
8407 (cand_abs_increment): Likewise.
8408 (replace_mult_candidate): Take a widest_int instead of a double_int.
8409 (replace_unconditional_candidate): Use wide-int interfaces.
8410 (incr_vec_index): Take a widest_int instead of a double_int.
8411 (create_add_on_incoming_edge): Likewise.
8412 (create_phi_basis): Use wide-int interfaces.
8413 (replace_conditional_candidate): Likewise.
8414 (record_increment): Take a widest_int instead of a double_int.
8415 (record_phi_increments): Use wide-int interfaces.
8416 (phi_incr_cost): Take a widest_int instead of a double_int.
8417 (lowest_cost_path): Likewise.
8418 (total_savings): Likewise.
8419 (analyze_increments): Use wide-int interfaces.
8420 (ncd_with_phi): Take a widest_int instead of a double_int.
8421 (ncd_of_cand_and_phis): Likewise.
8422 (nearest_common_dominator_for_cands): Likewise.
8423 (insert_initializers): Use wide-int interfaces.
8424 (all_phi_incrs_profitable): Likewise.
8425 (replace_one_candidate): Likewise.
8426 (replace_profitable_candidates): Likewise.
8427 * godump.c: Include wide-int-print.h.
8428 (go_output_typedef): Use wide-int interfaces.
8429 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
8430 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
8431 (build_loop_iteration_domains): Likewise.
8432 * hooks.h: Include wide-int.h rather than double-int.h.
8433 (hook_bool_dint_dint_uint_bool_true): Delete.
8434 (hook_bool_wint_wint_uint_bool_true): Declare.
8435 * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
8436 (hook_bool_wint_wint_uint_bool_true): New.
8437 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
8439 (ubsan_expand_si_overflow_mul_check): Likewise.
8440 * ipa-devirt.c (get_polymorphic_call_info): Likewise.
8441 * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
8442 (get_ancestor_addr_info): Likewise.
8443 (ipa_modify_call_arguments): Likewise.
8444 * loop-doloop.c (doloop_modify): Likewise.
8445 (doloop_optimize): Likewise.
8446 * loop-iv.c (iv_number_of_iterations): Likewise.
8447 * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
8448 (unroll_loop_constant_iterations): Likewise.
8449 (decide_unroll_runtime_iterations): Likewise.
8450 (unroll_loop_runtime_iterations): Likewise.
8451 (decide_peel_simple): Likewise.
8452 (decide_unroll_stupid): Likewise.
8453 * lto-streamer-in.c (streamer_read_wi): Add.
8454 (input_cfg): Use wide-int interfaces.
8455 (lto_input_tree_1): Likewise.
8456 * lto-streamer-out.c (streamer_write_wi): Add.
8457 (hash_tree): Use wide-int interfaces.
8458 (output_cfg): Likewise.
8459 * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
8460 (GTFILES): Add wide-int.h and signop.h.
8461 (TAGS): Look for .cc files too.
8462 * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
8463 * optabs.c (expand_subword_shift): Likewise.
8464 (expand_doubleword_shift): Likewise.
8465 (expand_absneg_bit): Likewise.
8466 (expand_copysign_absneg): Likewise.
8467 (expand_copysign_bit): Likewise.
8468 * postreload.c (reload_cse_simplify_set): Likewise.
8469 * predict.c (predict_iv_comparison): Likewise.
8470 * pretty-print.h: Include wide-int-print.h.
8472 * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
8473 * print-tree.c: Include wide-int-print.h.
8474 (print_node_brief): Use wide-int interfaces.
8475 (print_node): Likewise.
8476 * read-rtl.c (validate_const_wide_int): New.
8477 (read_rtx_code): Add CONST_WIDE_INT case.
8478 * real.c: Include wide-int.h.
8479 (real_to_integer2): Delete.
8480 (real_to_integer): New function, returning a wide_int.
8481 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
8482 (ten_to_ptwo): Update call to real_from_integer.
8483 (real_digit): Likewise.
8484 * real.h: Include signop.h, wide-int.h and insn-modes.h.
8485 (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
8486 (REAL_VALUE_TO_INT): Delete.
8487 (real_to_integer): Declare a wide-int form.
8488 (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
8489 * recog.c (const_int_operand): Improve comment.
8490 (const_scalar_int_operand): New.
8491 (const_double_operand): Add a separate definition for CONST_WIDE_INT.
8492 * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
8493 (split_double): Likewise.
8494 * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
8495 (rtx_size): Likewise.
8496 (rtx_alloc_stat_v): New.
8497 (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
8498 (cwi_output_hex): New.
8499 (iterative_hash_rtx): Handle CONST_WIDE_INT.
8500 (cwi_check_failed_bounds): New.
8501 * rtl.def (CONST_WIDE_INT): New.
8502 * rtl.h: Include <utility> and wide-int.h.
8503 (struct hwivec_def): New.
8504 (CWI_GET_NUM_ELEM): New.
8505 (CWI_PUT_NUM_ELEM): New.
8506 (struct rtx_def): Add num_elem and hwiv.
8507 (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
8508 (CASE_CONST_UNIQUE): Likewise.
8509 (CASE_CONST_ANY): Likewise.
8510 (CONST_SCALAR_INT_P): Likewise.
8511 (CONST_WIDE_INT_P): New.
8513 (HWIVEC_CHECK): New.
8514 (cwi_check_failed_bounds): New.
8516 (HWIVEC_CHECK): New.
8517 (CONST_WIDE_INT_VEC) New.
8518 (CONST_WIDE_INT_NUNITS) New.
8519 (CONST_WIDE_INT_ELT) New.
8520 (rtx_mode_t): New type.
8521 (wi::int_traits <rtx_mode_t>): New.
8523 (wi::min_value): New.
8524 (wi::max_value): New.
8526 (const_wide_int_alloc): New.
8527 (immed_wide_int_const): New.
8528 * sched-vis.c (print_value): Handle CONST_WIDE_INT.
8529 * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
8530 * signop.h: New file.
8531 * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
8532 (simplify_const_unary_operation): Use wide-int interfaces.
8533 (simplify_binary_operation_1): Likewise.
8534 (simplify_const_binary_operation): Likewise.
8535 (simplify_const_relational_operation): Likewise.
8536 (simplify_immed_subreg): Likewise.
8537 * stmt.c (expand_case): Likewise.
8538 * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
8539 signop rather than a bool.
8540 * stor-layout.c (layout_type): Use wide-int interfaces.
8541 (initialize_sizetypes): Update calls to
8542 set_min_and_max_values_for_integral_type.
8543 (set_min_and_max_values_for_integral_type): Take a signop rather
8544 than a bool. Use wide-int interfaces.
8545 (fixup_signed_type): Update accordingly. Remove
8546 HOST_BITS_PER_DOUBLE_INT limit.
8547 (fixup_unsigned_type): Likewise.
8548 * system.h (STATIC_CONSTANT_P): New.
8549 (STATIC_ASSERT): New.
8550 * target.def (can_use_doloop_p): Take widest_ints rather than
8552 * target.h: Include wide-int.h rather than double-int.h.
8553 * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
8555 * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
8556 rather than INT_CST_LT_UNSIGNED.
8557 (can_use_doloop_if_innermost): Take widest_ints rather than
8559 * tree-affine.c: Include wide-int-print.h.
8560 (double_int_ext_for_comb): Delete.
8561 (wide_int_ext_for_comb): New.
8562 (aff_combination_zero): Use wide-int interfaces.
8563 (aff_combination_const): Take a widest_int instead of a double_int.
8564 (aff_combination_elt): Use wide-int interfaces.
8565 (aff_combination_scale): Take a widest_int instead of a double_int.
8566 (aff_combination_add_elt): Likewise.
8567 (aff_combination_add_cst): Likewise.
8568 (aff_combination_add): Use wide-int interfaces.
8569 (aff_combination_convert): Likewise.
8570 (tree_to_aff_combination): Likewise.
8571 (add_elt_to_tree): Take a widest_int instead of a double_int.
8572 (aff_combination_to_tree): Use wide-int interfaces.
8573 (aff_combination_remove_elt): Likewise.
8574 (aff_combination_add_product): Take a widest_int instead of
8576 (aff_combination_mult): Use wide-int interfaces.
8577 (aff_combination_expand): Likewise.
8578 (double_int_constant_multiple_p): Delete.
8579 (wide_int_constant_multiple_p): New.
8580 (aff_combination_constant_multiple_p): Take a widest_int pointer
8581 instead of a double_int pointer.
8582 (print_aff): Use wide-int interfaces.
8583 (get_inner_reference_aff): Take a widest_int pointer
8584 instead of a double_int pointer.
8585 (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
8586 * tree-affine.h: Include wide-int.h.
8587 (struct aff_comb_elt): Change type of coef to widest_int.
8588 (struct affine_tree_combination): Change type of offset to widest_int.
8589 (double_int_ext_for_comb): Delete.
8590 (wide_int_ext_for_comb): New.
8591 (aff_combination_const): Use widest_int instead of double_int.
8592 (aff_combination_scale): Likewise.
8593 (aff_combination_add_elt): Likewise.
8594 (aff_combination_constant_multiple_p): Likewise.
8595 (get_inner_reference_aff): Likewise.
8596 (aff_comb_cannot_overlap_p): Likewise.
8597 (aff_combination_zero_p): Use wide-int interfaces.
8598 * tree.c: Include tree.h.
8599 (init_ttree): Use make_int_cst.
8600 (tree_code_size): Removed code for INTEGER_CST case.
8601 (tree_size): Add INTEGER_CST case.
8602 (make_node_stat): Update comment.
8603 (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
8604 (build_int_cst_type): Use wide-int interfaces.
8605 (double_int_to_tree): Likewise.
8606 (double_int_fits_to_tree_p): Delete.
8607 (force_fit_type_double): Delete.
8608 (force_fit_type): New.
8609 (int_cst_hash_hash): Use wide-int interfaces.
8610 (int_cst_hash_eq): Likewise.
8611 (build_int_cst_wide): Delete.
8612 (wide_int_to_tree): New.
8613 (cache_integer_cst): Use wide-int interfaces.
8614 (build_low_bits_mask): Likewise.
8615 (cst_and_fits_in_hwi): Likewise.
8616 (real_value_from_int_cst): Likewise.
8617 (make_int_cst_stat): New.
8618 (integer_zerop): Use wide_int interfaces.
8619 (integer_onep): Likewise.
8620 (integer_all_onesp): Likewise.
8621 (integer_pow2p): Likewise.
8622 (integer_nonzerop): Likewise.
8623 (tree_log2): Likewise.
8624 (tree_floor_log2): Likewise.
8625 (tree_ctz): Likewise.
8626 (int_size_in_bytes): Likewise.
8627 (mem_ref_offset): Return an offset_int rather than a double_int.
8628 (build_type_attribute_qual_variant): Use wide_int interfaces.
8629 (type_hash_eq): Likewise
8630 (tree_int_cst_equal): Likewise.
8631 (tree_int_cst_lt): Delete.
8632 (tree_int_cst_compare): Likewise.
8633 (tree_fits_shwi_p): Use wide_int interfaces.
8634 (tree_fits_uhwi_p): Likewise.
8635 (tree_int_cst_sign_bit): Likewise.
8636 (tree_int_cst_sgn): Likewise.
8637 (tree_int_cst_min_precision): Take a signop rather than a bool.
8638 (simple_cst_equal): Use wide_int interfaces.
8639 (compare_tree_int): Likewise.
8640 (iterative_hash_expr): Likewise.
8641 (int_fits_type_p): Likewise. Use tree_int_cst_lt rather than
8643 (get_type_static_bounds): Use wide_int interfaces.
8644 (tree_int_cst_elt_check_failed): New.
8645 (build_common_tree_nodes): Reordered to set prec before filling in
8647 (int_cst_value): Check cst_and_fits_in_hwi.
8648 (widest_int_cst_value): Use wide_int interfaces.
8649 (upper_bound_in_type): Likewise.
8650 (lower_bound_in_type): Likewise.
8651 (num_ending_zeros): Likewise.
8652 (drop_tree_overflow): Likewise.
8653 * tree-call-cdce.c (check_pow): Update call to real_from_integer.
8654 (gen_conditions_for_pow_cst_base): Likewise.
8655 * tree-cfg.c: Include wide-int.h and wide-int-print.h.
8656 (group_case_labels_stmt): Use wide-int interfaces.
8657 (verify_gimple_assign_binary): Likewise.
8658 (print_loop): Likewise.
8659 * tree-chrec.c (tree_fold_binomial): Likewise.
8660 * tree-core.h (struct tree_base): Add int_length.
8661 (struct tree_int_cst): Change rep of value.
8662 * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
8663 (dr_may_alias_p): Likewise.
8664 (max_stmt_executions_tree): Likewise.
8665 * tree.def (INTEGER_CST): Update comment.
8666 * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
8667 * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
8668 * tree-dump.c: Include wide-int.h and wide-int-print.h.
8669 (dequeue_and_dump): Use wide-int interfaces.
8670 * tree.h: Include wide-int.h.
8671 (NULL_TREE): Moved to earlier loc in file.
8672 (TREE_INT_CST_ELT_CHECK): New.
8673 (tree_int_cst_elt_check_failed): New.
8675 (TREE_INT_CST): Delete.
8676 (TREE_INT_CST_LOW): Use wide-int interfaces.
8677 (TREE_INT_CST_HIGH): Delete.
8678 (TREE_INT_CST_NUNITS): New.
8679 (TREE_INT_CST_EXT_NUNITS): Likewise.
8680 (TREE_INT_CST_OFFSET_NUNITS): Likewise.
8681 (TREE_INT_CST_ELT): Likewise.
8682 (INT_CST_LT): Delete.
8683 (tree_int_cst_elt_check): New (two forms).
8684 (type_code_size): Update comment.
8685 (make_int_cst_stat, make_int_cst): New.
8686 (tree_to_double_int): Delete.
8687 (double_int_fits_to_tree_p): Delete.
8688 (force_fit_type_double): Delete.
8689 (build_int_cstu): Replace with out-of-line function.
8690 (build_int_cst_wide): Delete.
8691 (tree_int_cst_lt): Define inline.
8692 (tree_int_cst_le): New.
8693 (tree_int_cst_compare): Define inline.
8694 (tree_int_cst_min_precision): Take a signop rather than a bool.
8695 (wi::int_traits <const_tree>): New.
8696 (wi::int_traits <tree>): New.
8697 (wi::extended_tree): New.
8698 (wi::int_traits <wi::extended_tree>): New.
8699 (wi::to_widest): New.
8700 (wi::to_offset): New.
8701 (wi::fits_to_tree_p): New.
8702 (wi::min_value): New.
8703 (wi::max_value): New.
8704 * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
8705 (copy_tree_body_r): Likewise.
8706 * tree-object-size.c (compute_object_offset): Likewise.
8707 (addr_object_size): Likewise.
8708 * tree-predcom.c: Include wide-int-print.h.
8709 (struct dref_d): Change type of offset to widest_int.
8710 (dump_dref): Call wide-int printer.
8711 (aff_combination_dr_offset): Use wide-int interfaces.
8712 (determine_offset): Take a widest_int pointer rather than a
8714 (split_data_refs_to_components): Use wide-int interfaces.
8715 (suitable_component_p): Likewise.
8716 (order_drefs): Likewise.
8717 (add_ref_to_chain): Likewise.
8718 (valid_initializer_p): Likewise.
8719 (determine_roots_comp): Likewise.
8720 * tree-pretty-print.c: Include wide-int-print.h.
8721 (dump_generic_node): Use wide-int interfaces.
8722 * tree-sra.c (sra_ipa_modify_expr): Likewise.
8723 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
8724 (move_fixed_address_to_symbol): Likewise.
8725 (move_hint_to_base): Likewise.
8726 (move_pointer_to_base): Likewise.
8727 (move_variant_to_index): Likewise.
8728 (most_expensive_mult_to_index): Likewise.
8729 (addr_to_parts): Likewise.
8730 (copy_ref_info): Likewise.
8731 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8732 (indirect_refs_may_alias_p): Likewise.
8733 (stmt_kills_ref_p_1): Likewise.
8734 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
8735 * tree-ssa-ccp.c: Update comment at top of file. Include
8737 (struct prop_value_d): Change type of mask to widest_int.
8738 (extend_mask): New function.
8739 (dump_lattice_value): Use wide-int interfaces.
8740 (get_default_value): Likewise.
8741 (set_constant_value): Likewise.
8742 (set_value_varying): Likewise.
8743 (valid_lattice_transition): Likewise.
8744 (set_lattice_value): Likewise.
8745 (value_to_double_int): Delete.
8746 (value_to_wide_int): New.
8747 (get_value_from_alignment): Use wide-int interfaces.
8748 (get_value_for_expr): Likewise.
8749 (do_dbg_cnt): Likewise.
8750 (ccp_finalize): Likewise.
8751 (ccp_lattice_meet): Likewise.
8752 (bit_value_unop_1): Use widest_ints rather than double_ints.
8753 (bit_value_binop_1): Likewise.
8754 (bit_value_unop): Use wide-int interfaces.
8755 (bit_value_binop): Likewise.
8756 (bit_value_assume_aligned): Likewise.
8757 (evaluate_stmt): Likewise.
8758 (ccp_fold_stmt): Likewise.
8759 (visit_cond_stmt): Likewise.
8760 (ccp_visit_stmt): Likewise.
8761 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8762 (constant_pointer_difference): Likewise.
8763 (associate_pointerplus): Likewise.
8764 (combine_conversions): Likewise.
8765 * tree-ssa-loop.h: Include wide-int.h.
8766 (struct tree_niter_desc): Change type of max to widest_int.
8767 * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
8768 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
8769 (remove_redundant_iv_tests): Likewise.
8770 (canonicalize_loop_induction_variables): Likewise.
8771 * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
8772 (constant_multiple_of): Take a widest_int pointer instead of
8773 a double_int pointer.
8774 (get_computation_aff): Use wide-int interfaces.
8775 (ptr_difference_cost): Likewise.
8776 (difference_cost): Likewise.
8777 (get_loop_invariant_expr_id): Likewise.
8778 (get_computation_cost_at): Likewise.
8779 (iv_elimination_compare_lt): Likewise.
8780 (may_eliminate_iv): Likewise.
8781 * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
8782 instead of double_int.
8783 (max_loop_iterations): Likewise.
8784 (max_stmt_executions): Likewise.
8785 (estimated_stmt_executions): Likewise.
8786 * tree-ssa-loop-niter.c: Include wide-int-print.h.
8787 (split_to_var_and_offset): Use wide-int interfaces.
8788 (determine_value_range): Likewise.
8789 (bound_difference_of_offsetted_base): Likewise.
8790 (bounds_add): Take a widest_int instead of a double_int.
8791 (number_of_iterations_ne_max): Use wide-int interfaces.
8792 (number_of_iterations_ne): Likewise.
8793 (number_of_iterations_lt_to_ne): Likewise.
8794 (assert_loop_rolls_lt): Likewise.
8795 (number_of_iterations_lt): Likewise.
8796 (number_of_iterations_le): Likewise.
8797 (number_of_iterations_cond): Likewise.
8798 (number_of_iterations_exit): Likewise.
8799 (finite_loop_p): Likewise.
8800 (derive_constant_upper_bound_assign): Likewise.
8801 (derive_constant_upper_bound): Return a widest_int.
8802 (derive_constant_upper_bound_ops): Likewise.
8803 (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
8804 (record_estimate): Take a widest_int rather than a double_int.
8805 (record_nonwrapping_iv): Use wide-int interfaces.
8806 (double_int_cmp): Delete.
8807 (wide_int_cmp): New.
8808 (bound_index): Take a widest_int rather than a double_int.
8809 (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
8810 (maybe_lower_iteration_bound): Likewise.
8811 (estimate_numbers_of_iterations_loop): Likewise.
8812 (estimated_loop_iterations): Take a widest_int pointer than than
8813 a double_int pointer.
8814 (estimated_loop_iterations_int): Use wide-int interfaces.
8815 (max_loop_iterations): Take a widest_int pointer than than
8816 a double_int pointer.
8817 (max_loop_iterations_int): Use wide-int interfaces.
8818 (max_stmt_executions): Take a widest_int pointer than than
8819 a double_int pointer.
8820 (estimated_stmt_executions): Likewise.
8821 (n_of_executions_at_most): Use wide-int interfaces.
8822 (scev_probably_wraps_p): Likewise.
8823 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
8825 * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
8827 * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
8828 double_ints. Adjust for trailing_wide_ints <3> representation.
8829 (set_nonzero_bits): Likewise.
8830 (get_range_info): Return wide_ints rather than double_ints.
8831 Adjust for trailing_wide_ints <3> representation.
8832 (get_nonzero_bits): Likewise.
8833 (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
8835 * tree-ssanames.h (struct range_info_def): Replace min, max and
8836 nonzero_bits with a trailing_wide_ints <3>.
8837 (set_range_info): Use wide_int_refs rather than double_ints.
8838 (set_nonzero_bits): Likewise.
8839 (get_range_info): Return wide_ints rather than double_ints.
8840 (get_nonzero_bits): Likewise.
8841 * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
8842 * tree-ssa-pre.c (phi_translate_1): Likewise.
8843 * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
8844 (acceptable_pow_call): Likewise.
8845 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
8847 (vn_reference_fold_indirect): Likewise.
8848 (vn_reference_maybe_forwprop_address): Likewise.
8849 (valueize_refs_1): Likewise.
8850 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
8851 * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
8852 tree_int_cst_lt and tree_int_cst_le.
8853 * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
8855 (streamer_alloc_tree): Likewise.
8856 * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
8857 (streamer_write_tree_header): Likewise.
8858 (streamer_write_integer_cst): Likewise.
8859 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
8860 (build_constructors): Likewise.
8861 (array_value_type): Likewise.
8862 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
8863 (vect_check_gather): Likewise.
8864 * tree-vect-generic.c (build_replicated_const): Likewise.
8865 (expand_vector_divmod): Likewise.
8866 * tree-vect-loop.c (vect_transform_loop): Likewise.
8867 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
8868 (vect_do_peeling_for_alignment): Likewise.
8869 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
8870 * tree-vrp.c: Include wide-int.h.
8871 (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
8872 (extract_range_from_assert): Use wide-int interfaces.
8873 (vrp_int_const_binop): Likewise.
8874 (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
8875 double_int pointers.
8876 (ranges_from_anti_range): Use wide-int interfaces.
8877 (quad_int_cmp): Delete.
8878 (quad_int_pair_sort): Likewise.
8879 (extract_range_from_binary_expr_1): Use wide-int interfaces.
8880 (extract_range_from_unary_expr_1): Likewise.
8881 (adjust_range_with_scev): Likewise.
8882 (masked_increment): Take and return wide_ints rather than double_ints.
8883 (register_edge_assert_for_2): Use wide-int interfaces.
8884 (check_array_ref): Likewise.
8885 (search_for_addr_array): Likewise.
8886 (maybe_set_nonzero_bits): Likewise.
8887 (union_ranges): Pass an integer of the correct type instead of
8888 using integer_one_node.
8889 (intersect_ranges): Likewise.
8890 (simplify_truth_ops_using_ranges): Likewise.
8891 (simplify_bit_ops_using_ranges): Use wide-int interfaces.
8892 (range_fits_type_p): Likewise.
8893 (simplify_cond_using_ranges): Likewise. Take a signop rather than
8895 (simplify_conversion_using_ranges): Use wide-int interfaces.
8896 (simplify_float_conversion_using_ranges): Likewise.
8897 (vrp_finalize): Likewise.
8898 * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
8899 (gimple_stringops_transform): Likewise.
8900 * varasm.c (decode_addr_const): Likewise.
8901 (const_hash_1): Likewise.
8902 (const_rtx_hash_1): Likewise
8903 (output_constant): Likewise.
8904 (array_size_for_constructor): Likewise.
8905 (output_constructor_regular_field): Likewise.
8906 (output_constructor_bitfield): Likewise.
8907 * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
8908 * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
8910 * gencheck.c: Define BITS_PER_UNIT.
8913 * wide-int-print.cc: New.
8914 * wide-int-print.h: New.
8916 2014-05-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8918 * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
8920 2014-05-06 Richard Biener <rguenther@suse.de>
8922 * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
8923 TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
8924 (TODO_verify_all): Adjust.
8925 * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
8926 TODO_verify_stmts and TODO_verify_rtl_sharing.
8927 * bb-reorder.c: Likewise.
8928 * cfgexpand.c: Likewise.
8929 * cprop.c: Likewise.
8931 * function.c: Likewise.
8932 * fwprop.c: Likewise.
8934 * gimple-ssa-isolate-paths.c: Likewise.
8935 * gimple-ssa-strength-reduction.c: Likewise.
8936 * ipa-split.c: Likewise.
8937 * loop-init.c: Likewise.
8938 * loop-unroll.c: Likewise.
8939 * lower-subreg.c: Likewise.
8940 * modulo-sched.c: Likewise.
8941 * postreload-gcse.c: Likewise.
8942 * predict.c: Likewise.
8943 * recog.c: Likewise.
8944 * sched-rgn.c: Likewise.
8945 * store-motion.c: Likewise.
8946 * tracer.c: Likewise.
8947 * trans-mem.c: Likewise.
8948 * tree-call-cdce.c: Likewise.
8949 * tree-cfg.c: Likewise.
8950 * tree-cfgcleanup.c: Likewise.
8951 * tree-complex.c: Likewise.
8952 * tree-eh.c: Likewise.
8953 * tree-emutls.c: Likewise.
8954 * tree-if-conv.c: Likewise.
8955 * tree-into-ssa.c: Likewise.
8956 * tree-loop-distribution.c: Likewise.
8957 * tree-object-size.c: Likewise.
8958 * tree-parloops.c: Likewise.
8959 * tree-pass.h: Likewise.
8960 * tree-sra.c: Likewise.
8961 * tree-ssa-ccp.c: Likewise.
8962 * tree-ssa-copy.c: Likewise.
8963 * tree-ssa-copyrename.c: Likewise.
8964 * tree-ssa-dce.c: Likewise.
8965 * tree-ssa-dom.c: Likewise.
8966 * tree-ssa-dse.c: Likewise.
8967 * tree-ssa-forwprop.c: Likewise.
8968 * tree-ssa-ifcombine.c: Likewise.
8969 * tree-ssa-loop-ch.c: Likewise.
8970 * tree-ssa-loop-ivcanon.c: Likewise.
8971 * tree-ssa-loop.c: Likewise.
8972 * tree-ssa-math-opts.c: Likewise.
8973 * tree-ssa-phiopt.c: Likewise.
8974 * tree-ssa-phiprop.c: Likewise.
8975 * tree-ssa-pre.c: Likewise.
8976 * tree-ssa-reassoc.c: Likewise.
8977 * tree-ssa-sink.c: Likewise.
8978 * tree-ssa-strlen.c: Likewise.
8979 * tree-ssa-tail-merge.c: Likewise.
8980 * tree-ssa-uncprop.c: Likewise.
8981 * tree-switch-conversion.c: Likewise.
8982 * tree-tailcall.c: Likewise.
8983 * tree-vect-generic.c: Likewise.
8984 * tree-vectorizer.c: Likewise.
8985 * tree-vrp.c: Likewise.
8987 * var-tracking.c: Likewise.
8988 * bt-load.c: Likewise.
8989 * cfgcleanup.c: Likewise.
8990 * combine-stack-adj.c: Likewise.
8991 * combine.c: Likewise.
8992 * compare-elim.c: Likewise.
8993 * config/epiphany/resolve-sw-modes.c: Likewise.
8994 * config/i386/i386.c: Likewise.
8995 * config/mips/mips.c: Likewise.
8996 * config/s390/s390.c: Likewise.
8997 * config/sh/sh_treg_combine.cc: Likewise.
8998 * config/sparc/sparc.c: Likewise.
9001 * final.c: Likewise.
9002 * ifcvt.c: Likewise.
9003 * mode-switching.c: Likewise.
9004 * passes.c: Likewise.
9005 * postreload.c: Likewise.
9007 * reg-stack.c: Likewise.
9008 * regcprop.c: Likewise.
9009 * regrename.c: Likewise.
9012 2014-05-06 Richard Biener <rguenther@suse.de>
9015 * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
9016 * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
9018 2014-05-05 Jan Hubicka <hubicka@ucw.cz>
9021 * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
9023 2014-05-05 Radovan Obradovic <robradovic@mips.com>
9024 Tom de Vries <tom@codesourcery.com>
9026 * target.def (call_fusage_contains_non_callee_clobbers): New
9028 * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
9030 (@node Miscellaneous Register Hooks): New node.
9031 (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
9032 * doc/tm.texi: Regenerate.
9034 2014-05-05 Marek Polacek <polacek@redhat.com>
9037 * opts.c (common_handle_option): Call error_at instead of warning_at.
9039 2014-05-05 Richard Biener <rguenther@suse.de>
9041 * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
9042 from last_verified if update_ssa ran. Move TODO_verify_rtl_sharing
9043 under the TODO_verify_il umbrella.
9045 2014-05-05 Richard Biener <rguenther@suse.de>
9047 * passes.c (execute_function_todo): Move TODO_verify_flow under
9048 the TODO_verify_ul umbrella.
9050 2014-05-05 Richard Biener <rguenther@suse.de>
9053 * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
9054 X & CST away from a CST that is the mask of a mode.
9056 2014-05-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9058 * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
9059 int argument to enum machine_mode.
9060 (picochip_class_max_nregs): Ditto.
9061 * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
9062 (picochip_class_max_nregs): Ditto.
9064 2014-05-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9066 * target.def: Add new target hook.
9067 * doc/tm.texi: Regenerate.
9068 * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
9069 * targhooks.c (default_keep_leaf_when_profiled): New function.
9071 * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
9072 (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
9074 2014-05-05 Bin Cheng <bin.cheng@arm.com>
9076 PR tree-optimization/60363
9077 * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
9078 (copy_phi_args): New parameters. Call get_value_locus_in_path.
9079 (update_destination_phis): New parameter.
9080 (create_edge_and_update_destination_phis): Ditto.
9081 (ssa_fix_duplicate_block_edges): Pass new arguments.
9082 (thread_single_edge): Ditto.
9084 2014-05-04 Peter Bergner <bergner@vnet.ibm.com>
9086 * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
9087 (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
9088 (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
9089 * config/rs6000/rs6000-builtin.def (BU_MISC_1):
9090 Use RS6000_BTM_HARD_FLOAT.
9091 (BU_MISC_2): Likewise.
9092 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
9093 RS6000_BTM_HARD_FLOAT.
9094 (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
9096 (rs6000_invalid_builtin): Add hard floating builtin support.
9097 (rs6000_expand_builtin): Relax the gcc_assert to allow the new
9098 hard float builtins.
9099 (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
9101 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9103 * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
9104 Add missing function* argument.
9106 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
9108 * lra-constraints.c (valid_address_p): Move earlier in file.
9109 Add a constraint argument to the address_info version.
9110 (satisfies_memory_constraint_p): New function.
9111 (satisfies_address_constraint_p): Likewise.
9112 (process_alt_operands, curr_insn_transform): Use them.
9113 (process_address): Pass the constraint to valid_address_p when
9114 checking address operands.
9116 2014-05-03 Richard Sandiford <rdsandiford@googlemail.com>
9118 * config/mips/mips.c (mips_isa_rev): New variable.
9119 (mips_set_architecture): Set it.
9120 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
9122 (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
9123 (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
9124 (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
9125 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
9126 (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
9127 conditions in terms of mips_isa_rev.
9128 (mips_isa_rev): Declare.
9130 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9132 * config/sh/sh-mem.cc: Use tabs instead of spaces.
9133 (prob_unlikely, prob_likely): Make variables const.
9135 2014-05-03 Denis Chertykov <chertykov@gmail.com>
9137 * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
9139 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9141 * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
9143 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9145 * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
9146 (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
9147 * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
9149 (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
9150 sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
9152 Replace usage of ROUND_REG with sh_round_reg.
9153 Use CEIL instead of ROUND_ADVANCE.
9155 2014-05-03 Oleg Endo <olegendo@gcc.gnu.org>
9158 * config/sh/sh.c: Include stdlib headers before everything else.
9160 2014-05-02 Jakub Jelinek <jakub@redhat.com>
9162 * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
9163 GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
9164 (gimplify_adjust_omp_clauses): Simd region is never
9165 directly nested in combined parallel. Instead, for linear
9166 with copyin/copyout, if in combined for simd loop, make decl
9167 firstprivate/lastprivate on OMP_FOR.
9168 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
9169 expand_omp_for_static_chunk): When setting endvar, also set
9170 fd->loop.v to the same value.
9172 2014-05-02 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
9174 * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
9176 2014-05-02 Alan Lawrence <alan.lawrence@arm.com>
9178 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
9181 2014-05-02 Marek Polacek <polacek@redhat.com>
9183 * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
9185 2014-05-02 Kito Cheng <kito@0xlab.org>
9187 * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
9188 to a C expression marco.
9189 * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
9190 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
9191 * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
9192 * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
9193 HONOR_REG_ALLOC_ORDER.
9194 * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
9196 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9198 * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
9200 2014-05-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9202 * config/arc/arc.c (arc_select_cc_mode): Fix typo.
9204 2014-05-01 Yuri Rumyantsev <ysrumyan@gmail.com>
9206 * tree-if-conv.c (is_cond_scalar_reduction): New function.
9207 (convert_scalar_cond_reduction): Likewise.
9208 (predicate_scalar_phi): Add recognition and transformation
9209 of simple conditioanl reduction to be vectorizable.
9211 2014-05-01 Marek Polacek <polacek@redhat.com>
9214 * doc/invoke.texi: Document -Wdiscarded-qualifiers.
9216 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
9218 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
9219 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
9220 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
9221 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
9222 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
9223 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
9224 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
9225 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
9227 2014-04-30 Joern Rennecke <joern.rennecke@embecosm.com>
9229 * config/arc/arc.opt (mlra): Move comment above option name
9230 to avoid mis-parsing as language options.
9232 2014-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9234 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
9235 * config/sol2.h: ... here.
9236 * config/sol2-10.h: Remove.
9238 * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
9239 (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
9240 (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
9241 (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
9242 (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
9243 * config/sol2.h: ... here.
9244 (SECTION_NAME_FORMAT): Don't redefine.
9245 (STARTFILE_ARCH32_SPEC): Rename to ...
9246 (STARTFILE_ARCH_SPEC): ... this.
9247 (ASM_OUTPUT_ALIGNED_COMMON): Move ...
9248 * config/sparc/sol2.h: ... here.
9249 (SECTION_NAME_FORMAT): Don't undef.
9250 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
9251 (SUBTARGET_EXTRA_SPECS): Remove.
9252 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
9254 * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
9255 (MD_STARTFILE_PREFIX): Remove.
9256 (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
9257 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
9258 (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
9259 (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
9260 (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
9261 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
9262 * config/i386/sol2.h: ... here.
9263 (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
9264 * config/i386/sol2-bi.h: Remove.
9265 * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
9266 (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
9268 * config/i386/t-sol2-64: Rename to ...
9269 * config/i386/t-sol2: ... this.
9270 * config/sparc/t-sol2-64: Rename to ...
9271 * config/sparc/t-sol2: ... this.
9273 * config.gcc (*-*-solaris2*): Split sol2_tm_file into
9274 sol2_tm_file_head, sol2_tm_file_tail.
9275 Include ${cpu_type}/sol2.h before sol2.h.
9277 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
9278 i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
9279 Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
9280 Reflect i386/t-sol2-64 renaming.
9281 (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
9282 Reflect sparc/t-sol2-64 renaming.
9284 2014-04-30 Richard Biener <rguenther@suse.de>
9286 * passes.c (execute_function_todo): Move TODO_verify_stmts
9287 and TODO_verify_ssa under the TODO_verify_il umbrella.
9288 * tree-ssa.h (verify_ssa): Adjust prototype.
9289 * tree-ssa.c (verify_ssa): Add parameter to tell whether
9290 we should verify SSA operands.
9291 * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
9292 * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
9293 whether we should verify whether not throwing stmts have EH info.
9294 * graphite-scop-detection.c (create_sese_edges): Adjust.
9295 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
9296 * tree-eh.c (lower_try_finally_switch): Do not add the
9297 default case label twice.
9299 2014-04-30 Marek Polacek <polacek@redhat.com>
9301 * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
9302 * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
9303 * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
9304 * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
9306 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
9308 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
9309 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
9310 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
9311 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
9312 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
9313 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
9314 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
9315 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
9317 2014-04-29 David Malcolm <dmalcolm@redhat.com>
9319 * tree-cfg.c (dump_function_to_file): Dump the return type of
9320 functions, in a line to itself before the function body, mimicking
9321 the layout of a C function.
9323 2014-04-29 Jakub Jelinek <jakub@redhat.com>
9325 PR tree-optimization/60971
9326 * tree-tailcall.c (process_assignment): Reject conversions which
9329 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
9331 * calls.c (initialize_argument_information): Always treat
9332 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
9333 (expand_call): Likewise.
9334 (emit_library_call_calue_1): Likewise.
9335 * expr.c (PUSH_ARGS_REVERSED): Do not define.
9336 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
9339 2014-04-29 Nick Clifton <nickc@redhat.com>
9341 * config/msp430/msp430.md (umulsidi): Fix typo.
9342 (mulhisi3): Enable even inside interrupt handlers.
9343 * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
9344 bigger return address pushed in large mode.
9346 2014-04-29 Nick Clifton <nickc@redhat.com>
9348 * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
9349 (arc_init_reg_tables): Use a machine_mode enum to iterate over
9351 * config/m32r/m32r.c (init_reg_tables): Likewise.
9352 * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
9353 enum to hold the modes.
9355 2014-04-29 Richard Biener <rguenther@suse.de>
9357 * dominance.c (free_dominance_info): Add overload with
9359 (dom_info_state): Likewise.
9360 (dom_info_available_p): Likewise.
9361 * basic-block.h (free_dominance_info, dom_info_state,
9362 dom_info_available_p): Declare overloads.
9363 * passes.c (execute_function_todo): Verify that verifiers
9364 don't change dominator info state. Drop dominator info
9365 for IPA pass invocations.
9366 * cgraph.c (release_function_body): Restore asserts that
9367 dominator information is released.
9369 2014-04-29 Patrick Palka <patrick@parcs.ath.cx>
9371 * doc/invoke.texi: Fix typo.
9372 * tree-vrp.c: Fix typos.
9373 * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
9375 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
9377 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
9379 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
9381 * config/aarch64/aarch64-builtins.c
9382 (aarch64_types_storestruct_lane_qualifiers): New.
9383 (TYPES_STORESTRUCT_LANE): Likewise.
9384 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
9385 (st3_lane): Likewise.
9386 (st4_lane): Likewise.
9387 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
9388 (vec_store_lanesci_lane<mode>): Likewise.
9389 (vec_store_lanesxi_lane<mode>): Likewise.
9390 (aarch64_st2_lane<VQ:mode>): Likewise.
9391 (aarch64_st3_lane<VQ:mode>): Likewise.
9392 (aarch64_st4_lane<VQ:mode>): Likewise.
9393 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
9394 * config/aarch64/arm_neon.h
9395 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
9396 use new macro arguments.
9397 (__ST3_LANE_FUNC): Likewise.
9398 (__ST4_LANE_FUNC): Likewise.
9399 * config/aarch64/iterators.md (V_TWO_ELEM): New.
9400 (V_THREE_ELEM): Likewise.
9401 (V_FOUR_ELEM): Likewise.
9403 2014-04-28 David Malcolm <dmalcolm@redhat.com>
9405 * doc/gimple.texi: Replace the description of the now-defunct
9406 union gimple_statement_d with a diagram showing the
9407 gimple_statement_base class hierarchy and its relationships to
9408 the GSS_ and GIMPLE_ enums.
9410 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
9412 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
9413 * config/aarch64/aarch64.c
9414 (aarch64_cannot_change_mode_class): Weaken conditions.
9415 (aarch64_modes_tieable_p): New.
9416 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
9418 2014-04-28 Pat Haugen <pthaugen@us.ibm.com>
9420 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
9421 (loadsync_<mode>): Change mode.
9422 (load_quadpti, store_quadpti): New.
9423 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
9424 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
9426 2014-04-28 Martin Jambor <mjambor@suse.cz>
9428 * tree-sra.c (sra_modify_expr): Generate new memory accesses with
9429 same alias type as the original statement.
9430 (subreplacement_assignment_data): New type.
9431 (handle_unscalarized_data_in_subtree): New type of parameter,
9432 generate new memory accesses with same alias type as the original
9434 (load_assign_lhs_subreplacements): Likewise.
9435 (sra_modify_constructor_assign): Generate new memory accesses with
9436 same alias type as the original statement.
9438 2014-04-28 Richard Biener <rguenther@suse.de>
9440 * tree-pass.h (TODO_verify_il): Define.
9441 (TODO_verify_all): Complete properly.
9442 * passes.c (execute_function_todo): Move existing loop-closed
9443 SSA verification under TODO_verify_il.
9444 (execute_one_pass): Trigger TODO_verify_il at todo-after time.
9445 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
9446 Fix tree sharing issue.
9448 2014-04-28 Richard Biener <rguenther@suse.de>
9451 * builtins.def (DEF_C11_BUILTIN): Add.
9452 (BUILT_IN_ALIGNED_ALLOC): Likewise.
9453 * coretypes.h (enum function_class): Add function_c11_misc.
9454 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9455 BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
9456 (call_may_clobber_ref_p_1): Likewise.
9457 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9458 (mark_all_reaching_defs_necessary_1): Likewise.
9459 (propagate_necessity): Likewise.
9460 (eliminate_unnecessary_stmts): Likewise.
9461 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
9463 2014-04-28 Richard Biener <rguenther@suse.de>
9465 * tree-vrp.c (vrp_var_may_overflow): Remove.
9466 (vrp_visit_phi_node): Rather than bumping to +-INF possibly
9467 with overflow immediately bump to one before that value and
9468 let iteration figure out overflow status.
9470 2014-04-28 Richard Biener <rguenther@suse.de>
9472 * configure.ac: Do valgrind header checks unconditionally.
9473 Add --enable-valgrind-annotations.
9474 * system.h: Guard valgrind header inclusion with
9475 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
9476 * alloc-pool.c (pool_alloc, pool_free): Use
9477 ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
9478 to guard possibly dead code.
9479 * config.in: Regenerated.
9480 * configure: Likewise.
9482 2014-04-28 Jeff Law <law@redhat.com>
9484 PR tree-optimization/60902
9485 * tree-ssa-threadedge.c
9486 (record_temporary_equivalences_from_stmts_at_dest): Only iterate
9487 over real defs when invalidating outputs from statements that do not
9488 produce useful outputs for threading.
9490 2014-04-28 Richard Biener <rguenther@suse.de>
9492 PR tree-optimization/60979
9493 * graphite-scop-detection.c (scopdet_basic_block_info): Reject
9494 SCOPs that end in a block with a successor with abnormal
9497 2014-04-28 Richard Biener <rguenther@suse.de>
9499 * tree-pass.h (execute_pass_list): Adjust prototype.
9500 * passes.c (pass_manager::execute_early_local_passes): Adjust.
9501 (do_per_function): Change callback signature, push all actual
9502 work to the callbals.
9503 (do_per_function_toporder): Likewise.
9504 (execute_function_dump): Adjust.
9505 (execute_function_todo): Likewise.
9506 (clear_last_verified): Likewise.
9507 (verify_curr_properties): Likewise.
9508 (update_properties_after_pass): Likewise.
9509 (execute_pass_list_1): Split out from ...
9510 (execute_pass_list): ... here. Adjust.
9511 (execute_ipa_pass_list): Likewise.
9512 * cgraphunit.c (cgraph_add_new_function): Adjust.
9513 (analyze_function): Likewise.
9514 (expand_function): Likewise.
9515 * cgraph.c (release_function_body): Free dominance info
9516 here instead of asserting it was magically freed elsewhere.
9518 2014-04-28 Eric Botcazou <ebotcazou@adacore.com>
9520 * configure.ac: Tweak GAS check for LEON instructions on SPARC.
9521 * configure: Regenerate.
9522 * config/sparc/sparc.opt (muser-mode): New option.
9523 * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
9525 (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
9526 * doc/invoke.texi (SPARC options): Document -muser-mode.
9528 2014-04-27 Richard Sandiford <rdsandiford@googlemail.com>
9530 * cselib.c (find_slot_memmode): Delete.
9531 (cselib_hasher): Change compare_type to a struct.
9532 (cselib_hasher::equal): Update accordingly. Don't expect wrapped
9534 (preserve_constants_and_equivs): Adjust for new compare_type.
9535 (cselib_find_slot): Likewise. Take the mode of the rtx as argument.
9536 (wrap_constant): Delete.
9537 (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
9539 2014-04-26 Markus Trippelsdorf <markus@trippelsdorf.de>
9541 * doc/install.texi (Building with profile feedback): Remove
9544 2014-04-26 Tom de Vries <tom@codesourcery.com>
9546 * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
9549 2014-04-25 Cary Coutant <ccoutant@google.com>
9552 * dwarf2out.c (should_move_die_to_comdat): A type definition
9553 can contain a subprogram definition, but don't move it to a
9555 (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
9556 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
9558 (clone_tree_hash): Rename to...
9559 (clone_tree_partial): ...this; change callers. Copy
9560 DW_TAG_subprogram DIEs as declarations.
9561 (copy_decls_walk): Don't copy children of a declaration into a
9564 2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
9567 * config/i386/i386.md (*movsf_internal): Set MODE to SI for
9570 2014-04-25 Jiong Wang <jiong.wang@arm.com>
9572 * config/arm/predicates.md (call_insn_operand): Add long_call check.
9573 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
9575 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
9578 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9580 * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
9582 2014-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9584 PR tree-optimization/60930
9585 * gimple-ssa-strength-reduction.c (create_mul_imm_cand): Reject
9586 creating a multiply candidate by folding two constant
9587 multiplicands when the result overflows.
9589 2014-04-25 Jakub Jelinek <jakub@redhat.com>
9591 PR tree-optimization/60960
9592 * tree-vect-generic.c (expand_vector_operation): Only call
9593 expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
9595 2014-04-25 Tom de Vries <tom@codesourcery.com>
9597 * expr.c (clobber_reg_mode): New function.
9598 * expr.h (clobber_reg): New function.
9600 2014-04-25 Tom de Vries <tom@codesourcery.com>
9602 * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
9605 2014-04-25 Radovan Obradovic <robradovic@mips.com>
9606 Tom de Vries <tom@codesourcery.com>
9608 * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
9610 * rtl.h (find_all_hard_reg_sets): Add bool parameter.
9611 * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
9612 new argument to find_all_hard_reg_sets call.
9614 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9616 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
9617 Use HOST_WIDE_INT_C for mask literal.
9618 (aarch_rev16_shleft_mask_imm_p): Likewise.
9620 2014-04-25 Eric Botcazou <ebotcazou@adacore.com>
9623 * config/sparc/sparc.md (ashlsi3_extend): Delete.
9625 2014-04-25 Marc Glisse <marc.glisse@inria.fr>
9627 PR preprocessor/56540
9628 * config/i386/i386-c.c (ix86_target_macros): Define
9629 __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
9631 2014-04-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9633 * configure.ac (tga_func): Remove.
9634 (LIB_TLS_SPEC): Remove.
9635 * configure: Regenerate.
9636 * config.in: Regenerate.
9637 * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
9639 2014-04-25 Richard Biener <rguenther@suse.de>
9642 * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
9643 call stmt use/clobber sets during stmt walk instead of
9644 walking the possibly incomplete set of caller edges.
9646 2014-04-25 Richard Biener <rguenther@suse.de>
9649 * passes.c (apply_ipa_transforms): Inline into only caller ...
9650 (execute_one_pass): ... here. Properly bring in function
9651 bodies for nodes we want to apply IPA transforms to.
9653 2014-04-24 Cong Hou <congh@google.com>
9655 PR tree-optimization/60896
9656 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
9657 all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
9658 (vect_mark_pattern_stmts): Set the def type of all statements in
9659 PATTERN_DEF_SEQ as vect_internal_def.
9661 2014-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9663 * doc/extend.texi (PowerPC Built-in Functions): Document new
9664 powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
9665 (PowerPC AltiVec/VSX Built-in Functions): Likewise.
9667 * config/rs6000/predicates.md (const_0_to_3_operand): New
9668 predicate to match 0..3 integer constants.
9670 * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
9671 to support adding miscellaneous builtin functions.
9672 (BU_DFP_MISC_2): Likewise.
9673 (BU_P7_MISC_1): Likewise.
9674 (BU_P7_MISC_2): Likewise.
9675 (BU_P8V_MISC_3): Likewise.
9676 (BU_MISC_1): Likewise.
9677 (BU_MISC_2): Likewise.
9678 (DIVWE): Add extended divide builtin functions.
9681 (DIVWEUO): Likewise.
9685 (DIVDEUO): Likewise.
9686 (DXEX): Add decimal floating-point builtin functions.
9689 (DDEDPDQ): Likewise.
9691 (DENBCDQ): Likewise.
9698 (CDTBCD): Add new BCD builtin functions.
9702 (BCDADD_LT): Likewise.
9703 (BCDADD_EQ): Likewise.
9704 (BCDADD_GT): Likewise.
9705 (BCDADD_OV): Likewise.
9707 (BCDSUB_LT): Likewise.
9708 (BCDSUB_EQ): Likewise.
9709 (BCDSUB_GT): Likewise.
9710 (BCDSUB_OV): Likewise.
9711 (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
9712 (UNPACK_TD): Likewise.
9713 (PACK_TF): Likewise.
9714 (UNPACK_TF): Likewise.
9715 (UNPACK_TF_0): Likewise.
9716 (UNPACK_TF_1): Likewise.
9717 (PACK_V1TI): Likewise.
9718 (UNPACK_V1TI): Likewise.
9720 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
9721 support for decimal floating point builtin functions.
9722 (rs6000_expand_ternop_builtin): Add checks for the new builtin
9723 functions that take constant arguments.
9724 (rs6000_invalid_builtin): Add decimal floating point builtin support.
9725 (rs6000_init_builtins): Setup long double, _Decimal64, and
9726 _Decimal128 types for new builtin functions.
9727 (builtin_function_type): Set the unsigned flags appropriately for
9728 the new builtin functions.
9729 (rs6000_opt_masks): Add support for decimal floating point builtin
9732 * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
9733 floating point builtin functions.
9734 (RS6000_BTM_COMMON): Likewise.
9735 (RS6000_BTI_long_double): Likewise.
9736 (RS6000_BTI_dfloat64): Likewise.
9737 (RS6000_BTI_dfloat128): Likewise.
9738 (long_double_type_internal_node): Likewise.
9739 (dfloat64_type_internal_node): Likewise.
9740 (dfloat128_type_internal_node): Likewise.
9742 * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
9743 2.07 bcd arithmetic instructions.
9744 (UNSPEC_BCDSUB): Likewise.
9745 (UNSPEC_BCD_OVERFLOW): Likewise.
9746 (UNSPEC_BCD_ADD_SUB): Likewise.
9747 (bcd_add_sub): Likewise.
9748 (BCD_TEST): Likewise.
9749 (bcd<bcd_add_sub>): Likewise.
9750 (bcd<bcd_add_sub>_test): Likewise.
9751 (bcd<bcd_add_sub>_test2): Likewise.
9752 (bcd<bcd_add_sub>_<code>): Likewise.
9753 (peephole2 for combined bcd ops): Likewise.
9755 * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
9756 decimal floating point builtin functions.
9757 (UNSPEC_DENBCD): Likewise.
9758 (UNSPEC_DXEX): Likewise.
9759 (UNSPEC_DIEX): Likewise.
9760 (UNSPEC_DSCLI): Likewise.
9761 (UNSPEC_DSCRI): Likewise.
9762 (D64_D128): Likewise.
9763 (dfp_suffix): Likewise.
9764 (dfp_ddedpd_<mode>): Likewise.
9765 (dfp_denbcd_<mode>): Likewise.
9766 (dfp_dxex_<mode>): Likewise.
9767 (dfp_diex_<mode>): Likewise.
9768 (dfp_dscli_<mode>): Likewise.
9769 (dfp_dscri_<mode>): Likewise.
9771 * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
9773 (UNSPEC_CDTBCD): Likewise.
9774 (UNSPEC_CBCDTD): Likewise.
9775 (UNSPEC_DIVE): Add support for new extended divide builtin functions.
9776 (UNSPEC_DIVEO): Likewise.
9777 (UNSPEC_DIVEU): Likewise.
9778 (UNSPEC_DIVEUO): Likewise.
9779 (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
9780 pack/unpack 128-bit types.
9781 (UNSPEC_PACK_128BIT): Likewise.
9782 (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
9783 (udiv<mode>3): Use idiv_ldiv mode attribute.
9784 (div<mode>3): Likewise.
9785 (addg6s): Add new BCD builtin functions.
9788 (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
9789 (div_extend): Likewise.
9790 (div<div_extend>_<mode>"): Likewise.
9791 (FP128_64): Add support for new builtin functions to pack/unpack
9793 (unpack<mode>): Likewise.
9794 (unpacktf_0): Likewise.
9795 (unpacktf_1): Likewise.
9796 (unpack<mode>_dm): Likewise.
9797 (unpack<mode>_nodm): Likewise.
9798 (pack<mode>): Likewise.
9799 (unpackv1ti): Likewise.
9800 (packv1ti): Likewise.
9802 2014-04-24 Vishnu K S <Vishnu.k_s@atmel.com>
9804 * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
9807 2014-04-24 Jakub Jelinek <jakub@redhat.com>
9809 * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
9810 * gimplify.c (omp_is_private): Change last argument's type to int.
9811 Only diagnose lastprivate if the simd argument is 1, only diagnose
9812 linear if the simd argument is 2.
9813 (gimplify_omp_for): Adjust omp_is_private callers. When adding
9814 lastprivate or private, add the clause to OMP_FOR_CLAUSES. Pass
9815 GOVD_EXPLICIT to omp_add_variable. For simd with collapse == 1
9816 create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
9817 If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
9818 increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
9819 * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
9820 OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
9821 * tree-nested.c (convert_nonlocal_omp_clauses,
9822 convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
9824 2014-04-24 Segher Boessenkool <segher@kernel.crashing.org>
9827 * config/m68k/m68k.md (extendplussidi): Don't allow memory for
9830 2014-04-24 Dimitris Papavasiliou <dpapavas@gmail.com>
9832 * flag-types.h (enum ivar_visibility): Add.
9834 2014-04-24 Trevor Saunders <tsaunders@mozilla.com>
9836 * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
9837 function * argument.
9839 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
9841 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
9843 2014-04-24 Radovan Obradovic <robradovic@mips.com>
9844 Tom de Vries <tom@codesourcery.com>
9846 * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
9847 * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
9849 * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
9850 * emit-rtl.c (try_split): Same.
9852 2014-04-24 Radovan Obradovic <robradovic@mips.com>
9853 Tom de Vries <tom@codesourcery.com>
9855 * common.opt (fuse-caller-save): New option.
9857 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
9859 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
9860 elements for big-endian.
9862 2014-04-24 Richard Biener <rguenther@suse.de>
9864 * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
9865 during TER and instead use the sepops interface for expanding
9866 non-GIMPLE_SINGLE_RHS.
9868 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9870 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
9871 if not HAVE_AS_IX86_DIFF_SECT_DELTA.
9873 2014-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9875 * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
9876 assembler 64-bit option.
9877 * configure: Regenerate.
9879 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9881 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
9882 TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
9883 (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
9884 (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
9885 (TARGET_CRYPTO): Take TARGET_SIMD into account.
9887 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9889 * config/aarch64/aarch64-builtins.c
9890 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
9891 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
9892 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
9893 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
9895 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
9896 (Vrevsuff): New mode attribute.
9898 2014-04-24 Terry Guo <terry.guo@arm.com>
9900 * config/arm/arm.h (machine_function): Define variable
9901 after_arm_reorg here.
9902 * config/arm/arm.c (after_arm_reorg): Remove the definition.
9903 (arm_split_constant): Update the way to access variable
9906 (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
9908 2014-04-23 Tom de Vries <tom@codesourcery.com>
9910 * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
9912 2014-04-23 David Malcolm <dmalcolm@redhat.com>
9914 * is-a.h: Update comments to reflect the following changes to the
9915 "pointerness" of the API, making the template parameter match the
9916 return type, allowing use of is-a.h with typedefs of pointers.
9917 (is_a_helper::cast): Return a T rather then a pointer to a T, so
9918 that the return type matches the parameter to the is_a_helper.
9920 (dyn_cast): Likewise.
9922 * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
9923 pointer from the is-a.h API.
9925 * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
9926 (is_a_helper <cgraph_node *>::test): ...this, matching change to
9928 (is_a_helper <varpool_node>::test): Likewise, convert to...
9929 (is_a_helper <varpool_node *>::test): ...this.
9931 (varpool_first_variable): Update for removal of implicit pointer
9932 from the is-a.h API.
9933 (varpool_next_variable): Likewise.
9934 (varpool_first_static_initializer): Likewise.
9935 (varpool_next_static_initializer): Likewise.
9936 (varpool_first_defined_variable): Likewise.
9937 (varpool_next_defined_variable): Likewise.
9938 (cgraph_first_defined_function): Likewise.
9939 (cgraph_next_defined_function): Likewise.
9940 (cgraph_first_function): Likewise.
9941 (cgraph_next_function): Likewise.
9942 (cgraph_first_function_with_gimple_body): Likewise.
9943 (cgraph_next_function_with_gimple_body): Likewise.
9944 (cgraph_alias_target): Likewise.
9945 (varpool_alias_target): Likewise.
9946 (cgraph_function_or_thunk_node): Likewise.
9947 (varpool_variable_node): Likewise.
9948 (symtab_real_symbol_p): Likewise.
9949 * cgraphunit.c (referred_to_p): Likewise.
9950 (analyze_functions): Likewise.
9951 (handle_alias_pairs): Likewise.
9952 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
9953 * gimple-ssa.h (gimple_vuse_op): Likewise.
9954 (gimple_vdef_op): Likewise.
9955 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
9956 * gimple.c (gimple_build_asm_1): Likewise.
9957 (gimple_build_try): Likewise.
9958 (gimple_build_resx): Likewise.
9959 (gimple_build_eh_dispatch): Likewise.
9960 (gimple_build_omp_for): Likewise.
9961 (gimple_omp_for_set_clauses): Likewise.
9963 * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
9964 (is_a_helper <gimple_statement_asm *>::test): ...this.
9965 (is_a_helper <gimple_statement_bind>::test): Convert to...
9966 (is_a_helper <gimple_statement_bind *>::test): ...this.
9967 (is_a_helper <gimple_statement_call>::test): Convert to...
9968 (is_a_helper <gimple_statement_call *>::test): ...this.
9969 (is_a_helper <gimple_statement_catch>::test): Convert to...
9970 (is_a_helper <gimple_statement_catch *>::test): ...this.
9971 (is_a_helper <gimple_statement_resx>::test): Convert to...
9972 (is_a_helper <gimple_statement_resx *>::test): ...this.
9973 (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
9974 (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
9975 (is_a_helper <gimple_statement_eh_else>::test): Convert to...
9976 (is_a_helper <gimple_statement_eh_else *>::test): ...this.
9977 (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
9978 (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
9979 (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
9980 (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
9981 (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
9982 (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
9983 (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
9984 (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
9985 (is_a_helper <gimple_statement_omp_return>::test): Convert to...
9986 (is_a_helper <gimple_statement_omp_return *>::test): ...this.
9987 (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
9988 (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
9989 (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
9990 (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
9991 (is_a_helper <gimple_statement_omp_for>::test): Convert to...
9992 (is_a_helper <gimple_statement_omp_for *>::test): ...this.
9993 (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
9994 (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
9995 (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
9996 (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
9997 (is_a_helper <gimple_statement_omp_target>::test): Convert to...
9998 (is_a_helper <gimple_statement_omp_target *>::test): ...this.
9999 (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
10000 (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
10001 (is_a_helper <gimple_statement_omp_single>::test): Convert to...
10002 (is_a_helper <gimple_statement_omp_single *>::test): ...this.
10003 (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
10004 (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
10005 (is_a_helper <gimple_statement_omp_task>::test): Convert to...
10006 (is_a_helper <gimple_statement_omp_task *>::test): ...this.
10007 (is_a_helper <gimple_statement_phi>::test): Convert to...
10008 (is_a_helper <gimple_statement_phi *>::test): ...this.
10009 (is_a_helper <gimple_statement_transaction>::test): Convert to...
10010 (is_a_helper <gimple_statement_transaction *>::test): ...this.
10011 (is_a_helper <gimple_statement_try>::test): Convert to...
10012 (is_a_helper <gimple_statement_try *>::test): ...this.
10013 (is_a_helper <gimple_statement_wce>::test): Convert to...
10014 (is_a_helper <gimple_statement_wce *>::test): ...this.
10015 (is_a_helper <const gimple_statement_asm>::test): Convert to...
10016 (is_a_helper <const gimple_statement_asm *>::test): ...this.
10017 (is_a_helper <const gimple_statement_bind>::test): Convert to...
10018 (is_a_helper <const gimple_statement_bind *>::test): ...this.
10019 (is_a_helper <const gimple_statement_call>::test): Convert to...
10020 (is_a_helper <const gimple_statement_call *>::test): ...this.
10021 (is_a_helper <const gimple_statement_catch>::test): Convert to...
10022 (is_a_helper <const gimple_statement_catch *>::test): ...this.
10023 (is_a_helper <const gimple_statement_resx>::test): Convert to...
10024 (is_a_helper <const gimple_statement_resx *>::test): ...this.
10025 (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
10026 (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
10027 (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
10028 (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
10029 (is_a_helper <const gimple_statement_omp_atomic_load>::test):
10031 (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
10033 (is_a_helper <const gimple_statement_omp_atomic_store>::test):
10035 (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
10037 (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
10038 (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
10039 (is_a_helper <const gimple_statement_omp_continue>::test): Convert
10041 (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
10042 (is_a_helper <const gimple_statement_omp_critical>::test): Convert
10044 (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
10045 (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
10046 (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
10047 (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
10048 (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
10049 (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
10051 (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
10052 (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
10053 (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
10054 (is_a_helper <const gimple_statement_omp_sections>::test): Convert
10056 (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
10057 (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
10058 (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
10059 (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
10060 (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
10061 (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
10062 (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
10063 (is_a_helper <const gimple_statement_phi>::test): Convert to...
10064 (is_a_helper <const gimple_statement_phi *>::test): ...this.
10065 (is_a_helper <const gimple_statement_transaction>::test): Convert to...
10066 (is_a_helper <const gimple_statement_transaction *>::test): ...this.
10067 (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
10068 (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
10069 (is_a_helper <gimple_statement_with_ops>::test): Convert to...
10070 (is_a_helper <gimple_statement_with_ops *>::test): ...this.
10071 (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
10073 (is_a_helper <const gimple_statement_with_memory_ops *>::test):
10075 (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
10076 (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
10078 (gimple_use_ops): Update for removal of implicit pointer from the
10080 (gimple_set_use_ops): Likewise.
10081 (gimple_vuse): Likewise.
10082 (gimple_vdef): Likewise.
10083 (gimple_vuse_ptr): Likewise.
10084 (gimple_vdef_ptr): Likewise.
10085 (gimple_set_vuse): Likewise.
10086 (gimple_set_vdef): Likewise.
10087 (gimple_omp_return_set_lhs): Likewise.
10088 (gimple_omp_return_lhs): Likewise.
10089 (gimple_omp_return_lhs_ptr): Likewise.
10090 (gimple_call_fntype): Likewise.
10091 (gimple_call_set_fntype): Likewise.
10092 (gimple_call_set_internal_fn): Likewise.
10093 (gimple_call_use_set): Likewise.
10094 (gimple_call_clobber_set): Likewise.
10095 (gimple_bind_vars): Likewise.
10096 (gimple_bind_set_vars): Likewise.
10097 (gimple_bind_body_ptr): Likewise.
10098 (gimple_bind_set_body): Likewise.
10099 (gimple_bind_add_stmt): Likewise.
10100 (gimple_bind_block): Likewise.
10101 (gimple_bind_set_block): Likewise.
10102 (gimple_asm_ninputs): Likewise.
10103 (gimple_asm_noutputs): Likewise.
10104 (gimple_asm_nclobbers): Likewise.
10105 (gimple_asm_nlabels): Likewise.
10106 (gimple_asm_input_op): Likewise.
10107 (gimple_asm_input_op_ptr): Likewise.
10108 (gimple_asm_output_op): Likewise.
10109 (gimple_asm_output_op_ptr): Likewise.
10110 (gimple_asm_set_output_op): Likewise.
10111 (gimple_asm_clobber_op): Likewise.
10112 (gimple_asm_set_clobber_op): Likewise.
10113 (gimple_asm_label_op): Likewise.
10114 (gimple_asm_set_label_op): Likewise.
10115 (gimple_asm_string): Likewise.
10116 (gimple_catch_types): Likewise.
10117 (gimple_catch_types_ptr): Likewise.
10118 (gimple_catch_handler_ptr): Likewise.
10119 (gimple_catch_set_types): Likewise.
10120 (gimple_catch_set_handler): Likewise.
10121 (gimple_eh_filter_types): Likewise.
10122 (gimple_eh_filter_types_ptr): Likewise.
10123 (gimple_eh_filter_failure_ptr): Likewise.
10124 (gimple_eh_filter_set_types): Likewise.
10125 (gimple_eh_filter_set_failure): Likewise.
10126 (gimple_eh_must_not_throw_fndecl): Likewise.
10127 (gimple_eh_must_not_throw_set_fndecl): Likewise.
10128 (gimple_eh_else_n_body_ptr): Likewise.
10129 (gimple_eh_else_e_body_ptr): Likewise.
10130 (gimple_eh_else_set_n_body): Likewise.
10131 (gimple_eh_else_set_e_body): Likewise.
10132 (gimple_try_eval_ptr): Likewise.
10133 (gimple_try_cleanup_ptr): Likewise.
10134 (gimple_try_set_eval): Likewise.
10135 (gimple_try_set_cleanup): Likewise.
10136 (gimple_wce_cleanup_ptr): Likewise.
10137 (gimple_wce_set_cleanup): Likewise.
10138 (gimple_phi_capacity): Likewise.
10139 (gimple_phi_num_args): Likewise.
10140 (gimple_phi_result): Likewise.
10141 (gimple_phi_result_ptr): Likewise.
10142 (gimple_phi_set_result): Likewise.
10143 (gimple_phi_arg): Likewise.
10144 (gimple_phi_set_arg): Likewise.
10145 (gimple_resx_region): Likewise.
10146 (gimple_resx_set_region): Likewise.
10147 (gimple_eh_dispatch_region): Likewise.
10148 (gimple_eh_dispatch_set_region): Likewise.
10149 (gimple_omp_critical_name): Likewise.
10150 (gimple_omp_critical_name_ptr): Likewise.
10151 (gimple_omp_critical_set_name): Likewise.
10152 (gimple_omp_for_clauses): Likewise.
10153 (gimple_omp_for_clauses_ptr): Likewise.
10154 (gimple_omp_for_set_clauses): Likewise.
10155 (gimple_omp_for_collapse): Likewise.
10156 (gimple_omp_for_index): Likewise.
10157 (gimple_omp_for_index_ptr): Likewise.
10158 (gimple_omp_for_set_index): Likewise.
10159 (gimple_omp_for_initial): Likewise.
10160 (gimple_omp_for_initial_ptr): Likewise.
10161 (gimple_omp_for_set_initial): Likewise.
10162 (gimple_omp_for_final): Likewise.
10163 (gimple_omp_for_final_ptr): Likewise.
10164 (gimple_omp_for_set_final): Likewise.
10165 (gimple_omp_for_incr): Likewise.
10166 (gimple_omp_for_incr_ptr): Likewise.
10167 (gimple_omp_for_set_incr): Likewise.
10168 (gimple_omp_for_pre_body_ptr): Likewise.
10169 (gimple_omp_for_set_pre_body): Likewise.
10170 (gimple_omp_parallel_clauses): Likewise.
10171 (gimple_omp_parallel_clauses_ptr): Likewise.
10172 (gimple_omp_parallel_set_clauses): Likewise.
10173 (gimple_omp_parallel_child_fn): Likewise.
10174 (gimple_omp_parallel_child_fn_ptr): Likewise.
10175 (gimple_omp_parallel_set_child_fn): Likewise.
10176 (gimple_omp_parallel_data_arg): Likewise.
10177 (gimple_omp_parallel_data_arg_ptr): Likewise.
10178 (gimple_omp_parallel_set_data_arg): Likewise.
10179 (gimple_omp_task_clauses): Likewise.
10180 (gimple_omp_task_clauses_ptr): Likewise.
10181 (gimple_omp_task_set_clauses): Likewise.
10182 (gimple_omp_task_child_fn): Likewise.
10183 (gimple_omp_task_child_fn_ptr): Likewise.
10184 (gimple_omp_task_set_child_fn): Likewise.
10185 (gimple_omp_task_data_arg): Likewise.
10186 (gimple_omp_task_data_arg_ptr): Likewise.
10187 (gimple_omp_task_set_data_arg): Likewise.
10188 (gimple_omp_taskreg_clauses): Likewise.
10189 (gimple_omp_taskreg_clauses_ptr): Likewise.
10190 (gimple_omp_taskreg_set_clauses): Likewise.
10191 (gimple_omp_taskreg_child_fn): Likewise.
10192 (gimple_omp_taskreg_child_fn_ptr): Likewise.
10193 (gimple_omp_taskreg_set_child_fn): Likewise.
10194 (gimple_omp_taskreg_data_arg): Likewise.
10195 (gimple_omp_taskreg_data_arg_ptr): Likewise.
10196 (gimple_omp_taskreg_set_data_arg): Likewise.
10197 (gimple_omp_task_copy_fn): Likewise.
10198 (gimple_omp_task_copy_fn_ptr): Likewise.
10199 (gimple_omp_task_set_copy_fn): Likewise.
10200 (gimple_omp_task_arg_size): Likewise.
10201 (gimple_omp_task_arg_size_ptr): Likewise.
10202 (gimple_omp_task_set_arg_size): Likewise.
10203 (gimple_omp_task_arg_align): Likewise.
10204 (gimple_omp_task_arg_align_ptr): Likewise.
10205 (gimple_omp_task_set_arg_align): Likewise.
10206 (gimple_omp_single_clauses): Likewise.
10207 (gimple_omp_single_clauses_ptr): Likewise.
10208 (gimple_omp_single_set_clauses): Likewise.
10209 (gimple_omp_target_clauses): Likewise.
10210 (gimple_omp_target_clauses_ptr): Likewise.
10211 (gimple_omp_target_set_clauses): Likewise.
10212 (gimple_omp_target_child_fn): Likewise.
10213 (gimple_omp_target_child_fn_ptr): Likewise.
10214 (gimple_omp_target_set_child_fn): Likewise.
10215 (gimple_omp_target_data_arg): Likewise.
10216 (gimple_omp_target_data_arg_ptr): Likewise.
10217 (gimple_omp_target_set_data_arg): Likewise.
10218 (gimple_omp_teams_clauses): Likewise.
10219 (gimple_omp_teams_clauses_ptr): Likewise.
10220 (gimple_omp_teams_set_clauses): Likewise.
10221 (gimple_omp_sections_clauses): Likewise.
10222 (gimple_omp_sections_clauses_ptr): Likewise.
10223 (gimple_omp_sections_set_clauses): Likewise.
10224 (gimple_omp_sections_control): Likewise.
10225 (gimple_omp_sections_control_ptr): Likewise.
10226 (gimple_omp_sections_set_control): Likewise.
10227 (gimple_omp_for_set_cond): Likewise.
10228 (gimple_omp_for_cond): Likewise.
10229 (gimple_omp_atomic_store_set_val): Likewise.
10230 (gimple_omp_atomic_store_val): Likewise.
10231 (gimple_omp_atomic_store_val_ptr): Likewise.
10232 (gimple_omp_atomic_load_set_lhs): Likewise.
10233 (gimple_omp_atomic_load_lhs): Likewise.
10234 (gimple_omp_atomic_load_lhs_ptr): Likewise.
10235 (gimple_omp_atomic_load_set_rhs): Likewise.
10236 (gimple_omp_atomic_load_rhs): Likewise.
10237 (gimple_omp_atomic_load_rhs_ptr): Likewise.
10238 (gimple_omp_continue_control_def): Likewise.
10239 (gimple_omp_continue_control_def_ptr): Likewise.
10240 (gimple_omp_continue_set_control_def): Likewise.
10241 (gimple_omp_continue_control_use): Likewise.
10242 (gimple_omp_continue_control_use_ptr): Likewise.
10243 (gimple_omp_continue_set_control_use): Likewise.
10244 (gimple_transaction_body_ptr): Likewise.
10245 (gimple_transaction_label): Likewise.
10246 (gimple_transaction_label_ptr): Likewise.
10247 (gimple_transaction_set_body): Likewise.
10248 (gimple_transaction_set_label): Likewise.
10250 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
10251 * ipa-inline-analysis.c (inline_write_summary): Likewise.
10252 * ipa-ref.c (ipa_record_reference): Likewise.
10253 * ipa-reference.c (analyze_function): Likewise.
10254 (ipa_reference_write_optimization_summary): Likewise.
10255 * ipa.c (symtab_remove_unreachable_nodes): Likewise.
10256 (address_taken_from_non_vtable_p): Likewise.
10257 (comdat_can_be_unshared_p_1): Likewise.
10258 * lto-cgraph.c (lto_output_ref): Likewise.
10259 (add_references): Likewise.
10260 (compute_ltrans_boundary): Likewise.
10261 (output_symtab): Likewise.
10262 (input_ref): Likewise.
10263 (input_cgraph_1): Likewise.
10264 (output_cgraph_opt_summary): Likewise.
10265 * lto-streamer-out.c (lto_output): Likewise.
10266 (output_symbol_p): Likewise.
10267 * lto-streamer.h (lsei_next_function_in_partition): Likewise.
10268 (lsei_start_function_in_partition): Likewise.
10269 (lsei_next_variable_in_partition): Likewise.
10270 (lsei_start_variable_in_partition): Likewise.
10271 * symtab.c (insert_to_assembler_name_hash): Likewise.
10272 (unlink_from_assembler_name_hash): Likewise.
10273 (symtab_unregister_node): Likewise.
10274 (symtab_remove_node): Likewise.
10275 (dump_symtab_node): Likewise.
10276 (verify_symtab_base): Likewise.
10277 (verify_symtab_node): Likewise.
10278 (symtab_make_decl_local): Likewise.
10279 (symtab_alias_ultimate_target): Likewise.
10280 (symtab_resolve_alias): Likewise.
10281 (symtab_get_symbol_partitioning_class): Likewise.
10282 * tree-phinodes.c (allocate_phi_node): Likewise.
10283 (reserve_phi_args_for_new_edge): Likewise.
10284 (remove_phi_args): Likewise.
10285 * varpool.c (varpool_node_for_asm): Likewise.
10286 (varpool_remove_unreferenced_decls): Likewise.
10288 2014-04-23 Jeff Law <law@redhat.com>
10290 PR tree-optimization/60902
10291 * tree-ssa-threadedge.c
10292 (record_temporary_equivalences_from_stmts_at_dest): Make sure to
10293 invalidate outputs from statements that do not produce useful
10294 outputs for threading.
10296 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
10298 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
10299 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
10300 machine descriptions for Stack Smashing Protector.
10302 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
10304 * aarch64.md (<optab>_rol<mode>3): New pattern.
10305 (<optab>_rolsi3_uxtw): Likewise.
10306 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
10308 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
10310 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
10311 (arm_cortex_a12_tune): Likewise.
10313 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10315 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
10317 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10319 * config/arm/arm.md (arm_rev16si2): New pattern.
10320 (arm_rev16si2_alt): Likewise.
10321 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
10323 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10325 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
10326 (rev16<mode>2_alt): Likewise.
10327 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
10328 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
10329 (aarch_rev16_shleft_mask_imm_p): Likewise.
10330 (aarch_rev16_p_1): Likewise.
10331 (aarch_rev16_p): Likewise.
10332 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
10333 (aarch_rev16_shright_mask_imm_p): Likewise.
10334 (aarch_rev16_shleft_mask_imm_p): Likewise.
10336 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10338 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
10339 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
10341 (cortex_a53_extra_costs): Likewise.
10342 (cortex_a57_extra_costs): Likewise.
10343 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
10344 (cortexa7_extra_costs): Likewise.
10345 (cortexa8_extra_costs): Likewise.
10346 (cortexa12_extra_costs): Likewise.
10347 (cortexa15_extra_costs): Likewise.
10348 (v7m_extra_costs): Likewise.
10349 (arm_new_rtx_costs): Handle BSWAP.
10351 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10353 * config/arm/arm.c (cortexa8_extra_costs): New table.
10354 (arm_cortex_a8_tune): New tuning struct.
10355 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
10357 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10359 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
10361 2014-04-23 Richard Biener <rguenther@suse.de>
10363 * Makefile.in (OBJS): Remove loop-unswitch.o.
10364 * tree-pass.h (make_pass_rtl_unswitch): Remove.
10365 * passes.def (pass_rtl_unswitch): Likewise.
10366 * loop-init.c (gate_rtl_unswitch): Likewise.
10367 (rtl_unswitch): Likewise.
10368 (pass_data_rtl_unswitch): Likewise.
10369 (pass_rtl_unswitch): Likewise.
10370 (make_pass_rtl_unswitch): Likewise.
10371 * rtl.h (reversed_condition): Likewise.
10372 (compare_and_jump_seq): Likewise.
10373 * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
10375 * loop-unroll.c (compare_and_jump_seq): Likewise.
10377 2014-04-23 Richard Biener <rguenther@suse.de>
10379 PR tree-optimization/60903
10380 * tree-ssa-loop-im.c (analyze_memory_references): Remove
10381 commented code block.
10382 (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
10383 loop flags to newly created BBs and edges.
10385 2014-04-23 Nick Clifton <nickc@redhat.com>
10387 * config/msp430/msp430.c (msp430_handle_option): Move function
10389 (msp430_option_override): Simplify mcu and mcpu option handling.
10390 (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult. Add
10391 support for -mhwmult command line option.
10392 (has_32bit_hwmult): Rename to use_32bit_hwmult. Add support for
10393 -mhwmult command line option.
10394 (msp430_hwmult_enabled): Delete.
10395 (msp43o_output_labelref): Add support for -mhwmult command line option.
10396 * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
10397 (umulsidi3): Likewise.
10398 * config/msp430/msp430.opt (mmcu): Add Report attribute.
10399 (mcpu, mlarge, msmall): Likewise.
10400 (mhwmult): New option.
10401 * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
10403 (msp430_is_f5_mcu): Remove prototype.
10404 (msp430_use_f5_series_hwmult): Add prototype.
10405 * config/msp430/msp430-opts.h: New file.
10406 * common/config/msp430: New directory.
10407 * common/config/msp430/msp430-common.c: New file.
10408 * config.gcc (msp430): Remove target_has_targetm_common.
10409 * doc/invoke.texi: Document -mhwmult command line option.
10411 2014-04-23 Nick Clifton <nickc@redhat.com>
10413 * config/i386/cygwin.h (ENDFILE_SPEC): Include
10414 default-manifest.o if it can be found in the search path.
10415 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
10417 2014-04-23 Terry Guo <terry.guo@arm.com>
10419 * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
10421 2014-04-23 Richard Biener <rguenther@suse.de>
10423 PR middle-end/60895
10424 * tree-inline.c (declare_return_variable): Use mark_addressable.
10426 2014-04-23 Richard Biener <rguenther@suse.de>
10428 PR middle-end/60891
10429 * loop-init.c (loop_optimizer_init): Make sure to apply
10430 LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
10432 2014-04-22 Jakub Jelinek <jakub@redhat.com>
10435 * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
10437 * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
10438 if flag_sanitize_undefined_trap_on_error.
10439 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
10440 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
10441 BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
10442 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
10443 BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
10444 BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
10445 BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
10446 BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
10447 BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
10448 * ubsan.c (ubsan_instrument_unreachable): Return
10449 __builtin_trap () if flag_sanitize_undefined_trap_on_error.
10450 (ubsan_expand_null_ifn): Emit __builtin_trap ()
10451 if flag_sanitize_undefined_trap_on_error and
10452 __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
10453 (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
10454 instrument_bool_enum_load): Emit __builtin_trap () if
10455 flag_sanitize_undefined_trap_on_error and
10456 __builtin_handle_*_abort () if !flag_sanitize_recover.
10457 * doc/invoke.texi (-fsanitize-recover,
10458 -fsanitize-undefined-trap-on-error): Document.
10460 2014-04-22 Christian Bruel <christian.bruel@st.com>
10462 * config/sh/sh.md (mov<mode>): Replace movQIHI.
10463 Force immediates to SImode.
10465 2014-04-22 Sandra Loosemore <sandra@codesourcery.com>
10467 * config/nios2/nios2.md (UNSPEC_ROUND): New.
10468 (lroundsfsi2): New.
10469 * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
10470 * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
10471 * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
10472 (nios2_fpu_insn): Add entry for round.
10473 (N2FPU_NO_ERRNO_P): Define.
10474 (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
10476 * doc/invoke.texi (Nios II Options): Document -mcustom-round.
10478 2014-04-22 Richard Henderson <rth@redhat.com>
10480 * config/aarch64/aarch64 (addti3, subti3): New expanders.
10481 (add<GPI>3_compare0): Remove leading * from name.
10482 (add<GPI>3_carryin): Likewise.
10483 (sub<GPI>3_compare0): Likewise.
10484 (sub<GPI>3_carryin): Likewise.
10485 (<su_optab>mulditi3): New expander.
10486 (multi3): New expander.
10487 (madd<GPI>): Remove leading * from name.
10489 2014-04-22 Martin Jambor <mjambor@suse.cz>
10491 * cgraphclones.c (cgraph_function_versioning): Copy
10492 ipa_transforms_to_apply instead of asserting it is empty.
10494 2014-04-22 H.J. Lu <hongjiu.lu@intel.com>
10497 * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
10498 on count_exp to get mode.
10500 2014-04-22 Andrew Pinski <apinski@cavium.com>
10502 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10503 Handle TLS for ILP32.
10504 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
10505 (tlsie_small_<mode>): this and handle PTR.
10506 (tlsie_small_sidi): New pattern.
10507 (tlsle_small): Change to an expand to handle ILP32.
10508 (tlsle_small_<mode>): New pattern.
10509 (tlsdesc_small): Rename to ...
10510 (tlsdesc_small_<mode>): this and handle PTR.
10512 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10514 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
10516 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
10518 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
10519 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
10520 (aarch64_types_signed_poly_qualifiers): Likewise.
10521 (aarch64_types_unsigned_signed_qualifiers): Likewise.
10522 (aarch64_types_poly_signed_qualifiers): Likewise.
10523 (TYPES_REINTERP_SS): Type macro added.
10524 (TYPES_REINTERP_SU): Likewise.
10525 (TYPES_REINTERP_SP): Likewise.
10526 (TYPES_REINTERP_US): Likewise.
10527 (TYPES_REINTERP_PS): Likewise.
10528 (aarch64_fold_builtin): New expression folding added.
10529 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
10530 Declarations removed.
10531 (REINTERP_SS): Declarations added.
10532 (REINTERP_US): Likewise.
10533 (REINTERP_PS): Likewise.
10534 (REINTERP_SU): Likewise.
10535 (REINTERP_SP): Likewise.
10536 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
10537 (vreinterpretq_p8_f64): Likewise.
10538 (vreinterpret_p16_f64): Likewise.
10539 (vreinterpretq_p16_f64): Likewise.
10540 (vreinterpret_f32_f64): Likewise.
10541 (vreinterpretq_f32_f64): Likewise.
10542 (vreinterpret_f64_f32): Likewise.
10543 (vreinterpret_f64_p8): Likewise.
10544 (vreinterpret_f64_p16): Likewise.
10545 (vreinterpret_f64_s8): Likewise.
10546 (vreinterpret_f64_s16): Likewise.
10547 (vreinterpret_f64_s32): Likewise.
10548 (vreinterpret_f64_s64): Likewise.
10549 (vreinterpret_f64_u8): Likewise.
10550 (vreinterpret_f64_u16): Likewise.
10551 (vreinterpret_f64_u32): Likewise.
10552 (vreinterpret_f64_u64): Likewise.
10553 (vreinterpretq_f64_f32): Likewise.
10554 (vreinterpretq_f64_p8): Likewise.
10555 (vreinterpretq_f64_p16): Likewise.
10556 (vreinterpretq_f64_s8): Likewise.
10557 (vreinterpretq_f64_s16): Likewise.
10558 (vreinterpretq_f64_s32): Likewise.
10559 (vreinterpretq_f64_s64): Likewise.
10560 (vreinterpretq_f64_u8): Likewise.
10561 (vreinterpretq_f64_u16): Likewise.
10562 (vreinterpretq_f64_u32): Likewise.
10563 (vreinterpretq_f64_u64): Likewise.
10564 (vreinterpret_s64_f64): Likewise.
10565 (vreinterpretq_s64_f64): Likewise.
10566 (vreinterpret_u64_f64): Likewise.
10567 (vreinterpretq_u64_f64): Likewise.
10568 (vreinterpret_s8_f64): Likewise.
10569 (vreinterpretq_s8_f64): Likewise.
10570 (vreinterpret_s16_f64): Likewise.
10571 (vreinterpretq_s16_f64): Likewise.
10572 (vreinterpret_s32_f64): Likewise.
10573 (vreinterpretq_s32_f64): Likewise.
10574 (vreinterpret_u8_f64): Likewise.
10575 (vreinterpretq_u8_f64): Likewise.
10576 (vreinterpret_u16_f64): Likewise.
10577 (vreinterpretq_u16_f64): Likewise.
10578 (vreinterpret_u32_f64): Likewise.
10579 (vreinterpretq_u32_f64): Likewise.
10581 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
10583 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
10584 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
10585 (vreinterpret_p8_s8): Likewise.
10586 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
10587 (vreinterpret_p8_s16): Likewise.
10588 (vreinterpret_p8_s32): Likewise.
10589 (vreinterpret_p8_s64): Likewise.
10590 (vreinterpret_p8_f32): Likewise.
10591 (vreinterpret_p8_u8): Likewise.
10592 (vreinterpret_p8_u16): Likewise.
10593 (vreinterpret_p8_u32): Likewise.
10594 (vreinterpret_p8_u64): Likewise.
10595 (vreinterpret_p8_p16): Likewise.
10596 (vreinterpretq_p8_s8): Likewise.
10597 (vreinterpretq_p8_s16): Likewise.
10598 (vreinterpretq_p8_s32): Likewise.
10599 (vreinterpretq_p8_s64): Likewise.
10600 (vreinterpretq_p8_f32): Likewise.
10601 (vreinterpretq_p8_u8): Likewise.
10602 (vreinterpretq_p8_u16): Likewise.
10603 (vreinterpretq_p8_u32): Likewise.
10604 (vreinterpretq_p8_u64): Likewise.
10605 (vreinterpretq_p8_p16): Likewise.
10606 (vreinterpret_p16_s8): Likewise.
10607 (vreinterpret_p16_s16): Likewise.
10608 (vreinterpret_p16_s32): Likewise.
10609 (vreinterpret_p16_s64): Likewise.
10610 (vreinterpret_p16_f32): Likewise.
10611 (vreinterpret_p16_u8): Likewise.
10612 (vreinterpret_p16_u16): Likewise.
10613 (vreinterpret_p16_u32): Likewise.
10614 (vreinterpret_p16_u64): Likewise.
10615 (vreinterpret_p16_p8): Likewise.
10616 (vreinterpretq_p16_s8): Likewise.
10617 (vreinterpretq_p16_s16): Likewise.
10618 (vreinterpretq_p16_s32): Likewise.
10619 (vreinterpretq_p16_s64): Likewise.
10620 (vreinterpretq_p16_f32): Likewise.
10621 (vreinterpretq_p16_u8): Likewise.
10622 (vreinterpretq_p16_u16): Likewise.
10623 (vreinterpretq_p16_u32): Likewise.
10624 (vreinterpretq_p16_u64): Likewise.
10625 (vreinterpretq_p16_p8): Likewise.
10626 (vreinterpret_f32_s8): Likewise.
10627 (vreinterpret_f32_s16): Likewise.
10628 (vreinterpret_f32_s32): Likewise.
10629 (vreinterpret_f32_s64): Likewise.
10630 (vreinterpret_f32_u8): Likewise.
10631 (vreinterpret_f32_u16): Likewise.
10632 (vreinterpret_f32_u32): Likewise.
10633 (vreinterpret_f32_u64): Likewise.
10634 (vreinterpret_f32_p8): Likewise.
10635 (vreinterpret_f32_p16): Likewise.
10636 (vreinterpretq_f32_s8): Likewise.
10637 (vreinterpretq_f32_s16): Likewise.
10638 (vreinterpretq_f32_s32): Likewise.
10639 (vreinterpretq_f32_s64): Likewise.
10640 (vreinterpretq_f32_u8): Likewise.
10641 (vreinterpretq_f32_u16): Likewise.
10642 (vreinterpretq_f32_u32): Likewise.
10643 (vreinterpretq_f32_u64): Likewise.
10644 (vreinterpretq_f32_p8): Likewise.
10645 (vreinterpretq_f32_p16): Likewise.
10646 (vreinterpret_s64_s8): Likewise.
10647 (vreinterpret_s64_s16): Likewise.
10648 (vreinterpret_s64_s32): Likewise.
10649 (vreinterpret_s64_f32): Likewise.
10650 (vreinterpret_s64_u8): Likewise.
10651 (vreinterpret_s64_u16): Likewise.
10652 (vreinterpret_s64_u32): Likewise.
10653 (vreinterpret_s64_u64): Likewise.
10654 (vreinterpret_s64_p8): Likewise.
10655 (vreinterpret_s64_p16): Likewise.
10656 (vreinterpretq_s64_s8): Likewise.
10657 (vreinterpretq_s64_s16): Likewise.
10658 (vreinterpretq_s64_s32): Likewise.
10659 (vreinterpretq_s64_f32): Likewise.
10660 (vreinterpretq_s64_u8): Likewise.
10661 (vreinterpretq_s64_u16): Likewise.
10662 (vreinterpretq_s64_u32): Likewise.
10663 (vreinterpretq_s64_u64): Likewise.
10664 (vreinterpretq_s64_p8): Likewise.
10665 (vreinterpretq_s64_p16): Likewise.
10666 (vreinterpret_u64_s8): Likewise.
10667 (vreinterpret_u64_s16): Likewise.
10668 (vreinterpret_u64_s32): Likewise.
10669 (vreinterpret_u64_s64): Likewise.
10670 (vreinterpret_u64_f32): Likewise.
10671 (vreinterpret_u64_u8): Likewise.
10672 (vreinterpret_u64_u16): Likewise.
10673 (vreinterpret_u64_u32): Likewise.
10674 (vreinterpret_u64_p8): Likewise.
10675 (vreinterpret_u64_p16): Likewise.
10676 (vreinterpretq_u64_s8): Likewise.
10677 (vreinterpretq_u64_s16): Likewise.
10678 (vreinterpretq_u64_s32): Likewise.
10679 (vreinterpretq_u64_s64): Likewise.
10680 (vreinterpretq_u64_f32): Likewise.
10681 (vreinterpretq_u64_u8): Likewise.
10682 (vreinterpretq_u64_u16): Likewise.
10683 (vreinterpretq_u64_u32): Likewise.
10684 (vreinterpretq_u64_p8): Likewise.
10685 (vreinterpretq_u64_p16): Likewise.
10686 (vreinterpret_s8_s16): Likewise.
10687 (vreinterpret_s8_s32): Likewise.
10688 (vreinterpret_s8_s64): Likewise.
10689 (vreinterpret_s8_f32): Likewise.
10690 (vreinterpret_s8_u8): Likewise.
10691 (vreinterpret_s8_u16): Likewise.
10692 (vreinterpret_s8_u32): Likewise.
10693 (vreinterpret_s8_u64): Likewise.
10694 (vreinterpret_s8_p8): Likewise.
10695 (vreinterpret_s8_p16): Likewise.
10696 (vreinterpretq_s8_s16): Likewise.
10697 (vreinterpretq_s8_s32): Likewise.
10698 (vreinterpretq_s8_s64): Likewise.
10699 (vreinterpretq_s8_f32): Likewise.
10700 (vreinterpretq_s8_u8): Likewise.
10701 (vreinterpretq_s8_u16): Likewise.
10702 (vreinterpretq_s8_u32): Likewise.
10703 (vreinterpretq_s8_u64): Likewise.
10704 (vreinterpretq_s8_p8): Likewise.
10705 (vreinterpretq_s8_p16): Likewise.
10706 (vreinterpret_s16_s8): Likewise.
10707 (vreinterpret_s16_s32): Likewise.
10708 (vreinterpret_s16_s64): Likewise.
10709 (vreinterpret_s16_f32): Likewise.
10710 (vreinterpret_s16_u8): Likewise.
10711 (vreinterpret_s16_u16): Likewise.
10712 (vreinterpret_s16_u32): Likewise.
10713 (vreinterpret_s16_u64): Likewise.
10714 (vreinterpret_s16_p8): Likewise.
10715 (vreinterpret_s16_p16): Likewise.
10716 (vreinterpretq_s16_s8): Likewise.
10717 (vreinterpretq_s16_s32): Likewise.
10718 (vreinterpretq_s16_s64): Likewise.
10719 (vreinterpretq_s16_f32): Likewise.
10720 (vreinterpretq_s16_u8): Likewise.
10721 (vreinterpretq_s16_u16): Likewise.
10722 (vreinterpretq_s16_u32): Likewise.
10723 (vreinterpretq_s16_u64): Likewise.
10724 (vreinterpretq_s16_p8): Likewise.
10725 (vreinterpretq_s16_p16): Likewise.
10726 (vreinterpret_s32_s8): Likewise.
10727 (vreinterpret_s32_s16): Likewise.
10728 (vreinterpret_s32_s64): Likewise.
10729 (vreinterpret_s32_f32): Likewise.
10730 (vreinterpret_s32_u8): Likewise.
10731 (vreinterpret_s32_u16): Likewise.
10732 (vreinterpret_s32_u32): Likewise.
10733 (vreinterpret_s32_u64): Likewise.
10734 (vreinterpret_s32_p8): Likewise.
10735 (vreinterpret_s32_p16): Likewise.
10736 (vreinterpretq_s32_s8): Likewise.
10737 (vreinterpretq_s32_s16): Likewise.
10738 (vreinterpretq_s32_s64): Likewise.
10739 (vreinterpretq_s32_f32): Likewise.
10740 (vreinterpretq_s32_u8): Likewise.
10741 (vreinterpretq_s32_u16): Likewise.
10742 (vreinterpretq_s32_u32): Likewise.
10743 (vreinterpretq_s32_u64): Likewise.
10744 (vreinterpretq_s32_p8): Likewise.
10745 (vreinterpretq_s32_p16): Likewise.
10746 (vreinterpret_u8_s8): Likewise.
10747 (vreinterpret_u8_s16): Likewise.
10748 (vreinterpret_u8_s32): Likewise.
10749 (vreinterpret_u8_s64): Likewise.
10750 (vreinterpret_u8_f32): Likewise.
10751 (vreinterpret_u8_u16): Likewise.
10752 (vreinterpret_u8_u32): Likewise.
10753 (vreinterpret_u8_u64): Likewise.
10754 (vreinterpret_u8_p8): Likewise.
10755 (vreinterpret_u8_p16): Likewise.
10756 (vreinterpretq_u8_s8): Likewise.
10757 (vreinterpretq_u8_s16): Likewise.
10758 (vreinterpretq_u8_s32): Likewise.
10759 (vreinterpretq_u8_s64): Likewise.
10760 (vreinterpretq_u8_f32): Likewise.
10761 (vreinterpretq_u8_u16): Likewise.
10762 (vreinterpretq_u8_u32): Likewise.
10763 (vreinterpretq_u8_u64): Likewise.
10764 (vreinterpretq_u8_p8): Likewise.
10765 (vreinterpretq_u8_p16): Likewise.
10766 (vreinterpret_u16_s8): Likewise.
10767 (vreinterpret_u16_s16): Likewise.
10768 (vreinterpret_u16_s32): Likewise.
10769 (vreinterpret_u16_s64): Likewise.
10770 (vreinterpret_u16_f32): Likewise.
10771 (vreinterpret_u16_u8): Likewise.
10772 (vreinterpret_u16_u32): Likewise.
10773 (vreinterpret_u16_u64): Likewise.
10774 (vreinterpret_u16_p8): Likewise.
10775 (vreinterpret_u16_p16): Likewise.
10776 (vreinterpretq_u16_s8): Likewise.
10777 (vreinterpretq_u16_s16): Likewise.
10778 (vreinterpretq_u16_s32): Likewise.
10779 (vreinterpretq_u16_s64): Likewise.
10780 (vreinterpretq_u16_f32): Likewise.
10781 (vreinterpretq_u16_u8): Likewise.
10782 (vreinterpretq_u16_u32): Likewise.
10783 (vreinterpretq_u16_u64): Likewise.
10784 (vreinterpretq_u16_p8): Likewise.
10785 (vreinterpretq_u16_p16): Likewise.
10786 (vreinterpret_u32_s8): Likewise.
10787 (vreinterpret_u32_s16): Likewise.
10788 (vreinterpret_u32_s32): Likewise.
10789 (vreinterpret_u32_s64): Likewise.
10790 (vreinterpret_u32_f32): Likewise.
10791 (vreinterpret_u32_u8): Likewise.
10792 (vreinterpret_u32_u16): Likewise.
10793 (vreinterpret_u32_u64): Likewise.
10794 (vreinterpret_u32_p8): Likewise.
10795 (vreinterpret_u32_p16): Likewise.
10796 (vreinterpretq_u32_s8): Likewise.
10797 (vreinterpretq_u32_s16): Likewise.
10798 (vreinterpretq_u32_s32): Likewise.
10799 (vreinterpretq_u32_s64): Likewise.
10800 (vreinterpretq_u32_f32): Likewise.
10801 (vreinterpretq_u32_u8): Likewise.
10802 (vreinterpretq_u32_u16): Likewise.
10803 (vreinterpretq_u32_u64): Likewise.
10804 (vreinterpretq_u32_p8): Likewise.
10805 (vreinterpretq_u32_p16): Likewise.
10807 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
10809 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
10811 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
10813 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
10814 (vqnegd_s64): Likewise.
10815 (vqabs_s64): Likewise.
10816 (vqabsd_s64): Likewise.
10818 2014-04-22 Richard Henderson <rth@redhat.com>
10820 * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
10821 computation to the top of the loop.
10823 2014-04-22 Renlin <renlin.li@arm.com>
10824 Jiong Wang <jiong.wang@arm.com>
10826 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
10827 * config/aarch64/aarch64.c (aarch64_layout_frame)
10828 (aarch64_initial_elimination_offset): Likewise.
10830 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
10832 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
10835 2014-04-22 Richard Sandiford <rdsandiford@googlemail.com>
10837 * machmode.h (bitwise_mode_for_mode): Declare.
10838 * stor-layout.h (bitwise_type_for_mode): Likewise.
10839 * stor-layout.c (bitwise_mode_for_mode): New function.
10840 (bitwise_type_for_mode): Likewise.
10841 * builtins.c (fold_builtin_memory_op): Use it instead of
10842 int_mode_for_mode and build_nonstandard_integer_type.
10844 2014-04-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10846 * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
10847 (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
10848 (*-*-solaris2*): Simplify.
10849 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
10850 (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
10851 *-*-solaris2.9* handling.
10853 * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
10855 (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
10856 (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
10857 handling, simplify.
10858 (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
10859 * configure: Regenerate.
10861 * config/i386/sol2-9.h: Remove.
10863 * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
10864 (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
10865 Remove Solaris 9 references.
10867 2014-04-22 Vidya Praveen <vidyapraveen@arm.com>
10869 * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
10870 (floatuns<GPI:mode><GPF:mode>2): Remove.
10871 (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
10872 and floatuns conversions.
10873 (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
10874 and floatuns conversions.
10875 * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
10876 (w1,w2): New mode attributes for inequal width conversions.
10878 2014-04-22 Renlin Li <Renlin.Li@arm.com>
10880 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
10881 the output asm format.
10883 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
10885 * config/aarch64/aarch64-simd.md
10886 (aarch64_cm<optab>di): Always split.
10887 (*aarch64_cm<optab>di): New.
10888 (aarch64_cmtstdi): Always split.
10889 (*aarch64_cmtstdi): New.
10891 2014-04-22 Jakub Jelinek <jakub@redhat.com>
10893 PR tree-optimization/60823
10894 * omp-low.c (ipa_simd_modify_function_body): Go through
10895 all SSA_NAMEs and for those refering to vector arguments
10896 which are going to be replaced adjust SSA_NAME_VAR and,
10897 if it is a default definition, change it into a non-default
10898 definition assigned at the beginning of function from new_decl.
10899 (ipa_simd_modify_stmt_ops): Rewritten.
10900 * tree-dfa.c (set_ssa_default_def): When removing default def,
10901 check for NULL loc instead of NULL *loc.
10903 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10905 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
10906 restrictions on core registers for DImode values in Thumb2.
10908 2014-04-22 Ian Bolton <ian.bolton@arm.com>
10910 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
10911 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
10913 2014-04-22 Ian Bolton <ian.bolton@arm.com>
10915 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
10916 (*iordi_notzesidi_di): Likewise.
10917 (*iordi_notsesidi_di): Likewise.
10919 2014-04-22 Ian Bolton <ian.bolton@arm.com>
10921 * config/arm/arm-protos.h (tune_params): New struct members.
10922 * config/arm/arm.c: Initialise tune_params per processor.
10923 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
10924 for speed, based on new tune_params.
10926 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
10928 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
10929 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
10930 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
10931 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
10932 * config/aarch64/arm_neon.h (vrnd_f64): Added.
10933 (vrnda_f64): Likewise.
10934 (vrndi_f64): Likewise.
10935 (vrndm_f64): Likewise.
10936 (vrndn_f64): Likewise.
10937 (vrndp_f64): Likewise.
10938 (vrndx_f64): Likewise.
10940 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10942 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
10943 GET_MODE_SIZE argument is enum machine_mode.
10945 2014-04-22 Jakub Jelinek <jakub@redhat.com>
10948 * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
10949 value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
10951 2014-04-22 Lin Zuojian <manjian2006@gmail.com>
10953 PR middle-end/60281
10954 * asan.c (asan_emit_stack_protection): Force the base to align to
10955 appropriate bits if STRICT_ALIGNMENT. Set shadow_mem align to
10956 appropriate bits if STRICT_ALIGNMENT.
10957 * cfgexpand.c (expand_stack_vars): Set base_align appropriately
10959 (expand_used_vars): Leave a space in the stack frame for alignment
10960 if STRICT_ALIGNMENT.
10962 2014-04-21 David Malcolm <dmalcolm@redhat.com>
10964 * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
10966 (gimple_store_p): Likewise.
10967 (gimple_assign_load_p): Likewise.
10968 (gimple_assign_cast_p): Likewise.
10969 (gimple_clobber_p): Likewise.
10971 * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
10972 rather than a gimple.
10973 (gimple_assign_cast_p): Likewise.
10975 2014-04-21 Michael Meissner <meissner@linux.vnet.ibm.com>
10978 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
10979 If mode is DDmode and TARGET_E500_DOUBLE allow move.
10981 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
10982 more debug information for E500 if -mdebug=reg.
10984 2014-04-21 Uros Bizjak <ubizjak@gmail.com>
10987 * config/i386/i386.c (ix86_expand_builtin)
10988 <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
10989 register for target RTX.
10990 <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
10992 2014-04-18 Cong Hou <congh@google.com>
10994 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
10995 the widen-mult pattern by handling two operands with different sizes,
10996 and operands whose size is smaller than half of the result type.
10998 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
11000 * ipa-inline.h (INLINE_HINT_known_hot): New hint.
11001 * ipa-inline-analysis.c (dump_inline_hints): Dump it.
11002 (do_estimate_edge_time): Compute it.
11003 * ipa-inline.c (want_inline_small_function_p): Bypass
11004 INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
11006 2014-04-18 Jan Hubicka <hubicka@ucw.cz>
11008 * ipa-inline.c (spec_rem): New static variable.
11009 (dump_overall_stats): New function.
11010 (dump_inline_stats): New function.
11012 2014-04-18 Richard Henderson <rth@redhat.com>
11014 * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
11015 to GET_MODE_SIZE, not a reg_class_t.
11017 2014-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11019 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
11020 (vsx_xxmrglw_<mode>): Likewise.
11022 2014-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
11025 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
11026 GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
11027 (rs6000_init_hard_regno_mode_ok): Likewise.
11029 2014-04-17 Jan Hubicka <hubicka@ucw.cz>
11031 * ipa-inline.c (inline_small_functions): Account only non-cold
11033 * doc/invoke.texi (inline-unit-growth): Update documentation.
11035 2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
11037 * config/rs6000/rs6000.md (addti3, subti3): New.
11039 2014-04-17 H.J. Lu <hongjiu.lu@intel.com>
11042 * config/i386/i386.c (ix86_expand_clear): Remove outdated
11043 comment. Check optimize_insn_for_size_p instead of
11044 optimize_insn_for_speed_p.
11046 2014-04-17 Martin Jambor <mjambor@suse.cz>
11048 * gimple-iterator.c (gsi_start_edge): New function.
11049 * gimple-iterator.h (gsi_start_edge): Declare.
11050 * tree-sra.c (single_non_eh_succ): New function.
11051 (disqualify_ops_if_throwing_stmt): Renamed to
11052 disqualify_if_bad_bb_terminating_stmt. Allow throwing statements
11053 having one non-EH successor BB.
11054 (sra_modify_expr): If stmt ends bb, use single non-EH successor to
11055 generate loads into replacements.
11056 (sra_modify_assign): Likewise and and also use the simple path for
11058 (sra_modify_function_body): Commit statements on edges.
11060 2014-04-17 Richard Biener <rguenther@suse.de>
11062 PR middle-end/60849
11063 * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
11064 comparison results and add clarifying comment.
11066 2014-04-17 Jakub Jelinek <jakub@redhat.com>
11068 * genmodes.c (struct mode_data): Add need_bytesize_adj field.
11069 (blank_mode): Initialize it.
11070 (emit_mode_size_inline, emit_mode_nunits_inline,
11071 emit_mode_inner_inline): New functions.
11072 (emit_insn_modes_h): Call them and surround their output with
11073 #if GCC_VERSION >= 4001 ... #endif.
11074 * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
11075 For GCC_VERSION >= 4001 use mode_*_inline routines instead of
11076 mode_* arrays if the argument is __builtin_constant_p.
11077 * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
11078 is enum machine_mode.
11080 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11082 * passes.c (opt_pass::execute): Adjust.
11083 (pass_manager::execute_pass_mode_switching): Likewise.
11084 (early_local_passes::execute): Likewise.
11085 (execute_one_pass): Pass cfun to the pass's execute method.
11086 * tree-pass.h (opt_pass::execute): Add function * argument.
11087 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
11088 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
11089 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
11090 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11091 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
11092 config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
11093 except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
11094 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
11095 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
11096 ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
11097 ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
11098 lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
11099 postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
11100 reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
11101 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
11102 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
11103 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
11104 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
11105 tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11106 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11107 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11108 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11109 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11110 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11111 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11112 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11113 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
11114 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
11115 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
11118 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11120 * passes.c (opt_pass::gate): Take function * argument.
11121 (gate_all_early_local_passes): Merge into
11122 (early_local_passes::gate): this.
11123 (gate_all_early_optimizations): Merge into
11124 (all_early_optimizations::gate): this.
11125 (gate_all_optimizations): Mege into
11126 (all_optimizations::gate): this.
11127 (gate_all_optimizations_g): Merge into
11128 (all_optimizations_g::gate): this.
11129 (gate_rest_of_compilation): Mege into
11130 (rest_of_compilation::gate): this.
11131 (gate_postreload): Merge into
11132 (postreload::gate): this.
11133 (dump_one_pass): Pass cfun to the pass's gate method.
11134 (execute_ipa_summary_passes): Likewise.
11135 (execute_one_pass): Likewise.
11136 (ipa_write_summaries_2): Likewise.
11137 (ipa_write_optimization_summaries_1): Likewise.
11138 (ipa_read_summaries_1): Likewise.
11139 (ipa_read_optimization_summaries_1): Likewise.
11140 (execute_ipa_stmt_fixups): Likewise.
11141 * tree-pass.h (opt_pass::gate): Add function * argument.
11142 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
11143 combine-stack-adj.c, combine.c, compare-elim.c,
11144 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11145 config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
11146 config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
11147 dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c, fwprop.c, gcse.c,
11148 gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
11149 graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
11150 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
11151 loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
11152 omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
11153 reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
11154 store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
11155 tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
11156 tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
11157 tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
11158 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
11159 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11160 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11161 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11162 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11163 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11164 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11165 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11166 tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
11167 tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
11168 var-tracking.c, vtable-verify.c, web.c: Adjust.
11170 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11172 * configure.ac: Check for -Woverloaded-virtual and enable it if found.
11173 * configure: Regenerate.
11175 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11177 * passes.c (dump_one_pass): don't check pass->has_gate.
11178 (execute_ipa_summary_passes): Likewise.
11179 (execute_one_pass): Likewise.
11180 (ipa_write_summaries_2): Likewise.
11181 (ipa_write_optimization_summaries_1): Likewise.
11182 (ipa_read_optimization_summaries_1): Likewise.
11183 (execute_ipa_stmt_fixups): Likewise.
11184 * tree-pass.h (pass_data::has_gate): Remove.
11185 * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
11186 cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
11187 compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
11188 config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11189 config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
11190 config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
11191 config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
11192 dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
11193 gimple-low.c, gimple-ssa-isolate-paths.c,
11194 gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
11195 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
11196 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
11197 ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
11198 modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
11199 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
11200 reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
11201 trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
11202 tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
11203 tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
11204 tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
11205 tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
11206 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11207 tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11208 tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11209 tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11210 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11211 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11212 tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11213 tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
11214 tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
11215 tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
11218 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11220 * pass_manager.h (pass_manager::register_dump_files_1): Remove
11222 * passes.c (pass_manager::register_dump_files_1): Merge into
11223 (pass_manager::register_dump_files): this, and remove its handling of
11224 properties since the pass always has the properties anyway.
11225 (pass_manager::pass_manager): Adjust.
11227 2014-04-17 Trevor Saunders <tsaunders@mozilla.com>
11229 * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
11230 * passes.c (pass_manager::register_dump_files_1): Remove dead code
11231 dealing with properties.
11232 (pass_manager::register_dump_files): Adjust.
11234 2014-03-20 Mark Wielaard <mjw@redhat.com>
11236 * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
11237 then represent the bound as normal constant value.
11239 2014-04-17 Jakub Jelinek <jakub@redhat.com>
11242 Forward port from 4.8 branch
11243 2013-07-19 Kirill Yukhin <kirill.yukhin@intel.com>
11245 * config/i386/bmiintrin.h (_blsi_u32): New.
11246 (_blsi_u64): Ditto.
11247 (_blsr_u32): Ditto.
11248 (_blsr_u64): Ditto.
11249 (_blsmsk_u32): Ditto.
11250 (_blsmsk_u64): Ditto.
11251 (_tzcnt_u32): Ditto.
11252 (_tzcnt_u64): Ditto.
11254 2014-04-17 Kito Cheng <kito@0xlab.org>
11256 * gcc.c (used_arg): Prevent out of bound access for multilib_options.
11258 2014-04-17 Richard Biener <rguenther@suse.de>
11260 PR middle-end/60849
11261 * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
11262 boolean results for comparisons.
11264 2014-04-17 Richard Biener <rguenther@suse.de>
11266 PR tree-optimization/60836
11267 * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
11268 initial PHI args to be gimple values.
11270 2014-04-17 Richard Biener <rguenther@suse.de>
11272 PR tree-optimization/60841
11273 * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
11274 * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
11275 of stmts to SLP build.
11276 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
11277 (vect_analyze_slp): Likewise.
11278 (vect_analyze_slp_instance): Likewise.
11279 (vect_build_slp_tree): Limit overall SLP tree growth.
11280 * tree-vectorizer.h (vect_analyze_data_refs,
11281 vect_analyze_slp): Adjust prototypes.
11283 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
11285 * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
11288 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
11290 * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
11291 * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
11292 * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
11293 for TARGET_SLOW_PSHUFB
11295 2014-04-17 Evgeny Stupachenko <evstupac@gmail.com>
11297 * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
11298 * config/i386/i386.c (intel_cost): Ditto.
11300 2014-04-17 Joey Ye <joey.ye@arm.com>
11302 * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
11304 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
11306 * opts.c (common_handle_option): Disable -fipa-reference coorectly
11307 with -fuse-profile.
11309 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
11311 * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
11312 (type_all_derivations_known_p): New predicate.
11313 (type_all_ctors_visible_p): New predicate.
11314 (type_possibly_instantiated_p): New predicate.
11315 (get_odr_type): Compute all_derivations_known.
11316 (dump_odr_type): Dump the flag.
11317 (maybe_record_type): Cleanup.
11318 (record_target_from_binfo): Add bases_to_consider array;
11319 record bases for types w/o instances and skip CXX destructor.
11320 (possible_polymorphic_call_targets_1): Add bases_to_consider
11321 and consider_construction parameters; check if type may have instance.
11322 (get_polymorphic_call_info): Set maybe_in_construction to true
11323 when we know nothing.
11324 (record_targets_from_bases): Skip CXX destructors; they are
11325 never called for types in construction.
11326 (possible_polymorphic_call_targets): Do not record target when
11327 type may not have instance.
11329 2014-04-16 Jan Hubicka <hubicka@ucw.cz>
11332 * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
11333 external aliases alive, too.
11335 2014-04-16 Andrew Pinski <apinski@cavium.com>
11337 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
11340 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
11342 * final.c (compute_alignments): Do not apply loop alignment to a block
11343 falling through to the exit.
11345 2014-04-16 Catherine Moore <clm@codesourcery.com>
11347 * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
11348 Adjust constraints for microMIPS store patterns.
11350 2014-04-16 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
11352 * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
11354 2014-04-16 Eric Botcazou <ebotcazou@adacore.com>
11356 * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
11357 (append_use): Run at -O0.
11358 (append_vdef): Likewise.
11359 * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
11360 * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
11362 2014-04-16 Jakub Jelinek <jakub@redhat.com>
11364 PR tree-optimization/60844
11365 * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
11366 (propagate_op_to_single_use, remove_visited_stmt_chain,
11367 linearize_expr, repropagate_negates, reassociate_bb): Use it
11368 instead of gsi_remove.
11370 2014-04-16 Martin Jambor <mjambor@suse.cz>
11372 * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
11373 ipa_transforms_to_apply.
11374 (cgraph_function_versioning): Assert that old_node has empty
11375 ipa_transforms_to_apply.
11376 * trans-mem.c (ipa_tm_create_version): Likewise.
11377 * tree-inline.c (tree_function_versioning): Do not duplicate
11378 ipa_transforms_to_apply.
11380 2014-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11383 * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
11385 Pass necessary as flags on 64-bit Solaris/x86.
11386 Use lowercase relocs for x86_64-*-*.
11387 * configure: Regenerate.
11389 2014-04-15 Jan Hubicka <jh@suse.cz>
11391 * ipa-devirt.c (referenced_from_vtable_p): New predicate.
11392 (maybe_record_node, likely_target_p): Use it.
11394 2014-04-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11397 Revert following patch
11399 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
11402 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
11403 software floating point or no floating point registers, do not
11404 allow any type in the FPRs. Eliminate a test for SPE SIMD types
11405 in GPRs that occurs after we tested for GPRs that would never be
11408 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
11409 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
11410 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
11411 specifically allow DDmode, since that does not use the SPE SIMD
11414 2014-03-21 Mark Wielaard <mjw@redhat.com>
11416 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
11417 as unsigned or int depending on type and value used.
11419 2014-04-15 Richard Biener <rguenther@suse.de>
11421 PR rtl-optimization/56965
11422 * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
11423 * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
11425 * alias.c (true_dependence_1): Do not call
11426 nonoverlapping_component_refs_p.
11427 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
11428 nonoverlapping_component_refs_p.
11429 (indirect_refs_may_alias_p): Likewise.
11431 2014-04-15 Teresa Johnson <tejohnson@google.com>
11433 * cfg.c (dump_bb_info): Fix flags check.
11434 * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
11436 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11438 PR rtl-optimization/60663
11439 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
11442 2014-04-15 Richard Biener <rguenther@suse.de>
11444 * lto-streamer.h (LTO_major_version): Bump to 4.
11446 2014-04-15 Richard Biener <rguenther@suse.de>
11448 * common.opt (lto_partition_model): New enum.
11449 (flto-partition=): Merge separate options with a single with argument,
11450 add -flto-partition=one support.
11451 * flag-types.h (enum lto_partition_model): Declare.
11452 * opts.c (finish_options): Remove duplicate -flto-partition=
11454 * lto-wrapper.c (run_gcc): Adjust.
11456 2014-04-15 Richard Biener <rguenther@suse.de>
11458 * alias.c (ncr_compar): New function.
11459 (nonoverlapping_component_refs_p): Re-implement in O (n log n).
11461 2014-04-15 Richard Biener <rguenther@suse.de>
11463 * alias.c (record_component_aliases): Do not walk BINFOs.
11465 2014-04-15 Richard Biener <rguenther@suse.de>
11467 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11468 Add struct function argument and adjust.
11469 (find_func_aliases_for_call): Likewise.
11470 (find_func_aliases): Likewise.
11471 (find_func_clobbers): Likewise.
11472 (intra_create_variable_infos): Likewise.
11473 (compute_points_to_sets): Likewise.
11474 (ipa_pta_execute): Adjust. Do not push/pop cfun.
11476 2014-04-15 Richard Biener <rguenther@suse.de>
11478 * tree.c (iterative_hash_expr): Use enum tree_code_class
11479 to store TREE_CODE_CLASS.
11480 (tree_block): Likewise.
11481 (tree_set_block): Likewise.
11482 * tree.h (fold_build_pointer_plus_loc): Use
11483 convert_to_ptrofftype_loc.
11485 2014-04-15 Jakub Jelinek <jakub@redhat.com>
11488 * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
11491 2014-04-15 Eric Botcazou <ebotcazou@adacore.com>
11493 * cfgloop.h (struct loop): Move force_vectorize down.
11494 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
11495 (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
11496 * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
11497 * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
11498 * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
11499 * tree-core.h (enum annot_expr_kind): Add new kind values.
11500 * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
11501 * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
11503 * tree.def (ANNOTATE_EXPR): Tweak comment.
11505 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
11507 * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
11510 2014-04-14 Paolo Carlini <paolo.carlini@oracle.com>
11512 * tree.h (TYPE_IDENTIFIER): Declare.
11513 * tree.c (subrange_type_for_debug_p): Use it.
11514 * godump.c (go_format_type): Likewise.
11515 * dwarf2out.c (is_cxx_auto, modified_type_die,
11516 gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
11517 * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
11519 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
11522 * varpool.c (varpool_remove_node): Do not alter decls when streaming.
11524 2014-04-14 Uros Bizjak <ubizjak@gmail.com>
11526 * config/i386/i386.c (examine_argument): Return bool. Return true if
11527 parameter should be passed in memory.
11528 <case X86_64_COMPLEX_X87_CLASS>: Adjust.
11529 (construct_container): Update calls to examine_argument.
11530 (function_arg_advance_64): Ditto.
11531 (return_in_memory_32): Merge with ix86_return_in_memory.
11532 (return_in_memory_64): Ditto.
11533 (return_in_memory_ms_64): Ditto.
11535 2014-04-14 Jan Hubicka <hubicka@ucw.cz>
11537 * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
11538 * coverage.c (coverage_compute_profile_id): Handle externally visible
11541 2014-04-14 Martin Jambor <mjambor@suse.cz>
11543 * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
11544 DECL_DISREGARD_INLINE_LIMITS functions.
11546 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
11549 * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
11551 2014-04-14 H.J. Lu <hongjiu.lu@intel.com>
11554 * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
11555 optimize_insn_for_speed_p instead of
11556 optimize_function_for_speed_p.
11558 2014-04-14 Yufeng Zhang <yufeng.zhang@arm.com>
11560 * doc/invoke.texi (free): Document AArch64.
11562 2014-04-14 Richard Biener <rguenther@suse.de>
11564 PR tree-optimization/60042
11565 * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
11566 (insert_into_preds_of_block): Do not prevent PHI insertion
11567 for REFERENCE exprs here ...
11568 (eliminate_dom_walker::before_dom_children): ... but prevent
11569 their use here under similar conditions when applied to the
11570 IL after PRE optimizations.
11572 2014-04-14 Richard Biener <rguenther@suse.de>
11574 * passes.def: Move early points-to after early SRA.
11576 2014-04-14 Richard Biener <rguenther@suse.de>
11578 * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
11579 check for which sign-changes we allow when forwarding
11580 a converted value into a switch.
11582 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
11584 * stor-layout.c (place_field): Finalize non-constant offset for the
11587 2014-04-14 Richard Biener <rguenther@suse.de>
11589 * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
11591 (expand_switch_using_bit_tests_p): Likewise.
11592 (process_switch): Compute and pass on speed_p based on the
11594 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
11595 optimize_bb_for_speed_p.
11597 2014-04-14 Eric Botcazou <ebotcazou@adacore.com>
11599 * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
11600 * function.h (struct function): Rename has_force_vect_loops into
11601 has_force_vectorize_loops.
11602 * lto-streamer-in.c (input_cfg): Adjust for renaming.
11603 (input_struct_function_base): Likewise.
11604 * lto-streamer-out.c (output_cfg): Likewise.
11605 (output_struct_function_base): Likewise.
11606 * omp-low.c (expand_omp_simd): Likewise.
11607 * tree-cfg.c (move_sese_region_to_fn): Likewise.
11608 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
11609 (version_loop_for_if_conversion): Likewise.
11610 (tree_if_conversion): Likewise.
11611 (main_tree_if_conversion): Likewise.
11612 (gate_tree_if_conversion): Likewise.
11613 * tree-inline.c (copy_loops): Likewise.
11614 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
11615 * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
11616 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
11617 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
11618 * tree-vectorizer.c (vectorize_loops): Likewise.
11619 * tree-vectorizer.h (unlimited_cost_model): Likewise.
11621 2014-04-14 Richard Biener <rguenther@suse.de>
11624 * lto-streamer-out.c (wrap_refs): New function.
11625 (lto_output): Wrap symbol references in global initializes in
11626 type-preserving MEM_REFs.
11628 2014-04-14 Christian Bruel <christian.bruel@st.com>
11630 * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
11632 2014-04-14 Christian Bruel <christian.bruel@st.com>
11634 * config/sh/sh.md (setmemqi): New expand pattern.
11635 * config/sh/sh.h (CLEAR_RATIO): Define.
11636 * config/sh/sh-mem.cc (sh_expand_setmem): Define.
11637 * config/sh/sh-protos.h (sh_expand_setmem): Declare.
11639 2014-04-14 Richard Biener <rguenther@suse.de>
11641 PR middle-end/55022
11642 * fold-const.c (negate_expr_p): Don't negate directional rounding
11644 (fold_negate_expr): Likewise.
11646 2014-04-14 Richard Biener <rguenther@suse.de>
11648 PR tree-optimization/59817
11649 PR tree-optimization/60453
11650 * graphite-scop-detection.c (graphite_can_represent_scev): Complete
11651 recursion to catch all CHRECs in the scalar evolution and restrict
11652 the predicate for the remains appropriately.
11654 2014-04-12 Catherine Moore <clm@codesourcery.com>
11656 * config/mips/constraints.md: Add new register constraint "kb".
11657 * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
11658 (*movhi_internal): Likewise.
11659 (*movqi_internal): Likewise.
11660 * config/mips/mips.h (M16_STORE_REGS): New register class.
11661 (REG_CLASS_NAMES): Add M16_STORE_REGS.
11662 (REG_CLASS_CONTENTS): Likewise.
11663 * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
11665 2014-04-11 Tobias Burnus <burnus@net-b.de>
11668 * doc/invoke.texi (-Wformat-signedness): Document it.
11669 (Wformat=2): Mention that this enables -Wformat-signedness.
11671 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
11673 * common/config/epiphany/epiphany-common.c
11674 (epiphany_option_optimization_table): Enable section anchors by
11675 default at -O1 or higher.
11676 * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
11677 (TARGET_MIN_ANCHOR_OFFSET): Likewise.
11678 (epiphany_rtx_costs) <SET>: For binary operators, the set as such
11679 carries no extra cost.
11680 (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
11681 * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
11682 * config/epiphany/predicates.md (memclob_operand): New predicate.
11683 * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
11684 Use memclob_operand predicate and X constraint for operand 3.
11686 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
11688 * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
11689 with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
11692 2014-04-11 Joern Rennecke <joern.rennecke@embecosm.com>
11694 PR rtl-optimization/60651
11695 * mode-switching.c (optimize_mode_switching): Make sure to emit
11696 sets of a lower numbered entity before sets of a higher numbered
11697 entity to a mode of the same or lower priority.
11698 When creating a seginfo for a basic block that starts with a code
11699 label, move the insertion point past the code label.
11700 (new_seginfo): Document and enforce requirement that
11701 NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
11702 * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
11703 * doc/tm.texi: Regenerate.
11705 2014-01-11 Joern Rennecke <joern.rennecke@embecosm.com>
11708 * config/arc/arc.c (arc_save_restore): Fix assert typo.
11710 2013-04-11 Jakub Jelinek <jakub@redhat.com>
11712 * BASE-VER: Set to 4.10.0.
11714 2014-04-11 Tobias Burnus <burnus@net-b.de>
11717 * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
11718 * doc/gcc.texi (Service): Update description in the @menu
11719 * doc/invoke.texi (Option Summary): Remove misplaced and
11722 2014-04-11 Steve Ellcey <sellcey@mips.com>
11723 Jakub Jelinek <jakub@redhat.com>
11725 PR middle-end/60556
11726 * expr.c (convert_move): Use emit_store_flag_force instead of
11727 emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
11730 2014-04-11 Richard Biener <rguenther@suse.de>
11732 PR middle-end/60797
11733 * varasm.c (assemble_alias): Avoid endless error reporting
11734 recursion by setting TREE_ASM_WRITTEN.
11736 2014-04-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11738 * config/s390/s390.md: Add a splitter for NOT rtx.
11740 2014-04-11 Jakub Jelinek <jakub@redhat.com>
11742 PR rtl-optimization/60663
11743 * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
11745 2014-04-10 Jan Hubicka <hubicka@ucw.cz>
11746 Jakub Jelinek <jakub@redhat.com>
11749 * ipa.c (function_and_variable_visibility): Copy forced_by_abi
11750 flag from decl_node to node.
11752 2014-04-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11755 * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
11756 (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
11757 ameliorating the cases where it can be.
11759 2014-04-09 David Edelsohn <dje.gcc@gmail.com>
11762 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
11764 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
11765 (loadsync_<mode>): Change mode.
11766 (load_quadpti, store_quadpti): New.
11767 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
11768 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
11769 * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
11771 2014-04-09 Cong Hou <congh@google.com>
11774 * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
11777 2014-04-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11779 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
11780 instead of vnor to exploit possible fusion opportunity in the
11782 (altivec_expand_vec_perm_const_le): Likewise.
11784 2014-04-08 Pat Haugen <pthaugen@us.ibm.com>
11786 * config/rs6000/sync.md (AINT mode_iterator): Move definition.
11787 (loadsync_<mode>): Change mode.
11788 (load_quadpti, store_quadpti): New.
11789 (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
11790 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
11792 2014-04-08 Richard Sandiford <rdsandiford@googlemail.com>
11795 * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
11796 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
11797 Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
11799 2014-04-08 Richard Biener <rguenther@suse.de>
11801 PR middle-end/60706
11802 * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
11803 a 64bit widest int print double-int similar to on HWI64 hosts.
11805 2014-04-08 Richard Biener <rguenther@suse.de>
11807 PR tree-optimization/60785
11808 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
11809 default defs properly.
11811 2014-04-08 Nathan Sidwell <nathan@codesourcery.com>
11813 * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
11814 (Weffc++): Likewise.
11816 2014-04-07 Jan Hubicka <hubcika@ucw.cz>
11818 * ipa-devirt.c (maybe_record_node): When node is not recorded,
11819 set completep to false rather than true.
11821 2014-04-07 Douglas B Rupp <rupp@adacore.com>
11824 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
11825 ARM_TARGET2_DWARF_FORMAT.
11827 2014-04-07 Charles Baylis <charles.baylis@linaro.org>
11830 * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
11831 (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
11834 2014-04-07 Richard Biener <rguenther@suse.de>
11836 PR tree-optimization/60766
11837 * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
11838 (may_eliminate_iv): Convert cand_value_at result to desired type.
11840 2014-04-07 Jason Merrill <jason@redhat.com>
11843 * common.opt (-fno-gnu-unique): Add.
11844 * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
11846 2014-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11848 * haifa-sched.c: Fix outdated function reference and minor
11849 grammar errors in introductory comment.
11851 2014-04-07 Richard Biener <rguenther@suse.de>
11853 PR middle-end/60750
11854 * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
11855 for noreturn calls.
11856 * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
11858 2014-04-06 John David Anglin <danglin@gcc.gnu.org>
11861 * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
11862 size accounting for thunks.
11863 (pa_asm_output_mi_thunk): Use final_start_function() and
11864 final_end_function() to output function start and end directives.
11866 2014-04-05 Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
11868 * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
11869 device specific ISA/ feature information. Remove short_sp and
11870 errata_skip ds. Add avr_device_specific_features enum to have device
11872 * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
11873 errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
11874 * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
11875 updated device specific info.
11876 * config/avr/avr-mcus.def: Merge device specific details to
11877 dev_attribute field.
11878 * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
11880 * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
11881 * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
11882 assembler if RMW isa supported by current device.
11883 * config/avr/genmultilib.awk: Update as device info structure changed.
11884 * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
11886 2014-04-04 Cong Hou <congh@google.com>
11888 PR tree-optimization/60656
11889 * tree-vect-stmts.c (supportable_widening_operation):
11890 Fix a bug that elements in a vector with vect_used_by_reduction
11891 property are incorrectly reordered when the operation on it is not
11892 consistant with the one in reduction operation.
11894 2014-04-04 John David Anglin <danglin@gcc.gnu.org>
11896 PR rtl-optimization/60155
11897 * gcse.c (record_set_data): New function.
11898 (single_set_gcse): New function.
11899 (gcse_emit_move_after): Use single_set_gcse instead of single_set.
11900 (hoist_code): Likewise.
11901 (get_pressure_class_and_nregs): Likewise.
11903 2014-04-04 Eric Botcazou <ebotcazou@adacore.com>
11905 * explow.c (probe_stack_range): Emit a final optimization blockage.
11907 2014-04-04 Anthony Green <green@moxielogic.com>
11909 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
11912 2014-04-04 Jan Hubicka <hubicka@ucw.cz>
11915 * lto-cgraph.c (input_overwrite_node): Check that partitioning
11916 flags are set only during streaming.
11917 * ipa.c (process_references, walk_polymorphic_call_targets,
11918 symtab_remove_unreachable_nodes): Drop bodies of always inline
11919 after early inlining.
11920 (symtab_remove_unreachable_nodes): Remove always_inline attribute.
11922 2014-04-04 Jakub Jelinek <jakub@redhat.com>
11923 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11926 * dwarf2out.c (const_ok_for_output_1): Reject expressions
11929 2014-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11932 * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
11934 (cortex_a53_fdivd): Likewise.
11936 2014-04-04 Martin Jambor <mjambor@suse.cz>
11939 * cgraph.h (cgraph_clone_node): New parameter added to declaration.
11940 Adjust all callers.
11941 * cgraph.c (clone_of_p): Also return true if thunks match.
11942 (verify_edge_corresponds_to_fndecl): Removed extraneous call to
11943 cgraph_function_or_thunk_node and an obsolete comment.
11944 * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
11946 (build_function_decl_skip_args): Likewise.
11947 (set_new_clone_decl_and_node_flags): New function.
11948 (duplicate_thunk_for_node): Likewise.
11949 (redirect_edge_duplicating_thunks): Likewise.
11950 (cgraph_clone_node): New parameter args_to_skip, pass it to
11951 redirect_edge_duplicating_thunks which is called instead of
11952 cgraph_redirect_edge_callee.
11953 (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
11954 moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
11956 2014-04-04 Jeff Law <law@redhat.com>
11959 * config/arm/predicates.md (const_int_I_operand): New predicate.
11960 (const_int_M_operand): Similarly.
11961 * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
11963 (insv_t2, extv_reg, extzv_t2): Likewise.
11964 (load_multiple_with_writeback): Similarly for const_int_I_operand.
11965 (pop_multiple_with_writeback_and_return): Likewise.
11966 (vfp_pop_multiple_with_writeback): Likewise
11968 2014-04-04 Richard Biener <rguenther@suse.de>
11971 * tree-ssanames.c (make_ssa_name_fn): Fix assert.
11972 * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
11974 * gimplify.h (gimple_add_tmp_var_fn): Declare.
11975 * gimplify.c (gimple_add_tmp_var_fn): New function.
11976 * gimple-expr.h (create_tmp_reg_fn): Declare.
11977 * gimple-expr.c (create_tmp_reg_fn): New function.
11978 * gimple-low.c (record_vars_into): Don't change cfun.
11979 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
11980 code generation without cfun.
11982 2014-04-04 Thomas Schwinge <thomas@codesourcery.com>
11985 * Makefile.in (install-driver): Fix shell scripting.
11987 2014-04-03 Cong Hou <congh@google.com>
11989 PR tree-optimization/60505
11990 * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
11991 threshold of number of iterations below which no vectorization
11993 * tree-vect-loop.c (new_loop_vec_info):
11994 Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
11995 * tree-vect-loop.c (vect_analyze_loop_operations):
11996 Set LOOP_VINFO_COST_MODEL_THRESHOLD.
11997 * tree-vect-loop.c (vect_transform_loop):
11998 Use LOOP_VINFO_COST_MODEL_THRESHOLD.
11999 * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
12000 of iterations of the loop and see if we should build the epilogue.
12002 2014-04-03 Richard Biener <rguenther@suse.de>
12004 * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
12005 (streamer_tree_cache_create): Adjust.
12006 * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
12007 to allow optional nodes array.
12008 (streamer_tree_cache_insert_1): Use next_idx to assign idx.
12009 (streamer_tree_cache_append): Likewise.
12010 (streamer_tree_cache_create): Create nodes array optionally
12011 as specified by parameter.
12012 * lto-streamer-out.c (create_output_block): Avoid maintaining
12013 the node array in the writer cache.
12014 (DFS_write_tree): Remove assertion.
12015 (produce_asm_for_decls): Free the out decl state hash table early.
12016 * lto-streamer-in.c (lto_data_in_create): Adjust for
12017 streamer_tree_cache_create prototype change.
12019 2014-04-03 Richard Biener <rguenther@suse.de>
12021 * tree-streamer-out.c (streamer_write_chain): Do not temporarily
12022 set TREE_CHAIN to NULL_TREE.
12024 2014-04-03 Richard Biener <rguenther@suse.de>
12026 PR tree-optimization/60740
12027 * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
12028 over all GIMPLE_COND operands.
12030 2014-04-03 Nathan Sidwell <nathan@codesourcery.com>
12032 * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
12033 (Weffc++): Remove Scott's numbering, merge lists and reference
12036 2014-04-03 Nick Clifton <nickc@redhat.com>
12038 * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
12041 2014-04-03 Martin Jambor <mjambor@suse.cz>
12043 * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
12044 mention gcc_unreachable before failing.
12045 * ipa.c (symtab_remove_unreachable_nodes): Also print order of
12048 2014-04-02 Jan Hubicka <hubicka@ucw.cz>
12051 * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
12052 inconsistent code and instead mark the context inconsistent.
12053 (possible_polymorphic_call_targets): For inconsistent contexts
12054 return empty complete list.
12056 2014-04-02 Anthony Green <green@moxielogic.com>
12058 * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
12059 (extendqisi2, extendhisi2): Define.
12060 * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
12061 (WCHAR_TYPE): Change to unsigned int.
12063 2014-04-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12065 PR tree-optimization/60733
12066 * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
12067 insertion point for PHI candidates to be the end of the feeding
12068 block for the PHI argument.
12070 2014-04-02 Vladimir Makarov <vmakarov@redhat.com>
12072 PR rtl-optimization/60650
12073 * lra-constraints.c (process_alt_operands): Decrease reject for
12074 earlyclobber matching.
12076 2014-04-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12078 * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
12080 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12082 * config/spu/spu.c (pad_bb): Do not crash when the last
12083 insn is CODE_FOR_blockage.
12085 2014-04-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12087 * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
12088 lies outside the target mode.
12090 2014-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12093 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
12094 software floating point or no floating point registers, do not
12095 allow any type in the FPRs. Eliminate a test for SPE SIMD types
12096 in GPRs that occurs after we tested for GPRs that would never be
12099 * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
12100 Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
12101 since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE,
12102 specifically allow DDmode, since that does not use the SPE SIMD
12105 2014-04-02 Richard Biener <rguenther@suse.de>
12107 PR middle-end/60729
12108 * optabs.c (expand_abs_nojump): Honor flag_trapv only for
12109 MODE_INTs. Properly use negv_optab.
12110 (expand_abs): Likewise.
12112 2014-04-02 Richard Biener <rguenther@suse.de>
12115 * Makefile.in (install-driver): Guard extra installs with special
12118 2014-04-01 Michael Meissner <meissner@linux.vnet.ibm.com>
12120 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12121 Document vec_vgbbd.
12123 2014-04-01 Richard Henderson <rth@redhat.com>
12126 * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
12127 alternative enabled before register allocation.
12129 2014-04-01 Chung-Lin Tang <cltang@codesourcery.com>
12131 * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
12132 * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
12134 (nios2_large_got_address): Remove unneeded 'sym' parameter.
12135 (nios2_got_address): Update nios2_large_got_address call site.
12136 (nios2_delegitimize_address): New function.
12137 (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
12138 * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
12139 (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
12141 2014-04-01 Martin Husemann <martin@duskware.de>
12143 * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
12146 2014-04-01 Richard Sandiford <rdsandiford@googlemail.com>
12148 PR rtl-optimization/60604
12149 * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
12150 check from register_operand.
12151 (register_operand): Redefine in terms of general_operand.
12152 (nonmemory_operand): Use register_operand for the non-constant cases.
12154 2014-04-01 Richard Biener <rguenther@suse.de>
12156 * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
12158 2014-04-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
12160 * doc/invoke.texi (mapp-regs): Clarify.
12162 2014-03-31 Ulrich Drepper <drepper@gmail.com>
12164 * config/i386/avx512fintrin.h (__v32hi): Define type.
12165 (__v64qi): Likewise.
12166 (_mm512_set1_epi8): Define.
12167 (_mm512_set1_epi16): Define.
12168 (_mm512_set4_epi32): Define.
12169 (_mm512_set4_epi64): Define.
12170 (_mm512_set4_pd): Define.
12171 (_mm512_set4_ps): Define.
12172 (_mm512_setr4_epi64): Define.
12173 (_mm512_setr4_epi32): Define.
12174 (_mm512_setr4_pd): Define.
12175 (_mm512_setr4_ps): Define.
12176 (_mm512_setzero_epi32): Define.
12178 2014-03-31 Martin Jambor <mjambor@suse.cz>
12180 PR middle-end/60647
12181 * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
12182 callsite_arguments_match_p. Updated all callers. Also check types of
12183 corresponding formal parameters and actual arguments.
12184 (not_all_callers_have_enough_arguments_p) Renamed to
12185 some_callers_have_mismatched_arguments_p.
12187 2014-03-31 Yuri Rumyantsev <ysrumyan@gmail.com>
12189 * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
12191 2014-03-31 Kugan Vivekanandarajah <kuganv@linaro.org>
12194 * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
12197 2014-03-30 Uros Bizjak <ubizjak@gmail.com>
12199 * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
12200 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
12202 <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
12203 Use FMAMODE_NOVF512 mode iterator.
12204 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
12205 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
12206 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
12207 (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
12209 <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
12210 Use VF_128_256 mode iterator.
12211 (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
12214 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
12216 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
12217 static chain if needed.
12219 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
12222 * lra-constraints.c (index_part_to_reg): New.
12223 (process_address): Use it.
12225 2014-03-27 Jeff Law <law@redhat.com>
12226 Jakub Jelinek <jakub@redhat.com>
12229 * expr.c (do_tablejump): Use simplify_gen_binary rather than
12230 gen_rtx_{PLUS,MULT} to build up the address expression.
12232 * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
12233 creating non-canonical RTL.
12235 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
12238 * ipa-inline.c (want_inline_small_function_p): Short circuit large
12239 functions; reorganize to make cheap checks first.
12240 (inline_small_functions): Do not estimate growth when dumping;
12242 * ipa-inline.h (inline_summary): Add min_size.
12243 (growth_likely_positive): New function.
12244 * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
12245 (set_cond_stmt_execution_predicate): Cleanup.
12246 (estimate_edge_size_and_time): Compute min_size.
12247 (estimate_calls_size_and_time): Likewise.
12248 (estimate_node_size_and_time): Likewise.
12249 (inline_update_overall_summary): Update min_size.
12250 (do_estimate_edge_time): Likewise.
12251 (do_estimate_edge_size): Update.
12252 (do_estimate_edge_hints): Update.
12253 (growth_likely_positive): New function.
12255 2014-03-28 Jakub Jelinek <jakub@redhat.com>
12258 * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
12259 also if addr has VOIDmode.
12261 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12263 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
12264 * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
12266 * config/arm/cortex-a53.md: Add reservations and bypass for crypto
12267 instructions as well as AdvancedSIMD loads.
12269 2014-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12271 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
12272 Use crypto_aese type.
12273 (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
12274 * config/arm/arm.md (is_neon_type): Replace crypto_aes with
12275 crypto_aese, crypto_aesmc. Move to types.md.
12276 * config/arm/types.md (crypto_aes): Split into crypto_aese,
12278 * config/arm/iterators.md (crypto_type): Likewise.
12280 2014-03-28 Jan Hubicka <hubicka@ucw.cz>
12282 * cgraph.c: Include expr.h and tree-dfa.h.
12283 (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
12286 2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
12289 * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
12290 regs from checking multi-reg pseudos.
12292 2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12294 * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
12296 2014-03-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12298 * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
12299 if it would clobber the stack pointer, even temporarily.
12301 2014-03-28 Eric Botcazou <ebotcazou@adacore.com>
12303 * mode-switching.c: Make small adjustments to the top comment.
12305 2014-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
12307 * config/rs6000/constraints.md (wD constraint): New constraint to
12308 match the constant integer to get the top DImode/DFmode out of a
12309 vector in a VSX register.
12311 * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
12312 match the constant integer to get the top DImode/DFmode out of a
12313 vector in a VSX register.
12315 * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
12318 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12321 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
12322 -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
12324 * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
12325 Optimize vec_extract of 64-bit values, where the value being
12326 extracted is in the top word, where we can use scalar
12327 instructions. Add direct move and store support. Combine the big
12328 endian/little endian vector select load support into a single insn.
12329 (vsx_extract_<mode>_internal1): Likewise.
12330 (vsx_extract_<mode>_internal2): Likewise.
12331 (vsx_extract_<mode>_load): Likewise.
12332 (vsx_extract_<mode>_store): Likewise.
12333 (vsx_extract_<mode>_zero): Delete, big and little endian insns are
12334 combined into vsx_extract_<mode>_load.
12335 (vsx_extract_<mode>_one_le): Likewise.
12337 * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
12338 define the top 64-bit vector element.
12340 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
12343 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12344 Document vec_vbpermq builtin.
12347 * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
12348 enable use of xxsldwi and xxpermdi builtin functions.
12349 (vec_xxpermdi): Likewise.
12351 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12352 Document use of vec_xxsldwi and vec_xxpermdi builtins.
12354 2014-03-27 Vladimir Makarov <vmakarov@redhat.com>
12356 PR rtl-optimization/60650
12357 * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
12359 (find_spills_for): New.
12360 (assign_by_spills): Pass the new parameter to find_hard_regno_for.
12361 Spill all pseudos on the second iteration.
12363 2014-03-27 Marek Polacek <polacek@redhat.com>
12366 * doc/extend.texi (ffs Builtins): Change unsigned types to signed
12369 2014-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12371 * config/s390/s390.c (s390_can_use_return_insn): Check for
12372 call-saved FPRs on 31 bit.
12374 2014-03-27 Jakub Jelinek <jakub@redhat.com>
12376 PR middle-end/60682
12377 * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
12378 if they need regimplification, just drop them instead of
12379 calling gimple_regimplify_operands on them.
12381 2014-03-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
12384 * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
12385 (aarch64_frame_pointer_required): Adjust logic.
12386 (aarch64_can_eliminate): Adjust logic.
12387 (aarch64_override_options_after_change): Adjust logic.
12389 2014-03-27 Dehao Chen <dehao@google.com>
12391 * ipa-inline.c (early_inliner): Update node's inline info.
12393 2014-03-26 Dehao Chen <dehao@google.com>
12395 * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
12396 compiler inserted conditional jumps for NAN float check.
12398 2014-03-26 Jakub Jelinek <jakub@redhat.com>
12400 * ubsan.h (ubsan_create_data): Change second argument's type
12401 to const location_t *.
12402 * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
12404 (ubsan_create_data): Change second argument to const location_t *PLOC.
12405 Create Loc field whenever PLOC is non-NULL.
12406 (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
12407 ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
12411 * real.c (real_to_integer2): Change type of low to UHWI.
12413 2014-03-26 Tobias Burnus <burnus@net-b.de>
12415 * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
12416 (CILK_SELF_SPECS): New define.
12417 (driver_self_specs): Use it.
12419 2014-03-26 Richard Biener <rguenther@suse.de>
12421 * tree-pretty-print.c (percent_K_format): Implement special
12422 case for LTO and its stripped down BLOCK tree.
12424 2014-03-26 Jakub Jelinek <jakub@redhat.com>
12427 * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
12429 * tree-vrp.c (simplify_internal_call_using_ranges): If only
12430 one range is range_int_cst_p, but not both, at least optimize
12431 addition/subtraction of 0 and multiplication by 0 or 1.
12432 * gimple-fold.c (gimple_fold_call): Fold
12433 IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
12434 (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
12435 INTEGER_CSTs, try to fold at least x * 0 and y - y.
12437 2014-03-26 Eric Botcazou <ebotcazou@adacore.com>
12439 PR rtl-optimization/60452
12440 * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
12441 <case REG>: Return 1 for invalid offsets from the frame pointer.
12443 2014-03-26 Marek Polacek <polacek@redhat.com>
12446 * doc/extend.texi (C Extensions): Mention variable-length arrays in
12449 2014-03-26 Marek Polacek <polacek@redhat.com>
12452 * doc/extend.texi (Designated Inits): Describe what happens to omitted
12455 2014-03-26 Marek Polacek <polacek@redhat.com>
12458 * ira-color.c (update_conflict_hard_regno_costs): Perform the
12459 multiplication in unsigned type.
12461 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
12463 * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
12465 2014-03-26 Chung-Ju Wu <jasonwucj@gmail.com>
12467 * doc/contrib.texi: Add myself as Andes nds32 port contributor.
12469 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
12472 * cif-code.def (UNREACHABLE) New code.
12473 * ipa-inline.c (inline_small_functions): Skip edges to
12474 __builtlin_unreachable.
12475 (estimate_edge_growth): Allow edges to __builtlin_unreachable.
12476 * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
12477 predicate to __bulitin_unreachable.
12478 (set_cond_stmt_execution_predicate): Fix issue when
12479 invert_tree_comparison returns ERROR_MARK.
12480 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
12481 propagate to inline clones.
12482 * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
12484 * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
12485 * cgraphclones.c (cgraph_clone_node): If call destination is already
12486 ureachable, do not redirect it back.
12487 * tree-inline.c (fold_marked_statements): Hanlde calls becoming
12490 2014-03-25 Jan Hubicka <hubicka@ucw.cz>
12492 * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
12493 Do not modify inline clones.
12495 2014-03-25 Jakub Jelinek <jakub@redhat.com>
12497 * config/i386/i386.md (general_sext_operand): New mode attr.
12498 (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
12499 don't generate (sign_extend (const_int)).
12500 (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
12501 operands[2]. Use We constraint instead of <i> and
12502 <general_sext_operand> predicate instead of <general_operand>.
12503 (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
12504 * config/i386/constraints.md (We): New constraint.
12505 * config/i386/predicates.md (x86_64_sext_operand,
12506 sext_operand): New predicates.
12508 2014-03-25 Martin Jambor <mjambor@suse.cz>
12511 * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
12512 inconsistent devirtualizations to __builtin_unreachable.
12514 2014-03-25 Marek Polacek <polacek@redhat.com>
12517 * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
12519 2014-03-25 Alan Lawrence <alan.lawrence@arm.com>
12521 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
12522 order of elements for big-endian.
12524 2014-03-25 Richard Biener <rguenther@suse.de>
12526 PR middle-end/60635
12527 * gimplify-me.c (gimple_regimplify_operands): Update the
12530 2014-03-25 Martin Jambor <mjambor@suse.cz>
12533 * lto-cgraph.c (lto_output_node): Stream body_removed flag.
12534 (lto_output_varpool_node): Likewise.
12535 (input_overwrite_node): Likewise.
12536 (input_varpool_node): Likewise.
12538 2014-03-25 Richard Biener <rguenther@suse.de>
12540 * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
12541 (run_gcc): Likewise.
12543 2014-03-25 Jakub Jelinek <jakub@redhat.com>
12545 * combine.c (simplify_compare_const): Add MODE argument.
12546 Handle mode_width 0 as very large mode_width.
12547 (try_combine, simplify_comparison): Adjust callers.
12549 * cselib.c (cselib_hash_rtx): Perform addition in unsigned
12550 type to avoid signed integer overflow.
12551 * explow.c (plus_constant): Likewise.
12553 2014-03-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
12555 * doc/generic.texi: Correct typos.
12557 2014-03-24 Tobias Burnus <burnus@net-b.de>
12559 * doc/invoke.texi (-flto): Expand section about
12560 using static libraries with LTO.
12562 2014-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12564 PR rtl-optimization/60501
12565 * optabs.def (addptr3_optab): New optab.
12566 * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
12567 * doc/md.texi ("addptrm3"): Document new RTL standard expander.
12568 * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
12570 * lra.c (emit_add3_insn): Use the addptr pattern if available.
12572 * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
12574 2014-03-24 Ulrich Drepper <drepper@gmail.com>
12576 * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
12579 * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
12580 (_mm256_undefined_ps): Define.
12581 (_mm256_undefined_pd): Define.
12582 * config/i386/emmintrin.h (_mm_undefined_si128): Define.
12583 (_mm_undefined_pd): Define.
12584 * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
12585 * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
12586 (_mm512_undefined_ps): Define.
12587 (_mm512_undefined_pd): Define.
12588 Use _mm*_undefined_*.
12589 * config/i386/avx2intrin.h: Use _mm*_undefined_*.
12591 2014-03-24 Alex Velenko <Alex.Velenko@arm.com>
12593 * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
12594 (lshr_simd): DI mode added.
12595 * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
12596 (aarch64_ushr_simddi): Likewise.
12597 * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
12598 * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
12599 (vshrd_n_u64): Likewise.
12601 2014-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12603 * Makefile.in (s-macro_list): Depend on cc1.
12605 2014-03-23 Teresa Johnson <tejohnson@google.com>
12607 * ipa-utils.c (ipa_print_order): Use specified dump file.
12609 2014-03-23 Eric Botcazou <ebotcazou@adacore.com>
12611 PR rtl-optimization/60601
12612 * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
12614 * gcc.c (eval_spec_function): Initialize save_growing_value.
12616 2014-03-22 Jakub Jelinek <jakub@redhat.com>
12619 * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
12620 code == MINUS_EXPR, never swap op0 with op1.
12622 * toplev.c (init_local_tick): Avoid signed integer multiplication
12624 * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
12625 shift by first operand's bitsize.
12627 2014-03-21 Jakub Jelinek <jakub@redhat.com>
12630 * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
12631 redefine to 1 or 0.
12632 * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
12633 TARGET_ISA_64BIT_P(x).
12635 2014-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12637 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
12638 pattern for vector nor instead of subtract from splat(-1).
12639 (altivec_expand_vec_perm_const_le): Likewise.
12641 2014-03-21 Richard Henderson <rth@twiddle.net>
12644 * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
12645 related insns after epilogue_completed.
12647 2014-03-21 Martin Jambor <mjambor@suse.cz>
12650 * cgraph.h (symtab_node): New flag body_removed.
12651 * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
12652 when removing bodies.
12653 * symtab.c (dump_symtab_base): Dump body_removed flag.
12654 * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
12655 had their bodies removed.
12657 2014-03-21 Martin Jambor <mjambor@suse.cz>
12660 * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
12663 2014-03-21 Richard Biener <rguenther@suse.de>
12665 PR tree-optimization/60577
12666 * tree-core.h (struct tree_base): Document nothrow_flag use
12667 in DECL_NONALIASED.
12668 * tree.h (DECL_NONALIASED): New.
12669 (may_be_aliased): Adjust.
12670 * coverage.c (build_var): Set DECL_NONALIASED.
12672 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
12674 * expr.c (expand_expr_real_1): Remove outdated comment.
12676 2014-03-20 Jakub Jelinek <jakub@redhat.com>
12678 PR middle-end/60597
12679 * ira.c (adjust_cleared_regs): Call copy_rtx on
12680 *reg_equiv[REGNO (loc)].src_p before passing it to
12681 simplify_replace_fn_rtx.
12684 * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
12685 into CONST, put pic register as first operand of PLUS. Use
12686 gen_const_mem for both 32-bit and 64-bit PIC got loads.
12688 2014-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12690 * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
12692 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
12694 * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
12695 around for store forwarding issue in the FPU on the UT699.
12696 * config/sparc/sparc.md (in_branch_delay): Return false for single FP
12697 loads and operations if -mfix-ut699 is specified.
12698 (divtf3_hq): Tweak attribute.
12699 (sqrttf2_hq): Likewise.
12701 2014-03-20 Eric Botcazou <ebotcazou@adacore.com>
12703 * calls.c (store_one_arg): Remove incorrect const qualification on the
12704 type of the temporary.
12705 * cfgexpand.c (expand_return): Likewise.
12706 * expr.c (expand_constructor): Likewise.
12707 (expand_expr_real_1): Likewise.
12709 2014-03-20 Zhenqiang Chen <zhenqiang.chen@linaro.org>
12711 * config/arm/arm.c (arm_dwarf_register_span): Update the element number
12714 2014-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
12717 * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
12719 2014-03-19 James Greenhalgh <james.greenhalgh@arm.com>
12721 * config/arm/aarch-common-protos.h
12722 (alu_cost_table): Fix spelling of "extend".
12723 * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
12725 2014-03-19 Richard Biener <rguenther@suse.de>
12727 PR middle-end/60553
12728 * tree-core.h (tree_type_common): Re-order pointer members
12729 to reduce recursion depth during GC walks.
12731 2014-03-19 Marek Polacek <polacek@redhat.com>
12734 * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
12735 before accessing it.
12737 2014-03-19 Richard Biener <rguenther@suse.de>
12740 * lto-streamer-in.c (input_function): In WPA stage do not drop
12743 2014-03-19 Jakub Jelinek <jakub@redhat.com>
12745 PR tree-optimization/60559
12746 * vectorizable_mask_load_store): Replace scalar MASK_LOAD
12747 with build_zero_cst assignment.
12749 2014-03-18 Kai Tietz <ktietz@redhat.com>
12751 PR rtl-optimization/56356
12752 * sdbout.c (sdbout_parms): Verify that parms'
12753 incoming argument is valid.
12754 (sdbout_reg_parms): Likewise.
12756 2014-03-18 Richard Henderson <rth@redhat.com>
12759 * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
12760 be shadowed by *float<SWI48><MODEF>2_sse. Test X87_ENABLE_FLOAT.
12761 (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
12763 2014-03-18 Basile Starynkevitch <basile@starynkevitch.net>
12765 * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
12766 * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
12767 Italicize plugin event names in description. Explain that
12768 PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE.
12769 Remind that no GCC functions should be called after PLUGIN_FINISH.
12770 Explain what pragmas with expansion are.
12772 2014-03-18 Martin Liska <mliska@suse.cz>
12774 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
12775 gimple call statement is update.
12776 * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
12777 GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
12779 2014-03-18 Jakub Jelinek <jakub@redhat.com>
12782 * ubsan.c (ubsan_instrument_unreachable): Call
12783 initialize_sanitizer_builtins.
12784 (ubsan_pass): Likewise.
12787 * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
12788 varpool_finalize_decl instead of rest_of_decl_compilation.
12790 2014-03-18 Richard Biener <rguenther@suse.de>
12792 * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
12793 by using bitmap_and_compl instead of bitmap_and_compl_into.
12794 (df_rd_transfer_function): Likewise.
12796 2014-03-18 Richard Biener <rguenther@suse.de>
12798 * doc/lto.texi (fresolution): Fix typo.
12800 2014-03-18 Richard Biener <rguenther@suse.de>
12802 * doc/invoke.texi (flto): Update for changes in 4.9.
12804 2014-03-18 Richard Biener <rguenther@suse.de>
12806 * doc/loop.texi: Remove section on the removed lambda framework.
12807 Update loop docs with recent changes in preserving loop structure.
12809 2014-03-18 Richard Biener <rguenther@suse.de>
12811 * doc/lto.texi (-fresolution): Document.
12813 2014-03-18 Richard Biener <rguenther@suse.de>
12815 * doc/contrib.texi: Adjust my name.
12817 2014-03-18 Jakub Jelinek <jakub@redhat.com>
12820 * internal-fn.c: Include diagnostic-core.h.
12821 (expand_BUILTIN_EXPECT): New function.
12822 * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
12823 (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
12824 IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
12825 * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
12826 IFN_BUILTIN_EXPECT.
12827 * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
12828 Revert 3 argument __builtin_expect code.
12829 (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
12830 * gimple-fold.c (gimple_fold_call): Likewise.
12831 * tree.h (fold_builtin_expect): New prototype.
12832 * builtins.c (build_builtin_expect_predicate): Add predictor
12833 argument, if non-NULL, create 3 argument __builtin_expect.
12834 (fold_builtin_expect): No longer static. Add ARG2 argument,
12835 pass it through to build_builtin_expect_predicate.
12836 (fold_builtin_2): Adjust caller.
12837 (fold_builtin_3): Handle BUILT_IN_EXPECT.
12838 * internal-fn.def (BUILTIN_EXPECT): New.
12840 2014-03-18 Tobias Burnus <burnus@net-b.de>
12843 * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
12844 PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
12845 PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
12847 2014-03-18 Jan Hubicka <hubicka@ucw.cz>
12850 * predict.c (combine_predictions_for_bb): Fix up formatting.
12851 (expr_expected_value_1, expr_expected_value): Add predictor argument,
12852 fill what it points to if non-NULL.
12853 (tree_predict_by_opcode): Adjust caller, use the predictor.
12854 * predict.def (PRED_COMPARE_AND_SWAP): Add.
12856 2014-03-18 Eric Botcazou <ebotcazou@adacore.com>
12858 * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
12859 proper constant for the store mode.
12861 2014-03-18 Ilya Enkovich <ilya.enkovich@intel.com>
12863 * symtab.c (change_decl_assembler_name): Fix transparent alias
12864 chain construction.
12866 2014-03-16 Renlin Li <Renlin.Li@arm.com>
12868 * config/aarch64/aarch64.c: Correct the comments about the
12869 aarch64 stack layout.
12871 2014-03-18 Thomas Schwinge <thomas@codesourcery.com>
12873 * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
12874 check for GF_OMP_FOR_KIND_FOR.
12876 2013-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
12878 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
12879 ymm and zmm register names.
12881 2014-03-17 Jakub Jelinek <jakub@redhat.com>
12884 * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
12885 note creation for the 2010-08-31 changes.
12887 2014-03-17 Marek Polacek <polacek@redhat.com>
12889 PR middle-end/60534
12890 * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
12891 as -fno-tree-loop-vectorize.
12892 (expand_omp_simd): Likewise.
12894 2014-03-15 Eric Botcazou <ebotcazou@adacore.com>
12896 * config/sparc/sparc-protos.h (tls_call_delay): Delete.
12897 (eligible_for_call_delay): New prototype.
12898 * config/sparc/sparc.c (tls_call_delay): Rename into...
12899 (eligible_for_call_delay): ...this. Return false if the instruction
12900 cannot be put in the delay slot of a branch.
12901 (eligible_for_restore_insn): Simplify.
12902 (eligible_for_return_delay): Return false if the instruction cannot be
12903 put in the delay slot of a branch and simplify.
12904 (eligible_for_sibcall_delay): Return false if the instruction cannot be
12905 put in the delay slot of a branch.
12906 * config/sparc/sparc.md (fix_ut699): New attribute.
12907 (tls_call_delay): Delete.
12908 (in_call_delay): Reimplement.
12909 (eligible_for_sibcall_delay): Rename into...
12910 (in_sibcall_delay): ...this.
12911 (eligible_for_return_delay): Rename into...
12912 (in_return_delay): ...this.
12913 (in_branch_delay): Reimplement.
12914 (in_uncond_branch_delay): Delete.
12915 (in_annul_branch_delay): Delete.
12917 2014-03-14 Richard Henderson <rth@redhat.com>
12920 * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
12921 define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
12922 (*floathi<X87MODEF>2_i387_with_temp): Remove.
12923 (floathi splitters): Remove.
12924 (float<SWI48x>xf2): New pattern.
12925 (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2. Drop
12926 code that tried to handle DImode for 32-bit, but which was excluded
12927 by the pattern's condition. Drop allocation of stack temporary.
12928 (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
12929 (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
12930 (*float<SWI48><MODEF>2_mixed_interunit): Remove.
12931 (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
12932 (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
12933 (*float<SWI48><MODEF>2_sse_with_temp): Remove.
12934 (*float<SWI48><MODEF>2_sse_interunit): Remove.
12935 (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
12936 (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
12937 (*float<SWI48x><X87MODEF>2_i387): Remove.
12938 (all float _with_temp splitters): Remove.
12939 (*float<SWI48x><MODEF>2_i387): New pattern.
12940 (*float<SWI48><MODEF>2_sse): New pattern.
12941 (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
12942 (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
12944 2014-03-14 Jakub Jelinek <jakub@redhat.com>
12945 Marek Polacek <polacek@redhat.com>
12947 PR middle-end/60484
12948 * common.opt (dump_base_name_prefixed): New Variable.
12949 * opts.c (finish_options): Don't prepend directory to x_dump_base_name
12950 if x_dump_base_name_prefixed is already set, set it at the end.
12952 2014-03-14 Vladimir Makarov <vmakarov@redhat.com>
12954 PR rtl-optimization/60508
12955 * lra-constraints.c (get_reload_reg): Add new parameter
12957 (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
12958 Pass the new parameter values.
12960 2014-03-14 Richard Biener <rguenther@suse.de>
12962 * common.opt: Revert unintented changes from r205065.
12963 * opts.c: Likewise.
12965 2014-03-14 Richard Biener <rguenther@suse.de>
12967 PR middle-end/60518
12968 * cfghooks.c (split_block): Properly adjust all loops the
12969 block was a latch of.
12971 2014-03-14 Martin Jambor <mjambor@suse.cz>
12974 * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
12977 2014-03-14 Georg-Johann Lay <avr@gjlay.de>
12980 * config/avr/avr.c (avr_set_current_function): Pass function name
12981 through default_strip_name_encoding before sanity checking instead
12982 of skipping the first char of the assembler name.
12984 2014-03-13 Richard Henderson <rth@redhat.com>
12987 * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
12988 (ix86_force_to_memory, ix86_free_from_memory): Remove.
12989 * config/i386/i386-protos.h: Likewise.
12990 * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
12991 in the expander instead of a splitter.
12992 (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
12993 any possibility of requiring a memory.
12994 (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
12995 (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
12996 (fp branch splitters): Update for ix86_split_fp_branch.
12997 (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
12998 (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
12999 (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
13000 (*fop_<MODEF>_2_i387): Remove f/r alternative.
13001 (*fop_<MODEF>_3_i387): Likewise.
13002 (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
13003 (splitters for the fop_* register patterns): Remove.
13004 (fscalexf4_i387): Rename from *fscalexf4_i387.
13005 (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
13007 2014-03-13 Jakub Jelinek <jakub@redhat.com>
13009 PR tree-optimization/59779
13010 * tree-dfa.c (get_ref_base_and_extent): Use double_int
13011 type for bitsize and maxsize instead of HOST_WIDE_INT.
13013 2014-03-13 Steven Bosscher <steven@gcc.gnu.org>
13015 PR rtl-optimization/57320
13016 * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
13017 the CFG after thread_prologue_and_epilogue_insns.
13019 2014-03-13 Vladimir Makarov <vmakarov@redhat.com>
13021 PR rtl-optimization/57189
13022 * lra-constraints.c (process_alt_operands): Disfavor spilling
13025 2014-03-13 Cesar Philippidis <cesar@codesourcery.com>
13027 * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
13029 2014-03-13 Jakub Jelinek <jakub@redhat.com>
13031 PR tree-optimization/59025
13032 PR middle-end/60418
13033 * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
13034 same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
13036 2014-03-13 Georg-Johann Lay <avr@gjlay.de>
13039 * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
13040 calls of avr_out_plus_1.
13042 2014-03-13 Bin Cheng <bin.cheng@arm.com>
13044 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
13045 BB's single pred and update the father loop's latch info later.
13047 2014-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
13049 * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
13053 (VEC_base): Likewise.
13054 (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
13055 registers, we need to swap double words in little endian mode.
13057 * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
13058 to be a container mode for 128-bit integer operations added in ISA
13059 2.07. Unlike TImode and PTImode, the preferred register set is
13060 the Altivec/VMX registers for the 128-bit operations.
13062 * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
13064 (rs6000_split_128bit_ok_p): Likewise.
13066 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
13067 macros for creating ISA 2.07 normal and overloaded builtin
13068 functions with 3 arguments.
13069 (BU_P8V_OVERLOAD_3): Likewise.
13070 (VPERM_1T): Add support for V1TImode in 128-bit vector operations
13071 for use as overloaded functions.
13072 (VPERM_1TI_UNS): Likewise.
13073 (VSEL_1TI): Likewise.
13074 (VSEL_1TI_UNS): Likewise.
13075 (ST_INTERNAL_1ti): Likewise.
13076 (LD_INTERNAL_1ti): Likewise.
13077 (XXSEL_1TI): Likewise.
13078 (XXSEL_1TI_UNS): Likewise.
13079 (VPERM_1TI): Likewise.
13080 (VPERM_1TI_UNS): Likewise.
13081 (XXPERMDI_1TI): Likewise.
13082 (SET_1TI): Likewise.
13083 (LXVD2X_V1TI): Likewise.
13084 (STXVD2X_V1TI): Likewise.
13085 (VEC_INIT_V1TI): Likewise.
13086 (VEC_SET_V1TI): Likewise.
13087 (VEC_EXT_V1TI): Likewise.
13088 (EQV_V1TI): Likewise.
13089 (NAND_V1TI): Likewise.
13090 (ORC_V1TI): Likewise.
13091 (VADDCUQ): Add support for 128-bit integer arithmetic instructions
13092 added in ISA 2.07. Add both normal 'altivec' builtins, and the
13093 overloaded builtin.
13094 (VADDUQM): Likewise.
13095 (VSUBCUQ): Likewise.
13096 (VADDEUQM): Likewise.
13097 (VADDECUQ): Likewise.
13098 (VSUBEUQM): Likewise.
13099 (VSUBECUQ): Likewise.
13101 * config/rs6000/rs6000-c.c (__int128_type): New static to hold
13102 __int128_t and __uint128_t types.
13103 (__uint128_type): Likewise.
13104 (altivec_categorize_keyword): Add support for vector __int128_t,
13105 vector __uint128_t, vector __int128, and vector unsigned __int128
13106 as a container type for TImode operations that need to be done in
13107 VSX/Altivec registers.
13108 (rs6000_macro_to_expand): Likewise.
13109 (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
13110 to support 128-bit integer instructions vaddcuq, vadduqm,
13111 vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
13112 (altivec_resolve_overloaded_builtin): Add support for V1TImode.
13114 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
13115 for V1TImode, and set up preferences to use VSX/Altivec registers.
13116 Setup VSX reload handlers.
13117 (rs6000_debug_reg_global): Likewise.
13118 (rs6000_init_hard_regno_mode_ok): Likewise.
13119 (rs6000_preferred_simd_mode): Likewise.
13120 (vspltis_constant): Do not allow V1TImode as easy altivec constants.
13121 (easy_altivec_constant): Likewise.
13122 (output_vec_const_move): Likewise.
13123 (rs6000_expand_vector_set): Convert V1TImode set and extract to
13125 (rs6000_expand_vector_extract): Likewise.
13126 (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
13128 (rs6000_const_vec): Add support for V1TImode.
13129 (rs6000_emit_le_vsx_load): Swap double words when loading or
13130 storing TImode/V1TImode.
13131 (rs6000_emit_le_vsx_store): Likewise.
13132 (rs6000_emit_le_vsx_move): Likewise.
13133 (rs6000_emit_move): Add support for V1TImode.
13134 (altivec_expand_ld_builtin): Likewise.
13135 (altivec_expand_st_builtin): Likewise.
13136 (altivec_expand_vec_init_builtin): Likewise.
13137 (altivec_expand_builtin): Likewise.
13138 (rs6000_init_builtins): Add support for V1TImode type. Add
13139 support for ISA 2.07 128-bit integer builtins. Define type names
13140 for the VSX/Altivec vector types.
13141 (altivec_init_builtins): Add support for overloaded vector
13142 functions with V1TImode type.
13143 (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
13144 (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
13146 (rs6000_split_128bit_ok_p): Likewise.
13147 (rs6000_handle_altivec_attribute): Create V1TImode from vector
13148 __int128_t and vector __uint128_t.
13150 * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
13151 and mode attributes.
13153 (VSX_M2): Likewise.
13158 (VS_scalar): Likewise.
13159 (VS_double): Likewise.
13160 (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
13162 * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
13163 we support the ISA 2.07 128-bit integer arithmetic instructions.
13164 (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
13165 (enum rs6000_builtin_type_index): Add fields to hold V1TImode
13166 and TImode types for use with the builtin functions.
13167 (V1TI_type_node): Likewise.
13168 (unsigned_V1TI_type_node): Likewise.
13169 (intTI_type_internal_node): Likewise.
13170 (uintTI_type_internal_node): Likewise.
13172 * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
13173 128-bit builtin functions.
13174 (UNSPEC_VADDEUQM): Likewise.
13175 (UNSPEC_VADDECUQ): Likewise.
13176 (UNSPEC_VSUBCUQ): Likewise.
13177 (UNSPEC_VSUBEUQM): Likewise.
13178 (UNSPEC_VSUBECUQ): Likewise.
13179 (VM): Add V1TImode to vector mode iterators.
13181 (VI_unit): Likewise.
13182 (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
13183 (altivec_vaddcuq): Likewise.
13184 (altivec_vsubuqm): Likewise.
13185 (altivec_vsubcuq): Likewise.
13186 (altivec_vaddeuqm): Likewise.
13187 (altivec_vaddecuq): Likewise.
13188 (altivec_vsubeuqm): Likewise.
13189 (altivec_vsubecuq): Likewise.
13191 * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
13193 (BOOL_128): Likewise.
13194 (BOOL_REGS_OUTPUT): Likewise.
13195 (BOOL_REGS_OP1): Likewise.
13196 (BOOL_REGS_OP2): Likewise.
13197 (BOOL_REGS_UNARY): Likewise.
13198 (BOOL_REGS_AND_CR0): Likewise.
13200 * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
13201 128-bit integer builtin support.
13202 (vec_vadduqm): Likewise.
13203 (vec_vaddecuq): Likewise.
13204 (vec_vaddeuqm): Likewise.
13205 (vec_vsubecuq): Likewise.
13206 (vec_vsubeuqm): Likewise.
13207 (vec_vsubcuq): Likewise.
13208 (vec_vsubuqm): Likewise.
13210 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13211 Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
13212 vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
13213 128-bit integer add/subtract to ISA 2.07.
13215 2014-03-12 Joern Rennecke <joern.rennecke@embecosm.com>
13217 * config/arc/arc.c (arc_predicate_delay_insns):
13218 Fix third argument passed to conditionalize_nonjump.
13220 2014-03-12 Yufeng Zhang <yufeng.zhang@arm.com>
13222 * config/aarch64/aarch64-builtins.c
13223 (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
13224 BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
13225 * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
13226 instead of __builtin_lfloor.
13227 (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
13229 2014-03-12 Jakub Jelinek <jakub@redhat.com>
13231 * tree-ssa-ifcombine.c (forwarder_block_to): New function.
13232 (tree_ssa_ifcombine_bb_1): New function.
13233 (tree_ssa_ifcombine_bb): Use it. Handle also cases where else_bb
13234 is an empty forwarder block to then_bb or vice versa and then_bb
13235 and else_bb are effectively swapped.
13237 2014-03-12 Christian Bruel <christian.bruel@st.com>
13240 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
13241 REG_CFA_DEF_CFA note.
13242 (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
13243 (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
13245 2014-03-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
13247 PR tree-optimization/60454
13248 * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
13250 2014-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13252 * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
13253 Do not define target_cpu_default2 to generic.
13254 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
13255 * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
13256 * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
13258 2014-03-12 Jakub Jelinek <jakub@redhat.com>
13259 Marc Glisse <marc.glisse@inria.fr>
13261 PR tree-optimization/60502
13262 * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
13263 instead of build_low_bits_mask.
13265 2014-03-12 Jakub Jelinek <jakub@redhat.com>
13267 PR middle-end/60482
13268 * tree-vrp.c (register_edge_assert_for_1): Don't add assert
13269 if there are multiple uses, but op doesn't live on E edge.
13270 * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
13271 clobber stmts before __builtin_unreachable.
13273 2014-03-11 Richard Sandiford <rdsandiford@googlemail.com>
13275 * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
13276 hard_frame_pointer_rtx.
13277 * cse.c (cse_insn): Remove volatile check.
13278 * cselib.c (cselib_process_insn): Likewise.
13279 * dse.c (scan_insn): Likewise.
13281 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
13283 * config/arc/arc.c (conditionalize_nonjump): New function,
13285 (arc_ifcvt): ... this.
13286 (arc_predicate_delay_insns): Use it.
13288 2014-03-11 Joern Rennecke <joern.rennecke@embecosm.com>
13290 * config/arc/predicates.md (extend_operand): During/after reload,
13291 allow const_int_operand.
13292 * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
13293 (umulsidi3_700): Likewise. Change operand 2 constraint back to "cL".
13294 (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
13296 (umulsi3_highpart_i): Likewise.
13298 2014-03-11 Richard Biener <rguenther@suse.de>
13300 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
13301 Add asserts to guard possible wrong-code bugs.
13303 2014-03-11 Richard Biener <rguenther@suse.de>
13305 PR tree-optimization/60429
13306 PR tree-optimization/60485
13307 * tree-ssa-structalias.c (set_union_with_increment): Properly
13308 take into account all fields that overlap the shifted vars.
13309 (do_sd_constraint): Likewise.
13310 (do_ds_constraint): Likewise.
13311 (get_constraint_for_ptr_offset): Likewise.
13313 2014-03-11 Chung-Lin Tang <cltang@codesourcery.com>
13315 * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
13316 (nios2_compute_frame_layout):
13317 Add calculation of cfun->machine->fp_save_offset.
13318 (nios2_expand_prologue): Correct setting of frame pointer register
13320 (nios2_expand_epilogue): Update recovery of stack pointer from
13321 frame pointer accordingly.
13322 (nios2_initial_elimination_offset): Update calculation of offset
13323 for eliminating to HARD_FRAME_POINTER_REGNUM.
13325 2014-03-10 Jakub Jelinek <jakub@redhat.com>
13328 * ipa.c (symtab_remove_unreachable_nodes): Don't call
13329 cgraph_get_create_node on VAR_DECLs.
13331 2014-03-10 Richard Biener <rguenther@suse.de>
13333 PR middle-end/60474
13334 * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
13336 2014-03-08 Douglas B Rupp <rupp@gnat.com>
13338 * config/vms/vms.opt (vms_float_format): New variable.
13340 2014-03-08 Tobias Burnus <burnus@net-b.de>
13342 * doc/invoke.texi (-fcilkplus): Update implementation status.
13344 2014-03-08 Paulo Matos <paulo@matos-sorge.com>
13345 Richard Biener <rguenther@suse.de>
13347 * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
13348 consistently accross all TUs.
13349 (run_gcc): Enable -fshort-double automatically at link at link-time
13350 and disallow override.
13352 2014-03-08 Richard Sandiford <rdsandiford@googlemail.com>
13355 * config/mips/mips.c (mips_option_override): Promote -mpaired-single
13356 warning to an error. Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
13357 if they can't be used.
13359 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13361 * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
13362 for Solaris 11/x86 ld.
13363 * configure: Regenerate.
13365 2014-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13367 * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
13368 (LIB_TLS_SPEC): Save as ld_tls_libs.
13369 (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
13370 (HAVE_AS_IX86_TLSLDM): New test.
13371 * configure, config.in: Regenerate.
13372 * config/i386/i386.c (legitimize_tls_address): Fall back to
13373 TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
13374 cannot support TLS_MODEL_LOCAL_DYNAMIC.
13375 * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
13376 instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
13378 2014-03-07 Paulo Matos <paulo@matos-sorge.com>
13380 * common.opt (fira-loop-pressure): Mark as optimization.
13382 2014-03-07 Thomas Schwinge <thomas@codesourcery.com>
13384 * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
13385 an OpenMP mappable type.
13387 2014-03-06 Matthias Klose <doko@ubuntu.com>
13389 * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
13390 MULTILIB_OSDIRNAMES is not defined.
13392 2014-03-06 Jakub Jelinek <jakub@redhat.com>
13393 Meador Inge <meadori@codesourcery.com>
13396 * config/arm/arm.c (arm_tls_symbol_p): Remove.
13397 (arm_legitimize_address): Call legitimize_tls_address for any
13398 arm_tls_referenced_p expression, handle constant addend. Call it
13399 before testing for !TARGET_ARM.
13400 (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
13402 2014-03-06 Richard Biener <rguenther@suse.de>
13404 PR middle-end/60445
13408 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
13410 * tree-streamer.c (record_common_node): Assert we don't record
13411 nodes with type double.
13412 (preload_common_node): Skip type double, complex double and double
13413 pointer since it is now frontend dependent due to fshort-double option.
13415 2014-03-06 Richard Biener <rguenther@suse.de>
13417 * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
13418 or -fno-lto is specified and the linker has full plugin support.
13419 * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
13420 (main): Remove -flto processing, adjust lto_mode using use_plugin late.
13421 * lto-wrapper.c (merge_and_complain): Merge compile-time
13422 optimization levels.
13423 (run_gcc): And pass it through to the link options.
13425 2014-03-06 Alexandre Oliva <aoliva@redhat.com>
13429 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
13431 * cselib.c (remove_useless_values): Skip to avoid quadratic
13432 behavior if the condition moved from...
13433 (cselib_process_insn): ... here holds.
13435 2014-03-05 Jakub Jelinek <jakub@redhat.com>
13438 * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
13439 ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
13442 * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
13443 (TM_H): Add x86-tune.def.
13445 2014-03-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13447 * config/aarch64/aarch64.c (generic_tunings):
13448 Use cortexa57_extra_costs.
13450 2014-03-05 Jakub Jelinek <jakub@redhat.com>
13453 * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
13454 of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
13455 * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
13458 2014-03-04 Heiher <r@hev.cc>
13460 * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
13461 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
13463 2014-03-04 Uros Bizjak <ubizjak@gmail.com>
13465 * config/i386/predicates.md (const2356_operand): Change to ...
13466 (const2367_operand): ... this.
13467 * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
13469 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13470 (*avx512pf_scatterpf<mode>sf): Ditto.
13471 (avx512pf_scatterpf<mode>df): Ditto.
13472 (*avx512pf_scatterpf<mode>df_mask): Ditto.
13473 (*avx512pf_scatterpf<mode>df): Ditto.
13474 * config/i386/i386.c (ix86_expand_builtin): Update
13475 incorrect hint operand error message.
13477 2014-03-04 Richard Biener <rguenther@suse.de>
13479 * lto-section-in.c (lto_get_section_data): Fix const cast.
13481 2014-03-04 Paulo Matos <paulo@matos-sorge.com>
13483 * tree-streamer.c (record_common_node): Assert we don't record
13484 nodes with type double.
13485 (preload_common_node): Skip type double, complex double and double
13486 pointer since it is now frontend dependent due to fshort-double option.
13488 2014-03-04 Richard Biener <rguenther@suse.de>
13491 * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
13492 (lto_input_toplevel_asms): Likewise.
13493 * lto-section-in.c (lto_get_section_data): Instead do it here
13496 2014-03-04 Richard Biener <rguenther@suse.de>
13498 PR tree-optimization/60382
13499 * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
13500 dead PHIs a reduction.
13502 2014-03-03 Uros Bizjak <ubizjak@gmail.com>
13504 * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
13506 (_mm_prefetch): Move out of GCC target("sse") pragma.
13507 * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
13508 GCC target("prfchw") pragma.
13509 * config/i386/i386.md (prefetch): Emit prefetchwt1 only
13511 * config/i386/i386.c (ix86_option_override_internal): Enable
13512 -mprfchw with -mprefetchwt1.
13514 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
13516 * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
13519 2014-03-03 Joern Rennecke <joern.rennecke@embecosm.com>
13521 * opts.h (CL_PCH_IGNORE): Define.
13522 * targhooks.c (option_affects_pch_p):
13523 Return false for options that have CL_PCH_IGNORE set.
13524 * opt-functions.awk: Process PchIgnore.
13525 * doc/options.texi: Document PchIgnore.
13527 * config/arc/arc.opt (misize): Add PchIgnore property.
13529 2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13531 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
13532 reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
13533 constraint on constants to permit them being loaded into
13534 GENERAL_REGS or BASE_REGS.
13536 2014-03-03 Nick Clifton <nickc@redhat.com>
13538 * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
13539 anti-cacnonical alternatives.
13540 (negandhi3_real): New pattern.
13541 * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
13543 2014-03-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13545 * config/avr/avr-mcus.def: Remove atxmega16x1.
13546 * config/avr/avr-tables.opt: Regenerate.
13547 * config/avr/t-multilib: Regenerate.
13548 * doc/avr-mmcu.texi: Regenerate.
13550 2014-03-03 Tobias Grosser <tobias@grosser.es>
13551 Mircea Namolaru <mircea.namolaru@inria.fr>
13553 PR tree-optimization/58028
13554 * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
13557 2014-03-03 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13559 * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
13560 not handled by recognizers.
13562 2014-03-03 Jakub Jelinek <jakub@redhat.com>
13564 PR middle-end/60175
13565 * function.c (expand_function_end): Don't emit
13566 clobber_return_register sequence if clobber_after is a BARRIER.
13567 * cfgexpand.c (construct_exit_block): Append instructions before
13568 return_label to prev_bb.
13570 2014-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13572 * config/rs6000/constraints.md: Document reserved use of "wc".
13574 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
13577 * ipa.c (function_and_variable_visibility): When dissolving comdat
13578 group, also set all symbols to local.
13580 2014-03-02 Jan Hubicka <hubicka@ucw.cz>
13585 2013-12-14 Jan Hubicka <jh@suse.cz>
13586 PR middle-end/58477
13587 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
13589 2014-03-02 Jon Beniston <jon@beniston.com>
13595 * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
13596 (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
13597 * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
13598 (simple_return, *simple_return): New patterns
13599 * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
13600 * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
13602 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
13604 * dwarf2out.c (gen_subprogram_die): Tidy.
13606 2014-03-01 Oleg Endo <olegendo@gcc.gnu.org>
13609 * config/sh/sh.md (*mov_t_msb_neg): Split into ...
13610 (*mov_t_msb_neg_negc): ... this new insn.
13612 2014-02-28 Jason Merrill <jason@redhat.com>
13615 * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
13618 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
13621 * dwarf2out.c (decltype_auto_die): New static.
13622 (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
13623 (gen_type_die_with_usage): Handle 'decltype(auto)'.
13624 (is_cxx_auto): Likewise.
13626 2014-02-28 Ian Bolton <ian.bolton@arm.com>
13628 * config/aarch64/aarch64.h: Define __ARM_NEON by default if
13629 we are not using general regs only.
13631 2014-02-28 Richard Biener <rguenther@suse.de>
13634 * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
13635 previous fix and only allow to remove trivial pre-headers
13636 and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
13637 (remove_forwarder_block): Properly update the latch of a loop.
13639 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
13642 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
13643 (cselib_preserved_hash_table): New.
13644 (preserve_constants_and_equivs): Move preserved vals to it.
13645 (cselib_find_slot): Look it up first.
13646 (cselib_init): Initialize it.
13647 (cselib_finish): Release it.
13648 (dump_cselib_table): Dump it.
13650 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
13653 * cselib.c (remove_useless_values): Skip to avoid quadratic
13654 behavior if the condition moved from...
13655 (cselib_process_insn): ... here holds.
13657 2014-02-28 Alexandre Oliva <aoliva@redhat.com>
13660 * var-tracking.c (vt_initialize): Apply the same condition to
13661 preserve the CFA base value.
13663 2014-02-28 Joey Ye <joey.ye@arm.com>
13666 * config/arm/arm.c (thumb_far_jump_used_p): Don't change
13667 if reload in progress or completed.
13669 2014-02-28 Tobias Burnus <burnus@net-b.de>
13671 PR middle-end/60147
13672 * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
13675 2014-02-27 H.J. Lu <hongjiu.lu@intel.com>
13677 * doc/tm.texi.in (Condition Code Status): Update documention for
13678 relative locations of cc0-setter and cc0-user.
13680 2014-02-27 Jeff Law <law@redhat.com>
13682 PR rtl-optimization/52714
13683 * combine.c (try_combine): When splitting an unrecognized PARALLEL
13684 into two independent simple sets, if I3 is a jump, ensure the
13685 pattern we place into I3 is a (set (pc) ...).
13687 2014-02-27 Mikael Pettersson <mikpe@it.uu.se>
13688 Jeff Law <law@redhat.com>
13690 PR rtl-optimization/49847
13691 * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
13692 are in different blocks.
13693 * doc/tm.texi (Condition Code Status): Update documention for
13694 relative locations of cc0-setter and cc0-user.
13696 2014-02-27 Vladimir Makarov <vmakarov@redhat.com>
13699 * lra.c (lra_emit_add): Check SUBREG too.
13701 2014-02-27 Andreas Schwab <schwab@suse.de>
13703 * config/m68k/m68k.c (m68k_option_override): Disable
13704 -flive-range-shrinkage for classic m68k.
13705 (m68k_override_options_after_change): Likewise.
13707 2014-02-27 Marek Polacek <polacek@redhat.com>
13709 PR middle-end/59223
13710 * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
13711 -Wmaybe-uninitialized.
13713 2014-02-27 Alan Modra <amodra@gmail.com>
13716 * reload1.c (emit_input_reload_insns): When reload_override_in,
13717 set old to rl->in_reg when rl->in_reg is a subreg.
13719 2014-02-26 Richard Biener <rguenther@suse.de>
13722 * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
13724 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
13726 * common/config/i386/predicates.md (const1256_operand): Remove.
13727 (const2356_operand): New.
13728 (const_1_to_2_operand): Remove.
13729 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
13730 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
13731 (*avx512pf_gatherpf<mode>sf): Ditto.
13732 (avx512pf_gatherpf<mode>df): Ditto.
13733 (*avx512pf_gatherpf<mode>df_mask): Ditto.
13734 (*avx512pf_gatherpf<mode>df): Ditto.
13735 (avx512pf_scatterpf<mode>sf): Ditto.
13736 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13737 (*avx512pf_scatterpf<mode>sf): Ditto.
13738 (avx512pf_scatterpf<mode>df): Ditto.
13739 (*avx512pf_scatterpf<mode>df_mask): Ditto.
13740 (*avx512pf_scatterpf<mode>df): Ditto.
13741 * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
13743 2014-02-26 Ilya Tocar <ilya.tocar@intel.com>
13745 * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
13746 (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
13747 (_mm512_mask_testn_epi64_mask): Move to ...
13748 * config/i386/avx512cdintrin.h: Here.
13749 * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
13750 * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
13751 (avx512f_scalef<mode><mask_name><round_name>): Ditto.
13752 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
13753 TARGET_AVX512F from TARGET_AVX512CD.
13755 2014-02-26 Richard Biener <rguenther@suse.de>
13758 * ipa.c (walk_polymorphic_call_targets): Properly guard
13759 call to inline_update_overall_summary.
13761 2014-02-26 Bin Cheng <bin.cheng@arm.com>
13764 * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
13765 and latches only if requested. Fix latch if it is removed.
13766 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
13767 LOOPS_HAVE_PREHEADERS.
13769 2014-02-25 Andrew Pinski <apinski@cavium.com>
13771 * builtins.c (expand_builtin_thread_pointer): Create a new target
13772 when the target is NULL.
13774 2014-02-25 Vladimir Makarov <vmakarov@redhat.com>
13776 PR rtl-optimization/60317
13777 * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
13778 * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
13779 * lra-assigns.c: Include params.h.
13780 (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
13781 other reload pseudos considerations.
13783 2014-02-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13785 * config/rs6000/vector.md (*vector_unordered<mode>): Change split
13786 to use canonical form for nor<mode>3.
13788 2014-02-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13791 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
13794 2014-02-25 Ilya Tocar <ilya.tocar@intel.com>
13796 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
13797 (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
13798 (ix86_handle_option): Handle OPT_mprefetchwt1.
13799 * config/i386/cpuid.h (bit_PREFETCHWT1): New.
13800 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
13802 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13803 OPTION_MASK_ISA_PREFETCHWT1.
13804 * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
13805 (PTA_PREFETCHWT1): New.
13806 (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
13807 (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
13808 * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
13809 * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
13810 (*prefetch_avx512pf_<mode>_: Change into ...
13811 (*prefetch_prefetchwt1_<mode>: This.
13812 * config/i386/i386.opt (mprefetchwt1): New.
13813 * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
13814 (_mm_prefetch): Handle intent to write.
13815 * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
13817 2014-02-25 Richard Biener <rguenther@suse.de>
13819 PR middle-end/60291
13820 * emit-rtl.c (mem_attrs_htab): Remove.
13821 (mem_attrs_htab_hash): Likewise.
13822 (mem_attrs_htab_eq): Likewise.
13823 (set_mem_attrs): Always allocate new mem-attrs when something changed.
13824 (init_emit_once): Do not allocate mem_attrs_htab.
13826 2014-02-25 Richard Biener <rguenther@suse.de>
13829 * lto-opts.c (lto_write_options): Output non-explicit conservative
13830 -fwrapv, -fno-trapv and -fno-strict-overflow.
13831 * lto-wrapper.c (merge_and_complain): Handle merging those options.
13832 (run_gcc): And pass them through.
13834 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
13836 * sel-sched.c (calculate_new_fences): New parameter ptime.
13837 Calculate it as a maximum over all fence cycles.
13838 (sel_sched_region_2): Adjust the call to calculate_new_fences.
13839 Print the final schedule timing when sched_verbose.
13841 2014-02-25 Andrey Belevantsev <abel@ispras.ru>
13843 PR rtl-optimization/60292
13844 * sel-sched.c (fill_vec_av_set): Do not reset target availability
13845 bit fot the fence instruction.
13847 2014-02-24 Alangi Derick <alangiderick@gmail.com>
13849 * calls.h: Fix typo in comment.
13851 2014-02-24 John David Anglin <danglin@gcc.gnu.org>
13853 * config/pa/pa.c (pa_output_move_double): Don't valididate when
13854 adjusting offsetable addresses.
13856 2014-02-24 Guozhi Wei <carrot@google.com>
13858 * sparseset.h (sparseset_pop): Fix the wrong index.
13860 2014-02-24 Walter Lee <walt@tilera.com>
13862 * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
13863 (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
13865 * common/config/tilegx/tilegx-common.c
13866 (TARGET_DEFAULT_TARGET_FLAGS): Define.
13867 * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
13868 (LINK_SPEC): Ditto.
13869 * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
13870 * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
13871 (tilegx_gimplify_va_arg_expr): Handle big endian.
13872 (tilegx_expand_unaligned_load): Ditto.
13873 (tilegx_expand_unaligned_store): Ditto.
13874 (TARGET_RETURN_IN_MSB): New.
13875 * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
13876 (TARGET_ENDIAN_DEFAULT): New.
13877 (TARGET_BIG_ENDIAN): Handle big endian.
13878 (BYTES_BIG_ENDIAN): Ditto.
13879 (WORDS_BIG_ENDIAN): Ditto.
13880 (FLOAT_WORDS_BIG_ENDIAN): Ditto.
13881 (ENDIAN_SPEC): New.
13882 (EXTRA_SPECS): New.
13883 * config/tilegx/tilegx.md (extv): Handle big endian.
13885 (insn_st<n>): Ditto.
13886 (insn_st<n>_add<bitsuffix>): Ditto.
13887 (insn_stnt<n>): Ditto.
13888 (insn_stnt<n>_add<bitsuffix>):Ditto.
13889 (vec_interleave_highv8qi): Handle big endian.
13890 (vec_interleave_highv8qi_be): New.
13891 (vec_interleave_highv8qi_le): New.
13892 (insn_v1int_h): Handle big endian.
13893 (vec_interleave_lowv8qi): Handle big endian.
13894 (vec_interleave_lowv8qi_be): New.
13895 (vec_interleave_lowv8qi_le): New.
13896 (insn_v1int_l): Handle big endian.
13897 (vec_interleave_highv4hi): Handle big endian.
13898 (vec_interleave_highv4hi_be): New.
13899 (vec_interleave_highv4hi_le): New.
13900 (insn_v2int_h): Handle big endian.
13901 (vec_interleave_lowv4hi): Handle big endian.
13902 (vec_interleave_lowv4hi_be): New.
13903 (vec_interleave_lowv4hi_le): New.
13904 (insn_v2int_l): Handle big endian.
13905 (vec_interleave_highv2si): Handle big endian.
13906 (vec_interleave_highv2si_be): New.
13907 (vec_interleave_highv2si_le): New.
13908 (insn_v4int_h): Handle big endian.
13909 (vec_interleave_lowv2si): Handle big endian.
13910 (vec_interleave_lowv2si_be): New.
13911 (vec_interleave_lowv2si_le): New.
13912 (insn_v4int_l): Handle big endian.
13913 * config/tilegx/tilegx.opt (mbig-endian): New option.
13914 (mlittle-endian): New option.
13915 * doc/install.texi: Document tilegxbe-linux.
13916 * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
13918 2014-02-24 Martin Jambor <mjambor@suse.cz>
13921 * ipa-cp.c (propagate_constants_accross_call): Bail out early if
13922 there are no parameter descriptors.
13924 2014-02-24 Andrey Belevantsev <abel@ispras.ru>
13926 PR rtl-optimization/60268
13927 * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
13928 initialization to ...
13929 (sched_rgn_init): ... here.
13930 (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
13932 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
13934 * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
13937 2014-02-23 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
13939 * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
13942 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
13944 * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
13945 define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
13947 2014-02-23 David Holsgrove <david.holsgrove@xilinx.com>
13949 * config/microblaze/predicates.md: Add cmp_op predicate.
13950 * config/microblaze/microblaze.md: Add branch_compare instruction
13951 which uses cmp_op predicate and emits cmp insn before branch.
13952 * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
13953 to microblaze_expand_conditional_branch and consolidate logic.
13954 (microblaze_expand_conditional_branch): emit branch_compare
13955 insn instead of handling cmp op separate from branch insn.
13957 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13959 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
13962 2014-02-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13964 * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
13965 define_insn with define_expand and new define_insn
13966 *altivec_lve<VI_char>x_internal.
13967 (altivec_stve<VI_char>x): Replace define_insn with define_expand
13968 and new define_insn *altivec_stve<VI_char>x_internal.
13969 * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
13971 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
13973 (altivec_expand_stvex_be): New function.
13975 2014-02-22 Joern Rennecke <joern.rennecke@embecosm.com>
13977 * config/avr/avr.c (avr_can_eliminate): Allow elimination from
13978 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
13979 * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
13980 ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
13982 2014-02-21 Vladimir Makarov <vmakarov@redhat.com>
13985 * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
13986 instead of emit_move_insn.
13988 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13990 * config/rs6000/altivec.md (altivec_vsumsws): Replace second
13991 vspltw with vsldoi.
13992 (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
13993 gen_altivec_vsumsws.
13995 2014-02-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13997 * config/rs6000/altivec.md (altivec_lvxl): Rename as
13998 *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
13999 (altivec_lvxl_<mode>): New define_expand incorporating
14000 -maltivec=be semantics where needed.
14001 (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
14002 (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
14003 semantics where needed.
14004 (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
14005 (altivec_stvx_<mode>): New define_expand incorporating
14006 -maltivec=be semantics where needed.
14007 (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
14008 VM2 iterator instead of V4SI.
14009 (altivec_stvxl_<mode>): New define_expand incorporating
14010 -maltivec=be semantics where needed.
14011 * config/rs6000/rs6000-builtin.def: Add new built-in definitions
14012 LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
14013 LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
14014 STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
14015 STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
14016 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
14017 ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
14018 similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
14019 ALTIVEC_BUILTIN_STVXL.
14020 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
14021 (altivec_expand_stvx_be): Likewise.
14022 * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
14023 (altivec_expand_lvx_be): Likewise.
14024 (altivec_expand_stvx_be): Likewise.
14025 (altivec_expand_builtin): Add cases for
14026 ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
14027 ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
14028 (altivec_init_builtins): Add definitions for
14029 __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
14030 __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
14032 2014-02-21 Catherine Moore <clm@codesourcery.com>
14034 * doc/invoke.texi (mvirt, mno-virt): Document.
14035 * config/mips/mips.opt (mvirt): New option.
14036 * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
14038 2014-02-21 Richard Biener <rguenther@suse.de>
14040 PR tree-optimization/60276
14041 * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
14042 (STMT_VINFO_MIN_NEG_DIST): New macro.
14043 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
14044 STMT_VINFO_MIN_NEG_DIST.
14045 * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
14046 made for negative dependence distances still hold.
14048 2014-02-21 Richard Biener <rguenther@suse.de>
14050 PR middle-end/60291
14051 * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
14052 DECL_INITIAL for globals not in the current function context.
14054 2014-02-21 Jakub Jelinek <jakub@redhat.com>
14056 PR tree-optimization/56490
14057 * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
14058 * tree-ssa-uninit.c: Include params.h.
14059 (compute_control_dep_chain): Add num_calls argument, return false
14060 if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
14061 num_calls to recursive call.
14062 (find_predicates): Change dep_chain into normal array,
14063 cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
14064 variable and adjust compute_control_dep_chain caller.
14065 (find_def_preds): Likewise.
14067 2014-02-21 Thomas Schwinge <thomas@codesourcery.com>
14069 * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
14070 <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
14072 2014-02-21 Nick Clifton <nickc@redhat.com>
14074 * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
14075 (pushhi1): Likewise.
14076 (popqi1): Add mode to pre_dec.
14077 (pophi1): Likewise.
14079 2014-02-21 Jakub Jelinek <jakub@redhat.com>
14081 * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
14082 mode for mask of V8SFmode permutation.
14084 2014-02-20 Richard Henderson <rth@redhat.com>
14087 * builtins.c (expand_builtin_atomic_compare_exchange): Always make
14088 a new pseudo for OLDVAL.
14090 2014-02-20 Jakub Jelinek <jakub@redhat.com>
14093 * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
14094 gen_reg_rtx if d->testing_p.
14095 (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
14096 if d->testing_p and we will certainly return true.
14097 (expand_vec_perm_even_odd_1): Likewise. Don't call gen_reg_rtx
14100 2014-02-20 Uros Bizjak <ubizjak@gmail.com>
14102 * emit-rtl.c (gen_reg_rtx): Assert that
14103 crtl->emit.regno_pointer_align_length is non-zero.
14105 2014-02-20 Richard Henderson <rth@redhat.com>
14108 * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
14109 on failure the store back into EXPECT.
14111 2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
14112 Sandra Loosemore <sandra@codesourcery.com>
14114 * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
14115 * config/nios2/nios2.c (nios2_function_profiler): Add
14116 -fPIC (flag_pic == 2) support.
14117 (nios2_handle_custom_fpu_cfg): Fix warning parameter.
14118 (nios2_large_offset_p): New function.
14119 (nios2_unspec_reloc_p): Move up position, update to use
14120 nios2_large_offset_p.
14121 (nios2_unspec_address): Remove function.
14122 (nios2_unspec_offset): New function.
14123 (nios2_large_got_address): New function.
14124 (nios2_got_address): Add large offset support.
14125 (nios2_legitimize_tls_address): Update usage of removed and new
14127 (nios2_symbol_binds_local_p): New function.
14128 (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
14129 (nios2_legitimize_address): Update to use nios2_large_offset_p.
14130 (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
14131 (nios2_print_operand): Merge H/L processing, add hiadj/lo
14132 processing for (const (unspec ...)).
14133 (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
14135 2014-02-20 Richard Biener <rguenther@suse.de>
14137 * tree-cfg.c (replace_uses_by): Mark altered BBs before
14138 doing the substitution.
14139 (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
14141 2014-02-20 Martin Jambor <mjambor@suse.cz>
14144 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
14145 info when checking whether lattices are bottom.
14147 2014-02-20 Richard Biener <rguenther@suse.de>
14149 PR middle-end/60221
14150 * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
14153 2014-02-20 Jan Hubicka <hubicka@ucw.cz>
14156 * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
14157 parameter specifying the scaling.
14158 (inline_call): Update.
14159 (want_inline_recursively): Guard division by zero.
14160 (recursive_inlining): Update.
14161 * ipa-inline.h (clone_inlined_nodes): Update.
14163 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
14166 * config/i386/i386.c (classify_argument): Pass structures of size
14167 64 bytes or less in register.
14169 2014-02-20 Ilya Tocar <ilya.tocar@intel.com>
14170 Kirill Yukhin <kirill.yukhin@intel.com>
14172 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
14173 (_mm_rcp28_round_ss): Ditto.
14174 (_mm_rsqrt28_round_sd): Ditto.
14175 (_mm_rsqrt28_round_ss): Ditto.
14176 * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
14177 (_mm_rcp14_round_ss): Ditto.
14178 (_mm_rsqrt14_round_sd): Ditto.
14179 (_mm_rsqrt14_round_ss): Ditto.
14180 * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
14181 the first input operand, get rid of match_dup.
14182 (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
14184 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
14186 (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
14187 operand as the first input operand, set type attribute.
14188 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
14189 Set type attribute.
14190 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
14191 operand as the first input operand, set type attribute.
14193 2014-02-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14195 * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
14198 2014-02-19 H.J. Lu <hongjiu.lu@intel.com>
14201 * config/i386/i386.c (construct_container): Remove TFmode check
14202 for X86_64_INTEGER_CLASS.
14204 2014-02-19 Uros Bizjak <ubizjak@gmail.com>
14207 * config/i386/i386.c (type_natural_mode): Warn for ABI changes
14208 only when -Wpsabi is enabled.
14210 2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
14213 * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
14214 passing arrays in registers are the same as for structs, so remove the
14215 special case for them.
14217 2014-02-19 Eric Botcazou <ebotcazou@adacore.com>
14219 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
14220 destination type, extract only the valid bits if the source type is not
14221 integral and has a different mode.
14223 2014-02-19 Richard Biener <rguenther@suse.de>
14226 * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
14229 2014-02-19 Richard Biener <rguenther@suse.de>
14232 * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
14233 (ipa_modify_call_arguments): Emit an argument load explicitely and
14234 preserve virtual SSA form there and for the replacement call.
14235 Do not update SSA form nor free dominance info.
14237 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
14239 * ipa.c (function_and_variable_visibility): Also clear WEAK
14240 flag when disolving COMDAT_GROUP.
14242 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
14244 * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
14245 * ipa-prop.c (ipa_set_jf_known_type): Return early when
14246 not devirtualizing.
14247 (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
14248 do more sanity checks.
14249 (detect_type_change): Return true when giving up early.
14250 (compute_complex_assign_jump_func): Fix type parameter of
14251 ipa_set_ancestor_jf.
14252 (compute_complex_ancestor_jump_func): Likewise.
14253 (update_jump_functions_after_inlining): Fix updating of
14255 * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
14257 2014-02-18 Jan Hubicka <hubicka@ucw.cz>
14259 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
14260 inline clones when edge disappears.
14262 2014-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14265 * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
14266 Split 64-bit moves into 2 patterns. Do not allow the use of
14267 direct move for TDmode in little endian, since the decimal value
14268 has little endian bytes within a word, but the 64-bit pieces are
14269 ordered in a big endian fashion, and normal subreg's of TDmode are
14271 (mov<mode>_64bit_dm): Likewise.
14272 (movtd_64bit_nodm): Likewise.
14274 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
14276 PR tree-optimization/60174
14277 * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
14278 statement of an SSA_NAME that occurs in an abnormal PHI node.
14280 2014-02-18 Jakub Jelinek <jakub@redhat.com>
14283 * final.c (SEEN_BB): Remove.
14284 (SEEN_NOTE, SEEN_EMITTED): Renumber.
14285 (final_scan_insn): Don't force_source_line on second
14286 NOTE_INSN_BASIC_BLOCK.
14288 2014-02-18 Uros Bizjak <ubizjak@gmail.com>
14291 * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
14292 * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
14293 (type_natural_mode): Warn ABI change when %zmm register is not
14294 available for AVX512F vector value passing.
14296 2014-02-18 Kai Tietz <ktietz@redhat.com>
14299 * config/i386/i386.c (ix86_expand_prologue): Use value in
14300 rax register as displacement when restoring %r10 or %rax.
14301 Fix wrong offset when restoring both registers.
14303 2014-02-18 Eric Botcazou <ebotcazou@adacore.com>
14305 * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
14306 assertion with conditional return.
14308 2014-02-18 Jakub Jelinek <jakub@redhat.com>
14309 Uros Bizjak <ubizjak@gmail.com>
14312 * config/i386/driver-i386.c (host_detect_local_cpu): If
14313 YMM state is not saved by the OS, also clear has_f16c. Move
14314 CPUID 0x80000001 handling before YMM state saving checking.
14316 2014-02-18 Andrey Belevantsev <abel@ispras.ru>
14318 PR rtl-optimization/58960
14319 * haifa-sched.c (alloc_global_sched_pressure_data): New,
14320 factored out from ...
14321 (sched_init): ... here.
14322 (free_global_sched_pressure_data): New, factored out from ...
14323 (sched_finish): ... here.
14324 * sched-int.h (free_global_sched_pressure_data): Declare.
14325 * sched-rgn.c (nr_regions_initial): New static global.
14326 (haifa_find_rgns): Initialize it.
14327 (schedule_region): Disable sched-pressure for the newly
14330 2014-02-17 Richard Biener <rguenther@suse.de>
14332 * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
14333 release SSA defs of pattern stmts.
14335 2014-02-17 Richard Biener <rguenther@suse.de>
14337 * tree-inline.c (expand_call_inline): Release the virtual
14338 operand defined by the call we are about to inline.
14340 2014-02-17 Richard Biener <rguenther@suse.de>
14342 * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
14344 2014-02-17 Kirill Yukhin <kirill.yukhin@intel.com>
14345 Ilya Tocar <ilya.tocar@intel.com>
14347 * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
14348 arguments order in builtin.
14349 (_mm512_permutexvar_epi64): Ditto.
14350 (_mm512_mask_permutexvar_epi64): Ditto
14351 (_mm512_maskz_permutexvar_epi32): Ditto
14352 (_mm512_permutexvar_epi32): Ditto
14353 (_mm512_mask_permutexvar_epi32): Ditto
14355 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14357 * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
14358 (p8_vmrgow): Likewise.
14360 2014-02-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14362 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
14365 2014-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
14368 * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
14369 (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
14370 into 64-bit and 32-bit moves. On 64-bit moves, add support for
14371 using direct move instructions on ISA 2.07. Also adjust
14372 instruction length for 64-bit.
14373 (mov<mode>_64bit, TFmode/TDmode): Likewise.
14374 (mov<mode>_32bit, TFmode/TDmode): Likewise.
14376 2014-02-15 Alan Modra <amodra@gmail.com>
14380 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14381 find_replacement on parts of insn rtl that might be reloaded.
14383 2014-02-15 Richard Biener <rguenther@suse.de>
14385 PR tree-optimization/60183
14386 * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
14387 (tree_ssa_phiprop): Calculate and free post-dominators.
14389 2014-02-14 Jeff Law <law@redhat.com>
14391 PR rtl-optimization/60131
14392 * ree.c (get_extended_src_reg): New function.
14393 (combine_reaching_defs): Use it rather than assuming location of REG.
14394 (find_and_remove_re): Verify first operand of extension is
14395 a REG before adding the insns to the copy list.
14397 2014-02-14 Roland McGrath <mcgrathr@google.com>
14399 * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
14400 * configure: Regenerated.
14401 * config.in: Regenerated.
14402 * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
14403 instead of ASM_SHORT.
14405 2014-02-14 Vladimir Makarov <vmakarov@redhat.com>
14406 Richard Earnshaw <rearnsha@arm.com>
14408 PR rtl-optimization/59535
14409 * lra-constraints.c (process_alt_operands): Encourage alternative
14410 when unassigned pseudo class is superset of the alternative class.
14411 (inherit_reload_reg): Don't inherit when optimizing for code size.
14412 * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
14413 returning CORE_REGS for anything but Thumb1 and BASE_REGS for
14414 modes not less than 4 for Thumb1.
14416 2014-02-14 Kyle McMartin <kyle@redhat.com>
14419 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
14421 2014-02-14 Richard Biener <rguenther@suse.de>
14423 * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
14424 (get_frame_arg): Drop the assert with langhook types_compatible_p.
14425 Do not strip INDIRECT_REFs.
14427 2014-02-14 Richard Biener <rguenther@suse.de>
14430 * lto-streamer-out.c (DFS_write_tree_body): Do not follow
14431 DECL_FUNCTION_SPECIFIC_TARGET.
14432 (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
14433 * tree-streamer-out.c (pack_ts_target_option): Remove.
14434 (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
14435 (write_ts_function_decl_tree_pointers): Do not stream
14436 DECL_FUNCTION_SPECIFIC_TARGET.
14437 * tree-streamer-in.c (unpack_ts_target_option): Remove.
14438 (unpack_value_fields): Do not stream TS_TARGET_OPTION.
14439 (lto_input_ts_function_decl_tree_pointers): Do not stream
14440 DECL_FUNCTION_SPECIFIC_TARGET.
14442 2014-02-14 Jakub Jelinek <jakub@redhat.com>
14444 * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
14445 (get_initial_def_for_induction, vectorizable_induction): Ignore
14446 debug stmts when looking for exit_phi.
14447 (vectorizable_live_operation): Fix up condition.
14449 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
14451 * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
14452 nreverse() because it changes the content of original tree list.
14454 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
14456 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
14457 * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
14459 2014-02-14 Chung-Ju Wu <jasonwucj@gmail.com>
14461 * config/nds32/nds32.c (nds32_naked_function_p): Follow the
14462 GNU coding standards.
14464 2014-02-13 Jakub Jelinek <jakub@redhat.com>
14467 * dwarf2out.c (gen_subprogram_die): Don't call
14468 add_calling_convention_attribute if subr_die is old_die.
14470 2014-02-13 Sharad Singhai <singhai@google.com>
14472 * doc/optinfo.texi: Fix order of nodes.
14474 2014-02-13 Uros Bizjak <ubizjak@gmail.com>
14476 * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
14477 operands[2], not operands[3].
14479 2014-02-13 Richard Biener <rguenther@suse.de>
14482 * doc/install.texi (ISL): Update recommended version to 0.12.2,
14483 mention the possibility of an in-tree build.
14484 (CLooG): Update recommended version to 0.18.1, mention the
14485 possibility of an in-tree build and clarify that the ISL
14486 bundled with CLooG does not work.
14488 2014-02-13 Jakub Jelinek <jakub@redhat.com>
14491 * expr.c (compress_float_constant): If x is a hard register,
14492 extend into a pseudo and then move to x.
14494 2014-02-13 Dominik Vogt <vogt@linux.vnet.ibm.com>
14496 * config/s390/s390.c (s390_asm_output_function_label): Fix crash
14497 caused by bad second argument to warning_at() with -mhotpatch and
14498 nested functions (e.g. with gfortran).
14500 2014-02-13 Richard Sandiford <rdsandiford@googlemail.com>
14502 * opts.c (option_name): Remove "enabled by default" rider.
14504 2014-02-12 John David Anglin <danglin@gcc.gnu.org>
14506 * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
14508 2014-02-12 H.J. Lu <hongjiu.lu@intel.com>
14509 Uros Bizjak <ubizjak@gmail.com>
14512 * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
14513 * configure: Regenerated.
14515 2014-02-12 Richard Biener <rguenther@suse.de>
14517 * vec.c (vec_prefix::calculate_allocation): Move as
14518 inline variant to vec.h.
14519 (vec_prefix::calculate_allocation_1): New out-of-line version.
14520 * vec.h (vec_prefix::calculate_allocation_1): Declare.
14521 (vec_prefix::m_has_auto_buf): Rename to ...
14522 (vec_prefix::m_using_auto_storage): ... this.
14523 (vec_prefix::calculate_allocation): Inline the easy cases
14524 and dispatch to calculate_allocation_1 which doesn't need the
14526 (va_heap::reserve): Use gcc_checking_assert.
14527 (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
14528 m_using_auto_storage.
14529 (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
14531 (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
14532 (vec<T, va_heap, vl_ptr>::release): Avoid casting.
14533 (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
14535 2014-02-12 Richard Biener <rguenther@suse.de>
14537 * gcse.c (compute_transp): break from loop over canon_modify_mem_list
14538 when we found a dependence.
14540 2014-02-12 Thomas Schwinge <thomas@codesourcery.com>
14542 * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
14544 (maybe_fold_stmt): ... into this new function.
14545 * omp-low.c (lower_omp): Update comment.
14547 * omp-low.c (lower_omp_target): Add clobber for sizes array, after
14550 * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
14553 2014-02-12 James Greenhalgh <james.greenhalgh@arm.com>
14555 * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
14556 identifiers in comments.
14557 (cortexa53_extra_costs): Likewise.
14558 * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
14559 (cortexa7_extra_costs): Likewise.
14560 (cortexa12_extra_costs): Likewise.
14561 (cortexa15_extra_costs): Likewise.
14562 (v7m_extra_costs): Likewise.
14564 2014-02-12 Richard Biener <rguenther@suse.de>
14566 PR middle-end/60092
14567 * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
14568 of posix_memalign being successful.
14569 (lower_stmt): Restrict lowering of posix_memalign to when
14570 -ftree-bit-ccp is enabled.
14572 2014-02-12 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
14574 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
14576 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
14578 2014-02-12 Eric Botcazou <ebotcazou@adacore.com>
14580 PR rtl-optimization/60116
14581 * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
14582 other_insn once the combination has been validated.
14584 2014-02-11 Jan Hubicka <hubicka@ucw.cz>
14587 * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
14589 * ipa-devirt.c: Include demangle.h
14590 (odr_violation_reported): New static variable.
14591 (add_type_duplicate): Update odr_violations.
14592 (maybe_record_node): Add completep parameter; update it.
14593 (record_target_from_binfo): Add COMPLETEP parameter;
14594 update it as needed.
14595 (possible_polymorphic_call_targets_1): Likewise.
14596 (struct polymorphic_call_target_d): Add nonconstruction_targets;
14597 rename FINAL to COMPLETE.
14598 (record_targets_from_bases): Sanity check we found the binfo;
14599 fix COMPLETEP updating.
14600 (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
14601 parameter, fix computing of COMPLETEP.
14602 (dump_possible_polymorphic_call_targets): Imrove readability of dump;
14603 at LTO time do demangling.
14604 (ipa_devirt): Use nonconstruction_targets; Improve dumps.
14605 * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
14607 (gimple_get_virt_method_for_binfo): Likewise.
14608 * gimple-fold.h (gimple_get_virt_method_for_binfo,
14609 gimple_get_virt_method_for_vtable): Update prototypes.
14611 2014-02-11 Vladimir Makarov <vmakarov@redhat.com>
14614 * genautomata.c (add_presence_absence): Fix typo with
14615 {final_}presence_list.
14617 2014-02-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14620 * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
14621 for VSX/Altivec vectors that land in GPR registers.
14623 2014-02-11 Richard Henderson <rth@redhat.com>
14624 Jakub Jelinek <jakub@redhat.com>
14627 * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
14628 around drhs if type conversion to lacc->type is not useless.
14630 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14632 * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
14634 (cortex-a57.cortex-a53): Likewise.
14635 * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
14637 2014-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14639 * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
14642 2014-02-11 Renlin Li <Renlin.Li@arm.com>
14644 * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
14645 add_options_for_arm_vfp3.
14647 2014-02-11 Jeff Law <law@redhat.com>
14649 PR middle-end/54041
14650 * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
14651 object with an undesirable mode.
14653 2014-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14656 * config/i386/sol2-9.h: New file.
14657 * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
14658 *-*-solaris2.9*): Use it.
14660 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
14662 * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
14663 * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
14665 2014-02-10 Nagaraju Mekala <nagaraju.mekala@xilinx.com>
14667 * config/microblaze/microblaze.c: Extend mcpu version format
14669 2014-02-10 David Holsgrove <david.holsgrove@xilinx.com>
14671 * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
14673 2014-02-10 Richard Henderson <rth@redhat.com>
14676 * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
14677 * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
14678 ms-abi vs -mno-accumulate-outgoing-args.
14679 (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
14680 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
14683 2014-02-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
14685 PR middle-end/60080
14686 * cfgexpand.c (expand_asm_operands): Attach source location to
14687 ASM_INPUT rtx objects.
14688 * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
14690 2014-02-10 Nick Clifton <nickc@redhat.com>
14692 * config/mn10300/mn10300.c (popcount): New function.
14693 (mn10300_expand_prologue): Include saved registers in stack usage
14696 2014-02-10 Jeff Law <law@redhat.com>
14698 PR middle-end/52306
14699 * reload1.c (emit_input_reload_insns): Do not create invalid RTL
14700 when changing the SET_DEST of a prior insn to avoid an input reload.
14702 2014-02-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14704 * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
14705 big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
14706 -mcall-openbsd, or -mcall-linux.
14707 (CC1_ENDIAN_BIG_SPEC): Remove.
14708 (CC1_ENDIAN_LITTLE_SPEC): Remove.
14709 (CC1_ENDIAN_DEFAULT_SPEC): Remove.
14710 (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
14711 (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
14712 and %cc1_endian_default.
14713 * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
14715 2014-02-10 Richard Biener <rguenther@suse.de>
14717 PR tree-optimization/60115
14718 * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
14719 MEM_REF handling. Properly verify that the accesses are not
14720 out of the objects bound.
14722 2014-02-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14724 * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
14727 2014-02-10 Eric Botcazou <ebotcazou@adacore.com>
14729 * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
14730 proper constants and fix formatting.
14731 (possible_polymorphic_call_targets): Fix formatting.
14733 2014-02-10 Kirill Yukhin <kirill.yukhin@intel.com>
14734 Ilya Tocar <ilya.tocar@intel.com>
14736 * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
14737 (_mm512_loadu_epi32): Renamed into...
14738 (_mm512_loadu_si512): This.
14739 (_mm512_storeu_epi32): Renamed into...
14740 (_mm512_storeu_si512): This.
14741 (_mm512_maskz_ceil_ps): Removed.
14742 (_mm512_maskz_ceil_pd): Ditto.
14743 (_mm512_maskz_floor_ps): Ditto.
14744 (_mm512_maskz_floor_pd): Ditto.
14745 (_mm512_floor_round_ps): Ditto.
14746 (_mm512_floor_round_pd): Ditto.
14747 (_mm512_ceil_round_ps): Ditto.
14748 (_mm512_ceil_round_pd): Ditto.
14749 (_mm512_mask_floor_round_ps): Ditto.
14750 (_mm512_mask_floor_round_pd): Ditto.
14751 (_mm512_mask_ceil_round_ps): Ditto.
14752 (_mm512_mask_ceil_round_pd): Ditto.
14753 (_mm512_maskz_floor_round_ps): Ditto.
14754 (_mm512_maskz_floor_round_pd): Ditto.
14755 (_mm512_maskz_ceil_round_ps): Ditto.
14756 (_mm512_maskz_ceil_round_pd): Ditto.
14757 (_mm512_expand_pd): Ditto.
14758 (_mm512_expand_ps): Ditto.
14759 * config/i386/i386.c (ix86_builtins): Remove
14760 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
14761 (bdesc_args): Ditto.
14762 * config/i386/predicates.md (const1256_operand): New.
14763 (const_1_to_2_operand): Ditto.
14764 * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
14765 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
14766 (*avx512pf_gatherpf<mode>sf): Ditto.
14767 (avx512pf_gatherpf<mode>df): Ditto.
14768 (*avx512pf_gatherpf<mode>df_mask): Ditto.
14769 (*avx512pf_gatherpf<mode>df): Ditto.
14770 (avx512pf_scatterpf<mode>sf): Ditto.
14771 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
14772 (*avx512pf_scatterpf<mode>sf): Ditto.
14773 (avx512pf_scatterpf<mode>df): Ditto.
14774 (*avx512pf_scatterpf<mode>df_mask): Ditto.
14775 (*avx512pf_scatterpf<mode>df): Ditto.
14776 (avx512f_expand<mode>): Removed.
14777 (<shift_insn><mode>3<mask_name>): Change predicate type.
14779 2014-02-08 Jakub Jelinek <jakub@redhat.com>
14781 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
14782 not at the end of datarefs vector use ordered_remove to avoid
14783 reordering datarefs vector.
14786 * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
14787 mark local addressable non-static vars as GOVD_PRIVATE
14788 instead of GOVD_LOCAL.
14789 * omp-low.c (lower_omp_for): Move gimple_bind_vars
14790 and BLOCK_VARS of gimple_bind_block to new_stmt rather
14793 PR middle-end/60092
14794 * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
14795 if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
14796 assume_aligned or alloc_align attributes.
14797 (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
14798 arguments. Handle also assume_aligned and alloc_align attributes.
14799 (evaluate_stmt): Adjust bit_value_assume_aligned caller. Handle
14800 calls to functions with assume_aligned or alloc_align attributes.
14801 * doc/extend.texi: Document assume_aligned and alloc_align attributes.
14803 2014-02-08 Terry Guo <terry.guo@arm.com>
14805 * doc/invoke.texi: Document ARM -march=armv7e-m.
14807 2014-02-08 Jakub Jelinek <jakub@redhat.com>
14809 * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
14810 flag on __cilkrts_rethrow builtin.
14813 * ipa-cp.c (determine_versionability): Fail at -O0
14814 or __attribute__((optimize (0))) or -fno-ipa-cp functions.
14815 * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
14818 2014-02-04 Jakub Jelinek <jakub@redhat.com>
14821 * tree-inline.c (copy_forbidden): Fail for
14822 __attribute__((optimize (0))) functions.
14824 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
14826 * varpool.c: Include pointer-set.h.
14827 (varpool_remove_unreferenced_decls): Variables in other partitions
14828 will not be output; be however careful to not lose information
14829 about partitioning.
14831 2014-02-07 Jan Hubicka <hubicka@ucw.cz>
14833 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
14834 lookup in the vtable constructor.
14836 2014-02-07 Jeff Law <law@redhat.com>
14839 * config/m68k/m68k.md (ashldi_extsi): Turn into a
14840 define_insn_and_split.
14842 * ipa-inline.c (inline_small_functions): Fix typos.
14844 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14846 * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
14847 (s390_can_use_return_insn): Declare.
14848 * config/s390/s390.h (EPILOGUE_USES): Define.
14849 * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
14851 (s390_chunkify_start): Handle return JUMP_LABELs.
14852 (s390_early_mach): Emit a main_pool instruction on the entry edge.
14853 (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
14854 (s390_can_use_return_insn): New functions.
14855 (s390_fix_long_loop_prediction): Handle conditional returns.
14856 (TARGET_SET_UP_BY_PROLOGUE): Define.
14857 * config/s390/s390.md (ANY_RETURN): New code iterator.
14858 (*creturn, *csimple_return, return, simple_return): New patterns.
14860 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14862 * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
14863 notes to each restore. Also add REG_CFA_DEF_CFA when restoring %r15.
14864 (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P. Update the
14865 REG_CFA_RESTORE list when deciding not to restore a register.
14867 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14869 * config/s390/s390.c: Include tree-pass.h and context.h.
14870 (s390_early_mach): New function, split out from...
14871 (s390_emit_prologue): ...here.
14872 (pass_data_s390_early_mach): New pass structure.
14873 (pass_s390_early_mach): New class.
14874 (s390_option_override): Create and register early_mach pass.
14875 Move to end of file.
14877 2014-02-07 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
14879 * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
14880 to match for the exit block.
14882 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14884 * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
14885 ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
14886 Reject misaligned operands.
14888 2014-02-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14890 * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
14892 2014-02-07 Richard Biener <rguenther@suse.de>
14894 PR middle-end/60092
14895 * gimple-low.c (lower_builtin_posix_memalign): New function.
14896 (lower_stmt): Call it to lower posix_memalign in a way
14897 to make alignment info accessible.
14899 2014-02-07 Jakub Jelinek <jakub@redhat.com>
14902 * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
14903 __builtin_setjmp_receiver.
14905 2014-02-07 Richard Biener <rguenther@suse.de>
14907 PR middle-end/60092
14908 * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
14909 * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
14910 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14911 Handle BUILT_IN_POSIX_MEMALIGN.
14912 (find_func_clobbers): Likewise.
14913 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14914 (call_may_clobber_ref_p_1): Likewise.
14916 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
14919 * ipa-devirt.c (record_target_from_binfo): Remove overactive
14922 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
14925 * lto-cgraph.c (lto_output_node): Use
14926 symtab_get_symbol_partitioning_class.
14927 (lto_output_varpool_node): likewise.
14928 (symtab_get_symbol_partitioning_class): Move here from
14929 lto/lto-partition.c
14930 * cgraph.h (symbol_partitioning_class): Likewise.
14931 (symtab_get_symbol_partitioning_class): Declare.
14933 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
14935 * ggc.h (ggc_internal_cleared_alloc): New macro.
14936 * vec.h (vec_safe_copy): Handle memory stats.
14937 * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
14938 * target-globals.c (save_target_globals): Likewise.
14940 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
14943 * expr.c (emit_move_resolve_push): Export; be bit more selective
14944 on when to clear alias set.
14945 * expr.h (emit_move_resolve_push): Declare.
14946 * function.h (struct function): Add tail_call_marked.
14947 * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
14948 * config/i386/i386-protos.h (ix86_expand_push): Remove.
14949 * config/i386/i386.md (TImode move expander): De not call
14951 (FP push expanders): Preserve memory attributes.
14952 * config/i386/sse.md (push<mode>1): Remove.
14953 * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
14954 (ix86_expand_push): Remove.
14955 * config/i386/mmx.md (push<mode>1): Remove.
14957 2014-02-06 Jakub Jelinek <jakub@redhat.com>
14959 PR rtl-optimization/60030
14960 * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
14961 lopart with paradoxical subreg before shifting it up by hprec.
14963 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14965 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
14966 Remove extra newline at end of file.
14967 * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
14968 (arm_issue_rate): Handle cortexa57.
14969 * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
14970 (cortex-a57.cortex-a53): Likewise.
14972 2014-02-06 Jakub Jelinek <jakub@redhat.com>
14975 * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
14976 don't record in REG_FRAME_RELATED_EXPR registers not set in that
14978 (arm_expand_prologue): Adjust all callers.
14979 (arm_unwind_emit_sequence): Allow saved, but not important for unwind
14980 info, registers also at the lowest numbered registers side. Use
14981 gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
14985 * var-tracking.c (adjust_mems): Before adding a SET to
14986 amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
14988 2014-02-06 Alan Modra <amodra@gmail.com>
14991 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
14992 change SDmode to DDmode when lra_in_progress.
14994 2014-02-06 Jakub Jelinek <jakub@redhat.com>
14996 PR middle-end/59150
14997 * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
14998 free_data_ref on the dr first, and before goto again also set dr
14999 to the next dr. For simd_lane_access, free old datarefs[i] before
15000 overwriting it. For get_vectype_for_scalar_type failure, don't
15001 free_data_ref if simd_lane_access.
15003 * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
15006 * tree.h (opts_for_fn): New inline function.
15007 (opt_for_fn): Define.
15008 * config/i386/i386.c (ix86_function_regparm): Use
15009 opt_for_fn (decl, optimize) instead of optimize.
15011 2014-02-06 Marcus Shawcroft <marcus.shawcroft@arm.com>
15013 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
15014 for SYMBOL_REF in large memory model.
15016 2014-02-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15018 * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
15019 and crypto support.
15020 (cortex-a57): Likewise.
15021 (cortex-a57.cortex-a53): Likewise.
15023 2014-02-06 Yury Gribov <y.gribov@samsung.com>
15024 Kugan Vivekanandarajah <kuganv@linaro.org>
15026 * config/arm/arm.c (arm_vector_alignment_reachable): Check
15028 * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
15030 2014-02-06 Richard Biener <rguenther@suse.de>
15032 * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
15033 set_loop_copy and initialize_original_copy_tables.
15035 2014-02-06 Alex Velenko <Alex.Velenko@arm.com>
15037 * config/aarch64/aarch64-simd.md
15038 (aarch64_ashr_simddi): Change QI to SI.
15040 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
15041 Jakub Jelinek <jakub@redhat.com>
15043 PR middle-end/60013
15044 * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
15047 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15049 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
15050 CODE_FOR_altivec_vpku[hw]um to
15051 CODE_FOR_altivec_vpku[hw]um_direct.
15052 * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
15053 UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
15054 (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
15055 UNSPEC_VUNPACK_LO_SIGN_DIRECT.
15057 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15059 * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
15060 generation for -maltivec=be.
15061 (altivec_vsumsws): Simplify redundant test.
15063 2014-02-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15065 * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
15066 (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
15067 (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
15068 (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
15069 gen_altivec_vpkuwum.
15070 (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
15072 (altivec_vpks<VI_char>ss): Likewise.
15073 (altivec_vpks<VI_char>us): Likewise.
15074 (altivec_vpku<VI_char>us): Likewise.
15075 (altivec_vpku<VI_char>um): Likewise.
15076 (altivec_vpku<VI_char>um_direct): New (copy of
15077 altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
15079 (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
15080 target is little endian and -maltivec=be is not specified.
15081 (*altivec_vupkhs<VU_char>_direct): New (copy of
15082 altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
15083 (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
15084 target is little endian and -maltivec=be is not specified.
15085 (*altivec_vupkls<VU_char>_direct): New (copy of
15086 altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
15087 (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
15088 little endian and -maltivec=be is not specified.
15089 (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
15090 little endian and -maltivec=be is not specified.
15092 2014-02-05 Richard Henderson <rth@redhat.com>
15095 * combine-stack-adj.c: Revert r206943.
15096 * sched-int.h (struct deps_desc): Add last_args_size.
15097 * sched-deps.c (init_deps): Initialize it.
15098 (sched_analyze_insn): Add OUTPUT dependencies between insns that
15099 contain REG_ARGS_SIZE notes.
15101 2014-02-05 Jan Hubicka <hubicka@ucw.cz>
15103 * lto-cgraph.c (asm_nodes_output): Make global.
15104 * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
15105 * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
15106 (driver_handle_option): Handle OPT_fwpa.
15108 2014-02-05 Jakub Jelinek <jakub@redhat.com>
15111 * ipa-devirt.c (possible_polymorphic_call_targets): Fix
15112 a comment typo and formatting issue. If odr_hash hasn't been
15113 created, return vNULL and set *completep to false.
15115 PR middle-end/57499
15116 * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
15117 bb with no successors.
15119 2014-02-05 James Greenhalgh <james.greenhalgh@arm.com>
15122 * doc/invoke.texi (-march): Clarify documentation for ARM.
15123 (-mtune): Likewise.
15126 2014-02-05 Richard Biener <rguenther@suse.de>
15128 * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
15129 when not vectorizing because of too many alias checks.
15130 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
15131 Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
15133 2014-02-05 Nick Clifton <nickc@redhat.com>
15135 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
15136 accept extended registers in any mode when compiling for the MN10300.
15138 2014-02-05 Yury Gribov <y.gribov@samsung.com>
15140 * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
15141 * ipa-inline.c (report_inline_failed_reason): Handle mismatched
15142 sanitization attributes.
15143 (can_inline_edge_p): Likewise.
15144 (sanitize_attrs_match_for_inline_p): New function.
15146 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
15148 * ipa-prop.c (detect_type_change): Shor circuit testing of
15149 type changes on THIS pointer.
15151 2014-02-04 John David Anglin <danglin@gcc.gnu.org>
15154 * config/pa/pa.c (legitimize_tls_address): Return original address
15155 if not passed a SYMBOL_REF rtx.
15156 (hppa_legitimize_address): Call legitimize_tls_address for all TLS
15158 (pa_emit_move_sequence): Simplify TLS source operands.
15159 (pa_legitimate_constant_p): Reject all TLS constants.
15160 * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
15161 (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
15163 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
15165 * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
15166 groups when we know they are controlled by LTO.
15167 * varasm.c (default_binds_local_p_1): If object is in other partition,
15168 it will be resolved locally.
15170 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
15172 * config/host-linux.c (linux_gt_pch_use_address): Don't
15173 use SSIZE_MAX because it is not always defined.
15175 2014-02-04 Vladimir Makarov <vmakarov@redhat.com>
15178 * lra-constraints.c (need_for_split_p): Use more 3 reloads as
15179 threshold for pseudo splitting.
15180 (update_ebb_live_info): Process call argument hard registers and
15181 hard registers from insn definition too.
15182 (max_small_class_regs_num): New constant.
15183 (inherit_in_ebb): Update live hard regs through EBBs. Update
15184 reloads_num only for small register classes. Don't split for
15187 2014-02-04 Markus Trippelsdorf <markus@trippelsdorf.de>
15190 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
15193 2014-02-04 Jan Hubicka <hubicka@ucw.cz>
15195 * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
15196 visibility is safe.
15198 2014-02-04 Marek Polacek <polacek@redhat.com>
15200 * gdbinit.in (pel): Define.
15202 2014-02-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
15204 * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
15207 2014-02-04 Richard Biener <rguenther@suse.de>
15210 * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
15211 in function context local.
15212 (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
15213 * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
15214 similar to LTO_imported_decl_ref.
15216 2014-02-04 Jakub Jelinek <jakub@redhat.com>
15218 PR tree-optimization/60002
15219 * cgraphclones.c (build_function_decl_skip_args): Clear
15220 DECL_LANG_SPECIFIC.
15222 PR tree-optimization/60023
15223 * tree-if-conv.c (predicate_mem_writes): Pass true instead of
15224 false to gsi_replace.
15225 * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
15226 has been in some EH region and vec_stmt could throw, add
15227 vec_stmt into the same EH region.
15228 * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
15229 has no lhs, ignore it.
15230 * internal-fn.c (expand_MASK_LOAD): Likewise.
15233 * tree-inline.c (copy_forbidden): Fail for
15234 __attribute__((optimize (0))) functions.
15237 * omp-low.c (simd_clone_struct_copy): If from->inbranch
15238 is set, copy one less argument.
15239 (expand_simd_clones): Don't subtract clone_info->inbranch
15240 from simd_clone_struct_alloc argument.
15242 PR rtl-optimization/57915
15243 * recog.c (simplify_while_replacing): If all unary/binary/relational
15244 operation arguments are constant, attempt to simplify those.
15246 PR middle-end/59261
15247 * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
15248 if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
15250 2014-02-04 Richard Biener <rguenther@suse.de>
15252 PR tree-optimization/60012
15253 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
15254 TBAA disambiguation to all DDRs.
15256 2014-02-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15259 * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
15260 (LINK_SPEC): Use it for -shared, -shared-libgcc.
15262 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
15265 * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
15267 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
15269 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
15270 * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
15272 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
15275 * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
15276 to figure out targets of polymorphic calls with known decl.
15277 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15278 * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
15279 * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
15280 (get_polymorphic_call_info): ... here.
15281 (get_polymorphic_call_info_from_invariant): New function.
15283 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
15285 * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
15286 lookup via vtable pointer; check for type consistency
15287 and turn inconsitent facts into UNREACHABLE.
15288 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15289 * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
15290 type inconsistent querries; return UNREACHABLE instead.
15292 2014-02-03 Richard Henderson <rth@twiddle.net>
15295 * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
15296 already processed this node.
15297 (normalize_one_pred_1): Pass along mark_set.
15298 (normalize_one_pred): Create and destroy a pointer_set_t.
15299 (normalize_one_pred_chain): Likewise.
15301 2014-02-03 Laurent Aflonsi <laurent.alfonsi@st.com>
15303 PR gcov-profile/58602
15304 * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
15306 2014-02-03 Jan Hubicka <hubicka@ucw.cz>
15309 * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
15310 -fno-devirtualize; try to devirtualize by the knowledge of
15311 virtual table pointer given by aggregate propagation.
15312 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15313 (ipa_print_node_jump_functions): Dump also offset that
15314 is relevant for polymorphic calls.
15315 (determine_known_aggregate_parts): Add arg_type parameter; use it
15316 instead of determining the type from pointer type.
15317 (ipa_compute_jump_functions_for_edge): Update call of
15318 determine_known_aggregate_parts.
15319 * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
15320 (gimple_get_virt_method_for_binfo): ... here; simplify using
15321 vtable_pointer_value_to_vtable.
15322 * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
15323 * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
15324 to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
15325 (vtable_pointer_value_to_vtable): Break out from ...; handle also
15327 (vtable_pointer_value_to_binfo): ... here.
15328 * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
15330 2014-02-03 Teresa Johnson <tejohnson@google.com>
15332 * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
15333 redef of outer loop index variable.
15335 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
15339 * doc/extend.texi (Function Attributes): Typo.
15341 2014-02-03 Cong Hou <congh@google.com>
15343 PR tree-optimization/60000
15344 * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
15345 if the vectorized statement is a store. A store statement can only
15346 appear at the end of pattern statements.
15348 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
15350 * config/i386/i386.c (flag_opts): Add -mlong-double-128.
15351 (ix86_option_override_internal): Default long double to 64-bit for
15352 32-bit Bionic and to 128-bit for 64-bit Bionic.
15354 * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
15355 TARGET_LONG_DOUBLE_128 is true.
15356 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
15358 * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
15359 (mlong-double-64): Negate -mlong-double-128.
15360 (mlong-double-128): New option.
15362 * config/i386/i386-c.c (ix86_target_macros): Define
15363 __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
15365 * doc/invoke.texi: Document -mlong-double-128.
15367 2014-02-03 H.J. Lu <hongjiu.lu@intel.com>
15369 PR rtl-optimization/60024
15370 * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
15372 2014-02-03 Markus Trippelsdorf <markus@trippelsdorf.de>
15374 * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
15376 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
15378 PR rtl-optimization/57662
15379 * sel-sched.c (code_motion_path_driver): Do not mark already not
15380 existing blocks in the visiting bitmap.
15382 2014-02-03 Andrey Belevantsev <abel@ispras.ru>
15384 * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
15385 on the insn being emitted.
15387 2014-02-03 James Greenhalgh <james.greenhalgh@arm.com>
15388 Will Deacon <will.deacon@arm.com>
15390 * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
15392 2014-02-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15394 * config/arm/arm-tables.opt: Regenerate.
15396 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15398 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
15399 for vector types other than V16QImode.
15400 * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
15401 define_expand, and call altivec_expand_vec_perm_le when producing
15402 code with little endian element order.
15403 (*altivec_vperm_<mode>_internal): New insn having previous
15404 behavior of altivec_vperm_<mode>.
15405 (altivec_vperm_<mode>_uns): Change to a define_expand, and call
15406 altivec_expand_vec_perm_le when producing code with little endian
15408 (*altivec_vperm_<mode>_uns_internal): New insn having previous
15409 behavior of altivec_vperm_<mode>_uns.
15411 2014-02-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15413 * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
15414 (altivec_vsumsws): Add handling for -maltivec=be with a little
15416 (altivec_vsumsws_direct): New.
15417 (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
15418 gen_altivec_vsumsws.
15420 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
15422 * ipa-devirt.c (subbinfo_with_vtable_at_offset,
15423 vtable_pointer_value_to_binfo): New functions.
15424 * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
15425 * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
15427 2014-02-02 Sandra Loosemore <sandra@codesourcery.com>
15429 * config/nios2/nios2.md (load_got_register): Initialize GOT
15430 pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
15431 * config/nios2/nios2.c (nios2_function_profiler): Likewise.
15433 2014-02-02 Jan Hubicka <hubicka@ucw.cz>
15435 * ipa-prop.c (update_jump_functions_after_inlining): When type is not
15436 preserverd by passthrough, do not propagate the type.
15438 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15440 * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
15441 (mips_atomic_assign_expand_fenv): New function.
15442 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
15444 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15446 * doc/extend.texi (__builtin_mips_get_fcsr): Document.
15447 (__builtin_mips_set_fcsr): Likewise.
15448 * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
15449 MIPS_USI_FTYPE_VOID.
15450 * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
15451 (mips16_expand_set_fcsr): Likewise.
15452 * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
15453 (mips16_set_fcsr_stub): Likewise.
15454 (mips16_get_fcsr_one_only_stub): New class.
15455 (mips16_set_fcsr_one_only_stub): Likewise.
15456 (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
15457 (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
15458 (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
15459 (hard_float): New availability predicate.
15460 (mips_builtins): Add get_fcsr and set_fcsr.
15461 (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
15462 * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
15463 (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
15464 (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
15465 (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
15468 2014-02-02 Richard Sandiford <rdsandiford@googlemail.com>
15470 * config/mips/mips.c (mips_one_only_stub): New class.
15471 (mips_need_mips16_rdhwr_p): Replace with...
15472 (mips16_rdhwr_stub): ...this new variable.
15473 (mips16_stub_call_address): New function.
15474 (mips16_rdhwr_one_only_stub): New class.
15475 (mips_expand_thread_pointer): Use mips16_stub_call_address.
15476 (mips_output_mips16_rdhwr): Delete.
15477 (mips_finish_stub): New function.
15478 (mips_code_end): Use it to handle rdhwr stubs.
15480 2014-02-02 Uros Bizjak <ubizjak@gmail.com>
15483 * config/i386/i386.c (classify_argument): Fix handling of bit_offset
15484 when calculating size of integer atomic types.
15486 2014-02-02 H.J. Lu <hongjiu.lu@intel.com>
15488 * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
15490 2014-02-01 Jakub Jelinek <jakub@redhat.com>
15492 PR tree-optimization/60003
15493 * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
15494 * profile.c (branch_prob): Use gimple_call_builtin_p
15495 to check for BUILT_IN_SETJMP_RECEIVER.
15496 * tree-inline.c (copy_bb): Call notice_special_calls.
15498 2014-01-31 Vladimir Makarov <vmakarov@redhat.com>
15501 * lra-constraints.c (process_alt_operands): Update reload_sum only
15504 2014-01-31 Richard Henderson <rth@redhat.com>
15506 PR middle-end/60004
15507 * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
15508 until after else_eh is processed.
15510 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
15512 * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
15513 (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
15514 (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
15515 in smmintrin.h, remove them.
15516 (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
15517 * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
15518 * config/i386/i386.md (ROUND_SAE): Fix value.
15519 * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
15520 (const48_operand): New.
15521 * config/i386/subst.md (round), (round_expand): Use
15522 const_4_or_8_to_11_operand.
15523 (round_saeonly), (round_saeonly_expand): Use const48_operand.
15525 2014-01-31 Ilya Tocar <ilya.tocar@intel.com>
15527 * config/i386/constraints.md (Yk): Swap meaning with k.
15528 * config/i386/i386.md (movhi_internal): Change Yk to k.
15529 (movqi_internal): Ditto.
15530 (*k<logic><mode>): Ditto.
15533 (kandn<mode>): Ditto.
15534 (*<code>hi_1): Ditto.
15535 (*<code>qi_1): Ditto.
15536 (kxnor<mode>): Ditto.
15537 (kortestzhi): Ditto.
15538 (kortestchi): Ditto.
15540 (*one_cmplhi2_1): Ditto.
15541 (*one_cmplqi2_1): Ditto.
15542 * config/i386/sse.md (): Change k to Yk.
15543 (avx512f_load<mode>_mask): Ditto.
15544 (avx512f_blendm<mode>): Ditto.
15545 (avx512f_store<mode>_mask): Ditto.
15546 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
15547 (avx512f_storedqu<mode>_mask): Ditto.
15548 (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
15550 (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
15551 (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
15552 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
15553 (avx512f_maskcmp<mode>3): Ditto.
15554 (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
15555 (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
15556 (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
15557 (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
15558 (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
15559 (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
15560 (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
15561 (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
15562 (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
15563 (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
15564 (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
15565 (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
15566 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
15567 (vec_extract_lo_<mode>_maskm): Ditto.
15568 (vec_extract_hi_<mode>_maskm): Ditto.
15569 (avx512f_vternlog<mode>_mask): Ditto.
15570 (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
15571 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
15572 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
15573 (avx512f_<code>v8div16qi2_mask): Ditto.
15574 (avx512f_<code>v8div16qi2_mask_store): Ditto.
15575 (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
15576 (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
15577 (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
15578 (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
15579 (*avx512pf_gatherpf<mode>sf_mask): Ditto.
15580 (*avx512pf_gatherpf<mode>df_mask): Ditto.
15581 (*avx512pf_scatterpf<mode>sf_mask): Ditto.
15582 (*avx512pf_scatterpf<mode>df_mask): Ditto.
15583 (avx512cd_maskb_vec_dupv8di): Ditto.
15584 (avx512cd_maskw_vec_dupv16si): Ditto.
15585 (avx512f_vpermi2var<mode>3_maskz): Ditto.
15586 (avx512f_vpermi2var<mode>3_mask): Ditto.
15587 (avx512f_vpermi2var<mode>3_mask): Ditto.
15588 (avx512f_vpermt2var<mode>3_maskz): Ditto.
15589 (*avx512f_gathersi<mode>): Ditto.
15590 (*avx512f_gathersi<mode>_2): Ditto.
15591 (*avx512f_gatherdi<mode>): Ditto.
15592 (*avx512f_gatherdi<mode>_2): Ditto.
15593 (*avx512f_scattersi<mode>): Ditto.
15594 (*avx512f_scatterdi<mode>): Ditto.
15595 (avx512f_compress<mode>_mask): Ditto.
15596 (avx512f_compressstore<mode>_mask): Ditto.
15597 (avx512f_expand<mode>_mask): Ditto.
15598 * config/i386/subst.md (mask): Change k to Yk.
15599 (mask_scalar_merge): Ditto.
15602 2014-01-31 Marc Glisse <marc.glisse@inria.fr>
15604 * doc/extend.texi (Vector Extensions): Document ?: in C++.
15606 2014-01-31 Richard Biener <rguenther@suse.de>
15608 PR middle-end/59990
15609 * builtins.c (fold_builtin_memory_op): Make sure to not
15610 use a floating-point mode or a boolean or enumeral type for
15611 the copy operation.
15613 2014-01-30 DJ Delorie <dj@redhat.com>
15615 * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
15616 * config/msp430/msp430.md (msp430_refsym_need_exit): New.
15617 * config/msp430/msp430.c (msp430_expand_epilogue): Call it
15618 whenever main() has an epilogue.
15620 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15622 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
15623 unused variable "field".
15624 * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
15625 (vsx_mergeh_<mode>): Likewise.
15626 * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
15627 (altivec_vmrghh): Likewise.
15628 (altivec_vmrghw): Likewise.
15629 (altivec_vmrglb): Likewise.
15630 (altivec_vmrglh): Likewise.
15631 (altivec_vmrglw): Likewise.
15632 (altivec_vspltb): Add missing uses.
15633 (altivec_vsplth): Likewise.
15634 (altivec_vspltw): Likewise.
15635 (altivec_vspltsf): Likewise.
15637 2014-01-30 Jakub Jelinek <jakub@redhat.com>
15640 * ifcvt.c (cond_exec_process_insns): Don't conditionalize
15641 frame related instructions.
15643 2014-01-30 Vladimir Makarov <vmakarov@redhat.com>
15645 PR rtl-optimization/59959
15646 * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
15647 any reload of register whose subreg is invalid.
15649 2014-01-30 Jakub Jelinek <jakub@redhat.com>
15651 * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
15652 * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
15653 Add missing return type - void.
15655 2014-01-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15657 * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
15658 gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
15659 remove element index adjustment for endian (now handled in vsx.md
15661 (altivec_expand_vec_perm_const): Use
15662 gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
15663 * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
15664 (vsx_xxspltw_<mode>): Adjust element index for little endian.
15665 * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
15666 define_expand and a new define_insn *altivec_vspltb_internal;
15667 adjust for -maltivec=be on a little endian target.
15668 (altivec_vspltb_direct): New.
15669 (altivec_vsplth): Divide into a define_expand and a new
15670 define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
15671 little endian target.
15672 (altivec_vsplth_direct): New.
15673 (altivec_vspltw): Divide into a define_expand and a new
15674 define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
15675 little endian target.
15676 (altivec_vspltw_direct): New.
15677 (altivec_vspltsf): Divide into a define_expand and a new
15678 define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
15679 a little endian target.
15681 2014-01-30 Richard Biener <rguenther@suse.de>
15683 PR tree-optimization/59993
15684 * tree-ssa-forwprop.c (associate_pointerplus): Check we
15685 can propagate form the earlier stmt and avoid the transform
15686 when the intermediate result is needed.
15688 2014-01-30 Alangi Derick <alangiderick@gmail.com>
15690 * README.Portability: Fix typo.
15692 2014-01-30 David Holsgrove <david.holsgrove@xilinx.com>
15694 * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
15695 comparison_operator with ordered_comparison_operator.
15697 2014-01-30 Nick Clifton <nickc@redhat.com>
15699 * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
15700 Rename to mn10300_store_multiple_regs.
15701 * config/mn10300/mn10300.c: Likewise.
15702 * config/mn10300/mn10300.md (store_movm): Fix typo: call
15703 store_multiple_regs.
15704 * config/mn10300/predicates.md (mn10300_store_multiple_operation):
15705 Call mn10300_store_multiple_regs.
15707 2014-01-30 Nick Clifton <nickc@redhat.com>
15708 DJ Delorie <dj@redhat.com>
15710 * config/rl78/rl78.c (register_sizes): Make the "upper half" of
15711 %fp 2 to keep registers after it properly word-aligned.
15712 (rl78_alloc_physical_registers_umul): Handle the case where both
15713 input operands are the same.
15715 2014-01-30 Richard Biener <rguenther@suse.de>
15717 PR tree-optimization/59903
15718 * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
15721 2014-01-30 Jason Merrill <jason@redhat.com>
15724 * tree.c (walk_type_fields): Handle VECTOR_TYPE.
15727 * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
15729 2014-01-30 Richard Biener <rguenther@suse.de>
15731 PR tree-optimization/59951
15732 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
15734 2014-01-30 Savin Zlobec <savin.zlobec@gmail.com>
15737 * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
15738 SFmode to DFmode case.
15740 2014-01-29 DJ Delorie <dj@redhat.com>
15742 * config/msp430/msp430.opt (-minrt): New.
15743 * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
15745 (ENDFILE_SPEC): Likewise.
15747 2014-01-29 Jan Hubicka <hubicka@ucw.cz>
15749 * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
15750 (estimate_function_body_sizes): Use it.
15752 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
15755 * dwarf2out.c (is_cxx_auto): New.
15756 (is_base_type): Use it.
15757 (gen_type_die_with_usage): Likewise.
15759 2014-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15761 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Use
15762 CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
15763 * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
15764 -maltivec=be with LE targets.
15765 (vsx_mergeh_<mode>): Likewise.
15766 * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
15767 (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
15768 (altivec_vmrghb): Replace with define_expand and new
15769 *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
15770 (altivec_vmrghb_direct): New define_insn.
15771 (altivec_vmrghh): Replace with define_expand and new
15772 *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
15773 (altivec_vmrghh_direct): New define_insn.
15774 (altivec_vmrghw): Replace with define_expand and new
15775 *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
15776 (altivec_vmrghw_direct): New define_insn.
15777 (*altivec_vmrghsf): Adjust for endianness.
15778 (altivec_vmrglb): Replace with define_expand and new
15779 *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
15780 (altivec_vmrglb_direct): New define_insn.
15781 (altivec_vmrglh): Replace with define_expand and new
15782 *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
15783 (altivec_vmrglh_direct): New define_insn.
15784 (altivec_vmrglw): Replace with define_expand and new
15785 *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
15786 (altivec_vmrglw_direct): New define_insn.
15787 (*altivec_vmrglsf): Adjust for endianness.
15788 (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
15789 (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
15790 (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
15791 (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
15792 (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
15793 (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
15794 (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
15795 (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
15797 2014-01-29 Marcus Shawcroft <marcus.shawcroft@arm.com>
15799 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
15800 (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
15803 2014-01-29 Richard Biener <rguenther@suse.de>
15805 PR tree-optimization/58742
15806 * tree-ssa-forwprop.c (associate_pointerplus): Rename to
15807 associate_pointerplus_align.
15808 (associate_pointerplus_diff): New function.
15809 (associate_pointerplus): Likewise. Call associate_pointerplus_align
15810 and associate_pointerplus_diff.
15812 2014-01-29 Richard Biener <rguenther@suse.de>
15814 * lto-streamer.h (LTO_major_version): Bump to 3.
15815 (LTO_minor_version): Reset to 0.
15817 2014-01-29 Renlin Li <Renlin.Li@arm.com>
15819 * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
15820 * config/arm/arm.c (FL_FOR_ARCH7VE): New.
15821 (arm_file_start): Generate correct asm header for armv7ve.
15822 * config/arm/bpabi.h: Add multilib support for armv7ve.
15823 * config/arm/driver-arm.c: Change the architectures of cortex-a7
15824 and cortex-a15 to armv7ve.
15825 * config/arm/t-aprofile: Add multilib support for armv7ve.
15826 * doc/invoke.texi: Document -march=armv7ve.
15828 2014-01-29 Richard Biener <rguenther@suse.de>
15830 PR tree-optimization/58742
15831 * tree-ssa-forwprop.c (associate_plusminus): Return true
15832 if we changed sth, defer EH cleanup to ...
15833 (ssa_forward_propagate_and_combine): ... here. Call simplify_mult.
15834 (simplify_mult): New function.
15836 2014-01-29 Jakub Jelinek <jakub@redhat.com>
15838 PR middle-end/59917
15839 PR tree-optimization/59920
15840 * tree.c (build_common_builtin_nodes): Remove
15841 __builtin_setjmp_dispatcher initialization.
15842 * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
15843 * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
15844 instead of gsi_after_labels + manually skipping debug stmts.
15845 Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
15846 ignore bbs with IFN_ABNORMAL_DISPATCHER.
15847 * tree-inline.c (copy_edges_for_bb): Remove
15848 can_make_abnormal_goto argument, instead add abnormal_goto_dest
15849 argument. Ignore computed_goto_p stmts. Don't call
15850 make_abnormal_goto_edges. If a call might need abnormal edges
15851 for non-local gotos, see if it already has an edge to
15852 IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
15853 with true argument, don't do anything then, otherwise add
15854 EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
15855 (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
15857 * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
15858 (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
15859 (lower_stmt): Don't set data->calls_builtin_setjmp.
15860 (lower_builtin_setjmp): Adjust comment.
15861 * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
15862 * tree-cfg.c (found_computed_goto): Remove.
15863 (factor_computed_gotos): Remove.
15864 (make_goto_expr_edges): Return bool, true for computed gotos.
15865 Don't call make_abnormal_goto_edges.
15866 (build_gimple_cfg): Don't set found_computed_goto, don't call
15867 factor_computed_gotos.
15868 (computed_goto_p): No longer static.
15869 (make_blocks): Don't set found_computed_goto.
15870 (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
15871 (make_edges): If make_goto_expr_edges returns true, push bb
15872 into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
15873 instead of calling make_abnormal_goto_edges push bb into ab_edge_call
15874 vector. Record mapping between bbs and OpenMP regions if there
15875 are any, adjust make_gimple_omp_edges caller. Call
15876 handle_abnormal_edges.
15877 (make_abnormal_goto_edges): Remove.
15878 * tree-cfg.h (make_abnormal_goto_edges): Remove.
15879 (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
15880 * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
15881 * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
15882 * internal-fn.def (ABNORMAL_DISPATCHER): New.
15883 * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
15884 filling *region also set *region_idx to (*region)->entry->index.
15887 * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
15888 For REGs set ORIGINAL_REGNO.
15890 2014-01-29 Bingfeng Mei <bmei@broadcom.com>
15892 * doc/md.texi: Mention that a target shouldn't implement
15893 vec_widen_(s|u)mul_even/odd pair if it is less efficient
15896 2014-01-29 Jakub Jelinek <jakub@redhat.com>
15898 PR tree-optimization/59594
15899 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
15900 a copy of the datarefs vector rather than the vector itself.
15902 2014-01-28 Jason Merrill <jason@redhat.com>
15905 * dwarf2out.c (auto_die): New static.
15906 (gen_type_die_with_usage): Handle C++1y 'auto'.
15907 (gen_subprogram_die): If in-class DIE had 'auto', emit type again
15910 2014-01-28 H.J. Lu <hongjiu.lu@intel.com>
15913 * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
15914 (SPEC_X32): Likewise.
15915 (SPEC_64): Likewise.
15916 * config/i386/i386.c (ix86_option_override_internal): Turn off
15917 OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
15919 (x86_file_start): Output .code16gcc for TARGET_16BIT.
15920 * config/i386/i386.h (TARGET_16BIT): New macro.
15921 (TARGET_16BIT_P): Likewise.
15922 * config/i386/i386.opt: Add m16.
15923 * doc/invoke.texi: Document -m16.
15925 2014-01-28 Jakub Jelinek <jakub@redhat.com>
15927 PR preprocessor/59935
15928 * input.c (location_get_source_line): Bail out on when line number
15929 is zero, and test the return value of lookup_or_add_file_to_cache_tab.
15931 2014-01-28 Richard Biener <rguenther@suse.de>
15933 PR tree-optimization/58742
15934 * tree-ssa-forwprop.c (associate_plusminus): Handle
15935 pointer subtraction of the form (T)(P + A) - (T)P.
15937 2014-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15939 * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
15942 2014-01-28 Richard Biener <rguenther@suse.de>
15945 2014-01-28 Richard Biener <rguenther@suse.de>
15947 PR rtl-optimization/45364
15948 PR rtl-optimization/59890
15949 * var-tracking.c (local_get_addr_clear_given_value): Handle
15950 already cleared slot.
15951 (val_reset): Handle not allocated local_get_addr_cache.
15952 (vt_find_locations): Use post-order on the inverted CFG.
15954 2014-01-28 Richard Biener <rguenther@suse.de>
15956 * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
15958 2014-01-28 Richard Biener <rguenther@suse.de>
15960 PR rtl-optimization/45364
15961 PR rtl-optimization/59890
15962 * var-tracking.c (local_get_addr_clear_given_value): Handle
15963 already cleared slot.
15964 (val_reset): Handle not allocated local_get_addr_cache.
15965 (vt_find_locations): Use post-order on the inverted CFG.
15967 2014-01-28 Alan Modra <amodra@gmail.com>
15969 * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
15970 * configure.ac <recursive call for build != host>: Define
15971 GENERATOR_FILE. Comment. Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
15972 and LD_FOR_BUILD too.
15973 * configure: Regenerate.
15975 2014-01-27 Allan Sandfeld Jensen <sandfeld@kde.org>
15977 * config/i386/i386.c (get_builtin_code_for_version): Separate
15978 Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
15979 Broadwell from Haswell.
15981 2014-01-27 Steve Ellcey <sellcey@mips.com>
15983 * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
15984 Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
15985 * config/mips/mips.c (mips_option_override): Change setting
15987 * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
15988 * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
15989 Change from Mask to Var.
15991 2014-01-27 Jeff Law <law@redhat.com>
15993 * ipa-inline.c (inline_small_functions): Fix typo.
15995 2014-01-27 Ilya Tocar <ilya.tocar@intel.com>
15997 * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
15998 (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
15999 (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
16000 (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
16001 (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
16002 (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
16003 (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
16004 (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
16005 (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
16006 (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
16007 (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
16008 (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
16009 (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
16010 (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
16011 (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
16012 (_mm512_storeu_epi64): Ditto.
16013 (_mm512_cmpge_epi32_mask): Ditto.
16014 (_mm512_cmpge_epu32_mask): Ditto.
16015 (_mm512_cmpge_epi64_mask): Ditto.
16016 (_mm512_cmpge_epu64_mask): Ditto.
16017 (_mm512_cmple_epi32_mask): Ditto.
16018 (_mm512_cmple_epu32_mask): Ditto.
16019 (_mm512_cmple_epi64_mask): Ditto.
16020 (_mm512_cmple_epu64_mask): Ditto.
16021 (_mm512_cmplt_epi32_mask): Ditto.
16022 (_mm512_cmplt_epu32_mask): Ditto.
16023 (_mm512_cmplt_epi64_mask): Ditto.
16024 (_mm512_cmplt_epu64_mask): Ditto.
16025 (_mm512_cmpneq_epi32_mask): Ditto.
16026 (_mm512_cmpneq_epu32_mask): Ditto.
16027 (_mm512_cmpneq_epi64_mask): Ditto.
16028 (_mm512_cmpneq_epu64_mask): Ditto.
16029 (_mm512_expand_pd): Ditto.
16030 (_mm512_expand_ps): Ditto.
16031 * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
16032 VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
16033 VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
16034 * config/i386/i386.c (ix86_builtins): Add
16035 IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
16036 IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
16037 IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
16038 IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
16039 IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
16040 IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
16041 IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
16042 IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
16043 IX86_BUILTIN_PMOVUSQW512_MEM.
16044 (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
16045 __builtin_ia32_pmovsqd512mem_mask,
16046 __builtin_ia32_pmovqd512mem_mask,
16047 __builtin_ia32_pmovusqw512mem_mask,
16048 __builtin_ia32_pmovsqw512mem_mask,
16049 __builtin_ia32_pmovqw512mem_mask,
16050 __builtin_ia32_pmovusdw512mem_mask,
16051 __builtin_ia32_pmovsdw512mem_mask,
16052 __builtin_ia32_pmovdw512mem_mask,
16053 __builtin_ia32_pmovqb512mem_mask,
16054 __builtin_ia32_pmovusqb512mem_mask,
16055 __builtin_ia32_pmovsqb512mem_mask,
16056 __builtin_ia32_pmovusdb512mem_mask,
16057 __builtin_ia32_pmovsdb512mem_mask,
16058 __builtin_ia32_pmovdb512mem_mask.
16059 (bdesc_args): Add __builtin_ia32_expanddf512,
16060 __builtin_ia32_expandsf512.
16061 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
16062 VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
16063 VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
16064 * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
16065 (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
16066 (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
16067 (avx512f_<code>v8div16qi2_mask_store): This.
16068 (avx512f_expand<mode>): New.
16070 2014-01-27 Kirill Yukhin <kirill.yukhin@intel.com>
16072 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
16074 (_mm512_mask_prefetch_i64gather_pd): Ditto.
16075 (_mm512_prefetch_i32scatter_pd): Ditto.
16076 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
16077 (_mm512_prefetch_i64scatter_pd): Ditto.
16078 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
16079 (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
16080 (_mm512_mask_prefetch_i64gather_ps): Ditto.
16081 (_mm512_prefetch_i32scatter_ps): Ditto.
16082 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
16083 (_mm512_prefetch_i64scatter_ps): Ditto.
16084 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
16085 * config/i386/i386-builtin-types.def: Define
16086 VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
16087 and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
16088 * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
16089 IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
16090 IX86_BUILTIN_SCATTERPFQPD.
16091 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
16092 __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
16093 __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
16094 __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
16095 __builtin_ia32_scatterpfqps.
16096 (ix86_expand_builtin): Expand new built-ins.
16097 * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
16098 fix memory access data type.
16099 (*avx512pf_gatherpf<mode>_mask): Ditto.
16100 (*avx512pf_gatherpf<mode>): Ditto.
16101 (avx512pf_scatterpf<mode>): Ditto.
16102 (*avx512pf_scatterpf<mode>_mask): Ditto.
16103 (*avx512pf_scatterpf<mode>): Ditto.
16104 (GATHER_SCATTER_SF_MEM_MODE): New.
16105 (avx512pf_gatherpf<mode>df): Ditto.
16106 (*avx512pf_gatherpf<mode>df_mask): Ditto.
16107 (*avx512pf_scatterpf<mode>df): Ditto.
16109 2014-01-27 Jakub Jelinek <jakub@redhat.com>
16112 * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
16113 know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
16116 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
16118 * common/config/arm/arm-common.c
16119 (arm_rewrite_mcpu): Handle multiple names.
16121 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
16123 2014-01-27 James Greenhalgh <james.greenhalgh@arm.com>
16125 * gimple-builder.h (create_gimple_tmp): Delete.
16127 2014-01-27 Christian Bruel <christian.bruel@st.com>
16129 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
16132 2014-01-26 John David Anglin <danglin@gcc.gnu.org>
16134 * config/pa/pa.md (call): Generate indirect long calls to non-local
16135 functions when outputing 32-bit code.
16136 (call_value): Likewise except for special call to buggy powf function.
16138 * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
16139 portable runtime and PIC indirect calls.
16140 (pa_output_indirect_call): Remove unnecessary nop from portable runtime
16141 and PIC call sequences. Use ldo instead of blr to set return register
16142 in PIC call sequence.
16144 2014-01-25 Walter Lee <walt@tilera.com>
16146 * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
16147 avoid clobbering a live register.
16149 2014-01-25 Walter Lee <walt@tilera.com>
16151 * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
16152 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
16153 * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
16154 Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
16156 2014-01-25 Walter Lee <walt@tilera.com>
16158 * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
16159 arguments on even registers.
16160 (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
16162 * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
16163 (BIGGEST_ALIGNMENT): Ditto.
16164 (BIGGEST_FIELD_ALIGNMENT): Ditto.
16166 2014-01-25 Walter Lee <walt@tilera.com>
16168 * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
16169 insns before bundling.
16170 * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
16172 2014-01-25 Walter Lee <walt@tilera.com>
16174 * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
16175 PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
16176 * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
16178 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
16180 * config/mips/constraints.md (kl): Delete.
16181 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
16182 define expands, using...
16183 (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
16184 instructions for MIPS16.
16185 (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
16186 non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
16188 2014-01-25 Walter Lee <walt@tilera.com>
16190 * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
16194 2014-01-25 Walter Lee <walt@tilera.com>
16196 * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
16197 (TARGET_EXPAND_TO_RTL_HOOK): Define.
16199 2014-01-25 Richard Sandiford <rdsandiford@googlemail.com>
16201 * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
16204 2014-01-25 Jakub Jelinek <jakub@redhat.com>
16206 * print-rtl.c (in_call_function_usage): New var.
16207 (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
16208 EXPR_LIST mode as mode and not as reg note name.
16210 PR middle-end/59561
16211 * cfgloopmanip.c (copy_loop_info): If
16212 loop->warned_aggressive_loop_optimizations, make sure
16213 the flag is set in target loop too.
16215 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
16217 * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
16219 * builtins.def: Likewise.
16220 * cilk.h (fn_contains_cilk_spawn_p): Likewise.
16221 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
16222 * ira.c (ira_setup_eliminable_regset): Likewise.
16223 * omp-low.c (gate_expand_omp): Likewise.
16224 (execute_lower_omp): Likewise.
16225 (diagnose_sb_0): Likewise.
16226 (gate_diagnose_omp_blocks): Likewise.
16227 (simd_clone_clauses_extract): Likewise.
16230 2014-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16232 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
16233 correction for little endian...
16234 * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
16237 2014-01-24 Jeff Law <law@redhat.com>
16239 PR tree-optimization/59919
16240 * tree-vrp.c (find_assert_locations_1): Do not register asserts
16241 for non-returning calls.
16243 2014-01-24 James Greenhalgh <james.greenhalgh@arm.com>
16245 * common/config/aarch64/aarch64-common.c
16246 (aarch64_rewrite_mcpu): Handle multiple names.
16247 * config/aarch64/aarch64.h
16248 (BIG_LITTLE_SPEC): Do not discard mcpu switches.
16250 2014-01-24 Dodji Seketeli <dodji@redhat.com>
16252 * input.c (add_file_to_cache_tab): Handle the case where fopen
16255 2014-01-23 H.J. Lu <hongjiu.lu@intel.com>
16258 * config/i386/i386.md (pushsf splitter): Get stack adjustment
16259 from push operand if code of push isn't PRE_DEC.
16261 2014-01-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16264 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16265 -mquad-memory-atomic. Update -mquad-memory documentation to say
16266 it is only used for non-atomic loads/stores.
16268 * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
16269 -mquad-memory or -mquad-memory-atomic switches.
16271 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
16272 -mquad-memory-atomic to ISA 2.07 support.
16274 * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
16275 to separate support of normal quad word memory operations (ldq, stq)
16276 from the atomic quad word memory operations.
16278 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16279 support to separate non-atomic quad word operations from atomic
16280 quad word operations. Disable non-atomic quad word operations in
16281 little endian mode so that we don't have to swap words after the
16282 load and before the store.
16283 (quad_load_store_p): Add comment about atomic quad word support.
16284 (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
16285 options printed with -mdebug=reg.
16287 * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
16288 -mquad-memory-atomic as the test for whether we have quad word
16289 atomic instructions.
16290 (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
16291 or -mp8-vector are used, allow byte/half-word atomic operations.
16293 * config/rs6000/sync.md (load_lockedti): Insure that the address
16294 is a proper indexed or indirect address for the lqarx instruction.
16295 On little endian systems, swap the hi/lo registers after the lqarx
16297 (load_lockedpti): Use indexed_or_indirect_operand predicate to
16298 insure the address is valid for the lqarx instruction.
16299 (store_conditionalti): Insure that the address is a proper indexed
16300 or indirect address for the stqcrx. instruction. On little endian
16301 systems, swap the hi/lo registers before doing the stqcrx.
16303 (store_conditionalpti): Use indexed_or_indirect_operand predicate to
16304 insure the address is valid for the stqcrx. instruction.
16306 * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
16307 Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
16308 type of quad memory support is available.
16310 2014-01-23 Vladimir Makarov <vmakarov@redhat.com>
16312 PR regression/59915
16313 * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
16314 there is a danger of looping.
16316 2014-01-23 Pat Haugen <pthaugen@us.ibm.com>
16318 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16319 force flag_ira_loop_pressure if set via command line.
16321 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
16323 * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
16324 (ashr_simd): New builtin handling DI mode.
16325 * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
16326 (aarch64_sshr_simddi): New match pattern.
16327 * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
16328 (vshrd_n_s64): Likewise.
16329 * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
16331 2014-01-23 Nick Clifton <nickc@redhat.com>
16333 * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
16334 (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
16335 favour of mcu specific scripts.
16336 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
16339 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
16340 Alex Velenko <Alex.Velenko@arm.com>
16342 * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
16343 (vaddv_s16): Likewise.
16344 (vaddv_s32): Likewise.
16345 (vaddv_u8): Likewise.
16346 (vaddv_u16): Likewise.
16347 (vaddv_u32): Likewise.
16348 (vaddvq_s8): Likewise.
16349 (vaddvq_s16): Likewise.
16350 (vaddvq_s32): Likewise.
16351 (vaddvq_s64): Likewise.
16352 (vaddvq_u8): Likewise.
16353 (vaddvq_u16): Likewise.
16354 (vaddvq_u32): Likewise.
16355 (vaddvq_u64): Likewise.
16356 (vaddv_f32): Likewise.
16357 (vaddvq_f32): Likewise.
16358 (vaddvq_f64): Likewise.
16359 (vmaxv_f32): Likewise.
16360 (vmaxv_s8): Likewise.
16361 (vmaxv_s16): Likewise.
16362 (vmaxv_s32): Likewise.
16363 (vmaxv_u8): Likewise.
16364 (vmaxv_u16): Likewise.
16365 (vmaxv_u32): Likewise.
16366 (vmaxvq_f32): Likewise.
16367 (vmaxvq_f64): Likewise.
16368 (vmaxvq_s8): Likewise.
16369 (vmaxvq_s16): Likewise.
16370 (vmaxvq_s32): Likewise.
16371 (vmaxvq_u8): Likewise.
16372 (vmaxvq_u16): Likewise.
16373 (vmaxvq_u32): Likewise.
16374 (vmaxnmv_f32): Likewise.
16375 (vmaxnmvq_f32): Likewise.
16376 (vmaxnmvq_f64): Likewise.
16377 (vminv_f32): Likewise.
16378 (vminv_s8): Likewise.
16379 (vminv_s16): Likewise.
16380 (vminv_s32): Likewise.
16381 (vminv_u8): Likewise.
16382 (vminv_u16): Likewise.
16383 (vminv_u32): Likewise.
16384 (vminvq_f32): Likewise.
16385 (vminvq_f64): Likewise.
16386 (vminvq_s8): Likewise.
16387 (vminvq_s16): Likewise.
16388 (vminvq_s32): Likewise.
16389 (vminvq_u8): Likewise.
16390 (vminvq_u16): Likewise.
16391 (vminvq_u32): Likewise.
16392 (vminnmv_f32): Likewise.
16393 (vminnmvq_f32): Likewise.
16394 (vminnmvq_f64): Likewise.
16396 2014-01-23 James Greenhalgh <james.greenhalgh@arm.com>
16398 * config/aarch64/aarch64-simd.md
16399 (aarch64_dup_lane<mode>): Correct lane number on big-endian.
16400 (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
16401 (*aarch64_mul3_elt<mode>): Likewise.
16402 (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
16403 (*aarch64_mul3_elt_to_64v2df): Likewise.
16404 (*aarch64_mla_elt<mode>): Likewise.
16405 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
16406 (*aarch64_mls_elt<mode>): Likewise.
16407 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
16408 (*aarch64_fma4_elt<mode>): Likewise.
16409 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
16410 (*aarch64_fma4_elt_to_64v2df): Likewise.
16411 (*aarch64_fnma4_elt<mode>): Likewise.
16412 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
16413 (*aarch64_fnma4_elt_to_64v2df): Likewise.
16414 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
16415 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
16416 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
16417 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
16418 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
16419 (aarch64_sqdmull_lane<mode>_internal): Likewise.
16420 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
16422 2013-01-23 Alex Velenko <Alex.Velenko@arm.com>
16424 * config/aarch64/aarch64-simd.md
16425 (aarch64_be_checked_get_lane<mode>): New define_expand.
16426 * config/aarch64/aarch64-simd-builtins.def
16427 (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
16428 New builtin definition.
16429 * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
16430 Use new safe be builtin.
16432 2014-01-23 Alex Velenko <Alex.Velenko@arm.com>
16434 * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
16436 (aarch64_be_st1<mode>): Likewise.
16437 (aarch_ld1<VALL:mode>): Define_expand modified.
16438 (aarch_st1<VALL:mode>): Likewise.
16439 * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
16440 (UNSPEC_ST1): Likewise.
16442 2014-01-23 David Holsgrove <david.holsgrove@xilinx.com>
16444 * config/microblaze/microblaze.md: Add trap insn and attribute
16446 2014-01-23 Dodji Seketeli <dodji@redhat.com>
16448 PR preprocessor/58580
16449 * input.h (location_get_source_line): Take an additional line_size
16451 (void diagnostics_file_cache_fini): Declare new function.
16452 * input.c (struct fcache): New type.
16453 (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
16454 New static constants.
16455 (diagnostic_file_cache_init, total_lines_num)
16456 (lookup_file_in_cache_tab, evicted_cache_tab_entry)
16457 (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
16458 (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
16459 (get_next_line, read_next_line, goto_next_line, read_line_num):
16460 New static function definitions.
16461 (diagnostic_file_cache_fini): New function.
16462 (location_get_source_line): Take an additional output line_len
16463 parameter. Re-write using lookup_or_add_file_to_cache_tab and
16465 * diagnostic.c (diagnostic_finish): Call
16466 diagnostic_file_cache_fini.
16467 (adjust_line): Take an additional input parameter for the length
16468 of the line, rather than calculating it with strlen.
16469 (diagnostic_show_locus): Adjust the use of
16470 location_get_source_line and adjust_line with respect to their new
16471 signature. While displaying a line now, do not stop at the first
16472 null byte. Rather, display the zero byte as a space and keep
16473 going until we reach the size of the line.
16474 * Makefile.in: Add vec.o to OBJS-libcommon
16476 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
16477 Ilya Tocar <ilya.tocar@intel.com>
16479 * config/i386/avx512fintrin.h (_mm512_kmov): New.
16480 * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
16481 (__builtin_ia32_kmov16): Ditto.
16482 * config/i386/i386.md (UNSPEC_KMOV): New.
16485 2014-01-23 Kirill Yukhin <kirill.yukhin@intel.com>
16487 * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
16488 (_mm512_storeu_si512): Ditto.
16490 2014-01-23 Richard Sandiford <rdsandiford@googlemail.com>
16493 * rtl.h (get_referenced_operands): Declare.
16494 * recog.c (get_referenced_operands): New function.
16495 * config/mips/mips.c (mips_reorg_process_insns): Check which asm
16496 operands have been referenced when recording LO_SUM references.
16498 2014-01-22 David Holsgrove <david.holsgrove@xilinx.com>
16500 * config/microblaze/microblaze.md: Correct bswaphi2 insn.
16502 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
16504 * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
16505 Enable for generic and recent AMD targets.
16507 2014-01-22 Jan Hubicka <hubicka@ucw.cz>
16509 * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
16510 ARG_SIZE note when adjustment was eliminated.
16512 2014-01-22 Jeff Law <law@redhat.com>
16514 PR tree-optimization/59597
16515 * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
16516 in file. Accept new argument REGISTERING and use it to modify
16517 dump output appropriately.
16518 (register_jump_thread): Corresponding changes.
16519 (mark_threaded_blocks): Reinstate code to cancel unprofitable
16520 thread paths involving joiner blocks. Add code to dump cancelled
16521 jump threading paths.
16523 2014-01-22 Vladimir Makarov <vmakarov@redhat.com>
16525 PR rtl-optimization/59477
16526 * lra-constraints.c (inherit_in_ebb): Process call for living hard
16527 regs. Update reloads_num and potential_reload_hard_regs for all insns.
16529 2014-01-22 Tom Tromey <tromey@redhat.com>
16531 * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
16533 * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
16535 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
16537 PR rtl-optimization/59896
16538 * lra-constraints.c (process_alt_operands): Check unused note for
16539 matched operands of insn with no output reloads.
16541 2014-01-21 Richard Sandiford <rdsandiford@googlemail.com>
16543 * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
16544 (mips_move_from_gpr_cost): Likewise.
16546 2014-01-21 Vladimir Makarov <vmakarov@redhat.com>
16548 PR rtl-optimization/59858
16549 * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
16550 ira_class_hard_regs_num.
16551 (process_alt_operands): Increase reject for dying matched operand.
16553 2014-01-21 Jakub Jelinek <jakub@redhat.com>
16556 * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
16557 smaller than size, perform several stores or loads and stores
16558 at dst + count - size to store or copy all of size bytes, rather
16559 than just last modesize bytes.
16561 2014-01-20 DJ Delorie <dj@redhat.com>
16563 * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
16564 that CLOBBERs are REGs before propogating their values.
16566 2014-01-20 H.J. Lu <hongjiu.lu@intel.com>
16568 PR middle-end/59789
16569 * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
16570 (cgraph_inline_failed_type): New function.
16571 * cgraph.h (DEFCIFCODE): Add type.
16572 (cgraph_inline_failed_type_t): New enum.
16573 (cgraph_inline_failed_type): New prototype.
16574 * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
16575 FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
16576 FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
16577 LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
16578 MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
16579 RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
16580 OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
16581 INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
16582 Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
16583 FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
16584 EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
16585 OPTIMIZATION_MISMATCH.
16586 * tree-inline.c (expand_call_inline): Emit errors during
16587 early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
16589 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
16592 * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
16593 mode attribute in insn output.
16595 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
16597 * output.h (output_constant): Delete.
16598 * varasm.c (output_constant): Make private.
16600 2014-01-20 Alex Velenko <Alex.Velenko@arm.com>
16602 * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
16604 2014-01-20 Jakub Jelinek <jakub@redhat.com>
16606 PR middle-end/59860
16607 * tree.h (fold_builtin_strcat): New prototype.
16608 * builtins.c (fold_builtin_strcat): No longer static. Add len
16609 argument, if non-NULL, don't call c_strlen. Optimize
16610 directly into __builtin_memcpy instead of __builtin_strcpy.
16611 (fold_builtin_2): Adjust fold_builtin_strcat caller.
16612 * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
16614 2014-01-20 Uros Bizjak <ubizjak@gmail.com>
16616 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
16617 for SImode_address_operand operands, having only a REG argument.
16619 2014-01-20 Marcus Shawcroft <marcus.shawcroft@arm.com>
16621 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
16622 loader name using mbig-endian.
16623 (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
16625 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
16627 * doc/invoke.texi (-march): Clarify documentation for AArch64.
16628 (-mtune): Likewise.
16631 2014-01-20 Tejas Belagod <tejas.belagod@arm.com>
16633 * config/aarch64/aarch64-protos.h
16634 (aarch64_cannot_change_mode_class_ptr): Declare.
16635 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
16636 aarch64_cannot_change_mode_class_ptr): New.
16637 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
16638 backend hook aarch64_cannot_change_mode_class.
16640 2014-01-20 James Greenhalgh <james.greenhalgh@arm.com>
16642 * common/config/aarch64/aarch64-common.c
16643 (aarch64_handle_option): Don't handle any option order logic here.
16644 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
16645 selected_cpu, warn on architecture version mismatch.
16646 (aarch64_override_options): Fix parsing order for option strings.
16648 2014-01-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16649 Iain Sandoe <iain@codesourcery.com>
16652 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
16653 warning. Amend comment to reflect current functionality.
16655 2014-01-20 Richard Biener <rguenther@suse.de>
16657 PR middle-end/59860
16658 * builtins.c (fold_builtin_strcat): Remove case better handled
16659 by tree-ssa-strlen.c.
16661 2014-01-20 Alan Lawrence <alan.lawrence@arm.com>
16663 * config/aarch64/aarch64.opt
16664 (mcpu, march, mtune): Make case-insensitive.
16666 2014-01-20 Jakub Jelinek <jakub@redhat.com>
16669 * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
16670 if operands[1] is a REG or ZERO_EXTEND of a REG.
16672 2014-01-19 Jan Hubicka <hubicka@ucw.cz>
16674 * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
16676 2014-01-19 John David Anglin <danglin@gcc.gnu.org>
16678 * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
16679 long non-pic millicode calls.
16681 2014-01-19 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16683 * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
16685 2014-01-19 Kito Cheng <kito@0xlab.org>
16687 * builtins.c (expand_movstr): Check movstr expand done or fail.
16689 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
16690 H.J. Lu <hongjiu.lu@intel.com>
16693 * config/i386/i386.md (*lea<mode>): Zero-extend return register
16694 to DImode for zero-extended addresses.
16696 2014-01-19 Jakub Jelinek <jakub@redhat.com>
16698 PR rtl-optimization/57763
16699 * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
16700 on the new indirect jump_insn and increment LABEL_NUSES (label).
16702 2014-01-18 H.J. Lu <hongjiu.lu@intel.com>
16706 * config.gcc (x86_archs): New variable.
16707 (x86_64_archs): Likewise.
16708 (x86_cpus): Likewise.
16709 Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
16710 --with-arch/--with-cpu= options.
16711 Support --with-arch=/--with-cpu={nehalem,westmere,
16712 sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
16714 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
16716 * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
16717 and PROCESSOR_ATHLON to simplify code. Move "memory" calculation.
16719 2014-01-18 Uros Bizjak <ubizjak@gmail.com>
16721 * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
16723 2014-01-18 Jakub Jelinek <jakub@redhat.com>
16726 * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
16727 clear cpp_get_options (parse_in)->warn_unused_macros for
16728 ix86_target_macros_internal with cpp_define.
16730 2014-01-18 Richard Sandiford <rdsandiford@googlemail.com>
16732 * jump.c (delete_related_insns): Keep (use (insn))s.
16733 * reorg.c (redundant_insn): Check for barriers too.
16735 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
16737 * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
16739 2014-01-17 John David Anglin <danglin@gcc.gnu.org>
16741 * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
16742 call to $$dyncall when TARGET_LONG_CALLS is true.
16744 2014-01-17 Jeff Law <law@redhat.com>
16746 * ree.c (combine_set_extension): Temporarily disable test for
16747 changing number of hard registers.
16749 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
16751 PR middle-end/58125
16752 * ipa-inline-analysis.c (inline_free_summary):
16753 Do not free summary of aliases.
16755 2014-01-17 Jakub Jelinek <jakub@redhat.com>
16757 PR middle-end/59706
16758 * gimplify.c (gimplify_expr): Use create_tmp_var
16759 instead of create_tmp_var_raw. If cond doesn't have
16760 integral type, don't add the IFN_ANNOTATE builtin at all.
16762 2014-01-17 Martin Jambor <mjambor@suse.cz>
16765 * ipa-cp.c (prev_edge_clone): New variable.
16766 (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
16767 Also resize prev_edge_clone vector.
16768 (ipcp_edge_duplication_hook): Also update prev_edge_clone.
16769 (ipcp_edge_removal_hook): New function.
16770 (ipcp_driver): Register ipcp_edge_removal_hook.
16772 2014-01-17 Andrew Pinski <apinski@cavium.com>
16773 Steve Ellcey <sellcey@mips.com>
16776 * config/mips/mips.c (mips_print_operand): Check operand mode instead
16779 2014-01-17 Jeff Law <law@redhat.com>
16781 PR middle-end/57904
16782 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
16783 so that pass_ccp runs first.
16785 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
16787 * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
16788 (ix86_adjust_cost): Use !TARGET_XXX.
16789 (do_reorder_for_imul): Likewise.
16790 (swap_top_of_ready_list): Likewise.
16791 (ix86_sched_reorder): Likewise.
16793 2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
16795 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16796 PROCESSOR_INTEL. Treat like PROCESSOR_GENERIC.
16797 * config/i386/i386.c (intel_memcpy): New. Duplicate slm_memcpy.
16798 (intel_memset): New. Duplicate slm_memset.
16799 (intel_cost): New. Duplicate slm_cost.
16800 (m_INTEL): New macro.
16801 (processor_target_table): Add "intel".
16802 (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
16803 with PROCESSOR_INTEL for "intel".
16804 (ix86_lea_outperforms): Support PROCESSOR_INTEL. Duplicate
16805 PROCESSOR_SILVERMONT.
16806 (ix86_issue_rate): Likewise.
16807 (ix86_adjust_cost): Likewise.
16808 (ia32_multipass_dfa_lookahead): Likewise.
16809 (swap_top_of_ready_list): Likewise.
16810 (ix86_sched_reorder): Likewise.
16811 (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
16812 instead of TARGET_OPT_AGU.
16813 * config/i386/i386.h (TARGET_INTEL): New.
16814 (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
16815 (processor_type): Add PROCESSOR_INTEL.
16816 * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
16817 Add X86_TUNE_AVOID_LEA_FOR_ADDR.
16819 2014-01-17 Marek Polacek <polacek@redhat.com>
16822 * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
16825 2014-01-17 Richard Biener <rguenther@suse.de>
16827 PR tree-optimization/46590
16828 * opts.c (default_options_table): Add entries for
16829 OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
16830 all enabled at -O1 but not for -Og.
16831 * common.opt (fbranch-count-reg): Remove Init(1).
16832 (fmove-loop-invariants): Likewise.
16833 (ftree-pta): Likewise.
16835 2014-01-17 Jakub Jelinek <jakub@redhat.com>
16837 * config/i386/i386.c (ix86_data_alignment): For compatibility with
16838 (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
16839 decls to at least the GCC 4.8 used alignments.
16842 * tree-nested.c (convert_nonlocal_reference_stmt,
16843 convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
16844 of GIMPLE_BIND stmts, adjust associated decls.
16846 2014-01-17 Richard Biener <rguenther@suse.de>
16848 PR tree-optimization/46590
16849 * vec.h (vec<>::bseach): New member function implementing
16850 binary search according to C89 bsearch.
16851 (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
16852 * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
16853 bitmap pointer again. Make accesses_in_loop a flat array.
16854 (mem_ref_obstack): New global.
16855 (outermost_indep_loop): Adjust for mem_ref->stored changes.
16856 (mark_ref_stored): Likewise.
16857 (ref_indep_loop_p_2): Likewise.
16858 (set_ref_stored_in_loop): New helper function.
16859 (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
16860 (memref_free): Adjust.
16861 (record_mem_ref_loc): Simplify.
16862 (gather_mem_refs_stmt): Adjust.
16863 (sort_locs_in_loop_postorder_cmp): New function.
16864 (analyze_memory_references): Sort accesses_in_loop after
16865 loop postorder number.
16866 (find_ref_loc_in_loop_cmp): New function.
16867 (for_all_locs_in_loop): Find relevant cluster of locs in
16868 accesses_in_loop and iterate without recursion.
16869 (execute_sm): Avoid uninit warning.
16870 (struct ref_always_accessed): Simplify.
16871 (ref_always_accessed::operator ()): Likewise.
16872 (ref_always_accessed_p): Likewise.
16873 (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
16874 loop postorder numbers here.
16875 (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
16878 2014-01-17 Jan Hubicka <hubicka@ucw.cz>
16881 * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
16882 on decls for which assemble_alias has been called.
16884 2014-01-17 Nick Clifton <nickc@redhat.com>
16886 * config/msp430/msp430.opt: (mcpu): New option.
16887 * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
16888 (msp430_option_override): Parse target_cpu. If the MCU name
16889 matches a generic string, clear target_mcu.
16890 (msp430_attr): Allow numeric interrupt values up to 63.
16891 (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
16892 * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
16894 * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
16896 * config/msp430/msp430.md (popm): Use %J rather than %I.
16897 (addsi3): Use msp430_nonimmediate_operand for operand 2.
16898 (addhi_cy_i): Use immediate_operand for operand 2.
16899 * doc/invoke.texi: Document -mcpu option.
16901 2014-01-17 Richard Biener <rguenther@suse.de>
16903 PR rtl-optimization/38518
16904 * df.h (df_analyze_loop): Declare.
16905 * df-core.c: Include cfgloop.h.
16906 (df_analyze_1): Split out main part of df_analyze.
16907 (df_analyze): Adjust.
16908 (loop_inverted_post_order_compute): New function.
16909 (loop_post_order_compute): Likewise.
16910 (df_analyze_loop): New function avoiding whole-function
16911 postorder computes.
16912 * loop-invariant.c (find_defs): Use df_analyze_loop.
16913 (find_invariants): Adjust.
16914 * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
16916 2014-01-17 Zhenqiang Chen <zhenqiang.chen@arm.com>
16918 * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
16919 (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
16921 2014-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
16923 * ipa-ref.c (ipa_remove_stmt_references): Fix references
16924 traversal when removing references.
16926 2014-01-16 Jan Hubicka <hubicka@ucw.cz>
16929 * tree.c (get_binfo_at_offset): Look harder for virtual bases.
16931 2014-01-16 Bernd Schmidt <bernds@codesourcery.com>
16933 PR middle-end/56791
16934 * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
16935 pushing a reload for an autoinc when we had previously reloaded an
16936 inner part of the address.
16938 2014-01-16 Jakub Jelinek <jakub@redhat.com>
16940 * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
16942 (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
16943 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
16944 when not giving up or versioning for alias only because of
16946 (vect_analyze_data_ref_dependences): Set to true.
16947 * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
16949 (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
16950 LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
16953 PR middle-end/58344
16954 * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
16957 * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
16958 operand 0 predicate for gathers, use a new pseudo as subtarget.
16960 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
16962 PR middle-end/59609
16963 * lra-constraints.c (process_alt_operands): Add printing debug info.
16964 Check absence of input/output reloads for matched operands too.
16966 2014-01-16 Vladimir Makarov <vmakarov@redhat.com>
16968 PR rtl-optimization/59835
16969 * ira.c (ira_init_register_move_cost): Increase cost for
16972 2014-01-16 Alan Lawrence <alan.lawrence@arm.com>
16974 * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
16976 2014-01-16 Richard Earnshaw <rearnsha@arm.com>
16979 * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
16980 non-register objects. Use gen_(high/low)part more consistently.
16983 2014-01-16 Michael Meissner <meissner@linux.vnet.ibm.com>
16986 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
16987 endian support, remove tests for WORDS_BIG_ENDIAN.
16988 (p8_mfvsrd_3_<mode>): Likewise.
16989 (reload_gpr_from_vsx<mode>): Likewise.
16990 (reload_gpr_from_vsxsf): Likewise.
16991 (p8_mfvsrd_4_disf): Likewise.
16993 2014-01-16 Richard Biener <rguenther@suse.de>
16995 PR rtl-optimization/46590
16996 * lcm.c (compute_antinout_edge): Use postorder iteration.
16997 (compute_laterin): Use inverted postorder iteration.
16999 2014-01-16 Nick Clifton <nickc@redhat.com>
17001 PR middle-end/28865
17002 * varasm.c (output_constant): Return the number of bytes actually
17004 (output_constructor_array_range): Update the field size with the
17005 number of bytes emitted by output_constant.
17006 (output_constructor_regular_field): Likewise. Also do not
17007 complain if the total number of bytes emitted is now greater
17008 than the expected fieldpos.
17009 * output.h (output_constant): Update prototype and descriptive comment.
17011 2014-01-16 Marek Polacek <polacek@redhat.com>
17013 PR middle-end/59827
17014 * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
17015 it is error_mark_node.
17017 2014-01-15 Uros Bizjak <ubizjak@gmail.com>
17019 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
17020 VALID_AVX256_REG_OR_OI_MODE.
17022 2014-01-15 Pat Haugen <pthaugen@us.ibm.com>
17024 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
17025 current procedure should be profiled.
17027 2014-01-15 Andrew Pinski <apinski@cavium.com>
17029 * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
17030 of moving from/to the STACK_REG register class.
17032 2014-01-15 Richard Henderson <rth@redhat.com>
17035 * reginfo.c (global_regs_decl): Globalize.
17036 * rtl.h (global_regs_decl): Declare.
17037 * ira.c (do_reload): Diagnose frame_pointer_needed and it
17038 reserved via global_regs.
17040 2014-01-15 Teresa Johnson <tejohnson@google.com>
17042 * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
17044 2014-01-15 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
17046 * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
17047 and vmulosh rather than call gen_vec_widen_smult_*.
17048 (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
17049 than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
17050 (vec_widen_smult_even_v16qi): Likewise.
17051 (vec_widen_umult_even_v8hi): Likewise.
17052 (vec_widen_smult_even_v8hi): Likewise.
17053 (vec_widen_umult_odd_v16qi): Likewise.
17054 (vec_widen_smult_odd_v16qi): Likewise.
17055 (vec_widen_umult_odd_v8hi): Likewise.
17056 (vec_widen_smult_odd_v8hi): Likewise.
17057 (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
17058 vmuloub rather than call gen_vec_widen_umult_*.
17059 (vec_widen_umult_lo_v16qi): Likewise.
17060 (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
17061 vmulosb rather than call gen_vec_widen_smult_*.
17062 (vec_widen_smult_lo_v16qi): Likewise.
17063 (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
17064 rather than call gen_vec_widen_umult_*.
17065 (vec_widen_umult_lo_v8hi): Likewise.
17066 (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
17067 rather than call gen_vec_widen_smult_*.
17068 (vec_widen_smult_lo_v8hi): Likewise.
17070 2014-01-15 Jeff Law <law@redhat.com>
17072 PR tree-optimization/59747
17073 * ree.c (find_and_remove_re): Properly handle case where a second
17074 eliminated extension requires widening a copy created for elimination
17075 of a prior extension.
17076 (combine_set_extension): Ensure that the number of hard regs needed
17077 for a destination register does not change when we widen it.
17079 2014-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
17081 * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
17082 (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
17083 (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
17084 (arm*-*-rtems*): Use t-rtems from existing tmake_file.
17085 (avr-*-rtems*): Likewise.
17086 (bfin*-rtems*): Likewise.
17087 (moxie-*-rtems*): Likewise.
17088 (h8300-*-rtems*): Likewise.
17089 (i[34567]86-*-rtems*): Likewise.
17090 (lm32-*-rtems*): Likewise.
17091 (m32r-*-rtems*): Likewise.
17092 (m68k-*-rtems*): Likewise.
17093 (microblaze*-*-rtems*): Likewise.
17094 (mips*-*-rtems*): Likewise.
17095 (powerpc-*-rtems*): Likewise.
17096 (sh-*-rtems*): Likewise.
17097 (sparc-*-rtems*): Likewise.
17098 (sparc64-*-rtems*): Likewise.
17099 (v850-*-rtems*): Likewise.
17100 (m32c-*-rtems*): Likewise.
17102 2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
17104 PR rtl-optimization/59511
17105 * ira.c (ira_init_register_move_cost): Use memory costs for some
17106 cases of register move cost calculations.
17107 * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
17108 instead of BB frequency.
17109 * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
17110 * lra-assigns.c (find_hard_regno_for): Ditto.
17112 2014-01-15 Richard Biener <rguenther@suse.de>
17114 PR tree-optimization/59822
17115 * tree-vect-stmts.c (hoist_defs_of_uses): New function.
17116 (vectorizable_load): Use it to hoist defs of uses of invariant
17117 loads out of the loop.
17119 2014-01-15 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
17120 Kugan Vivekanandarajah <kuganv@linaro.org>
17123 * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
17126 2014-01-15 Richard Biener <rguenther@suse.de>
17128 PR rtl-optimization/59802
17129 * lcm.c (compute_available): Use inverted postorder to seed
17130 the initial worklist.
17132 2014-01-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17135 * config/s390/s390.c (s390_preferred_reload_class): Don't return
17136 ADDR_REGS for invalid symrefs in non-PIC code.
17138 2014-01-15 Jakub Jelinek <jakub@redhat.com>
17141 * builtins.c (determine_block_size): Initialize *probable_max_size
17142 even if len_rtx is CONST_INT.
17144 2014-01-14 Andrew Pinski <apinski@cavium.com>
17146 * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
17147 * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
17148 (cortexa53_tunings): Likewise.
17149 (aarch64_sched_issue_rate): New function.
17150 (TARGET_SCHED_ISSUE_RATE): Define.
17152 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
17154 * ira-costs.c (find_costs_and_classes): Add missed
17155 ira_init_register_move_cost_if_necessary.
17157 2014-01-14 Vladimir Makarov <vmakarov@redhat.com>
17160 * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
17162 2014-01-14 H.J. Lu <hongjiu.lu@intel.com>
17165 * config/i386/i386.c (type_natural_mode): Add a bool parameter
17166 to indicate if type is used for function return value. Warn ABI
17167 change if the vector mode isn't available for function return value.
17168 (ix86_function_arg_advance): Pass false to type_natural_mode.
17169 (ix86_function_arg): Likewise.
17170 (ix86_gimplify_va_arg): Likewise.
17171 (function_arg_32): Don't warn ABI change.
17172 (ix86_function_value): Pass true to type_natural_mode.
17173 (ix86_return_in_memory): Likewise.
17174 (ix86_struct_value_rtx): Removed.
17175 (TARGET_STRUCT_VALUE_RTX): Likewise.
17177 2014-01-14 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
17179 * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
17180 converting a conditional jump into a conditional return.
17182 2014-01-14 Richard Biener <rguenther@suse.de>
17184 PR tree-optimization/58921
17185 PR tree-optimization/59006
17186 * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
17187 hoisting invariant stmts.
17188 * tree-vect-stmts.c (vectorizable_load): Insert the splat of
17189 invariant loads on the preheader edge if possible.
17191 2014-01-14 Joey Ye <joey.ye@arm.com>
17193 * doc/plugin.texi (Building GCC plugins): Update to C++.
17195 2014-01-14 Kirill Yukhin <kirill.yukhin@intel.com>
17197 * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
17198 (_mm_rcp28_round_ss): Ditto.
17199 (_mm_rsqrt28_round_sd): Ditto.
17200 (_mm_rsqrt28_round_ss): Ditto.
17201 (_mm_rcp28_sd): Ditto.
17202 (_mm_rcp28_ss): Ditto.
17203 (_mm_rsqrt28_sd): Ditto.
17204 (_mm_rsqrt28_ss): Ditto.
17205 * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
17206 * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
17207 * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
17208 (IX86_BUILTIN_RCP28SD): Ditto.
17209 (IX86_BUILTIN_RCP28SS): Ditto.
17210 (IX86_BUILTIN_RSQRT28SD): Ditto.
17211 (IX86_BUILTIN_RSQRT28SS): Ditto.
17212 (bdesc_special_args): Define __builtin_ia32_movntdqa512,
17213 __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
17214 __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
17215 (ix86_expand_special_args_builtin): Expand new FTYPE.
17216 * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
17217 (srcp14<mode>): Make insn unary.
17218 (avx512f_vmscalef<mode><round_name>): Use substed predicate.
17219 (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
17220 (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
17221 (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
17222 (avx512er_exp2<mode><mask_name><round_saeonly_name>):
17223 Fix rounding: make it SAE only.
17224 (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
17226 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
17228 (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
17229 (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
17230 (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
17231 * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
17232 (round_saeonly_mask_scalar_operand4): Ditto.
17233 (round_saeonly_mask_scalar_op3): Ditto.
17234 (round_saeonly_mask_scalar_op4): Ditto.
17236 2014-01-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17238 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17239 Implement -maltivec=be for vec_insert and vec_extract.
17241 2014-01-10 DJ Delorie <dj@redhat.com>
17243 * config/msp430/msp430.md (call_internal): Don't allow memory
17244 references with SP as the base register.
17245 (call_value_internal): Likewise.
17246 * config/msp430/constraints.md (Yc): New. For memory references
17247 that don't use SP as a base register.
17249 * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
17250 "an integer without a # prefix"
17251 * config/msp430/msp430.md (epilogue_helper): Use it.
17253 2014-01-13 Jakub Jelinek <jakub@redhat.com>
17256 * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
17257 AVX512F gather builtins.
17258 * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
17259 on gather decls with INTEGER_TYPE masktype.
17260 (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
17261 directly into the builtin rather than hoisting it before loop.
17263 PR tree-optimization/59387
17264 * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
17265 (scev_const_prop): If folded_casts and type has undefined overflow,
17266 use force_gimple_operand instead of force_gimple_operand_gsi and
17267 for each added stmt if it is assign with
17268 arith_code_with_undefined_signed_overflow, call
17269 rewrite_to_defined_overflow.
17270 * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
17271 gimple-fold.h instead.
17272 (arith_code_with_undefined_signed_overflow,
17273 rewrite_to_defined_overflow): Moved to ...
17274 * gimple-fold.c (arith_code_with_undefined_signed_overflow,
17275 rewrite_to_defined_overflow): ... here. No longer static.
17276 Include gimplify-me.h.
17277 * gimple-fold.h (arith_code_with_undefined_signed_overflow,
17278 rewrite_to_defined_overflow): New prototypes.
17280 2014-01-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17282 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
17284 2014-01-13 Eric Botcazou <ebotcazou@adacore.com>
17286 * builtins.c (get_object_alignment_2): Minor tweak.
17287 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
17289 2014-01-13 Christian Bruel <christian.bruel@st.com>
17291 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
17292 optimized non constant lengths.
17294 2014-01-13 Jakub Jelinek <jakub@redhat.com>
17297 * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
17298 load as __atomic_load_N if possible.
17300 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
17302 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
17304 (rs6000_expand_builtin): Adjust call.
17306 2014-01-11 David Edelsohn <dje.gcc@gmail.com>
17309 * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
17310 * config/rs6000/rs6000.c: Include target-globals.h.
17311 (rs6000_set_current_function): Instead of doing target_reinit
17312 unconditionally, use save_target_globals_default_opts and
17313 restore_target_globals.
17315 * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
17317 * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
17318 (rs6000_expand_builtin): Handle mffs and mtfsf.
17319 (rs6000_init_builtins): Define mffs and mtfsf.
17320 * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
17321 (rs6000_mffs): New pattern.
17322 (rs6000_mtfsf): New pattern.
17324 2014-01-11 Bin Cheng <bin.cheng@arm.com>
17326 * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
17327 Start narrowing with START. Apply candidate-use pair
17328 and check overall cost in narrowing.
17329 (iv_ca_prune): Pass new argument.
17331 2014-01-10 Jeff Law <law@redhat.com>
17333 PR middle-end/59743
17334 * ree.c (combine_reaching_defs): Ensure the defining statement
17335 occurs before the extension when optimizing extensions with
17336 different source and destination hard registers.
17338 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
17341 * ipa-devirt.c (build_type_inheritance_graph): Also add types of
17342 vtables into the type inheritance graph.
17344 2014-01-10 Jakub Jelinek <jakub@redhat.com>
17346 PR rtl-optimization/59754
17347 * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
17348 modes in the REGNO != REGNO case.
17350 2014-01-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17352 * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
17354 2014-01-10 Jakub Jelinek <jakub@redhat.com>
17356 PR tree-optimization/59745
17357 * tree-predcom.c (tree_predictive_commoning_loop): Call
17358 free_affine_expand_cache if giving up because components is NULL.
17360 * target-globals.c (save_target_globals): Allocate < 4KB structs using
17361 GC in payload of target_globals struct instead of allocating them on
17362 the heap and the larger structs separately using GC.
17363 * target-globals.h (struct target_globals): Make regs, hard_regs,
17364 reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
17365 of GTY((skip)) and change type to void *.
17366 (reset_target_globals): Cast loads from those fields to corresponding
17369 2014-01-10 Steve Ellcey <sellcey@mips.com>
17372 * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
17373 gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
17374 tree-ssanames.h, print-tree.h, varasm.h, and context.h.
17376 2014-01-10 Richard Earnshaw <rearnsha@arm.com>
17379 * aarch64-modes.def (CC_Zmode): New flags mode.
17380 * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
17381 represents an equality.
17382 (aarch64_get_condition_code): Handle CC_Zmode.
17383 * aarch64.md (compare_neg<mode>): Restrict to equality operations.
17385 2014-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17387 * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
17388 extraction in good case.
17390 2014-01-10 Richard Biener <rguenther@suse.de>
17392 PR tree-optimization/59374
17393 * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
17394 checking after SLP discovery. Mark stmts not participating
17395 in any SLP instance properly.
17397 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17399 * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
17400 when handling a SET rtx.
17402 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17404 * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
17405 (cortex-a57): Likewise.
17406 (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
17408 2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17410 * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
17411 non-iwmmxt builtins.
17413 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
17417 * ipa-devirt.c record_target_from_binfo): Take as argument
17418 stack of binfos and lookup matching one for virtual inheritance.
17419 (possible_polymorphic_call_targets_1): Update.
17421 2014-01-10 Huacai Chen <chenhc@lemote.com>
17423 * config/mips/driver-native.c (host_detect_local_cpu): Handle new
17424 kernel strings for Loongson-2E/2F/3A.
17426 2014-01-10 Jakub Jelinek <jakub@redhat.com>
17428 PR middle-end/59670
17429 * tree-vect-data-refs.c (vect_analyze_data_refs): Check
17430 is_gimple_call before calling gimple_call_internal_p.
17432 2014-01-09 Steve Ellcey <sellcey@mips.com>
17434 * Makefile.in (TREE_FLOW_H): Remove.
17435 (TREE_SSA_H): Add file names from tree-flow.h.
17436 * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
17437 * tree.h: Remove tree-flow.h reference.
17438 * hash-table.h: Remove tree-flow.h reference.
17439 * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
17440 reference with tree-ssa-loop.h.
17442 2014-01-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17444 * doc/invoke.texi: Add -maltivec={be,le} options, and document
17445 default element-order behavior for -maltivec.
17446 * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
17447 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
17448 that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
17449 when targeting big endian, at least for now.
17450 * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
17452 2014-01-09 Jakub Jelinek <jakub@redhat.com>
17454 PR middle-end/47735
17455 * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
17456 var satisfies use_register_for_decl, just take into account type
17457 alignment, rather than decl alignment.
17459 PR tree-optimization/59622
17460 * gimple-fold.c (gimple_fold_call): Fix a typo in message. For
17461 __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
17462 __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
17463 Don't devirtualize for inplace at all. For targets.length () == 1,
17464 if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
17466 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
17468 * config/i386/i386.md (cpu): Remove the unused btver1.
17470 2014-01-09 H.J. Lu <hongjiu.lu@intel.com>
17472 * gdbasan.in: Put a breakpoint on __sanitizer::Report.
17474 2014-01-09 Jakub Jelinek <jakub@redhat.com>
17477 * tree-core.h (struct target_globals): New forward declaration.
17478 (struct tree_target_option): Add globals field.
17479 * tree.h (TREE_TARGET_GLOBALS): Define.
17480 (prepare_target_option_nodes_for_pch): New prototype.
17481 * target-globals.h (struct target_globals): Define even if
17482 !SWITCHABLE_TARGET.
17483 * tree.c (prepare_target_option_node_for_pch,
17484 prepare_target_option_nodes_for_pch): New functions.
17485 * config/i386/i386.h (SWITCHABLE_TARGET): Define.
17486 * config/i386/i386.c: Include target-globals.h.
17487 (ix86_set_current_function): Instead of doing target_reinit
17488 unconditionally, use save_target_globals_default_opts and
17489 restore_target_globals.
17491 2014-01-09 Richard Biener <rguenther@suse.de>
17493 PR tree-optimization/59715
17494 * tree-cfg.h (split_critical_edges): Declare.
17495 * tree-cfg.c (split_critical_edges): Export.
17496 * tree-ssa-sink.c (execute_sink_code): Split critical edges.
17498 2014-01-09 Max Ostapenko <m.ostapenko@partner.samsung.com>
17500 * cfgexpand.c (expand_stack_vars): Optionally disable
17501 asan stack protection.
17502 (expand_used_vars): Likewise.
17503 (partition_stack_vars): Likewise.
17504 * asan.c (asan_emit_stack_protection): Optionally disable
17505 after return stack usage.
17506 (instrument_derefs): Optionally disable memory access instrumentation.
17507 (instrument_builtin_call): Likewise.
17508 (instrument_strlen_call): Likewise.
17509 (asan_protect_global): Optionally disable global variables protection.
17510 * doc/invoke.texi: Added doc for new options.
17511 * params.def: Added new options.
17512 * params.h: Likewise.
17514 2014-01-09 Jakub Jelinek <jakub@redhat.com>
17516 PR rtl-optimization/59724
17517 * ifcvt.c (cond_exec_process_if_block): Don't call
17518 flow_find_head_matching_sequence with 0 longest_match.
17519 * cfgcleanup.c (flow_find_head_matching_sequence): Count even
17520 non-active insns if !stop_after.
17521 (try_head_merge_bb): Revert 2014-01-07 changes.
17523 2014-01-08 Jeff Law <law@redhat.com>
17525 * ree.c (get_sub_rtx): New function, extracted from...
17526 (merge_def_and_ext): Here.
17527 (combine_reaching_defs): Use get_sub_rtx.
17529 2014-01-08 Eric Botcazou <ebotcazou@adacore.com>
17531 * cgraph.h (varpool_variable_node): Do not choke on null node.
17533 2014-01-08 Catherine Moore <clm@codesourcery.com>
17535 * config/mips/mips.md (simple_return): Attempt to use JRC
17537 * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
17539 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
17541 PR rtl-optimization/59137
17542 * reorg.c (steal_delay_list_from_target): Call update_block for
17544 (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
17546 2014-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17548 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
17549 two duplicate entries.
17551 2014-01-08 Richard Sandiford <rdsandiford@googlemail.com>
17554 2012-10-07 Richard Sandiford <rdsandiford@googlemail.com>
17556 * config/mips/mips.c (mips_truncated_op_cost): New function.
17557 (mips_rtx_costs): Adjust test for BADDU.
17558 * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
17560 2012-10-02 Richard Sandiford <rdsandiford@googlemail.com>
17562 * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
17563 (*baddu_si): ...this new pattern.
17565 2014-01-08 Jakub Jelinek <jakub@redhat.com>
17568 * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
17570 2014-01-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
17572 PR middle-end/57748
17573 * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
17575 (expand_expr, expand_normal): Adjust.
17576 * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
17577 inner_reference_p. Use inner_reference_p to expand inner references.
17578 (store_expr): Adjust.
17579 * cfgexpand.c (expand_call_stmt): Adjust.
17581 2014-01-08 Rong Xu <xur@google.com>
17583 * gcov-io.c (gcov_var): Move from gcov-io.h.
17584 (gcov_position): Ditto.
17585 (gcov_is_error): Ditto.
17586 (gcov_rewrite): Ditto.
17587 * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
17588 only part to libgcc/libgcov.h.
17590 2014-01-08 Marek Polacek <polacek@redhat.com>
17592 PR middle-end/59669
17593 * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
17595 2014-01-08 Marek Polacek <polacek@redhat.com>
17598 * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
17600 2014-01-08 Jakub Jelinek <jakub@redhat.com>
17602 PR rtl-optimization/59649
17603 * stor-layout.c (get_mode_bounds): For BImode return
17604 0 and STORE_FLAG_VALUE.
17606 2014-01-08 Richard Biener <rguenther@suse.de>
17608 PR middle-end/59630
17609 * gimple.h (is_gimple_builtin_call): Remove.
17610 (gimple_builtin_call_types_compatible_p): New.
17611 (gimple_call_builtin_p): New overload.
17612 * gimple.c (is_gimple_builtin_call): Remove.
17613 (validate_call): Rename to ...
17614 (gimple_builtin_call_types_compatible_p): ... this and export. Also
17615 check return types.
17616 (validate_type): New static function.
17617 (gimple_call_builtin_p): New overload and adjust.
17618 * gimple-fold.c (gimple_fold_builtin): Fold the return value.
17619 (gimple_fold_call): Likewise. Use gimple_call_builtin_p.
17620 (gimple_fold_stmt_to_constant_1): Likewise.
17621 * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
17623 2014-01-08 Richard Biener <rguenther@suse.de>
17625 PR middle-end/59471
17626 * gimplify.c (gimplify_expr): Gimplify register-register type
17627 VIEW_CONVERT_EXPRs to separate stmts.
17629 2014-01-07 Jeff Law <law@redhat.com>
17631 PR middle-end/53623
17632 * ree.c (combine_set_extension): Handle case where source
17633 and destination registers in an extension insn are different.
17634 (combine_reaching_defs): Allow source and destination registers
17635 in extension to be different under limited circumstances.
17636 (add_removable_extension): Remove restriction that the
17637 source and destination registers in the extension are the same.
17638 (find_and_remove_re): Emit a copy from the extension's
17639 destination to its source after the defining insn if
17640 the source and destination registers are different.
17642 PR middle-end/59285
17643 * ifcvt.c (merge_if_block): If we are merging a block with more than
17644 one successor with a block with no successors, remove any BARRIER
17645 after the second block.
17647 2014-01-07 Dan Xio Qiang <ziyan01@163.com>
17649 * hw-doloop.c (reorg_loops): Release the bitmap obstack.
17651 2014-01-07 John David Anglin <danglin@gcc.gnu.org>
17654 * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
17655 for 14-bit register offsets when INT14_OK_STRICT is false.
17657 2014-01-07 Roland Stigge <stigge@antcom.de>
17658 Michael Meissner <meissner@linux.vnet.ibm.com>
17661 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
17662 Only check TFmode for SPE constants. Don't check TImode or TDmode.
17664 2014-01-07 James Greenhalgh <james.greenhalgh@arm.com>
17666 * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
17669 2014-01-07 Yufeng Zhang <yufeng.zhang@arm.com>
17671 * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
17672 with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
17673 rtx is const0_rtx or not.
17675 2014-01-07 Richard Sandiford <rdsandiford@googlemail.com>
17678 * target-globals.c (save_target_globals): Remove this_fn_optab
17680 * toplev.c: Include optabs.h.
17681 (target_reinit): Temporarily restore the global options if another
17682 set of options are in force.
17684 2014-01-07 Jakub Jelinek <jakub@redhat.com>
17686 PR rtl-optimization/58668
17687 * cfgcleanup.c (flow_find_cross_jump): Don't count
17688 any jumps if dir_p is NULL. Remove p1 variable, use active_insn_p
17689 to determine what is counted.
17690 (flow_find_head_matching_sequence): Use active_insn_p to determine
17692 (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
17694 * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
17695 determine what is counted.
17697 PR tree-optimization/59643
17698 * tree-predcom.c (split_data_refs_to_components): If one dr is
17699 read and one write, determine_offset fails and the write isn't
17700 in the bad component, just put the read into the bad component.
17702 2014-01-07 Mike Stump <mikestump@comcast.net>
17703 Jakub Jelinek <jakub@redhat.com>
17706 * tree-core.h (struct tree_optimization_option): Change optabs
17707 type from unsigned char * to void *.
17708 * optabs.c (init_tree_optimization_optabs): Adjust
17709 TREE_OPTIMIZATION_OPTABS initialization.
17711 2014-01-06 Jakub Jelinek <jakub@redhat.com>
17714 * config/i386/i386.h (struct machine_function): Add
17715 no_drap_save_restore field.
17716 * config/i386/i386.c (ix86_save_reg): Use
17717 !cfun->machine->no_drap_save_restore instead of
17718 crtl->stack_realign_needed.
17719 (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
17720 this function clears frame_pointer_needed. Set
17721 cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
17722 and DRAP reg is needed.
17724 2014-01-06 Marek Polacek <polacek@redhat.com>
17727 * doc/implement-c.texi: Mention that other integer types are
17728 permitted as bit-field types in strictly conforming mode.
17730 2014-01-06 Felix Yang <fei.yang0953@gmail.com>
17732 * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
17733 is newly allocated.
17735 2014-01-06 Richard Earnshaw <rearnsha@arm.com>
17737 * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
17739 2014-01-06 Martin Jambor <mjambor@suse.cz>
17742 * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
17744 * ipa-prop.c (ipa_print_node_params): Fix indentation.
17746 2014-01-06 Eric Botcazou <ebotcazou@adacore.com>
17750 * var-tracking.c (add_stores): Preserve the value of the source even if
17751 we don't record the store.
17753 2014-01-06 Terry Guo <terry.guo@arm.com>
17755 * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
17757 2014-01-05 Iain Sandoe <iain@codesourcery.com>
17760 * config/darwin.c (darwin_function_section): Adjust return values to
17761 correspond to optimisation changes made in r206070.
17763 2014-01-05 Uros Bizjak <ubizjak@gmail.com>
17765 * config/i386/i386.c (ix86_data_alignment): Calculate max_align
17766 from prefetch_block tune setting.
17767 (nocona_cost): Correct size of prefetch block to 64.
17769 2014-01-04 Eric Botcazou <ebotcazou@adacore.com>
17771 * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
17772 (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
17773 used to save the static chain register in the computation of the offset
17774 from which the FP registers need to be restored.
17776 2014-01-04 Jakub Jelinek <jakub@redhat.com>
17778 PR tree-optimization/59519
17779 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
17780 ICE if get_current_def (current_new_name) is already non-NULL, as long
17781 as it is a phi result of some other phi in *new_exit_bb that has
17784 * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
17785 or vmovdqu* for misaligned_operand.
17786 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
17787 <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
17788 * config/i386/i386.c (ix86_expand_special_args_builtin): Set
17789 aligned_mem for AVX512F masked aligned load and store builtins and for
17790 non-temporal moves.
17792 2014-01-03 Bingfeng Mei <bmei@broadcom.com>
17794 PR tree-optimization/59651
17795 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
17796 Address range for negative step should be added by TYPE_SIZE_UNIT.
17798 2014-01-03 Andreas Schwab <schwab@linux-m68k.org>
17800 * config/m68k/m68k.c (handle_move_double): Handle pushes with
17801 overlapping registers also for registers other than the stack pointer.
17803 2014-01-03 Marek Polacek <polacek@redhat.com>
17806 * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
17809 2014-01-03 Jakub Jelinek <jakub@redhat.com>
17812 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
17815 * config/i386/i386.md (MODE_SIZE): New mode attribute.
17816 (push splitter): Use <P:MODE_SIZE> instead of
17817 GET_MODE_SIZE (<P:MODE>mode).
17818 (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
17819 (mov -1, reg peephole2): Likewise.
17820 * config/i386/sse.md (*mov<mode>_internal,
17821 <sse>_storeu<ssemodesuffix><avxsizesuffix>,
17822 <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
17823 *<code><mode>3, *andnot<mode>3<mask_name>,
17824 <mask_codefor><code><mode>3<mask_name>): Likewise.
17825 * config/i386/subst.md (mask_mode512bit_condition,
17826 sd_mask_mode512bit_condition): Likewise.
17828 2014-01-02 Xinliang David Li <davidxl@google.com>
17830 PR tree-optimization/59303
17831 * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
17832 (dump_predicates): Better output format.
17833 (pred_equal_p): New function.
17834 (is_neq_relop_p): Ditto.
17835 (is_neq_zero_form_p): Ditto.
17836 (pred_expr_equal_p): Ditto.
17837 (pred_neg_p): Ditto.
17838 (simplify_pred): Ditto.
17839 (simplify_preds_2): Ditto.
17840 (simplify_preds_3): Ditto.
17841 (simplify_preds_4): Ditto.
17842 (simplify_preds): Ditto.
17843 (push_pred): Ditto.
17844 (push_to_worklist): Ditto.
17845 (get_pred_info_from_cmp): Ditto.
17846 (is_degenerated_phi): Ditto.
17847 (normalize_one_pred_1): Ditto.
17848 (normalize_one_pred): Ditto.
17849 (normalize_one_pred_chain): Ditto.
17850 (normalize_preds): Ditto.
17851 (normalize_cond_1): Remove function.
17852 (normalize_cond): Ditto.
17853 (is_gcond_subset_of): Ditto.
17854 (is_subset_of_any): Ditto.
17855 (is_or_set_subset_of): Ditto.
17856 (is_and_set_subset_of): Ditto.
17857 (is_norm_cond_subset_of): Ditto.
17858 (pred_chain_length_cmp): Ditto.
17859 (convert_control_dep_chain_into_preds): Type change.
17860 (find_predicates): Ditto.
17861 (find_def_preds): Ditto.
17862 (destroy_predicates_vecs): Ditto.
17863 (find_matching_predicates_in_rest_chains): Ditto.
17864 (use_pred_not_overlap_with_undef_path_pred): Ditto.
17865 (is_pred_expr_subset): Ditto.
17866 (is_pred_chain_subset_of): Ditto.
17867 (is_included_in): Ditto.
17868 (is_superset_of): Ditto.
17870 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17872 Update copyright years.
17874 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
17876 * common/config/arc/arc-common.c, config/arc/arc-modes.def,
17877 config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
17878 config/arc/arc.md, config/arc/arc.opt,
17879 config/arm/arm_neon_builtins.def, config/arm/crypto.def,
17880 config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
17881 config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
17882 config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
17883 config/linux-protos.h, config/linux.c, config/winnt-c.c,
17884 diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
17885 vtable-verify.c, vtable-verify.h: Use the standard form for the
17888 2014-01-02 Tobias Burnus <burnus@net-b.de>
17890 * gcc.c (process_command): Update copyright notice dates.
17891 * gcov-dump.c: Ditto.
17893 * doc/cpp.texi: Bump @copying's copyright year.
17894 * doc/cppinternals.texi: Ditto.
17895 * doc/gcc.texi: Ditto.
17896 * doc/gccint.texi: Ditto.
17897 * doc/gcov.texi: Ditto.
17898 * doc/install.texi: Ditto.
17899 * doc/invoke.texi: Ditto.
17901 2014-01-01 Jan-Benedict Glaw <jbglaw@lug-owl.de>
17903 * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
17905 2014-01-01 Jakub Jelinek <jakub@redhat.com>
17907 * config/i386/sse.md (*mov<mode>_internal): Guard
17908 EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
17910 PR rtl-optimization/59647
17911 * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
17912 new_rtx into UNSIGNED_FLOAT rtxes.
17914 Copyright (C) 2014 Free Software Foundation, Inc.
17916 Copying and distribution of this file, with or without modification,
17917 are permitted in any medium without royalty provided the copyright
17918 notice and this notice are preserved.