re PR rtl-optimization/61461 (-fdump-rtl-all-slim causes ICE with fold-const.c)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2
3         PR rtl-optimization/61461
4         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
5
6 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
7
8         PR target/61794
9         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
10         Fix instruction constraint.
11         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
12
13 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
14
15         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
16
17 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18
19         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
20         GNU coding standards.
21         (nds32_register_move_cost): Likewise.
22         (nds32_memory_move_cost): Likewise.
23         (nds32_address_cost): Likewise.
24
25 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
26
27         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
28
29 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
30
31         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
32         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
33         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
34         (HAVE_sync_compare_and_swapqi): Define.
35         (HAVE_sync_compare_and_swaphi): Likewise.
36         (HAVE_sync_compare_and_swapsi): Likewise.
37
38 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
39
40         * config/mips/p5600.md: Add missing cpu tests.
41
42 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43
44         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
45         (vmla_f64): Likewise.
46         (vfms_f64): Likewise.
47         (vmls_f64): Likewise.
48
49 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
50
51         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
52         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
53
54 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
55
56         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
57         (vmlal_high_lane_s32): Likewise.
58         (vmlal_high_lane_u16): Likewise.
59         (vmlal_high_lane_u32): Likewise.
60         (vmlsl_high_lane_s16): Likewise.
61         (vmlsl_high_lane_s32): Likewise.
62         (vmlsl_high_lane_u16): Likewise.
63         (vmlsl_high_lane_u32): Likewise.
64
65 2014-07-17  Terry Guo  <terry.guo@arm.com>
66
67         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
68         (alus_reg): Renamed to alus_sreg.
69         * config/arm/arm-fixed.md: Change type of non-dsp instructions
70         from alu_reg to alu_sreg.  Change type of dsp instructions from
71         alu_reg to alu_dsp_reg.
72         * config/arm/thumb1.md: Likewise.
73         * config/arm/thumb2.md: Likewise.
74         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
75         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
76         with alu_sreg and alus_sreg.
77         * config/arm/arm1026ejs.md (alu_op): Likewise.
78         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
79         * config/arm/arm926ejs.md (9_alu_op): Likewise.
80         * config/arm/fa526.md (526_alu_op): Likewise.
81         * config/arm/fa606te.md (606te_alu_op): Likewise.
82         * config/arm/fa626te.md (626te_alu_op): Likewise.
83         * config/arm/fa726te.md (726te_alu_op): Likewise.
84         * config/arm/fmp626.md (mp626_alu_op): Likewise.
85         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
86         alu_sreg, alu_dsp_reg and alus_sreg.     
87         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
88         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
89         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
90         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
91         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
92         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
93         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
94         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
95         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
96         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
97         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
98         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.     
99         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
100         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
101         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type 
102         alus_reg to alus_sreg.
103
104 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
105
106         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
107         infinity format.
108
109 2014-07-17  Richard Biener  <rguenther@suse.de>
110
111         PR rtl-optimization/61801
112         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
113         ASM_INPUT don't set reg_pending_barrier if it appears in a
114         debug-insn.
115
116 2014-07-16  DJ Delorie  <dj@redhat.com>
117
118         * config/rx/rx.c (rx_option_override): Fix alignment values.
119         (rx_align_for_label): Likewise.
120
121 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
122
123         PR target/61737.
124         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
125         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
126         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
127         functions.
128         (cris_print_index, cris_print_operand, cris_constant_index_p)
129         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
130         (cris_address_cost): Ditto last CONSTANT_P.
131         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
132         callers changed.  Yield cris_offsettable_symbol for non-PIC
133         constant symbolic expressions including labels.  Yield cris_unspec
134         for all unspecs.
135         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
136         target to pic_offset_table_rtx for calls that will likely go
137         through PLT, const0_rtx when they can't.  All callers changed.
138         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
139         symbolic expressions to be PICified.  Remove second, redundant,
140         assert on can_create_pseudo_p returning non-zero.  Use
141         replace_equiv_address_nv, not replace_equiv_address, for final
142         operand update.
143         * config/cris/cris.md ("movsi"): Move variable t to pattern
144         toplevel. Adjust assert for new cris_symbol_type member.  Use
145         CONSTANT_P instead of CONSTANT_ADDRESS_P.
146         ("*movsi_internal") <case 9>: Make check for valid unspec operands
147         for lapc stricter.
148         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition
149         codes.
150         ("call", "call_value"): Use second incoming operand as a marker
151         for pic-offset-table-register being used.
152         ("*expanded_call_non_v32", "*expanded_call_v32")
153         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
154         second incoming operand to CALL, match cris_call_type_marker.
155         ("*expanded_call_value_side"): Ditto.  Disable before
156         reload_completed.
157         ("*expanded_call_side"): Ditto.  Fix typo in comment.
158         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
159         CONSTANT_P.
160         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
161         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
162         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
163         users changed.  Add members cris_offsettable_symbol and
164         cris_unspec.
165         (cris_symbol_type): Rename from cris_pic_symbol_type.
166         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
167         just CONSTANT_P.
168         * config/cris/cris-protos.h (cris_symbol_type_of,
169         cris_expand_pic_call_address): Adjust prototypes.
170         (cris_legitimate_constant_p): New prototype.
171
172         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
173         an existing tmake_file.  Don't add t-slibgcc and t-linux.
174
175 2014-07-17  Jason Merrill  <jason@redhat.com>
176
177         PR c++/61623
178         * symtab.c (symtab_remove_from_same_comdat_group): Also
179         set_comdat_group to NULL_TREE.
180         (verify_symtab): Fix diagnostic.
181
182 2014-07-16  David Wohlferd <dw@LimeGreenSocks.com>
183
184         PR target/61662
185         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
186
187 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
188
189         Support location tracking for built-in macro tokens
190         * input.h (is_location_from_builtin_token): New function
191         declaration.
192         * input.c (is_location_from_builtin_token): New function
193         definition.
194         * toplev.c (general_init): Tell libcpp what the pre-defined
195         spelling location for built-in tokens is.
196
197 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
198
199         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
200         on the FUNCTION_DECL.
201
202 2014-07-16  Richard Biener  <rguenther@suse.de>
203
204         PR other/61782
205         * doc/extend.texi (always_inline): Clarify.
206
207 2014-07-15  Eric Christopher  <echristo@gmail.com>
208
209         * doc/invoke.texi (Link Options): Document -z option.
210
211 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
212
213         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
214         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
215
216 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
217
218         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
219
220 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
221
222         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
223         varpool_assemble_decl.
224         * varpool.c (varpool_assemble_decl): Assert that node->definition is
225         true.
226
227 2014-07-15  Michael Matz  <matz@suse.de>
228
229         PR rtl-optimization/61772
230         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
231
232 2014-07-15  Richard Biener  <rguenther@suse.de>
233
234         * opts.c (default_options_table): Disable bit-ccp at -Og.
235
236 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
237
238         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
239
240 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
241
242         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
243         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
244         call langhook for unknown declaration.
245         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
246         * tree.h (DECL_ARGUMENTS): Update.
247         * print-tree.c (print_node): Update.
248         * tree-core.h (tree_decl_non_common): Remove arguments.
249         (tree_function_decl): Add arguments.
250
251 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
252
253         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
254
255 2014-07-14  Richard Biener  <rguenther@suse.de>
256
257         PR tree-optimization/61779
258         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
259         simplifying a condition.
260
261 2014-07-14  Richard Biener  <rguenther@suse.de>
262
263         * builtins.c (c_strlen): Make only_value == 2 really only
264         affect warning generation.
265
266 2014-07-14  Richard Biener  <rguenther@suse.de>
267
268         PR tree-optimization/61757
269         PR tree-optimization/61783
270         PR tree-optimization/61787
271         * tree-ssa-dom.c (record_equality): Revert canonicalization
272         change and add comment.
273         (propagate_rhs_into_lhs): Revert previous fix, removing
274         loop depth restriction again.
275
276 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
277
278         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
279         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
280         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
281         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
282         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
283         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
284         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
285
286 2014-07-14  Richard Biener  <rguenther@suse.de>
287
288         * cgraph.h (decl_in_symtab_p): Make inline.
289
290 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
291
292         PR middle-end/61294
293         * doc/invoke.texi (-Wmemset-transposed-args): Document.
294
295         PR target/61656
296         * config/i386/i386.c (classify_argument): Don't merge classes above
297         number of words.
298
299 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
300
301         * cgraph.h (symtab_node): Add nonzero_address.
302         (decl_in_symtab_p): Break out from ...
303         (symtab_get_node): ... here.
304         * fold-const.c: Include cgraph.h
305         (tree_single_nonzero_warnv_p): Use symtab to determine
306         if symbol is non-zero.
307         * symtab.c (symtab_node::nonzero_address): New method.
308
309 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
310
311         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
312         forgotten in previous commit.
313
314 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
315
316         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
317         on builtin types.
318         * ipa-devirt.c: Include stor-layout.h and intl.h
319         (odr_subtypes_equivalent_p): New function.
320         (warn_odr): New function.
321         (warn_type_mismatch): New function.
322         (odr_types_equivalent_p): New function.
323         (add_type_duplicate): Use it.
324         * common.opt (Wodr): New flag.
325         * doc/invoke.texi (Wodr): Document new warning.
326
327 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
328
329         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
330         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
331         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
332         (varpool_get_constructor): Push CTORS_IN timevar.
333         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
334
335 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
336
337         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
338         Remove VOID_FTYPE_PUSHORT.
339         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
340         Change code to USHORT_FTYPE_VOID.
341         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
342         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
343         (ix86_atomic_assign_expand_fenv): Update for
344         __builtin_ia32_fnstsw changes.
345         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
346         (fnstsw): Change operand 0 to nonimmediate operand.
347
348 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
349
350         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
351         (varpool_get_constructor): New function.
352         (varpool_ctor_useable_for_folding_p): Break out from ...
353         (ctor_for_folding): ... here; use varpool_get_constructor.
354         (varpool_assemble_decl): Likewise.
355         * lto-streamer.h (struct output_block): Turn cgraph_node
356         to symbol filed.
357         (lto_input_variable_constructor): Declare.
358         * ipa-visibility.c (function_and_variable_visibility): Use
359         varpool_get_constructor.
360         * cgraph.h (varpool_get_constructor): Declare.
361         (varpool_ctor_useable_for_folding_p): New function.
362         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
363         parameter; return error_mark_node for non-trivial constructors.
364         (lto_write_tree_1, DFS_write_tree): Update use of
365         get_symbol_initial_value.
366         (output_function): Update initialization of symbol.
367         (output_constructor): New function.
368         (copy_function): Rename to ..
369         (copy_function_or_variable): ... this one; handle vars too.
370         (lto_output): Output variable sections.
371         * lto-streamer-in.c (input_constructor): New function.
372         (lto_read_body): Rename from ...
373         (lto_read_body_or_constructor): ... this one; handle vars too.
374         (lto_input_variable_constructor): New function.
375         * ipa-prop.c (ipa_prop_write_jump_functions,
376         ipa_prop_write_all_agg_replacement): Update.
377         * lto-cgraph.c (compute_ltrans_boundary): Use it.
378         (output_cgraph_opt_summary): Set symbol to NULL.
379
380 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
381
382         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
383         non-polymorphic types.
384         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
385         * ipa-devirt.c (types_same_for_odr): Do not explode when one
386         of types is not polymorphic.
387
388 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
389
390         * lra-constraints.c (remove_inheritance_pseudos): Process
391         destination pseudo too.
392
393 2014-07-11  Rong Xu  <xur@google.com>
394
395         * gcov-tool.c (gcov_output_files): Fix build error introduced in
396         commit r212448.
397
398 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
399
400         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
401         * config/avr/avr-devices.c (AVR_MCU): Same.
402         (avr_mcu_types): add text start value to end of device list.
403         * config/avr/avr-mcus.def: Add text section start for all devices.
404         (ata5782): Add new avr5 device.
405         (ata5831): Same.
406         * config/avr/avr-tables.opt: Regenerate.
407         * config/avr/avr.h: Add declaration for text section start handler.
408         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
409         SPEC functions.
410         (LINK_SPEC): Include text section start handler to linker spec.
411         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
412         pass -Ttext option to linker if the text section start for the device
413         is not zero.
414         * config/avr/t-multilib: Regenerate.
415         * doc/avr-mmcu.texi: Regenerate.
416
417 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
418
419         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
420         * config/rs6000/aix52.h (LINK_SPEC): Same.
421         * config/rs6000/aix53.h (LINK_SPEC): Same.
422         * config/rs6000/aix61.h (LINK_SPEC): Same.
423         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
424
425 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
426
427         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
428         (graphite_verify): New function.
429         (ivs_params_clear): New function.
430         (gcc_expression_from_isl_ast_expr_id): New function.
431         (gcc_expression_from_isl_expr_int): New function.
432         (binary_op_to_tree): New function.
433         (ternary_op_to_tree): New function.
434         (unary_op_to_tree): New function.
435         (nary_op_to_tree): New function.
436         (gcc_expression_from_isl_expr_op): New function.
437         (gcc_expression_from_isl_expression): New function.
438         (graphite_create_new_loop): New function.
439         (translate_isl_ast_for_loop): New function.
440         (get_upper_bound): New function.
441         (graphite_create_new_loop_guard): New function.
442         (translate_isl_ast_node_for): New function.
443         (translate_isl_ast): New function.
444         (add_parameters_to_ivs_params): New function.
445         (scop_to_isl_ast): New parameter ip.
446         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
447
448 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
449
450         * config/xtensa/predicates.md (call expander): Update for
451         DECL_SECTION_NAME being string.
452
453 2014-07-11  Richard Biener  <rguenther@suse.de>
454
455         PR middle-end/61473
456         * builtins.c (fold_builtin_memory_op): Inline memory moves that
457         can be implemented with a single load followed by a single store.
458         (c_strlen): Only warn when only_value is not 2.
459
460 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
461
462         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
463
464 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
465
466         PR target/61561
467         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
468         (*movhi_bytes): Likewise.
469         (*arm_movqi_insn): Likewise.
470
471 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
472
473         PR target/56858
474         * config/alpha/alpha.c: Include tree-pass.h, context.h
475         and pass_manager.h.
476         (pass_data_handle_trap_shadows): New pass.
477         (pass_handle_trap_shadows::gate): New pass gate function.
478         (make_pass_handle_trap_shadows): New function.
479         (rest_of_handle_trap_shadows): Ditto.
480
481         (alpha_align_insns_1): Rename from alpha_align_insns.
482         (pass_data_align_insns): New pass.
483         (pass_align_insns::gate): New pass gate function.
484         (make_pass_aling_insns): New function.
485         (rest_of_align_insns): Ditto.
486         (alpha_align_insns): Ditto.
487
488         (alpha_option_override): Declare handle_trap_shadows info
489         and align_insns_info.  Register handle_trap_shadows and align_insns
490         passes here.
491         (alpha_reorg): Do not call alpha_trap_shadows and
492         alpha_align_insn from here.
493
494         (alpha_pad_function_end): Do not skip BARRIERs.
495
496 2014-07-10  Rong Xu  <xur@google.com>
497
498         Add gcov-tool: an offline gcda profile processing tool support.
499         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
500         (gcov_is_error): Ditto.
501         (gcov_read_string): Ditto.
502         (gcov_read_sync): Ditto.
503         * gcov-io.h: Move counter defines to gcov-counter.def.
504         * gcov-dump.c (tag_counters): Use gcov-counter.def.
505         * coverage.c: Ditto.
506         * gcov-tool.c: Offline gcda profile processing tool.
507         (unlink_gcda_file): Remove one gcda file.
508         (unlink_profile_dir): Remove gcda files from the profile path.
509         (gcov_output_files): Output gcda files to an output dir.
510         (profile_merge): Merge two profiles in directory.
511         (print_merge_usage_message): Print merge usage.
512         (merge_usage): Print merge usage and exit.
513         (do_merge): Driver for profile merge sub-command.
514         (profile_rewrite): Rewrite profile.
515         (print_rewrite_usage_message): Print rewrite usage.
516         (rewrite_usage): Print rewrite usage and exit.
517         (do_rewrite): Driver for profile rewrite sub-command.
518         (print_usage): Print gcov-info usage and exit.
519         (print_version): Print gcov-info version.
520         (process_args): Process arguments.
521         (main): Main routine for gcov-tool.
522         * Makefile.in: Build and install gcov-tool.
523         * gcov-counter.def: New file split from gcov-io.h.
524         * doc/gcc.texi: Include gcov-tool.texi.
525         * doc/gcov-tool.texi: Document for gcov-tool.
526
527 2014-07-10  Richard Biener  <rguenther@suse.de>
528
529         PR tree-optimization/61757
530         * tree-ssa-dom.c (loop_depth_of_name): Restore.
531         (propagate_rhs_into_lhs): Revert part of last change.
532
533 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
534
535         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
536         FUNCTION_DECLs.
537
538 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
539
540         PR middle-end/53590
541         * function.c (allocate_struct_function): Revert r188667 change.
542
543         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
544
545 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
546
547         * doc/install.texi: Remove links to defunct package providers for
548         Solaris.
549
550 2014-07-09  Tom de Vries  <tom@codesourcery.com>
551
552         * final.c (get_call_fndecl): Declare.
553         (self_recursive_call_p): New function.
554         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
555
556 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
557
558         * ipa-devirt.c (record_node): Walk through aliases.
559
560 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
561
562         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
563
564 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
565
566         Revert:
567         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
568
569 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
570
571         * ipa-visibility.c (function_and_variable_visibility): Remove
572         temporary hack disabling local aliases on AIX.
573
574 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
575
576         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
577         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
578
579 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
580
581         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
582         * rs6000/rs6000.c: Inline output of .set instruction.
583         (declare_alias_data): New struct.
584         (rs6000_declare_alias): New function.
585         (rs6000_xcoff_declare_function_name): Use it.
586         (rs6000_xcoff_declare_object_name): New function.
587         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
588         (ASM_OUTPUT_DEF): Turn to empty definition.
589
590 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
591
592         PR bootstrap/61679
593         * hash-table.h: use hash_table::value_type instead of
594         Descriptor::value_type in the return types of several methods.
595
596 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
597
598         * tree-pass.h (pass_data): Remove has_execute member.
599         * passes.c (execute_one_pass): Don't check pass->has_execute.
600         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
601         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
602         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
603         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
604         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
605         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
606         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
607         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
608         gimple-low.c, gimple-ssa-isolate-paths.c,
609         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
610         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
611         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
612         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
613         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
614         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
615         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
616         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
617         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
618         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
619         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
620         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
621         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
622         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
623         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
624         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
625         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
626         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
627         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
628         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
629         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
630         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
631         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
632         web.c: Remove initializer for pass_data::has_execute.
633
634 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
635
636         * graphite-htab.h: Use hash_map instead of hash_table.
637         * graphite-clast-to-gimple.c: Adjust.
638         * passes.c: Use hash_map instead of hash_table.
639         * sese.c: Likewise.
640         * sese.h: Remove now unused code.
641
642 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
643
644         PR target/61599
645         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
646         than zero.
647
648 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
649
650         PR rtl-optimization/61673
651         * combine.c (simplify_comparison): Test just mode's sign bit
652         in tmode rather than the sign bit and any bits above it.
653
654 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
655
656         * graphite-isl-ast-to-gimple.c (generate_isl_context):
657         Add __isl_give to the declaration.
658         (generate_isl_schedule): Likewise.
659         (scop_to_isl_ast): Likewise.
660
661 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
662
663         * config/arm/arm.c (cortexa5_extra_costs): New table.
664         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
665
666 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
667
668         PR tree-optimization/61725
669         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
670         range, use range_includes_zerop_p instead of integer_zerop on
671         vr0->min, only use log2 of max if min is not negative.
672
673 2014-07-08  Richard Biener  <rguenther@suse.de>
674
675         * tree-ssa-dom.h (loop_depth_of_name): Remove.
676         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
677         restriction on loop depth difference.
678         (record_equality): Likewise.
679         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
680         (loop_depth_of_name): Remove.
681         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
682         restriction on loop depth difference.
683         (init_copy_prop): Likewise.
684
685 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
686
687         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
688         parameter.
689         (walk_aliased_vdefs): Likewise.
690         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
691         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
692         (detect_type_change_from_memory_writes): Check if entry was reached.
693
694 2014-07-08  Richard Biener  <rguenther@suse.de>
695
696         PR tree-optimization/61681
697         * tree-ssa-structalias.c (find_what_var_points_to): Expand
698         NONLOCAL inside ESCAPED.
699
700 2014-07-08  Richard Biener  <rguenther@suse.de>
701
702         PR tree-optimization/61680
703         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
704         Handle properly all read-write dependences with group accesses.
705
706 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
707
708         PR tree-optimization/61576
709         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
710         block containing reduction statement is predecessor of phi basi block.
711
712 2014-07-08  Marek Polacek  <polacek@redhat.com>
713
714         PR c/60226
715         * fold-const.c (round_up_loc): Change the parameter type.
716         Remove assert.
717         * fold-const.h (round_up_loc): Adjust declaration.
718         * stor-layout.c (finalize_record_size): Check for too large types.
719
720 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
721
722         * symtab.c: Include calls.h.
723         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
724
725 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
726
727         * config/rs6000/rs6000.c (output_vec_const_move): Handle
728         little-endian code generation.
729         * config/rs6000/spe.md (spe_evmergehi): Rename to...
730         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
731         (spe_evmergehilo): Rename to...
732         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
733         (spe_evmergelo): Rename to...
734         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
735         (spe_evmergelohi): Rename to...
736         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
737         (spe_evmergehi, spe_evmergehilo): New expanders.
738         (spe_evmergelo, spe_evmergelohi): Likewise.
739         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
740         (*frob_tf_ti): Likewise.
741         (*frob_<mode>_di_2): Likewise.
742         (*frob_tf_di_8_2): Likewise.
743         (*frob_di_<mode>): Likewise.
744         (*frob_ti_tf): Likewise.
745         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
746         (*frob_ti_<mode>_8_2): Likewise.
747         (*frob_ti_tf_2): Likewise.
748         (mov_si<mode>_e500_subreg0): Rename to...
749         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
750         endianness only.
751         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
752         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
753         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
754         the big endianness only.
755         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
756         (*mov_si<mode>_e500_subreg0_2): Rename to...
757         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
758         big big endianness only.
759         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
760         (*mov_si<mode>_e500_subreg4): Rename to...
761         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
762         endianness only.
763         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
764         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
765         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
766         the big endianness only.
767         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
768         pattern.
769         (*mov_si<mode>_e500_subreg4_2): Rename to...
770         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
771         endianness only.
772         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
773         (*mov_sitf_e500_subreg8): Rename to...
774         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
775         endianness only.
776         (*mov_sitf_e500_subreg8_le): New instruction pattern.
777         (*mov_sitf_e500_subreg8_2): Rename to...
778         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
779         endianness only.
780         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
781         (*mov_sitf_e500_subreg12): Rename to...
782         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
783         endianness only.
784         (*mov_sitf_e500_subreg12_le): New instruction pattern.
785         (*mov_sitf_e500_subreg12_2): Rename to...
786         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
787         endianness only.
788         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
789
790 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
791
792         * asan.c (instrument_strlen_call): Do not instrument first byte
793         in strlen if already instrumented.
794
795 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
796
797         * config/arm/arm.opt (mwords-little-endian): Delete.
798         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
799         of TARGET_LITTLE_WORDS.
800         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
801         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
802         warning.
803         * doc/invoke.texi: Remove references to -mwords-little-endian.
804
805 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
806
807         * expmed.c (struct init_expmed_rtl): Change all fields but
808         pow2 and cint from struct rtx_def to rtx.
809         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
810         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
811         at the end again.
812
813 2014-07-06  Marek Polacek  <polacek@redhat.com>
814
815         PR c/6940
816         * doc/invoke.texi: Document -Wsizeof-array-argument.
817
818 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
819
820         * wide-int.h (wide_int_storage): Change declaration from struct
821         to class.
822
823 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
824
825         * cgraph.c (cgraph_create_indirect_edge): Update call of
826         get_polymorphic_call_info.
827         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
828         (possible_polymorphic_call_targets): Add parameter call.
829         (decl_maybe_in_construction_p): New predicate.
830         (get_polymorphic_call_info): Add parameter call;
831         use decl_maybe_in_construction_p.
832         * gimple-fold.c (fold_gimple_assign): Update use of
833         possible_polymorphic_call_targets.
834         (gimple_fold_call): Likewise.
835         * ipa-prop.c: Inlcude calls.h
836         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
837         (param_type_may_change_p): New predicate.
838         (detect_type_change_from_memory_writes): Break out from ...
839         (detect_type_change): ... this one; use param_type_may_change_p.
840         (detect_type_change_ssa): Use param_type_may_change_p.
841         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
842
843 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
844
845         PR target/49423
846         * config/arm/arm-protos.h (arm_legitimate_address_p,
847         arm_is_constant_pool_ref): Add prototypes.
848         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
849         (arm_is_constant_pool_ref) New function.
850         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
851         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
852         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
853         operand. Remove pool_range and neg_pool_range attributes.
854         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
855         pool_range and neg_pool_range attributes.
856         * config/arm/constraints.md (Uh): New constraint.
857         (Uq): Don't allow constant pool references.
858
859 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
860
861         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
862         (move_lo_quad_internal_be_<mode>): Likewise.
863         (move_lo_quad_<mode>): Convert to define_expand.
864         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
865         (aarch64_simd_move_hi_quad_be_<mode>): New.
866         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
867         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
868         (aarch64_combinez_be<mode>): New.
869         (aarch64_combine<mode>): Convert to define_expand.
870         (aarch64_combine_internal<mode>): New.
871         (aarch64_simd_combine<mode>): Remove bogus RTL description.
872
873 2014-07-04  Tom de Vries  <tom@codesourcery.com>
874
875         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
876         combination of earlyclobber and read/write modifiers.
877
878 2014-07-04  Tom de Vries  <tom@codesourcery.com>
879
880         * config/aarch64/aarch64-simd.md
881         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
882
883 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
884
885         PR target/61714
886         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
887
888 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
889
890         PR middle-end/61654
891         * cgraphunit.c (expand_thunk): Call free_dominance_info.
892
893         PR tree-optimization/61684
894         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
895         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
896
897 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
898             Kito Cheng  <kito@0xlab.org>
899             Monk Chiang  <sh.chiang04@gmail.com>
900
901         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
902         (nds32_symbol_load_store_p): Move to ...
903         (nds32_fp_as_gp_check_available): Move to ...
904         * config/nds32/nds32-fp-as-gp.c: ... here.
905         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
906         extern declaration.
907
908 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
909             Kito Cheng  <kito@0xlab.org>
910             Monk Chiang  <sh.chiang04@gmail.com>
911
912         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
913         (nds32_expand_store_multiple): Move to ...
914         (nds32_expand_movmemqi): Move to ...
915         * config/nds32/nds32-memory-manipulation.c: ... here.
916
917 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
918             Kito Cheng  <kito@0xlab.org>
919             Monk Chiang  <sh.chiang04@gmail.com>
920
921         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
922         (nds32_output_casesi_pc_relative): Move to ...
923         (nds32_output_casesi): Move to ...
924         (nds32_mem_format): Move to ...
925         (nds32_output_16bit_store): Move to ...
926         (nds32_output_16bit_load): Move to ...
927         (nds32_output_32bit_store): Move to ...
928         (nds32_output_32bit_load): Move to ...
929         (nds32_output_32bit_load_s): Move to ...
930         (nds32_output_stack_push): Move to ...
931         (nds32_output_stack_pop): Move to ...
932         * config/nds32/nds32-md-auxiliary.c: ... here.
933
934 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
935             Ling-Hua Tseng  <uranus@tinlans.org>
936
937         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
938         the purpose of this file.
939
940 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
941             Kito Cheng  <kito@0xlab.org>
942             Monk Chiang  <sh.chiang04@gmail.com>
943
944         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
945         (nds32_address_cost): Move implementation to ...
946         * config/nds32/nds32-cost.c: ... here.
947         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
948         (nds32_address_cost_impl): Declare.
949
950 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
951             Kito Cheng  <kito@0xlab.org>
952             Monk Chiang  <sh.chiang04@gmail.com>
953
954         * config/nds32/nds32.c
955         (nds32_consecutive_registers_load_store_p): Move to ...
956         (nds32_valid_multiple_load_store): Move to ...
957         (nds32_valid_stack_push_pop): Move to ...
958         (nds32_can_use_bclr_p): Move to ...
959         (nds32_can_use_bset_p): Move to ...
960         (nds32_can_use_btgl_p): Move to ...
961         (nds32_can_use_bitci_p): Move to ...
962         * config/nds32/nds32-predicates.c: ... here.
963
964 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
965             Kito Cheng  <kito@0xlab.org>
966             Monk Chiang  <sh.chiang04@gmail.com>
967
968         * config/nds32/nds32.c
969         (nds32_expand_builtin_null_ftype_reg): Move to ...
970         (nds32_expand_builtin_reg_ftype_imm): Move to ...
971         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
972         (nds32_init_builtins): Move implementation to ...
973         (nds32_expand_builtin): Move implementation to ...
974         * config/nds32/nds32-intrinsic.c: ... here.
975         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
976         (nds32_expand_builtin_impl): Declare.
977
978 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
979             Kito Cheng  <kito@0xlab.org>
980             Monk Chiang  <sh.chiang04@gmail.com>
981
982         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
983         (nds32_emit_section_tail_template): Move to ...
984         (nds32_emit_isr_jmptbl_section): Move to ...
985         (nds32_emit_isr_vector_section): Move to ...
986         (nds32_emit_isr_reset_conten): Move to ...
987         (nds32_check_isr_attrs_conflict): Move to ...
988         (nds32_construct_isr_vectors_information): Move to ...
989         (nds32_asm_file_start): Move implementation to ...
990         (nds32_asm_file_end): Move implementation to ...
991         * config/nds32/nds32-isr.c: ... here.
992         * config/nds32/nds32-protos.h
993         (nds32_check_isr_attrs_conflict): Declare.
994         (nds32_construct_isr_vectors_information): Declare.
995         (nds32_asm_file_start_for_isr): Declare.
996         (nds32_asm_file_end_for_isr): Declare.
997
998 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
999             Kito Cheng  <kito@0xlab.org>
1000             Monk Chiang  <sh.chiang04@gmail.com>
1001
1002         * config.gcc (nds32*): Add new modules to extra_objs.
1003         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
1004         (nds32be-*-*): Likewise.
1005         * config/nds32/nds32-cost.c: New file.
1006         * config/nds32/nds32-fp-as-gp.c: New file.
1007         * config/nds32/nds32-intrinsic.c: New file.
1008         * config/nds32/nds32-isr.c: New file.
1009         * config/nds32/nds32-md-auxiliary.c: New file.
1010         * config/nds32/nds32-memory-manipulation.c: New file.
1011         * config/nds32/nds32-pipelines-auxiliary.c: New file.
1012         * config/nds32/nds32-predicates.c: New file.
1013         * config/nds32/t-nds32: New file.
1014
1015 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
1016
1017         PR tree-optimization/61682
1018         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
1019         using cases and when one of the operands is equal to 1.
1020
1021 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
1022
1023         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
1024         ashr<mode>3): Correct mode of operands[2].
1025         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
1026         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
1027         Correct mode of operands[2].  Fix split condition.
1028
1029 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
1030
1031         * arm.md (arch): Add armv6_or_vfpv3.
1032         (arch_enabled): Add test for the above.
1033         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
1034         on VFP9.
1035         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
1036
1037 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
1038
1039         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
1040         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
1041         HWI 1 and negate the unsigned value.
1042         * expmed.c (expand_sdiv_pow2): For modes wider than word always
1043         use AND instead of shift.
1044         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
1045
1046 2014-07-03  Marek Polacek  <polacek@redhat.com>
1047
1048         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
1049         (-fsanitize=float-divide-by-zero): Move to the table with
1050         -fsanitize=undefined suboptions.
1051         (-fsanitize=float-cast-overflow): Likewise.
1052
1053 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
1054
1055         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
1056         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
1057         endianness.
1058
1059 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1060
1061         * loop-invariant.c (struct invariant): Add a new member: eqno;
1062         (find_identical_invariants): Update eqno;
1063         (create_new_invariant): Init eqno;
1064         (get_inv_cost): Compute comp_cost with eqno;
1065
1066 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
1067
1068         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
1069         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
1070         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
1071         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
1072         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
1073
1074 2014-07-02  Christian Bruel  <christian.bruel@st.com>
1075
1076         PR target/29349
1077         PR target/53513
1078         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
1079         (make_preds_opaque): Delete.
1080         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
1081         (commit_mode_sets): New function.
1082         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
1083         Process all modes at once.
1084         * basic-block.h (pre_edge_lcm_avs): Declare.
1085         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
1086         Call clear_aux_for_edges. Fix comments.
1087         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
1088         (pre_edge_rev_lcm): Idem.
1089         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
1090         parameter.
1091         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
1092         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
1093         Idem.
1094         * config/i386/i386.c (x96_emit_mode_set): Idem.
1095         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
1096         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
1097         (fpscr_toggle) Disallow from delay slot.
1098         * target.def (emit_mode_set): Add prev_mode parameter.
1099         * doc/tm.texi: Regenerate.
1100
1101 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1102
1103         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
1104         variable i.
1105
1106 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
1107
1108         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
1109         vtable_pointer_value_to_vtable): Constify.
1110         (contains_polymorphic_type_p): Declare.
1111         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
1112         vtable_pointer_value_to_vtable): Constify.
1113         (contains_polymorphic_type_p): New predicate.
1114         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
1115         polymorphic types.
1116         (ipa_set_ancestor_jf): Likewise.
1117         (detect_type_change): Return false in easy cases.
1118         (compute_complex_assign_jump_func): Require type to contain
1119         polymorphic type.
1120         (compute_known_type_jump_func): Likewise.
1121
1122 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
1123
1124         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
1125         Remove.
1126         (type_in_anonymous_namespace_p): Constify argument.
1127         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
1128         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
1129         (main_odr_variant): New function.
1130         (hash_type_name): Make static; update assert; do not ICE on
1131         non-records.
1132         (types_same_for_odr): Bring here from tree.c; simplify and remove
1133         old structural comparing code that doesn't work for templates.
1134         (odr_hasher::equal): Update assert.
1135         (add_type_duplicate): Return true when bases should be computed;
1136         replace incomplete loader by complete; do not output duplicated
1137         warnings; do not ICE on non-records; set odr_violated flag.
1138         (get_odr_type): Be ready to replace incomplete type by complete
1139         one; work on ODR variants instead of main variants; reorder item
1140         in array so bases have still smaller indexes.
1141         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
1142         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
1143
1144 2014-07-01  Cary Coutant  <ccoutant@google.com>
1145
1146         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
1147         lookup.
1148         (resolve_addr_in_expr): When replacing the rtx in a location list
1149         entry, get a new address table entry.
1150         (dwarf2out_finish): Call index_location_lists even if there are no
1151         addr_index_table entries yet.
1152
1153 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
1154
1155         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
1156         change for not being obvious.
1157
1158 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
1159
1160         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
1161         unused argument.
1162
1163 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1164
1165         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
1166         (vcagt_f64): Likewise.
1167         (vcale_f64): Likewise.
1168         (vcaled_f64): Likewise.
1169         (vcales_f32): Likewise.
1170         (vcalt_f64): Likewise.
1171         (vcaltd_f64): Likewise.
1172         (vcalts_f32): Likewise.
1173
1174 2014-07-01  Marek Polacek  <polacek@redhat.com>
1175
1176         * doc/invoke.texi: Document -Wint-conversion.
1177
1178 2014-07-01  Marek Polacek  <polacek@redhat.com>
1179
1180         PR c/58286
1181         * doc/invoke.texi: Document -Wincompatible-pointer-types.
1182
1183 2014-07-01  Martin Liska  <mliska@suse.cz>
1184
1185         IPA REF alias refactoring
1186         * cgraph.h (iterate_direct_aliases): New function.
1187         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
1188         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
1189         FOR_EACH_ALIAS added.
1190         (cgraph_for_node_and_aliases): Likewise.
1191         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
1192         * ipa-inline.c (reset_edge_caches): Likewise.
1193         (update_caller_keys): Likewise.
1194         * trans-mem.c (ipa_tm_execute): Likewise.
1195         *varpool.c (varpool_analyze_node): Likewise.
1196         (varpool_for_node_and_aliases): Likewise.
1197         * ipa-ref.h (first_alias): New function.
1198         (last_alias): Likewise.
1199         (has_aliases_p): Likewise.
1200         * ipa-ref.c (ipa_ref::remove_reference): Removal function
1201         is sensitive to IPA_REF_ALIASes.
1202         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
1203         are put at the beginning of the list.
1204         (symtab_node::iterate_direct_aliases): New function.
1205
1206 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1207
1208         Revert:
1209         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
1210         type is complete.
1211         (write_ts_type_common_tree_pointers): Do not stream fields not set
1212         for incomplete types; do not stream duplicated fields for variants;
1213         sanity check that variant and type match.
1214         (write_ts_type_non_common_tree_pointers): Likewise.
1215         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
1216         TYPE_SIZE whether type is complete.
1217         (lto_input_ts_type_common_tree_pointers): Do same changes as in
1218         write_ts_type_common_tree_pointers
1219         (lto_input_ts_type_non_common_tree_pointers): Likewise.
1220
1221 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
1222
1223         * var-tracking.c (add_stores): Return instead of asserting if old
1224         and new values for conditional store are the same.
1225
1226 2014-06-30  Richard Henderson  <rth@redhat.com>
1227
1228         PR rtl-opt/61608
1229         PR target/39284
1230         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
1231         the cfg if there were any changes.
1232         * passes.def: Revert move of peephole2 after reorder_blocks;
1233         move duplicate_computed_gotos before peephole2.
1234
1235 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
1236
1237         * except.c (emit_note_eh_region_end): New helper function.
1238         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
1239         emit EH_REGION_END note.
1240         * jump.c (cleanup_barriers): Do not split a call and its
1241         corresponding CALL_ARG_LOCATION note.
1242
1243 2014-06-30  Jeff Law  <law@redhat.com>
1244
1245         PR tree-optimization/61607
1246         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
1247         deeper into the SSA_NAME_VALUE chain.
1248
1249 2014-06-30  Marek Polacek  <polacek@redhat.com>
1250
1251         * convert.c (convert_to_integer): Don't instrument conversions if the
1252         function has no_sanitize_undefined attribute.
1253         * ubsan.c: Don't run the ubsan pass if the function has
1254         no_sanitize_undefined attribute.
1255
1256 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
1257
1258         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
1259         -fsanitize=undefined suboptions.
1260
1261 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
1262
1263         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
1264         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
1265         against bigendian and adjust indices.
1266
1267 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
1268
1269         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
1270
1271 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1272
1273         PR target/61633
1274         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
1275         Add alternative; make early clobber.  Adjust both split patterns
1276         to use operand 0 as the working register.
1277
1278 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
1279
1280         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
1281         as ira_object_id_map might be NULL, or 1.
1282
1283 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1284
1285         * loop-invariant.c (get_inv_cost): Handle register class.
1286         (gain_for_invariant): Check the register pressure of the inv
1287         and its overlapped register class, other than all.
1288
1289 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
1290
1291         * doc/invoke.texi (Optimize Options): Fix descriptions of
1292         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
1293
1294 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
1295
1296         * doc/extend.texi (Function Attributes): Update 'naked' attribute
1297         documentation.
1298
1299 2014-06-29  Tobias Grosser <tobias@grosser.es>
1300
1301         PR bootstrap/61650
1302         * graphite-isl-ast-to-gimple.c: Add missing guards.
1303
1304 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
1305
1306         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
1307         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
1308         * flag-types.h: Add new enum fgraphite_generator.
1309         * graphite-isl-ast-to-gimple.c: New.
1310         * graphite-isl-ast-to-gimple.h: New.
1311         * graphite.c (graphite_transform_loops): Add choice of Graphite
1312         code generator, which depends on flag_graphite_code_gen.
1313
1314 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
1315
1316         * graphite-dependences.c (subtract_commutative_associative_deps):
1317         Add NULL checking of the following variables: must_raw_no_source,
1318         may_raw_no_source, must_war_no_source, may_war_no_source,
1319         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
1320         must_war, may_war, must_waw, may_waw.
1321
1322 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
1323
1324         * graphite-clast-to-gimple.c: gloog is renamed to
1325         graphite_regenerate_ast_cloog.  gloog_error is renamed to
1326         graphite_regenerate_error.
1327         * graphite-clast-to-gimple.h: The definition of the struct
1328         bb_pbb_def is moved to graphite-htab.h.
1329         Add inclusion of the hash-table.h.
1330         * graphite-htab.h: The declaration of the function gloog is moved
1331         to graphite-clast-to-gimple.h and renamed to
1332         graphite_regenerate_ast_cloog.
1333         * graphite.c (graphite_transform_loops): gloog is renamed
1334         to graphite_regenerate_ast_cloog.
1335
1336 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1337
1338         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
1339         type is complete.
1340         (write_ts_type_common_tree_pointers): Do not stream fields not set
1341         for incomplete types; do not stream duplicated fields for variants;
1342         sanity check that variant and type match.
1343         (write_ts_type_non_common_tree_pointers): Likewise.
1344         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
1345         TYPE_SIZE whether type is complete.
1346         (lto_input_ts_type_common_tree_pointers): Do same changes as in
1347         write_ts_type_common_tree_pointers
1348         (lto_input_ts_type_non_common_tree_pointers): Likewise.
1349
1350 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1351
1352         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
1353
1354 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1355
1356         * tree-inline.c (remap_type_1): Do not duplicate fields
1357         that are shared in between type and its main variant.
1358
1359 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1360
1361         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
1362         of the type.
1363         (ipa_set_ancestor_jf) Likewise.
1364         (check_stmt_for_type_change): Check that we work on main variant.
1365         (detect_type_change): Look into main variant.
1366         (compute_known_type_jump_func): Check that main variant has BINFO.
1367
1368 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1369
1370         * ipa-devirt.c (set_type_binfo): New function.
1371         (add_type_duplicate): Use it.
1372         (get_odr_type): Sanity check that binfos points to main variants.
1373         (get_class_context): Be sure the context's outer_type is main variant.
1374         (contains_type_p): Walk main variant.
1375         (get_polymorphic_call_info_for_decl): Set outer_type to be
1376         main variant.
1377         (get_polymorphic_call_info): Likewise.
1378         (possible_polymorphic_call_targets): Sanity check that we operate
1379         on main variant.
1380
1381 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
1382
1383         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
1384
1385 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1386
1387         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
1388         accidental change due to wide-int branch merge.
1389
1390 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1391
1392         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
1393         compressed debug support.
1394         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
1395         * configure: Regenerate.
1396         * config.in: Regenerate.
1397         * common.opt (compressed_debug_sections): New enum.
1398         (gz, gz=): New options.
1399         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
1400         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
1401         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
1402         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
1403         LINK_COMPRESS_DEBUG_SPEC.
1404         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
1405         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
1406         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
1407         (Debugging Options): Document -gz[=type].
1408
1409 2014-06-27  Martin Jambor  <mjambor@suse.cz>
1410
1411         PR ipa/61160
1412         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
1413         args_to_skip, use those from node instead.  Copy args_to_skip and
1414         combined_args_to_skip from node to the new thunk.
1415         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
1416         (cgraph_create_virtual_clone): Moved computation of
1417         combined_args_to_skip...
1418         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
1419
1420 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
1421
1422         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
1423         redundant diagnostic machinary.
1424
1425 2014-06-27  Richard Biener  <rguenther@suse.de>
1426
1427         * tree-ssa-math-opts.c (bswap_replace): Fix
1428         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
1429
1430 2014-06-27  Martin Liska  <mliska@suse.cz>
1431
1432         * gimple.h (gimple_location_safe): New function introduced.
1433         * cgraphunit.c (walk_polymorphic_call_targets): Usage
1434         of gimple_location_safe replaces gimple_location.
1435         (gimple_fold_call): Likewise.
1436         * ipa-devirt.c (ipa_devirt): Likewise.
1437         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1438         * ipa.c (walk_polymorphic_call_targets): Likewise.
1439         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
1440
1441 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
1442
1443         PR tree-optimization/57233
1444         PR tree-optimization/61299
1445         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
1446         functions.
1447         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
1448         would be lowered to scalar shifts, check if corresponding
1449         shifts and vector BIT_IOR_EXPR are supported and don't lower
1450         or lower just to narrower vector type in that case.
1451         * expmed.c (expand_shift_1): Fix up handling of vector
1452         shifts and rotates.
1453
1454 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
1455
1456         PR target/61586
1457         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
1458
1459 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
1460
1461         * doc/invoke.texi (-fsemantic-interposition): Document.
1462         * common.opt (fsemantic-interposition): New flag.
1463         * varasm.c (decl_replaceable_p): Use it.
1464
1465 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1466
1467         PR target/61542
1468         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
1469         extraction other than index 3.
1470
1471 2014-06-26  Teresa Johnson  <tejohnson@google.com>
1472
1473         * doc/invoke.texi: Fix typo.
1474         * dumpfile.c: Add support for documented -fdump-* options
1475         optimized/missed/note/optall.
1476
1477 2014-06-26  Martin Jambor  <mjambor@suse.cz>
1478
1479         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
1480         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
1481         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
1482         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
1483         * opts.c (default_options_optimization): Set
1484         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
1485         * doc/invoke.texi (allow-load-data-races)
1486         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
1487         (allow-store-data-races): Document the new default.
1488
1489 2014-06-26  Martin Jambor  <mjambor@suse.cz>
1490
1491         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
1492         renamed to ipa_impossible_devirt_target.  Fix typo.
1493         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
1494         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
1495         ipa_impossible_devirt_target.
1496
1497 2014-06-26  Richard Biener  <rguenther@suse.de>
1498
1499         PR tree-optimization/61607
1500         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
1501         explaining why we restrict copies on loop depth.
1502         * tree-ssa-dom.c (cprop_operand): Remove restriction on
1503         on loop depth.
1504         (record_equivalences_from_phis): Instead add it here.
1505
1506 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
1507
1508         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
1509         (LTO_WRAPPER_OBJS): New variable.
1510         (lto-wrapper$(exeext)): Use it.
1511         * collect2.c: Include "collect-utils.h".
1512         (verbose, debug): Remove variables.
1513         (at_file_supplied): No longer static.
1514         (tool_name): New variable.
1515         (do_wait, fork_execute, maybe_unlink): Don't declare.
1516         (tool_cleanup): No longer static.
1517         (notice): Remove function.
1518         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
1519         fork_execute calls.
1520         (collect_wait, do_wait, collect_execute): Remove functions.
1521         (maybe_unlink): No longer static.
1522         * collect2.h (verbose, debug): Don't declare.
1523         (at_file_supplied): Declare.
1524         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
1525         changed.
1526         (collect_execute): Replace with implementation from collect2, plus a
1527         new arg use_atfile.  All callers changed.
1528         (collect_wait): Replace with implementation from collect2.
1529         (maybe_unlink_file): Remove function.
1530         (fork_execute): Replace with implementation from collect2, plus a
1531         new arg use_atfile.  All callers changed.
1532         (do_wait): Add call to utils_cleanup to the error path.
1533         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
1534         (tool_cleanup): Adjust declarations.
1535         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
1536         * tlink.c: Include "collect-utils.h".
1537         (tlink_execute): New arg use_atfile.  All callers changed.
1538         (tlink_init, tlink_execute): Remove declarations.
1539
1540         * collect-utils.c (save_temps): New variable.
1541         (do_wait): Use it instead of debug.  Use fatal_error.
1542         * collect-utils.h (save_temps): Declare.
1543         * collect2.c (verbose): Rename from vflag.  All uses changed.
1544         (tool_cleanup): New function, copied from collect_atexit.
1545         (collect_atexit, handler): Just call it.
1546         * collect2.h (verbose): Declaration renamed from vflag.
1547         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
1548         debug.
1549
1550         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
1551         (lto-wrapper$(exeext)): Link with collect-utils.o.
1552         * collect-utils.c: New file.
1553         * collect-utils.h: New file.
1554         * lto-wrapper.c: Include "collect-utils.h".
1555         (args_name): Delete variable.
1556         (tool_name): New variable.
1557         (tool_cleanup): New function.
1558         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
1559         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
1560         (fork_execute): Remove functions.
1561
1562 2014-06-26  Nick Clifton  <nickc@redhat.com>
1563
1564         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
1565
1566         * doc/extend.texi (Function Attributes): Fix typo in description
1567         of RX vector attribute.
1568
1569 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
1570
1571         * config.gcc (supported_defaults): Error when passing either
1572         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
1573
1574 2014-06-26  Richard Biener  <rguenther@suse.de>
1575
1576         * tree-ssa-dom.c (cprop_operand): Remove restriction on
1577         propagating volatile pointers.
1578
1579 2014-06-26  Richard Biener  <rguenther@suse.de>
1580
1581         PR tree-optimization/61607
1582         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
1583         loop if we redirected its latch edge.
1584         (thread_block_1): Do not cancel loops prematurely.
1585
1586 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
1587
1588         * toplev.c (backend_init_target): Move init_emit_regs and
1589         init_regs to...
1590         (backend_init) ... here; skip ira_init_once and backend_init_target.
1591         (target_reinit) ... and here; clear
1592         this_target_rtl->lang_dependent_initialized.
1593         (lang_dependent_init_target): Clear
1594         this_target_rtl->lang_dependent_initialized;
1595         break out rtl initialization to ...
1596         (initialize_rtl): ... here; call also backend_init_target
1597         and ira_init_once.
1598         * toplev.h (initialize_rtl): New function.
1599         * function.c: Include toplev.h
1600         (init_function_start): Call initialize_rtl.
1601         * rtl.h (target_rtl): Add target_specific_initialized,
1602         lang_dependent_initialized.
1603
1604 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
1605             Jakub Jelinek  <jakub@redhat.com>
1606
1607         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
1608
1609 2014-06-25  Tom de Vries  <tom@codesourcery.com>
1610
1611         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
1612
1613 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1614
1615         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
1616         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
1617         Issue a strict overflow warning if appropriate.
1618
1619 2014-06-25  Martin Liska  <mliska@suse.cz>
1620
1621         IPA REF refactoring
1622         * Makefile.in: Removed header file (ipa-ref-inline.h).
1623         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
1624         called.
1625         (cgraph_speculative_call_info): Likewise.
1626         (cgraph_for_node_thunks_and_aliases): Likewise.
1627         (cgraph_for_node_and_aliases): Likewise.
1628         (verify_cgraph_node): Likewise.
1629         * cgraph.h: Batch of IPA REF functions become member functions of
1630         symtab_node: add_reference, maybe_add_reference, clone_references,
1631         clone_referring, clone_reference, find_reference,
1632         remove_stmt_references, remove_all_references,
1633         remove_all_referring, dump_references, dump_referring,
1634         has_alias_p, iterate_reference, iterate_referring.
1635         * cgraphbuild.c (record_reference): New IPA REF function used.
1636         (record_type_list): Likewise.
1637         (record_eh_tables): Likewise.
1638         (mark_address): Likewise.
1639         (mark_load): Likewise.
1640         (mark_store): Likewise.
1641         (pass_build_cgraph_edges): Likewise.
1642         (rebuild_cgraph_edge): Likewise.
1643         (cgraph_rebuild_references): Likewise.
1644         (pass_remove_cgraph_callee_edges): Likewise.
1645         * cgraphclones.c (cgraph_clone_node): Likewise.
1646         (cgraph_create_virtual_clone): Likewise.
1647         (cgraph_materialize_clone): Likewise.
1648         (cgraph_materialize_all_clones): Likewise.
1649         * cgraphunit.c (cgraph_reset_node): Likewise.
1650         (cgraph_reset_node): Likewise.
1651         (analyze_function): Likewise.
1652         (assemble_thunks_and_aliases): Likewise.
1653         (expand_function): Likewise.
1654         * ipa-comdats.c (propagate_comdat_group): Likewise.
1655         (enqueue_references): Likewise.
1656         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
1657         (create_specialized_node): Likewise.
1658         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
1659         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
1660         * ipa-inline.c (reset_edge_caches): Likewise.
1661         (update_caller_keys): Likewise.
1662         (execute): Likewise.
1663         * ipa-prop.c (remove_described_reference): Likewise.
1664         (propagate_controlled_uses): Likewise.
1665         (ipa_edge_duplication_hook): Likewise.
1666         (ipa_modify_call_arguments): Likewise.
1667         * ipa-pure-const.c (propagate_pure_const): Likewise.
1668         * ipa-ref-inline.h: Header file removed, functions moved
1669         to symtab_node class.
1670         * ipa-ref.c (remove_reference): New class member function.
1671         (cannot_lead_to_return): New class member function.
1672         (referring_ref_list): Likewise.
1673         (referred_ref_list): Likewise.
1674         Rest of functions moved to symtab_node class.
1675         * ipa-ref.h: New member functions remove_reference,
1676         cannot_lead_to_return, referring_ref_list, referred_ref_list added
1677         to ipa_ref class.
1678         ipa_ref_list class has new member functions: first_reference,
1679         first_referring, clear, nreferences.
1680         * ipa-reference.c (analyze_function): New IPA REF function used.
1681         (write_node_summary_p): Likewise.
1682         (ipa_reference_write_optimization_summary): Likewise.
1683         * ipa-split.c (split_function): Likewise.
1684         * ipa-utils.c (ipa_reverse_postorder): Likewise.
1685         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
1686         (function_and_variable_visibility): Likewise.
1687         * ipa.c (has_addr_references_p): Likewise.
1688         (process_references): Argument type changed.
1689         (symtab_remove_unreachable_nodes): New IPA REF function used.
1690         (process_references): Likewise.
1691         (set_writeonly_bit): Likewise.
1692         * lto-cgraph.c: Implementation of new symtab_node member functions
1693         that uses new IPA REF functions.
1694         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
1695         function used.
1696         * lto-streamer-out.c (output_symbol_p): Likewise.
1697         * lto-streamer.h (referenced_from_this_partition_p): Argument type
1698         changed.
1699         * symtab.c: Implementation of new IPA REF API.
1700         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
1701         (ipa_tm_create_version): Likewise.
1702         (ipa_tm_execute): Likewise.
1703         * tree-emutls.c (gen_emutls_addr): Likewise.
1704         * tree-inline.c (copy_bb): Likewise.
1705         (delete_unreachable_blocks_update_callgraph): Likewise.
1706         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
1707         (varpool_for_node_and_aliases): Likewise.
1708
1709 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
1710
1711         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
1712
1713 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
1714
1715         PR bootstrap/61598
1716         * fold-const.c (fold_checksum_tree): Use a hash_table of const
1717         tree_node * instead of tree_node *.
1718         (fold): Adjust.
1719         (print_fold_checksum): Likewise.
1720         (fold_check_failed): Likewise.
1721         (debug_fold_checksum): Likewise.
1722         (fold_build1_stat_loc): Likewise.
1723         (fold_build2_stat_loc): Likewise.
1724         (fold_build3_stat_loc): Likewise.
1725         (fold_build_call_array_loc): Likewise.
1726
1727 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
1728
1729         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
1730         implementation with call to...
1731         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
1732         function.
1733         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
1734         Declare.
1735
1736 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
1737
1738         PR tree-optimization/57742
1739         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
1740         after replacing the statement.
1741
1742 2014-06-25  Nick Clifton  <nickc@redhat.com>
1743
1744         * config/v850/v850.c (GHS_default_section_names): Change to const
1745         char * type.
1746         (GHS_current_section_names): Likewise.
1747         (v850_insert_attributes): Do not build strings, just assign the
1748         names directly.  Change the type of 'chosen_section' to const
1749         char*.
1750         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
1751         directly to the array entry.
1752         * config/v850/v850.h (GHS_default_section_names): Change to const
1753         char * type.
1754         (GHS_current_section_names): Likewise.
1755
1756 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
1757
1758         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
1759         (LANG_HOOKS_DECLS): Add it.
1760         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
1761         has correct type.
1762         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
1763         * langhooks.h (struct lang_hooks_for_decls): Add
1764         omp_clause_linear_ctor hook.
1765         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
1766         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
1767         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
1768         combined simd loop use omp_clause_linear_ctor hook.
1769
1770 2014-06-24  Cong Hou  <congh@google.com>
1771
1772         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
1773         pattern recognition.
1774         (type_conversion_p): PROMOTION is true if it's a type promotion
1775         conversion, and false otherwise.  Return true if the given expression
1776         is a type conversion one.
1777         * tree-vectorizer.h: Adjust the number of patterns.
1778         * tree.def: Add SAD_EXPR.
1779         * optabs.def: Add sad_optab.
1780         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
1781         * expr.c (expand_expr_real_2): Likewise.
1782         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1783         * gimple.c (get_gimple_rhs_num_ops): Likewise.
1784         * optabs.c (optab_for_tree_code): Likewise.
1785         * tree-cfg.c (estimate_operator_cost): Likewise.
1786         * tree-ssa-operands.c (get_expr_operands): Likewise.
1787         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
1788         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
1789         * doc/generic.texi: Add document for SAD_EXPR.
1790         * doc/md.texi: Add document for ssad and usad.
1791
1792 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
1793
1794         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
1795         qualification in cast.
1796
1797 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
1798
1799         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
1800         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
1801         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
1802         (tree_function_decl): ... here.
1803         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
1804         streaming of vindex to ...
1805         (write_ts_function_decl_tree_pointers): ... here.
1806         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
1807         Do not stream DECL_VINDEX.
1808         (lto_input_ts_function_decl_tree_pointers): Stream it here.
1809
1810 2014-06-24  Catherine Moore  <clm@codesourcery.com>
1811             Sandra Loosemore  <sandra@codesourcery.com>
1812
1813         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
1814         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
1815         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
1816
1817 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
1818
1819         * doc/invoke.texi (Warning Options): Remove duplicated
1820         -Wmaybe-uninitialized.
1821
1822 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
1823
1824         PR tree-optimization/57742
1825         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
1826         (handle_builtin_malloc, handle_builtin_memset): New functions.
1827         (strlen_optimize_stmt): Call them.
1828         * passes.def: Move strlen after loop+dom but before vrp.
1829
1830 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1831
1832         PR target/61570
1833         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
1834         model family 6 CPU with has_longmode never use a CPU without
1835         64-bit support.
1836
1837 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1838
1839         PR target/61570
1840         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
1841         the last change.
1842
1843 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
1844
1845         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
1846         * dominance.c (iterate_fix_dominators): Use hash_map instead of
1847         pointer_map.
1848         * hash-map.h: New file.
1849         * ipa-comdats.c: Use hash_map instead of pointer_map.
1850         * ipa.c: Likewise.
1851         * lto-section-out.c: Adjust.
1852         * lto-streamer.h: Replace pointer_map with hash_map.
1853         * symtab.c (verify_symtab): Likewise.
1854         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
1855         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
1856         * tree-streamer.h: Likewise.
1857         * tree-streamer.c: Adjust.
1858         * pointer-set.h: Remove pointer_map.
1859
1860 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
1861
1862         * hash-table.h: Add a template arg to choose between storing values
1863         and storing pointers to values, and then provide partial
1864         specializations for both.
1865         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
1866         should store, not the type values should point to.
1867         * tree-into-ssa.c (var_info_hasher): Likewise.
1868         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
1869         * tree-complex.c: Adjust.
1870         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
1871         table instead of int_tree_map *.
1872         * tree-parloops.c: Adjust.
1873         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
1874         type is being stored.
1875         * tree-vectorizer.c: Adjust.
1876
1877 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
1878
1879         * hash-table.h: Remove a layer of indirection from hash_table so that
1880         it contains the hash table's data instead of a pointer to the data.
1881         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
1882         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
1883         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
1884         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
1885         fold-const.c, gcse.c, ggc-common.c,
1886         gimple-ssa-strength-reduction.c, gimplify.c,
1887         graphite-clast-to-gimple.c, graphite-dependences.c,
1888         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
1889         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
1890         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
1891         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
1892         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
1893         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
1894         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
1895         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
1896         tree-ssa-live.c, tree-ssa-loop-im.c,
1897         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1898         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
1899         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
1900         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
1901         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
1902         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
1903         vtable-verify.c, vtable-verify.h: Adjust.
1904
1905 2014-06-24  Richard Biener  <rguenther@suse.de>
1906
1907         PR tree-optimization/61572
1908         * tree-ssa-sink.c (statement_sink_location): Do not sink
1909         loads from hard registers.
1910
1911 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
1912
1913         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
1914         not mentioned in clauses use private clause if the iterator is
1915         declared in #pragma omp for simd, and when adding lastprivate
1916         instead, add it to the outer #pragma omp for too.  Diagnose
1917         if the variable is private in outer context.  For simd collapse > 1
1918         loops, replace all iterators with temporaries.
1919         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
1920         same even in collapse > 1 loops.
1921
1922         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
1923         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
1924         non-NULL.
1925         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
1926         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
1927         non-NULL.
1928         (gimplify_adjust_omp_clauses): Likewise.
1929         * omp-low.c (lower_rec_simd_input_clauses,
1930         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
1931         safelen the same as safelen(1).
1932         * tree-nested.c (convert_nonlocal_omp_clauses,
1933         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
1934         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
1935         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
1936         Fixup handling of GIMPLE_OMP_TARGET.
1937         (convert_tramp_reference_stmt, convert_gimple_call): Handle
1938         GIMPLE_OMP_TARGET.
1939
1940 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
1941
1942         PR tree-optimization/61554
1943         * tree-ssa-propagate.c: Include "bitmap.h".
1944         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
1945         properly update constructor/destructor.
1946         (substitute_and_fold_dom_walker::before_dom_children):
1947         Remove call to gimple_purge_dead_eh_edges, add bb->index to
1948         need_eh_cleaup instead.
1949         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
1950         need_eh_cleanup.
1951
1952 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
1953
1954         * varpool.c (dump_varpool_node): Dump used_by_single_function.
1955         * tree-pass.h (make_pass_ipa_single_use): New pass.
1956         * cgraph.h (used_by_single_function): New flag.
1957         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
1958         Stream it.
1959         * passes.def (pass_ipa_single_use): Scedule.
1960         * ipa.c (BOTTOM): New macro.
1961         (meet): New function
1962         (propagate_single_user): New function.
1963         (ipa_single_use): New function.
1964         (pass_data_ipa_single_use): New pass.
1965         (pass_ipa_single_use): New pass.
1966         (pass_ipa_single_use::gate): New gate.
1967         (make_pass_ipa_single_use): New function.
1968
1969 2014-06-23  Kai Tietz  <ktietz@redhat.com>
1970
1971         PR target/39284
1972         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
1973         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
1974
1975 2014-06-23  Richard Biener  <rguenther@suse.de>
1976
1977         * tree-ssa-loop.c (gate_loop): New function.
1978         (pass_tree_loop::gate): Call it.
1979         (pass_data_tree_no_loop, pass_tree_no_loop,
1980         make_pass_tree_no_loop): New.
1981         * tree-vectorizer.c: Include tree-scalar-evolution.c
1982         (pass_slp_vectorize::execute): Initialize loops and SCEV if
1983         required.
1984         (pass_slp_vectorize::clone): New method.
1985         * timevar.def (TV_TREE_NOLOOP): New.
1986         * tree-pass.h (make_pass_tree_no_loop): Declare.
1987         * passes.def (pass_tree_no_loop): New pass group with
1988         SLP vectorizer.
1989
1990 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
1991
1992         PR target/61570
1993         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
1994         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
1995
1996 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
1997
1998         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
1999         "yes" where needed.
2000
2001 2014-06-23  Alan Modra  <amodra@gmail.com>
2002
2003         PR bootstrap/61583
2004         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
2005         to zero on debug statements.
2006
2007 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
2008
2009         PR target/60825
2010         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
2011         Ignore third operand if present by marking qualifier_internal.
2012
2013         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
2014
2015         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
2016         vector extension.
2017         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
2018         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
2019         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
2020         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
2021         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
2022         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
2023         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
2024         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
2025         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
2026         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
2027         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
2028         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
2029         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
2030         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
2031         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
2032         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
2033         logic in GCC vector extensions
2034
2035         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
2036         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
2037         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
2038         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
2039         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
2040         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
2041         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
2042         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
2043         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
2044         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
2045
2046         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
2047
2048         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
2049         extensions.
2050
2051         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
2052         (vget_low_s64): Use __GET_LOW macro.
2053         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
2054         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
2055         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
2056         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
2057         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
2058
2059         (vcombine_s64): Use GCC vector extensions; remove cast.
2060         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
2061         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
2062         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
2063         Fix type signature; remove cast.
2064
2065 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
2066
2067         PR target/60825
2068         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
2069         V1DFmode.
2070         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
2071         add V1DFmode
2072         (BUILTIN_VD1): New.
2073         (BUILTIN_VD_RE): Remove.
2074         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
2075         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
2076         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
2077         variant but not df.
2078         (vreinterpretv1df*, vreinterpret*v1df): New.
2079         (vreinterpretdf*, vreinterpret*df): Remove.
2080         * config/aarch64/aarch64-simd.md (aarch64_create,
2081         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
2082         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
2083         (VD1): New.
2084         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
2085         (vcreate_f64): Remove cast, use v1df builtin.
2086         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
2087         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
2088         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
2089         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
2090         vmov_n_f64, vst1_f64): Use gcc vector extensions.
2091         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
2092         add range check using __builtin_aarch64_im_lane_boundsi.
2093         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
2094         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
2095         type signature, use gcc vector extensions.
2096         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
2097         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
2098         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
2099         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
2100         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
2101         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
2102         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
2103         vreinterpret_u64_f64): Use v1df builtin not df.
2104
2105 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
2106
2107         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
2108         vector registers.
2109
2110 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
2111
2112         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
2113         priority directly.
2114
2115 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2116
2117         * loop-invariant.c (pre_check_invariant_p): New function.
2118         (find_invariant_insn): Call pre_check_invariant_p.
2119
2120 2014-06-22  Richard Henderson  <rth@redhat.com>
2121
2122         PR target/61565
2123         * compare-elim.c (struct comparison): Add eh_note.
2124         (find_comparison_dom_walker::before_dom_children): Don't eliminate
2125         a redundant comparison in a different EH region.  Purge EH edges if
2126         necessary.
2127
2128 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2129
2130         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
2131         (var_shift): Use it.
2132         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
2133         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
2134         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
2135         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
2136         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
2137         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
2138         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
2139         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
2140         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
2141         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
2142         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
2143         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
2144         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
2145         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
2146         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
2147         *rotldi3_internal15be): Use the new attribute.  Merge register and
2148         integer alternatives.
2149
2150 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2151
2152         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
2153         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
2154         split, *ashrdi3_internal3 and split): Delete, merge into...
2155         (ashr<mode>3): New expander.
2156         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
2157         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
2158
2159 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2160
2161         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
2162         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
2163         *rotldi3_internal3 and split): Delete, merge into...
2164         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
2165         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
2166         Use "rotlw" extended mnemonic.
2167
2168 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2169
2170         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
2171         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
2172         and split, *ashldi3_internal3 and split): Delete, merge into...
2173         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
2174         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
2175
2176 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2177
2178         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
2179         (lshrsi3, two anonymous define_insns and define_splits,
2180         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
2181         *lshrdi3_internal3 and split): Delete, merge into...
2182         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
2183         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
2184
2185 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
2186
2187         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
2188         Remove "O" alternative.
2189
2190 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
2191
2192         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
2193         (mips_move_from_gpr_cost): Likewise.
2194         (mips_register_move_cost): Update accordingly.
2195         (mips_secondary_reload_class): Remove name of in_p.
2196
2197 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
2198
2199         PR target/61503
2200         * config/i386/i386.md (x86_64_shrd, x86_shrd,
2201         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
2202
2203 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2204
2205         * config/nios2/nios2.c: Include "builtins.h".
2206
2207 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
2208
2209         * cgraph.h (tls_model_names): New variable.
2210         * print-tree.c (print_node): Simplify.
2211         * varpool.c (tls_model_names): New variable.
2212         (dump_varpool_node): Output tls model.
2213
2214 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
2215
2216         * ipa-visibility.c (function_and_variable_visibility): Disable
2217         temporarily local aliases for some targets.
2218
2219 2014-06-20  Marek Polacek  <polacek@redhat.com>
2220
2221         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
2222         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
2223         into SANITIZE_UNDEFINED.
2224         * doc/invoke.texi: Describe -fsanitize=bounds.
2225         * gimplify.c (gimplify_call_expr): Add gimplification of internal
2226         functions created in the FEs.
2227         * internal-fn.c: Move "internal-fn.h" after "tree.h".
2228         (expand_UBSAN_BOUNDS): New function.
2229         * internal-fn.def (UBSAN_BOUNDS): New internal function.
2230         * internal-fn.h: Don't define internal functions here.
2231         * opts.c (common_handle_option): Add -fsanitize=bounds.
2232         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
2233         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
2234         * tree-core.h: Define internal functions here.
2235         (struct tree_base): Add ifn field.
2236         * tree-pretty-print.c: Include "internal-fn.h".
2237         (dump_generic_node): Handle functions without CALL_EXPR_FN.
2238         * tree.c (get_callee_fndecl): Likewise.
2239         (build_call_expr_internal_loc): New function.
2240         * tree.def (CALL_EXPR): Update description.
2241         * tree.h (CALL_EXPR_IFN): Define.
2242         (build_call_expr_internal_loc): Declare.
2243         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
2244         types.
2245         (ubsan_type_descriptor): Change bool parameter to enum
2246         ubsan_print_style.  Adjust the code.  Add handling of
2247         UBSAN_PRINT_ARRAY.
2248         (ubsan_expand_bounds_ifn): New function.
2249         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
2250         (ubsan_build_overflow_builtin): Likewise.
2251         (instrument_bool_enum_load): Likewise.
2252         (ubsan_instrument_float_cast): Likewise.
2253         * ubsan.h (enum ubsan_print_style): New enum.
2254         (ubsan_expand_bounds_ifn): Declare.
2255         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
2256
2257 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
2258
2259         * config/rs6000/rs6000.md: Append `DONE' to preparation
2260         statements of `bswap' pattern splitters.
2261
2262 2014-06-20  Tom de Vries  <tom@codesourcery.com>
2263
2264         * target.def (call_fusage_contains_non_callee_clobbers): Update
2265         definition.
2266         * doc/tm.texi: Regenerate.
2267
2268 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
2269             Max Ostapenko  <m.ostapenko@partner.samsung.com>
2270
2271         PR sanitizer/61547
2272         * asan.c (instrument_strlen_call): Fixed instrumentation of
2273         trailing byte.
2274
2275 2014-06-20  Martin Jambor  <mjambor@suse.cz>
2276
2277         PR ipa/61540
2278         * ipa-prop.c (impossible_devirt_target): New function.
2279         (try_make_edge_direct_virtual_call): Use it, also instead of
2280         asserting.
2281
2282 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
2283             Max Ostapenko  <m.ostapenko@partner.samsung.com>
2284
2285         PR sanitizer/61530
2286         * asan.c (build_check_stmt): Add condition.
2287
2288 2014-06-20  Martin Jambor  <mjambor@suse.cz>
2289
2290         PR ipa/61211
2291         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
2292         expanded clones.
2293
2294 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2295
2296         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
2297         Update comments.
2298         (VCONQ): Make comment more helpful.
2299         (VCON): Delete.
2300         * config/aarch64/aarch64-simd.md
2301         (aarch64_sqdmulh_lane<mode>):
2302         Use VCOND for operands 2.  Update lane checking and flipping logic.
2303         (aarch64_sqrdmulh_lane<mode>): Likewise.
2304         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
2305         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
2306         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
2307         attribute of operand 3 to VCOND.
2308         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
2309         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
2310         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
2311         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
2312         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
2313         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
2314         define_insn.
2315         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
2316         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
2317         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
2318         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
2319         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
2320         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
2321         operand to VCOND.  Update lane flipping and bounds checking logic.
2322         (aarch64_sqdmlal2_lane<mode>): Likewise.
2323         (aarch64_sqdmlsl_lane<mode>): Likewise.
2324         (aarch64_sqdmull_lane<mode>): Likewise.
2325         (aarch64_sqdmull2_lane<mode>): Likewise.
2326         (aarch64_sqdmlal_laneq<mode>):
2327         Replace VCON usage with VCONQ.
2328         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
2329         (aarch64_sqdmlal2_laneq<mode>): Emit
2330         aarch64_sqdmlal2_laneq<mode>_internal insn.
2331         Replace VCON with VCONQ.
2332         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
2333         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
2334         (aarch64_sqdmull_laneq<mode>): Emit
2335         aarch64_sqdmull_laneq<mode>_internal insn.
2336         Replace VCON with VCONQ.
2337         (aarch64_sqdmull2_laneq<mode>): Emit
2338         aarch64_sqdmull2_laneq<mode>_internal insn.
2339         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
2340         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
2341         of 3rd argument to int16x4_t.
2342         (vqdmlalh_lane_s16): Likewise.
2343         (vqdmlslh_lane_s16): Likewise.
2344         (vqdmull_high_lane_s16): Likewise.
2345         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
2346         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
2347         (vqdmlsl_lane_s16): Likewise.
2348         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
2349         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
2350         (vqdmlals_lane_s32): Likewise.
2351         (vqdmlsls_lane_s32): Likewise.
2352         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
2353         (vqdmulls_lane_s32): Likewise.
2354         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
2355         (vqdmlsl_lane_s32): Likewise.
2356         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
2357         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
2358         (vqrdmulhh_lane_s16): Likewise.
2359         (vqdmlsl_high_lane_s16): Likewise.
2360         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
2361         (vqdmlsl_high_lane_s32): Likewise.
2362         (vqrdmulhs_lane_s32): Likewise.
2363
2364 2014-06-20  Tom de Vries  <tom@codesourcery.com>
2365
2366         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
2367         get_call_reg_set_usage.
2368
2369 2014-06-20  Tom de Vries  <tom@codesourcery.com>
2370
2371         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
2372         it contains all call_used_regs.
2373
2374 2014-06-20  Tom de Vries  <tom@codesourcery.com>
2375
2376         * final.c (collect_fn_hard_reg_usage): Add and use variable
2377         function_used_regs.
2378
2379 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
2380
2381         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
2382         (set_init_priority, get_init_priority, set_fini_priority,
2383         get_fini_priority): New methods.
2384         * tree.c (init_priority_for_decl): Remove.
2385         (init_ttree): Do not initialize init priority.
2386         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
2387         (decl_priority_info): Remove.
2388         (decl_init_priority_insert): Rewrite.
2389         (decl_fini_priority_insert): Rewrite.
2390         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
2391         tree_priority_map_marked_p): Remove.
2392         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
2393         * lto-streamer-out.c (hash_tree): Do not hash priorities.
2394         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
2395         not output priorities.
2396         (pack_ts_function_decl_value_fields): Likewise.
2397         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
2398         not input priorities.
2399         (unpack_ts_function_decl_value_fields): Likewise.
2400         * symtab.c (symbol_priority_map): Declare.
2401         (init_priority_hash): Declare.
2402         (symtab_unregister_node): Unregister from priority hash, too.
2403         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
2404         New methods.
2405         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
2406         (symbol_priority_info): New function.
2407         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
2408         New methods.
2409         * tree-core.h (tree_priority_map): Remove.
2410
2411 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
2412
2413         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
2414         0xff to uint64_t before shifting it up.
2415
2416 2014-06-20  Julian Brown  <julian@codesourcery.com>
2417             Chung-Lin Tang  <cltang@codesourcery.com>
2418
2419         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
2420         TARGET_THUMB1_ONLY. Add comments.
2421
2422 2014-06-19  Tom de Vries  <tom@codesourcery.com>
2423
2424         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
2425         return type to void.
2426         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
2427
2428 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2429
2430         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
2431         as "move", from depends_on.
2432
2433 2014-06-19  Terry Guo  <terry.guo@arm.com>
2434
2435         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
2436         stage.
2437
2438 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
2439
2440         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
2441         Remove cr5.
2442         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
2443
2444 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2445
2446         PR target/61550
2447         * config/sh/sh.c (prepare_move_operands): Don't process TLS
2448         addresses here if reload in progress or completed.
2449
2450 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
2451
2452         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
2453         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
2454         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
2455         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
2456         (mips_register_priority): New function that implements the target
2457         hook TARGET_REGISTER_PRIORITY.
2458         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
2459         (mips_lra_p): Likewise for TARGET_LRA_P.
2460         (TARGET_REGISTER_PRIORITY): Define macro.
2461         (TARGET_SPILL_CLASS): Likewise.
2462         (TARGET_LRA_P): Likewise.
2463         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
2464         classes.
2465         (REG_CLASS_NAMES): Likewise.
2466         (REG_CLASS_CONTENTS): Likewise.
2467         (BASE_REG_CLASS): Use M16_SP_REGS.
2468         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
2469         New set attribute to enable alternatives depending on the register
2470         allocator used.
2471         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
2472         (*lea64): Disable pattern for MIPS16.
2473         * config/mips/mips.opt (mlra): New option.
2474
2475 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
2476
2477         * lra-constraints.c (base_to_reg): New function.
2478         (process_address): Use new function.
2479
2480 2014-06-18  Tom de Vries  <tom@codesourcery.com>
2481
2482         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
2483         * config/aarch64/aarch64.c
2484         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
2485         (aarch64_emit_call_insn): New function.
2486         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
2487         of emit_call_insn.
2488         * config/aarch64/aarch64.md (define_expand "call_internal")
2489         (define_expand "call_value_internal", define_expand "sibcall_internal")
2490         (define_expand "sibcall_value_internal"): New.
2491         (define_expand "call", define_expand "call_value")
2492         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
2493         expand variant and aarch64_emit_call_insn.
2494
2495 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
2496             Tom de Vries  <tom@codesourcery.com>
2497
2498         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
2499         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
2500         Redefine to true.
2501         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
2502         clobbers to CALL_INSN_FUNCTION_USAGE.
2503         (define_expand "sibcall_internal")
2504         (define_expand "sibcall_value_internal"): New.
2505         (define_expand "call", define_expand "call_value"): Add argument to
2506         arm_emit_call_insn.
2507         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
2508         (define_expand "sibcall_value"): Use sibcall_value_internal and
2509         arm_emit_call_insn.
2510
2511 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2512
2513         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
2514
2515 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2516
2517         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
2518         __udivmoddi4.
2519
2520 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2521
2522         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
2523         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
2524         annotations. Fix DWARF information.
2525
2526 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2527
2528         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
2529         __udivmoddi4, and fixups for negative operands.
2530
2531 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2532
2533         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
2534
2535 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2536
2537         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
2538         to __udivmoddi4.
2539
2540 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2541
2542         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
2543         manipulation.
2544
2545 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2546
2547         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
2548         describing register usage on function entry and exit.
2549
2550 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2551
2552         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
2553         (__aeabi_ldivmod): Fix whitespace.
2554
2555 2014-06-18  Andreas Schwab  <schwab@suse.de>
2556
2557         * doc/md.texi (Standard Names): Use @itemx for grouped items.
2558         Remove blank line after @item.
2559
2560 2014-06-18  Richard Henderson  <rth@redhat.com>
2561
2562         PR target/61545
2563         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
2564
2565 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
2566
2567         * config/arm/arm.c (neon_vector_mem_operand): Allow register
2568         POST_MODIFY for neon loads and stores.
2569         (arm_print_operand): Output post-index register for neon loads and
2570         stores.
2571
2572 2014-06-18  Richard Biener  <rguenther@suse.de>
2573
2574         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
2575
2576 2014-06-18  Richard Biener  <rguenther@suse.de>
2577
2578         * tree-pass.h (make_pass_dce_loop): Remove.
2579         * passes.def: Replace pass_dce_loop with pass_dce.
2580         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
2581         changed free niter estimates and reset the scev cache.
2582         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
2583         make_pass_dce_loop): Remove.
2584         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
2585         (fini_copy_prop): Return whether something changed.  Always
2586         let substitute_and_fold perform DCE and free niter estimates
2587         and reset the scev cache if so.
2588         (execute_copy_prop): If sth changed schedule cleanup-cfg.
2589         (pass_data_copy_prop): Do not unconditionally schedule
2590         cleanup-cfg or update-ssa.
2591
2592 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
2593
2594         PR tree-optimization/61518
2595         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
2596         reduction var is used in reduction stmt or phi-function only.
2597
2598 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2599
2600         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
2601
2602 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2603
2604         PR tree-optimization/61517
2605         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
2606         whose rhs's first tree is the source expression instead of the
2607         expression itself.
2608         (find_bswap_or_nop): Likewise.
2609         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
2610         gimple stmt whose rhs's first tree is the source. In the memory source
2611         case, move the stmt to be replaced close to one of the original load to
2612         avoid the problem of a store between the load and the stmt's original
2613         location.
2614         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
2615         signature.
2616
2617 2014-06-18  Andreas Schwab  <schwab@suse.de>
2618
2619         PR rtl-optimization/54555
2620         * postreload.c (move2add_use_add2_insn): Substitute
2621         STRICT_LOW_PART only if it is cheaper.
2622
2623 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
2626         Do not use unspec as call operand.  Use memory_operand instead of
2627         memory_nox32_operand and add "m" operand constraint.  Disable
2628         pattern for TARGET_X32.
2629         (*sibcall_pop_memory): Ditto.
2630         (*sibcall_value_memory): Ditto.
2631         (*sibcall_value_pop_memory): Ditto.
2632         (sibcall peepholes): Merge SImode and DImode patterns using
2633         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
2634         Disable pattern for TARGET_X32.  Check if eliminated register is
2635         really dead after call insn.  Generate call RTX without unspec operand.
2636         (sibcall_value peepholes): Ditto.
2637         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
2638         instead of memory_nox32_operand.  Check if eliminated register is
2639         really dead after call insn. Generate call RTX without unspec operand.
2640         (sibcall_value_pop peepholes): Ditto.
2641         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
2642
2643 2014-06-18  Terry Guo  <terry.guo@arm.com>
2644
2645         PR target/61544
2646         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
2647         reach the head.
2648
2649 2014-06-18  Olivier Hainque  <hainque@adacore.com>
2650
2651         * tree-core.h (tree_block): Add an "end_locus" field, allowing
2652         memorization of the end of block source location.
2653         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
2654         * gimplify.c (gimplify_bind_expr): Propagate the block start and
2655         end source location info we have on the block entry/exit code we
2656         generate.
2657
2658 2014-06-18  Richard Biener  <rguenther@suse.de>
2659
2660         * common.opt (fssa-phiopt): New option.
2661         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
2662         but not with -Og.
2663         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
2664         * doc/invoke.texi (-fssa-phiopt): Document.
2665
2666 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2667
2668         * genattrtab.c (n_bypassed): New variable.
2669         (process_bypasses): Initialise n_bypassed.
2670         Count number of bypassed reservations.
2671         (make_automaton_attrs): Allocate space for bypassed reservations
2672         rather than number of bypasses.
2673
2674 2014-06-18  Richard Biener  <rguenther@suse.de>
2675
2676         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
2677         we propagated anything.
2678         (substitute_and_fold_dom_walker::before_dom_children): Something
2679         changed if we propagated into PHI arguments.
2680         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
2681         we removed a stmt.
2682
2683 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
2684
2685         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
2686         vector case.
2687         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
2688         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
2689         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
2690         Introduces alternative way of loads group permutaions.
2691         (vect_transform_grouped_load): Try alternative way of permutations.
2692
2693 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
2694
2695         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
2696         changed in ORT_TARGET region, don't jump to do_outer.
2697         (struct gimplify_adjust_omp_clauses_data): New type.
2698         (gimplify_adjust_omp_clauses_1): Adjust for data being
2699         a struct gimplify_adjust_omp_clauses_data pointer instead
2700         of tree *.  Pass pre_p as a new argument to
2701         lang_hooks.decls.omp_finish_clause hook.
2702         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
2703         splay_tree_foreach to pass both list_p and pre_p.
2704         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
2705         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
2706         gimplify_adjust_omp_clauses callers.
2707         * langhooks.c (lhd_omp_finish_clause): New function.
2708         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
2709         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
2710         * langhooks.h (struct lang_hooks_for_decls): Add a new
2711         gimple_seq * argument to omp_finish_clause hook.
2712         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
2713         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
2714         (scan_omp_parallel, lower_omp_for): When adding
2715         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
2716         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
2717         * tree-nested.c (convert_nonlocal_omp_clauses,
2718         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
2719         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
2720
2721 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
2722
2723         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
2724         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
2725
2726 2014-06-17  Xinliang David Li  <davidxl@google.com>
2727
2728         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
2729         * passes.c (pass_init_dump_file): Do not set initialize
2730         flag to false unconditionally.
2731
2732 2014-06-17  Richard Biener  <rguenther@suse.de>
2733
2734         * genopinit.c (main): Use vec<>::qsort method.
2735         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
2736         Likewise.
2737         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
2738
2739 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
2740
2741         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
2742         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
2743         (mips_move_to_gpr_cost): Remove ST_REGS case.
2744         (mips_move_from_gpr_cost): Likewise.
2745         (mips_register_move_cost): Likewise.
2746         (mips_secondary_reload_class): Likewise.
2747
2748 2014-06-17  Richard Biener  <rguenther@suse.de>
2749
2750         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
2751         (pass_all_optimizations): Move 3rd copy-prop pass from after
2752         fre to before ifcombine/phiopt.
2753
2754 2014-06-17  Richard Biener  <rguenther@suse.de>
2755
2756         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
2757         and allow all blocks to be forwarders.
2758
2759 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
2760
2761         PR target/61483
2762         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
2763         variable 'size'; calculate 'size' right in the front; use
2764         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
2765         pcum->aapcs_stack_words.
2766
2767 2014-06-17  Nick Clifton  <nickc@redhat.com>
2768
2769         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
2770         (umulhi3, mulsidi3, umulsidi3): Likewise.
2771
2772 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
2773
2774         PR middle-end/61508
2775         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
2776         check for section name.
2777
2778 2014-06-17  Richard Biener  <rguenther@suse.de>
2779
2780         * tree-ssa-propagate.c: Include domwalk.h.
2781         (substitute_and_fold): Outline main worker into a domwalker ...
2782         (substitute_and_fold_dom_walker::before_dom_children): ... here.
2783         Schedule stmts we can fully propagate for removal.  Remove
2784         poor-mans DCE.
2785         (substitute_and_fold): Apply a dominator walk to perform
2786         substitution.  Process stmts scheduled for removal here.
2787
2788 2014-06-17  Richard Biener  <rguenther@suse.de>
2789
2790         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
2791         of PHI node moving.
2792
2793 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
2794
2795         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
2796         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
2797         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
2798         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
2799         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
2800         TARGET_HARD_FLOAT.
2801         (get_fpscr) : Likewise.
2802
2803 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2804
2805         PR rtl-optimization/61325
2806         * lra-constraints.c (valid_address_p): Add forward declaration.
2807         (simplify_operand_subreg): Check address validity before and after
2808         alter_reg of memory subreg.
2809
2810 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
2811
2812         * config/i386/i386.c (decide_alg): Correctly handle
2813         maximum size of stringop algorithm.
2814
2815 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
2816
2817         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
2818
2819 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
2820
2821         PR rtl-optimization/61522
2822         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
2823
2824 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
2825
2826         Revert:
2827         * symtab.c (symtab_node::reset_section): New method.
2828         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
2829         for localization.
2830         * cgraph.h (reset_section): Declare.
2831         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
2832         do not consider comdat locals.
2833         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
2834         for new symbol.
2835         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
2836         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
2837         reset sections of symbols dragged out of the comdats.
2838         (function_and_variable_visibility): Reset sections of
2839         localized symbols.
2840
2841 2014-06-16  Richard Biener  <rguenther@suse.de>
2842
2843         PR tree-optimization/61482
2844         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
2845         [-INF(OVF), +INF(OVF)] range.
2846
2847 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
2848
2849         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
2850         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
2851         handling 32-bit multiplication.
2852
2853 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
2854
2855         PR middle-end/61430
2856         * lra-lives.c (process_bb_lives): Skip creating copy during
2857         insn scan when src/dest has constrained to same regno.
2858
2859 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2860
2861         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
2862         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
2863
2864 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
2865
2866         * asan.c (check_func): New function.
2867         (maybe_create_ssa_name): Likewise.
2868         (build_check_stmt_with_calls): Likewise.
2869         (use_calls_p): Likewise.
2870         (report_error_func): Change interface.
2871         (build_check_stmt): Allow non-integer lengths; add support
2872         for new parameter.
2873         (asan_instrument): Likewise.
2874         (instrument_mem_region_access): Moved code to build_check_stmt.
2875         (instrument_derefs): Likewise.
2876         (instrument_strlen_call): Likewise.
2877         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
2878         * doc/invoke.texi: Describe new parameter.
2879         * params.def: Define new parameter.
2880         * params.h: Likewise.
2881         * sanitizer.def: Describe new builtins.
2882
2883 2014-06-16  Richard Biener  <rguenther@suse.de>
2884
2885         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2886         Make all defs available at the end.
2887         (eliminate): If we remove a PHI node schedule cfg-cleanup.
2888
2889 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
2890
2891         PR plugins/45078
2892         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
2893
2894 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
2895
2896         PR bootstrap/61516
2897         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
2898         initialization.  Replace remaining use of uid.
2899
2900 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
2901
2902         * c-family/c-common.c (handle_tls_model_attribute): Use
2903         set_decl_tls_model.
2904         * c-family/c-common.c (handle_tls_model_attribute): Use
2905         set_decl_tls_model.
2906         * cgraph.h (struct varpool_node): Add tls_model.
2907         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
2908         * tree.h (DECL_TLS_MODEL): Update.
2909         (DECL_THREAD_LOCAL_P): Check that variable is static.
2910         (decl_tls_model): Declare.
2911         (set_decl_tls_model): Declare.
2912         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
2913         set symbol prorperties.
2914         (get_emutls_init_templ_addr): Cleanup.
2915         (new_emutls_decl): Update.
2916         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
2917         (lto_input_varpool_node): Likewise.
2918         * lto-streamer-out.c (hash_tree): Likewise.
2919         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
2920         not stream DECL_TLS_MODEL.
2921         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
2922         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
2923
2924 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
2925
2926         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
2927
2928 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
2929
2930         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
2931         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
2932         lists.
2933         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
2934         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
2935         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
2936         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
2937         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
2938         (df_get_artificial_defs, df_get_artificial_uses)
2939         (df_single_def, df_single_use): Update accordingly.
2940         (df_refs_chain_dump): Take the first element in a linked list as
2941         parameter, rather than a pointer to an array of pointers.
2942         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
2943         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
2944         (df_chain_create_bb_process_use): Likewise.
2945         (df_md_bb_local_compute_process_def): Likewise.
2946         * fwprop.c (process_defs, process_uses): Likewise.
2947         (register_active_defs, update_uses): Likewise.
2948         (forward_propagate_asm): Update for new df_ref linking.
2949         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
2950         (df_null_ref_rec, df_null_mw_rec): Likewise.
2951         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
2952         explicitly.
2953         (df_scan_free_bb_info): Remove check for null artificial_defs.
2954         (df_install_ref_incremental): Adjust for new df_ref linking.
2955         Use a single-element insertion rather than a full sort.
2956         (df_ref_chain_delete_du_chain): Take the first element
2957         in a linked list as parameter, rather than a pointer to an array of
2958         pointers.
2959         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
2960         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
2961         (df_insn_info_delete): Remove check for null defs and call to
2962         df_scan_free_mws_vec.
2963         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
2964         null rather than df_null_*_rec.
2965         (df_insn_rescan_debug_internal): Likewise, and update null
2966         checks in the same way.  Remove check for null defs.
2967         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
2968         Move a single element rather doing a full sort.
2969         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
2970         linking.
2971         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
2972         Initialize df_ref and df_mw_hardreg lists to null rather than
2973         df_null_*_rec.
2974         (df_ref_compare): Take df_refs as parameter, transferring the
2975         old interface to...
2976         (df_ref_ptr_compare): ...this new function.
2977         (df_sort_and_compress_refs): Update accordingly.
2978         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
2979         old interface to...
2980         (df_mw_ptr_compare): ...this new function.
2981         (df_sort_and_compress_mws): Update accordingly.
2982         (df_install_refs, df_install_mws): Return a linked list rather than
2983         an array of pointers.
2984         (df_refs_add_to_chains): Assert that old lists are empty rather
2985         than freeing them.
2986         (df_insn_refs_verify): Don't handle null defs speciailly.
2987         * web.c (union_match_dups): Update for new df_ref linking.
2988
2989 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
2990
2991         * df.h (df_ref_create, df_ref_remove): Delete.
2992         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
2993         (df_ref_remove): Likewise.
2994
2995 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
2996
2997         * df.h (df_single_def, df_single_use): New functions.
2998         * ira.c (find_moveable_pseudos): Use them.
2999
3000 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
3001
3002         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
3003         * df-problems.c (df_note_bb_compute): Use it.
3004         * regstat.c (regstat_bb_compute_ri): Likewise.
3005
3006 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
3007
3008         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
3009         * cse.c (cse_extended_basic_block): Use them.
3010         * dce.c (mark_artificial_use): Likewise.
3011         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
3012         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
3013         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
3014         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
3015         (df_simulate_initialize_backwards): Likewise.
3016         (df_simulate_finalize_backwards): Likewise.
3017         (df_simulate_initialize_forwards): Likewise.
3018         (df_md_simulate_artificial_defs_at_top): Likewise.
3019         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
3020         * regrename.c (init_rename_info): Likewise.
3021         * regstat.c (regstat_bb_compute_ri): Likewise.
3022         (regstat_bb_compute_calls_crossed): Likewise.
3023
3024 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
3025
3026         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
3027         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
3028         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
3029         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
3030         * combine.c (create_log_links): Likewise.
3031         * compare-elim.c (find_flags_uses_in_insn): Likewise.
3032         (try_eliminate_compare): Likewise.
3033         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
3034         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
3035         (remove_reg_equal_equiv_notes_for_defs): Likewise.
3036         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
3037         (word_dce_process_block, dce_process_block): Likewise.
3038         * ddg.c (def_has_ccmode_p): Likewise.
3039         * df-core.c (df_bb_regno_first_def_find): Likewise.
3040         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
3041         * df-problems.c (df_rd_simulate_one_insn): Likewise.
3042         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
3043         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
3044         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
3045         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
3046         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
3047         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
3048         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
3049         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
3050         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
3051         * fwprop.c (local_ref_killed_between_p): Likewise.
3052         (all_uses_available_at, free_load_extend): Likewise.
3053         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
3054         * hw-doloop.c (scan_loop): Likewise.
3055         * ifcvt.c (dead_or_predicable): Likewise.
3056         * init-regs.c (initialize_uninitialized_regs): Likewise.
3057         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
3058         (process_bb_node_lives): Likewise.
3059         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
3060         (find_moveable_pseudos): Likewise.
3061         * loop-invariant.c (check_dependencies, record_uses): Likewise.
3062         * recog.c (peep2_find_free_register): Likewise.
3063         * ree.c (get_defs): Likewise.
3064         * regstat.c (regstat_bb_compute_ri): Likewise.
3065         (regstat_bb_compute_calls_crossed): Likewise.
3066         * sched-deps.c (find_inc, find_mem): Likewise.
3067         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
3068         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
3069         * shrink-wrap.c (requires_stack_frame_p): Likewise.
3070         (prepare_shrink_wrap): Likewise.
3071         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
3072         * web.c (union_defs, pass_web::execute): Likewise.
3073         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
3074         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
3075
3076 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
3077
3078         * lra-assign.c (assign_by_spills): Add code to assign vector regs
3079         to inheritance pseudos.
3080         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
3081
3082 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
3083
3084         PR target/61415
3085         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
3086         (BU_MISC_2): Rename to ...
3087         (BU_LDBL128_2): ... this.
3088         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
3089         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
3090         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
3091         RS6000_BTM_LDBL128.
3092         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
3093         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
3094         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
3095         (unpacktf_1): Likewise.
3096         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
3097         (__builtin_longdouble_dw1): Likewise.
3098         * doc/sourcebuild.texi (longdouble128): Document.
3099
3100 2014-06-13  Jeff Law  <law@redhat.com>
3101
3102         PR rtl-optimization/61094
3103         PR rtl-optimization/61446
3104         * ree.c (combine_reaching_defs): Get the mode for the copy from
3105         the extension insn rather than the defining insn.
3106
3107 2014-06-13  Dehao Chen  <dehao@google.com>
3108
3109         * dwarf2out.c (add_linkage_name): Emit more linkage name.
3110
3111 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
3112
3113         * doc/install.texi (--enable-linker-plugin-configure-flags)
3114         (--enable-linker-plugin-flags): Document new flags.
3115
3116 2014-06-13  Martin Jambor  <mjambor@suse.cz>
3117
3118         PR ipa/61186
3119         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
3120         cache_token if returning early.
3121
3122 2014-06-13  Nick Clifton  <nickc@redhat.com>
3123
3124         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
3125         requested alignment is active.
3126         (LABEL_ALIGN): Likewise.
3127         (LOOP_ALIGN): Likewise.
3128
3129 2014-06-13  Richard Biener  <rguenther@suse.de>
3130
3131         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3132         Rewrite to propagate the VN result into all uses where
3133         possible and to remove stmts becoming dead because of that.
3134         (eliminate): Generalize stmt removal handling, remove in
3135         reverse dominator order to support proper debug stmt
3136         generation.  Update stmts before removing stmts.
3137         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
3138
3139 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3140
3141         PR tree-optimization/61375
3142         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
3143         symbolic number cannot be represented in an uint64_t.
3144         (find_bswap_or_nop_1): Likewise.
3145
3146 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
3147
3148         * symtab.c (symtab_node::reset_section): New method.
3149         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
3150         for localization.
3151         * cgraph.h (reset_section): Declare.
3152         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
3153         do not consider comdat locals.
3154         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
3155         for new symbol.
3156         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
3157         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
3158         reset sections of symbols dragged out of the comdats.
3159         (function_and_variable_visibility): Reset sections of
3160         localized symbols.
3161
3162 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
3163
3164         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
3165         to use symtab and decl_binds_to_current_def_p
3166         * tree-vectorizer.c (increase_alignment): Increase alignment
3167         of alias target, too.
3168
3169 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
3170
3171         PR middle-end/61486
3172         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
3173         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
3174         if outer combined construct is distribute.
3175         (gimplify_omp_for): For OMP_DISTRIBUTE set
3176         gimplify_omp_ctxp->distribute.
3177         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
3178         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
3179         mapping into decl map.
3180
3181 2014-06-12  Jason Merrill  <jason@redhat.com>
3182
3183         * common.opt (fabi-version): Change default to 0.
3184
3185 2014-06-12  Jason Merrill  <jason@redhat.com>
3186
3187         * toplev.c (process_options): Reject -fabi-version=1.
3188
3189 2014-06-12  Jeff Law  <law@redhat.com>
3190
3191         PR tree-optimization/61009
3192         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
3193         value when we stop processing a block due to problematic PHIs.
3194
3195 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
3196
3197         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
3198         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
3199         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
3200         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
3201         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
3202         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
3203         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
3204         are not in the spec.
3205
3206 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
3207
3208         PR target/59843
3209         * config/aarch64/aarch64-modes.def: Add V1DFmode.
3210         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
3211         Support V1DFmode.
3212
3213 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3214
3215         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
3216
3217 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
3218
3219         PR target/61443
3220         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
3221         loading from address spaces.
3222
3223 2014-06-12  Martin Liska  <mliska@suse.cz>
3224
3225         PR ipa/61462
3226         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
3227         statement is reachable.
3228
3229 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
3230
3231         * symtab.c (section_hash): New hash.
3232         (symtab_unregister_node): Clear section before freeing.
3233         (hash_section_hash_entry): New haser.
3234         (eq_sections): New function.
3235         (symtab_node::set_section_for_node): New method.
3236         (set_section_1): Update.
3237         (symtab_node::set_section): Take string instead of tree as parameter.
3238         (symtab_resolve_alias): Update.
3239         * cgraph.h (section_hash_entry_d): New structure.
3240         (section_hash_entry): New typedef.
3241         (cgraph_node): Change comdat_group_ to x_comdat_group,
3242         change section_ to x_section and turn into section_hash_entry;
3243         update accestors; put set_section_for_node offline.
3244         * tree.c (decl_section_name): Turn into string.
3245         (set_decl_section_name): Change parameter to be string.
3246         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
3247         * sdbout.c (sdbout_one_type): Update.
3248         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
3249         * varasm.c (IN_NAMED_SECTION, get_named_section,
3250         resolve_unique_section, hot_function_section, get_named_text_section,
3251         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
3252         make_decl_rtl, default_unique_section): Update.
3253         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
3254         (c6x_elf_unique_section): Update.
3255         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
3256         * config/pa/pa.c (pa_function_section): Update.
3257         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
3258         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
3259         * config/arc/arc.c (arc_in_small_data_p): Update.
3260         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
3261         * config/mcore/mcore.c (mcore_unique_section): Update.
3262         * config/mips/mips.c (mips16_build_function_stub): Update.
3263         (mips16_build_call_stub): Update.
3264         (mips_function_rodata_section): Update.
3265         (mips_in_small_data_p): Update.
3266         * config/score/score.c (score_in_small_data_p): Update.
3267         * config/rx/rx.c (rx_in_small_data): Update.
3268         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
3269         (rs6000_xcoff_asm_named_section): Update.
3270         (rs6000_xcoff_unique_section): Update.
3271         * config/frv/frv.c (frv_string_begins_with): Update.
3272         (frv_in_small_data_p): Update.
3273         * config/v850/v850.c (v850_encode_data_area): Update.
3274         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
3275         (bfin_handle_l1_data_attribute): Update.
3276         (bfin_handle_l2_attribute): Update.
3277         * config/mep/mep.c (mep_unique_section): Update.
3278         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
3279         Update.
3280         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
3281         (h8300_handle_tiny_data_attribute): Update.
3282         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
3283         (m32r_in_small_data_p): Update.
3284         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
3285         * config/i386/i386.c (ix86_in_large_data_p): Update.
3286         * config/i386/winnt.c (i386_pe_unique_section): Update.
3287         * config/darwin.c (darwin_function_section): Update.
3288         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
3289         * tree-emutls.c (get_emutls_init_templ_addr): Update.
3290         (new_emutls_decl): Update.
3291         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
3292         input_varpool_node): Update.
3293         (ead_string_cst): Turn to ...
3294         (read_string): ... this one.
3295         * dwarf2out.c (secname_for_decl): Update.
3296         * asan.c (asan_protect_global): Update.
3297
3298 2014-06-11  DJ Delorie  <dj@redhat.com>
3299
3300         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
3301         cache lines.
3302         * config/rx/rx.c (rx_option_override): Likewise.
3303         (rx_align_for_label): Likewise.
3304
3305         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
3306
3307 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
3308
3309         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
3310         prototype.
3311
3312 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3313
3314         * common.md: New file.
3315         * doc/md.texi: Update description of generic, machine-independent
3316         constraints.
3317         * config/s390/constraints.md (e): Delete.
3318         * Makefile.in (md_file): Include common.md.
3319         * config/m32c/t-m32c (md_file): Likewise.
3320         * genpreds.c (general_mem): New array.
3321         (generic_constraint_letters): Remove constraints now defined by
3322         common.md.
3323         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
3324         Allow the first character to be '<' or '>' as well.
3325         * genoutput.c (general_mem): New array.
3326         (indep_constraints): Remove constraints now defined by common.md.
3327         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
3328         Remove special handling of 'm'.
3329         * ira-costs.c (record_reg_classes): Remove special handling of
3330         constraints now defined by common.md.
3331         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
3332         * ira-lives.c (single_reg_class): Likewise.
3333         (ira_implicitly_set_insn_hard_regs): Likewise.
3334         * lra-constraints.c (reg_class_from_constraints): Likewise.
3335         (process_alt_operands, process_address, curr_insn_transform): Likewise.
3336         * postreload.c (reload_cse_simplify_operands): Likewise.
3337         * reload.c (push_secondary_reload, scratch_reload_class)
3338         (find_reloads, alternative_allows_const_pool_ref): Likewise.
3339         * reload1.c (maybe_fix_stack_asms): Likewise.
3340         * targhooks.c (default_secondary_reload): Likewise.
3341         * stmt.c (parse_output_constraint): Likewise.
3342         * recog.c (preprocess_constraints): Likewise.
3343         (constrain_operands, peep2_find_free_register): Likewise.
3344         (asm_operand_ok): Likewise, but add a comment saying why 'o'
3345         must be handled specially.
3346
3347 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3348
3349         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
3350         * genpreds.c (have_const_dbl_constraints): Delete.
3351         (add_constraint): Don't set it.
3352         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
3353         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
3354         constraints using the lookup_constraint logic.
3355         * ira-lives.c (single_reg_class): Likewise.
3356         * ira.c (ira_setup_alts): Likewise.
3357         * lra-constraints.c (process_alt_operands): Likewise.
3358         * recog.c (asm_operand_ok, constrain_operands): Likewise.
3359         * reload.c (find_reloads): Likewise.
3360
3361 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3362
3363         * genpreds.c (const_int_start, const_int_end): New variables.
3364         (choose_enum_order): Output CONST_INT constraints before memory
3365         constraints.
3366         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
3367         Add CT_CONST_INT.
3368         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
3369         * ira.c (ira_setup_alts): Likewise.
3370         * lra-constraints.c (process_alt_operands): Likewise.
3371         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
3372         * reload.c (find_reloads): Likewise.
3373
3374 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3375
3376         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
3377         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
3378         * recog.c (preprocess_constraints): Update accordingly.
3379
3380 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3381
3382         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
3383         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
3384         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
3385         * genpreds.c (print_type_tree): New function.
3386         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
3387         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
3388         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
3389         Write out enum constraint_type and get_constraint_type.
3390         * lra-constraints.c (satisfies_memory_constraint_p): Take a
3391         constraint_num rather than a constraint string.
3392         (satisfies_address_constraint_p): Likewise.
3393         (reg_class_from_constraints): Avoid old constraint macros.
3394         (process_alt_operands, process_address_1): Likewise.
3395         (curr_insn_transform): Likewise.
3396         * ira-costs.c (record_reg_classes): Likewise.
3397         (record_operand_costs): Likewise.
3398         * ira-lives.c (single_reg_class): Likewise.
3399         (ira_implicitly_set_insn_hard_regs): Likewise.
3400         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
3401         * postreload.c (reload_cse_simplify_operands): Likewise.
3402         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
3403         (constrain_operands, peep2_find_free_register): Likewise.
3404         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
3405         (find_reloads, alternative_allows_const_pool_ref): Likewise.
3406         * reload1.c (maybe_fix_stack_asms): Likewise.
3407         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
3408         * targhooks.c (default_secondary_reload): Likewise.
3409         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
3410         to EXTRA_CONSTRAINT_STR.
3411         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
3412
3413 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3414
3415         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
3416         (write_constraint_satisfied_p_array): ...this new function.
3417         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
3418         an array.
3419         (write_insn_preds_c): Update accordingly.
3420
3421 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3422
3423         * genpreds.c (write_lookup_constraint): Rename to...
3424         (write_lookup_constraint_1): ...this.
3425         (write_lookup_constraint_array): New function.
3426         (write_tm_preds_h): Define lookup_constraint as an inline function
3427         that uses write_lookup_constraint_array where possible.
3428         (write_insn_preds_c): Update for the changes above.
3429
3430 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
3431
3432         * doc/md.texi (regclass_for_constraint): Rename to...
3433         (reg_class_for_constraint): ...this.
3434         * genpreds.c (num_constraints, enum_order, register_start)
3435         (register_end, satisfied_start, memory_start, memory_end)
3436         (address_start, address_end): New variables.
3437         (add_constraint): Count the number of constraints.
3438         (choose_enum_order): New function.
3439         (write_enum_constraint_num): Iterate over enum_order.
3440         (write_regclass_for_constraint): Rename to...
3441         (write_reg_class_for_constraint_1): ...this and update output
3442         accordingly.
3443         (write_constraint_satisfied_p): Rename to...
3444         (write_constraint_satisfied_p_1): ...this and update output
3445         accordingly.  Do nothing if all extra constraints are register
3446         constraints.
3447         (write_insn_extra_memory_constraint): Delete.
3448         (write_insn_extra_address_constraint): Delete.
3449         (write_range_function): New function.
3450         (write_tm_preds_h): Define constraint_satisfied_p and
3451         reg_class_for_constraint as inline functions that do a range check
3452         before calling the out-of-line function.  Use write_range_function
3453         to implement insn_extra_{register,memory,address}_constraint,
3454         the first of which is new.
3455         (write_insn_preds_c): Update after above changes to write_* functions.
3456         (main): Call choose_enum_order.
3457
3458 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3459
3460         PR tree-optimization/61306
3461         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
3462         expression instead of its size.
3463         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
3464         false to prevent optimization when the result is unpredictable due to
3465         arithmetic right shift of signed type with highest byte is set.
3466         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
3467         (init_symbolic_number): Likewise.
3468         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
3469         when the result is unpredictable due to sign extension.
3470
3471 2014-06-11  Terry Guo  <terry.guo@arm.com>
3472
3473         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
3474         (*thumb1_addsi3): Ditto.
3475         (*thumb_subdi3): Ditto.
3476         (thumb1_subsi3_insn): Ditto.
3477         (*thumb_mulsi3): Ditto.
3478         (*thumb_mulsi3_v6): Ditto.
3479         (*thumb1_andsi3_insn): Ditto.
3480         (thumb1_bicsi3): Ditto.
3481         (*thumb1_iorsi3_insn): Ditto.
3482         (*thumb1_xorsi3_insn): Ditto.
3483         (*thumb1_ashlsi3): Ditto.
3484         (*thumb1_ashrsi3): Ditto.
3485         (*thumb1_lshrsi3): Ditto.
3486         (*thumb1_rotrsi3): Ditto.
3487         (*thumb1_negdi2): Ditto.
3488         (*thumb1_negsi2): Ditto.
3489         (*thumb1_abssi2): Ditto.
3490         (*thumb1_neg_abssi2): Ditto.
3491         (*thumb1_one_cmplsi2): Ditto.
3492         (*thumb1_zero_extendhisi2): Ditto.
3493         (*thumb1_zero_extendqisi2): Ditto.
3494         (*thumb1_zero_extendqisi2_v6): Ditto.
3495         (thumb1_extendhisi2): Ditto.
3496         (thumb1_extendqisi2): Ditto.
3497         (*thumb1_movdi_insn): Ditto.
3498         (*thumb1_movsi_insn): Ditto.
3499         (*thumb1_movhi_insn): Ditto.
3500         (thumb_movhi_clobber): Ditto.
3501         (*thumb1_movqi_insn): Ditto.
3502         (*thumb1_movhf): Ditto.
3503         (*thumb1_movsf_insn): Ditto.
3504         (*thumb_movdf_insn): Ditto.
3505         (movmem12b): Ditto.
3506         (movmem8b): Ditto.
3507         (cbranchqi4): Ditto.
3508         (cbranchsi4_insn): Ditto.
3509         (cbranchsi4_scratch): Ditto.
3510         (*negated_cbranchsi4): Ditto.
3511         (*tbit_cbranch): Ditto.
3512         (*tlobits_cbranch): Ditto.
3513         (*tstsi3_cbranch): Ditto.
3514         (*cbranchne_decr1): Ditto.
3515         (*addsi3_cbranch): Ditto.
3516         (*addsi3_cbranch_scratch): Ditto.
3517         (*thumb_cmpdi_zero): Ditto.
3518         (cstoresi_eq0_thumb1): Ditto.
3519         (cstoresi_ne0_thumb1): Ditto.
3520         (*cstoresi_eq0_thumb1_insn): Ditto.
3521         (*cstoresi_ne0_thumb1_insn): Ditto.
3522         (cstoresi_nltu_thumb1): Ditto.
3523         (cstoresi_ltu_thumb1): Ditto.
3524         (thumb1_addsi3_addgeu): Ditto.
3525         (*thumb_jump): Ditto.
3526         (*call_reg_thumb1_v5): Ditto.
3527         (*call_reg_thumb1): Ditto.
3528         (*call_value_reg_thumb1_v5): Ditto.
3529         (*call_value_reg_thumb1): Ditto.
3530         (*call_insn): Ditto.
3531         (*call_value_insn): Ditto.
3532         (thumb1_casesi_internal_pic): Ditto.
3533         (thumb1_casesi_dispatch): Ditto.
3534         (*thumb1_indirect_jump): Ditto.
3535         (prologue_thumb1_interwork): Ditto.
3536         (*epilogue_insns): Ditto.
3537         (consttable_1): Ditto.
3538         (consttable_2): Ditto.
3539         (tablejump): Ditto.
3540         (*thumb1_tablejump): Ditto.
3541         (thumb_eh_return): Ditto.
3542         (define_peephole2): Two of them are thumb1 only and got moved into
3543         new file thumb1.md.
3544         (define_split): Six of them are thumb1 only and got moved into new
3545         file thumb1.md.
3546         * config/arm/thumb1.md: New file comprised of above thumb1 only
3547         patterns.
3548
3549 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3550
3551         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
3552         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
3553         dependencies.
3554         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
3555         (aarch64_crc_builtin_datum): New struct.
3556         (aarch64_crc_builtin_data): New.
3557         (aarch64_init_crc32_builtins): New function.
3558         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
3559         (aarch64_crc32_expand_builtin): New.
3560         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
3561         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
3562         __ARM_FEATURE_CRC32 when appropriate.
3563         (TARGET_CRC32): Define.
3564         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
3565         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
3566         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
3567         (aarch64_<crc_variant>): New pattern.
3568         * config/aarch64/arm_acle.h: New file.
3569         * config/aarch64/iterators.md (CRC): New int iterator.
3570         (crc_variant, crc_mode): New int attributes.
3571         * doc/aarch64-acle-intrinsics.texi: New file.
3572         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
3573         Include aarch64-acle-intrinsics.texi.
3574
3575 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
3576
3577         * tree-vect-data-refs.c (vect_grouped_store_supported): New
3578         check for stores group of length 3.
3579         (vect_permute_store_chain): New permutations for stores group of
3580         length 3.
3581         * tree-vect-stmts.c (vect_model_store_cost): Change cost
3582         of vec_perm_shuffle for the new permutations.
3583
3584 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
3585
3586         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
3587         table rewriting temporarily on targets not supporting ONE_ONLY.
3588
3589 2014-06-11  Richard Biener  <rguenther@suse.de>
3590
3591         PR middle-end/61437
3592         Revert
3593         2014-06-04  Richard Biener  <rguenther@suse.de>
3594
3595         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
3596         TREE_PUBLIC and DECL_EXTERNAL decls.
3597
3598 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
3599
3600         * varasm.c (set_implicit_section): New function.
3601         (resolve_unique_section): Use it to set implicit section
3602         for aliases, too.
3603         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
3604         (default_function_section): Likewise.
3605         (decl_binds_to_current_def_p): Constify argument.
3606         * varasm.h (decl_binds_to_current_def_p): Update prototype.
3607         * asan.c (asan_protect_global): Use
3608         symtab_get_node (decl)->implicit_section.
3609         * symtab.c (dump_symtab_base): Dump implicit sections.
3610         (verify_symtab_base): Verify sanity of sectoins and comdats.
3611         (symtab_resolve_alias): Alias share the section of its target.
3612         (set_section_1): New function.
3613         (symtab_node::set_section): Move here, recurse to aliases.
3614         (verify_symtab): Check for duplicated symtab lists.
3615         * tree-core.h (implicit_section_name_p): Remove.
3616         * tree-vect-data-refs.c: Include varasm.h.
3617         (vect_can_force_dr_alignment_p): Fix conditional on when
3618         decl bints to current definition; use
3619         symtab_get_node (decl)->implicit_section.
3620         * cgraph.c (cgraph_make_node_local_1): Fix section set.
3621         * cgraph.h (struct symtab_node): Add implicit_section.
3622         (set_section): Rename to ...
3623         (set_section_for_node): ... this one.
3624         (set_section): Declare.
3625         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
3626         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3627         input_overwrite_node, input_varpool_node): Stream implicit_section.
3628         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
3629         removal; it will fail in LTO.
3630
3631 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3632
3633         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
3634         Change second alternative type to f_mcr.
3635         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
3636         and 12th alternatives' types to f_mcr and f_mrc.
3637         (*movdi_aarch64): Same for 12th and 13th alternatives.
3638         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
3639         (aarch64_movtilow_tilow): Change type to fmov.
3640
3641 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
3642
3643         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
3644         (aarch64_save_or_restore_callee_save_registers): Fix layout.
3645
3646 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3647
3648         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
3649         New expander.
3650         (aarch64_sqrdmulh_lane<mode>): Likewise.
3651         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3652         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3653         (aarch64_sqdmulh_laneq<mode>): New expander.
3654         (aarch64_sqrdmulh_laneq<mode>): Likewise.
3655         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
3656         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
3657         (aarch64_sqdmulh_lane<mode>): New expander.
3658         (aarch64_sqrdmulh_lane<mode>): Likewise.
3659         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
3660         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
3661         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
3662         (aarch64_sqdmlal_laneq<mode>): Likewise.
3663         (aarch64_sqdmlsl_lane<mode>): Likewise.
3664         (aarch64_sqdmlsl_laneq<mode>): Likewise.
3665         (aarch64_sqdmlal2_lane<mode>): Likewise.
3666         (aarch64_sqdmlal2_laneq<mode>): Likewise.
3667         (aarch64_sqdmlsl2_lane<mode>): Likewise.
3668         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3669         (aarch64_sqdmull_lane<mode>): Likewise.
3670         (aarch64_sqdmull_laneq<mode>): Likewise.
3671         (aarch64_sqdmull2_lane<mode>): Likewise.
3672         (aarch64_sqdmull2_laneq<mode>): Likewise.
3673
3674 2014-06-10  Richard Biener  <rguenther@suse.de>
3675
3676         PR tree-optimization/61438
3677         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
3678         (eliminate_dom_walker::before_dom_children): Only try to inhibit
3679         insertion of IVs if running PRE.
3680         (eliminate): Adjust.
3681         (pass_pre::execute): Likewise.
3682         (pass_fre::execute): Likewise.
3683
3684 2014-06-10  Richard Biener  <rguenther@suse.de>
3685
3686         PR middle-end/61456
3687         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3688         Do not use the main variant for the type comparison.
3689         (ncr_compar): Likewise.
3690         (nonoverlapping_component_refs_p): Likewise.
3691
3692 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3693
3694         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
3695         REG_CFA_RESTORE mode.
3696
3697 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
3698
3699         * config/i386/i386.c (expand_vec_perm_pblendv): New.
3700         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
3701         expand_vec_perm_pblendv.
3702
3703 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3704
3705         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
3706         available.
3707         Simplify description of __crc32d and __crc32cd intrinsics.
3708         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
3709         availability.
3710
3711 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
3712
3713         PR lto/61334
3714         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
3715         * config.in: Regenerate.
3716         * configure: Likewise.
3717
3718 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
3719
3720         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
3721         and public vars.
3722         (intersect_static_var_sets): Remove.
3723         (propagate): Do not prune local statics.
3724
3725 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
3726
3727         PR fortran/60928
3728         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
3729         Set lastprivate_firstprivate even if omp_private_outer_ref
3730         langhook returns true.
3731         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
3732         langhook, call unshare_expr on new_var and call
3733         build_outer_var_ref to get the last argument.
3734
3735 2014-06-10  Marek Polacek  <polacek@redhat.com>
3736
3737         PR c/60988
3738         * doc/extend.texi: Add cindex for transparent_union.
3739
3740 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3741
3742         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
3743         init_symbolic_number ().
3744
3745 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
3746
3747         PR middle-end/61141
3748         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
3749         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
3750         (verify_rtl_sharing): Likewise.
3751
3752 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
3753
3754         PR c++/54442
3755         * tree.c (build_qualified_type): Use a canonical type for
3756         TYPE_CANONICAL.
3757
3758 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3759
3760         * config/arm/arm-modes.def: Remove XFmode.
3761
3762 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
3763
3764         PR target/61062
3765         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
3766         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
3767         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
3768         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
3769         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
3770         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
3771         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
3772         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
3773         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
3774
3775 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
3776
3777         * tree-core.h (tree_decl_with_vis): Remove section_name.
3778
3779 2014-06-09  Kito Cheng  <kito@0xlab.org>
3780
3781         * ira.c (ira): Don't call init_caller_save if LRA enabled
3782         since LRA use its own infrastructure to handle that.
3783
3784 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
3785
3786         * symtab.c (dump_symtab_base): Update dumping.
3787         (symtab_make_decl_local): Clear only DECL_COMDAT.
3788         * tree-vect-data-refs.c (Check that variable is static before
3789         tampering with sections.
3790         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
3791         (cgraph_create_virtual_clone): Likewise.
3792         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
3793         (decl_section_name, set_decl_section_name): New accessors.
3794         (find_decls_types_r): Do not walk section name
3795         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
3796         (decl_comdat_group, decl_comdat_group_id): Constify.
3797         (decl_section_name, set_decl_section_name): Update.
3798         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
3799         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
3800         (cgraph_make_node_local_1): Clear section and comdat group.
3801         * cgraph.h (set_comdat_group): Sanity check.
3802         (get_section, set_section): New.
3803         * ipa-comdats.c (ipa_comdats): Use get_section.
3804         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
3805         * lto-streamer-out.c: Do not follow section names.
3806         * c-family/c-common.c (handle_section_attribute): Update.
3807         * lto-cgraph.c (lto_output_node): Output section.
3808         (lto_output_varpool_node): Likewise.
3809         (read_comdat_group): Rename to ...
3810         (read_identifier): ... this one.
3811         (read_string_cst): New function.
3812         (input_node, input_varpool_node): Input section names.
3813         * tree-emutls.c (get_emutls_init_templ_addr): Update.
3814         (new_emutls_decl): Update.
3815         (secname_for_decl): Check section names only of static vars.
3816         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
3817         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
3818         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
3819         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
3820         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
3821         * config/mcore/mcore.c (mcore_unique_section): Likewise.
3822         * config/mips/mips.c (mips16_build_function_stub): Likewise.
3823         * config/v850/v850.c (v850_insert_attributes): Likewise.
3824         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
3825         Likewise.
3826         (h8300_handle_tiny_data_attribute): Likewise.
3827         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
3828         (bfin_handle_l2_attribute): Likewise.
3829
3830 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
3831
3832         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
3833         remove static initializer.
3834
3835 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
3836
3837         * varasm.c (use_blocks_for_decl_p): Check symbol table
3838         instead of alias attribute.
3839         (place_block_symbol): Recurse on aliases.
3840
3841 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
3842
3843         * ipa-visibility.c: Include varasm.h
3844         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
3845
3846 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
3847
3848         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
3849         outputting aliases.
3850
3851 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
3852
3853         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
3854         from test_insn into GGC space escape via SET_SRC.
3855
3856 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
3857
3858         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
3859         call statement, if any.
3860         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
3861         statements, if any.  Tidy up.
3862
3863 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3864
3865         PR target/61431
3866         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
3867         iterators, VSX_D that handles 64-bit types, and VSX_LE that
3868         handles swapping the two 64-bit double words on little endian
3869         systems.  Include V1TImode and optionally TImode in VSX_LE so that
3870         these types are properly swapped.  Change all of the insns and
3871         splits that do the 64-bit swaps to use VSX_LE.
3872         (vsx_le_perm_load_<mode>): Likewise.
3873         (vsx_le_perm_store_<mode>): Likewise.
3874         (splitters for little endian memory operations): Likewise.
3875         (vsx_xxpermdi2_le_<mode>): Likewise.
3876         (vsx_lxvd2x2_le_<mode>): Likewise.
3877         (vsx_stxvd2x2_le_<mode>): Likewise.
3878
3879 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
3880
3881         PR target/61423
3882         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
3883         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
3884         and corresponding splitters.  Zero extend general register
3885         or memory input operand to XMM temporary.  Enable for
3886         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
3887         (floatunssi<mode>2): Update expander predicate.
3888
3889 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
3890
3891         PR rtl-optimization/61325
3892         * lra-constraints.c (process_address_1): Check scale equal to one
3893         to prevent transformation: base + scale * index => base + new_reg.
3894
3895 2014-06-06  Richard Biener  <rguenther@suse.de>
3896
3897         PR tree-optimization/59299
3898         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
3899         a def operand.
3900         (nearest_common_dominator_of_uses): Likewise.
3901         (statement_sink_location): Adjust.  Support sinking loads.
3902
3903 2014-06-06  Martin Jambor  <mjambor@suse.cz>
3904
3905         * ipa-prop.c (get_place_in_agg_contents_list): New function.
3906         (build_agg_jump_func_from_list): Likewise.
3907         (determine_known_aggregate_parts): Renamed to
3908         determine_locally_known_aggregate_parts.  Moved some functionality
3909         to the two functions above, removed bound checks.
3910
3911 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
3912
3913         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
3914         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
3915         (aarch64_progress_pointer): Likewise.
3916         (aarch64_copy_one_part_and_move_pointers): Likewise.
3917         (aarch64_expand_movmen): Likewise.
3918         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
3919         * config/aarch64/aarch64.md (movmem<mode>): New.
3920
3921 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
3922
3923         * targhooks.c (default_add_stmt_cost): Call target specific
3924         hook instead of default one.
3925
3926 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3927
3928         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
3929         endianness instead of host endianness.
3930         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
3931         comments.
3932
3933 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3934
3935         PR debug/53927
3936         * function.c (instantiate_decls): Process the saved static chain.
3937         (expand_function_start): If not optimizing, save the static chain
3938         onto the stack.
3939         * tree-nested.c (convert_all_function_calls): Always create the static
3940         chain for nested functions if not optimizing.
3941
3942 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3943
3944         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
3945
3946 2014-06-06  Richard Biener  <rguenther@suse.de>
3947
3948         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
3949         (construct_init_block): Likewise.
3950         (construct_exit_block): Likewise.
3951         (pass_expand::execute): Likewise.
3952         * graphite.c (graphite_transforms): Replace check for current_loops
3953         with a check for > 1 loops.
3954         (pass_graphite_transforms::execute): Adjust.
3955         * ipa-split.c (split_function): Remove check for current_loops.
3956         * omp-low.c (expand_parallel_call): Likewise.
3957         (expand_omp_for_init_counts): Likewise.
3958         (extract_omp_for_update_vars): Likewise.
3959         (expand_omp_for_generic): Likewise.
3960         (expand_omp_sections): Likewise.
3961         (expand_omp_target): Likewise.
3962         * tracer.c (tail_duplicate): Likewise.
3963         (pass_tracer::execute): Likewise.
3964         * trans-mem.c (expand_transaction): Likewise.
3965         * tree-complex.c (expand_complex_div_wide): Likewise.
3966         * tree-eh.c (lower_resx): Likewise.
3967         (cleanup_empty_eh_merge_phis): Likewise.
3968         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
3969         current_loops with a check for > 1 loops.
3970         (pass_predcom::execute): Adjust.
3971         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
3972         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
3973         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
3974         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
3975         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
3976         * tree-switch-conversion.c (process_switch): Likewise.
3977         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
3978         * tree-vrp.c (vrp_visit_phi_node): Likewise.
3979         (execute_vrp): Likewise.
3980         * ubsan.c (ubsan_expand_null_ifn): Likewise.
3981
3982 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3983
3984         * rtl.h (insn_location): Declare.
3985         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
3986         with UNKNOWN_LOCATION.
3987         * emit-rtl.c (insn_location): New function.
3988         * final.c (notice_source_line): Check that the instruction has a
3989         location before retrieving it and use insn_location.
3990         * modulo-sched.c (loop_single_full_bb_p): Likewise.
3991         * print-rtl.c (print_rtx): Likewise.
3992
3993 2014-06-06  Richard Biener  <rguenther@suse.de>
3994
3995         * passes.def: Move 2nd VRP pass before phi-only-cprop.
3996
3997 2014-06-06  Christian Bruel  <christian.bruel@st.com>
3998
3999         PR tree-optimization/43934
4000         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
4001         cost.
4002
4003 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
4004
4005         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
4006         return NO_REGS for extra address and memory constraints.  Handle
4007         operands that match (or are equivalent to something that matches)
4008         extra constant constraints.  Ignore other non-register operands.
4009
4010 2014-06-06  Alan Modra  <amodra@gmail.com>
4011
4012         PR target/61300
4013         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
4014         * doc/tm.texi: Regenerate.
4015         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
4016         Use throughout in place of REG_PARM_STACK_SPACE.
4017         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
4018         "incoming" param.  Pass to rs6000_function_parms_need_stack.
4019         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
4020         prototype_p when incoming.  Use function decl when incoming
4021         to handle K&R style functions.
4022         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
4023         (INCOMING_REG_PARM_STACK_SPACE): Define.
4024
4025 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4026
4027         PR target/52472
4028         * cfgexpand.c (expand_debug_expr): Use address space of nested
4029         TREE_TYPE for ADDR_EXPR and MEM_REF.
4030
4031 2014-06-05  Jeff Law  <law@redhat.com>
4032
4033         PR tree-optimization/61289
4034         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
4035         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
4036         looking for those which match LHS.  All callers changed.
4037         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
4038         parameters and code which manipulated them.  All callers changed.
4039         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
4040         and DST_MAP parameters.  Simplify invalidation code by just calling
4041         invalidate_equivalences.  All callers changed.
4042         (thread_across_edge): Simplify now that we don't need to maintain
4043         the map of equivalences to invalidate.
4044
4045 2014-06-05  Kai Tietz  <ktietz@redhat.com>
4046             Richard Henderson  <rth@redhat.com>
4047
4048         PR target/46219
4049         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
4050         checking for !TARGET_X32.
4051         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
4052         (sibcall_intern): New define_insn, plus required peepholes.
4053         (sibcall_pop_intern): Likewise.
4054         (sibcall_value_intern): Likewise.
4055         (sibcall_value_pop_intern): Likewise.
4056
4057 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
4058
4059         * tree-inline.c (tree_function_versioning): Check DF info existence
4060         before accessing it.
4061
4062 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4063
4064         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
4065         frame_size.
4066         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
4067         aarch64_frame hard_fp_offset and frame_size.
4068         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
4069         frame_size; remove original_frame_size.
4070         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
4071         (aarch64_initial_elimination_offset): Remove frame_size and
4072         offset.  Use aarch64_frame frame_size.
4073
4074 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4075             Jiong Wang  <jiong.wang@arm.com>
4076             Renlin  <renlin.li@arm.com>
4077
4078         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
4079         initialization of R30 offset.  Update offset.  Iterate core
4080         regisers upto X30.  Remove X29, X30 specific code.
4081
4082 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4083             Jiong Wang  <jiong.wang@arm.com>
4084
4085         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
4086         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
4087         (aarch64_register_saved_on_entry): Adjust test.
4088
4089 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4090
4091         * config/aarch64/aarch64.h (machine_function): Move
4092         saved_varargs_size from here...
4093         (aarch64_frame): ... to here.
4094
4095         * config/aarch64/aarch64.c (aarch64_expand_prologue)
4096         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
4097         (aarch64_initial_elimination_offset)
4098         (aarch64_setup_incoming_varargs): Adjust location of
4099         saved_varargs_size.
4100
4101 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4102
4103         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
4104         layout comment.
4105
4106 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
4107             Prachi Godbole  <Prachi.Godbole@imgtec.com>
4108
4109         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
4110         mips32r5 entry to use PROCESSOR_P5600.
4111         * config/mips/mips-tables.opt: Regenerate.
4112         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
4113         * config/mips/mips.c (mips_fmadd_bypass): New function.
4114         (mips_rtx_cost_data): Add costs for p5600.
4115         (mips_issue_rate): Add support for p5600.
4116         (mips_multipass_dfa_lookahead): Likewise.
4117         * config/mips/mips.h (TUNE_P5600): New define.
4118         (TUNE_MACC_CHAINS): Add TUNE_P5600.
4119         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
4120         * config/mips/mips.md: Include p5600.md.
4121         (processor): Add p5600.
4122         * config/mips/p5600.md: New file.
4123
4124 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
4125
4126         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
4127         * config/i386/predicates.md (palignr_operand): New.
4128         Indicates if permutation is suitable for palignr instruction.
4129
4130 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
4131
4132         PR tree-optimization/61319
4133         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
4134         stmt belongs to loop.
4135
4136 2014-06-05  Richard Biener  <rguenther@suse.de>
4137
4138         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
4139         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
4140         (lookup_tmp_var): Adjust.
4141         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
4142
4143 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4144
4145         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
4146
4147 2014-06-05  Marek Polacek  <polacek@redhat.com>
4148
4149         PR c/49706
4150         * doc/invoke.texi: Document -Wlogical-not-parentheses.
4151
4152 2014-06-04  Tom de Vries  <tom@codesourcery.com>
4153
4154         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
4155         CONST_INT.
4156
4157 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
4158
4159         PR tree-optimization/61385
4160         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
4161
4162 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
4163
4164         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
4165         changed to use fatal_error.
4166         (main): Ensure lto_wrapper_cleanup is run atexit.
4167
4168 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4169
4170         * lra-constraints.c (valid_address_p): Move earlier in file.
4171         (address_eliminator): New structure.
4172         (satisfies_memory_constraint_p): New function.
4173         (satisfies_address_constraint_p): Likewise.
4174         (process_alt_operands, process_address, curr_insn_transform): Use them.
4175
4176 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4177
4178         * lra-int.h (lra_static_insn_data): Make operand_alternative a
4179         const pointer.
4180         (target_lra_int, default_target_lra_int, this_target_lra_int)
4181         (op_alt_data): Delete.
4182         * lra.h (lra_init): Delete.
4183         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
4184         (init_insn_code_data_once): Remove op_alt_data handling.
4185         (finish_insn_code_data_once): Likewise.
4186         (init_op_alt_data): Delete.
4187         (get_static_insn_data): Initialize operand_alternative to null.
4188         (free_insn_recog_data): Cast operand_alternative before freeing it.
4189         (setup_operand_alternative): Take the operand_alternative as
4190         parameter and assume it isn't already cached in the static
4191         insn data.
4192         (lra_set_insn_recog_data): Update accordingly.
4193         (lra_init): Delete.
4194         * ira.c (ira_init): Don't call lra_init.
4195         * target-globals.h (this_target_lra_int): Declare.
4196         (target_globals): Remove lra_int.
4197         (restore_target_globals): Update accordingly.
4198         * target-globals.c: Don't include lra-int.h.
4199         (default_target_globals, save_target_globals): Remove lra_int.
4200
4201 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4202
4203         * recog.h (operand_alternative): Convert reg_class, reject,
4204         matched and matches into bitfields.
4205         (preprocess_constraints): New overload.
4206         (preprocess_insn_constraints): New function.
4207         (preprocess_constraints): Take the insn as parameter.
4208         (recog_op_alt): Change into a pointer.
4209         (target_recog): Add x_op_alt.
4210         * recog.c (asm_op_alt): New variable.
4211         (recog_op_alt): Change into a pointer.
4212         (preprocess_constraints): New overload, replacing the old function
4213         definition with one that doesn't use global state.
4214         (preprocess_insn_constraints): New function.
4215         (preprocess_constraints): Use them.  Take the insn as parameter.
4216         Use asm_op_alt for asms.
4217         (recog_init): Free existing x_op_alt entries.
4218         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
4219         pointer const.
4220         (make_early_clobber_and_input_conflicts): Likewise.
4221         (process_bb_node_lives): Pass the insn to process_constraints.
4222         * reg-stack.c (check_asm_stack_operands): Likewise.
4223         (subst_asm_stack_regs): Likewise.
4224         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
4225         * regrename.c (build_def_use): Likewise.
4226         * sched-deps.c (sched_analyze_insn): Likewise.
4227         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
4228         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
4229         (note_invalid_constants): Likewise.
4230         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4231         (ix86_legitimate_combined_insn): Make operand_alternative pointer
4232         const.
4233
4234 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4235
4236         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
4237         * ira-lives.c (check_and_make_def_conflict): Check for disabled
4238         alternatives.
4239         (make_early_clobber_and_input_conflicts): Likewise.
4240         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4241
4242 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4243
4244         * recog.h (alternative_class): New function.
4245         (which_op_alt): Return a const recog_op_alt.
4246         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
4247         (subst_asm_stack_regs): Likewise.
4248         * config/arm/arm.c (note_invalid_constants): Likewise.
4249         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
4250         the operand_alternative; use alternative class instead.
4251         * sel-sched.c (get_reg_class): Likewise.
4252         * regrename.c (build_def_use): Likewise.
4253         (hide_operands, restore_operands, record_out_operands): Update type
4254         accordingly.
4255
4256 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
4257
4258         * recog.h (recog_op_alt): Convert to a flat array.
4259         (which_op_alt): New function.
4260         * recog.c (recog_op_alt): Convert to a flat array.
4261         (preprocess_constraints): Update accordingly, grouping all
4262         operands of the same alternative together, rather than the
4263         other way around.
4264         * ira-lives.c (check_and_make_def_conflict): Likewise.
4265         (make_early_clobber_and_input_conflicts): Likewise.
4266         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
4267         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
4268         (subst_asm_stack_regs): Likewise.
4269         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
4270         * regrename.c (hide_operands, record_out_operands): Likewise.
4271         (build_def_use): Likewise.
4272         * sel-sched.c (get_reg_class): Likewise.
4273         * config/arm/arm.c (note_invalid_constants): Likewise.
4274
4275 2014-06-04  Jason Merrill  <jason@redhat.com>
4276
4277         PR c++/51253
4278         PR c++/61382
4279         * gimplify.c (gimplify_arg): Non-static.
4280         * gimplify.h: Declare it.
4281
4282 2014-06-04  Richard Biener  <rguenther@suse.de>
4283
4284         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
4285         TREE_PUBLIC and DECL_EXTERNAL decls.
4286
4287 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
4288
4289         * regcprop.c (copyprop_hardreg_forward_1): Account for
4290         HARD_REGNO_CALL_PART_CLOBBERED.
4291
4292 2014-06-04  Richard Biener  <rguenther@suse.de>
4293
4294         * configure.ac: Check whether the underlying type of int64_t
4295         is long or long long.
4296         * configure: Regenerate.
4297         * config.in: Likewise.
4298         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
4299         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
4300
4301 2014-06-04  Richard Biener  <rguenther@suse.de>
4302
4303         PR tree-optimization/60098
4304         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
4305         we hit a kill.
4306         (dse_optimize_stmt): Simplify, now that we found a kill
4307         earlier.
4308
4309 2014-06-04  Richard Biener  <rguenther@suse.de>
4310
4311         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
4312         of accesses with non-invariant address.
4313
4314 2014-06-04  Martin Liska  <mliska@suse.cz>
4315
4316         * cgraph.h (cgraph_make_wrapper): New function introduced.
4317         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
4318         * ipa-inline.h (inline_analyze_function): The function is global.
4319         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
4320
4321 2014-06-04  Martin Liska  <mliska@suse.cz>
4322
4323         * tree.h (private_lookup_attribute_starting): New function.
4324         (lookup_attribute_starting): Likewise.
4325         * tree.c (private_lookup_attribute_starting): Likewise.
4326
4327 2014-06-04  Martin Liska  <mliska@suse.cz>
4328
4329         * cgraph.h (expand_thunk): New argument added.
4330         (address_taken_from_non_vtable_p): New global function.
4331         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
4332         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
4333         * cgraphunit.c (analyze_function): Likewise.
4334         (assemble_thunks_and_aliases): Argument added to call.
4335         (expand_thunk): New argument forces to produce GIMPLE thunk.
4336
4337 2014-06-04  Martin Liska  <mliska@suse.cz>
4338
4339         * coverage.h (coverage_compute_cfg_checksum): Argument added.
4340         * coverage.c (coverage_compute_cfg_checksum): Likewise.
4341         * profile.c (branch_prob): Likewise.
4342
4343 2014-06-04  Martin Jambor  <mjambor@suse.cz>
4344
4345         PR ipa/61340
4346         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
4347         handler for switch on an ipa_ref_use enum.
4348         * ipa-reference.c (analyze_function): Likewise.
4349
4350 2014-06-04  Kai Tietz  <ktietz@redhat.com>
4351
4352         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
4353         from old call-instruction.
4354
4355 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
4356
4357         * config/aarch64/aarch64.c (aarch64_classify_address)
4358         (aarch64_legitimize_reload_address): Support full addressing modes
4359         for vector modes.
4360         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
4361         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
4362
4363 2014-06-03  Andrew Pinski  <apinski@cavium.com>
4364
4365         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
4366         for OP0.
4367
4368 2014-06-03  Andrew Pinski  <apinski@cavium.com>
4369
4370         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
4371         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
4372
4373 2014-06-03  Kai Tietz  <ktietz@redhat.com>
4374
4375         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
4376         for 64-bit ms-abi.
4377
4378 2014-06-03  Dehao Chen  <dehao@google.com>
4379
4380         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
4381         the same loop.
4382
4383 2014-06-03  Marek Polacek  <polacek@redhat.com>
4384
4385         PR c/60439
4386         * doc/invoke.texi: Document -Wswitch-bool.
4387         * function.c (stack_protect_epilogue): Cast controlling expression of
4388         the switch to int.
4389         * gengtype.c (walk_type): Generate switch expression with its
4390         controlling expression cast to int.
4391
4392 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
4393
4394         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
4395         and attiny841.
4396         * config/avr/avr-tables.opt: Regenerate.
4397         * config/avr/t-multilib: Regenerate.
4398         * doc/avr-mmcu.texi: Regenerate.
4399
4400 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
4401             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
4402
4403         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
4404         (ata6617c, ata664251): Add new avr35 devices.
4405         (ata6612c): Add new avr4 device.
4406         (ata6613c, ata6614q): Add new avr5 devices.
4407         * config/avr/avr-tables.opt: Regenerate.
4408         * config/avr/t-multilib: Regenerate.
4409         * doc/avr-mmcu.texi: Regenerate.
4410
4411 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
4412
4413         * gcc/config/aarch64/aarch64-builtins.c
4414         (aarch64_types_binop_ssu_qualifiers): New static data.
4415         (TYPES_BINOP_SSU): Define.
4416         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
4417         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
4418         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
4419         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
4420         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
4421         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
4422         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
4423         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
4424         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
4425         suffix to builtin function name, remove cast.
4426         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
4427         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
4428         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
4429
4430 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
4431
4432         * gcc/config/aarch64/aarch64-builtins.c
4433         (aarch64_types_binop_uus_qualifiers,
4434         aarch64_types_shift_to_unsigned_qualifiers,
4435         aarch64_types_unsigned_shiftacc_qualifiers): Define.
4436         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
4437         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
4438         sqshlu_n, uqshl_n): Update qualifiers.
4439         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
4440         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
4441         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
4442         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
4443         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
4444         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
4445         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
4446         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
4447         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
4448         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
4449         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
4450         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
4451         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
4452         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
4453         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
4454         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
4455         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
4456         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
4457         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
4458         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
4459         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
4460         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
4461         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
4462         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
4463         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
4464         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
4465         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
4466
4467 2014-06-03  Teresa Johnson  <tejohnson@google.com>
4468
4469         * tree-sra.c (modify_function): Record caller nodes after rebuild.
4470
4471 2014-06-02  Jason Merrill  <jason@redhat.com>
4472
4473         PR c++/61020
4474         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
4475
4476 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
4477
4478         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
4479         location == 0.
4480
4481 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
4482
4483         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
4484         New pattern.
4485         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
4486         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
4487         * config/aarch64/iterators.md (REVERSE): New iterator.
4488         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
4489         (rev_op): New int_attribute.
4490         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
4491         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
4492         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
4493         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
4494         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
4495         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
4496         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
4497         Replace temporary __asm__ with __builtin_shuffle.
4498
4499 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
4500
4501         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
4502         mips64r5.
4503         * config/mips/mips-tables.opt: Regenerate.
4504         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
4505         to use mips_isa_rev rather than ISA_MIPS32R2.
4506         * config/mips/mips.h (ISA_MIPS32R3): New define.
4507         (ISA_MIPS32R5): New define.
4508         (ISA_MIPS64R3): New define.
4509         (ISA_MIPS64R5): New define.
4510         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
4511         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
4512         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
4513         and mips64r5.
4514         (MIPS_ISA_SYNCI_SPEC): Likewise.
4515         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
4516         (LINK_SPEC): Added mips32r3 and mips32r5.
4517         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
4518         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
4519         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
4520         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
4521         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
4522         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
4523         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
4524
4525 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
4526
4527         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
4528         options.
4529         * config/mips/mips.opt (mxpa): New option.
4530         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
4531         assembler.
4532
4533 2014-06-03  Martin Jambor  <mjambor@suse.cz>
4534
4535         PR ipa/61160
4536         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
4537         thunks.
4538
4539 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4540
4541         PR tree-optimization/61328
4542         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
4543         initialization from find_bswap_or_nop_1.
4544         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
4545         in source_expr2 before using the size value the function sets. Also
4546         make use of init_symbolic_number () in both the old place and
4547         find_bswap_or_nop_load () to avoid reading uninitialized memory when
4548         doing recursion in the GIMPLE_BINARY_RHS case.
4549
4550 2014-06-03  Richard Biener  <rguenther@suse.de>
4551
4552         PR tree-optimization/61383
4553         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
4554         stmts can't trap.
4555
4556 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
4557
4558         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
4559         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
4560         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
4561         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
4562         in this file.
4563         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
4564         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
4565         * system.h: ...here and make it unconditional.
4566         * target.def (conditional_register_usage): Mention
4567         define_register_constraint instead of old-style constraint macros.
4568         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
4569         * doc/tm.texi: Regenerate.
4570         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
4571         protected by !USE_MD_CONSTRAINTS.
4572         * config/frv/frv.md: Remove quote from old version of documentation.
4573         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
4574         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
4575         CONST_DOUBLE_OK_FOR_LETTER.
4576         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
4577
4578 2014-06-02  Andrew Pinski  <apinski@cavium.com>
4579
4580         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
4581         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
4582         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
4583         file whose name depends on -mabi= and -mbig-endian.
4584         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
4585         Handle LP64 better and handle ilp32 too.
4586         (MULTILIB_OPTIONS): Delete.
4587         (MULTILIB_DIRNAMES): Delete.
4588
4589 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
4590
4591         * expr.h: Remove prototypes of functions defined in builtins.c.
4592         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
4593         Remove prototypes of functions defined in builtins.c.
4594         * builtins.h: Update prototype list to include all exported functions.
4595         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
4596         no_c99_libc_has_function): Move to targhooks.c
4597         (build_string_literal, build_call_expr_loc_array,
4598         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
4599         to tree.c.
4600         (expand_builtin_object_size, fold_builtin_object_size): Make static.
4601         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
4602         no_c99_libc_has_function): Relocate from builtins.c.
4603         * tree.c: Include builtins.h.
4604         (build_call_expr_loc_array, build_call_expr_loc_vec,
4605         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
4606         from builtins.c.
4607         * fold-const.h (fold_fma): Move prototype to builtins.h.
4608         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
4609         * asan.c: Include builtins.h.
4610         * cfgexpand.c: Likewise.
4611         * convert.c: Likewise.
4612         * emit-rtl.c: Likewise.
4613         * except.c: Likewise.
4614         * expr.c: Likewise.
4615         * fold-const.c: Likewise.
4616         * gimple-fold.c: Likewise.
4617         * gimple-ssa-strength-reduction.c: Likewise.
4618         * gimplify.c: Likewise.
4619         * ipa-inline.c: Likewise.
4620         * ipa-prop.c: Likewise.
4621         * lto-streamer-out.c: Likewise.
4622         * stmt.c: Likewise.
4623         * tree-inline.c: Likewise.
4624         * tree-object-size.c: Likewise.
4625         * tree-sra.c: Likewise.
4626         * tree-ssa-ccp.c: Likewise.
4627         * tree-ssa-forwprop.c: Likewise.
4628         * tree-ssa-loop-ivcanon.c: Likewise.
4629         * tree-ssa-loop-ivopts.c: Likewise.
4630         * tree-ssa-math-opts.c: Likewise.
4631         * tree-ssa-reassoc.c: Likewise.
4632         * tree-ssa-threadedge.c: Likewise.
4633         * tree-streamer-in.c: Likewise.
4634         * tree-vect-data-refs.c: Likewise.
4635         * tree-vect-patterns.c: Likewise.
4636         * tree-vect-stmts.c: Likewise.
4637         * config/aarch64/aarch64.c: Likewise.
4638         * config/alpha/alpha.c: Likewise.
4639         * config/arc/arc.c: Likewise.
4640         * config/arm/arm.c: Likewise.
4641         * config/avr/avr.c: Likewise.
4642         * config/bfin/bfin.c: Likewise.
4643         * config/c6x/c6x.c: Likewise.
4644         * config/cr16/cr16.c: Likewise.
4645         * config/cris/cris.c: Likewise.
4646         * config/epiphany/epiphany.c: Likewise.
4647         * config/fr30/fr30.c: Likewise.
4648         * config/frv/frv.c: Likewise.
4649         * config/h8300/h8300.c: Likewise.
4650         * config/i386/i386.c: Likewise.
4651         * config/i386/winnt.c: Likewise.
4652         * config/ia64/ia64.c: Likewise.
4653         * config/iq2000/iq2000.c: Likewise.
4654         * config/lm32/lm32.c: Likewise.
4655         * config/m32c/m32c.c: Likewise.
4656         * config/m32r/m32r.c: Likewise.
4657         * config/m68k/m68k.c: Likewise.
4658         * config/mcore/mcore.c: Likewise.
4659         * config/mep/mep.c: Likewise.
4660         * config/microblaze/microblaze.c: Likewise.
4661         * config/mips/mips.c: Likewise.
4662         * config/mmix/mmix.c: Likewise.
4663         * config/mn10300/mn10300.c: Likewise.
4664         * config/moxie/moxie.c: Likewise.
4665         * config/msp430/msp430.c: Likewise.
4666         * config/nds32/nds32.c: Likewise.
4667         * config/pa/pa.c: Likewise.
4668         * config/pdp11/pdp11.c: Likewise.
4669         * config/picochip/picochip.c: Likewise.
4670         * config/rl78/rl78.c: Likewise.
4671         * config/rs6000/rs6000.c: Likewise.
4672         * config/rx/rx.c: Likewise.
4673         * config/s390/s390.c: Likewise.
4674         * config/score/score.c: Likewise.
4675         * config/sh/sh.c: Likewise.
4676         * config/sparc/sparc.c: Likewise.
4677         * config/spu/spu.c: Likewise.
4678         * config/stormy16/stormy16.c: Likewise.
4679         * config/tilegx/tilegx.c: Likewise.
4680         * config/tilepro/tilepro.c: Likewise.
4681         * config/v850/v850.c: Likewise.
4682         * config/vax/vax.c: Likewise.
4683         * config/xtensa/xtensa.c: Likewise.
4684
4685 2014-06-02  Jeff Law  <law@redhat.com>
4686
4687         PR rtl-optimization/61094
4688         * ree.c (combine_reaching_defs): Do not reextend an insn if it
4689         was marked as do_no_reextend.  If a copy is needed to eliminate
4690         an extension, then mark it as do_not_reextend.
4691
4692 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4693
4694         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
4695
4696 2014-06-02  Richard Henderson  <rth@redhat.com>
4697
4698         PR target/61336
4699         * config/alpha/alpha.c (print_operand_address): Allow symbolic
4700         addresses inside asms.  Use output_operand_lossage instead of
4701         gcc_unreachable.
4702
4703 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
4704
4705         PR target/61239
4706         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
4707         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
4708
4709 2014-06-02  Tom de Vries  <tom@codesourcery.com>
4710
4711         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
4712         case that x has VOIDmode.
4713
4714 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
4715
4716         * varasm.c (copy_constant): Delete function.
4717         (build_constant_desc): Don't call it.
4718
4719 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4720
4721         PR target/61154
4722         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
4723         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
4724         with immediate_operand.
4725
4726 2014-06-02  Andreas Schwab  <schwab@suse.de>
4727
4728         * config/ia64/ia64.c
4729         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
4730         pending_data_specs first.
4731
4732 2014-06-02  Richard Biener  <rguenther@suse.de>
4733
4734         PR tree-optimization/61378
4735         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
4736         valueized_anything.
4737
4738 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
4739
4740         * config/i386/constraints.md (Bw): Rename from 'w'.
4741         (Bz): Rename from 'z'.
4742         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
4743
4744 2014-06-01  Kai Tietz  <ktietz@redhat.com>
4745
4746         PR target/61377
4747         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
4748         * config/i386/i386.md (sibcall_insn_operand): Use Bs
4749         instead of m constraint.
4750
4751 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
4752
4753         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
4754         a separate alternative where the scratch operand 2 is marked as
4755         early clobber.
4756
4757 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
4758
4759         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
4760         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
4761         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
4762         and __builtins_arm_get_fpscr.
4763         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
4764         __builtins_arm_get_fpscr.
4765         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
4766         __builtins_arm_ldfpscr.
4767         (arm_atomic_assign_expand_fenv): New function.
4768         * config/arm/vfp.md (set_fpscr): New pattern.
4769         (get_fpscr) : Likewise.
4770         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
4771         VUNSPEC_SET_FPSCR.
4772         * doc/extend.texi (AARCH64 Built-in Functions) : Document
4773         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
4774
4775 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
4776
4777         * asan.c (report_error_func): Add SLOW_P argument, use
4778         BUILT_IN_ASAN_*_N if set.
4779         (build_check_stmt): Likewise.
4780         (instrument_derefs): If T has insufficient alignment,
4781         force same handling as for odd sizes.
4782
4783         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
4784         BUILT_IN_ASAN_REPORT_STORE_N): New.
4785         * asan.c (struct asan_mem_ref): Change access_size type to
4786         HOST_WIDE_INT.
4787         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
4788         update_mem_ref_hash_table): Likewise.
4789         (asan_mem_ref_hasher::hash): Hash in a HWI.
4790         (report_error_func): Change size_in_bytes argument to HWI.
4791         Use *_N builtins if size_in_bytes is larger than 16 or not power of
4792         two.
4793         (build_shadow_mem_access): New function.
4794         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
4795         Handle size_in_bytes not power of two or larger than 16.
4796         (instrument_derefs): Don't give up if size_in_bytes is not
4797         power of two or is larger than 16.
4798
4799 2014-05-30  Kai Tietz  <ktietz@redhat.com>
4800
4801         PR target/60104
4802         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
4803         for sibling-tail-calls.
4804         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
4805         to its use.
4806         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
4807         (sibcall_insn_operand): Add check for sibcall_memory_operand.
4808
4809 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
4810
4811         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
4812         * config/avr/avr-tables.opt: Regenerate.
4813         * config/avr/t-multilib: Regenerate.
4814         * doc/avr-mmcu.texi: Regenerate.
4815
4816 2014-05-30  Ian Lance Taylor  <iant@google.com>
4817
4818         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
4819         target("sse").
4820
4821 2014-05-30  Tom de Vries  <tom@codesourcery.com>
4822
4823         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
4824         Redefine as true.
4825
4826 2014-05-30  Tom de Vries  <tom@codesourcery.com>
4827
4828         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
4829         * lra.c (initialize_lra_reg_info_element): Add init of
4830         actual_call_used_reg_set field.
4831         (lra): Call lra_create_live_ranges before lra_inheritance for
4832         -fuse-caller-save.
4833         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
4834         -fuse-caller-save.
4835         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
4836         instead of call_used_reg_set for -fuse-caller-save.
4837         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
4838
4839 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4840
4841         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
4842         to mov_imm.
4843         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
4844
4845 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
4846
4847         * ira.c (ira_get_dup_out_num): Check for output operands at
4848         the start of the loop.  Handle cases where an included alternative
4849         follows an excluded one.
4850
4851 2014-05-29  Mike Stump  <mikestump@comcast.net>
4852
4853         PR debug/61352
4854         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
4855         post ld passes when lto is used.
4856
4857 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
4858
4859         PR rtl-optimization/61325
4860         * lra-constraints.c (process_address): Rename to process_address_1.
4861         (process_address): New function.
4862
4863 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
4864
4865         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
4866         TYPES_BINOPV): New static data.
4867         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
4868         New builtin.
4869         * config/aarch64/aarch64-simd.md (aarch64_ext,
4870         aarch64_im_lane_boundsi): New patterns.
4871         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
4872         patterns for EXT.
4873         (aarch64_evpc_ext): New function.
4874
4875         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
4876
4877         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
4878         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
4879         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
4880         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
4881         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
4882
4883 2014-05-29  Tom de Vries  <tom@codesourcery.com>
4884
4885         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
4886
4887 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
4888             Richard Sandiford  <rdsandiford@googlemail.com>
4889
4890         * arm/iterators.md (shiftable_ops): New code iterator.
4891         (t2_binop0, arith_shift_insn): New code attributes.
4892         * arm/predicates.md (shift_nomul_operator): New predicate.
4893         * arm/arm.md (insn_enabled): Delete.
4894         (enabled): Remove insn_enabled test.
4895         (*arith_shiftsi): Delete.  Replace with ...
4896         (*<arith_shift_insn>_multsi): ... new pattern.
4897         (*<arith_shift_insn>_shiftsi): ... new pattern.
4898         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
4899
4900 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
4901             Tom de Vries  <tom@codesourcery.com>
4902
4903         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
4904         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
4905         clobber.
4906         (mips_split_call): Use POST_CALL_TMP_REG.
4907         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
4908
4909 2014-05-29  Tom de Vries  <tom@codesourcery.com>
4910
4911         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
4912         with #ifdef STACK_REGS.
4913
4914 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
4915
4916         * varasm.c (get_variable_section): Walk aliases.
4917         (place_block_symbol): Walk aliases.
4918
4919 2014-05-28  Tom de Vries  <tom@codesourcery.com>
4920
4921         Revert:
4922         2014-05-28  Tom de Vries  <tom@codesourcery.com>
4923
4924         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
4925         * lra.c (initialize_lra_reg_info_element): Add init of
4926         actual_call_used_reg_set field.
4927         (lra): Call lra_create_live_ranges before lra_inheritance for
4928         -fuse-caller-save.
4929         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
4930         -fuse-caller-save.
4931         * lra-constraints.c (need_for_call_save_p): Use
4932         actual_call_used_reg_set instead of call_used_reg_set for
4933         -fuse-caller-save.
4934         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
4935
4936 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
4937
4938         * doc/md.texi: Document that the % constraint character must
4939         be at the beginning of the string.
4940         * genoutput.c (validate_insn_alternatives): Check that '=',
4941         '+' and '%' only appear at the beginning of a constraint.
4942         * ira.c (commutative_constraint_p): Delete.
4943         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
4944         at the start of the string.
4945         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
4946         duplicate '='s.
4947         * config/arm/neon.md (bicdi3_neon): Likewise.
4948         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
4949         (slt_si, sltu_si): Likewise.
4950         * config/vax/vax.md (sbcdi3): Likewise.
4951         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
4952         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
4953         (mul64): Move '%' to beginning of constraint.
4954         * config/arm/arm.md (*xordi3_insn): Likewise.
4955         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
4956         (xorsi3): Likewise.
4957
4958 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
4959
4960         * doc/md.texi: Document the restrictions on the "enabled" attribute.
4961
4962 2014-05-28  Jason Merrill  <jason@redhat.com>
4963
4964         PR c++/47202
4965         * cgraph.h (symtab_node::get_comdat_group_id): New.
4966         * cgraphunit.c (analyze_functions): Call it.
4967         * symtab.c (dump_symtab_node): Likewise.
4968         * tree.c (decl_comdat_group_id): New.
4969         * tree.h: Declare it.
4970         * lto-streamer-out.c (write_symbol): Use it.
4971         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
4972
4973 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4974
4975         PR bootstrap/PR61146
4976         * wide-int.cc: Do not include longlong.h when compiling with clang.
4977
4978 2014-05-28  Richard Biener  <rguenther@suse.de>
4979
4980         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
4981         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
4982         (vrp_visit_assignment_or_call): Print less vertical space.
4983         (vrp_visit_stmt): Likewise.
4984         (vrp_visit_phi_node): Likewise.  For a PHI argument with
4985         VR_VARYING range consider recording it as copy.
4986
4987 2014-05-28  Richard Biener  <rguenther@suse.de>
4988
4989         Revert
4990         2014-05-28  Richard Biener  <rguenther@suse.de>
4991
4992         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
4993
4994 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4995
4996         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
4997         sufficiently aligned and an offset is used at the same time.
4998         (expand_expr_real_1): Likewise.
4999
5000 2014-05-28  Richard Biener  <rguenther@suse.de>
5001
5002         PR middle-end/61045
5003         * fold-const.c (fold_comparison): When folding
5004         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
5005         the sign of the remaining constant operand stays the same.
5006
5007 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
5008
5009         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
5010         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
5011         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
5012         to the assembler.
5013         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
5014         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
5015         (m32bit-doubles) Likewise.
5016         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
5017         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
5018         option for RL78.
5019
5020 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5021
5022         * configure.ac ($gcc_cv_ld_clearcap): New test.
5023         * configure: Regenerate.
5024         * config.in: Regenerate.
5025         * config/sol2.opt (mclear-hwcap): New option.
5026         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
5027         * config/sol2-clearcap.map: Moved here from
5028         testsuite/gcc.target/i386/clearcap.map.
5029         * config/sol2-clearcapv2.map: Move here from
5030         gcc.target/i386/clearcapv2.map.
5031         * config/t-sol2 (install): Depend on install-clearcap-map.
5032         (install-clearcap-map): New target.
5033         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
5034         -mclear-hwcap.
5035
5036 2014-05-28  Richard Biener  <rguenther@suse.de>
5037
5038         * hwint.h (*_HALF_WIDE_INT*): Move to ...
5039         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
5040         ... here and remove the rest.
5041         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
5042
5043 2014-05-28  Richard Biener  <rguenther@suse.de>
5044
5045         PR tree-optimization/61335
5046         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
5047         new range fails, drop to varying.
5048
5049 2014-05-28  Olivier Hainque  <hainque@adacore.com>
5050
5051         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
5052         (CPP_SPEC): Add entry for -mcpu=8548.
5053         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
5054         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
5055
5056 2014-05-28  Tom de Vries  <tom@codesourcery.com>
5057
5058         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
5059         * lra.c (initialize_lra_reg_info_element): Add init of
5060         actual_call_used_reg_set field.
5061         (lra): Call lra_create_live_ranges before lra_inheritance for
5062         -fuse-caller-save.
5063         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
5064         -fuse-caller-save.
5065         * lra-constraints.c (need_for_call_save_p): Use
5066         actual_call_used_reg_set instead of call_used_reg_set for
5067         -fuse-caller-save.
5068         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
5069
5070 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
5071             Tom de Vries  <tom@codesourcery.com>
5072
5073         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
5074         to gccoptlist.
5075         (@item -fuse-caller-save): New item.
5076
5077 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
5078             Tom de Vries  <tom@codesourcery.com>
5079
5080         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
5081         OPT_fuse_caller_save.
5082
5083 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
5084             Tom de Vries  <tom@codesourcery.com>
5085
5086         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
5087         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
5088         get_call_reg_set_usage.
5089         * resource.c (mark_set_resources, mark_target_live_regs): Use
5090         get_call_reg_set_usage.
5091         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
5092         field.
5093         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
5094         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
5095         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5096         * ira-build.c (ira_create_allocno): Init
5097         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5098         (create_cap_allocno, propagate_allocno_info)
5099         (propagate_some_info_from_allocno)
5100         (copy_info_to_removed_store_destinations): Handle
5101         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
5102         * ira-costs.c (ira_tune_allocno_costs): Use
5103         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
5104
5105 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
5106             Tom de Vries  <tom@codesourcery.com>
5107
5108         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
5109         and function_used_regs_valid fields.
5110         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
5111         find_all_hard_reg_sets.
5112         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
5113         (get_call_reg_set_usage): New function.
5114         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
5115         * regs.h (get_call_reg_set_usage): Declare.
5116
5117 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
5118
5119         PR libgcc/61152
5120         * config/dbx.h (License): Add Runtime Library Exception.
5121         * config/newlib-stdint.h (License): Same.
5122         * config/rtems.h (License): Same
5123         * config/initfini-array.h (License): Same
5124         * config/v850/v850.h (License): Same.
5125         * config/v850/v850-opts.h (License): Same
5126         * config/v850/rtems.h (License): Same.
5127
5128 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
5129
5130         PR target/61044
5131         * doc/extend.texi (Local Labels): Note that label differences are
5132         not supported for AVR.
5133
5134 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5135             Olivier Hainque  <hainque@adacore.com>
5136
5137         * rtl.h (set_for_reg_notes): Declare.
5138         * emit-rtl.c (set_for_reg_notes): New function.
5139         (set_unique_reg_note): Use it.
5140         * optabs.c (add_equal_note): Likewise
5141
5142 2014-05-27  Andrew Pinski  <apinski@cavium.com>
5143
5144         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
5145         Use <w> for the register in assembly template.
5146         (stack_protect_test): Use the mode of operands[0] for the result.
5147         (stack_protect_test_<mode>): Use <w> for the register
5148         in assembly template.
5149
5150 2014-05-27  DJ Delorie  <dj@redhat.com>
5151
5152         * config/rx/rx.c (add_vector_labels): New.
5153         (rx_output_function_prologue): Call it.
5154         (rx_handle_func_attribute): Don't require empty arguments.
5155         (rx_handle_vector_attribute): New.
5156         (rx_attribute_table): Add "vector" attribute.
5157         * doc/extend.texi (interrupt, vector): Document new/changed
5158         RX-specific attributes.
5159
5160         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
5161
5162 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5163
5164         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
5165         predicate to detect a negative quotient.
5166
5167 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5168
5169         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
5170         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
5171         Add X - Y CMP 0 to X CMP Y transformation.
5172         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
5173
5174 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
5175
5176         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
5177         before printing.
5178
5179 2014-05-27  Steve Ellcey  <sellcey@mips.com>
5180
5181         * config/mips/mips.c: Add include of cgraph.h.
5182
5183 2014-05-27  Richard Biener  <rguenther@suse.de>
5184
5185         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
5186
5187 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
5188
5189         PR libgcc/61152
5190         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
5191         * config/arm/arm-cores.def (License): Same.
5192         * config/arm/arm-opts.h (License): Same.
5193         * config/arm/aout.h (License): Same.
5194         * config/arm/bpabi.h (License): Same.
5195         * config/arm/elf.h (License): Same.
5196         * config/arm/linux-elf.h (License): Same.
5197         * config/arm/linux-gas.h (License): Same.
5198         * config/arm/netbsd-elf.h (License): Same.
5199         * config/arm/uclinux-eabi.h (License): Same.
5200         * config/arm/uclinux-elf.h (License): Same.
5201         * config/arm/vxworks.h (License): Same.
5202
5203 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5204
5205         * config/arm/neon.md (neon_bswap<mode>): New pattern.
5206         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
5207         (arm_init_neon_builtins): Handle NEON_BSWAP.
5208         Define required type nodes.
5209         (arm_expand_neon_builtin): Handle NEON_BSWAP.
5210         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
5211         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
5212         * config/arm/iterators.md (VDQHSD): New mode iterator.
5213
5214 2014-05-27  Richard Biener  <rguenther@suse.de>
5215
5216         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
5217         Try using literal operands when comparing value-ranges failed.
5218
5219 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
5220
5221         * ira.c (commutative_operand): Adjust for change to recog_data.
5222         [Missing from previous commit.]
5223
5224 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
5225
5226         * system.h (TEST_BIT): New macro.
5227         * recog.h (alternative_mask): New type.
5228         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
5229         (recog_data_d): Replace alternative_enabled_p array with
5230         enabled_alternatives.
5231         (target_recog): New structure.
5232         (default_target_recog, this_target_recog): Declare.
5233         (get_enabled_alternatives, recog_init): Likewise.
5234         * recog.c (default_target_recog, this_target_recog): New variables.
5235         (get_enabled_alternatives): New function.
5236         (extract_insn): Use it.
5237         (recog_init): New function.
5238         (preprocess_constraints, constrain_operands): Adjust for change to
5239         recog_data.
5240         * postreload.c (reload_cse_simplify_operands): Likewise.
5241         * reload.c (find_reloads): Likewise.
5242         * ira-costs.c (record_reg_classes): Likewise.
5243         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
5244         all alternatives after a disabled one would be skipped.
5245         (ira_implicitly_set_insn_hard_regs): Likewise.
5246         * ira.c (ira_setup_alts): Adjust for change to recog_data.
5247         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
5248         with enabled_alternatives.
5249         * lra.c (free_insn_recog_data): Update accordingly.
5250         (lra_update_insn_recog_data): Likewise.
5251         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
5252         * lra-constraints.c (process_alt_operands): Likewise.  Handle
5253         only_alternative as part of the enabled mask.
5254         * target-globals.h (this_target_recog): Declare.
5255         (target_globals): Add a recog field.
5256         (restore_target_globals): Restore this_target_recog.
5257         * target-globals.c: Include recog.h.
5258         (default_target_globals): Initialize recog field.
5259         (save_target_globals): Likewise.
5260         * reginfo.c (reinit_regs): Call recog_init.
5261         * toplev.c (backend_init_target): Likewise.
5262
5263 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
5264
5265         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
5266         rather than any named insn's code.
5267
5268 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
5269
5270         PR libgcc/61152
5271         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
5272         * config/arm/arm-cores.def (License): Same.
5273
5274 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
5275
5276         * tree.h (decl_comdat_group): Declare.
5277         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
5278         * tree.c (decl_comdat_group): Here.
5279
5280 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
5281
5282         PR rtl-optimization/61222
5283         * combine.c (simplify_shift_const_1): When moving a PLUS outside
5284         the shift, truncate the PLUS operand to the result mode.
5285
5286 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
5287
5288         PR target/61271
5289         * config/i386/i386.c (ix86_rtx_costs)
5290         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
5291         Fix condition.
5292
5293 2014-05-26  Martin Jambor  <mjambor@suse.cz>
5294
5295         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
5296         subreg uses.
5297
5298 2014-05-26  Richard Biener  <rguenther@suse.de>
5299
5300         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
5301         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
5302         Provide specializations.
5303         (wi::int_traits <HOST_WIDE_INT>,
5304         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
5305
5306 2014-05-26  Alan Modra  <amodra@gmail.com>
5307
5308         PR target/61098
5309         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
5310         params and return a bool.  Remove dead code.  Update comment.
5311         Assert we have a const_int source.  Remove bogus code from
5312         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
5313         handling of constants > 2G and reg_equal note, from..
5314         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
5315         return value.  Update comment.  If we can, use a new pseudo
5316         for intermediate calculations.
5317         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
5318         prototype.
5319         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
5320         call to rs6000_emit_set_const in splitter.
5321         (movdi_internal64+2, +3): Likewise.
5322
5323 2014-05-26  Richard Biener  <rguenther@suse.de>
5324
5325         * system.h: Define __STDC_FORMAT_MACROS before
5326         including inttypes.h.
5327         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
5328         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
5329         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
5330         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
5331         HOST_WIDEST_INT_C): Remove.
5332         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
5333         if C99 inttypes.h is not available.
5334         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
5335         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
5336         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
5337         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
5338         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
5339         (struct output_info): Likewise.
5340         (print_statistics): Adjust.
5341         (dump_bitmap_statistics): Likewise.
5342         * bt-load.c (migrate_btr_defs): Print with PRId64.
5343         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
5344         (MAX_SAFE_MULTIPLIER): Adjust.
5345         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
5346         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
5347         dump_cgraph_node): Likewise.
5348         * final.c (dump_basic_block_info): Likewise.
5349         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
5350         * gcov.c (format_gcov): Likewise.
5351         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
5352         for calculation.
5353         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
5354         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
5355         (inline_small_functions, dump_overall_stats, dump_inline_stats):
5356         Use PRId64 for dumping.
5357         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
5358         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
5359         (add_allocno_hard_regs): Adjust.
5360         * loop-doloop.c (doloop_modify): Print using PRId64.
5361         * loop-iv.c (inverse): Compute in uint64_t.
5362         (determine_max_iter, iv_number_of_iterations): Likewise.
5363         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
5364         Print using PRId64.
5365         * lto-streamer-out.c (write_symbol): Use uint64_t.
5366         * mcf.c (CAP_INFINITY): Use int64_t maximum.
5367         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
5368         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
5369         * modulo-sched.c (const_iteration_count): Use int64_t.
5370         (sms_schedule): Dump using PRId64.
5371         * predict.c (dump_prediction): Likewise.
5372         * pretty-print.h (pp_widest_integer): Remove.
5373         * profile.c (get_working_sets, is_edge_inconsistent,
5374         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
5375         * tree-pretty-print.c (pp_double_int): Remove case handling
5376         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
5377         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
5378         and adjust users.
5379         (pass_optimize_bswap::execute): Remove restriction on hosts.
5380         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
5381         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
5382         * tree.c (widest_int_cst_value): Remove.
5383         * tree.h (widest_int_cst_value): Likewise.
5384         * value-prof.c (dump_histogram_value): Print using PRId64.
5385         * gengtype.c (main): Also inject int64_t.
5386         * ggc-page.c (struct max_alignment): Use int64_t.
5387         * alloc-pool.c (struct allocation_object_def): Likewise.
5388         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
5389         for computation.
5390         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
5391         * doc/tm.texi: Regenerated.
5392         * gengtype-lex.l (IWORD): Handle [u]int64_t.
5393         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
5394         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
5395         mmix_output_register_setting): Use [u]int64_t in prototypes.
5396         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
5397         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
5398         mmix_output_octa, mmix_output_shifted_value): Adjust.
5399         (mmix_intval): Adjust.  Remove unreachable case.
5400         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
5401
5402 2014-05-26  Richard Biener  <rguenther@suse.de>
5403
5404         * configure.ac: Drop __int64 type check.  Insist that we
5405         found uint64_t and int64_t.
5406         * hwint.h (HOST_BITS_PER___INT64): Remove.
5407         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
5408         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
5409         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
5410         (HOST_WIDEST_FAST_INT): Remove __int64 case.
5411         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
5412         for dst_q_src_df_rms_cdt.
5413         * configure: Regenerate.
5414         * config.in: Likewise.
5415
5416 2014-05-26  Michael Tautschnig  <mt@debian.org>
5417
5418         PR target/61249
5419         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
5420         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
5421
5422 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5423
5424         PR rtl-optimization/61278
5425         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
5426
5427 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
5428
5429         PR rtl-optimization/61220
5430         Part of PR rtl-optimization/61225
5431         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
5432         insn; skip split_edge for a block with only one successor.
5433
5434 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5435
5436         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
5437         for variables.
5438
5439 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5440
5441         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
5442         (update_vtable_references): New function.
5443         (function_and_variable_visibility): Rewrite also vtable initializers.
5444         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
5445
5446 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5447
5448         * ggc.h (ggc_grow): New function.
5449         * ggc-none.c (ggc_grow): New function.
5450         * ggc-page.c (ggc_grow): Likewise.
5451
5452 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5453
5454         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
5455         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
5456         comdat_can_be_unshared_p, cgraph_externally_visible_p,
5457         varpool_externally_visible_p, can_replace_by_local_alias,
5458         update_visibility_by_resolution_info, function_and_variable_visibility,
5459         pass_data_ipa_function_and_variable_visibility,
5460         make_pass_ipa_function_and_variable_visibility,
5461         whole_program_function_and_variable_visibility,
5462         pass_data_ipa_whole_program_visibility,
5463         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
5464         * cgraph.h (cgraph_local_node_p): Declare.
5465         * ipa-visibility.c: New file.
5466         * Makefile.in (OBJS): Add ipa-visiblity.o
5467
5468 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5469
5470         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
5471         that var decl is available.
5472
5473 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5474
5475         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
5476         symtab_node pointer.
5477         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
5478         (find_decls_types_r): Do not walk COMDAT_GROUP.
5479         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
5480         * varasm.c (make_decl_one_only): Use set_comdat_group;
5481         create node if needed.
5482         * ipa-inline-transform.c (save_inline_function_body): Update
5483         way we decl->symtab mapping.
5484         * symtab.c (symtab_hash, hash_node, eq_node
5485         symtab_insert_node_to_hashtable): Remove.
5486         (symtab_register_node): Update.
5487         (symtab_unregister_node): Update.
5488         (symtab_get_node): Reimplement as inline function.
5489         (symtab_add_to_same_comdat_group): Update.
5490         (symtab_dissolve_same_comdat_group_list): Update.
5491         (dump_symtab_base): Update.
5492         (verify_symtab_base): Update.
5493         (symtab_make_decl_local): Update.
5494         (fixup_same_cpp_alias_visibility): Update.
5495         (symtab_nonoverwritable_alias): Update.
5496         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
5497         * ipa.c (update_visibility_by_resolution_info): UPdate.
5498         * bb-reorder.c: Include cgraph.h
5499         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
5500         with comdat groups.
5501         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
5502         * cgraph.c (cgraph_get_create_node): Update.
5503         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
5504         and comdat_group_.
5505         (symtab_get_node): Make inline.
5506         (symtab_insert_node_to_hashtable): Remove.
5507         (symtab_can_be_discarded): Update.
5508         (decl_comdat_group): New function.
5509         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
5510         Update.
5511         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
5512         comdat group name.
5513         (read_comdat_group): New function.
5514         (input_node, input_varpool_node): Use it.
5515         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
5516         comdat groups.
5517         * mips.c (mips_start_unique_function): Likewise.
5518         (ix86_code_end): Likewise.
5519         (rs6000_code_end): Likweise.
5520         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
5521
5522 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5523
5524         * gengtype-state.c (fatal_reading_state): Bring offline.
5525         * optabs.c (widening_optab_handler): Bring offline.
5526         * optabs.h (widening_optab_handler): Likewise.
5527         * final.c (get_attr_length_1): Likewise.
5528
5529 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
5530
5531         * sched-int.h (sd_iterator_cond): Manually tail recurse.
5532
5533 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5534
5535         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
5536         (ppc440-compare): Include shift with dot.
5537         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
5538         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
5539         without dot.
5540         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
5541         without dot.
5542         (e6500_sfx2): Include it.
5543         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
5544         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
5545         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
5546         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
5547         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
5548         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
5549         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
5550         *lshiftrt_internal1le, *lshiftrt_internal1be,
5551         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
5552         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
5553         *rotldi3_internal10le, *rotldi3_internal10be,
5554         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
5555         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
5556         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
5557         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
5558         define_insns): Use type "shift" in the appropriate alternatives.
5559
5560 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5561
5562         * config/rs6000/rs6000.md (type): Add "logical".  Delete
5563         "fast_compare".
5564         (dot): Adjust comment.
5565         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
5566         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
5567         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
5568         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
5569         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
5570         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
5571         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
5572         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
5573
5574         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5575         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
5576         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5577         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5578         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5579         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5580         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5581         * config/rs6000/8540.md (ppc8540_su): Adjust.
5582         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5583         cell-cmp-microcoded): Adjust.
5584         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
5585         * config/rs6000/e500mc.md (e500mc_su): Adjust.
5586         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
5587         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
5588         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
5589         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5590         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
5591         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
5592         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
5593         Adjust.
5594         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
5595         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
5596         Adjust.  Adjust comment.
5597         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5598         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
5599
5600 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5601
5602         * config/rs6000/rs6000.md (type): Add "add".
5603         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
5604         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
5605         define_insns): Use it.
5606         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
5607
5608         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5609         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
5610         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5611         * config/rs6000/601.md (ppc601-integer): Adjust.
5612         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5613         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5614         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5615         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5616         * config/rs6000/8540.md (ppc8540_su): Adjust.
5617         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5618         cell-cmp-microcoded): Adjust.
5619         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
5620         * config/rs6000/e500mc.md (e500mc_su): Adjust.
5621         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
5622         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
5623         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
5624         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5625         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
5626         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
5627         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
5628         Adjust.
5629         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
5630         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
5631         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5632         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
5633
5634 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5635
5636         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
5637         "delayed_compare", "var_delayed_compare".
5638         (var_shift): New attribute.
5639         (cell_micro): Adjust.
5640         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
5641         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
5642         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
5643         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
5644         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
5645         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
5646         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
5647         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
5648         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
5649         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
5650         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
5651         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
5652         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
5653         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
5654         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
5655         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
5656         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
5657         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
5658         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
5659         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
5660         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
5661         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
5662         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
5663         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5664         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5665
5666         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
5667         * config/rs6000/440.md (ppc440-integer): Adjust.
5668         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
5669         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
5670         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
5671         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
5672         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
5673         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
5674         * config/rs6000/8540.md (ppc8540_su): Adjust.
5675         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
5676         cell-cmp-microcoded): Adjust.
5677         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
5678         * config/rs6000/e500mc.md (e500mc_su): Adjust.
5679         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
5680         e500mc64_delayed): Adjust.
5681         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
5682         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
5683         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
5684         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
5685         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
5686         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
5687         power6-delayed-compare, power6-var-delayed-compare): Adjust.
5688         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
5689         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
5690         Adjust comment.
5691         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
5692         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
5693
5694 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5695
5696         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
5697         (bits): New mode_attr.
5698         (idiv_ldiv): Delete mode_attr.
5699         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
5700         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5701         rs6000_adjust_priority, is_nonpipeline_insn,
5702         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5703
5704         * config/rs6000/40x.md (ppc403-idiv): Adjust.
5705         * config/rs6000/440.md (ppc440-idiv): Adjust.
5706         * config/rs6000/476.md (ppc476-idiv): Adjust.
5707         * config/rs6000/601.md (ppc601-idiv): Adjust.
5708         * config/rs6000/603.md (ppc603-idiv): Adjust.
5709         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
5710         ppc620-ldiv): Adjust.
5711         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
5712         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
5713         * config/rs6000/8540.md (ppc8540_divide): Adjust.
5714         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
5715         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
5716         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
5717         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
5718         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
5719         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
5720         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
5721         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
5722         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
5723         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
5724         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
5725         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
5726         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
5727         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
5728         * config/rs6000/titan.md (titan_fxu_div): Adjust.
5729
5730 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5731
5732         * config/rs6000/rs6000.md (type): Delete "insert_word",
5733         "insert_dword".  Add "insert".
5734         (size): Update comment.
5735         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5736         insn_must_be_first_in_group): Adjust.
5737         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
5738         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
5739         *insvsi_internal6, insvdi_internal): Adjust.
5740
5741         * config/rs6000/40x.md (ppc403-integer): Adjust.
5742         * config/rs6000/440.md (ppc440-integer): Adjust.
5743         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
5744         * config/rs6000/601.md (ppc601-integer): Adjust.
5745         * config/rs6000/603.md (ppc603-integer): Adjust.
5746         * config/rs6000/6xx.md (ppc604-integer): Adjust.
5747         * config/rs6000/7450.md (ppc7450-integer): Adjust.
5748         * config/rs6000/7xx.md (ppc750-integer): Adjust.
5749         * config/rs6000/8540.md (ppc8540_su): Adjust.
5750         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
5751         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
5752         * config/rs6000/e500mc.md (e500mc_su): Adjust.
5753         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
5754         * config/rs6000/e5500.md (e5500_sfx): Adjust.
5755         * config/rs6000/e6500.md (e6500_sfx): Adjust.
5756         * config/rs6000/mpc.md (mpccore-integer): Adjust.
5757         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
5758         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
5759         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
5760         * config/rs6000/power7.md (power7-integer): Adjust.
5761         * config/rs6000/power8.md (power8-1cyc): Adjust.
5762         * config/rs6000/rs64.md (rs64a-integer): Adjust.
5763         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
5764
5765 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5766
5767         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
5768         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
5769         (size): New attribute.
5770         (dot): New attribute.
5771         (cell_micro): Adjust.
5772         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
5773         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
5774         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
5775         umuldi3_highpart): Adjust.
5776         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
5777         rs6000_adjust_priority, is_nonpipeline_insn,
5778         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
5779
5780         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
5781         ppc405-imul3): Adjust.
5782         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
5783         * config/rs6000/476.md (ppc476-imul): Adjust.
5784         * config/rs6000/601.md (ppc601-imul): Adjust.
5785         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
5786         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
5787         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
5788         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
5789         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
5790         Adjust.
5791         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
5792         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
5793         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
5794         cell-imul): Adjust.
5795         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
5796         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
5797         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
5798         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
5799         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
5800         * config/rs6000/mpc.md (mpccore-imul): Adjust.
5801         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
5802         power4-lmul, power4-imul, power4-imul3): Adjust.
5803         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
5804         power5-lmul, power5-imul, power5-imul3): Adjust.
5805         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
5806         power6-lmul, power6-imul, power6-imul3): Adjust.
5807         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
5808         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
5809
5810         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
5811         rs64a-lmul): Adjust.
5812         * config/rs6000/titan.md (titan_imul): Adjust.
5813
5814 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5815
5816         * config/rs6000/rs6000.md (type): Add new value "halfmul".
5817         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
5818         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
5819         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
5820         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
5821         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
5822         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
5823         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
5824         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
5825         * config/rs6000/titan.md: Delete nonsensical comment.
5826         (titan_imul): Add type imul3.
5827         (titan_mulhw): Remove type imul3; add type halfmul.
5828
5829 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
5830
5831         * config/rs6000/rs6000.md (type): Reorder, reformat.
5832
5833 2014-05-23  Martin Jambor  <mjambor@suse.cz>
5834
5835         PR tree-optimization/53787
5836         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
5837         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
5838         analysis_done, update all uses.
5839         * ipa-prop.c: Include domwalk.h
5840         (param_analysis_info): Removed.
5841         (param_aa_status): New type.
5842         (ipa_bb_info): Likewise.
5843         (func_body_info): Likewise.
5844         (ipa_get_bb_info): New function.
5845         (aa_overwalked): Likewise.
5846         (find_dominating_aa_status): Likewise.
5847         (parm_bb_aa_status_for_bb): Likewise.
5848         (parm_preserved_before_stmt_p): Changed to use new param AA info.
5849         (load_from_unmodified_param): Accept func_body_info as a parameter
5850         instead of parms_ainfo.
5851         (parm_ref_data_preserved_p): Changed to use new param AA info.
5852         (parm_ref_data_pass_through_p): Likewise.
5853         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
5854         (compute_complex_assign_jump_func): Changed to use new param AA info.
5855         (compute_complex_ancestor_jump_func): Likewise.
5856         (ipa_compute_jump_functions_for_edge): Likewise.
5857         (ipa_compute_jump_functions): Removed.
5858         (ipa_compute_jump_functions_for_bb): New function.
5859         (ipa_analyze_indirect_call_uses): Likewise, moved variable
5860         declarations down.
5861         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
5862         and info, moved variable declarations down.
5863         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
5864         node and info.
5865         (ipa_analyze_stmt_uses): Likewise.
5866         (ipa_analyze_params_uses): Removed.
5867         (ipa_analyze_params_uses_in_bb): New function.
5868         (ipa_analyze_controlled_uses): Likewise.
5869         (free_ipa_bb_info): Likewise.
5870         (analysis_dom_walker): New class.
5871         (ipa_analyze_node): Handle node-specific forbidden analysis,
5872         initialize and free func_body_info, use dominator walker.
5873         (ipcp_modif_dom_walker): New class.
5874         (ipcp_transform_function): Create and free func_body_info, use
5875         ipcp_modif_dom_walker, moved a lot of functionality there.
5876
5877 2014-05-23  Marek Polacek  <polacek@redhat.com>
5878             Jakub Jelinek  <jakub@redhat.com>
5879
5880         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
5881         * gcc.c (sanitize_spec_function): Likewise.
5882         * convert.c (convert_to_integer): Include "ubsan.h".  Add
5883         floating-point to integer instrumentation.
5884         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
5885         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
5886         SANITIZE_NONDEFAULT.
5887         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
5888         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
5889         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
5890         * ubsan.c: Include "realmpfr.h" and "dfp.h".
5891         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
5892         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
5893         float/double/long double.
5894         (ubsan_instrument_float_cast): New function.
5895         * ubsan.h (ubsan_instrument_float_cast): Declare.
5896
5897 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
5898
5899         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
5900         predicate.
5901         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
5902         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
5903         Adjust for tailcalling through registers.
5904         * config/aarch64/aarch64.h (enum reg_class): New caller save
5905         register class.
5906         (REG_CLASS_NAMES): Likewise.
5907         (REG_CLASS_CONTENTS): Likewise.
5908         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
5909         Allow tailcalling without decls.
5910
5911 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
5912
5913         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
5914         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
5915
5916         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
5917         gsi, and variables v_* to v*.
5918
5919 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
5920
5921         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
5922
5923 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
5924
5925         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
5926         * omp-low.c: Update accordingly.
5927
5928         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
5929         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
5930         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
5931         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
5932         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
5933         GF_OMP_TARGET_KIND_UPDATE.
5934
5935         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
5936         Explicitly enumerate the expected region types.
5937
5938 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
5939
5940         PR other/56955
5941         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
5942         documentation; the old documentation didn't clearly state the
5943         constraints on the contents of the pointed-to storage.
5944
5945 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
5946
5947         Fix bootstrap error on ia64
5948         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
5949         Return default value.
5950
5951 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5952
5953         PR tree-optimization/54733
5954         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
5955         (CMPNOP): Define.
5956         (find_bswap_or_nop_load): New.
5957         (find_bswap_1): Renamed to ...
5958         (find_bswap_or_nop_1): This. Also add support for memory source.
5959         (find_bswap): Renamed to ...
5960         (find_bswap_or_nop): This. Also add support for memory source and
5961         detection of bitwise operations equivalent to load in target
5962         endianness.
5963         (execute_optimize_bswap): Likewise. Also move its leading comment back
5964         in place and split statement transformation into ...
5965         (bswap_replace): This.
5966
5967 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
5968
5969         PR rtl-optimization/61215
5970         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
5971         simplify_gen_subreg until final substitution.
5972
5973 2014-05-23  Alan Modra  <amodra@gmail.com>
5974
5975         PR target/61231
5976         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
5977         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
5978         Use "Y" constraint rather than "m".
5979
5980 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
5981
5982         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
5983         define.
5984         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
5985         New function declaration.
5986         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
5987         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
5988         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
5989         (aarch64_init_builtins) : Initialize builtins
5990         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
5991         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
5992         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
5993         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
5994         and __builtins_aarch64_set_fpsr.
5995         (aarch64_atomic_assign_expand_fenv): New function.
5996         * config/aarch64/aarch64.md (set_fpcr): New pattern.
5997         (get_fpcr) : Likewise.
5998         (set_fpsr) : Likewise.
5999         (get_fpsr) : Likewise.
6000         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
6001          and UNSPECV_SET_FPSR.
6002         * doc/extend.texi (AARCH64 Built-in Functions) : Document
6003         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
6004         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
6005
6006 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
6007
6008         PR rtl-optimization/60969
6009         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
6010         constraints.  Set up mem cost for NO_REGS case.
6011
6012 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
6013
6014         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
6015
6016 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
6017
6018         * config/darwin.c: Include "lto-section-names.h".
6019         (LTO_SEGMENT_NAME): Don't define.
6020         * config/i386/winnt.c: Include "lto-section-names.h".
6021         * lto-streamer.c: Include "lto-section-names.h".
6022         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
6023         * lto-wrapper.c: Include "lto-section-names.h".
6024         (LTO_SECTION_NAME_PREFIX): Don't define.
6025         * lto-section-names.h: New file.
6026         * cgraphunit.c: Include "lto-section-names.h".
6027
6028 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
6029
6030         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
6031
6032 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
6033
6034         PR target/61208
6035         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
6036
6037 2014-05-22  Nick Clifton  <nickc@redhat.com>
6038
6039         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
6040
6041 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6042
6043         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
6044         -> (T)A transformation to integer types.
6045
6046 2014-05-22  Teresa Johnson  <tejohnson@google.com>
6047
6048         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
6049         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
6050         (gcov_rewrite): Use gcov_nonruntime_assert.
6051         (gcov_open): Ditto.
6052         (gcov_write_words): Ditto.
6053         (gcov_write_length): Ditto.
6054         (gcov_read_words): Use gcov_nonruntime_assert, and remove
6055         gcc_assert from IN_LIBGCOV code.
6056         (gcov_read_summary): Use gcov_error to flag profile corruption.
6057         (gcov_sync): Use gcov_nonruntime_assert.
6058         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
6059         (gcov_histo_index): Use gcov_nonruntime_assert.
6060         (static void gcov_histogram_merge): Ditto.
6061         (compute_working_sets): Ditto.
6062         * gcov-io.h (gcov_nonruntime_assert): Define.
6063         (gcov_error): Define for !IN_LIBGCOV
6064
6065 2014-05-22  Richard Biener  <rguenther@suse.de>
6066
6067         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6068         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
6069         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
6070         and deallocation site.
6071         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6072         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
6073         passing through the incoming points-to set.
6074         (handle_lhs_call): Use flags argument instead of recomputing it.
6075         (find_func_aliases_for_call): Call handle_lhs_call with proper
6076         call return flags.
6077
6078 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
6079
6080         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
6081         all padding bits in REAL_VALUE_TYPE are cleared.
6082
6083 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
6084
6085         Cleanup and improve multipass_dfa_lookahead_guard
6086         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
6087         (core2i7_first_cycle_multipass_begin,)
6088         (core2i7_first_cycle_multipass_issue,)
6089         (core2i7_first_cycle_multipass_backtrack): Update signature.
6090         * config/ia64/ia64.c
6091         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
6092         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
6093         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
6094         hook definition.
6095         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
6096         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
6097         values.
6098         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
6099         return values.
6100         * doc/tm.texi: Regenerate.
6101         * doc/tm.texi.in
6102         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
6103         * haifa-sched.c (ready_try): Make signed to allow negative values.
6104         (rebug_ready_list_1): Update.
6105         (choose_ready): Simplify.
6106         (sched_extend_ready_list): Update.
6107
6108 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
6109
6110         Remove IA64 speculation tweaking flags
6111         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
6112         speculation tuning flags.
6113         (msched-prefer-non-data-spec-insns,)
6114         (msched-prefer-non-control-spec-insns): Obsolete options.
6115         * haifa-sched.c (choose_ready): Remove handling of
6116         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
6117         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
6118         and PREFER_NON_DATA_SPEC.
6119         * sel-sched.c (process_spec_exprs): Remove handling of
6120         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
6121
6122 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
6123
6124         Improve scheduling debug output
6125         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
6126         (advance_one_cycle): Update.
6127         (schedule_insn, queue_to_ready): Add debug printouts.
6128         (debug_ready_list_1): New static function.
6129         (debug_ready_list): Update.
6130         (max_issue): Add debug printouts.
6131         (dump_insn_stream): New static function.
6132         (schedule_block): Use it.  Also better indent printouts.
6133
6134 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
6135
6136         Fix sched_insn debug counter
6137         * haifa-sched.c (schedule_insn): Update.
6138         (struct haifa_saved_data): Add nonscheduled_insns_begin.
6139         (save_backtrack_point, restore_backtrack_point): Update.
6140         (first_nonscheduled_insn): New static function.
6141         (queue_to_ready, choose_ready): Use it.
6142         (schedule_block): Init nonscheduled_insns_begin.
6143         (sched_emit_insn): Update.
6144
6145
6146 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
6147
6148         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
6149         to GENERAL_REGS.
6150         (aarch64_secondary_reload) : LikeWise.
6151         (aarch64_class_max_nregs) : Remove CORE_REGS.
6152         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
6153         (REG_CLASS_NAMES) : Likewise.
6154         (REG_CLASS_CONTENTS) : LikeWise.
6155         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
6156
6157 2014-05-21  Guozhi Wei  <carrot@google.com>
6158
6159         PR target/61202
6160         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
6161         constraint.
6162         (vqdmulhq_n_s16): Likewise.
6163
6164 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
6165
6166         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
6167
6168 2014-05-21  Marek Polacek  <polacek@redhat.com>
6169
6170         PR sanitizer/61272
6171         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
6172
6173 2014-05-21  Martin Jambor  <mjambor@suse.cz>
6174
6175         * doc/invoke.texi (Optimize Options): Document parameters
6176         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
6177         ipa-cp-array-index-hint-bonus.
6178
6179 2014-05-21  Mark Wielaard  <mjw@redhat.com>
6180
6181         PR debug/16063
6182         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
6183         version >= 3 or not strict DWARF.
6184         * langhooks.h (struct lang_hooks_for_types): Add
6185         enum_underlying_base_type.
6186         * langhooks.c (lhd_enum_underlying_base_type): New function.
6187         * gcc/langhooks.h (struct lang_hooks_for_types): Add
6188         enum_underlying_base_type.
6189         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
6190         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
6191         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
6192
6193 2014-05-21  Richard Biener  <rguenther@suse.de>
6194
6195         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
6196
6197 2014-05-21  John Marino  <gnugcc@marino.st>
6198
6199         * config.gcc (*-*-dragonfly*): New target.
6200         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
6201         * configure: Regenerate.
6202         * config/dragonfly-stdint.h: New.
6203         * config/dragonfly.h: New.
6204         * config/dragonfly.opt: New.
6205         * config/i386/dragonfly.h: New.
6206         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
6207
6208 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6209
6210         * tree.def (VOID_CST): New.
6211         * tree-core.h (TI_VOID): New.
6212         * tree.h (void_node): New.
6213         * tree.c (tree_node_structure_for_code, tree_code_size)
6214         (iterative_hash_expr): Handle VOID_CST.
6215         (build_common_tree_nodes): Initialize void_node.
6216
6217 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
6218
6219         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
6220         functions.
6221         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
6222
6223         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
6224         more places.
6225
6226         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
6227         flag_reorder_blocks_and_partition.
6228         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
6229
6230 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
6231
6232         PR target/54236
6233         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
6234         constraints.
6235         (*addc_r_t): Add new insn_and_split.
6236
6237 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
6238
6239         PR middle-end/61252
6240         * omp-low.c (handle_simd_reference): New function.
6241         (lower_rec_input_clauses): Use it.  Defer adding reference
6242         initialization even for reduction without placeholder if in simd,
6243         handle it properly later on.
6244
6245 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
6246
6247         PR tree-optimization/60899
6248         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
6249         assume all static symbols will have definition wile parsing and
6250         check the do have definition later in compilation; check that
6251         variable referring symbol will be output before concluding that
6252         reference is safe; be conservative for referring local statics;
6253         be more precise about when comdat is output in other partition.
6254
6255 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
6256
6257         PR bootstrap/60984
6258         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
6259         parameter.
6260         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
6261         (ipa_inline): Loop inline_to_all_callers until no more aliases
6262         are removed.
6263
6264 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
6265
6266         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
6267         set writeonly flag only for vars actually written to.
6268
6269 2014-05-20  Dehao Chen  <dehao@google.com>
6270
6271         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
6272         and callee count to get clone count.
6273         * tree-inline.c (expand_call_inline): Use callee count instead of bb
6274         count in copy_body.
6275
6276 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
6277
6278         PR rtl-optimization/61243
6279         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
6280
6281 2014-05-20  Xinliang David Li  <davidxl@google.com>
6282
6283         * cgraphunit.c (walk_polymorphic_call_targets): Add
6284         dbgcnt and fopt-info support.
6285         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
6286         * ipa-devirt.c (ipa_devirt): Ditto.
6287         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
6288         * ipa.c (walk_polymorphic_call_targets): Ditto.
6289         * gimple-fold.c (fold_gimple_assign): Ditto.
6290         (gimple_fold_call): Ditto.
6291         * dbgcnt.def: New counter.
6292
6293 2014-05-20  DJ Delorie  <dj@redhat.com>
6294
6295         * config/msp430/msp430.md (split): Don't allow subregs when
6296         splitting SImode adds.
6297         (andneghi): Fix subtraction logic.
6298         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
6299
6300 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
6301
6302         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
6303         symbols.
6304         * except.c (switch_to_exception_section, resolve_unique_section,
6305         get_named_text_section, default_function_rodata_section,
6306         align_variable, get_block_for_decl, default_section_type_flags):
6307         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
6308         * symtab.c (symtab_add_to_same_comdat_group,
6309         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
6310         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
6311         Likewise.
6312         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
6313         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
6314         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
6315         (c6x_function_in_section_p): Likewise.
6316         * config/darwin.c (machopic_select_section): Likewise.
6317         * config/arm/arm.c (arm_function_in_section_p): Likewise.
6318         * config/mips/mips.c (mips_function_rodata_section): Likewise.
6319         * config/mep/mep.c (mep_select_section): LIkewise.
6320         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
6321
6322 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
6323
6324         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
6325         EH region of calls to pure functions that can throw an exception.
6326         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
6327         (copy_reference_ops_from_call): Also copy the EH region of the call if
6328         it can throw an exception.
6329
6330 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6331
6332         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
6333         nested VEC_SELECTs that are inverses of each other.
6334
6335 2014-05-20  Richard Biener  <rguenther@suse.de>
6336
6337         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
6338         (extract_and_process_scc_for_name): not here.
6339         (cond_dom_walker::before_dom_children): Only process
6340         stmts that end the BB in interesting ways.
6341         (run_scc_vn): Mark param uses as visited.
6342
6343 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6344
6345         * config/arm/arm.md (arith_shiftsi): Do not predicate for
6346         arm_restrict_it.
6347
6348 2014-05-20  Nick Clifton  <nickc@redhat.com>
6349
6350         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
6351         (msp430_gimplify_va_arg_expr): New function.
6352         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
6353
6354         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
6355         operand 0 in order to prevent confusion about the number of
6356         registers involved.
6357
6358 2014-05-20  Richard Biener  <rguenther@suse.de>
6359
6360         PR tree-optimization/61221
6361         * tree-ssa-pre.c (el_to_update): Remove.
6362         (eliminate_dom_walker::before_dom_children): Handle released
6363         VDEFs by value-numbering them to the associated VUSE.  Update
6364         stmt immediately for substituted call address.
6365         (eliminate): Remove delayed stmt updating code.
6366         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
6367         possibly late re-numbered vuses.
6368         (vn_reference_lookup_2): Adjust.
6369         (vn_reference_lookup_pieces): Likewise.
6370         (vn_reference_lookup): Likewise.
6371
6372 2014-05-20  Richard Biener  <rguenther@suse.de>
6373
6374         * config.gcc: Remove need_64bit_hwint.
6375         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
6376         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
6377         it to be true.
6378         * config.in: Regenerate.
6379         * configure: Likewise.
6380
6381 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
6382
6383         * doc/extend.texi: Create Label Attributes section,
6384         move all label attributes into it and reference it.
6385
6386 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
6387
6388         * arm.c (thumb1_reorg): When scanning backwards skip anything
6389         that's not a proper insn.
6390
6391 2014-05-19  Richard Biener  <rguenther@suse.de>
6392
6393         PR tree-optimization/61221
6394         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6395         Do nothing for unreachable blocks.
6396         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
6397         Improve unreachability detection.
6398
6399 2014-05-19  Richard Biener  <rguenther@suse.de>
6400
6401         PR tree-optimization/61209
6402         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
6403
6404 2014-05-19  Nick Clifton  <nickc@redhat.com>
6405
6406         * except.c (init_eh): Fix computation of builtin setjmp buffer
6407         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
6408
6409 2014-05-19  Richard Biener  <rguenther@suse.de>
6410
6411         PR tree-optimization/61184
6412         * tree-vrp.c (is_negative_overflow_infinity): Use
6413         TREE_OVERFLOW_P and do that check first.
6414         (is_positive_overflow_infinity): Likewise.
6415         (is_overflow_infinity): Likewise.
6416         (vrp_operand_equal_p): Properly treat operands with
6417         differing overflow as not equal.
6418
6419 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
6420
6421         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
6422         shift simplification where it was intended.
6423
6424 2014-05-19  Christian Bruel  <christian.bruel@st.com>
6425
6426         PR target/61195
6427         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
6428
6429 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
6430
6431         PR target/61084
6432         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
6433         than wide_int.
6434
6435 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
6436
6437         * reg-notes.def (CROSSING_JUMP): Likewise.
6438         * rtl.h (rtx_def): Update comment for jump flag.
6439         (CROSSING_JUMP_P): Define.
6440         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
6441         of a REG_CROSSING_JUMP note.
6442         * cfghooks.c (tidy_fallthru_edges): Likewise.
6443         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
6444         * emit-rtl.c (try_split): Likewise.
6445         * haifa-sched.c (sched_create_recovery_edges): Likewise.
6446         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
6447         * jump.c (redirect_jump_2): Likewise.
6448         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
6449         (relax_delay_slots): Likewise.
6450         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
6451         (bbit_di): Likewise.
6452         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
6453         * config/sh/sh.md (jump_compact): Likewise.
6454         * bb-reorder.c (rotate_loop): Likewise.
6455         (pass_duplicate_computed_gotos::execute): Likewise.
6456         (add_reg_crossing_jump_notes): Rename to...
6457         (update_crossing_jump_flags): ...this.
6458         (pass_partition_blocks::execute): Update accordingly.
6459
6460 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
6461
6462         * tree.h: Remove extraneous template <>.
6463
6464 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
6465
6466         * ipa.c (symtab_remove_unreachable_nodes): Remove
6467         symbol from comdat group if its body was eliminated.
6468         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
6469         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
6470         (symtab_unregister_node): ... this one.
6471         (verify_symtab_base): More strict checking of comdats.
6472         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
6473
6474 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
6475
6476         * tree-pass.h (make_pass_ipa_comdats): New pass.
6477         * timevar.def (TV_IPA_COMDATS): New timevar.
6478         * passes.def (pass_ipa_comdats): Add.
6479         * Makefile.in (OBJS): Add ipa-comdats.o
6480         * ipa-comdats.c: New file.
6481
6482 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
6483
6484         * ipa.c (update_visibility_by_resolution_info): New function.
6485         (function_and_variable_visibility): Use it.
6486
6487 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
6488
6489         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
6490         New functions.
6491         (FOR_EACH_DEFINED_SYMBOL): New macro.
6492         (varpool_first_static_initializer, varpool_next_static_initializer,
6493         varpool_first_defined_variable, varpool_next_defined_variable):
6494         Fix comments.
6495         (symtab_in_same_comdat_p): Correctly deal with inline functions.
6496
6497 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
6498
6499         * ggc-page.c (ggc_handle_finalizers): Add comment.
6500
6501 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
6502
6503         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
6504         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
6505         (ggc_internal_cleared_alloc): Likewise.
6506         * ggc-page.c (finalizer): New class.
6507         (vec_finalizer): Likewise.
6508         (globals::finalizers): New member.
6509         (globals::vec_finalizers): Likewise.
6510         (ggc_internal_alloc): Record the finalizer if any for the block being
6511         allocated.
6512         (ggc_handle_finalizers): New function.
6513         (ggc_collect): Call ggc_handle_finalizers.
6514         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
6515         finalizer.
6516         (ggc_internal_cleared_alloc): Likewise.
6517         (finalize): New function.
6518         (need_finalization_p): Likewise.
6519         (ggc_alloc): Install the type's destructor as the finalizer if it
6520         might do something.
6521         (ggc_cleared_alloc): Likewise.
6522         (ggc_vec_alloc): Likewise.
6523         (ggc_cleared_vec_alloc): Likewise.
6524
6525 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
6526
6527         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
6528
6529 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
6530
6531         * alias.c (record_alias_subset): Adjust.
6532         * bitmap.c (bitmap_element_allocate): Likewise.
6533         (bitmap_gc_alloc_stat): Likewise.
6534         * cfg.c (init_flow): Likewise.
6535         (alloc_block): Likewise.
6536         (unchecked_make_edge): Likewise.
6537         * cfgloop.c (alloc_loop): Likewise.
6538         (flow_loops_find): Likewise.
6539         (rescan_loop_exit): Likewise.
6540         * cfgrtl.c (init_rtl_bb_info): Likewise.
6541         * cgraph.c (insert_new_cgraph_node_version): Likewise.
6542         (cgraph_allocate_node): Likewise.
6543         (cgraph_create_edge_1): Likewise.
6544         (cgraph_allocate_init_indirect_info): Likewise.
6545         * cgraphclones.c (cgraph_clone_edge): Likewise.
6546         * cgraphunit.c (add_asm_node): Likewise.
6547         (init_lowered_empty_function): Likewise.
6548         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
6549         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
6550         (alpha_use_linkage): Likewise.
6551         * config/arc/arc.c (arc_init_machine_status): Likewise.
6552         * config/arm/arm.c (arm_init_machine_status): Likewise.
6553         * config/avr/avr.c (avr_init_machine_status): Likewise.
6554         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
6555         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
6556         * config/cris/cris.c (cris_init_machine_status): Likewise.
6557         * config/darwin.c (machopic_indirection_name): Likewise.
6558         (darwin_build_constant_cfstring): Likewise.
6559         (darwin_enter_string_into_cfstring_table): Likewise.
6560         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
6561         * config/frv/frv.c (frv_init_machine_status): Likewise.
6562         * config/i386/i386.c (get_dllimport_decl): Likewise.
6563         (ix86_init_machine_status): Likewise.
6564         (assign_386_stack_local): Likewise.
6565         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
6566         (i386_pe_maybe_record_exported_symbol): Likewise.
6567         (i386_pe_record_stub): Likewise.
6568         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
6569         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
6570         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
6571         (m32c_note_pragma_address): Likewise.
6572         * config/mep/mep.c (mep_init_machine_status): Likewise.
6573         (mep_note_pragma_flag): Likewise.
6574         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
6575         (mips16_local_alias): Likewise.
6576         (mips_init_machine_status): Likewise.
6577         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
6578         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
6579         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
6580         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
6581         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
6582         * config/pa/pa.c (pa_init_machine_status): Likewise.
6583         (pa_get_deferred_plabel): Likewise.
6584         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
6585         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
6586         (rs6000_init_machine_status): Likewise.
6587         (output_toc): Likewise.
6588         * config/s390/s390.c (s390_init_machine_status): Likewise.
6589         * config/score/score.c (score_output_external): Likewise.
6590         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
6591         * config/spu/spu.c (spu_init_machine_status): Likewise.
6592         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
6593         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
6594         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
6595         * coverage.c (coverage_end_function): Likewise.
6596         * dbxout.c (dbxout_init): Likewise.
6597         * doc/gty.texi: Don't mention variable_size attribute.
6598         * dwarf2cfi.c (new_cfi): Adjust.
6599         (new_cfi_row): Likewise.
6600         (copy_cfi_row): Likewise.
6601         (create_cie_data): Likewise.
6602         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
6603         (new_loc_descr): Likewise.
6604         (find_AT_string_in_table): Likewise.
6605         (add_addr_table_entry): Likewise.
6606         (new_die): Likewise.
6607         (add_var_loc_to_decl): Likewise.
6608         (clone_die): Likewise.
6609         (clone_as_declaration): Likewise.
6610         (break_out_comdat_types): Likewise.
6611         (new_loc_list): Likewise.
6612         (add_loc_descr_to_each): Likewise.
6613         (add_location_or_const_value_attribute): Likewise.
6614         (add_linkage_name): Likewise.
6615         (lookup_filename): Likewise.
6616         (dwarf2out_var_location): Likewise.
6617         (new_line_info_table): Likewise.
6618         (dwarf2out_init): Likewise.
6619         (mem_loc_descriptor): Likewise.
6620         (loc_descriptor): Likewise.
6621         (add_const_value_attribute): Likewise.
6622         (tree_add_const_value_attribute): Likewise.
6623         (comp_dir_string): Likewise.
6624         (dwarf2out_vms_debug_main_pointer): Likewise.
6625         (string_cst_pool_decl): Likewise.
6626         * emit-rtl.c (set_mem_attrs): Likewise.
6627         (get_reg_attrs): Likewise.
6628         (start_sequence): Likewise.
6629         (init_emit): Likewise.
6630         (init_emit_regs): Likewise.
6631         * except.c (init_eh_for_function): Likewise.
6632         (gen_eh_region): Likewise.
6633         (gen_eh_region_catch): Likewise.
6634         (gen_eh_landing_pad): Likewise.
6635         (add_call_site): Likewise.
6636         * function.c (add_frame_space): Likewise.
6637         (insert_temp_slot_address): Likewise.
6638         (assign_stack_temp_for_type): Likewise.
6639         (get_hard_reg_initial_val): Likewise.
6640         (allocate_struct_function): Likewise.
6641         (prepare_function_start): Likewise.
6642         (types_used_by_var_decl_insert): Likewise.
6643         * gengtype.c (variable_size_p): Remove function.
6644         (enum alloc_quantity): Remove enum.
6645         (write_typed_alloc_def): Remove function.
6646         (write_typed_struct_alloc_def): Likewise.
6647         (write_typed_typedef_alloc_def): Likewise.
6648         (write_typed_alloc_defns): Likewise.
6649         (main): Adjust.
6650         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
6651         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
6652         * ggc.h (ggc_alloc): new function.
6653         (ggc_cleared_alloc): Likewise.
6654         (ggc_vec_alloc): Template on type of vector element, and remove
6655         element size argument.
6656         (ggc_cleared_vec_alloc): Likewise.
6657         * gimple.c (gimple_build_omp_for): Adjust.
6658         (gimple_copy): Likewise.
6659         * ipa-cp.c (get_replacement_map): Likewise.
6660         (find_aggregate_values_for_callers_subset): Likewise.
6661         (known_aggs_to_agg_replacement_list): Likewise.
6662         * ipa-devirt.c (get_odr_type): Likewise.
6663         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
6664         (read_agg_replacement_chain): Likewise.
6665         * loop-iv.c (get_simple_loop_desc): Likewise.
6666         * lto-cgraph.c (input_node_opt_summary): Likewise.
6667         * lto-section-in.c (lto_new_in_decl_state): Likewise.
6668         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
6669         (input_eh_region): Likewise.
6670         (input_eh_lp): Likewise.
6671         (input_cfg): Likewise.
6672         * optabs.c (set_optab_libfunc): Likewise.
6673         (init_tree_optimization_optabs): Likewise.
6674         (set_conv_libfunc): Likewise.
6675         * passes.c (do_per_function_toporder): Likewise.
6676         * rtl.h: Don't use variable_size gty attribute.
6677         * sese.c (if_region_set_false_region): Adjust.
6678         * stringpool.c (gt_pch_save_stringpool): Likewise.
6679         * target-globals.c (save_target_globals): Likewise.
6680         * toplev.c (general_init): Likewise.
6681         * trans-mem.c (record_tm_replacement): Likewise.
6682         (split_bb_make_tm_edge): Likewise.
6683         * tree-cfg.c (move_sese_region_to_fn): Likewise.
6684         * tree-data-ref.h (lambda_vector_new): Likewise.
6685         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
6686         * tree-iterator.c (tsi_link_before): Likewise.
6687         (tsi_link_after): Likewise.
6688         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
6689         * tree-ssa-loop-niter.c (record_estimate): Likewise.
6690         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
6691         * tree-ssa-operands.h: Don't use variable_size gty attribute.
6692         * tree-ssa.c (init_tree_ssa): Adjust.
6693         * tree-ssanames.c (set_range_info): Likewise.
6694         (get_ptr_info): Likewise.
6695         (duplicate_ssa_name_ptr_info): Likewise.
6696         (duplicate_ssa_name_range_info): Likewise.
6697         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
6698         (unpack_ts_fixed_cst_value_fields): Likewise.
6699         * tree.c (build_fixed): Likewise.
6700         (build_real): Likewise.
6701         (build_string): Likewise.
6702         (decl_priority_info): Likewise.
6703         (decl_debug_expr_insert): Likewise.
6704         (decl_value_expr_insert): Likewise.
6705         (decl_debug_args_insert): Likewise.
6706         (type_hash_add): Likewise.
6707         (build_omp_clause): Likewise.
6708         * ubsan.c (decl_for_type_insert): Likewise.
6709         * varasm.c (get_unnamed_section): Likewise.
6710         (get_noswitch_section): Likewise.
6711         (get_section): Likewise.
6712         (get_block_for_section): Likewise.
6713         (create_block_symbol): Likewise.
6714         (build_constant_desc): Likewise.
6715         (create_constant_pool): Likewise.
6716         (force_const_mem): Likewise.
6717         (record_tm_clone_pair): Likewise.
6718         * varpool.c (varpool_create_empty_node): Likewise.
6719
6720 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
6721
6722         * dwarf2out.c (tree_add_const_value_attribute): Call
6723         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
6724         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
6725         instead of ggc_internal_<x>alloc_stat.
6726         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
6727         (ggc_realloc): Likewise.
6728         * ggc-none.c (ggc_internal_alloc): Likewise.
6729         (ggc_internal_cleared_alloc): Likewise.
6730         * ggc-page.c: Likewise.
6731         * ggc.h (ggc_internal_alloc_stat): Likewise.
6732         (ggc_internal_alloc): Remove macro.
6733         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
6734         (ggc_internal_cleared_alloc): Remove macro.
6735         (GGC_RESIZEVEC): Adjust.
6736         (ggc_resizevar): Remove macro.
6737         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
6738         (ggc_internal_cleared_vec_alloc_stat): Likewise.
6739         (ggc_internal_vec_cleared_alloc): Remove macro.
6740         (ggc_alloc_atomic_stat): Drop _stat suffix.
6741         (ggc_alloc_atomic): Remove macro.
6742         (ggc_alloc_cleared_atomic): Remove macro.
6743         (ggc_alloc_string_stat): Drop _stat suffix.
6744         (ggc_alloc_string): Remove macro.
6745         (ggc_alloc_rtx_def_stat): Adjust.
6746         (ggc_alloc_tree_node_stat): Likewise.
6747         (ggc_alloc_cleared_tree_node_stat): Likewise.
6748         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
6749         (ggc_alloc_cleared_simd_clone_stat): Likewise.
6750         * gimple.c (gimple_build_omp_for): Likewise.
6751         (gimple_copy): Likewise.
6752         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
6753         * toplev.c (realloc_for_line_map): Adjust.
6754         * tree-data-ref.h (lambda_vector_new): Likewise.
6755         * tree-phinodes.c (allocate_phi_node): Likewise.
6756         * tree.c (grow_tree_vec_stat): Likewise.
6757         * vec.h (va_gc::reserve): Adjust.
6758
6759 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
6760
6761         * config/microblaze/microblaze.c (break_handler): New Declaration.
6762         (microblaze_break_function_p,microblaze_is_break_handler): New.
6763         (compute_frame_size): Use microblaze_break_function_p.
6764         Add the test of break_handler.
6765         (microblaze_function_prologue) : Add the test of variable
6766         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
6767         (microblaze_function_epilogue) : Add the test of break_handler.
6768         (microblaze_globalize_label) : Add the test of break_handler.
6769         Check the name by BREAK_HANDLER_NAME.
6770
6771         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
6772
6773         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
6774         microblaze_is_break_handler test.
6775         (call_internal1,call_value_intern): Use microblaze_break_function_p.
6776         Use SYMBOL_REF_DECL.
6777
6778         * config/microblaze/microblaze-protos.h
6779         (microblaze_break_function_p,microblaze_is_break_handler):
6780         New Declaration.
6781
6782         * doc/extend.texi (MicroBlaze break_handler Functions): Document
6783         new MicroBlaze break_handler functions.
6784
6785 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
6786
6787         * doc/extend.texi (Size of an asm): Move node text according
6788         to its @menu entry position.
6789
6790 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
6791
6792         PR tree-optimization/61140
6793         PR tree-optimization/61150
6794         PR tree-optimization/61197
6795         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
6796
6797 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
6798
6799         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
6800
6801 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
6802
6803         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
6804         __SIZEOF_INT128__ is defined.
6805
6806 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6807
6808         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
6809         (rs6000_delegitimize_address): Use it.
6810
6811 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6812
6813         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
6814         inplace argument.  Store the new address in the original MEM when true.
6815         * emit-rtl.c (change_address_1): Likewise.
6816         (adjust_address_1, adjust_automodify_address_1, offset_address):
6817         Update accordingly.
6818         * rtl.h (plus_constant): Add an inplace argument.
6819         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
6820         when true.  Avoid generating (plus X (const_int 0)).
6821         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
6822         in-place.  Pass true to plus_constant.
6823         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
6824
6825 2014-05-16  Dehao Chen  <dehao@google.com>
6826
6827         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
6828
6829 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
6830
6831         PR target/54089
6832         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
6833         patterns.
6834         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
6835
6836 2014-05-16  Dehao Chen  <dehao@google.com>
6837
6838         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
6839         optimize_function_for_size_p.
6840         * regs.h (REG_FREQ_FROM_BB): Likewise.
6841
6842 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
6843
6844         PR target/51244
6845         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
6846         negt_reg_operand cases.
6847         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
6848         predicate.
6849         * config/sh/predicates.md (cbranch_treg_value): Simplify.
6850
6851 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
6852
6853         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
6854         target variants.
6855
6856 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
6857
6858         Revert:
6859         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
6860
6861         * tree-cfg.c (dump_function_to_file): Dump the return type of
6862         functions, in a line to itself before the function body, mimicking
6863         the layout of a C function.
6864
6865 2014-05-16  Dehao Chen  <dehao@google.com>
6866
6867         * cfghooks.c (make_forwarder_block): Use direct computation to
6868         get fall-through edge's count and frequency.
6869
6870 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
6871
6872         * config/arc/arc.c (arc_init): Fix typo in error message.
6873         * config/i386/i386.c (ix86_expand_builtin): Likewise.
6874         (split_stack_prologue_scratch_regno): Likewise.
6875         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
6876         word from error message.
6877
6878 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6879
6880         * ira-costs.c: Fix typo in comment.
6881
6882 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
6883
6884         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
6885
6886 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
6887
6888         * varpool.c (dump_varpool_node): Dump write-only flag.
6889         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
6890         write-only flag.
6891         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
6892         write-only variables.
6893         * ipa.c (process_references): New function.
6894         (set_readonly_bit): New function.
6895         (set_writeonly_bit): New function.
6896         (clear_addressable_bit): New function.
6897         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
6898         fix handling of aliases.
6899         * cgraph.h (struct varpool_node): Add writeonly flag.
6900
6901 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
6902
6903         PR rtl-optimization/60969
6904         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
6905         Calculate costs for this case.
6906
6907 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
6908
6909         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
6910         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
6911
6912 2014-05-16  Richard Biener  <rguenther@suse.de>
6913
6914         PR tree-optimization/61194
6915         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
6916         bool patterns ending in a COND_EXPR.
6917
6918 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6919
6920         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
6921
6922 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6923
6924         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
6925         where we were unable to cost an RTX.
6926
6927 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6928
6929         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
6930         HIGH, LO_SUM.
6931
6932 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6933             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6934
6935         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
6936
6937 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6938             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6939
6940         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
6941         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
6942
6943 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6944             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6945
6946         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
6947         operators.
6948
6949 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6950             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6951
6952         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
6953         DIV/MOD.
6954
6955 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6956             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6957
6958         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
6959         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
6960
6961 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6962             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6963
6964         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
6965         rotates and shifts.
6966
6967 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6968             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6969
6970         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
6971         ZERO_EXTEND and SIGN_EXTEND better.
6972
6973 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6974             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6975
6976         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
6977         logical operations.
6978
6979 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6980             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6981
6982         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
6983         costs when costing loads and stores to memory.
6984
6985 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6986             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
6987
6988         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
6989         for SET RTX.
6990
6991 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6992
6993         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
6994
6995 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
6996             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6997
6998         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
6999         to...
7000         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
7001         well formed.
7002         (aarch64_rtx_mult_cost): New.
7003         (aarch64_rtx_costs): Use it, refactor as appropriate.
7004
7005 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
7006             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
7007
7008         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
7009         emit instructions, return number of instructions which would
7010         be emitted.
7011         (aarch64_add_constant): Update call to aarch64_build_constant.
7012         (aarch64_output_mi_thunk): Likewise.
7013         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
7014         a CONST_DOUBLE.
7015
7016 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
7017
7018         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
7019         (TARGET_RTX_COSTS): Call it.
7020
7021 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
7022
7023         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
7024         (cortexa57_vector_cost): Likewise.
7025         (cortexa57_tunings): Use them.
7026
7027 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
7028
7029         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
7030         (cpu_addrcost_table): Use it.
7031         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
7032         (aarch64_address_cost): Rewrite using aarch64_classify_address,
7033         move it.
7034
7035 2014-05-16  Richard Biener  <rguenther@suse.de>
7036
7037         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
7038         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
7039         (visit_phi): Ignore edges marked as not executable.
7040         (class cond_dom_walker): New.
7041         (cond_dom_walker::before_dom_children): Value-number
7042         control statements and mark successor edges as not
7043         executable if possible.
7044         (run_scc_vn): First walk all control statements in
7045         dominator order, marking edges as not executable.
7046         * tree-inline.c (copy_edges_for_bb): Be not confused
7047         about random edge flags.
7048
7049 2014-05-16  Richard Biener  <rguenther@suse.de>
7050
7051         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
7052
7053 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
7054
7055         PR target/61193
7056         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
7057         (__TM_simple_begin): Use it.
7058         (__TM_begin): Likewise.
7059
7060 2014-05-15  Martin Jambor  <mjambor@suse.cz>
7061
7062         PR ipa/61085
7063         * ipa-prop.c (update_indirect_edges_after_inlining): Check
7064         type_preserved flag when the indirect edge is polymorphic.
7065
7066 2014-05-15  Martin Jambor  <mjambor@suse.cz>
7067
7068         PR tree-optimization/61090
7069         * tree-sra.c (sra_modify_expr): Pass the current gsi to
7070         build_ref_for_model.
7071
7072 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7073
7074         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
7075         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
7076
7077 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
7078
7079         PR tree-optimization/61158
7080         * fold-const.c (fold_binary_loc): If X is zero-extended and
7081         shiftc >= prec, make sure zerobits is all ones instead of
7082         invoking undefined behavior.
7083
7084 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7085
7086         * regcprop.h: New file.
7087         * regcprop.c (skip_debug_insn_p): New decl.
7088         (replace_oldest_value_reg): Check skip_debug_insn_p.
7089         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
7090         * shrink-wrap.c: Include regcprop.h.
7091         (prepare_shrink_wrap): Call
7092         copyprop_hardreg_forward_bb_without_debug_insn.
7093
7094 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7095
7096         * shrink-wrap.h: Update comment.
7097         * shrink-wrap.c: Update comment.
7098         (next_block_for_reg): Rename to live_edge_for_reg.
7099         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
7100         (move_insn_for_shrink_wrap): Split live_edge.
7101         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
7102
7103 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7104
7105         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
7106         Delete.
7107         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
7108         * config/sparc/sparc.md (fptype_ut699): New attribute.
7109         (in_branch_delay): Return false if -mfix-ut699 is specified and
7110         fptype_ut699 is set to single.
7111         (truncdfsf2): Add fptype_ut699 attribute.
7112         (fix_truncdfsi2): Likewise.
7113         (floatsisf2): Change fptype attribute.
7114         (fix_truncsfsi2): Likewise.
7115         (negtf2_notv9): Delete.
7116         (negtf2_v9): Likewise.
7117         (negtf2_hq): New instruction.
7118         (negtf2): New instruction and splitter.
7119         (negdf2_notv9): Rewrite.
7120         (abstf2_notv9): Delete.
7121         (abstf2_hq_v9): Likewise.
7122         (abstf2_v9): Likewise.
7123         (abstf2_hq): New instruction.
7124         (abstf2): New instruction and splitter.
7125         (absdf2_notv9): Rewrite.
7126
7127 2014-05-14  Cary Coutant  <ccoutant@google.com>
7128
7129         PR debug/61013
7130         * opts.c (common_handle_option): Don't special-case "-g".
7131         (set_debug_level): Default to at least level 2 with "-g".
7132
7133 2014-05-14  DJ Delorie  <dj@redhat.com>
7134
7135         * config/msp430/msp430.c (msp430_builtin): Add
7136         MSP430_BUILTIN_DELAY_CYCLES.
7137         (msp430_init_builtins): Register void __delay_cycles(long long).
7138         (msp430_builtin_decl): Add it.
7139         (cg_magic_constant): New.
7140         (msp430_expand_delay_cycles): New.
7141         (msp430_expand_builtin): Call it.
7142         (msp430_print_operand_raw): Change integer printing from "int" to
7143         HOST_WIDE_INT.
7144         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
7145         (delay_cycles_start): New.
7146         (delay_cycles_end): New.
7147         (delay_cycles_32): New.
7148         (delay_cycles_32x): New.
7149         (delay_cycles_16): New.
7150         (delay_cycles_16x): New.
7151         (delay_cycles_2): New.
7152         (delay_cycles_1): New.
7153         * doc/extend.texi: Document __delay_cycles().
7154
7155 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
7156
7157         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
7158         length attribute computation.
7159
7160 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
7161
7162         PR debug/61188
7163         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
7164
7165 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
7166
7167         PR target/61084
7168         * config/sparc/sparc.md: Fix types of low and high in DI constant
7169         splitter.  Use gen_int_mode in some other splitters.
7170
7171 2014-05-14  Martin Jambor  <mjambor@suse.cz>
7172
7173         PR ipa/60897
7174         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
7175
7176 2014-05-14  James Norris  <jnorris@codesourcery.com>
7177
7178         * omp-low.c (expand_parallel_call): Remove shadow variable.
7179         (expand_omp_taskreg): Likewise.
7180
7181 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
7182
7183         * common/config/i386/i386-common.c
7184         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
7185         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
7186         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
7187         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
7188         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
7189         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
7190         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
7191         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
7192         xsavecintrin.h, xsavesintrin.h.
7193         (x86_64-*-*): Ditto.
7194         * config/i386/clflushoptintrin.h: New.
7195         * config/i386/xsavecintrin.h: Ditto.
7196         * config/i386/xsavesintrin.h: Ditto.
7197         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
7198         (bit_XSAVES): Ditto.
7199         (bit_XSAVES): Ditto.
7200         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
7201         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
7202         -mno-clflushopt.
7203         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7204         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
7205         OPTION_MASK_ISA_XSAVES.
7206         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
7207         -mxsavec, -mxsaves.
7208         (PTA_CLFLUSHOPT) Define.
7209         (PTA_XSAVEC): Ditto.
7210         (PTA_XSAVES): Ditto.
7211         (ix86_option_override_internal): Handle new options.
7212         (ix86_valid_target_attribute_inner_p): Ditto.
7213         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
7214         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
7215         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
7216         (bdesc_special_args): Add __builtin_ia32_xsaves,
7217         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
7218         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
7219         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
7220         (ix86_expand_builtin): Handle new builtins.
7221         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
7222         (TARGET_CLFLUSHOPT_P): Ditto.
7223         (TARGET_XSAVEC): Ditto.
7224         (TARGET_XSAVEC_P): Ditto.
7225         (TARGET_XSAVES): Ditto.
7226         (TARGET_XSAVES_P): Ditto.
7227         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
7228         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
7229         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
7230         (ANY_XRSTOR): New.
7231         (ANY_XRSTOR64): Ditto.
7232         (xrstor): Ditto.
7233         (xrstor): Change into <xrstor>.
7234         (xrstor_rex64): Change into <xrstor>_rex64.
7235         (xrstor64): Change into <xrstor>64
7236         (clflushopt): New.
7237         * config/i386/i386.opt (mclflushopt): New.
7238         (mxsavec): Ditto.
7239         (mxsaves): Ditto.
7240         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
7241         xsavecintrin.h.
7242         * doc/invoke.texi: Document new options.
7243
7244 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
7245
7246         PR rtl-optimization/60866
7247         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
7248         Default it to -1.  Pass it down to init_simplejump_data.
7249         (init_simplejump_data): New parameter old_seqno.  Pass it down
7250         to get_seqno_for_a_jump.
7251         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
7252         initializing new jump seqno as a last resort.  Add comment.
7253         (sel_redirect_edge_and_branch): Save old seqno of the conditional
7254         jump and pass it down to sel_init_new_insn.
7255         (sel_redirect_edge_and_branch_force): Likewise.
7256
7257 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
7258
7259         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
7260         shifted values to avoid build warning.
7261
7262 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
7263
7264         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
7265         * cfgrtl.c (rtl_merge_blocks): Fix comment.
7266         (cfg_layout_merge_blocks): Likewise.
7267         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
7268
7269 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
7270
7271         PR rtl-optimization/60901
7272         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
7273         bb predecessor belongs to the same scheduling region.  Adjust comment.
7274
7275 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
7276
7277         * doc/sourcebuild.texi: (dfp_hw): Document.
7278         (p8vector_hw): Likewise.
7279         (powerpc_eabi_ok): Likewise.
7280         (powerpc_elfv2): Likewise.
7281         (powerpc_htm_ok): Likewise.
7282         (ppc_recip_hw): Likewise.
7283         (vsx_hw): Likewise.
7284
7285 2014-05-13  Cary Coutant  <ccoutant@google.com>
7286
7287         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
7288
7289 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
7290
7291         * gengtype-parse.c (require3): Eliminate in favor of...
7292         (require4): New.
7293         (require_template_declaration): Update to support optional single *
7294         on a type.
7295
7296         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
7297         (create_user_defined_type): Handle a single level of explicit
7298         pointerness within template arguments.
7299         (struct write_types_data): Add field "kind".
7300         (filter_type_name): Handle "*" character.
7301         (write_user_func_for_structure_ptr): Require a write_types_data
7302         rather than just a prefix string, so that we can look up the kind
7303         of the wtd and use it as an index into wrote_user_func_for_ptr,
7304         ensuring that such functions are written at most once.  Support
7305         subclasses by invoking the marking function of the ultimate base class.
7306         (write_user_func_for_structure_body): Require a write_types_data
7307         rather than just a prefix string, so that we can pass this to
7308         write_user_func_for_structure_ptr.
7309         (write_func_for_structure): Likewise.
7310         (ggc_wtd): Add initializer of new "kind" field.
7311         (pch_wtd): Likewise.
7312
7313         * gengtype.h (enum write_types_kinds): New.
7314         (struct type): Add field wrote_user_func_for_ptr to the "s"
7315         union member.
7316
7317 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
7318
7319         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
7320         instead of const_binop.
7321         (fold_binary_loc): Likewise.
7322
7323 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
7324
7325         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
7326         calculation to match get_ref_base_and_extent.
7327
7328 2014-05-13  Catherine Moore  <clm@codesourcery.com>
7329             Sandra Loosemore  <sandra@codesourcery.com>
7330
7331         * configure.ac: Fix assembly for explicit JALR relocation check.
7332         * configure: Regenerate.
7333
7334 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7335
7336         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
7337         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
7338         Remove associated type declarations and initialisations.
7339         (arm_expand_neon_builtin): Likewise.
7340         (neon_emit_pair_result_insn): Delete.
7341         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
7342         * config/arm/neon.md (neon_vtrn<mode>): Delete.
7343         (neon_vzip<mode>): Likewise.
7344         (neon_vuzp<mode>): Likewise.
7345
7346 2014-05-13  Richard Biener  <rguenther@suse.de>
7347
7348         PR ipa/60973
7349         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
7350         it needs revisiting whether the call still may be tail-called.
7351
7352 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7353
7354         * rtl.def (SYMBOL_REF): Remove middle "0" field.
7355         * rtl.h (block_symbol): Reduce number of fields to 2.
7356         (rtx_def): Add u2.symbol_ref_flags.
7357         (SYMBOL_REF_FLAGS): Use it.
7358         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
7359         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
7360         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
7361         Lower index of SYMBOL_REF_DATA.
7362         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
7363         Print SYMBOL_REF_FLAGS at the same time.
7364         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
7365
7366 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7367
7368         * rtl.def (VAR_LOCATION): Remove "i" field.
7369         * rtl.h (rtx_def): Add u2.var_location_status.
7370         (PAT_VAR_LOCATION_STATUS): Use it.
7371         (gen_rtx_VAR_LOCATION): Declare.
7372         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
7373         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
7374         * var-tracking.c (emit_note_insn_var_location): Remove casts.
7375
7376 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7377
7378         * rtl.def (scratch): Fix outdated comment and remove "0" field.
7379         * gengtype.c (adjust_field_rtx_def): Update accordingly.
7380
7381 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7382
7383         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
7384         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
7385         * rtl.h (rtx_def): Add insn_uid to u2 field.
7386         (RTX_FLAG_CHECK8): Delete in favor of...
7387         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
7388         (INSN_DELETED_P): Update accordingly.
7389         (INSN_UID): Use u2.insn_uid.
7390         (INSN_CHAIN_CODE_P): Define.
7391         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
7392         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
7393         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
7394         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
7395         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
7396         indices accordingly.
7397         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
7398         Update indices for insn-chain rtxes.
7399         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
7400         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
7401         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
7402         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
7403         * combine.c (try_combine): Likewise.
7404         * ira.c (setup_prohibited_mode_move_regs): Likewise.
7405
7406 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7407
7408         * rtl.def (REG): Remove middle field.
7409         * rtl.h (rtx_def): Add orignal_regno to u2.
7410         (ORIGINAL_REGNO): Use it instead of field 1.
7411         (REG_ATTRS): Lower field index accordingly.
7412         * gengtype.c (adjust_field_rtx_def): Remove handling of
7413         ORIGINAL_REGNO.  Move REG_ATTRS index down.
7414         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
7415         code that prints the REGNO.
7416
7417 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7418
7419         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
7420         GENERATOR_FILE.
7421
7422 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
7423
7424         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
7425
7426 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
7427
7428         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
7429         (alloc_iv): Lower base expressions containing ADDR_EXPR.
7430
7431 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
7432
7433         * config/aarch64/aarch64-protos.h
7434         (aarch64_hard_regno_caller_save_mode): New prototype.
7435         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
7436         New function.
7437         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
7438
7439 2014-05-13  Christian Bruel  <christian.bruel@st.com>
7440
7441         * target.def (mode_switching): New hook vector.
7442         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
7443         (mode_exit, modepriority_to_mode): Likewise.
7444         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
7445         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7446         * target.h: Include tm.h and hard-reg-set.h.
7447         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
7448         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
7449         * doc/tm.texi Regenerate.
7450         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
7451         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7452         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
7453         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
7454         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
7455         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7456         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
7457         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
7458         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
7459         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
7460         (ix86_emit_mode_set): Hookify.
7461         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
7462         Delete.
7463         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
7464         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
7465         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
7466         (epiphany_mode_priority_to_mode): Remove declaration.
7467         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
7468         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
7469         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
7470         Likewise.
7471         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
7472         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
7473         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
7474
7475 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
7476
7477         PR target/61060
7478         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
7479         is const0_rtx, return immediately.  Don't test count == 0 when
7480         it is always true.
7481
7482 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
7483
7484         * Makefile.in: add shrink-wrap.o.
7485         * config/i386/i386.c: include "shrink-wrap.h"
7486         * function.c: Likewise.
7487         (requires_stack_frame_p, next_block_for_reg,
7488         move_insn_for_shrink_wrap, prepare_shrink_wrap,
7489         dup_block_and_redirect): Move to shrink-wrap.c
7490         (thread_prologue_and_epilogue_insns): Extract three code segments
7491         as functions in shrink-wrap.c
7492         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
7493         shrink-wrap.h
7494         * shrink-wrap.c: New file.
7495         * shrink-wrap.h: New file.
7496
7497 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
7498
7499         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
7500         reference to Solaris.
7501
7502 2014-05-12  Mike Stump  <mikestump@comcast.net>
7503
7504         PR other/31778
7505         * genattrtab.c (filename): Add.
7506         (convert_set_attr_alternative): Improve error message.
7507         (check_defs): Restore read_md_filename for error messages.
7508         (gen_insn): Save filename.
7509
7510 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
7511
7512         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
7513         -fno-local-ivars and -fivar-visibility.
7514         * c-family/c.opt: Make -Wshadow also implicitly enable
7515         -Wshadow-ivar.
7516
7517 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
7518
7519         * doc/tm.texi: Remove reference to deleted macro.
7520         * doc/tm.texi.in: Likewise.
7521
7522 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7523
7524         PR target/60991
7525         * config/avr/avr.c (avr_out_store_psi): Use correct constant
7526         to restore Y.
7527
7528 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
7529
7530         PR libgcc/61152
7531         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
7532         * config/arm/aout.h (License): Same.
7533         * config/arm/bpabi.h (License): Same.
7534         * config/arm/elf.h (License): Same.
7535         * config/arm/linux-elf.h (License): Same.
7536         * config/arm/linux-gas.h (License): Same.
7537         * config/arm/netbsd-elf.h (License): Same.
7538         * config/arm/uclinux-eabi.h (License): Same.
7539         * config/arm/uclinux-elf.h (License): Same.
7540         * config/arm/vxworks.h (License): Same.
7541
7542 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
7543
7544         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
7545         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
7546         number of operands to 3.
7547         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
7548         * tree-nested.c (convert_nonlocal_omp_clauses,
7549         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
7550         * gimplify.c (gimplify_scan_omp_clauses): Handle
7551         OMP_CLAUSE_LINEAR_STMT.
7552         * omp-low.c (lower_rec_input_clauses): Fix typo.
7553         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
7554         cast between Fortran boolean_type_node and C _Bool if
7555         needed.
7556
7557 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
7558
7559         PR tree-optimization/61136
7560         * wide-int.h (multiple_of_p): Define a version that doesn't return
7561         the quotient.
7562         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
7563         integer_zerop/const_binop pair.
7564         (multiple_of_p): Likewise, converting both operands to widest_int
7565         precision.
7566
7567 2014-05-09  Teresa Johnson  <tejohnson@google.com>
7568
7569         * cgraphunit.c (analyze_functions): Use correct dump file.
7570
7571 2014-05-09  Florian Weimer  <fweimer@redhat.com>
7572
7573         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
7574         expand_used_vars.
7575         (stack_protect_return_slot_p): New function.
7576         (expand_used_vars): Call stack_protect_decl_p and
7577         stack_protect_return_slot_p for -fstack-protector-strong.
7578
7579 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
7580         Andrew Haley <aph@redhat.com>
7581         Richard Sandiford <rdsandiford@googlemail.com>
7582
7583         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
7584         pages.
7585
7586 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
7587
7588         PR middle-end/61111
7589         * fold-const.c (fold_binary_loc): Changed width of mask.
7590
7591 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
7592
7593         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
7594         unsigned int initializers for regno_in, regno_out.
7595
7596 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
7597
7598         PR target/61055
7599         * config/avr/avr.md (cc): Add new attribute set_vzn.
7600         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
7601         Set cc insn attribute to set_vzn instead of set_zn for alternatives
7602         with INC, DEC or NEG.
7603         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
7604         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
7605         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
7606
7607 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7608
7609         Revert:
7610         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7611
7612         * wide-int.cc (UTItype): Define.
7613         (UDWtype): Define for appropriate W_TYPE_SIZE.
7614
7615 2014-05-09  Richard Biener  <rguenther@suse.de>
7616
7617         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
7618         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
7619         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
7620         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
7621         ssa_propagate): Adjust.
7622
7623 2014-05-08  Jeff Law  <law@redhat.com>
7624
7625         PR tree-optimization/61009
7626         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
7627         tri-state rather than a boolean.  When a block is too big to
7628         thread through, inform caller via negative return value.
7629         (thread_across_edge): If a block was too big for normal threading,
7630         then it's too big for a joiner too, so remove temporary equivalences
7631         and return immediately.
7632
7633 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7634             Matthias Klose  <doko@ubuntu.com>
7635
7636         PR driver/61106
7637         * optc-gen.awk: Fix option handling for -Wunused-parameter.
7638
7639 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
7640
7641         PR target/59952
7642         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
7643
7644 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
7645
7646         PR target/61092
7647         * config/alpha/alpha.c: Include gimple-iterator.h.
7648         (alpha_gimple_fold_builtin): New function.  Move
7649         ALPHA_BUILTIN_UMULH folding from ...
7650         (alpha_fold_builtin): ... here.
7651         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
7652
7653 2014-05-08  Wei Mi  <wmi@google.com>
7654
7655         PR target/58066
7656         * config/i386/i386.c (ix86_compute_frame_layout): Update
7657         preferred_stack_boundary for call, expanded from tls descriptor.
7658         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
7659         to depend on SP register.
7660         (*tls_local_dynamic_base_32_gnu): Ditto.
7661         (*tls_local_dynamic_32_once): Ditto.
7662         (tls_global_dynamic_64_<mode>): Set
7663         ix86_tls_descriptor_calls_expanded_in_cfun.
7664         (tls_local_dynamic_base_64_<mode>): Ditto.
7665         (tls_global_dynamic_32): Set
7666         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
7667         to depend on SP register.
7668         (tls_local_dynamic_base_32): Ditto.
7669
7670 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7671
7672         * config/arm/arm_neon.h: Update comment.
7673         * config/arm/neon-docgen.ml: Delete.
7674         * config/arm/neon-gen.ml: Delete.
7675         * doc/arm-neon-intrinsics.texi: Update comment.
7676
7677 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7678
7679         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
7680         and v4sf versions.
7681         (vand, vorr, veor, vorn, vbic): Remove.
7682         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
7683         iterator.
7684         (neon_vsub_unspec): Likewise.
7685         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
7686
7687 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7688
7689         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
7690         (vadd_s16): Likewise.
7691         (vadd_s32): Likewise.
7692         (vadd_f32): Likewise.
7693         (vadd_u8): Likewise.
7694         (vadd_u16): Likewise.
7695         (vadd_u32): Likewise.
7696         (vadd_s64): Likewise.
7697         (vadd_u64): Likewise.
7698         (vaddq_s8): Likewise.
7699         (vaddq_s16): Likewise.
7700         (vaddq_s32): Likewise.
7701         (vaddq_s64): Likewise.
7702         (vaddq_f32): Likewise.
7703         (vaddq_u8): Likewise.
7704         (vaddq_u16): Likewise.
7705         (vaddq_u32): Likewise.
7706         (vaddq_u64): Likewise.
7707         (vmul_s8): Likewise.
7708         (vmul_s16): Likewise.
7709         (vmul_s32): Likewise.
7710         (vmul_f32): Likewise.
7711         (vmul_u8): Likewise.
7712         (vmul_u16): Likewise.
7713         (vmul_u32): Likewise.
7714         (vmul_p8): Likewise.
7715         (vmulq_s8): Likewise.
7716         (vmulq_s16): Likewise.
7717         (vmulq_s32): Likewise.
7718         (vmulq_f32): Likewise.
7719         (vmulq_u8): Likewise.
7720         (vmulq_u16): Likewise.
7721         (vmulq_u32): Likewise.
7722         (vsub_s8): Likewise.
7723         (vsub_s16): Likewise.
7724         (vsub_s32): Likewise.
7725         (vsub_f32): Likewise.
7726         (vsub_u8): Likewise.
7727         (vsub_u16): Likewise.
7728         (vsub_u32): Likewise.
7729         (vsub_s64): Likewise.
7730         (vsub_u64): Likewise.
7731         (vsubq_s8): Likewise.
7732         (vsubq_s16): Likewise.
7733         (vsubq_s32): Likewise.
7734         (vsubq_s64): Likewise.
7735         (vsubq_f32): Likewise.
7736         (vsubq_u8): Likewise.
7737         (vsubq_u16): Likewise.
7738         (vsubq_u32): Likewise.
7739         (vsubq_u64): Likewise.
7740         (vand_s8): Likewise.
7741         (vand_s16): Likewise.
7742         (vand_s32): Likewise.
7743         (vand_u8): Likewise.
7744         (vand_u16): Likewise.
7745         (vand_u32): Likewise.
7746         (vand_s64): Likewise.
7747         (vand_u64): Likewise.
7748         (vandq_s8): Likewise.
7749         (vandq_s16): Likewise.
7750         (vandq_s32): Likewise.
7751         (vandq_s64): Likewise.
7752         (vandq_u8): Likewise.
7753         (vandq_u16): Likewise.
7754         (vandq_u32): Likewise.
7755         (vandq_u64): Likewise.
7756         (vorr_s8): Likewise.
7757         (vorr_s16): Likewise.
7758         (vorr_s32): Likewise.
7759         (vorr_u8): Likewise.
7760         (vorr_u16): Likewise.
7761         (vorr_u32): Likewise.
7762         (vorr_s64): Likewise.
7763         (vorr_u64): Likewise.
7764         (vorrq_s8): Likewise.
7765         (vorrq_s16): Likewise.
7766         (vorrq_s32): Likewise.
7767         (vorrq_s64): Likewise.
7768         (vorrq_u8): Likewise.
7769         (vorrq_u16): Likewise.
7770         (vorrq_u32): Likewise.
7771         (vorrq_u64): Likewise.
7772         (veor_s8): Likewise.
7773         (veor_s16): Likewise.
7774         (veor_s32): Likewise.
7775         (veor_u8): Likewise.
7776         (veor_u16): Likewise.
7777         (veor_u32): Likewise.
7778         (veor_s64): Likewise.
7779         (veor_u64): Likewise.
7780         (veorq_s8): Likewise.
7781         (veorq_s16): Likewise.
7782         (veorq_s32): Likewise.
7783         (veorq_s64): Likewise.
7784         (veorq_u8): Likewise.
7785         (veorq_u16): Likewise.
7786         (veorq_u32): Likewise.
7787         (veorq_u64): Likewise.
7788         (vbic_s8): Likewise.
7789         (vbic_s16): Likewise.
7790         (vbic_s32): Likewise.
7791         (vbic_u8): Likewise.
7792         (vbic_u16): Likewise.
7793         (vbic_u32): Likewise.
7794         (vbic_s64): Likewise.
7795         (vbic_u64): Likewise.
7796         (vbicq_s8): Likewise.
7797         (vbicq_s16): Likewise.
7798         (vbicq_s32): Likewise.
7799         (vbicq_s64): Likewise.
7800         (vbicq_u8): Likewise.
7801         (vbicq_u16): Likewise.
7802         (vbicq_u32): Likewise.
7803         (vbicq_u64): Likewise.
7804         (vorn_s8): Likewise.
7805         (vorn_s16): Likewise.
7806         (vorn_s32): Likewise.
7807         (vorn_u8): Likewise.
7808         (vorn_u16): Likewise.
7809         (vorn_u32): Likewise.
7810         (vorn_s64): Likewise.
7811         (vorn_u64): Likewise.
7812         (vornq_s8): Likewise.
7813         (vornq_s16): Likewise.
7814         (vornq_s32): Likewise.
7815         (vornq_s64): Likewise.
7816         (vornq_u8): Likewise.
7817         (vornq_u16): Likewise.
7818         (vornq_u32): Likewise.
7819         (vornq_u64): Likewise.
7820
7821 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7822
7823         * wide-int.cc (UTItype): Define.
7824         (UDWtype): Define for appropriate W_TYPE_SIZE.
7825
7826 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
7827
7828         PR tree-optimization/59100
7829         * tree-ssa-phiopt.c: Include tree-inline.h.
7830         (neutral_element_p, absorbing_element_p): New functions.
7831         (value_replacement): Handle conditional binary operations with a
7832         neutral or absorbing element.
7833
7834 2014-05-08  Richard Biener  <rguenther@suse.de>
7835
7836         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
7837         folding the expression.
7838         (valueize_expr): Remove.
7839         (visit_reference_op_load): Do not valueize the result of
7840         vn_get_expr_for.
7841         (simplify_binary_expression): Likewise.
7842         (simplify_unary_expression): Likewise.
7843
7844 2014-05-08  Richard Biener  <rguenther@suse.de>
7845
7846         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
7847         looking at TYPE_ARG_TYPES.
7848
7849 2014-05-08  Richard Biener  <rguenther@suse.de>
7850
7851         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
7852         pointer propagation special-case.
7853
7854 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
7855
7856         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
7857         core part of address expressions.
7858
7859 2014-05-08  Alan Modra  <amodra@gmail.com>
7860
7861         PR target/60737
7862         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
7863         loads and stores when -mno-strict-align at any alignment.
7864         (expand_block_clear): Similarly.  Also correct calculation of
7865         instruction count.
7866
7867 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7868
7869         PR middle-end/39246
7870         * tree-complex.c (expand_complex_move): Keep line info when expanding
7871         complex move.
7872         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
7873         of complex expression. Use new argument to display correct location
7874         for values coming from phi statement.
7875         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
7876         (warn_uninitialized_phi): Pass location of phi argument to
7877         warn_uninit.
7878         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
7879         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
7880
7881 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
7882
7883         * config/rs6000/predicates.md (indexed_address_mem): New.
7884         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
7885         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
7886         fpstore_ux, fpstore_u.
7887         (sign_extend, indexed, update): New.
7888         (cell_micro): Adjust.
7889         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
7890         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
7891         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
7892         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
7893         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
7894         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
7895         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
7896         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
7897         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
7898         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
7899         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
7900         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
7901         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
7902         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
7903         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
7904
7905         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
7906         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
7907         *vsx_extract_<mode>_store): Adjust.
7908         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
7909         is_cracked_insn, insn_must_be_first_in_group,
7910         insn_must_be_last_in_group): Adjust.
7911
7912         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
7913         Adjust.
7914         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
7915         ppc440-fpstore): Adjust.
7916         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
7917         ppc476-fpstore): Adjust.
7918         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
7919         ppc601-fpstore): Adjust.
7920         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
7921         Adjust.
7922         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
7923         Adjust.
7924         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
7925         ppc7450-fpstore): Adjust.
7926         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
7927         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
7928         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
7929         Adjust.
7930         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
7931         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
7932         cell-fpstore, cell-fpstore-update): Adjust.
7933         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
7934         ppce300c3_store, ppce300c3_fpstore): Adjust.
7935         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
7936         e500mc_fpstore): Adjust.
7937         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
7938         e500mc64_store, e500mc64_fpstore): Adjust.
7939         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
7940         e5500_fpstore): Adjust.
7941         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
7942         e6500_fpstore): Adjust.
7943         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
7944         Adjust.
7945         * config/rs6000/power4.md (power4-load, power4-load-ext,
7946         power4-load-ext-update, power4-load-ext-update-indexed,
7947         power4-load-update-indexed, power4-load-update, power4-fpload,
7948         power4-fpload-update, power4-store, power4-store-update,
7949         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
7950         Adjust.
7951         * config/rs6000/power5.md (power5-load, power5-load-ext,
7952         power5-load-ext-update, power5-load-ext-update-indexed,
7953         power5-load-update-indexed, power5-load-update, power5-fpload,
7954         power5-fpload-update, power5-store, power5-store-update,
7955         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
7956         Adjust.
7957         * config/rs6000/power6.md (power6-load, power6-load-ext,
7958         power6-load-update, power6-load-update-indexed,
7959         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
7960         power6-fpload-update, power6-store, power6-store-update,
7961         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
7962         Adjust.
7963         * config/rs6000/power7.md (power7-load, power7-load-ext,
7964         power7-load-update, power7-load-update-indexed,
7965         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
7966         power7-fpload-update, power7-store, power7-store-update,
7967         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
7968         Adjust.
7969         * config/rs6000/power8.md (power8-load, power8-load-update,
7970         power8-load-ext, power8-load-ext-update, power8-fpload,
7971         power8-fpload-update, power8-store, power8-store-update-indexed,
7972         power8-fpstore, power8-fpstore-update): Adjust.
7973         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
7974         Adjust.
7975         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
7976         titan_lsu_store, titan_lsu_fpstore): Adjust.
7977         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
7978
7979 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
7980
7981         PR target/60884
7982         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
7983         unrolled byte insns.  Emit address increments after move insns.
7984
7985 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
7986
7987         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
7988         const_gimple, rather than a gimple.
7989         (gimple_call_builtin_p): Likewise, for the three variants.
7990
7991         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
7992         (gimple_call_builtin_p): Likewise, for the three variants.
7993
7994 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7995
7996         PR tree-optimization/61095
7997         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
7998
7999 2014-05-07  Richard Biener  <rguenther@suse.de>
8000
8001         PR tree-optimization/61034
8002         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
8003         (maybe_skip_until): Use translate to take into account
8004         lattices when trying to do disambiguations.
8005         (get_continuation_for_phi_1): Likewise.
8006         (get_continuation_for_phi): Adjust for added translate arguments.
8007         (walk_non_aliased_vuses): Likewise.
8008         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
8009         (walk_non_aliased_vuses): Likewise.
8010         (call_may_clobber_ref_p_1): Declare.
8011         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
8012         calls.  Stop early if we are only supposed to disambiguate.
8013         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
8014
8015 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
8016
8017         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
8018         Emit an error when the function has arguments.
8019
8020 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
8021
8022         * cfgloop.h (unswitch_loops): Remove.
8023         * doc/passes.texi: Remove references to loop-unswitch.c
8024         * timevar.def (TV_LOOP_UNSWITCH): Remove.
8025
8026 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
8027
8028         * tree-vect-data-refs.c (vect_grouped_load_supported): New
8029         check for loads group of length 3.
8030         (vect_permute_load_chain): New permutations for loads group of
8031         length 3.
8032         * tree-vect-stmts.c (vect_model_load_cost): Change cost
8033         of vec_perm_shuffle for the new permutations.
8034
8035 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
8036
8037         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
8038         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
8039         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
8040         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
8041         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
8042         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
8043         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
8044         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
8045
8046 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
8047
8048         * loop-unswitch.c: Delete.
8049
8050 2014-05-07  Richard Biener  <rguenther@suse.de>
8051
8052         * config.gcc: Always set need_64bit_hwint to yes.
8053
8054 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
8055
8056         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
8057         of using optimize_size.
8058
8059 2014-05-06  Mike Stump  <mikestump@comcast.net>
8060
8061         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
8062
8063 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
8064
8065         * config/i386/sse.md (*mov<mode>_internal)
8066         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
8067         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
8068         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
8069         (*<code><mode>3, *andnot<mode>3<mask_name>)
8070         (<mask_codefor><code><mode>3<mask_name>): Only consider
8071         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
8072
8073 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
8074
8075         Revert:
8076         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
8077
8078         * lra-constraints.c (valid_address_p): Move earlier in file.
8079         Add a constraint argument to the address_info version.
8080         (satisfies_memory_constraint_p): New function.
8081         (satisfies_address_constraint_p): Likewise.
8082         (process_alt_operands, curr_insn_transform): Use them.
8083         (process_address): Pass the constraint to valid_address_p when
8084         checking address operands.
8085
8086 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
8087
8088         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
8089         to their respective blocks.  Fix inadvertent use of "node".
8090
8091 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
8092
8093         * emit-rtl.c (init_derived_machine_modes): New functionm, split
8094         out from...
8095         (init_emit_once): ...here.
8096         * rtl.h (init_derived_machine_modes): Declare.
8097         * toplev.c (do_compile): Call it even if no_backend.
8098
8099 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
8100             Mike Stump  <mikestump@comcast.net>
8101             Richard Sandiford  <rdsandiford@googlemail.com>
8102             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8103
8104         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
8105         (rtx_equal_for_memref_p): Update comment.
8106         (adjust_offset_for_component_ref): Use wide-int interfaces.
8107         * builtins.c (get_object_alignment_2): Likewise.
8108         (c_readstr): Likewise.
8109         (target_char_cast): Add comment.
8110         (determine_block_size): Use wide-int interfaces.
8111         (expand_builtin_signbit): Likewise.
8112         (fold_builtin_int_roundingfn): Likewise.
8113         (fold_builtin_bitop): Likewise.
8114         (fold_builtin_bswap): Likewise.
8115         (fold_builtin_logarithm): Use signop.
8116         (fold_builtin_pow): Likewise.
8117         (fold_builtin_memory_op): Use wide-int interfaces.
8118         (fold_builtin_object_size): Likewise.
8119         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
8120         nb_iterations_estimate.
8121         (record_niter_bound): Use wide-int interfaces.
8122         (get_estimated_loop_iterations_int): Likewise.
8123         (get_estimated_loop_iterations): Likewise.
8124         (get_max_loop_iterations): Likewise.
8125         * cfgloop.h: Include wide-int.h.
8126         (struct nb_iter_bound): Change bound to widest_int.
8127         (struct loop): Change nb_iterations_upper_bound and
8128         nb_iterations_estimate to widest_int.
8129         (record_niter_bound): Switch to use widest_int.
8130         (get_estimated_loop_iterations): Likewise.
8131         (get_max_loop_iterations): Likewise.
8132         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
8133         update for wide-int.
8134         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
8135         * combine.c (try_combine): Likewise.
8136         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
8137         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
8138         interfaces.
8139         (aarch64_float_const_representable_p): Likewise.
8140         * config/arc/arc.c: Include wide-int.h.
8141         (arc_can_use_doloop_p): Use wide-int interfaces.
8142         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
8143         (vfp3_const_double_index): Likewise.
8144         * config/avr/avr.c (avr_out_round): Likewise.
8145         (avr_fold_builtin): Likewise.
8146         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
8147         (bfin_can_use_doloop_p): Likewise.
8148         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
8149         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
8150         * config/i386/i386.c: Include wide-int.h.
8151         (ix86_data_alignment): Use wide-int interfaces.
8152         (ix86_local_alignment): Likewise.
8153         (ix86_emit_swsqrtsf): Update real_from_integer.
8154         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
8155         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
8156         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
8157         (zero_constant): Likewise.
8158         (input_operand): Likewise.
8159         (splat_input_operand): Likewise.
8160         (non_logical_cint_operand): Change const_double to const_wide_int.
8161         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
8162         (easy_altivec_constant): Remove comment.
8163         (paired_expand_vector_init): Use CONSTANT_P.
8164         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
8165         (rs6000_emit_move): Update checks.
8166         (rs6000_aggregate_candidate): Use wide-int interfaces.
8167         (rs6000_expand_ternop_builtin): Likewise.
8168         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
8169         (rs6000_assemble_integer): Likewise.
8170         (rs6000_hash_constant): Likewise.
8171         (output_toc): Likewise.
8172         (rs6000_rtx_costs): Likewise.
8173         (rs6000_emit_swrsqrt); Update call to real_from_integer.
8174         * config/rs6000/rs6000-c.c: Include wide-int.h.
8175         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
8176         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
8177         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
8178         Handle CONST_WIDE_INT.
8179         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
8180         Use tree_fits_uhwi_p.
8181         * config/sparc/sparc.c: Include wide-int.h.
8182         (sparc_fold_builtin): Use wide-int interfaces.
8183         * config/vax/vax.c: Include wide-int.h.
8184         (vax_float_literal): Use real_from_integer.
8185         * coretypes.h (struct hwivec_def): New.
8186         (hwivec): New.
8187         (const_hwivec): New.
8188         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
8189         (equiv_constant): Handle CONST_WIDE_INT.
8190         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
8191         (cselib_hash_rtx): Handle CONST_WIDE_INT.
8192         * dbxout.c (stabstr_U): Use wide-int interfaces.
8193         (dbxout_type): Update to use cst_fits_shwi_p.
8194         * defaults.h (LOG2_BITS_PER_UNIT): Define.
8195         (TARGET_SUPPORTS_WIDE_INT): Add default.
8196         * dfp.c: Include wide-int.h.
8197         (decimal_real_to_integer2): Use wide-int interfaces and rename to
8198         decimal_real_to_integer.
8199         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
8200         decimal_real_to_integer.
8201         * doc/generic.texi (Constant expressions): Update for wide_int.
8202         * doc/rtl.texi (const_double): Likewise.
8203         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
8204         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
8205         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
8206         (REAL_VALUE_FROM_INT): Remove.
8207         (TARGET_SUPPORTS_WIDE_INT): New.
8208         * doc/tm.texi: Regenerate.
8209         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
8210         * double-int.h: Include wide-int.h.
8211         (struct wi::int_traits): New.
8212         * dwarf2out.c (get_full_len): New.
8213         (dw_val_equal_p): Add case dw_val_class_wide_int.
8214         (size_of_loc_descr): Likewise.
8215         (output_loc_operands): Likewise.
8216         (insert_double): Remove.
8217         (insert_wide_int): New.
8218         (add_AT_wide): New.
8219         (print_die): Add case dw_val_class_wide_int.
8220         (attr_checksum): Likewise.
8221         (attr_checksum_ordered): Likewise.
8222         (same_dw_val_p): Likewise.
8223         (size_of_die): Likewise.
8224         (value_format): Likewise.
8225         (output_die): Likewise.
8226         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
8227         Use wide-int.
8228         (clz_loc_descriptor): Use wide-int interfaces.
8229         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
8230         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
8231         (round_up_to_align): Use wide-int interfaces.
8232         (field_byte_offset): Likewise.
8233         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
8234         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
8235         CONST_DOUBLE handling.  Use wide-int interfaces.
8236         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
8237         (gen_enumeration_type_die): Use add_AT_wide.
8238         (hash_loc_operands): Add case dw_val_class_wide_int.
8239         (compare_loc_operands): Likewise.
8240         * dwarf2out.h: Include wide-int.h.
8241         (wide_int_ptr): New.
8242         (enum dw_val_class): Add dw_val_class_wide_int.
8243         (struct dw_val_struct): Add val_wide.
8244         * emit-rtl.c (const_wide_int_htab): New.
8245         (const_wide_int_htab_hash): New.
8246         (const_wide_int_htab_eq): New.
8247         (lookup_const_wide_int): New.
8248         (const_double_htab_hash): Use wide-int interfaces.
8249         (const_double_htab_eq): Likewise.
8250         (rtx_to_double_int): Conditionally compile for wide-int.
8251         (immed_double_int_const): Rename to immed_wide_int_const and
8252         update for wide-int.
8253         (immed_double_const): Conditionally compile for wide-int.
8254         (init_emit_once): Use wide-int interfaces.
8255         * explow.c (plus_constant): Likewise.
8256         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
8257         (lshift_value): Use wide-int interfaces.
8258         (expand_mult): Likewise.
8259         (choose_multiplier): Likewise.
8260         (expand_smod_pow2): Likewise.
8261         (make_tree): Likewise.
8262         * expr.c (convert_modes): Consolidate handling of constants.
8263         Use wide-int interfaces.
8264         (emit_group_load_1): Add note.
8265         (store_expr): Update comment.
8266         (get_inner_reference): Use wide-int interfaces.
8267         (expand_constructor): Update comment.
8268         (expand_expr_real_2): Use wide-int interfaces.
8269         (expand_expr_real_1): Likewise.
8270         (reduce_to_bit_field_precision): Likewise.
8271         (const_vector_from_tree): Likewise.
8272         * final.c: Include wide-int-print.h.
8273         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
8274         * fixed-value.c: Include wide-int.h.
8275         (fixed_from_string): Use wide-int interfaces.
8276         (fixed_to_decimal): Likewise.
8277         (fixed_convert_from_real): Likewise.
8278         (real_convert_from_fixed): Likewise.
8279         * fold-const.h (mem_ref_offset): Return an offset_int.
8280         (div_if_zero_remainder): Remove code parameter.
8281         * fold-const.c (div_if_zero_remainder): Remove code parameter.
8282         Use wide-int interfaces.
8283         (may_negate_without_overflow_p): Use wide-int interfaces.
8284         (negate_expr_p): Likewise.
8285         (fold_negate_expr): Likewise.
8286         (int_const_binop_1): Likewise.
8287         (const_binop): Likewise.
8288         (fold_convert_const_int_from_int): Likewise.
8289         (fold_convert_const_int_from_real): Likewise.
8290         (fold_convert_const_int_from_fixed): Likewise.
8291         (fold_convert_const_fixed_from_int): Likewise.
8292         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
8293         (sign_bit_p): Use wide-int interfaces.
8294         (make_range_step): Likewise.
8295         (build_range_check): Likewise.  Pass an integer of the correct type
8296         instead of using integer_one_node.
8297         (range_predecessor): Pass an integer of the correct type instead
8298         of using integer_one_node.
8299         (range_successor): Likewise.
8300         (merge_ranges): Likewise.
8301         (unextend): Use wide-int interfaces.
8302         (extract_muldiv_1): Likewise.
8303         (fold_div_compare): Likewise.
8304         (fold_single_bit_test): Likewise.
8305         (fold_sign_changed_comparison): Likewise.
8306         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
8307         (fold_plusminus_mult_expr): Use wide-int interfaces.
8308         (native_encode_int): Likewise.
8309         (native_interpret_int): Likewise.
8310         (fold_unary_loc): Likewise.
8311         (pointer_may_wrap_p): Likewise.
8312         (size_low_cst): Likewise.
8313         (mask_with_tz): Likewise.
8314         (fold_binary_loc): Likewise.
8315         (fold_ternary_loc): Likewise.
8316         (multiple_of_p): Likewise.
8317         (tree_call_nonnegative_warnv_p): Update calls to
8318         tree_int_cst_min_precision and real_from_integer.
8319         (fold_negate_const): Use wide-int interfaces.
8320         (fold_abs_const): Likewise.
8321         (fold_relational_const): Use tree_int_cst_lt.
8322         (round_up_loc): Use wide-int interfaces.
8323         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
8324         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
8325         * gengtype.c: Remove include of double-int.h.
8326         (do_typedef): Use wide-int interfaces.
8327         (open_base_files): Add wide-int.h.
8328         (main): Add offset_int and widest_int typedefs.
8329         * gengtype-lex.l: Handle "^".
8330         (CXX_KEYWORD): Add "static".
8331         * gengtype-parse.c (require3): New.
8332         (require_template_declaration): Handle constant template arguments
8333         and nested templates.
8334         * gengtype-state.c: Don't include "double-int.h".
8335         * genpreds.c (write_one_predicate_function): Update comment.
8336         (write_tm_constrs_h): Add check for hval and lval use in
8337         CONST_WIDE_INT.
8338         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
8339         (add_to_sequence): Likewise.
8340         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
8341         and const_double_operand.
8342         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
8343         interfaces.
8344         * gimple-fold.c (get_base_constructor): Likewise.
8345         (fold_array_ctor_reference): Likewise.
8346         (fold_nonarray_ctor_reference): Likewise.
8347         (fold_const_aggregate_ref_1): Likewise.
8348         (gimple_val_nonnegative_real_p): Likewise.
8349         (gimple_fold_indirect_ref): Likewise.
8350         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
8351         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
8352         (struct slsr_cand_d): Change index to be widest_int.
8353         (struct incr_info_d): Change incr to be widest_int.
8354         (alloc_cand_and_find_basis): Use wide-int interfaces.
8355         (slsr_process_phi): Likewise.
8356         (backtrace_base_for_ref): Likewise.  Return a widest_int.
8357         (restructure_reference): Take a widest_int instead of a double_int.
8358         (slsr_process_ref): Use wide-int interfaces.
8359         (create_mul_ssa_cand): Likewise.
8360         (create_mul_imm_cand): Likewise.
8361         (create_add_ssa_cand): Likewise.
8362         (create_add_imm_cand): Take a widest_int instead of a double_int.
8363         (slsr_process_add): Use wide-int interfaces.
8364         (slsr_process_cast): Likewise.
8365         (slsr_process_copy): Likewise.
8366         (dump_candidate): Likewise.
8367         (dump_incr_vec): Likewise.
8368         (replace_ref): Likewise.
8369         (cand_increment): Likewise.  Return a widest_int.
8370         (cand_abs_increment): Likewise.
8371         (replace_mult_candidate): Take a widest_int instead of a double_int.
8372         (replace_unconditional_candidate): Use wide-int interfaces.
8373         (incr_vec_index): Take a widest_int instead of a double_int.
8374         (create_add_on_incoming_edge): Likewise.
8375         (create_phi_basis): Use wide-int interfaces.
8376         (replace_conditional_candidate): Likewise.
8377         (record_increment): Take a widest_int instead of a double_int.
8378         (record_phi_increments): Use wide-int interfaces.
8379         (phi_incr_cost): Take a widest_int instead of a double_int.
8380         (lowest_cost_path): Likewise.
8381         (total_savings): Likewise.
8382         (analyze_increments): Use wide-int interfaces.
8383         (ncd_with_phi): Take a widest_int instead of a double_int.
8384         (ncd_of_cand_and_phis): Likewise.
8385         (nearest_common_dominator_for_cands): Likewise.
8386         (insert_initializers): Use wide-int interfaces.
8387         (all_phi_incrs_profitable): Likewise.
8388         (replace_one_candidate): Likewise.
8389         (replace_profitable_candidates): Likewise.
8390         * godump.c: Include wide-int-print.h.
8391         (go_output_typedef): Use wide-int interfaces.
8392         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
8393         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
8394         (build_loop_iteration_domains): Likewise.
8395         * hooks.h: Include wide-int.h rather than double-int.h.
8396         (hook_bool_dint_dint_uint_bool_true): Delete.
8397         (hook_bool_wint_wint_uint_bool_true): Declare.
8398         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
8399         (hook_bool_wint_wint_uint_bool_true): New.
8400         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
8401         interfaces.
8402         (ubsan_expand_si_overflow_mul_check): Likewise.
8403         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
8404         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
8405         (get_ancestor_addr_info): Likewise.
8406         (ipa_modify_call_arguments): Likewise.
8407         * loop-doloop.c (doloop_modify): Likewise.
8408         (doloop_optimize): Likewise.
8409         * loop-iv.c (iv_number_of_iterations): Likewise.
8410         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
8411         (unroll_loop_constant_iterations): Likewise.
8412         (decide_unroll_runtime_iterations): Likewise.
8413         (unroll_loop_runtime_iterations): Likewise.
8414         (decide_peel_simple): Likewise.
8415         (decide_unroll_stupid): Likewise.
8416         * lto-streamer-in.c (streamer_read_wi): Add.
8417         (input_cfg): Use wide-int interfaces.
8418         (lto_input_tree_1): Likewise.
8419         * lto-streamer-out.c (streamer_write_wi): Add.
8420         (hash_tree): Use wide-int interfaces.
8421         (output_cfg): Likewise.
8422         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
8423         (GTFILES): Add wide-int.h and signop.h.
8424         (TAGS): Look for .cc files too.
8425         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
8426         * optabs.c (expand_subword_shift): Likewise.
8427         (expand_doubleword_shift): Likewise.
8428         (expand_absneg_bit): Likewise.
8429         (expand_copysign_absneg): Likewise.
8430         (expand_copysign_bit): Likewise.
8431         * postreload.c (reload_cse_simplify_set): Likewise.
8432         * predict.c (predict_iv_comparison): Likewise.
8433         * pretty-print.h: Include wide-int-print.h.
8434         (pp_wide_int) New.
8435         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
8436         * print-tree.c: Include wide-int-print.h.
8437         (print_node_brief): Use wide-int interfaces.
8438         (print_node): Likewise.
8439         * read-rtl.c (validate_const_wide_int): New.
8440         (read_rtx_code): Add CONST_WIDE_INT case.
8441         * real.c: Include wide-int.h.
8442         (real_to_integer2): Delete.
8443         (real_to_integer): New function, returning a wide_int.
8444         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
8445         (ten_to_ptwo): Update call to real_from_integer.
8446         (real_digit): Likewise.
8447         * real.h: Include signop.h, wide-int.h and insn-modes.h.
8448         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
8449         (REAL_VALUE_TO_INT): Delete.
8450         (real_to_integer): Declare a wide-int form.
8451         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
8452         * recog.c (const_int_operand): Improve comment.
8453         (const_scalar_int_operand): New.
8454         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
8455         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
8456         (split_double): Likewise.
8457         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
8458         (rtx_size): Likewise.
8459         (rtx_alloc_stat_v): New.
8460         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
8461         (cwi_output_hex): New.
8462         (iterative_hash_rtx): Handle CONST_WIDE_INT.
8463         (cwi_check_failed_bounds): New.
8464         * rtl.def (CONST_WIDE_INT): New.
8465         * rtl.h: Include <utility> and wide-int.h.
8466         (struct hwivec_def): New.
8467         (CWI_GET_NUM_ELEM): New.
8468         (CWI_PUT_NUM_ELEM): New.
8469         (struct rtx_def): Add num_elem and hwiv.
8470         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
8471         (CASE_CONST_UNIQUE): Likewise.
8472         (CASE_CONST_ANY): Likewise.
8473         (CONST_SCALAR_INT_P): Likewise.
8474         (CONST_WIDE_INT_P): New.
8475         (CWI_ELT): New.
8476         (HWIVEC_CHECK): New.
8477         (cwi_check_failed_bounds): New.
8478         (CWI_ELT): New.
8479         (HWIVEC_CHECK): New.
8480         (CONST_WIDE_INT_VEC) New.
8481         (CONST_WIDE_INT_NUNITS) New.
8482         (CONST_WIDE_INT_ELT) New.
8483         (rtx_mode_t): New type.
8484         (wi::int_traits <rtx_mode_t>): New.
8485         (wi::shwi): New.
8486         (wi::min_value): New.
8487         (wi::max_value): New.
8488         (rtx_alloc_v) New.
8489         (const_wide_int_alloc): New.
8490         (immed_wide_int_const): New.
8491         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
8492         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
8493         * signop.h: New file.
8494         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
8495         (simplify_const_unary_operation): Use wide-int interfaces.
8496         (simplify_binary_operation_1): Likewise.
8497         (simplify_const_binary_operation): Likewise.
8498         (simplify_const_relational_operation): Likewise.
8499         (simplify_immed_subreg): Likewise.
8500         * stmt.c (expand_case): Likewise.
8501         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
8502         signop rather than a bool.
8503         * stor-layout.c (layout_type): Use wide-int interfaces.
8504         (initialize_sizetypes): Update calls to
8505         set_min_and_max_values_for_integral_type.
8506         (set_min_and_max_values_for_integral_type): Take a signop rather
8507         than a bool.  Use wide-int interfaces.
8508         (fixup_signed_type): Update accordingly.  Remove
8509         HOST_BITS_PER_DOUBLE_INT limit.
8510         (fixup_unsigned_type): Likewise.
8511         * system.h (STATIC_CONSTANT_P): New.
8512         (STATIC_ASSERT): New.
8513         * target.def (can_use_doloop_p): Take widest_ints rather than
8514         double_ints.
8515         * target.h: Include wide-int.h rather than double-int.h.
8516         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
8517         than double_ints.
8518         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
8519         rather than INT_CST_LT_UNSIGNED.
8520         (can_use_doloop_if_innermost): Take widest_ints rather than
8521         double_ints.
8522         * tree-affine.c: Include wide-int-print.h.
8523         (double_int_ext_for_comb): Delete.
8524         (wide_int_ext_for_comb): New.
8525         (aff_combination_zero): Use wide-int interfaces.
8526         (aff_combination_const): Take a widest_int instead of a double_int.
8527         (aff_combination_elt): Use wide-int interfaces.
8528         (aff_combination_scale): Take a widest_int instead of a double_int.
8529         (aff_combination_add_elt): Likewise.
8530         (aff_combination_add_cst): Likewise.
8531         (aff_combination_add): Use wide-int interfaces.
8532         (aff_combination_convert): Likewise.
8533         (tree_to_aff_combination): Likewise.
8534         (add_elt_to_tree): Take a widest_int instead of a double_int.
8535         (aff_combination_to_tree): Use wide-int interfaces.
8536         (aff_combination_remove_elt): Likewise.
8537         (aff_combination_add_product): Take a widest_int instead of
8538         a double_int.
8539         (aff_combination_mult): Use wide-int interfaces.
8540         (aff_combination_expand): Likewise.
8541         (double_int_constant_multiple_p): Delete.
8542         (wide_int_constant_multiple_p): New.
8543         (aff_combination_constant_multiple_p): Take a widest_int pointer
8544         instead of a double_int pointer.
8545         (print_aff): Use wide-int interfaces.
8546         (get_inner_reference_aff): Take a widest_int pointer
8547         instead of a double_int pointer.
8548         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
8549         * tree-affine.h: Include wide-int.h.
8550         (struct aff_comb_elt): Change type of coef to widest_int.
8551         (struct affine_tree_combination): Change type of offset to widest_int.
8552         (double_int_ext_for_comb): Delete.
8553         (wide_int_ext_for_comb): New.
8554         (aff_combination_const): Use widest_int instead of double_int.
8555         (aff_combination_scale): Likewise.
8556         (aff_combination_add_elt): Likewise.
8557         (aff_combination_constant_multiple_p): Likewise.
8558         (get_inner_reference_aff): Likewise.
8559         (aff_comb_cannot_overlap_p): Likewise.
8560         (aff_combination_zero_p): Use wide-int interfaces.
8561         * tree.c: Include tree.h.
8562         (init_ttree): Use make_int_cst.
8563         (tree_code_size): Removed code for INTEGER_CST case.
8564         (tree_size): Add INTEGER_CST case.
8565         (make_node_stat): Update comment.
8566         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
8567         (build_int_cst_type): Use wide-int interfaces.
8568         (double_int_to_tree): Likewise.
8569         (double_int_fits_to_tree_p): Delete.
8570         (force_fit_type_double): Delete.
8571         (force_fit_type): New.
8572         (int_cst_hash_hash): Use wide-int interfaces.
8573         (int_cst_hash_eq): Likewise.
8574         (build_int_cst_wide): Delete.
8575         (wide_int_to_tree): New.
8576         (cache_integer_cst): Use wide-int interfaces.
8577         (build_low_bits_mask): Likewise.
8578         (cst_and_fits_in_hwi): Likewise.
8579         (real_value_from_int_cst): Likewise.
8580         (make_int_cst_stat): New.
8581         (integer_zerop): Use wide_int interfaces.
8582         (integer_onep): Likewise.
8583         (integer_all_onesp): Likewise.
8584         (integer_pow2p): Likewise.
8585         (integer_nonzerop): Likewise.
8586         (tree_log2): Likewise.
8587         (tree_floor_log2): Likewise.
8588         (tree_ctz): Likewise.
8589         (int_size_in_bytes): Likewise.
8590         (mem_ref_offset): Return an offset_int rather than a double_int.
8591         (build_type_attribute_qual_variant): Use wide_int interfaces.
8592         (type_hash_eq): Likewise
8593         (tree_int_cst_equal): Likewise.
8594         (tree_int_cst_lt): Delete.
8595         (tree_int_cst_compare): Likewise.
8596         (tree_fits_shwi_p): Use wide_int interfaces.
8597         (tree_fits_uhwi_p): Likewise.
8598         (tree_int_cst_sign_bit): Likewise.
8599         (tree_int_cst_sgn): Likewise.
8600         (tree_int_cst_min_precision): Take a signop rather than a bool.
8601         (simple_cst_equal): Use wide_int interfaces.
8602         (compare_tree_int): Likewise.
8603         (iterative_hash_expr): Likewise.
8604         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
8605         INT_CST_LT.
8606         (get_type_static_bounds): Use wide_int interfaces.
8607         (tree_int_cst_elt_check_failed): New.
8608         (build_common_tree_nodes): Reordered to set prec before filling in
8609         value.
8610         (int_cst_value): Check cst_and_fits_in_hwi.
8611         (widest_int_cst_value): Use wide_int interfaces.
8612         (upper_bound_in_type): Likewise.
8613         (lower_bound_in_type): Likewise.
8614         (num_ending_zeros): Likewise.
8615         (drop_tree_overflow): Likewise.
8616         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
8617         (gen_conditions_for_pow_cst_base): Likewise.
8618         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
8619         (group_case_labels_stmt): Use wide-int interfaces.
8620         (verify_gimple_assign_binary): Likewise.
8621         (print_loop): Likewise.
8622         * tree-chrec.c (tree_fold_binomial): Likewise.
8623         * tree-core.h (struct tree_base): Add int_length.
8624         (struct tree_int_cst): Change rep of value.
8625         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
8626         (dr_may_alias_p): Likewise.
8627         (max_stmt_executions_tree): Likewise.
8628         * tree.def (INTEGER_CST): Update comment.
8629         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
8630         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
8631         * tree-dump.c: Include wide-int.h and wide-int-print.h.
8632         (dequeue_and_dump): Use wide-int interfaces.
8633         * tree.h: Include wide-int.h.
8634         (NULL_TREE): Moved to earlier loc in file.
8635         (TREE_INT_CST_ELT_CHECK): New.
8636         (tree_int_cst_elt_check_failed): New.
8637         (TYPE_SIGN): New.
8638         (TREE_INT_CST): Delete.
8639         (TREE_INT_CST_LOW): Use wide-int interfaces.
8640         (TREE_INT_CST_HIGH): Delete.
8641         (TREE_INT_CST_NUNITS): New.
8642         (TREE_INT_CST_EXT_NUNITS): Likewise.
8643         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
8644         (TREE_INT_CST_ELT): Likewise.
8645         (INT_CST_LT): Delete.
8646         (tree_int_cst_elt_check): New (two forms).
8647         (type_code_size): Update comment.
8648         (make_int_cst_stat, make_int_cst): New.
8649         (tree_to_double_int): Delete.
8650         (double_int_fits_to_tree_p): Delete.
8651         (force_fit_type_double): Delete.
8652         (build_int_cstu): Replace with out-of-line function.
8653         (build_int_cst_wide): Delete.
8654         (tree_int_cst_lt): Define inline.
8655         (tree_int_cst_le): New.
8656         (tree_int_cst_compare): Define inline.
8657         (tree_int_cst_min_precision): Take a signop rather than a bool.
8658         (wi::int_traits <const_tree>): New.
8659         (wi::int_traits <tree>): New.
8660         (wi::extended_tree): New.
8661         (wi::int_traits <wi::extended_tree>): New.
8662         (wi::to_widest): New.
8663         (wi::to_offset): New.
8664         (wi::fits_to_tree_p): New.
8665         (wi::min_value): New.
8666         (wi::max_value): New.
8667         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
8668         (copy_tree_body_r): Likewise.
8669         * tree-object-size.c (compute_object_offset): Likewise.
8670         (addr_object_size): Likewise.
8671         * tree-predcom.c: Include wide-int-print.h.
8672         (struct dref_d): Change type of offset to widest_int.
8673         (dump_dref): Call wide-int printer.
8674         (aff_combination_dr_offset): Use wide-int interfaces.
8675         (determine_offset): Take a widest_int pointer rather than a
8676         double_int pointer.
8677         (split_data_refs_to_components): Use wide-int interfaces.
8678         (suitable_component_p): Likewise.
8679         (order_drefs): Likewise.
8680         (add_ref_to_chain): Likewise.
8681         (valid_initializer_p): Likewise.
8682         (determine_roots_comp): Likewise.
8683         * tree-pretty-print.c: Include wide-int-print.h.
8684         (dump_generic_node): Use wide-int interfaces.
8685         * tree-sra.c (sra_ipa_modify_expr): Likewise.
8686         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
8687         (move_fixed_address_to_symbol): Likewise.
8688         (move_hint_to_base): Likewise.
8689         (move_pointer_to_base): Likewise.
8690         (move_variant_to_index): Likewise.
8691         (most_expensive_mult_to_index): Likewise.
8692         (addr_to_parts): Likewise.
8693         (copy_ref_info): Likewise.
8694         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
8695         (indirect_refs_may_alias_p): Likewise.
8696         (stmt_kills_ref_p_1): Likewise.
8697         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
8698         * tree-ssa-ccp.c: Update comment at top of file.  Include
8699         wide-int-print.h.
8700         (struct prop_value_d): Change type of mask to widest_int.
8701         (extend_mask): New function.
8702         (dump_lattice_value): Use wide-int interfaces.
8703         (get_default_value): Likewise.
8704         (set_constant_value): Likewise.
8705         (set_value_varying): Likewise.
8706         (valid_lattice_transition): Likewise.
8707         (set_lattice_value): Likewise.
8708         (value_to_double_int): Delete.
8709         (value_to_wide_int): New.
8710         (get_value_from_alignment): Use wide-int interfaces.
8711         (get_value_for_expr): Likewise.
8712         (do_dbg_cnt): Likewise.
8713         (ccp_finalize): Likewise.
8714         (ccp_lattice_meet): Likewise.
8715         (bit_value_unop_1): Use widest_ints rather than double_ints.
8716         (bit_value_binop_1): Likewise.
8717         (bit_value_unop): Use wide-int interfaces.
8718         (bit_value_binop): Likewise.
8719         (bit_value_assume_aligned): Likewise.
8720         (evaluate_stmt): Likewise.
8721         (ccp_fold_stmt): Likewise.
8722         (visit_cond_stmt): Likewise.
8723         (ccp_visit_stmt): Likewise.
8724         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8725         (constant_pointer_difference): Likewise.
8726         (associate_pointerplus): Likewise.
8727         (combine_conversions): Likewise.
8728         * tree-ssa-loop.h: Include wide-int.h.
8729         (struct tree_niter_desc): Change type of max to widest_int.
8730         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
8731         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
8732         (remove_redundant_iv_tests): Likewise.
8733         (canonicalize_loop_induction_variables): Likewise.
8734         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
8735         (constant_multiple_of): Take a widest_int pointer instead of
8736         a double_int pointer.
8737         (get_computation_aff): Use wide-int interfaces.
8738         (ptr_difference_cost): Likewise.
8739         (difference_cost): Likewise.
8740         (get_loop_invariant_expr_id): Likewise.
8741         (get_computation_cost_at): Likewise.
8742         (iv_elimination_compare_lt): Likewise.
8743         (may_eliminate_iv): Likewise.
8744         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
8745         instead of double_int.
8746         (max_loop_iterations): Likewise.
8747         (max_stmt_executions): Likewise.
8748         (estimated_stmt_executions): Likewise.
8749         * tree-ssa-loop-niter.c: Include wide-int-print.h.
8750         (split_to_var_and_offset): Use wide-int interfaces.
8751         (determine_value_range): Likewise.
8752         (bound_difference_of_offsetted_base): Likewise.
8753         (bounds_add): Take a widest_int instead of a double_int.
8754         (number_of_iterations_ne_max): Use wide-int interfaces.
8755         (number_of_iterations_ne): Likewise.
8756         (number_of_iterations_lt_to_ne): Likewise.
8757         (assert_loop_rolls_lt): Likewise.
8758         (number_of_iterations_lt): Likewise.
8759         (number_of_iterations_le): Likewise.
8760         (number_of_iterations_cond): Likewise.
8761         (number_of_iterations_exit): Likewise.
8762         (finite_loop_p): Likewise.
8763         (derive_constant_upper_bound_assign): Likewise.
8764         (derive_constant_upper_bound): Return a widest_int.
8765         (derive_constant_upper_bound_ops): Likewise.
8766         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
8767         (record_estimate): Take a widest_int rather than a double_int.
8768         (record_nonwrapping_iv): Use wide-int interfaces.
8769         (double_int_cmp): Delete.
8770         (wide_int_cmp): New.
8771         (bound_index): Take a widest_int rather than a double_int.
8772         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
8773         (maybe_lower_iteration_bound): Likewise.
8774         (estimate_numbers_of_iterations_loop): Likewise.
8775         (estimated_loop_iterations): Take a widest_int pointer than than
8776         a double_int pointer.
8777         (estimated_loop_iterations_int): Use wide-int interfaces.
8778         (max_loop_iterations): Take a widest_int pointer than than
8779         a double_int pointer.
8780         (max_loop_iterations_int): Use wide-int interfaces.
8781         (max_stmt_executions): Take a widest_int pointer than than
8782         a double_int pointer.
8783         (estimated_stmt_executions): Likewise.
8784         (n_of_executions_at_most): Use wide-int interfaces.
8785         (scev_probably_wraps_p): Likewise.
8786         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
8787         to real_to_integer.
8788         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
8789         interfaces.
8790         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
8791         double_ints.  Adjust for trailing_wide_ints <3> representation.
8792         (set_nonzero_bits): Likewise.
8793         (get_range_info): Return wide_ints rather than double_ints.
8794         Adjust for trailing_wide_ints <3> representation.
8795         (get_nonzero_bits): Likewise.
8796         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
8797         representation.
8798         * tree-ssanames.h (struct range_info_def): Replace min, max and
8799         nonzero_bits with a trailing_wide_ints <3>.
8800         (set_range_info): Use wide_int_refs rather than double_ints.
8801         (set_nonzero_bits): Likewise.
8802         (get_range_info): Return wide_ints rather than double_ints.
8803         (get_nonzero_bits): Likewise.
8804         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
8805         * tree-ssa-pre.c (phi_translate_1): Likewise.
8806         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
8807         (acceptable_pow_call): Likewise.
8808         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
8809         interfaces.
8810         (vn_reference_fold_indirect): Likewise.
8811         (vn_reference_maybe_forwprop_address): Likewise.
8812         (valueize_refs_1): Likewise.
8813         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
8814         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
8815         tree_int_cst_lt and tree_int_cst_le.
8816         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
8817         interfaces.
8818         (streamer_alloc_tree): Likewise.
8819         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
8820         (streamer_write_tree_header): Likewise.
8821         (streamer_write_integer_cst): Likewise.
8822         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
8823         (build_constructors): Likewise.
8824         (array_value_type): Likewise.
8825         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
8826         (vect_check_gather): Likewise.
8827         * tree-vect-generic.c (build_replicated_const): Likewise.
8828         (expand_vector_divmod): Likewise.
8829         * tree-vect-loop.c (vect_transform_loop): Likewise.
8830         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
8831         (vect_do_peeling_for_alignment): Likewise.
8832         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
8833         * tree-vrp.c: Include wide-int.h.
8834         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
8835         (extract_range_from_assert): Use wide-int interfaces.
8836         (vrp_int_const_binop): Likewise.
8837         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
8838         double_int pointers.
8839         (ranges_from_anti_range): Use wide-int interfaces.
8840         (quad_int_cmp): Delete.
8841         (quad_int_pair_sort): Likewise.
8842         (extract_range_from_binary_expr_1): Use wide-int interfaces.
8843         (extract_range_from_unary_expr_1): Likewise.
8844         (adjust_range_with_scev): Likewise.
8845         (masked_increment): Take and return wide_ints rather than double_ints.
8846         (register_edge_assert_for_2): Use wide-int interfaces.
8847         (check_array_ref): Likewise.
8848         (search_for_addr_array): Likewise.
8849         (maybe_set_nonzero_bits): Likewise.
8850         (union_ranges): Pass an integer of the correct type instead of
8851         using integer_one_node.
8852         (intersect_ranges): Likewise.
8853         (simplify_truth_ops_using_ranges): Likewise.
8854         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
8855         (range_fits_type_p): Likewise.
8856         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
8857         a bool.
8858         (simplify_conversion_using_ranges): Use wide-int interfaces.
8859         (simplify_float_conversion_using_ranges): Likewise.
8860         (vrp_finalize): Likewise.
8861         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
8862         (gimple_stringops_transform): Likewise.
8863         * varasm.c (decode_addr_const): Likewise.
8864         (const_hash_1): Likewise.
8865         (const_rtx_hash_1): Likewise
8866         (output_constant): Likewise.
8867         (array_size_for_constructor): Likewise.
8868         (output_constructor_regular_field): Likewise.
8869         (output_constructor_bitfield): Likewise.
8870         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
8871         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
8872         GENERATOR_FILEs.
8873         * gencheck.c: Define BITS_PER_UNIT.
8874         * wide-int.cc: New.
8875         * wide-int.h: New.
8876         * wide-int-print.cc: New.
8877         * wide-int-print.h: New.
8878
8879 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8880
8881         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
8882
8883 2014-05-06  Richard Biener  <rguenther@suse.de>
8884
8885         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
8886         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
8887         (TODO_verify_all): Adjust.
8888         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
8889         TODO_verify_stmts and TODO_verify_rtl_sharing.
8890         * bb-reorder.c: Likewise.
8891         * cfgexpand.c: Likewise.
8892         * cprop.c: Likewise.
8893         * cse.c: Likewise.
8894         * function.c: Likewise.
8895         * fwprop.c: Likewise.
8896         * gcse.c: Likewise.
8897         * gimple-ssa-isolate-paths.c: Likewise.
8898         * gimple-ssa-strength-reduction.c: Likewise.
8899         * ipa-split.c: Likewise.
8900         * loop-init.c: Likewise.
8901         * loop-unroll.c: Likewise.
8902         * lower-subreg.c: Likewise.
8903         * modulo-sched.c: Likewise.
8904         * postreload-gcse.c: Likewise.
8905         * predict.c: Likewise.
8906         * recog.c: Likewise.
8907         * sched-rgn.c: Likewise.
8908         * store-motion.c: Likewise.
8909         * tracer.c: Likewise.
8910         * trans-mem.c: Likewise.
8911         * tree-call-cdce.c: Likewise.
8912         * tree-cfg.c: Likewise.
8913         * tree-cfgcleanup.c: Likewise.
8914         * tree-complex.c: Likewise.
8915         * tree-eh.c: Likewise.
8916         * tree-emutls.c: Likewise.
8917         * tree-if-conv.c: Likewise.
8918         * tree-into-ssa.c: Likewise.
8919         * tree-loop-distribution.c: Likewise.
8920         * tree-object-size.c: Likewise.
8921         * tree-parloops.c: Likewise.
8922         * tree-pass.h: Likewise.
8923         * tree-sra.c: Likewise.
8924         * tree-ssa-ccp.c: Likewise.
8925         * tree-ssa-copy.c: Likewise.
8926         * tree-ssa-copyrename.c: Likewise.
8927         * tree-ssa-dce.c: Likewise.
8928         * tree-ssa-dom.c: Likewise.
8929         * tree-ssa-dse.c: Likewise.
8930         * tree-ssa-forwprop.c: Likewise.
8931         * tree-ssa-ifcombine.c: Likewise.
8932         * tree-ssa-loop-ch.c: Likewise.
8933         * tree-ssa-loop-ivcanon.c: Likewise.
8934         * tree-ssa-loop.c: Likewise.
8935         * tree-ssa-math-opts.c: Likewise.
8936         * tree-ssa-phiopt.c: Likewise.
8937         * tree-ssa-phiprop.c: Likewise.
8938         * tree-ssa-pre.c: Likewise.
8939         * tree-ssa-reassoc.c: Likewise.
8940         * tree-ssa-sink.c: Likewise.
8941         * tree-ssa-strlen.c: Likewise.
8942         * tree-ssa-tail-merge.c: Likewise.
8943         * tree-ssa-uncprop.c: Likewise.
8944         * tree-switch-conversion.c: Likewise.
8945         * tree-tailcall.c: Likewise.
8946         * tree-vect-generic.c: Likewise.
8947         * tree-vectorizer.c: Likewise.
8948         * tree-vrp.c: Likewise.
8949         * tsan.c: Likewise.
8950         * var-tracking.c: Likewise.
8951         * bt-load.c: Likewise.
8952         * cfgcleanup.c: Likewise.
8953         * combine-stack-adj.c: Likewise.
8954         * combine.c: Likewise.
8955         * compare-elim.c: Likewise.
8956         * config/epiphany/resolve-sw-modes.c: Likewise.
8957         * config/i386/i386.c: Likewise.
8958         * config/mips/mips.c: Likewise.
8959         * config/s390/s390.c: Likewise.
8960         * config/sh/sh_treg_combine.cc: Likewise.
8961         * config/sparc/sparc.c: Likewise.
8962         * dce.c: Likewise.
8963         * dse.c: Likewise.
8964         * final.c: Likewise.
8965         * ifcvt.c: Likewise.
8966         * mode-switching.c: Likewise.
8967         * passes.c: Likewise.
8968         * postreload.c: Likewise.
8969         * ree.c: Likewise.
8970         * reg-stack.c: Likewise.
8971         * regcprop.c: Likewise.
8972         * regrename.c: Likewise.
8973         * web.c: Likewise.
8974
8975 2014-05-06  Richard Biener  <rguenther@suse.de>
8976
8977         PR middle-end/61070
8978         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
8979         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
8980
8981 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
8982
8983         PR ipa/60965
8984         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
8985
8986 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
8987             Tom de Vries  <tom@codesourcery.com>
8988
8989         * target.def (call_fusage_contains_non_callee_clobbers): New
8990         DEFHOOKPOD.
8991         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
8992         Hooks to @menu.
8993         (@node Miscellaneous Register Hooks): New node.
8994         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
8995         * doc/tm.texi: Regenerate.
8996
8997 2014-05-05  Marek Polacek  <polacek@redhat.com>
8998
8999         PR driver/61065
9000         * opts.c (common_handle_option): Call error_at instead of warning_at.
9001
9002 2014-05-05  Richard Biener  <rguenther@suse.de>
9003
9004         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
9005         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
9006         under the TODO_verify_il umbrella.
9007
9008 2014-05-05  Richard Biener  <rguenther@suse.de>
9009
9010         * passes.c (execute_function_todo): Move TODO_verify_flow under
9011         the TODO_verify_ul umbrella.
9012
9013 2014-05-05  Richard Biener  <rguenther@suse.de>
9014
9015         PR middle-end/61010
9016         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
9017         X & CST away from a CST that is the mask of a mode.
9018
9019 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9020
9021         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
9022         int argument to enum machine_mode.
9023         (picochip_class_max_nregs): Ditto.
9024         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
9025         (picochip_class_max_nregs): Ditto.
9026
9027 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9028
9029         * target.def: Add new target hook.
9030         * doc/tm.texi: Regenerate.
9031         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
9032         * targhooks.c (default_keep_leaf_when_profiled): New function.
9033
9034         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
9035         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
9036
9037 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
9038
9039         PR tree-optimization/60363
9040         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
9041         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
9042         (update_destination_phis): New parameter.
9043         (create_edge_and_update_destination_phis): Ditto.
9044         (ssa_fix_duplicate_block_edges): Pass new arguments.
9045         (thread_single_edge): Ditto.
9046
9047 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
9048
9049         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
9050         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
9051         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
9052         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
9053         Use RS6000_BTM_HARD_FLOAT.
9054         (BU_MISC_2): Likewise.
9055         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
9056         RS6000_BTM_HARD_FLOAT.
9057         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
9058         is explicitly used.
9059         (rs6000_invalid_builtin): Add hard floating builtin support.
9060         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
9061         hard float builtins.
9062         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
9063
9064 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
9065
9066         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
9067         Add missing function* argument.
9068
9069 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
9070
9071         * lra-constraints.c (valid_address_p): Move earlier in file.
9072         Add a constraint argument to the address_info version.
9073         (satisfies_memory_constraint_p): New function.
9074         (satisfies_address_constraint_p): Likewise.
9075         (process_alt_operands, curr_insn_transform): Use them.
9076         (process_address): Pass the constraint to valid_address_p when
9077         checking address operands.
9078
9079 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
9080
9081         * config/mips/mips.c (mips_isa_rev): New variable.
9082         (mips_set_architecture): Set it.
9083         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
9084         from mips_isa_rev.
9085         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
9086         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
9087         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
9088         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
9089         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
9090         conditions in terms of mips_isa_rev.
9091         (mips_isa_rev): Declare.
9092
9093 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
9094
9095         * config/sh/sh-mem.cc: Use tabs instead of spaces.
9096         (prob_unlikely, prob_likely): Make variables const.
9097
9098 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
9099
9100         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
9101
9102 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
9103
9104         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
9105
9106 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
9107
9108         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
9109         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
9110         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
9111         functions.
9112         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
9113         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
9114         sh_pass_in_reg_p.
9115         Replace usage of ROUND_REG with sh_round_reg.
9116         Use CEIL instead of ROUND_ADVANCE.
9117
9118 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
9119
9120         PR target/61026
9121         * config/sh/sh.c: Include stdlib headers before everything else.
9122
9123 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
9124
9125         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
9126         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
9127         (gimplify_adjust_omp_clauses): Simd region is never
9128         directly nested in combined parallel.  Instead, for linear
9129         with copyin/copyout, if in combined for simd loop, make decl
9130         firstprivate/lastprivate on OMP_FOR.
9131         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
9132         expand_omp_for_static_chunk): When setting endvar, also set
9133         fd->loop.v to the same value.
9134
9135 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
9136
9137         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
9138
9139 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
9140
9141         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
9142         expression.
9143
9144 2014-05-02  Marek Polacek  <polacek@redhat.com>
9145
9146         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
9147
9148 2014-05-02  Kito Cheng  <kito@0xlab.org>
9149
9150         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
9151         to a C expression marco.
9152         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
9153         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
9154         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
9155         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
9156         HONOR_REG_ALLOC_ORDER.
9157         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
9158
9159 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9160
9161         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
9162
9163 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9164
9165         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
9166
9167 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
9168
9169         * tree-if-conv.c (is_cond_scalar_reduction): New function.
9170         (convert_scalar_cond_reduction): Likewise.
9171         (predicate_scalar_phi): Add recognition and transformation
9172         of simple conditioanl reduction to be vectorizable.
9173
9174 2014-05-01  Marek Polacek  <polacek@redhat.com>
9175
9176         PR c/43245
9177         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
9178
9179 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
9180
9181         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
9182         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
9183         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
9184         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
9185         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
9186         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
9187         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
9188         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
9189
9190 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
9191
9192         * config/arc/arc.opt (mlra): Move comment above option name
9193         to avoid mis-parsing as language options.
9194
9195 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9196
9197         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
9198         * config/sol2.h: ... here.
9199         * config/sol2-10.h: Remove.
9200
9201         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
9202         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
9203         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
9204         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
9205         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
9206         * config/sol2.h: ... here.
9207         (SECTION_NAME_FORMAT): Don't redefine.
9208         (STARTFILE_ARCH32_SPEC): Rename to ...
9209         (STARTFILE_ARCH_SPEC): ... this.
9210         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
9211         * config/sparc/sol2.h: ... here.
9212         (SECTION_NAME_FORMAT): Don't undef.
9213         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
9214         (SUBTARGET_EXTRA_SPECS): Remove.
9215         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
9216
9217         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
9218         (MD_STARTFILE_PREFIX): Remove.
9219         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
9220         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
9221         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
9222         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
9223         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
9224         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
9225         * config/i386/sol2.h: ... here.
9226         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
9227         * config/i386/sol2-bi.h: Remove.
9228         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
9229         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
9230
9231         * config/i386/t-sol2-64: Rename to ...
9232         * config/i386/t-sol2: ... this.
9233         * config/sparc/t-sol2-64: Rename to ...
9234         * config/sparc/t-sol2: ... this.
9235
9236         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
9237         sol2_tm_file_head, sol2_tm_file_tail.
9238         Include ${cpu_type}/sol2.h before sol2.h.
9239         Remove sol2-10.h.
9240         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
9241         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
9242         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
9243         Reflect i386/t-sol2-64 renaming.
9244         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
9245         Reflect sparc/t-sol2-64 renaming.
9246
9247 2014-04-30  Richard Biener  <rguenther@suse.de>
9248
9249         * passes.c (execute_function_todo): Move TODO_verify_stmts
9250         and TODO_verify_ssa under the TODO_verify_il umbrella.
9251         * tree-ssa.h (verify_ssa): Adjust prototype.
9252         * tree-ssa.c (verify_ssa): Add parameter to tell whether
9253         we should verify SSA operands.
9254         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
9255         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
9256         whether we should verify whether not throwing stmts have EH info.
9257         * graphite-scop-detection.c (create_sese_edges): Adjust.
9258         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
9259         * tree-eh.c (lower_try_finally_switch): Do not add the
9260         default case label twice.
9261
9262 2014-04-30  Marek Polacek  <polacek@redhat.com>
9263
9264         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
9265         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
9266         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
9267         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
9268
9269 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
9270
9271         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
9272         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
9273         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
9274         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
9275         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
9276         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
9277         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
9278         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
9279
9280 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
9281
9282         * tree-cfg.c (dump_function_to_file): Dump the return type of
9283         functions, in a line to itself before the function body, mimicking
9284         the layout of a C function.
9285
9286 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
9287
9288         PR tree-optimization/60971
9289         * tree-tailcall.c (process_assignment): Reject conversions which
9290         reduce precision.
9291
9292 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
9293
9294         * calls.c (initialize_argument_information): Always treat
9295         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
9296         (expand_call): Likewise.
9297         (emit_library_call_calue_1): Likewise.
9298         * expr.c (PUSH_ARGS_REVERSED): Do not define.
9299         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
9300         code accordingly.
9301
9302 2014-04-29  Nick Clifton  <nickc@redhat.com>
9303
9304         * config/msp430/msp430.md (umulsidi): Fix typo.
9305         (mulhisi3): Enable even inside interrupt handlers.
9306         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
9307         bigger return address pushed in large mode.
9308
9309 2014-04-29  Nick Clifton  <nickc@redhat.com>
9310
9311         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
9312         (arc_init_reg_tables): Use a machine_mode enum to iterate over
9313         available modes.
9314         * config/m32r/m32r.c (init_reg_tables): Likewise.
9315         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
9316         enum to hold the modes.
9317
9318 2014-04-29  Richard Biener  <rguenther@suse.de>
9319
9320         * dominance.c (free_dominance_info): Add overload with
9321         function parameter.
9322         (dom_info_state): Likewise.
9323         (dom_info_available_p): Likewise.
9324         * basic-block.h (free_dominance_info, dom_info_state,
9325         dom_info_available_p): Declare overloads.
9326         * passes.c (execute_function_todo): Verify that verifiers
9327         don't change dominator info state.  Drop dominator info
9328         for IPA pass invocations.
9329         * cgraph.c (release_function_body): Restore asserts that
9330         dominator information is released.
9331
9332 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
9333
9334         * doc/invoke.texi: Fix typo.
9335         * tree-vrp.c: Fix typos.
9336         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
9337
9338 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
9339
9340         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
9341
9342 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
9343
9344         * config/aarch64/aarch64-builtins.c
9345         (aarch64_types_storestruct_lane_qualifiers): New.
9346         (TYPES_STORESTRUCT_LANE): Likewise.
9347         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
9348         (st3_lane): Likewise.
9349         (st4_lane): Likewise.
9350         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
9351         (vec_store_lanesci_lane<mode>): Likewise.
9352         (vec_store_lanesxi_lane<mode>): Likewise.
9353         (aarch64_st2_lane<VQ:mode>): Likewise.
9354         (aarch64_st3_lane<VQ:mode>): Likewise.
9355         (aarch64_st4_lane<VQ:mode>): Likewise.
9356         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
9357         * config/aarch64/arm_neon.h
9358         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
9359         use new macro arguments.
9360         (__ST3_LANE_FUNC): Likewise.
9361         (__ST4_LANE_FUNC): Likewise.
9362         * config/aarch64/iterators.md (V_TWO_ELEM): New.
9363         (V_THREE_ELEM): Likewise.
9364         (V_FOUR_ELEM): Likewise.
9365
9366 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
9367
9368         * doc/gimple.texi: Replace the description of the now-defunct
9369         union gimple_statement_d with a diagram showing the
9370         gimple_statement_base class hierarchy and its relationships to
9371         the GSS_ and GIMPLE_ enums.
9372
9373 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
9374
9375         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
9376         * config/aarch64/aarch64.c
9377         (aarch64_cannot_change_mode_class): Weaken conditions.
9378         (aarch64_modes_tieable_p): New.
9379         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
9380
9381 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
9382
9383         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
9384         (loadsync_<mode>): Change mode.
9385         (load_quadpti, store_quadpti): New.
9386         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
9387         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
9388
9389 2014-04-28  Martin Jambor  <mjambor@suse.cz>
9390
9391         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
9392         same alias type as the original statement.
9393         (subreplacement_assignment_data): New type.
9394         (handle_unscalarized_data_in_subtree): New type of parameter,
9395         generate new memory accesses with same alias type as the original
9396         statement.
9397         (load_assign_lhs_subreplacements): Likewise.
9398         (sra_modify_constructor_assign): Generate new memory accesses with
9399         same alias type as the original statement.
9400
9401 2014-04-28  Richard Biener  <rguenther@suse.de>
9402
9403         * tree-pass.h (TODO_verify_il): Define.
9404         (TODO_verify_all): Complete properly.
9405         * passes.c (execute_function_todo): Move existing loop-closed
9406         SSA verification under TODO_verify_il.
9407         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
9408         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
9409         Fix tree sharing issue.
9410
9411 2014-04-28  Richard Biener  <rguenther@suse.de>
9412
9413         PR middle-end/60092
9414         * builtins.def (DEF_C11_BUILTIN): Add.
9415         (BUILT_IN_ALIGNED_ALLOC): Likewise.
9416         * coretypes.h (enum function_class): Add function_c11_misc.
9417         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9418         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
9419         (call_may_clobber_ref_p_1): Likewise.
9420         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9421         (mark_all_reaching_defs_necessary_1): Likewise.
9422         (propagate_necessity): Likewise.
9423         (eliminate_unnecessary_stmts): Likewise.
9424         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
9425
9426 2014-04-28  Richard Biener  <rguenther@suse.de>
9427
9428         * tree-vrp.c (vrp_var_may_overflow): Remove.
9429         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
9430         with overflow immediately bump to one before that value and
9431         let iteration figure out overflow status.
9432
9433 2014-04-28  Richard Biener  <rguenther@suse.de>
9434
9435         * configure.ac: Do valgrind header checks unconditionally.
9436         Add --enable-valgrind-annotations.
9437         * system.h: Guard valgrind header inclusion with
9438         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
9439         * alloc-pool.c (pool_alloc, pool_free): Use
9440         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
9441         to guard possibly dead code.
9442         * config.in: Regenerated.
9443         * configure: Likewise.
9444
9445 2014-04-28  Jeff Law  <law@redhat.com>
9446
9447         PR tree-optimization/60902
9448         * tree-ssa-threadedge.c
9449         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
9450         over real defs when invalidating outputs from statements that do not
9451         produce useful outputs for threading.
9452
9453 2014-04-28  Richard Biener  <rguenther@suse.de>
9454
9455         PR tree-optimization/60979
9456         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
9457         SCOPs that end in a block with a successor with abnormal
9458         predecessors.
9459
9460 2014-04-28  Richard Biener  <rguenther@suse.de>
9461
9462         * tree-pass.h (execute_pass_list): Adjust prototype.
9463         * passes.c (pass_manager::execute_early_local_passes): Adjust.
9464         (do_per_function): Change callback signature, push all actual
9465         work to the callbals.
9466         (do_per_function_toporder): Likewise.
9467         (execute_function_dump): Adjust.
9468         (execute_function_todo): Likewise.
9469         (clear_last_verified): Likewise.
9470         (verify_curr_properties): Likewise.
9471         (update_properties_after_pass): Likewise.
9472         (execute_pass_list_1): Split out from ...
9473         (execute_pass_list): ... here.  Adjust.
9474         (execute_ipa_pass_list): Likewise.
9475         * cgraphunit.c (cgraph_add_new_function): Adjust.
9476         (analyze_function): Likewise.
9477         (expand_function): Likewise.
9478         * cgraph.c (release_function_body): Free dominance info
9479         here instead of asserting it was magically freed elsewhere.
9480
9481 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
9482
9483         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
9484         * configure: Regenerate.
9485         * config/sparc/sparc.opt (muser-mode): New option.
9486         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
9487         for LEON3.
9488         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
9489         * doc/invoke.texi (SPARC options): Document -muser-mode.
9490
9491 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
9492
9493         * cselib.c (find_slot_memmode): Delete.
9494         (cselib_hasher): Change compare_type to a struct.
9495         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
9496         constants.
9497         (preserve_constants_and_equivs): Adjust for new compare_type.
9498         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
9499         (wrap_constant): Delete.
9500         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
9501
9502 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
9503
9504         * doc/install.texi (Building with profile feedback): Remove
9505         outdated sentence.
9506
9507 2014-04-26  Tom de Vries  <tom@codesourcery.com>
9508
9509         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
9510         array accesses.
9511
9512 2014-04-25  Cary Coutant  <ccoutant@google.com>
9513
9514         PR debug/60929
9515         * dwarf2out.c (should_move_die_to_comdat): A type definition
9516         can contain a subprogram definition, but don't move it to a
9517         comdat unit.
9518         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
9519         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
9520         from original DIE.
9521         (clone_tree_hash): Rename to...
9522         (clone_tree_partial): ...this; change callers.  Copy
9523         DW_TAG_subprogram DIEs as declarations.
9524         (copy_decls_walk): Don't copy children of a declaration into a
9525         type unit.
9526
9527 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
9528
9529         PR target/60969
9530         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
9531         alternative 12.
9532
9533 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
9534
9535         * config/arm/predicates.md (call_insn_operand): Add long_call check.
9536         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
9537         reg for long_call.
9538         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
9539         restriction.
9540
9541 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9542
9543         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
9544
9545 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9546
9547         PR tree-optimization/60930
9548         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
9549         creating a multiply candidate by folding two constant
9550         multiplicands when the result overflows.
9551
9552 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
9553
9554         PR tree-optimization/60960
9555         * tree-vect-generic.c (expand_vector_operation): Only call
9556         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
9557
9558 2014-04-25  Tom de Vries  <tom@codesourcery.com>
9559
9560         * expr.c (clobber_reg_mode): New function.
9561         * expr.h (clobber_reg): New function.
9562
9563 2014-04-25  Tom de Vries  <tom@codesourcery.com>
9564
9565         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
9566         clobbers.
9567
9568 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
9569             Tom de Vries  <tom@codesourcery.com>
9570
9571         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
9572         handle.
9573         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
9574         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
9575         new argument to find_all_hard_reg_sets call.
9576
9577 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9578
9579         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
9580         Use HOST_WIDE_INT_C for mask literal.
9581         (aarch_rev16_shleft_mask_imm_p): Likewise.
9582
9583 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
9584
9585         PR target/60941
9586         * config/sparc/sparc.md (ashlsi3_extend): Delete.
9587
9588 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
9589
9590         PR preprocessor/56540
9591         * config/i386/i386-c.c (ix86_target_macros): Define
9592         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
9593
9594 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9595
9596         * configure.ac (tga_func): Remove.
9597         (LIB_TLS_SPEC): Remove.
9598         * configure: Regenerate.
9599         * config.in: Regenerate.
9600         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
9601
9602 2014-04-25  Richard Biener  <rguenther@suse.de>
9603
9604         PR ipa/60912
9605         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
9606         call stmt use/clobber sets during stmt walk instead of
9607         walking the possibly incomplete set of caller edges.
9608
9609 2014-04-25  Richard Biener  <rguenther@suse.de>
9610
9611         PR ipa/60911
9612         * passes.c (apply_ipa_transforms): Inline into only caller ...
9613         (execute_one_pass): ... here.  Properly bring in function
9614         bodies for nodes we want to apply IPA transforms to.
9615
9616 2014-04-24  Cong Hou  <congh@google.com>
9617
9618         PR tree-optimization/60896
9619         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
9620         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
9621         (vect_mark_pattern_stmts): Set the def type of all statements in
9622         PATTERN_DEF_SEQ as vect_internal_def.
9623
9624 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
9625
9626         * doc/extend.texi (PowerPC Built-in Functions): Document new
9627         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
9628         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
9629
9630         * config/rs6000/predicates.md (const_0_to_3_operand): New
9631         predicate to match 0..3 integer constants.
9632
9633         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
9634         to support adding miscellaneous builtin functions.
9635         (BU_DFP_MISC_2): Likewise.
9636         (BU_P7_MISC_1): Likewise.
9637         (BU_P7_MISC_2): Likewise.
9638         (BU_P8V_MISC_3): Likewise.
9639         (BU_MISC_1): Likewise.
9640         (BU_MISC_2): Likewise.
9641         (DIVWE): Add extended divide builtin functions.
9642         (DIVWEO): Likewise.
9643         (DIVWEU): Likewise.
9644         (DIVWEUO): Likewise.
9645         (DIVDE): Likewise.
9646         (DIVDEO): Likewise.
9647         (DIVDEU): Likewise.
9648         (DIVDEUO): Likewise.
9649         (DXEX): Add decimal floating-point builtin functions.
9650         (DXEXQ): Likewise.
9651         (DDEDPD): Likewise.
9652         (DDEDPDQ): Likewise.
9653         (DENBCD): Likewise.
9654         (DENBCDQ): Likewise.
9655         (DIEX): Likewise.
9656         (DIEXQ): Likewise.
9657         (DSCLI): Likewise.
9658         (DSCLIQ): Likewise.
9659         (DSCRI): Likewise.
9660         (DSCRIQ): Likewise.
9661         (CDTBCD): Add new BCD builtin functions.
9662         (CBCDTD): Likewise.
9663         (ADDG6S): Likewise.
9664         (BCDADD): Likewise.
9665         (BCDADD_LT): Likewise.
9666         (BCDADD_EQ): Likewise.
9667         (BCDADD_GT): Likewise.
9668         (BCDADD_OV): Likewise.
9669         (BCDSUB): Likewise.
9670         (BCDSUB_LT): Likewise.
9671         (BCDSUB_EQ): Likewise.
9672         (BCDSUB_GT): Likewise.
9673         (BCDSUB_OV): Likewise.
9674         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
9675         (UNPACK_TD): Likewise.
9676         (PACK_TF): Likewise.
9677         (UNPACK_TF): Likewise.
9678         (UNPACK_TF_0): Likewise.
9679         (UNPACK_TF_1): Likewise.
9680         (PACK_V1TI): Likewise.
9681         (UNPACK_V1TI): Likewise.
9682
9683         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
9684         support for decimal floating point builtin functions.
9685         (rs6000_expand_ternop_builtin): Add checks for the new builtin
9686         functions that take constant arguments.
9687         (rs6000_invalid_builtin): Add decimal floating point builtin support.
9688         (rs6000_init_builtins): Setup long double, _Decimal64, and
9689         _Decimal128 types for new builtin functions.
9690         (builtin_function_type): Set the unsigned flags appropriately for
9691         the new builtin functions.
9692         (rs6000_opt_masks): Add support for decimal floating point builtin
9693         functions.
9694
9695         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
9696         floating point builtin functions.
9697         (RS6000_BTM_COMMON): Likewise.
9698         (RS6000_BTI_long_double): Likewise.
9699         (RS6000_BTI_dfloat64): Likewise.
9700         (RS6000_BTI_dfloat128): Likewise.
9701         (long_double_type_internal_node): Likewise.
9702         (dfloat64_type_internal_node): Likewise.
9703         (dfloat128_type_internal_node): Likewise.
9704
9705         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
9706         2.07 bcd arithmetic instructions.
9707         (UNSPEC_BCDSUB): Likewise.
9708         (UNSPEC_BCD_OVERFLOW): Likewise.
9709         (UNSPEC_BCD_ADD_SUB): Likewise.
9710         (bcd_add_sub): Likewise.
9711         (BCD_TEST): Likewise.
9712         (bcd<bcd_add_sub>): Likewise.
9713         (bcd<bcd_add_sub>_test): Likewise.
9714         (bcd<bcd_add_sub>_test2): Likewise.
9715         (bcd<bcd_add_sub>_<code>): Likewise.
9716         (peephole2 for combined bcd ops): Likewise.
9717
9718         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
9719         decimal floating point builtin functions.
9720         (UNSPEC_DENBCD): Likewise.
9721         (UNSPEC_DXEX): Likewise.
9722         (UNSPEC_DIEX): Likewise.
9723         (UNSPEC_DSCLI): Likewise.
9724         (UNSPEC_DSCRI): Likewise.
9725         (D64_D128): Likewise.
9726         (dfp_suffix): Likewise.
9727         (dfp_ddedpd_<mode>): Likewise.
9728         (dfp_denbcd_<mode>): Likewise.
9729         (dfp_dxex_<mode>): Likewise.
9730         (dfp_diex_<mode>): Likewise.
9731         (dfp_dscli_<mode>): Likewise.
9732         (dfp_dscri_<mode>): Likewise.
9733
9734         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
9735         builtin functions.
9736         (UNSPEC_CDTBCD): Likewise.
9737         (UNSPEC_CBCDTD): Likewise.
9738         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
9739         (UNSPEC_DIVEO): Likewise.
9740         (UNSPEC_DIVEU): Likewise.
9741         (UNSPEC_DIVEUO): Likewise.
9742         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
9743         pack/unpack 128-bit types.
9744         (UNSPEC_PACK_128BIT): Likewise.
9745         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
9746         (udiv<mode>3): Use idiv_ldiv mode attribute.
9747         (div<mode>3): Likewise.
9748         (addg6s): Add new BCD builtin functions.
9749         (cdtbcd): Likewise.
9750         (cbcdtd): Likewise.
9751         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
9752         (div_extend): Likewise.
9753         (div<div_extend>_<mode>"): Likewise.
9754         (FP128_64): Add support for new builtin functions to pack/unpack
9755         128-bit types.
9756         (unpack<mode>): Likewise.
9757         (unpacktf_0): Likewise.
9758         (unpacktf_1): Likewise.
9759         (unpack<mode>_dm): Likewise.
9760         (unpack<mode>_nodm): Likewise.
9761         (pack<mode>): Likewise.
9762         (unpackv1ti): Likewise.
9763         (packv1ti): Likewise.
9764
9765 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
9766
9767         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
9768         is disabled.
9769
9770 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
9771
9772         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
9773         * gimplify.c (omp_is_private): Change last argument's type to int.
9774         Only diagnose lastprivate if the simd argument is 1, only diagnose
9775         linear if the simd argument is 2.
9776         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
9777         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
9778         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
9779         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
9780         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
9781         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
9782         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
9783         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
9784         * tree-nested.c (convert_nonlocal_omp_clauses,
9785         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
9786
9787 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
9788
9789         PR target/60822
9790         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
9791         operand 1.
9792
9793 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
9794
9795         * flag-types.h (enum ivar_visibility): Add.
9796
9797 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
9798
9799         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
9800         function * argument.
9801
9802 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
9803
9804         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
9805
9806 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
9807             Tom de Vries  <tom@codesourcery.com>
9808
9809         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
9810         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
9811         reg-note.
9812         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
9813         * emit-rtl.c (try_split): Same.
9814
9815 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
9816             Tom de Vries  <tom@codesourcery.com>
9817
9818         * common.opt (fuse-caller-save): New option.
9819
9820 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
9821
9822         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
9823         elements for big-endian.
9824
9825 2014-04-24  Richard Biener  <rguenther@suse.de>
9826
9827         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
9828         during TER and instead use the sepops interface for expanding
9829         non-GIMPLE_SINGLE_RHS.
9830
9831 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9832
9833         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
9834         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
9835
9836 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9837
9838         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
9839         assembler 64-bit option.
9840         * configure: Regenerate.
9841
9842 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9843
9844         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
9845         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
9846         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
9847         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
9848         (TARGET_CRYPTO): Take TARGET_SIMD into account.
9849
9850 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9851
9852         * config/aarch64/aarch64-builtins.c
9853         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
9854         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
9855         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
9856         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
9857         builtins.
9858         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
9859         (Vrevsuff): New mode attribute.
9860
9861 2014-04-24  Terry Guo  <terry.guo@arm.com>
9862
9863         * config/arm/arm.h (machine_function): Define variable
9864         after_arm_reorg here.
9865         * config/arm/arm.c (after_arm_reorg): Remove the definition.
9866         (arm_split_constant): Update the way to access variable
9867         after_arm_reorg.
9868         (arm_reorg): Ditto.
9869         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
9870
9871 2014-04-23  Tom de Vries  <tom@codesourcery.com>
9872
9873         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
9874
9875 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
9876
9877         * is-a.h: Update comments to reflect the following changes to the
9878         "pointerness" of the API, making the template parameter match the
9879         return type, allowing use of is-a.h with typedefs of pointers.
9880         (is_a_helper::cast): Return a T rather then a pointer to a T, so
9881         that the return type matches the parameter to the is_a_helper.
9882         (as_a): Likewise.
9883         (dyn_cast): Likewise.
9884
9885         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
9886         pointer from the is-a.h API.
9887
9888         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
9889         (is_a_helper <cgraph_node *>::test): ...this, matching change to
9890         is-a.h API.
9891         (is_a_helper <varpool_node>::test): Likewise, convert to...
9892         (is_a_helper <varpool_node *>::test): ...this.
9893
9894         (varpool_first_variable): Update for removal of implicit pointer
9895         from the is-a.h API.
9896         (varpool_next_variable): Likewise.
9897         (varpool_first_static_initializer): Likewise.
9898         (varpool_next_static_initializer): Likewise.
9899         (varpool_first_defined_variable): Likewise.
9900         (varpool_next_defined_variable): Likewise.
9901         (cgraph_first_defined_function): Likewise.
9902         (cgraph_next_defined_function): Likewise.
9903         (cgraph_first_function): Likewise.
9904         (cgraph_next_function): Likewise.
9905         (cgraph_first_function_with_gimple_body): Likewise.
9906         (cgraph_next_function_with_gimple_body): Likewise.
9907         (cgraph_alias_target): Likewise.
9908         (varpool_alias_target): Likewise.
9909         (cgraph_function_or_thunk_node): Likewise.
9910         (varpool_variable_node): Likewise.
9911         (symtab_real_symbol_p): Likewise.
9912         * cgraphunit.c (referred_to_p): Likewise.
9913         (analyze_functions): Likewise.
9914         (handle_alias_pairs): Likewise.
9915         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
9916         * gimple-ssa.h (gimple_vuse_op): Likewise.
9917         (gimple_vdef_op): Likewise.
9918         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
9919         * gimple.c (gimple_build_asm_1): Likewise.
9920         (gimple_build_try): Likewise.
9921         (gimple_build_resx): Likewise.
9922         (gimple_build_eh_dispatch): Likewise.
9923         (gimple_build_omp_for): Likewise.
9924         (gimple_omp_for_set_clauses): Likewise.
9925
9926         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
9927         (is_a_helper <gimple_statement_asm *>::test): ...this.
9928         (is_a_helper <gimple_statement_bind>::test): Convert to...
9929         (is_a_helper <gimple_statement_bind *>::test): ...this.
9930         (is_a_helper <gimple_statement_call>::test): Convert to...
9931         (is_a_helper <gimple_statement_call *>::test): ...this.
9932         (is_a_helper <gimple_statement_catch>::test): Convert to...
9933         (is_a_helper <gimple_statement_catch *>::test): ...this.
9934         (is_a_helper <gimple_statement_resx>::test): Convert to...
9935         (is_a_helper <gimple_statement_resx *>::test): ...this.
9936         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
9937         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
9938         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
9939         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
9940         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
9941         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
9942         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
9943         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
9944         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
9945         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
9946         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
9947         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
9948         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
9949         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
9950         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
9951         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
9952         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
9953         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
9954         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
9955         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
9956         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
9957         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
9958         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
9959         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
9960         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
9961         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
9962         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
9963         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
9964         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
9965         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
9966         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
9967         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
9968         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
9969         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
9970         (is_a_helper <gimple_statement_phi>::test): Convert to...
9971         (is_a_helper <gimple_statement_phi *>::test): ...this.
9972         (is_a_helper <gimple_statement_transaction>::test): Convert to...
9973         (is_a_helper <gimple_statement_transaction *>::test): ...this.
9974         (is_a_helper <gimple_statement_try>::test): Convert to...
9975         (is_a_helper <gimple_statement_try *>::test): ...this.
9976         (is_a_helper <gimple_statement_wce>::test): Convert to...
9977         (is_a_helper <gimple_statement_wce *>::test): ...this.
9978         (is_a_helper <const gimple_statement_asm>::test): Convert to...
9979         (is_a_helper <const gimple_statement_asm *>::test): ...this.
9980         (is_a_helper <const gimple_statement_bind>::test): Convert to...
9981         (is_a_helper <const gimple_statement_bind *>::test): ...this.
9982         (is_a_helper <const gimple_statement_call>::test): Convert to...
9983         (is_a_helper <const gimple_statement_call *>::test): ...this.
9984         (is_a_helper <const gimple_statement_catch>::test): Convert to...
9985         (is_a_helper <const gimple_statement_catch *>::test): ...this.
9986         (is_a_helper <const gimple_statement_resx>::test): Convert to...
9987         (is_a_helper <const gimple_statement_resx *>::test): ...this.
9988         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
9989         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
9990         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
9991         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
9992         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
9993         Convert to...
9994         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
9995         ...this.
9996         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
9997         Convert to...
9998         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
9999         ...this.
10000         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
10001         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
10002         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
10003         to...
10004         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
10005         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
10006         to...
10007         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
10008         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
10009         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
10010         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
10011         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
10012         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
10013         to...
10014         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
10015         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
10016         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
10017         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
10018         to...
10019         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
10020         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
10021         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
10022         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
10023         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
10024         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
10025         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
10026         (is_a_helper <const gimple_statement_phi>::test): Convert to...
10027         (is_a_helper <const gimple_statement_phi *>::test): ...this.
10028         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
10029         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
10030         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
10031         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
10032         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
10033         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
10034         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
10035         to...
10036         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
10037         ...this.
10038         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
10039         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
10040
10041         (gimple_use_ops): Update for removal of implicit pointer from the
10042         is-a.h API.
10043         (gimple_set_use_ops): Likewise.
10044         (gimple_vuse): Likewise.
10045         (gimple_vdef): Likewise.
10046         (gimple_vuse_ptr): Likewise.
10047         (gimple_vdef_ptr): Likewise.
10048         (gimple_set_vuse): Likewise.
10049         (gimple_set_vdef): Likewise.
10050         (gimple_omp_return_set_lhs): Likewise.
10051         (gimple_omp_return_lhs): Likewise.
10052         (gimple_omp_return_lhs_ptr): Likewise.
10053         (gimple_call_fntype): Likewise.
10054         (gimple_call_set_fntype): Likewise.
10055         (gimple_call_set_internal_fn): Likewise.
10056         (gimple_call_use_set): Likewise.
10057         (gimple_call_clobber_set): Likewise.
10058         (gimple_bind_vars): Likewise.
10059         (gimple_bind_set_vars): Likewise.
10060         (gimple_bind_body_ptr): Likewise.
10061         (gimple_bind_set_body): Likewise.
10062         (gimple_bind_add_stmt): Likewise.
10063         (gimple_bind_block): Likewise.
10064         (gimple_bind_set_block): Likewise.
10065         (gimple_asm_ninputs): Likewise.
10066         (gimple_asm_noutputs): Likewise.
10067         (gimple_asm_nclobbers): Likewise.
10068         (gimple_asm_nlabels): Likewise.
10069         (gimple_asm_input_op): Likewise.
10070         (gimple_asm_input_op_ptr): Likewise.
10071         (gimple_asm_output_op): Likewise.
10072         (gimple_asm_output_op_ptr): Likewise.
10073         (gimple_asm_set_output_op): Likewise.
10074         (gimple_asm_clobber_op): Likewise.
10075         (gimple_asm_set_clobber_op): Likewise.
10076         (gimple_asm_label_op): Likewise.
10077         (gimple_asm_set_label_op): Likewise.
10078         (gimple_asm_string): Likewise.
10079         (gimple_catch_types): Likewise.
10080         (gimple_catch_types_ptr): Likewise.
10081         (gimple_catch_handler_ptr): Likewise.
10082         (gimple_catch_set_types): Likewise.
10083         (gimple_catch_set_handler): Likewise.
10084         (gimple_eh_filter_types): Likewise.
10085         (gimple_eh_filter_types_ptr): Likewise.
10086         (gimple_eh_filter_failure_ptr): Likewise.
10087         (gimple_eh_filter_set_types): Likewise.
10088         (gimple_eh_filter_set_failure): Likewise.
10089         (gimple_eh_must_not_throw_fndecl): Likewise.
10090         (gimple_eh_must_not_throw_set_fndecl): Likewise.
10091         (gimple_eh_else_n_body_ptr): Likewise.
10092         (gimple_eh_else_e_body_ptr): Likewise.
10093         (gimple_eh_else_set_n_body): Likewise.
10094         (gimple_eh_else_set_e_body): Likewise.
10095         (gimple_try_eval_ptr): Likewise.
10096         (gimple_try_cleanup_ptr): Likewise.
10097         (gimple_try_set_eval): Likewise.
10098         (gimple_try_set_cleanup): Likewise.
10099         (gimple_wce_cleanup_ptr): Likewise.
10100         (gimple_wce_set_cleanup): Likewise.
10101         (gimple_phi_capacity): Likewise.
10102         (gimple_phi_num_args): Likewise.
10103         (gimple_phi_result): Likewise.
10104         (gimple_phi_result_ptr): Likewise.
10105         (gimple_phi_set_result): Likewise.
10106         (gimple_phi_arg): Likewise.
10107         (gimple_phi_set_arg): Likewise.
10108         (gimple_resx_region): Likewise.
10109         (gimple_resx_set_region): Likewise.
10110         (gimple_eh_dispatch_region): Likewise.
10111         (gimple_eh_dispatch_set_region): Likewise.
10112         (gimple_omp_critical_name): Likewise.
10113         (gimple_omp_critical_name_ptr): Likewise.
10114         (gimple_omp_critical_set_name): Likewise.
10115         (gimple_omp_for_clauses): Likewise.
10116         (gimple_omp_for_clauses_ptr): Likewise.
10117         (gimple_omp_for_set_clauses): Likewise.
10118         (gimple_omp_for_collapse): Likewise.
10119         (gimple_omp_for_index): Likewise.
10120         (gimple_omp_for_index_ptr): Likewise.
10121         (gimple_omp_for_set_index): Likewise.
10122         (gimple_omp_for_initial): Likewise.
10123         (gimple_omp_for_initial_ptr): Likewise.
10124         (gimple_omp_for_set_initial): Likewise.
10125         (gimple_omp_for_final): Likewise.
10126         (gimple_omp_for_final_ptr): Likewise.
10127         (gimple_omp_for_set_final): Likewise.
10128         (gimple_omp_for_incr): Likewise.
10129         (gimple_omp_for_incr_ptr): Likewise.
10130         (gimple_omp_for_set_incr): Likewise.
10131         (gimple_omp_for_pre_body_ptr): Likewise.
10132         (gimple_omp_for_set_pre_body): Likewise.
10133         (gimple_omp_parallel_clauses): Likewise.
10134         (gimple_omp_parallel_clauses_ptr): Likewise.
10135         (gimple_omp_parallel_set_clauses): Likewise.
10136         (gimple_omp_parallel_child_fn): Likewise.
10137         (gimple_omp_parallel_child_fn_ptr): Likewise.
10138         (gimple_omp_parallel_set_child_fn): Likewise.
10139         (gimple_omp_parallel_data_arg): Likewise.
10140         (gimple_omp_parallel_data_arg_ptr): Likewise.
10141         (gimple_omp_parallel_set_data_arg): Likewise.
10142         (gimple_omp_task_clauses): Likewise.
10143         (gimple_omp_task_clauses_ptr): Likewise.
10144         (gimple_omp_task_set_clauses): Likewise.
10145         (gimple_omp_task_child_fn): Likewise.
10146         (gimple_omp_task_child_fn_ptr): Likewise.
10147         (gimple_omp_task_set_child_fn): Likewise.
10148         (gimple_omp_task_data_arg): Likewise.
10149         (gimple_omp_task_data_arg_ptr): Likewise.
10150         (gimple_omp_task_set_data_arg): Likewise.
10151         (gimple_omp_taskreg_clauses): Likewise.
10152         (gimple_omp_taskreg_clauses_ptr): Likewise.
10153         (gimple_omp_taskreg_set_clauses): Likewise.
10154         (gimple_omp_taskreg_child_fn): Likewise.
10155         (gimple_omp_taskreg_child_fn_ptr): Likewise.
10156         (gimple_omp_taskreg_set_child_fn): Likewise.
10157         (gimple_omp_taskreg_data_arg): Likewise.
10158         (gimple_omp_taskreg_data_arg_ptr): Likewise.
10159         (gimple_omp_taskreg_set_data_arg): Likewise.
10160         (gimple_omp_task_copy_fn): Likewise.
10161         (gimple_omp_task_copy_fn_ptr): Likewise.
10162         (gimple_omp_task_set_copy_fn): Likewise.
10163         (gimple_omp_task_arg_size): Likewise.
10164         (gimple_omp_task_arg_size_ptr): Likewise.
10165         (gimple_omp_task_set_arg_size): Likewise.
10166         (gimple_omp_task_arg_align): Likewise.
10167         (gimple_omp_task_arg_align_ptr): Likewise.
10168         (gimple_omp_task_set_arg_align): Likewise.
10169         (gimple_omp_single_clauses): Likewise.
10170         (gimple_omp_single_clauses_ptr): Likewise.
10171         (gimple_omp_single_set_clauses): Likewise.
10172         (gimple_omp_target_clauses): Likewise.
10173         (gimple_omp_target_clauses_ptr): Likewise.
10174         (gimple_omp_target_set_clauses): Likewise.
10175         (gimple_omp_target_child_fn): Likewise.
10176         (gimple_omp_target_child_fn_ptr): Likewise.
10177         (gimple_omp_target_set_child_fn): Likewise.
10178         (gimple_omp_target_data_arg): Likewise.
10179         (gimple_omp_target_data_arg_ptr): Likewise.
10180         (gimple_omp_target_set_data_arg): Likewise.
10181         (gimple_omp_teams_clauses): Likewise.
10182         (gimple_omp_teams_clauses_ptr): Likewise.
10183         (gimple_omp_teams_set_clauses): Likewise.
10184         (gimple_omp_sections_clauses): Likewise.
10185         (gimple_omp_sections_clauses_ptr): Likewise.
10186         (gimple_omp_sections_set_clauses): Likewise.
10187         (gimple_omp_sections_control): Likewise.
10188         (gimple_omp_sections_control_ptr): Likewise.
10189         (gimple_omp_sections_set_control): Likewise.
10190         (gimple_omp_for_set_cond): Likewise.
10191         (gimple_omp_for_cond): Likewise.
10192         (gimple_omp_atomic_store_set_val): Likewise.
10193         (gimple_omp_atomic_store_val): Likewise.
10194         (gimple_omp_atomic_store_val_ptr): Likewise.
10195         (gimple_omp_atomic_load_set_lhs): Likewise.
10196         (gimple_omp_atomic_load_lhs): Likewise.
10197         (gimple_omp_atomic_load_lhs_ptr): Likewise.
10198         (gimple_omp_atomic_load_set_rhs): Likewise.
10199         (gimple_omp_atomic_load_rhs): Likewise.
10200         (gimple_omp_atomic_load_rhs_ptr): Likewise.
10201         (gimple_omp_continue_control_def): Likewise.
10202         (gimple_omp_continue_control_def_ptr): Likewise.
10203         (gimple_omp_continue_set_control_def): Likewise.
10204         (gimple_omp_continue_control_use): Likewise.
10205         (gimple_omp_continue_control_use_ptr): Likewise.
10206         (gimple_omp_continue_set_control_use): Likewise.
10207         (gimple_transaction_body_ptr): Likewise.
10208         (gimple_transaction_label): Likewise.
10209         (gimple_transaction_label_ptr): Likewise.
10210         (gimple_transaction_set_body): Likewise.
10211         (gimple_transaction_set_label): Likewise.
10212
10213         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
10214         * ipa-inline-analysis.c (inline_write_summary): Likewise.
10215         * ipa-ref.c (ipa_record_reference): Likewise.
10216         * ipa-reference.c (analyze_function): Likewise.
10217         (ipa_reference_write_optimization_summary): Likewise.
10218         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
10219         (address_taken_from_non_vtable_p): Likewise.
10220         (comdat_can_be_unshared_p_1): Likewise.
10221         * lto-cgraph.c (lto_output_ref): Likewise.
10222         (add_references): Likewise.
10223         (compute_ltrans_boundary): Likewise.
10224         (output_symtab): Likewise.
10225         (input_ref): Likewise.
10226         (input_cgraph_1): Likewise.
10227         (output_cgraph_opt_summary): Likewise.
10228         * lto-streamer-out.c (lto_output): Likewise.
10229         (output_symbol_p): Likewise.
10230         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
10231         (lsei_start_function_in_partition): Likewise.
10232         (lsei_next_variable_in_partition): Likewise.
10233         (lsei_start_variable_in_partition): Likewise.
10234         * symtab.c (insert_to_assembler_name_hash): Likewise.
10235         (unlink_from_assembler_name_hash): Likewise.
10236         (symtab_unregister_node): Likewise.
10237         (symtab_remove_node): Likewise.
10238         (dump_symtab_node): Likewise.
10239         (verify_symtab_base): Likewise.
10240         (verify_symtab_node): Likewise.
10241         (symtab_make_decl_local): Likewise.
10242         (symtab_alias_ultimate_target): Likewise.
10243         (symtab_resolve_alias): Likewise.
10244         (symtab_get_symbol_partitioning_class): Likewise.
10245         * tree-phinodes.c (allocate_phi_node): Likewise.
10246         (reserve_phi_args_for_new_edge): Likewise.
10247         (remove_phi_args): Likewise.
10248         * varpool.c (varpool_node_for_asm): Likewise.
10249         (varpool_remove_unreferenced_decls): Likewise.
10250
10251 2014-04-23  Jeff Law  <law@redhat.com>
10252
10253         PR tree-optimization/60902
10254         * tree-ssa-threadedge.c
10255         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
10256         invalidate outputs from statements that do not produce useful
10257         outputs for threading.
10258
10259 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
10260
10261         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
10262         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
10263         machine descriptions for Stack Smashing Protector.
10264
10265 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
10266
10267         * aarch64.md (<optab>_rol<mode>3): New pattern.
10268         (<optab>_rolsi3_uxtw): Likewise.
10269         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
10270
10271 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
10272
10273         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
10274         (arm_cortex_a12_tune): Likewise.
10275
10276 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10277
10278         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
10279
10280 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10281
10282         * config/arm/arm.md (arm_rev16si2): New pattern.
10283         (arm_rev16si2_alt): Likewise.
10284         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
10285
10286 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10287
10288         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
10289         (rev16<mode>2_alt): Likewise.
10290         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
10291         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
10292         (aarch_rev16_shleft_mask_imm_p): Likewise.
10293         (aarch_rev16_p_1): Likewise.
10294         (aarch_rev16_p): Likewise.
10295         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
10296         (aarch_rev16_shright_mask_imm_p): Likewise.
10297         (aarch_rev16_shleft_mask_imm_p): Likewise.
10298
10299 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10300
10301         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
10302         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
10303         rev cost.
10304         (cortex_a53_extra_costs): Likewise.
10305         (cortex_a57_extra_costs): Likewise.
10306         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
10307         (cortexa7_extra_costs): Likewise.
10308         (cortexa8_extra_costs): Likewise.
10309         (cortexa12_extra_costs): Likewise.
10310         (cortexa15_extra_costs): Likewise.
10311         (v7m_extra_costs): Likewise.
10312         (arm_new_rtx_costs): Handle BSWAP.
10313
10314 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10315
10316         * config/arm/arm.c (cortexa8_extra_costs): New table.
10317         (arm_cortex_a8_tune): New tuning struct.
10318         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
10319
10320 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10321
10322         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
10323
10324 2014-04-23  Richard Biener  <rguenther@suse.de>
10325
10326         * Makefile.in (OBJS): Remove loop-unswitch.o.
10327         * tree-pass.h (make_pass_rtl_unswitch): Remove.
10328         * passes.def (pass_rtl_unswitch): Likewise.
10329         * loop-init.c (gate_rtl_unswitch): Likewise.
10330         (rtl_unswitch): Likewise.
10331         (pass_data_rtl_unswitch): Likewise.
10332         (pass_rtl_unswitch): Likewise.
10333         (make_pass_rtl_unswitch): Likewise.
10334         * rtl.h (reversed_condition): Likewise.
10335         (compare_and_jump_seq): Likewise.
10336         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
10337         and make static.
10338         * loop-unroll.c (compare_and_jump_seq): Likewise.
10339
10340 2014-04-23  Richard Biener  <rguenther@suse.de>
10341
10342         PR tree-optimization/60903
10343         * tree-ssa-loop-im.c (analyze_memory_references): Remove
10344         commented code block.
10345         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
10346         loop flags to newly created BBs and edges.
10347
10348 2014-04-23  Nick Clifton  <nickc@redhat.com>
10349
10350         * config/msp430/msp430.c (msp430_handle_option): Move function
10351         to msp430-common.c
10352         (msp430_option_override): Simplify mcu and mcpu option handling.
10353         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
10354         support for -mhwmult command line option.
10355         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
10356         -mhwmult command line option.
10357         (msp430_hwmult_enabled): Delete.
10358         (msp43o_output_labelref): Add support for -mhwmult command line option.
10359         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
10360         (umulsidi3): Likewise.
10361         * config/msp430/msp430.opt (mmcu): Add Report attribute.
10362         (mcpu, mlarge, msmall): Likewise.
10363         (mhwmult): New option.
10364         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
10365         prototype.
10366         (msp430_is_f5_mcu): Remove prototype.
10367         (msp430_use_f5_series_hwmult): Add prototype.
10368         * config/msp430/msp430-opts.h: New file.
10369         * common/config/msp430: New directory.
10370         * common/config/msp430/msp430-common.c: New file.
10371         * config.gcc (msp430): Remove target_has_targetm_common.
10372         * doc/invoke.texi: Document -mhwmult command line option.
10373
10374 2014-04-23  Nick Clifton  <nickc@redhat.com>
10375
10376         * config/i386/cygwin.h (ENDFILE_SPEC): Include
10377         default-manifest.o if it can be found in the search path.
10378         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
10379
10380 2014-04-23  Terry Guo  <terry.guo@arm.com>
10381
10382         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
10383
10384 2014-04-23  Richard Biener  <rguenther@suse.de>
10385
10386         PR middle-end/60895
10387         * tree-inline.c (declare_return_variable): Use mark_addressable.
10388
10389 2014-04-23  Richard Biener  <rguenther@suse.de>
10390
10391         PR middle-end/60891
10392         * loop-init.c (loop_optimizer_init): Make sure to apply
10393         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
10394
10395 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
10396
10397         PR sanitizer/60275
10398         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
10399         New options.
10400         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
10401         if flag_sanitize_undefined_trap_on_error.
10402         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
10403         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
10404         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
10405         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
10406         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
10407         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
10408         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
10409         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
10410         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
10411         * ubsan.c (ubsan_instrument_unreachable): Return
10412         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
10413         (ubsan_expand_null_ifn): Emit __builtin_trap ()
10414         if flag_sanitize_undefined_trap_on_error and
10415         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
10416         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
10417         instrument_bool_enum_load): Emit __builtin_trap () if
10418         flag_sanitize_undefined_trap_on_error and
10419         __builtin_handle_*_abort () if !flag_sanitize_recover.
10420         * doc/invoke.texi (-fsanitize-recover,
10421         -fsanitize-undefined-trap-on-error): Document.
10422
10423 2014-04-22  Christian Bruel  <christian.bruel@st.com>
10424
10425         * config/sh/sh.md (mov<mode>): Replace movQIHI.
10426          Force immediates to SImode.
10427
10428 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
10429
10430         * config/nios2/nios2.md (UNSPEC_ROUND): New.
10431         (lroundsfsi2): New.
10432         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
10433         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
10434         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
10435         (nios2_fpu_insn): Add entry for round.
10436         (N2FPU_NO_ERRNO_P): Define.
10437         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
10438         flag_errno_math.
10439         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
10440
10441 2014-04-22  Richard Henderson  <rth@redhat.com>
10442
10443         * config/aarch64/aarch64 (addti3, subti3): New expanders.
10444         (add<GPI>3_compare0): Remove leading * from name.
10445         (add<GPI>3_carryin): Likewise.
10446         (sub<GPI>3_compare0): Likewise.
10447         (sub<GPI>3_carryin): Likewise.
10448         (<su_optab>mulditi3): New expander.
10449         (multi3): New expander.
10450         (madd<GPI>): Remove leading * from name.
10451
10452 2014-04-22  Martin Jambor  <mjambor@suse.cz>
10453
10454         * cgraphclones.c (cgraph_function_versioning): Copy
10455         ipa_transforms_to_apply instead of asserting it is empty.
10456
10457 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
10458
10459         PR target/60868
10460         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
10461         on count_exp to get mode.
10462
10463 2014-04-22  Andrew Pinski  <apinski@cavium.com>
10464
10465         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10466         Handle TLS for ILP32.
10467         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
10468         (tlsie_small_<mode>): this and handle PTR.
10469         (tlsie_small_sidi): New pattern.
10470         (tlsle_small): Change to an expand to handle ILP32.
10471         (tlsle_small_<mode>): New pattern.
10472         (tlsdesc_small): Rename to ...
10473         (tlsdesc_small_<mode>): this and handle PTR.
10474
10475 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10476
10477         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
10478
10479 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
10480
10481         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
10482         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
10483         (aarch64_types_signed_poly_qualifiers): Likewise.
10484         (aarch64_types_unsigned_signed_qualifiers): Likewise.
10485         (aarch64_types_poly_signed_qualifiers): Likewise.
10486         (TYPES_REINTERP_SS): Type macro added.
10487         (TYPES_REINTERP_SU): Likewise.
10488         (TYPES_REINTERP_SP): Likewise.
10489         (TYPES_REINTERP_US): Likewise.
10490         (TYPES_REINTERP_PS): Likewise.
10491         (aarch64_fold_builtin): New expression folding added.
10492         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
10493         Declarations removed.
10494         (REINTERP_SS): Declarations added.
10495         (REINTERP_US): Likewise.
10496         (REINTERP_PS): Likewise.
10497         (REINTERP_SU): Likewise.
10498         (REINTERP_SP): Likewise.
10499         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
10500         (vreinterpretq_p8_f64): Likewise.
10501         (vreinterpret_p16_f64): Likewise.
10502         (vreinterpretq_p16_f64): Likewise.
10503         (vreinterpret_f32_f64): Likewise.
10504         (vreinterpretq_f32_f64): Likewise.
10505         (vreinterpret_f64_f32): Likewise.
10506         (vreinterpret_f64_p8): Likewise.
10507         (vreinterpret_f64_p16): Likewise.
10508         (vreinterpret_f64_s8): Likewise.
10509         (vreinterpret_f64_s16): Likewise.
10510         (vreinterpret_f64_s32): Likewise.
10511         (vreinterpret_f64_s64): Likewise.
10512         (vreinterpret_f64_u8): Likewise.
10513         (vreinterpret_f64_u16): Likewise.
10514         (vreinterpret_f64_u32): Likewise.
10515         (vreinterpret_f64_u64): Likewise.
10516         (vreinterpretq_f64_f32): Likewise.
10517         (vreinterpretq_f64_p8): Likewise.
10518         (vreinterpretq_f64_p16): Likewise.
10519         (vreinterpretq_f64_s8): Likewise.
10520         (vreinterpretq_f64_s16): Likewise.
10521         (vreinterpretq_f64_s32): Likewise.
10522         (vreinterpretq_f64_s64): Likewise.
10523         (vreinterpretq_f64_u8): Likewise.
10524         (vreinterpretq_f64_u16): Likewise.
10525         (vreinterpretq_f64_u32): Likewise.
10526         (vreinterpretq_f64_u64): Likewise.
10527         (vreinterpret_s64_f64): Likewise.
10528         (vreinterpretq_s64_f64): Likewise.
10529         (vreinterpret_u64_f64): Likewise.
10530         (vreinterpretq_u64_f64): Likewise.
10531         (vreinterpret_s8_f64): Likewise.
10532         (vreinterpretq_s8_f64): Likewise.
10533         (vreinterpret_s16_f64): Likewise.
10534         (vreinterpretq_s16_f64): Likewise.
10535         (vreinterpret_s32_f64): Likewise.
10536         (vreinterpretq_s32_f64): Likewise.
10537         (vreinterpret_u8_f64): Likewise.
10538         (vreinterpretq_u8_f64): Likewise.
10539         (vreinterpret_u16_f64): Likewise.
10540         (vreinterpretq_u16_f64): Likewise.
10541         (vreinterpret_u32_f64): Likewise.
10542         (vreinterpretq_u32_f64): Likewise.
10543
10544 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
10545
10546         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
10547         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
10548         (vreinterpret_p8_s8): Likewise.
10549         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
10550         (vreinterpret_p8_s16): Likewise.
10551         (vreinterpret_p8_s32): Likewise.
10552         (vreinterpret_p8_s64): Likewise.
10553         (vreinterpret_p8_f32): Likewise.
10554         (vreinterpret_p8_u8): Likewise.
10555         (vreinterpret_p8_u16): Likewise.
10556         (vreinterpret_p8_u32): Likewise.
10557         (vreinterpret_p8_u64): Likewise.
10558         (vreinterpret_p8_p16): Likewise.
10559         (vreinterpretq_p8_s8): Likewise.
10560         (vreinterpretq_p8_s16): Likewise.
10561         (vreinterpretq_p8_s32): Likewise.
10562         (vreinterpretq_p8_s64): Likewise.
10563         (vreinterpretq_p8_f32): Likewise.
10564         (vreinterpretq_p8_u8): Likewise.
10565         (vreinterpretq_p8_u16): Likewise.
10566         (vreinterpretq_p8_u32): Likewise.
10567         (vreinterpretq_p8_u64): Likewise.
10568         (vreinterpretq_p8_p16): Likewise.
10569         (vreinterpret_p16_s8): Likewise.
10570         (vreinterpret_p16_s16): Likewise.
10571         (vreinterpret_p16_s32): Likewise.
10572         (vreinterpret_p16_s64): Likewise.
10573         (vreinterpret_p16_f32): Likewise.
10574         (vreinterpret_p16_u8): Likewise.
10575         (vreinterpret_p16_u16): Likewise.
10576         (vreinterpret_p16_u32): Likewise.
10577         (vreinterpret_p16_u64): Likewise.
10578         (vreinterpret_p16_p8): Likewise.
10579         (vreinterpretq_p16_s8): Likewise.
10580         (vreinterpretq_p16_s16): Likewise.
10581         (vreinterpretq_p16_s32): Likewise.
10582         (vreinterpretq_p16_s64): Likewise.
10583         (vreinterpretq_p16_f32): Likewise.
10584         (vreinterpretq_p16_u8): Likewise.
10585         (vreinterpretq_p16_u16): Likewise.
10586         (vreinterpretq_p16_u32): Likewise.
10587         (vreinterpretq_p16_u64): Likewise.
10588         (vreinterpretq_p16_p8): Likewise.
10589         (vreinterpret_f32_s8): Likewise.
10590         (vreinterpret_f32_s16): Likewise.
10591         (vreinterpret_f32_s32): Likewise.
10592         (vreinterpret_f32_s64): Likewise.
10593         (vreinterpret_f32_u8): Likewise.
10594         (vreinterpret_f32_u16): Likewise.
10595         (vreinterpret_f32_u32): Likewise.
10596         (vreinterpret_f32_u64): Likewise.
10597         (vreinterpret_f32_p8): Likewise.
10598         (vreinterpret_f32_p16): Likewise.
10599         (vreinterpretq_f32_s8): Likewise.
10600         (vreinterpretq_f32_s16): Likewise.
10601         (vreinterpretq_f32_s32): Likewise.
10602         (vreinterpretq_f32_s64): Likewise.
10603         (vreinterpretq_f32_u8): Likewise.
10604         (vreinterpretq_f32_u16): Likewise.
10605         (vreinterpretq_f32_u32): Likewise.
10606         (vreinterpretq_f32_u64): Likewise.
10607         (vreinterpretq_f32_p8): Likewise.
10608         (vreinterpretq_f32_p16): Likewise.
10609         (vreinterpret_s64_s8): Likewise.
10610         (vreinterpret_s64_s16): Likewise.
10611         (vreinterpret_s64_s32): Likewise.
10612         (vreinterpret_s64_f32): Likewise.
10613         (vreinterpret_s64_u8): Likewise.
10614         (vreinterpret_s64_u16): Likewise.
10615         (vreinterpret_s64_u32): Likewise.
10616         (vreinterpret_s64_u64): Likewise.
10617         (vreinterpret_s64_p8): Likewise.
10618         (vreinterpret_s64_p16): Likewise.
10619         (vreinterpretq_s64_s8): Likewise.
10620         (vreinterpretq_s64_s16): Likewise.
10621         (vreinterpretq_s64_s32): Likewise.
10622         (vreinterpretq_s64_f32): Likewise.
10623         (vreinterpretq_s64_u8): Likewise.
10624         (vreinterpretq_s64_u16): Likewise.
10625         (vreinterpretq_s64_u32): Likewise.
10626         (vreinterpretq_s64_u64): Likewise.
10627         (vreinterpretq_s64_p8): Likewise.
10628         (vreinterpretq_s64_p16): Likewise.
10629         (vreinterpret_u64_s8): Likewise.
10630         (vreinterpret_u64_s16): Likewise.
10631         (vreinterpret_u64_s32): Likewise.
10632         (vreinterpret_u64_s64): Likewise.
10633         (vreinterpret_u64_f32): Likewise.
10634         (vreinterpret_u64_u8): Likewise.
10635         (vreinterpret_u64_u16): Likewise.
10636         (vreinterpret_u64_u32): Likewise.
10637         (vreinterpret_u64_p8): Likewise.
10638         (vreinterpret_u64_p16): Likewise.
10639         (vreinterpretq_u64_s8): Likewise.
10640         (vreinterpretq_u64_s16): Likewise.
10641         (vreinterpretq_u64_s32): Likewise.
10642         (vreinterpretq_u64_s64): Likewise.
10643         (vreinterpretq_u64_f32): Likewise.
10644         (vreinterpretq_u64_u8): Likewise.
10645         (vreinterpretq_u64_u16): Likewise.
10646         (vreinterpretq_u64_u32): Likewise.
10647         (vreinterpretq_u64_p8): Likewise.
10648         (vreinterpretq_u64_p16): Likewise.
10649         (vreinterpret_s8_s16): Likewise.
10650         (vreinterpret_s8_s32): Likewise.
10651         (vreinterpret_s8_s64): Likewise.
10652         (vreinterpret_s8_f32): Likewise.
10653         (vreinterpret_s8_u8): Likewise.
10654         (vreinterpret_s8_u16): Likewise.
10655         (vreinterpret_s8_u32): Likewise.
10656         (vreinterpret_s8_u64): Likewise.
10657         (vreinterpret_s8_p8): Likewise.
10658         (vreinterpret_s8_p16): Likewise.
10659         (vreinterpretq_s8_s16): Likewise.
10660         (vreinterpretq_s8_s32): Likewise.
10661         (vreinterpretq_s8_s64): Likewise.
10662         (vreinterpretq_s8_f32): Likewise.
10663         (vreinterpretq_s8_u8): Likewise.
10664         (vreinterpretq_s8_u16): Likewise.
10665         (vreinterpretq_s8_u32): Likewise.
10666         (vreinterpretq_s8_u64): Likewise.
10667         (vreinterpretq_s8_p8): Likewise.
10668         (vreinterpretq_s8_p16): Likewise.
10669         (vreinterpret_s16_s8): Likewise.
10670         (vreinterpret_s16_s32): Likewise.
10671         (vreinterpret_s16_s64): Likewise.
10672         (vreinterpret_s16_f32): Likewise.
10673         (vreinterpret_s16_u8): Likewise.
10674         (vreinterpret_s16_u16): Likewise.
10675         (vreinterpret_s16_u32): Likewise.
10676         (vreinterpret_s16_u64): Likewise.
10677         (vreinterpret_s16_p8): Likewise.
10678         (vreinterpret_s16_p16): Likewise.
10679         (vreinterpretq_s16_s8): Likewise.
10680         (vreinterpretq_s16_s32): Likewise.
10681         (vreinterpretq_s16_s64): Likewise.
10682         (vreinterpretq_s16_f32): Likewise.
10683         (vreinterpretq_s16_u8): Likewise.
10684         (vreinterpretq_s16_u16): Likewise.
10685         (vreinterpretq_s16_u32): Likewise.
10686         (vreinterpretq_s16_u64): Likewise.
10687         (vreinterpretq_s16_p8): Likewise.
10688         (vreinterpretq_s16_p16): Likewise.
10689         (vreinterpret_s32_s8): Likewise.
10690         (vreinterpret_s32_s16): Likewise.
10691         (vreinterpret_s32_s64): Likewise.
10692         (vreinterpret_s32_f32): Likewise.
10693         (vreinterpret_s32_u8): Likewise.
10694         (vreinterpret_s32_u16): Likewise.
10695         (vreinterpret_s32_u32): Likewise.
10696         (vreinterpret_s32_u64): Likewise.
10697         (vreinterpret_s32_p8): Likewise.
10698         (vreinterpret_s32_p16): Likewise.
10699         (vreinterpretq_s32_s8): Likewise.
10700         (vreinterpretq_s32_s16): Likewise.
10701         (vreinterpretq_s32_s64): Likewise.
10702         (vreinterpretq_s32_f32): Likewise.
10703         (vreinterpretq_s32_u8): Likewise.
10704         (vreinterpretq_s32_u16): Likewise.
10705         (vreinterpretq_s32_u32): Likewise.
10706         (vreinterpretq_s32_u64): Likewise.
10707         (vreinterpretq_s32_p8): Likewise.
10708         (vreinterpretq_s32_p16): Likewise.
10709         (vreinterpret_u8_s8): Likewise.
10710         (vreinterpret_u8_s16): Likewise.
10711         (vreinterpret_u8_s32): Likewise.
10712         (vreinterpret_u8_s64): Likewise.
10713         (vreinterpret_u8_f32): Likewise.
10714         (vreinterpret_u8_u16): Likewise.
10715         (vreinterpret_u8_u32): Likewise.
10716         (vreinterpret_u8_u64): Likewise.
10717         (vreinterpret_u8_p8): Likewise.
10718         (vreinterpret_u8_p16): Likewise.
10719         (vreinterpretq_u8_s8): Likewise.
10720         (vreinterpretq_u8_s16): Likewise.
10721         (vreinterpretq_u8_s32): Likewise.
10722         (vreinterpretq_u8_s64): Likewise.
10723         (vreinterpretq_u8_f32): Likewise.
10724         (vreinterpretq_u8_u16): Likewise.
10725         (vreinterpretq_u8_u32): Likewise.
10726         (vreinterpretq_u8_u64): Likewise.
10727         (vreinterpretq_u8_p8): Likewise.
10728         (vreinterpretq_u8_p16): Likewise.
10729         (vreinterpret_u16_s8): Likewise.
10730         (vreinterpret_u16_s16): Likewise.
10731         (vreinterpret_u16_s32): Likewise.
10732         (vreinterpret_u16_s64): Likewise.
10733         (vreinterpret_u16_f32): Likewise.
10734         (vreinterpret_u16_u8): Likewise.
10735         (vreinterpret_u16_u32): Likewise.
10736         (vreinterpret_u16_u64): Likewise.
10737         (vreinterpret_u16_p8): Likewise.
10738         (vreinterpret_u16_p16): Likewise.
10739         (vreinterpretq_u16_s8): Likewise.
10740         (vreinterpretq_u16_s16): Likewise.
10741         (vreinterpretq_u16_s32): Likewise.
10742         (vreinterpretq_u16_s64): Likewise.
10743         (vreinterpretq_u16_f32): Likewise.
10744         (vreinterpretq_u16_u8): Likewise.
10745         (vreinterpretq_u16_u32): Likewise.
10746         (vreinterpretq_u16_u64): Likewise.
10747         (vreinterpretq_u16_p8): Likewise.
10748         (vreinterpretq_u16_p16): Likewise.
10749         (vreinterpret_u32_s8): Likewise.
10750         (vreinterpret_u32_s16): Likewise.
10751         (vreinterpret_u32_s32): Likewise.
10752         (vreinterpret_u32_s64): Likewise.
10753         (vreinterpret_u32_f32): Likewise.
10754         (vreinterpret_u32_u8): Likewise.
10755         (vreinterpret_u32_u16): Likewise.
10756         (vreinterpret_u32_u64): Likewise.
10757         (vreinterpret_u32_p8): Likewise.
10758         (vreinterpret_u32_p16): Likewise.
10759         (vreinterpretq_u32_s8): Likewise.
10760         (vreinterpretq_u32_s16): Likewise.
10761         (vreinterpretq_u32_s32): Likewise.
10762         (vreinterpretq_u32_s64): Likewise.
10763         (vreinterpretq_u32_f32): Likewise.
10764         (vreinterpretq_u32_u8): Likewise.
10765         (vreinterpretq_u32_u16): Likewise.
10766         (vreinterpretq_u32_u64): Likewise.
10767         (vreinterpretq_u32_p8): Likewise.
10768         (vreinterpretq_u32_p16): Likewise.
10769
10770 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
10771
10772         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
10773         Pattern extended.
10774         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
10775         (sqabs): Likewise.
10776         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
10777         (vqnegd_s64): Likewise.
10778         (vqabs_s64): Likewise.
10779         (vqabsd_s64): Likewise.
10780
10781 2014-04-22  Richard Henderson  <rth@redhat.com>
10782
10783         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
10784         computation to the top of the loop.
10785
10786 2014-04-22  Renlin  <renlin.li@arm.com>
10787             Jiong Wang  <jiong.wang@arm.com>
10788
10789         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
10790         * config/aarch64/aarch64.c (aarch64_layout_frame)
10791         (aarch64_initial_elimination_offset): Likewise.
10792
10793 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10794
10795         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
10796         Fix indentation.
10797
10798 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
10799
10800         * machmode.h (bitwise_mode_for_mode): Declare.
10801         * stor-layout.h (bitwise_type_for_mode): Likewise.
10802         * stor-layout.c (bitwise_mode_for_mode): New function.
10803         (bitwise_type_for_mode): Likewise.
10804         * builtins.c (fold_builtin_memory_op): Use it instead of
10805         int_mode_for_mode and build_nonstandard_integer_type.
10806
10807 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10808
10809         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
10810         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
10811         (*-*-solaris2*): Simplify.
10812         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
10813         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
10814         *-*-solaris2.9* handling.
10815
10816         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
10817         as bug.
10818         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
10819         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
10820         handling, simplify.
10821         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
10822         * configure: Regenerate.
10823
10824         * config/i386/sol2-9.h: Remove.
10825
10826         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
10827         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
10828         Remove Solaris 9 references.
10829
10830 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
10831
10832         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
10833         (floatuns<GPI:mode><GPF:mode>2): Remove.
10834         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
10835         and floatuns conversions.
10836         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
10837         and floatuns conversions.
10838         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
10839         (w1,w2): New mode attributes for inequal width conversions.
10840
10841 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
10842
10843         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
10844         the output asm format.
10845
10846 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
10847
10848         * config/aarch64/aarch64-simd.md
10849         (aarch64_cm<optab>di): Always split.
10850         (*aarch64_cm<optab>di): New.
10851         (aarch64_cmtstdi): Always split.
10852         (*aarch64_cmtstdi): New.
10853
10854 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
10855
10856         PR tree-optimization/60823
10857         * omp-low.c (ipa_simd_modify_function_body): Go through
10858         all SSA_NAMEs and for those refering to vector arguments
10859         which are going to be replaced adjust SSA_NAME_VAR and,
10860         if it is a default definition, change it into a non-default
10861         definition assigned at the beginning of function from new_decl.
10862         (ipa_simd_modify_stmt_ops): Rewritten.
10863         * tree-dfa.c (set_ssa_default_def): When removing default def,
10864         check for NULL loc instead of NULL *loc.
10865
10866 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10867
10868         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
10869         restrictions on core registers for DImode values in Thumb2.
10870
10871 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
10872
10873         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
10874         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
10875
10876 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
10877
10878         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
10879         (*iordi_notzesidi_di): Likewise.
10880         (*iordi_notsesidi_di): Likewise.
10881
10882 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
10883
10884         * config/arm/arm-protos.h (tune_params): New struct members.
10885         * config/arm/arm.c: Initialise tune_params per processor.
10886         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
10887         for speed, based on new tune_params.
10888
10889 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
10890
10891         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
10892         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
10893         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
10894         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
10895         * config/aarch64/arm_neon.h (vrnd_f64): Added.
10896         (vrnda_f64): Likewise.
10897         (vrndi_f64): Likewise.
10898         (vrndm_f64): Likewise.
10899         (vrndn_f64): Likewise.
10900         (vrndp_f64): Likewise.
10901         (vrndx_f64): Likewise.
10902
10903 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10904
10905         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
10906         GET_MODE_SIZE argument is enum machine_mode.
10907
10908 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
10909
10910         PR target/60910
10911         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
10912         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
10913
10914 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
10915
10916         PR middle-end/60281
10917         * asan.c (asan_emit_stack_protection): Force the base to align to
10918         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
10919         appropriate bits if STRICT_ALIGNMENT.
10920         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
10921         when asan is on.
10922         (expand_used_vars): Leave a space in the stack frame for alignment
10923         if STRICT_ALIGNMENT.
10924
10925 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
10926
10927         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
10928         than a gimple.
10929         (gimple_store_p): Likewise.
10930         (gimple_assign_load_p): Likewise.
10931         (gimple_assign_cast_p): Likewise.
10932         (gimple_clobber_p): Likewise.
10933
10934         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
10935         rather than a gimple.
10936         (gimple_assign_cast_p): Likewise.
10937
10938 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
10939
10940         PR target/60735
10941         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
10942         If mode is DDmode and TARGET_E500_DOUBLE allow move.
10943
10944         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
10945         more debug information for E500 if -mdebug=reg.
10946
10947 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
10948
10949         PR target/60909
10950         * config/i386/i386.c (ix86_expand_builtin)
10951         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
10952         register for target RTX.
10953         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
10954
10955 2014-04-18  Cong Hou  <congh@google.com>
10956
10957         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
10958         the widen-mult pattern by handling two operands with different sizes,
10959         and operands whose size is smaller than half of the result type.
10960
10961 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
10962
10963         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
10964         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
10965         (do_estimate_edge_time): Compute it.
10966         * ipa-inline.c (want_inline_small_function_p): Bypass
10967         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
10968
10969 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
10970
10971         * ipa-inline.c (spec_rem): New static variable.
10972         (dump_overall_stats): New function.
10973         (dump_inline_stats): New function.
10974
10975 2014-04-18  Richard Henderson  <rth@redhat.com>
10976
10977         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
10978         to GET_MODE_SIZE, not a reg_class_t.
10979
10980 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10981
10982         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
10983         (vsx_xxmrglw_<mode>): Likewise.
10984
10985 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
10986
10987         PR target/60876
10988         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
10989         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
10990         (rs6000_init_hard_regno_mode_ok): Likewise.
10991
10992 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
10993
10994         * ipa-inline.c (inline_small_functions): Account only non-cold
10995         functions.
10996         * doc/invoke.texi (inline-unit-growth): Update documentation.
10997
10998 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
10999
11000         * config/rs6000/rs6000.md (addti3, subti3): New.
11001
11002 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
11003
11004         PR target/60863
11005         * config/i386/i386.c (ix86_expand_clear): Remove outdated
11006         comment.  Check optimize_insn_for_size_p instead of
11007         optimize_insn_for_speed_p.
11008
11009 2014-04-17  Martin Jambor  <mjambor@suse.cz>
11010
11011         * gimple-iterator.c (gsi_start_edge): New function.
11012         * gimple-iterator.h (gsi_start_edge): Declare.
11013         * tree-sra.c (single_non_eh_succ): New function.
11014         (disqualify_ops_if_throwing_stmt): Renamed to
11015         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
11016         having one non-EH successor BB.
11017         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
11018         generate loads into replacements.
11019         (sra_modify_assign): Likewise and and also use the simple path for
11020         such statements.
11021         (sra_modify_function_body): Commit statements on edges.
11022
11023 2014-04-17  Richard Biener  <rguenther@suse.de>
11024
11025         PR middle-end/60849
11026         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
11027         comparison results and add clarifying comment.
11028
11029 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
11030
11031         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
11032         (blank_mode): Initialize it.
11033         (emit_mode_size_inline, emit_mode_nunits_inline,
11034         emit_mode_inner_inline): New functions.
11035         (emit_insn_modes_h): Call them and surround their output with
11036         #if GCC_VERSION >= 4001 ... #endif.
11037         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
11038         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
11039         mode_* arrays if the argument is __builtin_constant_p.
11040         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
11041         is enum machine_mode.
11042
11043 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11044
11045         * passes.c (opt_pass::execute): Adjust.
11046         (pass_manager::execute_pass_mode_switching): Likewise.
11047         (early_local_passes::execute): Likewise.
11048         (execute_one_pass): Pass cfun to the pass's execute method.
11049         * tree-pass.h (opt_pass::execute): Add function * argument.
11050         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
11051         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
11052         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
11053         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11054         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
11055         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
11056         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
11057         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
11058         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
11059         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
11060         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
11061         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
11062         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
11063         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
11064         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
11065         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
11066         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
11067         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
11068         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11069         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11070         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11071         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11072         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11073         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11074         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11075         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11076         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
11077         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
11078         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
11079         Adjust.
11080
11081 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11082
11083         * passes.c (opt_pass::gate): Take function * argument.
11084         (gate_all_early_local_passes): Merge into
11085         (early_local_passes::gate): this.
11086         (gate_all_early_optimizations): Merge into
11087         (all_early_optimizations::gate): this.
11088         (gate_all_optimizations): Mege into
11089         (all_optimizations::gate): this.
11090         (gate_all_optimizations_g): Merge into
11091         (all_optimizations_g::gate): this.
11092         (gate_rest_of_compilation): Mege into
11093         (rest_of_compilation::gate): this.
11094         (gate_postreload): Merge into
11095         (postreload::gate): this.
11096         (dump_one_pass): Pass cfun to the pass's gate method.
11097         (execute_ipa_summary_passes): Likewise.
11098         (execute_one_pass): Likewise.
11099         (ipa_write_summaries_2): Likewise.
11100         (ipa_write_optimization_summaries_1): Likewise.
11101         (ipa_read_summaries_1): Likewise.
11102         (ipa_read_optimization_summaries_1): Likewise.
11103         (execute_ipa_stmt_fixups): Likewise.
11104         * tree-pass.h (opt_pass::gate): Add function * argument.
11105         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
11106         combine-stack-adj.c, combine.c, compare-elim.c,
11107         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11108         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
11109         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
11110         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
11111         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
11112         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
11113         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
11114         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
11115         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
11116         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
11117         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
11118         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
11119         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
11120         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
11121         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
11122         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11123         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11124         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11125         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11126         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11127         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11128         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11129         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
11130         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
11131         var-tracking.c, vtable-verify.c, web.c: Adjust.
11132
11133 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11134
11135         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
11136         * configure: Regenerate.
11137
11138 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11139
11140         * passes.c (dump_one_pass): don't check pass->has_gate.
11141         (execute_ipa_summary_passes): Likewise.
11142         (execute_one_pass): Likewise.
11143         (ipa_write_summaries_2): Likewise.
11144         (ipa_write_optimization_summaries_1): Likewise.
11145         (ipa_read_optimization_summaries_1): Likewise.
11146         (execute_ipa_stmt_fixups): Likewise.
11147         * tree-pass.h (pass_data::has_gate): Remove.
11148         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
11149         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
11150         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
11151         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
11152         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
11153         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
11154         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
11155         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
11156         gimple-low.c, gimple-ssa-isolate-paths.c,
11157         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
11158         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
11159         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
11160         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
11161         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
11162         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
11163         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
11164         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
11165         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
11166         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
11167         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
11168         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
11169         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11170         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
11171         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
11172         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
11173         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11174         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11175         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
11176         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
11177         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
11178         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
11179         Adjust.
11180
11181 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11182
11183         * pass_manager.h (pass_manager::register_dump_files_1): Remove
11184         declaration.
11185         * passes.c (pass_manager::register_dump_files_1): Merge into
11186         (pass_manager::register_dump_files): this, and remove its handling of
11187         properties since the pass always has the properties anyway.
11188         (pass_manager::pass_manager): Adjust.
11189
11190 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
11191
11192         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
11193         * passes.c (pass_manager::register_dump_files_1): Remove dead code
11194         dealing with properties.
11195         (pass_manager::register_dump_files): Adjust.
11196
11197 2014-03-20  Mark Wielaard  <mjw@redhat.com>
11198
11199         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
11200         then represent the bound as normal constant value.
11201
11202 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
11203
11204         PR target/60847
11205         Forward port from 4.8 branch
11206         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
11207
11208         * config/i386/bmiintrin.h (_blsi_u32): New.
11209         (_blsi_u64): Ditto.
11210         (_blsr_u32): Ditto.
11211         (_blsr_u64): Ditto.
11212         (_blsmsk_u32): Ditto.
11213         (_blsmsk_u64): Ditto.
11214         (_tzcnt_u32): Ditto.
11215         (_tzcnt_u64): Ditto.
11216
11217 2014-04-17  Kito Cheng  <kito@0xlab.org>
11218
11219         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
11220
11221 2014-04-17  Richard Biener  <rguenther@suse.de>
11222
11223         PR middle-end/60849
11224         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
11225         boolean results for comparisons.
11226
11227 2014-04-17  Richard Biener  <rguenther@suse.de>
11228
11229         PR tree-optimization/60836
11230         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
11231         initial PHI args to be gimple values.
11232
11233 2014-04-17  Richard Biener  <rguenther@suse.de>
11234
11235         PR tree-optimization/60841
11236         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
11237         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
11238         of stmts to SLP build.
11239         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
11240         (vect_analyze_slp): Likewise.
11241         (vect_analyze_slp_instance): Likewise.
11242         (vect_build_slp_tree): Limit overall SLP tree growth.
11243         * tree-vectorizer.h (vect_analyze_data_refs,
11244         vect_analyze_slp): Adjust prototypes.
11245
11246 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
11247
11248         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
11249         Silvermont.
11250
11251 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
11252
11253         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
11254         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
11255         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
11256         for TARGET_SLOW_PSHUFB
11257
11258 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
11259
11260         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
11261         * config/i386/i386.c (intel_cost): Ditto.
11262
11263 2014-04-17  Joey Ye  <joey.ye@arm.com>
11264
11265         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
11266
11267 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
11268
11269         * opts.c (common_handle_option): Disable -fipa-reference coorectly
11270         with -fuse-profile.
11271
11272 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
11273
11274         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
11275         (type_all_derivations_known_p): New predicate.
11276         (type_all_ctors_visible_p): New predicate.
11277         (type_possibly_instantiated_p): New predicate.
11278         (get_odr_type): Compute all_derivations_known.
11279         (dump_odr_type): Dump the flag.
11280         (maybe_record_type): Cleanup.
11281         (record_target_from_binfo): Add bases_to_consider array;
11282         record bases for types w/o instances and skip CXX destructor.
11283         (possible_polymorphic_call_targets_1): Add bases_to_consider
11284         and consider_construction parameters; check if type may have instance.
11285         (get_polymorphic_call_info): Set maybe_in_construction to true
11286         when we know nothing.
11287         (record_targets_from_bases): Skip CXX destructors; they are
11288         never called for types in construction.
11289         (possible_polymorphic_call_targets): Do not record target when
11290         type may not have instance.
11291
11292 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
11293
11294         PR ipa/60854
11295         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
11296         external aliases alive, too.
11297
11298 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
11299
11300         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
11301         definition.
11302
11303 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
11304
11305         * final.c (compute_alignments): Do not apply loop alignment to a block
11306         falling through to the exit.
11307
11308 2014-04-16  Catherine Moore  <clm@codesourcery.com>
11309
11310         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
11311         Adjust constraints for microMIPS store patterns.
11312
11313 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
11314
11315         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
11316
11317 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
11318
11319         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
11320         (append_use): Run at -O0.
11321         (append_vdef): Likewise.
11322         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
11323         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
11324
11325 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
11326
11327         PR tree-optimization/60844
11328         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
11329         (propagate_op_to_single_use, remove_visited_stmt_chain,
11330         linearize_expr, repropagate_negates, reassociate_bb): Use it
11331         instead of gsi_remove.
11332
11333 2014-04-16  Martin Jambor  <mjambor@suse.cz>
11334
11335         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
11336         ipa_transforms_to_apply.
11337         (cgraph_function_versioning): Assert that old_node has empty
11338         ipa_transforms_to_apply.
11339         * trans-mem.c (ipa_tm_create_version): Likewise.
11340         * tree-inline.c (tree_function_versioning): Do not duplicate
11341         ipa_transforms_to_apply.
11342
11343 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11344
11345         PR target/60817
11346         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
11347         x86_64-*-* cases.
11348         Pass necessary as flags on 64-bit Solaris/x86.
11349         Use lowercase relocs for x86_64-*-*.
11350         * configure: Regenerate.
11351
11352 2014-04-15  Jan Hubicka  <jh@suse.cz>
11353
11354         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
11355         (maybe_record_node, likely_target_p): Use it.
11356
11357 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11358
11359         PR target/60839
11360         Revert following patch
11361
11362         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11363
11364         PR target/60735
11365         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
11366         software floating point or no floating point registers, do not
11367         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
11368         in GPRs that occurs after we tested for GPRs that would never be
11369         true.
11370
11371         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
11372         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
11373         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
11374         specifically allow DDmode, since that does not use the SPE SIMD
11375         instructions.
11376
11377 2014-03-21  Mark Wielaard  <mjw@redhat.com>
11378
11379         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
11380         as unsigned or int depending on type and value used.
11381
11382 2014-04-15  Richard Biener  <rguenther@suse.de>
11383
11384         PR rtl-optimization/56965
11385         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
11386         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
11387         ... here.
11388         * alias.c (true_dependence_1): Do not call
11389         nonoverlapping_component_refs_p.
11390         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
11391         nonoverlapping_component_refs_p.
11392         (indirect_refs_may_alias_p): Likewise.
11393
11394 2014-04-15  Teresa Johnson  <tejohnson@google.com>
11395
11396         * cfg.c (dump_bb_info): Fix flags check.
11397         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
11398
11399 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11400
11401         PR rtl-optimization/60663
11402         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
11403         avoid 0 cost.
11404
11405 2014-04-15  Richard Biener  <rguenther@suse.de>
11406
11407         * lto-streamer.h (LTO_major_version): Bump to 4.
11408
11409 2014-04-15  Richard Biener  <rguenther@suse.de>
11410
11411         * common.opt (lto_partition_model): New enum.
11412         (flto-partition=): Merge separate options with a single with argument,
11413         add -flto-partition=one support.
11414         * flag-types.h (enum lto_partition_model): Declare.
11415         * opts.c (finish_options): Remove duplicate -flto-partition=
11416         option check.
11417         * lto-wrapper.c (run_gcc): Adjust.
11418
11419 2014-04-15  Richard Biener  <rguenther@suse.de>
11420
11421         * alias.c (ncr_compar): New function.
11422         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
11423
11424 2014-04-15  Richard Biener  <rguenther@suse.de>
11425
11426         * alias.c (record_component_aliases): Do not walk BINFOs.
11427
11428 2014-04-15  Richard Biener  <rguenther@suse.de>
11429
11430         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11431         Add struct function argument and adjust.
11432         (find_func_aliases_for_call): Likewise.
11433         (find_func_aliases): Likewise.
11434         (find_func_clobbers): Likewise.
11435         (intra_create_variable_infos): Likewise.
11436         (compute_points_to_sets): Likewise.
11437         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
11438
11439 2014-04-15  Richard Biener  <rguenther@suse.de>
11440
11441         * tree.c (iterative_hash_expr): Use enum tree_code_class
11442         to store TREE_CODE_CLASS.
11443         (tree_block): Likewise.
11444         (tree_set_block): Likewise.
11445         * tree.h (fold_build_pointer_plus_loc): Use
11446         convert_to_ptrofftype_loc.
11447
11448 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
11449
11450         PR plugins/59335
11451         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
11452         added in 4.9.
11453
11454 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
11455
11456         * cfgloop.h (struct loop): Move force_vectorize down.
11457         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
11458         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
11459         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
11460         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
11461         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
11462         * tree-core.h (enum annot_expr_kind): Add new kind values.
11463         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
11464         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
11465         kinds.
11466         * tree.def (ANNOTATE_EXPR): Tweak comment.
11467
11468 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
11469
11470         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
11471         cxa_pure_virtual).
11472
11473 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
11474
11475         * tree.h (TYPE_IDENTIFIER): Declare.
11476         * tree.c (subrange_type_for_debug_p): Use it.
11477         * godump.c (go_format_type): Likewise.
11478         * dwarf2out.c (is_cxx_auto, modified_type_die,
11479         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
11480         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
11481
11482 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
11483
11484         PR lto/60820
11485         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
11486
11487 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
11488
11489         * config/i386/i386.c (examine_argument): Return bool.  Return true if
11490         parameter should be passed in memory.
11491         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
11492         (construct_container): Update calls to examine_argument.
11493         (function_arg_advance_64): Ditto.
11494         (return_in_memory_32): Merge with ix86_return_in_memory.
11495         (return_in_memory_64): Ditto.
11496         (return_in_memory_ms_64): Ditto.
11497
11498 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
11499
11500         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
11501         * coverage.c (coverage_compute_profile_id): Handle externally visible
11502         symbols.
11503
11504 2014-04-14  Martin Jambor  <mjambor@suse.cz>
11505
11506         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
11507         DECL_DISREGARD_INLINE_LIMITS functions.
11508
11509 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
11510
11511         PR target/60827
11512         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
11513
11514 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
11515
11516         PR target/60827
11517         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
11518         optimize_insn_for_speed_p instead of
11519         optimize_function_for_speed_p.
11520
11521 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
11522
11523         * doc/invoke.texi (free): Document AArch64.
11524
11525 2014-04-14  Richard Biener  <rguenther@suse.de>
11526
11527         PR tree-optimization/60042
11528         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
11529         (insert_into_preds_of_block): Do not prevent PHI insertion
11530         for REFERENCE exprs here ...
11531         (eliminate_dom_walker::before_dom_children): ... but prevent
11532         their use here under similar conditions when applied to the
11533         IL after PRE optimizations.
11534
11535 2014-04-14  Richard Biener  <rguenther@suse.de>
11536
11537         * passes.def: Move early points-to after early SRA.
11538
11539 2014-04-14  Richard Biener  <rguenther@suse.de>
11540
11541         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
11542         check for which sign-changes we allow when forwarding
11543         a converted value into a switch.
11544
11545 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
11546
11547         * stor-layout.c (place_field): Finalize non-constant offset for the
11548         field, if any.
11549
11550 2014-04-14  Richard Biener  <rguenther@suse.de>
11551
11552         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
11553         as argument.
11554         (expand_switch_using_bit_tests_p): Likewise.
11555         (process_switch): Compute and pass on speed_p based on the
11556         switch stmt.
11557         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
11558         optimize_bb_for_speed_p.
11559
11560 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
11561
11562         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
11563         * function.h (struct function): Rename has_force_vect_loops into
11564         has_force_vectorize_loops.
11565         * lto-streamer-in.c (input_cfg): Adjust for renaming.
11566         (input_struct_function_base): Likewise.
11567         * lto-streamer-out.c (output_cfg): Likewise.
11568         (output_struct_function_base): Likewise.
11569         * omp-low.c (expand_omp_simd): Likewise.
11570         * tree-cfg.c (move_sese_region_to_fn): Likewise.
11571         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
11572         (version_loop_for_if_conversion): Likewise.
11573         (tree_if_conversion): Likewise.
11574         (main_tree_if_conversion): Likewise.
11575         (gate_tree_if_conversion): Likewise.
11576         * tree-inline.c (copy_loops): Likewise.
11577         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
11578         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
11579         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
11580         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
11581         * tree-vectorizer.c (vectorize_loops): Likewise.
11582         * tree-vectorizer.h (unlimited_cost_model): Likewise.
11583
11584 2014-04-14  Richard Biener  <rguenther@suse.de>
11585
11586         PR lto/60720
11587         * lto-streamer-out.c (wrap_refs): New function.
11588         (lto_output): Wrap symbol references in global initializes in
11589         type-preserving MEM_REFs.
11590
11591 2014-04-14  Christian Bruel  <christian.bruel@st.com>
11592
11593         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
11594
11595 2014-04-14  Christian Bruel  <christian.bruel@st.com>
11596
11597         * config/sh/sh.md (setmemqi): New expand pattern.
11598         * config/sh/sh.h (CLEAR_RATIO): Define.
11599         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
11600         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
11601
11602 2014-04-14  Richard Biener  <rguenther@suse.de>
11603
11604         PR middle-end/55022
11605         * fold-const.c (negate_expr_p): Don't negate directional rounding
11606         division.
11607         (fold_negate_expr): Likewise.
11608
11609 2014-04-14  Richard Biener  <rguenther@suse.de>
11610
11611         PR tree-optimization/59817
11612         PR tree-optimization/60453
11613         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
11614         recursion to catch all CHRECs in the scalar evolution and restrict
11615         the predicate for the remains appropriately.
11616
11617 2014-04-12  Catherine Moore  <clm@codesourcery.com>
11618
11619         * config/mips/constraints.md: Add new register constraint "kb".
11620         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
11621         (*movhi_internal): Likewise.
11622         (*movqi_internal): Likewise.
11623         * config/mips/mips.h (M16_STORE_REGS): New register class.
11624         (REG_CLASS_NAMES): Add M16_STORE_REGS.
11625         (REG_CLASS_CONTENTS): Likewise.
11626         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
11627
11628 2014-04-11  Tobias Burnus  <burnus@net-b.de>
11629
11630         PR c/60194
11631         * doc/invoke.texi (-Wformat-signedness): Document it.
11632         (Wformat=2): Mention that this enables -Wformat-signedness.
11633
11634 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
11635
11636         * common/config/epiphany/epiphany-common.c
11637         (epiphany_option_optimization_table): Enable section anchors by
11638         default at -O1 or higher.
11639         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
11640         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
11641         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
11642         carries no extra cost.
11643         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
11644         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
11645         * config/epiphany/predicates.md (memclob_operand): New predicate.
11646         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
11647         Use memclob_operand predicate and X constraint for operand 3.
11648
11649 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
11650
11651         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
11652         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
11653         its operands.
11654
11655 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
11656
11657         PR rtl-optimization/60651
11658         * mode-switching.c (optimize_mode_switching): Make sure to emit
11659         sets of a lower numbered entity before sets of a higher numbered
11660         entity to a mode of the same or lower priority.
11661         When creating a seginfo for a basic block that starts with a code
11662         label, move the insertion point past the code label.
11663         (new_seginfo): Document and enforce requirement that
11664         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
11665         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
11666         * doc/tm.texi: Regenerate.
11667
11668 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
11669
11670         PR target/60811
11671         * config/arc/arc.c (arc_save_restore): Fix assert typo.
11672
11673 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
11674
11675         * BASE-VER: Set to 4.10.0.
11676
11677 2014-04-11  Tobias Burnus  <burnus@net-b.de>
11678
11679         PR other/59055
11680         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
11681         * doc/gcc.texi (Service): Update description in the @menu
11682         * doc/invoke.texi (Option Summary): Remove misplaced and
11683         duplicated @menu.
11684
11685 2014-04-11  Steve Ellcey  <sellcey@mips.com>
11686             Jakub Jelinek  <jakub@redhat.com>
11687
11688         PR middle-end/60556
11689         * expr.c (convert_move): Use emit_store_flag_force instead of
11690         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
11691         argument to it.
11692
11693 2014-04-11  Richard Biener  <rguenther@suse.de>
11694
11695         PR middle-end/60797
11696         * varasm.c (assemble_alias): Avoid endless error reporting
11697         recursion by setting TREE_ASM_WRITTEN.
11698
11699 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11700
11701         * config/s390/s390.md: Add a splitter for NOT rtx.
11702
11703 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
11704
11705         PR rtl-optimization/60663
11706         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
11707
11708 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
11709             Jakub Jelinek  <jakub@redhat.com>
11710
11711         PR lto/60567
11712         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
11713         flag from decl_node to node.
11714
11715 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11716
11717         PR debug/60655
11718         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
11719         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
11720         ameliorating the cases where it can be.
11721
11722 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
11723
11724         Revert
11725         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
11726
11727         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
11728         (loadsync_<mode>): Change mode.
11729         (load_quadpti, store_quadpti): New.
11730         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
11731         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
11732         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
11733
11734 2014-04-09  Cong Hou  <congh@google.com>
11735
11736         PR testsuite/60773
11737         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
11738         documentation.
11739
11740 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11741
11742         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
11743         instead of vnor to exploit possible fusion opportunity in the
11744         future.
11745         (altivec_expand_vec_perm_const_le): Likewise.
11746
11747 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
11748
11749         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
11750         (loadsync_<mode>): Change mode.
11751         (load_quadpti, store_quadpti): New.
11752         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
11753         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
11754
11755 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
11756
11757         PR target/60763
11758         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
11759         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
11760         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
11761
11762 2014-04-08  Richard Biener  <rguenther@suse.de>
11763
11764         PR middle-end/60706
11765         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
11766         a 64bit widest int print double-int similar to on HWI64 hosts.
11767
11768 2014-04-08  Richard Biener  <rguenther@suse.de>
11769
11770         PR tree-optimization/60785
11771         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
11772         default defs properly.
11773
11774 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
11775
11776         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
11777         (Weffc++): Likewise.
11778
11779 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
11780
11781         * ipa-devirt.c (maybe_record_node): When node is not recorded,
11782         set completep to false rather than true.
11783
11784 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
11785
11786         PR target/60504
11787         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
11788         ARM_TARGET2_DWARF_FORMAT.
11789
11790 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
11791
11792         PR target/60609
11793         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
11794         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
11795         ADDR_DIFF_VEC.
11796
11797 2014-04-07  Richard Biener  <rguenther@suse.de>
11798
11799         PR tree-optimization/60766
11800         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
11801         (may_eliminate_iv): Convert cand_value_at result to desired type.
11802
11803 2014-04-07  Jason Merrill  <jason@redhat.com>
11804
11805         PR c++/60731
11806         * common.opt (-fno-gnu-unique): Add.
11807         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
11808
11809 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11810
11811         * haifa-sched.c: Fix outdated function reference and minor
11812         grammar errors in introductory comment.
11813
11814 2014-04-07  Richard Biener  <rguenther@suse.de>
11815
11816         PR middle-end/60750
11817         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
11818         for noreturn calls.
11819         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
11820
11821 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
11822
11823         PR debug/55794
11824         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
11825         size accounting for thunks.
11826         (pa_asm_output_mi_thunk): Use final_start_function() and
11827         final_end_function() to output function start and end directives.
11828
11829 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
11830
11831         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
11832         device specific ISA/ feature information. Remove short_sp and
11833         errata_skip ds.  Add avr_device_specific_features enum to have device
11834         specific info.
11835         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
11836         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
11837         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
11838         updated device specific info.
11839         * config/avr/avr-mcus.def: Merge device specific details to
11840         dev_attribute field.
11841         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
11842         errata_skip.
11843         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
11844         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
11845         assembler if RMW isa supported by current device.
11846         * config/avr/genmultilib.awk: Update as device info structure changed.
11847         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
11848
11849 2014-04-04  Cong Hou  <congh@google.com>
11850
11851         PR tree-optimization/60656
11852         * tree-vect-stmts.c (supportable_widening_operation):
11853         Fix a bug that elements in a vector with vect_used_by_reduction
11854         property are incorrectly reordered when the operation on it is not
11855         consistant with the one in reduction operation.
11856
11857 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
11858
11859         PR rtl-optimization/60155
11860         * gcse.c (record_set_data): New function.
11861         (single_set_gcse): New function.
11862         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
11863         (hoist_code): Likewise.
11864         (get_pressure_class_and_nregs): Likewise.
11865
11866 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
11867
11868         * explow.c (probe_stack_range): Emit a final optimization blockage.
11869
11870 2014-04-04  Anthony Green  <green@moxielogic.com>
11871
11872         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
11873         typos.
11874
11875 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
11876
11877         PR ipa/59626
11878         * lto-cgraph.c (input_overwrite_node): Check that partitioning
11879         flags are set only during streaming.
11880         * ipa.c (process_references, walk_polymorphic_call_targets,
11881         symtab_remove_unreachable_nodes): Drop bodies of always inline
11882         after early inlining.
11883         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
11884
11885 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
11886         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11887
11888         PR debug/60655
11889         * dwarf2out.c (const_ok_for_output_1): Reject expressions
11890         containing a NOT.
11891
11892 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11893
11894         PR bootstrap/60743
11895         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
11896         duration.
11897         (cortex_a53_fdivd): Likewise.
11898
11899 2014-04-04  Martin Jambor  <mjambor@suse.cz>
11900
11901         PR ipa/60640
11902         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
11903         Adjust all callers.
11904         * cgraph.c (clone_of_p): Also return true if thunks match.
11905         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
11906         cgraph_function_or_thunk_node and an obsolete comment.
11907         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
11908         file.
11909         (build_function_decl_skip_args): Likewise.
11910         (set_new_clone_decl_and_node_flags): New function.
11911         (duplicate_thunk_for_node): Likewise.
11912         (redirect_edge_duplicating_thunks): Likewise.
11913         (cgraph_clone_node): New parameter args_to_skip, pass it to
11914         redirect_edge_duplicating_thunks which is called instead of
11915         cgraph_redirect_edge_callee.
11916         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
11917         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
11918
11919 2014-04-04  Jeff Law  <law@redhat.com>
11920
11921         PR target/60657
11922         * config/arm/predicates.md (const_int_I_operand): New predicate.
11923         (const_int_M_operand): Similarly.
11924         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
11925         const_int_operand.
11926         (insv_t2, extv_reg, extzv_t2): Likewise.
11927         (load_multiple_with_writeback): Similarly for const_int_I_operand.
11928         (pop_multiple_with_writeback_and_return): Likewise.
11929         (vfp_pop_multiple_with_writeback): Likewise
11930
11931 2014-04-04  Richard Biener  <rguenther@suse.de>
11932
11933         PR ipa/60746
11934         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
11935         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
11936         non-GIMPLE_LABELs.
11937         * gimplify.h (gimple_add_tmp_var_fn): Declare.
11938         * gimplify.c (gimple_add_tmp_var_fn): New function.
11939         * gimple-expr.h (create_tmp_reg_fn): Declare.
11940         * gimple-expr.c (create_tmp_reg_fn): New function.
11941         * gimple-low.c (record_vars_into): Don't change cfun.
11942         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
11943         code generation without cfun.
11944
11945 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
11946
11947         PR bootstrap/60719
11948         * Makefile.in (install-driver): Fix shell scripting.
11949
11950 2014-04-03  Cong Hou  <congh@google.com>
11951
11952         PR tree-optimization/60505
11953         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
11954         threshold of number of iterations below which no vectorization
11955         will be done.
11956         * tree-vect-loop.c (new_loop_vec_info):
11957         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
11958         * tree-vect-loop.c (vect_analyze_loop_operations):
11959         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
11960         * tree-vect-loop.c (vect_transform_loop):
11961         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
11962         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
11963         of iterations of the loop and see if we should build the epilogue.
11964
11965 2014-04-03  Richard Biener  <rguenther@suse.de>
11966
11967         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
11968         (streamer_tree_cache_create): Adjust.
11969         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
11970         to allow optional nodes array.
11971         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
11972         (streamer_tree_cache_append): Likewise.
11973         (streamer_tree_cache_create): Create nodes array optionally
11974         as specified by parameter.
11975         * lto-streamer-out.c (create_output_block): Avoid maintaining
11976         the node array in the writer cache.
11977         (DFS_write_tree): Remove assertion.
11978         (produce_asm_for_decls): Free the out decl state hash table early.
11979         * lto-streamer-in.c (lto_data_in_create): Adjust for
11980         streamer_tree_cache_create prototype change.
11981
11982 2014-04-03  Richard Biener  <rguenther@suse.de>
11983
11984         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
11985         set TREE_CHAIN to NULL_TREE.
11986
11987 2014-04-03  Richard Biener  <rguenther@suse.de>
11988
11989         PR tree-optimization/60740
11990         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
11991         over all GIMPLE_COND operands.
11992
11993 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
11994
11995         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
11996         (Weffc++): Remove Scott's numbering, merge lists and reference
11997         Wnon-virtual-dtor.
11998
11999 2014-04-03  Nick Clifton  <nickc@redhat.com>
12000
12001         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
12002         properly.
12003
12004 2014-04-03  Martin Jambor  <mjambor@suse.cz>
12005
12006         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
12007         mention gcc_unreachable before failing.
12008         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
12009         removed symbols.
12010
12011 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
12012
12013         PR ipa/60659
12014         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
12015         inconsistent code and instead mark the context inconsistent.
12016         (possible_polymorphic_call_targets): For inconsistent contexts
12017         return empty complete list.
12018
12019 2014-04-02  Anthony Green  <green@moxielogic.com>
12020
12021         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
12022         (extendqisi2, extendhisi2): Define.
12023         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
12024         (WCHAR_TYPE): Change to unsigned int.
12025
12026 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12027
12028         PR tree-optimization/60733
12029         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
12030         insertion point for PHI candidates to be the end of the feeding
12031         block for the PHI argument.
12032
12033 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
12034
12035         PR rtl-optimization/60650
12036         * lra-constraints.c (process_alt_operands): Decrease reject for
12037         earlyclobber matching.
12038
12039 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12040
12041         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
12042
12043 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12044
12045         * config/spu/spu.c (pad_bb): Do not crash when the last
12046         insn is CODE_FOR_blockage.
12047
12048 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12049
12050         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
12051         lies outside the target mode.
12052
12053 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12054
12055         PR target/60735
12056         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
12057         software floating point or no floating point registers, do not
12058         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
12059         in GPRs that occurs after we tested for GPRs that would never be
12060         true.
12061
12062         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
12063         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
12064         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
12065         specifically allow DDmode, since that does not use the SPE SIMD
12066         instructions.
12067
12068 2014-04-02  Richard Biener  <rguenther@suse.de>
12069
12070         PR middle-end/60729
12071         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
12072         MODE_INTs.  Properly use negv_optab.
12073         (expand_abs): Likewise.
12074
12075 2014-04-02  Richard Biener  <rguenther@suse.de>
12076
12077         PR bootstrap/60719
12078         * Makefile.in (install-driver): Guard extra installs with special
12079         names properly.
12080
12081 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
12082
12083         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12084         Document vec_vgbbd.
12085
12086 2014-04-01  Richard Henderson  <rth@redhat.com>
12087
12088         PR target/60704
12089         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
12090         alternative enabled before register allocation.
12091
12092 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
12093
12094         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
12095         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
12096         typo.
12097         (nios2_large_got_address): Remove unneeded 'sym' parameter.
12098         (nios2_got_address): Update nios2_large_got_address call site.
12099         (nios2_delegitimize_address): New function.
12100         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
12101         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
12102         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
12103
12104 2014-04-01  Martin Husemann  <martin@duskware.de>
12105
12106         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
12107         for -mabi=32.
12108
12109 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
12110
12111         PR rtl-optimization/60604
12112         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
12113         check from register_operand.
12114         (register_operand): Redefine in terms of general_operand.
12115         (nonmemory_operand): Use register_operand for the non-constant cases.
12116
12117 2014-04-01  Richard Biener  <rguenther@suse.de>
12118
12119         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
12120
12121 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12122
12123         * doc/invoke.texi (mapp-regs): Clarify.
12124
12125 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
12126
12127         * config/i386/avx512fintrin.h (__v32hi): Define type.
12128         (__v64qi): Likewise.
12129         (_mm512_set1_epi8): Define.
12130         (_mm512_set1_epi16): Define.
12131         (_mm512_set4_epi32): Define.
12132         (_mm512_set4_epi64): Define.
12133         (_mm512_set4_pd): Define.
12134         (_mm512_set4_ps): Define.
12135         (_mm512_setr4_epi64): Define.
12136         (_mm512_setr4_epi32): Define.
12137         (_mm512_setr4_pd): Define.
12138         (_mm512_setr4_ps): Define.
12139         (_mm512_setzero_epi32): Define.
12140
12141 2014-03-31  Martin Jambor  <mjambor@suse.cz>
12142
12143         PR middle-end/60647
12144         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
12145         callsite_arguments_match_p.  Updated all callers.  Also check types of
12146         corresponding formal parameters and actual arguments.
12147         (not_all_callers_have_enough_arguments_p) Renamed to
12148         some_callers_have_mismatched_arguments_p.
12149
12150 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
12151
12152         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
12153
12154 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
12155
12156         PR target/60034
12157         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
12158         section anchor.
12159
12160 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
12161
12162         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
12163         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
12164         Split out
12165         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
12166         Use FMAMODE_NOVF512 mode iterator.
12167         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
12168         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
12169         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
12170         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
12171         Split out
12172         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
12173         Use VF_128_256 mode iterator.
12174         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
12175         Ditto.
12176
12177 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
12178
12179         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
12180         static chain if needed.
12181
12182 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
12183
12184         PR target/60697
12185         * lra-constraints.c (index_part_to_reg): New.
12186         (process_address): Use it.
12187
12188 2014-03-27  Jeff Law  <law@redhat.com>
12189             Jakub Jelinek  <jakub@redhat.com>
12190
12191         PR target/60648
12192         * expr.c (do_tablejump): Use simplify_gen_binary rather than
12193         gen_rtx_{PLUS,MULT} to build up the address expression.
12194
12195         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
12196         creating non-canonical RTL.
12197
12198 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
12199
12200         PR ipa/60243
12201         * ipa-inline.c (want_inline_small_function_p): Short circuit large
12202         functions; reorganize to make cheap checks first.
12203         (inline_small_functions): Do not estimate growth when dumping;
12204         it is expensive.
12205         * ipa-inline.h (inline_summary): Add min_size.
12206         (growth_likely_positive): New function.
12207         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
12208         (set_cond_stmt_execution_predicate): Cleanup.
12209         (estimate_edge_size_and_time): Compute min_size.
12210         (estimate_calls_size_and_time): Likewise.
12211         (estimate_node_size_and_time): Likewise.
12212         (inline_update_overall_summary): Update min_size.
12213         (do_estimate_edge_time): Likewise.
12214         (do_estimate_edge_size): Update.
12215         (do_estimate_edge_hints): Update.
12216         (growth_likely_positive): New function.
12217
12218 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
12219
12220         PR target/60693
12221         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
12222         also if addr has VOIDmode.
12223
12224 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12225
12226         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
12227         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
12228         Declare extern.
12229         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
12230         instructions as well as AdvancedSIMD loads.
12231
12232 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12233
12234         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
12235         Use crypto_aese type.
12236         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
12237         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
12238         crypto_aese, crypto_aesmc.  Move to types.md.
12239         * config/arm/types.md (crypto_aes): Split into crypto_aese,
12240         crypto_aesmc.
12241         * config/arm/iterators.md (crypto_type): Likewise.
12242
12243 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
12244
12245         * cgraph.c: Include expr.h and tree-dfa.h.
12246         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
12247         remove LHS.
12248
12249 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
12250
12251         PR target/60675
12252         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
12253         regs from checking multi-reg pseudos.
12254
12255 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12256
12257         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
12258
12259 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12260
12261         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
12262         if it would clobber the stack pointer, even temporarily.
12263
12264 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
12265
12266         * mode-switching.c: Make small adjustments to the top comment.
12267
12268 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
12269
12270         * config/rs6000/constraints.md (wD constraint): New constraint to
12271         match the constant integer to get the top DImode/DFmode out of a
12272         vector in a VSX register.
12273
12274         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
12275         match the constant integer to get the top DImode/DFmode out of a
12276         vector in a VSX register.
12277
12278         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
12279         for ISA 2.07.
12280
12281         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12282         vbpermq builtins.
12283
12284         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
12285         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
12286
12287         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
12288         Optimize vec_extract of 64-bit values, where the value being
12289         extracted is in the top word, where we can use scalar
12290         instructions.  Add direct move and store support.  Combine the big
12291         endian/little endian vector select load support into a single insn.
12292         (vsx_extract_<mode>_internal1): Likewise.
12293         (vsx_extract_<mode>_internal2): Likewise.
12294         (vsx_extract_<mode>_load): Likewise.
12295         (vsx_extract_<mode>_store): Likewise.
12296         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
12297         combined into vsx_extract_<mode>_load.
12298         (vsx_extract_<mode>_one_le): Likewise.
12299
12300         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
12301         define the top 64-bit vector element.
12302
12303         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
12304         constraint.
12305
12306         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12307         Document vec_vbpermq builtin.
12308
12309         PR target/60672
12310         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
12311         enable use of xxsldwi and xxpermdi builtin functions.
12312         (vec_xxpermdi): Likewise.
12313
12314         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
12315         Document use of vec_xxsldwi and vec_xxpermdi builtins.
12316
12317 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
12318
12319         PR rtl-optimization/60650
12320         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
12321         first_p.  Use it.
12322         (find_spills_for): New.
12323         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
12324         Spill all pseudos on the second iteration.
12325
12326 2014-03-27  Marek Polacek  <polacek@redhat.com>
12327
12328         PR c/50347
12329         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
12330         types.
12331
12332 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12333
12334         * config/s390/s390.c (s390_can_use_return_insn): Check for
12335         call-saved FPRs on 31 bit.
12336
12337 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
12338
12339         PR middle-end/60682
12340         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
12341         if they need regimplification, just drop them instead of
12342         calling gimple_regimplify_operands on them.
12343
12344 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12345
12346         PR target/60580
12347         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
12348         (aarch64_frame_pointer_required): Adjust logic.
12349         (aarch64_can_eliminate): Adjust logic.
12350         (aarch64_override_options_after_change): Adjust logic.
12351
12352 2014-03-27  Dehao Chen  <dehao@google.com>
12353
12354         * ipa-inline.c (early_inliner): Update node's inline info.
12355
12356 2014-03-26  Dehao Chen  <dehao@google.com>
12357
12358         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
12359         compiler inserted conditional jumps for NAN float check.
12360
12361 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
12362
12363         * ubsan.h (ubsan_create_data): Change second argument's type
12364         to const location_t *.
12365         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
12366         _("<unknown>").
12367         (ubsan_create_data): Change second argument to const location_t *PLOC.
12368         Create Loc field whenever PLOC is non-NULL.
12369         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
12370         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
12371         callers.
12372
12373         PR other/59545
12374         * real.c (real_to_integer2): Change type of low to UHWI.
12375
12376 2014-03-26  Tobias Burnus  <burnus@net-b.de>
12377
12378         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
12379         (CILK_SELF_SPECS): New define.
12380         (driver_self_specs): Use it.
12381
12382 2014-03-26  Richard Biener  <rguenther@suse.de>
12383
12384         * tree-pretty-print.c (percent_K_format): Implement special
12385         case for LTO and its stripped down BLOCK tree.
12386
12387 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
12388
12389         PR sanitizer/60636
12390         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
12391
12392         * tree-vrp.c (simplify_internal_call_using_ranges): If only
12393         one range is range_int_cst_p, but not both, at least optimize
12394         addition/subtraction of 0 and multiplication by 0 or 1.
12395         * gimple-fold.c (gimple_fold_call): Fold
12396         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
12397         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
12398         INTEGER_CSTs, try to fold at least x * 0 and y - y.
12399
12400 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
12401
12402         PR rtl-optimization/60452
12403         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
12404         <case REG>: Return 1 for invalid offsets from the frame pointer.
12405
12406 2014-03-26  Marek Polacek  <polacek@redhat.com>
12407
12408         PR c/37428
12409         * doc/extend.texi (C Extensions): Mention variable-length arrays in
12410         a structure/union.
12411
12412 2014-03-26  Marek Polacek  <polacek@redhat.com>
12413
12414         PR c/39525
12415         * doc/extend.texi (Designated Inits): Describe what happens to omitted
12416         field members.
12417
12418 2014-03-26  Marek Polacek  <polacek@redhat.com>
12419
12420         PR other/59545
12421         * ira-color.c (update_conflict_hard_regno_costs): Perform the
12422         multiplication in unsigned type.
12423
12424 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
12425
12426         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
12427
12428 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
12429
12430         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
12431
12432 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
12433
12434         PR ipa/60315
12435         * cif-code.def (UNREACHABLE) New code.
12436         * ipa-inline.c (inline_small_functions): Skip edges to
12437         __builtlin_unreachable.
12438         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
12439         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
12440         predicate to __bulitin_unreachable.
12441         (set_cond_stmt_execution_predicate): Fix issue when
12442         invert_tree_comparison returns ERROR_MARK.
12443         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
12444         propagate to inline clones.
12445         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
12446         to unreachable.
12447         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
12448         * cgraphclones.c (cgraph_clone_node): If call destination is already
12449         ureachable, do not redirect it back.
12450         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
12451         unreachable.
12452
12453 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
12454
12455         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
12456         Do not modify inline clones.
12457
12458 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
12459
12460         * config/i386/i386.md (general_sext_operand): New mode attr.
12461         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
12462         don't generate (sign_extend (const_int)).
12463         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
12464         operands[2].  Use We constraint instead of <i> and
12465         <general_sext_operand> predicate instead of <general_operand>.
12466         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
12467         * config/i386/constraints.md (We): New constraint.
12468         * config/i386/predicates.md (x86_64_sext_operand,
12469         sext_operand): New predicates.
12470
12471 2014-03-25  Martin Jambor  <mjambor@suse.cz>
12472
12473         PR ipa/60600
12474         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
12475         inconsistent devirtualizations to __builtin_unreachable.
12476
12477 2014-03-25  Marek Polacek  <polacek@redhat.com>
12478
12479         PR c/35449
12480         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
12481
12482 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
12483
12484         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
12485         order of elements for big-endian.
12486
12487 2014-03-25  Richard Biener  <rguenther@suse.de>
12488
12489         PR middle-end/60635
12490         * gimplify-me.c (gimple_regimplify_operands): Update the
12491         re-gimplifed stmt.
12492
12493 2014-03-25  Martin Jambor  <mjambor@suse.cz>
12494
12495         PR ipa/59176
12496         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
12497         (lto_output_varpool_node): Likewise.
12498         (input_overwrite_node): Likewise.
12499         (input_varpool_node): Likewise.
12500
12501 2014-03-25  Richard Biener  <rguenther@suse.de>
12502
12503         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
12504         (run_gcc): Likewise.
12505
12506 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
12507
12508         * combine.c (simplify_compare_const): Add MODE argument.
12509         Handle mode_width 0 as very large mode_width.
12510         (try_combine, simplify_comparison): Adjust callers.
12511
12512         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
12513         type to avoid signed integer overflow.
12514         * explow.c (plus_constant): Likewise.
12515
12516 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12517
12518         * doc/generic.texi: Correct typos.
12519
12520 2014-03-24  Tobias Burnus  <burnus@net-b.de>
12521
12522         * doc/invoke.texi (-flto): Expand section about
12523         using static libraries with LTO.
12524
12525 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12526
12527         PR rtl-optimization/60501
12528         * optabs.def (addptr3_optab): New optab.
12529         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
12530         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
12531         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
12532
12533         * lra.c (emit_add3_insn): Use the addptr pattern if available.
12534
12535         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
12536
12537 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
12538
12539         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
12540         _mm512_set1_pd.
12541
12542         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
12543         (_mm256_undefined_ps): Define.
12544         (_mm256_undefined_pd): Define.
12545         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
12546         (_mm_undefined_pd): Define.
12547         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
12548         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
12549         (_mm512_undefined_ps): Define.
12550         (_mm512_undefined_pd): Define.
12551         Use _mm*_undefined_*.
12552         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
12553
12554 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
12555
12556         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
12557         (lshr_simd): DI mode added.
12558         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
12559         (aarch64_ushr_simddi): Likewise.
12560         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
12561         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
12562         (vshrd_n_u64): Likewise.
12563
12564 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12565
12566         * Makefile.in (s-macro_list): Depend on cc1.
12567
12568 2014-03-23  Teresa Johnson  <tejohnson@google.com>
12569
12570         * ipa-utils.c (ipa_print_order): Use specified dump file.
12571
12572 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
12573
12574         PR rtl-optimization/60601
12575         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
12576
12577         * gcc.c (eval_spec_function): Initialize save_growing_value.
12578
12579 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
12580
12581         PR sanitizer/60613
12582         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
12583         code == MINUS_EXPR, never swap op0 with op1.
12584
12585         * toplev.c (init_local_tick): Avoid signed integer multiplication
12586         overflow.
12587         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
12588         shift by first operand's bitsize.
12589
12590 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
12591
12592         PR target/60610
12593         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
12594         redefine to 1 or 0.
12595         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
12596         TARGET_ISA_64BIT_P(x).
12597
12598 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12599
12600         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
12601         pattern for vector nor instead of subtract from splat(-1).
12602         (altivec_expand_vec_perm_const_le): Likewise.
12603
12604 2014-03-21  Richard Henderson  <rth@twiddle.net>
12605
12606         PR target/60598
12607         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
12608         related insns after epilogue_completed.
12609
12610 2014-03-21  Martin Jambor  <mjambor@suse.cz>
12611
12612         PR ipa/59176
12613         * cgraph.h (symtab_node): New flag body_removed.
12614         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
12615         when removing bodies.
12616         * symtab.c (dump_symtab_base): Dump body_removed flag.
12617         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
12618         had their bodies removed.
12619
12620 2014-03-21  Martin Jambor  <mjambor@suse.cz>
12621
12622         PR ipa/60419
12623         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
12624         in the border.
12625
12626 2014-03-21  Richard Biener  <rguenther@suse.de>
12627
12628         PR tree-optimization/60577
12629         * tree-core.h (struct tree_base): Document nothrow_flag use
12630         in DECL_NONALIASED.
12631         * tree.h (DECL_NONALIASED): New.
12632         (may_be_aliased): Adjust.
12633         * coverage.c (build_var): Set DECL_NONALIASED.
12634
12635 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
12636
12637         * expr.c (expand_expr_real_1): Remove outdated comment.
12638
12639 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
12640
12641         PR middle-end/60597
12642         * ira.c (adjust_cleared_regs): Call copy_rtx on
12643         *reg_equiv[REGNO (loc)].src_p before passing it to
12644         simplify_replace_fn_rtx.
12645
12646         PR target/60568
12647         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
12648         into CONST, put pic register as first operand of PLUS.  Use
12649         gen_const_mem for both 32-bit and 64-bit PIC got loads.
12650
12651 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12652
12653         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
12654
12655 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
12656
12657         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
12658         around for store forwarding issue in the FPU on the UT699.
12659         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
12660         loads and operations if -mfix-ut699 is specified.
12661         (divtf3_hq): Tweak attribute.
12662         (sqrttf2_hq): Likewise.
12663
12664 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
12665
12666         * calls.c (store_one_arg): Remove incorrect const qualification on the
12667         type of the temporary.
12668         * cfgexpand.c (expand_return): Likewise.
12669         * expr.c (expand_constructor): Likewise.
12670         (expand_expr_real_1): Likewise.
12671
12672 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
12673
12674         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
12675         of parts.
12676
12677 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
12678
12679         PR target/60039
12680         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
12681
12682 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
12683
12684         * config/arm/aarch-common-protos.h
12685         (alu_cost_table): Fix spelling of "extend".
12686         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
12687
12688 2014-03-19  Richard Biener  <rguenther@suse.de>
12689
12690         PR middle-end/60553
12691         * tree-core.h (tree_type_common): Re-order pointer members
12692         to reduce recursion depth during GC walks.
12693
12694 2014-03-19  Marek Polacek  <polacek@redhat.com>
12695
12696         PR sanitizer/60569
12697         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
12698         before accessing it.
12699
12700 2014-03-19  Richard Biener  <rguenther@suse.de>
12701
12702         PR lto/59543
12703         * lto-streamer-in.c (input_function): In WPA stage do not drop
12704         debug stmts.
12705
12706 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
12707
12708         PR tree-optimization/60559
12709         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
12710         with build_zero_cst assignment.
12711
12712 2014-03-18  Kai Tietz  <ktietz@redhat.com>
12713
12714         PR rtl-optimization/56356
12715         * sdbout.c (sdbout_parms): Verify that parms'
12716         incoming argument is valid.
12717         (sdbout_reg_parms): Likewise.
12718
12719 2014-03-18  Richard Henderson  <rth@redhat.com>
12720
12721         PR target/60562
12722         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
12723         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
12724         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
12725
12726 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
12727
12728         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
12729         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
12730         Italicize plugin event names in description.  Explain that
12731         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
12732         Remind that no GCC functions should be called after PLUGIN_FINISH.
12733         Explain what pragmas with expansion are.
12734
12735 2014-03-18  Martin Liska  <mliska@suse.cz>
12736
12737         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
12738         gimple call statement is update.
12739         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
12740         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
12741
12742 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
12743
12744         PR sanitizer/60557
12745         * ubsan.c (ubsan_instrument_unreachable): Call
12746         initialize_sanitizer_builtins.
12747         (ubsan_pass): Likewise.
12748
12749         PR sanitizer/60535
12750         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
12751         varpool_finalize_decl instead of rest_of_decl_compilation.
12752
12753 2014-03-18  Richard Biener  <rguenther@suse.de>
12754
12755         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
12756         by using bitmap_and_compl instead of bitmap_and_compl_into.
12757         (df_rd_transfer_function): Likewise.
12758
12759 2014-03-18  Richard Biener  <rguenther@suse.de>
12760
12761         * doc/lto.texi (fresolution): Fix typo.
12762
12763 2014-03-18  Richard Biener  <rguenther@suse.de>
12764
12765         * doc/invoke.texi (flto): Update for changes in 4.9.
12766
12767 2014-03-18  Richard Biener  <rguenther@suse.de>
12768
12769         * doc/loop.texi: Remove section on the removed lambda framework.
12770         Update loop docs with recent changes in preserving loop structure.
12771
12772 2014-03-18  Richard Biener  <rguenther@suse.de>
12773
12774         * doc/lto.texi (-fresolution): Document.
12775
12776 2014-03-18  Richard Biener  <rguenther@suse.de>
12777
12778         * doc/contrib.texi: Adjust my name.
12779
12780 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
12781
12782         PR ipa/58721
12783         * internal-fn.c: Include diagnostic-core.h.
12784         (expand_BUILTIN_EXPECT): New function.
12785         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
12786         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
12787         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
12788         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
12789         IFN_BUILTIN_EXPECT.
12790         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
12791         Revert 3 argument __builtin_expect code.
12792         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
12793         * gimple-fold.c (gimple_fold_call): Likewise.
12794         * tree.h (fold_builtin_expect): New prototype.
12795         * builtins.c (build_builtin_expect_predicate): Add predictor
12796         argument, if non-NULL, create 3 argument __builtin_expect.
12797         (fold_builtin_expect): No longer static.  Add ARG2 argument,
12798         pass it through to build_builtin_expect_predicate.
12799         (fold_builtin_2): Adjust caller.
12800         (fold_builtin_3): Handle BUILT_IN_EXPECT.
12801         * internal-fn.def (BUILTIN_EXPECT): New.
12802
12803 2014-03-18  Tobias Burnus  <burnus@net-b.de>
12804
12805         PR ipa/58721
12806         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
12807         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
12808         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
12809
12810 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
12811
12812         PR ipa/58721
12813         * predict.c (combine_predictions_for_bb): Fix up formatting.
12814         (expr_expected_value_1, expr_expected_value): Add predictor argument,
12815         fill what it points to if non-NULL.
12816         (tree_predict_by_opcode): Adjust caller, use the predictor.
12817         * predict.def (PRED_COMPARE_AND_SWAP): Add.
12818
12819 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
12820
12821         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
12822         proper constant for the store mode.
12823
12824 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
12825
12826         * symtab.c (change_decl_assembler_name): Fix transparent alias
12827         chain construction.
12828
12829 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
12830
12831         * config/aarch64/aarch64.c: Correct the comments about the
12832         aarch64 stack layout.
12833
12834 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
12835
12836         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
12837         check for GF_OMP_FOR_KIND_FOR.
12838
12839 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
12840
12841         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
12842         ymm and zmm register names.
12843
12844 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
12845
12846         PR target/60516
12847         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
12848         note creation for the 2010-08-31 changes.
12849
12850 2014-03-17  Marek Polacek  <polacek@redhat.com>
12851
12852         PR middle-end/60534
12853         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
12854         as -fno-tree-loop-vectorize.
12855         (expand_omp_simd): Likewise.
12856
12857 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
12858
12859         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
12860         (eligible_for_call_delay): New prototype.
12861         * config/sparc/sparc.c (tls_call_delay): Rename into...
12862         (eligible_for_call_delay): ...this.  Return false if the instruction
12863         cannot be put in the delay slot of a branch.
12864         (eligible_for_restore_insn): Simplify.
12865         (eligible_for_return_delay): Return false if the instruction cannot be
12866         put in the delay slot of a branch and simplify.
12867         (eligible_for_sibcall_delay): Return false if the instruction cannot be
12868         put in the delay slot of a branch.
12869         * config/sparc/sparc.md (fix_ut699): New attribute.
12870         (tls_call_delay): Delete.
12871         (in_call_delay): Reimplement.
12872         (eligible_for_sibcall_delay): Rename into...
12873         (in_sibcall_delay): ...this.
12874         (eligible_for_return_delay): Rename into...
12875         (in_return_delay): ...this.
12876         (in_branch_delay): Reimplement.
12877         (in_uncond_branch_delay): Delete.
12878         (in_annul_branch_delay): Delete.
12879
12880 2014-03-14  Richard Henderson  <rth@redhat.com>
12881
12882         PR target/60525
12883         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
12884         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
12885         (*floathi<X87MODEF>2_i387_with_temp): Remove.
12886         (floathi splitters): Remove.
12887         (float<SWI48x>xf2): New pattern.
12888         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
12889         code that tried to handle DImode for 32-bit, but which was excluded
12890         by the pattern's condition.  Drop allocation of stack temporary.
12891         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
12892         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
12893         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
12894         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
12895         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
12896         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
12897         (*float<SWI48><MODEF>2_sse_interunit): Remove.
12898         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
12899         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
12900         (*float<SWI48x><X87MODEF>2_i387): Remove.
12901         (all float _with_temp splitters): Remove.
12902         (*float<SWI48x><MODEF>2_i387): New pattern.
12903         (*float<SWI48><MODEF>2_sse): New pattern.
12904         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
12905         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
12906
12907 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
12908             Marek Polacek  <polacek@redhat.com>
12909
12910         PR middle-end/60484
12911         * common.opt (dump_base_name_prefixed): New Variable.
12912         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
12913         if x_dump_base_name_prefixed is already set, set it at the end.
12914
12915 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
12916
12917         PR rtl-optimization/60508
12918         * lra-constraints.c (get_reload_reg): Add new parameter
12919         in_subreg_p.
12920         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
12921         Pass the new parameter values.
12922
12923 2014-03-14  Richard Biener  <rguenther@suse.de>
12924
12925         * common.opt: Revert unintented changes from r205065.
12926         * opts.c: Likewise.
12927
12928 2014-03-14  Richard Biener  <rguenther@suse.de>
12929
12930         PR middle-end/60518
12931         * cfghooks.c (split_block): Properly adjust all loops the
12932         block was a latch of.
12933
12934 2014-03-14  Martin Jambor  <mjambor@suse.cz>
12935
12936         PR lto/60461
12937         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
12938         and simplify it.
12939
12940 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
12941
12942         PR target/59396
12943         * config/avr/avr.c (avr_set_current_function): Pass function name
12944         through default_strip_name_encoding before sanity checking instead
12945         of skipping the first char of the assembler name.
12946
12947 2014-03-13  Richard Henderson  <rth@redhat.com>
12948
12949         PR debug/60438
12950         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
12951         (ix86_force_to_memory, ix86_free_from_memory): Remove.
12952         * config/i386/i386-protos.h: Likewise.
12953         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
12954         in the expander instead of a splitter.
12955         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
12956         any possibility of requiring a memory.
12957         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
12958         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
12959         (fp branch splitters): Update for ix86_split_fp_branch.
12960         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
12961         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
12962         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
12963         (*fop_<MODEF>_2_i387): Remove f/r alternative.
12964         (*fop_<MODEF>_3_i387): Likewise.
12965         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
12966         (splitters for the fop_* register patterns): Remove.
12967         (fscalexf4_i387): Rename from *fscalexf4_i387.
12968         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
12969
12970 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
12971
12972         PR tree-optimization/59779
12973         * tree-dfa.c (get_ref_base_and_extent): Use double_int
12974         type for bitsize and maxsize instead of HOST_WIDE_INT.
12975
12976 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
12977
12978         PR rtl-optimization/57320
12979         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
12980         the CFG after thread_prologue_and_epilogue_insns.
12981
12982 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
12983
12984         PR rtl-optimization/57189
12985         * lra-constraints.c (process_alt_operands): Disfavor spilling
12986         vector pseudos.
12987
12988 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
12989
12990         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
12991
12992 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
12993
12994         PR tree-optimization/59025
12995         PR middle-end/60418
12996         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
12997         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
12998
12999 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
13000
13001         PR target/60486
13002         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
13003         calls of avr_out_plus_1.
13004
13005 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
13006
13007         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
13008         BB's single pred and update the father loop's latch info later.
13009
13010 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
13011
13012         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
13013         (VEC_M): Likewise.
13014         (VEC_N): Likewise.
13015         (VEC_R): Likewise.
13016         (VEC_base): Likewise.
13017         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
13018         registers, we need to swap double words in little endian mode.
13019
13020         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
13021         to be a container mode for 128-bit integer operations added in ISA
13022         2.07.  Unlike TImode and PTImode, the preferred register set is
13023         the Altivec/VMX registers for the 128-bit operations.
13024
13025         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
13026         declarations.
13027         (rs6000_split_128bit_ok_p): Likewise.
13028
13029         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
13030         macros for creating ISA 2.07 normal and overloaded builtin
13031         functions with 3 arguments.
13032         (BU_P8V_OVERLOAD_3): Likewise.
13033         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
13034         for use as overloaded functions.
13035         (VPERM_1TI_UNS): Likewise.
13036         (VSEL_1TI): Likewise.
13037         (VSEL_1TI_UNS): Likewise.
13038         (ST_INTERNAL_1ti): Likewise.
13039         (LD_INTERNAL_1ti): Likewise.
13040         (XXSEL_1TI): Likewise.
13041         (XXSEL_1TI_UNS): Likewise.
13042         (VPERM_1TI): Likewise.
13043         (VPERM_1TI_UNS): Likewise.
13044         (XXPERMDI_1TI): Likewise.
13045         (SET_1TI): Likewise.
13046         (LXVD2X_V1TI): Likewise.
13047         (STXVD2X_V1TI): Likewise.
13048         (VEC_INIT_V1TI): Likewise.
13049         (VEC_SET_V1TI): Likewise.
13050         (VEC_EXT_V1TI): Likewise.
13051         (EQV_V1TI): Likewise.
13052         (NAND_V1TI): Likewise.
13053         (ORC_V1TI): Likewise.
13054         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
13055         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
13056         overloaded builtin.
13057         (VADDUQM): Likewise.
13058         (VSUBCUQ): Likewise.
13059         (VADDEUQM): Likewise.
13060         (VADDECUQ): Likewise.
13061         (VSUBEUQM): Likewise.
13062         (VSUBECUQ): Likewise.
13063
13064         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
13065         __int128_t and __uint128_t types.
13066         (__uint128_type): Likewise.
13067         (altivec_categorize_keyword): Add support for vector __int128_t,
13068         vector __uint128_t, vector __int128, and vector unsigned __int128
13069         as a container type for TImode operations that need to be done in
13070         VSX/Altivec registers.
13071         (rs6000_macro_to_expand): Likewise.
13072         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
13073         to support 128-bit integer instructions vaddcuq, vadduqm,
13074         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
13075         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
13076
13077         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
13078         for V1TImode, and set up preferences to use VSX/Altivec registers.
13079         Setup VSX reload handlers.
13080         (rs6000_debug_reg_global): Likewise.
13081         (rs6000_init_hard_regno_mode_ok): Likewise.
13082         (rs6000_preferred_simd_mode): Likewise.
13083         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
13084         (easy_altivec_constant): Likewise.
13085         (output_vec_const_move): Likewise.
13086         (rs6000_expand_vector_set): Convert V1TImode set and extract to
13087         simple move.
13088         (rs6000_expand_vector_extract): Likewise.
13089         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
13090         addressing.
13091         (rs6000_const_vec): Add support for V1TImode.
13092         (rs6000_emit_le_vsx_load): Swap double words when loading or
13093         storing TImode/V1TImode.
13094         (rs6000_emit_le_vsx_store): Likewise.
13095         (rs6000_emit_le_vsx_move): Likewise.
13096         (rs6000_emit_move): Add support for V1TImode.
13097         (altivec_expand_ld_builtin): Likewise.
13098         (altivec_expand_st_builtin): Likewise.
13099         (altivec_expand_vec_init_builtin): Likewise.
13100         (altivec_expand_builtin): Likewise.
13101         (rs6000_init_builtins): Add support for V1TImode type.  Add
13102         support for ISA 2.07 128-bit integer builtins.  Define type names
13103         for the VSX/Altivec vector types.
13104         (altivec_init_builtins): Add support for overloaded vector
13105         functions with V1TImode type.
13106         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
13107         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
13108         external function.
13109         (rs6000_split_128bit_ok_p): Likewise.
13110         (rs6000_handle_altivec_attribute): Create V1TImode from vector
13111         __int128_t and vector __uint128_t.
13112
13113         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
13114         and mode attributes.
13115         (VSX_M): Likewise.
13116         (VSX_M2): Likewise.
13117         (VSm): Likewise.
13118         (VSs): Likewise.
13119         (VSr): Likewise.
13120         (VSv): Likewise.
13121         (VS_scalar): Likewise.
13122         (VS_double): Likewise.
13123         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
13124
13125         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
13126         we support the ISA 2.07 128-bit integer arithmetic instructions.
13127         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
13128         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
13129         and TImode types for use with the builtin functions.
13130         (V1TI_type_node): Likewise.
13131         (unsigned_V1TI_type_node): Likewise.
13132         (intTI_type_internal_node): Likewise.
13133         (uintTI_type_internal_node): Likewise.
13134
13135         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
13136         128-bit builtin functions.
13137         (UNSPEC_VADDEUQM): Likewise.
13138         (UNSPEC_VADDECUQ): Likewise.
13139         (UNSPEC_VSUBCUQ): Likewise.
13140         (UNSPEC_VSUBEUQM): Likewise.
13141         (UNSPEC_VSUBECUQ): Likewise.
13142         (VM): Add V1TImode to vector mode iterators.
13143         (VM2): Likewise.
13144         (VI_unit): Likewise.
13145         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
13146         (altivec_vaddcuq): Likewise.
13147         (altivec_vsubuqm): Likewise.
13148         (altivec_vsubcuq): Likewise.
13149         (altivec_vaddeuqm): Likewise.
13150         (altivec_vaddecuq): Likewise.
13151         (altivec_vsubeuqm): Likewise.
13152         (altivec_vsubecuq): Likewise.
13153
13154         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
13155         mode iterators.
13156         (BOOL_128): Likewise.
13157         (BOOL_REGS_OUTPUT): Likewise.
13158         (BOOL_REGS_OP1): Likewise.
13159         (BOOL_REGS_OP2): Likewise.
13160         (BOOL_REGS_UNARY): Likewise.
13161         (BOOL_REGS_AND_CR0): Likewise.
13162
13163         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
13164         128-bit integer builtin support.
13165         (vec_vadduqm): Likewise.
13166         (vec_vaddecuq): Likewise.
13167         (vec_vaddeuqm): Likewise.
13168         (vec_vsubecuq): Likewise.
13169         (vec_vsubeuqm): Likewise.
13170         (vec_vsubcuq): Likewise.
13171         (vec_vsubuqm): Likewise.
13172
13173         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13174         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
13175         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
13176         128-bit integer add/subtract to ISA 2.07.
13177
13178 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
13179
13180         * config/arc/arc.c (arc_predicate_delay_insns):
13181         Fix third argument passed to conditionalize_nonjump.
13182
13183 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
13184
13185         * config/aarch64/aarch64-builtins.c
13186         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
13187         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
13188         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
13189         instead of __builtin_lfloor.
13190         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
13191
13192 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
13193
13194         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
13195         (tree_ssa_ifcombine_bb_1): New function.
13196         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
13197         is an empty forwarder block to then_bb or vice versa and then_bb
13198         and else_bb are effectively swapped.
13199
13200 2014-03-12  Christian Bruel  <christian.bruel@st.com>
13201
13202         PR target/60264
13203         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
13204         REG_CFA_DEF_CFA note.
13205         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
13206         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
13207
13208 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13209
13210         PR tree-optimization/60454
13211         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
13212
13213 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13214
13215         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
13216         Do not define target_cpu_default2 to generic.
13217         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
13218         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
13219         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
13220
13221 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
13222             Marc Glisse  <marc.glisse@inria.fr>
13223
13224         PR tree-optimization/60502
13225         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
13226         instead of build_low_bits_mask.
13227
13228 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
13229
13230         PR middle-end/60482
13231         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
13232         if there are multiple uses, but op doesn't live on E edge.
13233         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
13234         clobber stmts before __builtin_unreachable.
13235
13236 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
13237
13238         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
13239         hard_frame_pointer_rtx.
13240         * cse.c (cse_insn): Remove volatile check.
13241         * cselib.c (cselib_process_insn): Likewise.
13242         * dse.c (scan_insn): Likewise.
13243
13244 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
13245
13246         * config/arc/arc.c (conditionalize_nonjump): New function,
13247         broken out of ...
13248         (arc_ifcvt): ... this.
13249         (arc_predicate_delay_insns): Use it.
13250
13251 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
13252
13253         * config/arc/predicates.md (extend_operand): During/after reload,
13254         allow const_int_operand.
13255         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
13256         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
13257         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
13258         to "i".
13259         (umulsi3_highpart_i): Likewise.
13260
13261 2014-03-11  Richard Biener  <rguenther@suse.de>
13262
13263         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
13264         Add asserts to guard possible wrong-code bugs.
13265
13266 2014-03-11  Richard Biener  <rguenther@suse.de>
13267
13268         PR tree-optimization/60429
13269         PR tree-optimization/60485
13270         * tree-ssa-structalias.c (set_union_with_increment): Properly
13271         take into account all fields that overlap the shifted vars.
13272         (do_sd_constraint): Likewise.
13273         (do_ds_constraint): Likewise.
13274         (get_constraint_for_ptr_offset): Likewise.
13275
13276 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
13277
13278         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
13279         (nios2_compute_frame_layout):
13280         Add calculation of cfun->machine->fp_save_offset.
13281         (nios2_expand_prologue): Correct setting of frame pointer register
13282         in prologue.
13283         (nios2_expand_epilogue): Update recovery of stack pointer from
13284         frame pointer accordingly.
13285         (nios2_initial_elimination_offset): Update calculation of offset
13286         for eliminating to HARD_FRAME_POINTER_REGNUM.
13287
13288 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
13289
13290         PR ipa/60457
13291         * ipa.c (symtab_remove_unreachable_nodes): Don't call
13292         cgraph_get_create_node on VAR_DECLs.
13293
13294 2014-03-10  Richard Biener  <rguenther@suse.de>
13295
13296         PR middle-end/60474
13297         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
13298
13299 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
13300
13301         * config/vms/vms.opt (vms_float_format): New variable.
13302
13303 2014-03-08  Tobias Burnus  <burnus@net-b.de>
13304
13305         * doc/invoke.texi (-fcilkplus): Update implementation status.
13306
13307 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
13308             Richard Biener  <rguenther@suse.de>
13309
13310         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
13311         consistently accross all TUs.
13312         (run_gcc): Enable -fshort-double automatically at link at link-time
13313         and disallow override.
13314
13315 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
13316
13317         PR target/58271
13318         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
13319         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
13320         if they can't be used.
13321
13322 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13323
13324         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
13325         for Solaris 11/x86 ld.
13326         * configure: Regenerate.
13327
13328 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13329
13330         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
13331         (LIB_TLS_SPEC): Save as ld_tls_libs.
13332         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
13333         (HAVE_AS_IX86_TLSLDM): New test.
13334         * configure, config.in: Regenerate.
13335         * config/i386/i386.c (legitimize_tls_address): Fall back to
13336         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
13337         cannot support TLS_MODEL_LOCAL_DYNAMIC.
13338         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
13339         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
13340
13341 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
13342
13343         * common.opt (fira-loop-pressure): Mark as optimization.
13344
13345 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
13346
13347         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
13348         an OpenMP mappable type.
13349
13350 2014-03-06  Matthias Klose  <doko@ubuntu.com>
13351
13352         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
13353         MULTILIB_OSDIRNAMES is not defined.
13354
13355 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
13356             Meador Inge  <meadori@codesourcery.com>
13357
13358         PR target/58595
13359         * config/arm/arm.c (arm_tls_symbol_p): Remove.
13360         (arm_legitimize_address): Call legitimize_tls_address for any
13361         arm_tls_referenced_p expression, handle constant addend.  Call it
13362         before testing for !TARGET_ARM.
13363         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
13364
13365 2014-03-06  Richard Biener  <rguenther@suse.de>
13366
13367         PR middle-end/60445
13368         PR lto/60424
13369         PR lto/60427
13370         Revert
13371         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
13372
13373         * tree-streamer.c (record_common_node): Assert we don't record
13374         nodes with type double.
13375         (preload_common_node): Skip type double, complex double and double
13376         pointer since it is now frontend dependent due to fshort-double option.
13377
13378 2014-03-06  Richard Biener  <rguenther@suse.de>
13379
13380         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
13381         or -fno-lto is specified and the linker has full plugin support.
13382         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
13383         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
13384         * lto-wrapper.c (merge_and_complain): Merge compile-time
13385         optimization levels.
13386         (run_gcc): And pass it through to the link options.
13387
13388 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
13389
13390         PR debug/60381
13391         Revert:
13392         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
13393         PR debug/59992
13394         * cselib.c (remove_useless_values): Skip to avoid quadratic
13395         behavior if the condition moved from...
13396         (cselib_process_insn): ... here holds.
13397
13398 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
13399
13400         PR plugins/59335
13401         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
13402         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
13403
13404         PR plugins/59335
13405         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
13406         (TM_H): Add x86-tune.def.
13407
13408 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13409
13410         * config/aarch64/aarch64.c (generic_tunings):
13411         Use cortexa57_extra_costs.
13412
13413 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
13414
13415         PR lto/60404
13416         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
13417         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
13418         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
13419         cost for in_lto_p.
13420
13421 2014-03-04  Heiher  <r@hev.cc>
13422
13423         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
13424         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
13425
13426 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
13427
13428         * config/i386/predicates.md (const2356_operand): Change to ...
13429         (const2367_operand): ... this.
13430         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
13431         const2367_operand.
13432         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13433         (*avx512pf_scatterpf<mode>sf): Ditto.
13434         (avx512pf_scatterpf<mode>df): Ditto.
13435         (*avx512pf_scatterpf<mode>df_mask): Ditto.
13436         (*avx512pf_scatterpf<mode>df): Ditto.
13437         * config/i386/i386.c (ix86_expand_builtin): Update
13438         incorrect hint operand error message.
13439
13440 2014-03-04  Richard Biener  <rguenther@suse.de>
13441
13442         * lto-section-in.c (lto_get_section_data): Fix const cast.
13443
13444 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
13445
13446         * tree-streamer.c (record_common_node): Assert we don't record
13447         nodes with type double.
13448         (preload_common_node): Skip type double, complex double and double
13449         pointer since it is now frontend dependent due to fshort-double option.
13450
13451 2014-03-04  Richard Biener  <rguenther@suse.de>
13452
13453         PR lto/60405
13454         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
13455         (lto_input_toplevel_asms): Likewise.
13456         * lto-section-in.c (lto_get_section_data): Instead do it here
13457         for every section.
13458
13459 2014-03-04  Richard Biener  <rguenther@suse.de>
13460
13461         PR tree-optimization/60382
13462         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
13463         dead PHIs a reduction.
13464
13465 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
13466
13467         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
13468         hint value.
13469         (_mm_prefetch): Move out of GCC target("sse") pragma.
13470         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
13471         GCC target("prfchw") pragma.
13472         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
13473         for locality <= 2.
13474         * config/i386/i386.c (ix86_option_override_internal): Enable
13475         -mprfchw with -mprefetchwt1.
13476
13477 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13478
13479         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
13480         Mark as varying.
13481
13482 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
13483
13484         * opts.h (CL_PCH_IGNORE): Define.
13485         * targhooks.c (option_affects_pch_p):
13486         Return false for options that have CL_PCH_IGNORE set.
13487         * opt-functions.awk: Process PchIgnore.
13488         * doc/options.texi: Document PchIgnore.
13489
13490         * config/arc/arc.opt (misize): Add PchIgnore property.
13491
13492 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13493
13494         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
13495         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
13496         constraint on constants to permit them being loaded into
13497         GENERAL_REGS or BASE_REGS.
13498
13499 2014-03-03  Nick Clifton  <nickc@redhat.com>
13500
13501         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
13502         anti-cacnonical alternatives.
13503         (negandhi3_real): New pattern.
13504         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
13505
13506 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13507
13508         * config/avr/avr-mcus.def: Remove atxmega16x1.
13509         * config/avr/avr-tables.opt: Regenerate.
13510         * config/avr/t-multilib: Regenerate.
13511         * doc/avr-mmcu.texi: Regenerate.
13512
13513 2014-03-03  Tobias Grosser  <tobias@grosser.es>
13514             Mircea Namolaru  <mircea.namolaru@inria.fr>
13515
13516         PR tree-optimization/58028
13517         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
13518         scalar dimensions.
13519
13520 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13521
13522         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
13523         not handled by recognizers.
13524
13525 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
13526
13527         PR middle-end/60175
13528         * function.c (expand_function_end): Don't emit
13529         clobber_return_register sequence if clobber_after is a BARRIER.
13530         * cfgexpand.c (construct_exit_block): Append instructions before
13531         return_label to prev_bb.
13532
13533 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13534
13535         * config/rs6000/constraints.md: Document reserved use of "wc".
13536
13537 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
13538
13539         PR ipa/60150
13540         * ipa.c (function_and_variable_visibility): When dissolving comdat
13541         group, also set all symbols to local.
13542
13543 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
13544
13545         PR ipa/60306
13546
13547         Revert:
13548         2013-12-14  Jan Hubicka  <jh@suse.cz>
13549         PR middle-end/58477
13550         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
13551
13552 2014-03-02  Jon Beniston  <jon@beniston.com>
13553
13554         PR bootstrap/48230
13555         PR bootstrap/50927
13556         PR bootstrap/52466
13557         PR target/46898
13558         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
13559           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
13560         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
13561         (simple_return, *simple_return): New patterns
13562         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
13563         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
13564
13565 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
13566
13567         * dwarf2out.c (gen_subprogram_die): Tidy.
13568
13569 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
13570
13571         PR target/60071
13572         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
13573         (*mov_t_msb_neg_negc): ... this new insn.
13574
13575 2014-02-28  Jason Merrill  <jason@redhat.com>
13576
13577         PR c++/58678
13578         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
13579         function.
13580
13581 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
13582
13583         PR c++/60314
13584         * dwarf2out.c (decltype_auto_die): New static.
13585         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
13586         (gen_type_die_with_usage): Handle 'decltype(auto)'.
13587         (is_cxx_auto): Likewise.
13588
13589 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
13590
13591         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
13592         we are not using general regs only.
13593
13594 2014-02-28  Richard Biener  <rguenther@suse.de>
13595
13596         PR target/60280
13597         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
13598         previous fix and only allow to remove trivial pre-headers
13599         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
13600         (remove_forwarder_block): Properly update the latch of a loop.
13601
13602 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
13603
13604         PR debug/59992
13605         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
13606         (cselib_preserved_hash_table): New.
13607         (preserve_constants_and_equivs): Move preserved vals to it.
13608         (cselib_find_slot): Look it up first.
13609         (cselib_init): Initialize it.
13610         (cselib_finish): Release it.
13611         (dump_cselib_table): Dump it.
13612
13613 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
13614
13615         PR debug/59992
13616         * cselib.c (remove_useless_values): Skip to avoid quadratic
13617         behavior if the condition moved from...
13618         (cselib_process_insn): ... here holds.
13619
13620 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
13621
13622         PR debug/57232
13623         * var-tracking.c (vt_initialize): Apply the same condition to
13624         preserve the CFA base value.
13625
13626 2014-02-28  Joey Ye  <joey.ye@arm.com>
13627
13628         PR target/PR60169
13629         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
13630         if reload in progress or completed.
13631
13632 2014-02-28  Tobias Burnus  <burnus@net-b.de>
13633
13634         PR middle-end/60147
13635         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
13636         NAMELIST_DECL.
13637
13638 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
13639
13640         * doc/tm.texi.in (Condition Code Status): Update documention for
13641         relative locations of cc0-setter and cc0-user.
13642
13643 2014-02-27  Jeff Law  <law@redhat.com>
13644
13645         PR rtl-optimization/52714
13646         * combine.c (try_combine): When splitting an unrecognized PARALLEL
13647         into two independent simple sets, if I3 is a jump, ensure the
13648         pattern we place into I3 is a (set (pc) ...).
13649
13650 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
13651             Jeff Law  <law@redhat.com>
13652
13653         PR rtl-optimization/49847
13654         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
13655         are in different blocks.
13656         * doc/tm.texi (Condition Code Status): Update documention for
13657         relative locations of cc0-setter and cc0-user.
13658
13659 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
13660
13661         PR target/59222
13662         * lra.c (lra_emit_add): Check SUBREG too.
13663
13664 2014-02-27  Andreas Schwab  <schwab@suse.de>
13665
13666         * config/m68k/m68k.c (m68k_option_override): Disable
13667         -flive-range-shrinkage for classic m68k.
13668         (m68k_override_options_after_change): Likewise.
13669
13670 2014-02-27  Marek Polacek  <polacek@redhat.com>
13671
13672         PR middle-end/59223
13673         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
13674         -Wmaybe-uninitialized.
13675
13676 2014-02-27  Alan Modra  <amodra@gmail.com>
13677
13678         PR target/57936
13679         * reload1.c (emit_input_reload_insns): When reload_override_in,
13680         set old to rl->in_reg when rl->in_reg is a subreg.
13681
13682 2014-02-26  Richard Biener  <rguenther@suse.de>
13683
13684         PR bootstrap/60343
13685         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
13686
13687 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
13688
13689         * common/config/i386/predicates.md (const1256_operand): Remove.
13690         (const2356_operand): New.
13691         (const_1_to_2_operand): Remove.
13692         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
13693         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
13694         (*avx512pf_gatherpf<mode>sf): Ditto.
13695         (avx512pf_gatherpf<mode>df): Ditto.
13696         (*avx512pf_gatherpf<mode>df_mask): Ditto.
13697         (*avx512pf_gatherpf<mode>df): Ditto.
13698         (avx512pf_scatterpf<mode>sf): Ditto.
13699         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
13700         (*avx512pf_scatterpf<mode>sf): Ditto.
13701         (avx512pf_scatterpf<mode>df): Ditto.
13702         (*avx512pf_scatterpf<mode>df_mask): Ditto.
13703         (*avx512pf_scatterpf<mode>df): Ditto.
13704         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
13705
13706 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
13707
13708         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
13709         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
13710         (_mm512_mask_testn_epi64_mask): Move to ...
13711         * config/i386/avx512cdintrin.h: Here.
13712         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
13713         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
13714         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
13715         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
13716         TARGET_AVX512F from TARGET_AVX512CD.
13717
13718 2014-02-26  Richard Biener  <rguenther@suse.de>
13719
13720         PR ipa/60327
13721         * ipa.c (walk_polymorphic_call_targets): Properly guard
13722         call to inline_update_overall_summary.
13723
13724 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
13725
13726         PR target/60280
13727         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
13728         and latches only if requested.  Fix latch if it is removed.
13729         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
13730         LOOPS_HAVE_PREHEADERS.
13731
13732 2014-02-25  Andrew Pinski  <apinski@cavium.com>
13733
13734         * builtins.c (expand_builtin_thread_pointer): Create a new target
13735         when the target is NULL.
13736
13737 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
13738
13739         PR rtl-optimization/60317
13740         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
13741         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
13742         * lra-assigns.c: Include params.h.
13743         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
13744         other reload pseudos considerations.
13745
13746 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13747
13748         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
13749         to use canonical form for nor<mode>3.
13750
13751 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13752
13753         PR target/55426
13754         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
13755         conversions.
13756
13757 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
13758
13759         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
13760         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
13761         (ix86_handle_option): Handle OPT_mprefetchwt1.
13762         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
13763         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
13764         PREFETCHWT1 CPUID.
13765         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13766         OPTION_MASK_ISA_PREFETCHWT1.
13767         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
13768         (PTA_PREFETCHWT1): New.
13769         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
13770         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
13771         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
13772         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
13773         (*prefetch_avx512pf_<mode>_: Change into ...
13774         (*prefetch_prefetchwt1_<mode>: This.
13775         * config/i386/i386.opt (mprefetchwt1): New.
13776         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
13777         (_mm_prefetch): Handle intent to write.
13778         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
13779
13780 2014-02-25  Richard Biener  <rguenther@suse.de>
13781
13782         PR middle-end/60291
13783         * emit-rtl.c (mem_attrs_htab): Remove.
13784         (mem_attrs_htab_hash): Likewise.
13785         (mem_attrs_htab_eq): Likewise.
13786         (set_mem_attrs): Always allocate new mem-attrs when something changed.
13787         (init_emit_once): Do not allocate mem_attrs_htab.
13788
13789 2014-02-25  Richard Biener  <rguenther@suse.de>
13790
13791         PR lto/60319
13792         * lto-opts.c (lto_write_options): Output non-explicit conservative
13793         -fwrapv, -fno-trapv and -fno-strict-overflow.
13794         * lto-wrapper.c (merge_and_complain): Handle merging those options.
13795         (run_gcc): And pass them through.
13796
13797 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
13798
13799         * sel-sched.c (calculate_new_fences): New parameter ptime.
13800         Calculate it as a maximum over all fence cycles.
13801         (sel_sched_region_2): Adjust the call to calculate_new_fences.
13802         Print the final schedule timing when sched_verbose.
13803
13804 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
13805
13806         PR rtl-optimization/60292
13807         * sel-sched.c (fill_vec_av_set): Do not reset target availability
13808         bit fot the fence instruction.
13809
13810 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
13811
13812         * calls.h: Fix typo in comment.
13813
13814 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
13815
13816         * config/pa/pa.c (pa_output_move_double): Don't valididate when
13817         adjusting offsetable addresses.
13818
13819 2014-02-24  Guozhi Wei  <carrot@google.com>
13820
13821         * sparseset.h (sparseset_pop): Fix the wrong index.
13822
13823 2014-02-24  Walter Lee  <walt@tilera.com>
13824
13825         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
13826         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
13827         triplet.
13828         * common/config/tilegx/tilegx-common.c
13829         (TARGET_DEFAULT_TARGET_FLAGS): Define.
13830         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
13831         (LINK_SPEC): Ditto.
13832         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
13833         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
13834         (tilegx_gimplify_va_arg_expr): Handle big endian.
13835         (tilegx_expand_unaligned_load): Ditto.
13836         (tilegx_expand_unaligned_store): Ditto.
13837         (TARGET_RETURN_IN_MSB): New.
13838         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
13839         (TARGET_ENDIAN_DEFAULT): New.
13840         (TARGET_BIG_ENDIAN): Handle big endian.
13841         (BYTES_BIG_ENDIAN): Ditto.
13842         (WORDS_BIG_ENDIAN): Ditto.
13843         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
13844         (ENDIAN_SPEC): New.
13845         (EXTRA_SPECS): New.
13846         * config/tilegx/tilegx.md (extv): Handle big endian.
13847         (extzv): Ditto.
13848         (insn_st<n>): Ditto.
13849         (insn_st<n>_add<bitsuffix>): Ditto.
13850         (insn_stnt<n>): Ditto.
13851         (insn_stnt<n>_add<bitsuffix>):Ditto.
13852         (vec_interleave_highv8qi): Handle big endian.
13853         (vec_interleave_highv8qi_be): New.
13854         (vec_interleave_highv8qi_le): New.
13855         (insn_v1int_h): Handle big endian.
13856         (vec_interleave_lowv8qi): Handle big endian.
13857         (vec_interleave_lowv8qi_be): New.
13858         (vec_interleave_lowv8qi_le): New.
13859         (insn_v1int_l): Handle big endian.
13860         (vec_interleave_highv4hi): Handle big endian.
13861         (vec_interleave_highv4hi_be): New.
13862         (vec_interleave_highv4hi_le): New.
13863         (insn_v2int_h): Handle big endian.
13864         (vec_interleave_lowv4hi): Handle big endian.
13865         (vec_interleave_lowv4hi_be): New.
13866         (vec_interleave_lowv4hi_le): New.
13867         (insn_v2int_l): Handle big endian.
13868         (vec_interleave_highv2si): Handle big endian.
13869         (vec_interleave_highv2si_be): New.
13870         (vec_interleave_highv2si_le): New.
13871         (insn_v4int_h): Handle big endian.
13872         (vec_interleave_lowv2si): Handle big endian.
13873         (vec_interleave_lowv2si_be): New.
13874         (vec_interleave_lowv2si_le): New.
13875         (insn_v4int_l): Handle big endian.
13876         * config/tilegx/tilegx.opt (mbig-endian): New option.
13877         (mlittle-endian): New option.
13878         * doc/install.texi: Document tilegxbe-linux.
13879         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
13880
13881 2014-02-24  Martin Jambor  <mjambor@suse.cz>
13882
13883         PR ipa/60266
13884         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
13885         there are no parameter descriptors.
13886
13887 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
13888
13889         PR rtl-optimization/60268
13890         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
13891         initialization to ...
13892         (sched_rgn_init): ... here.
13893         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
13894
13895 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
13896
13897         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
13898         names.
13899
13900 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
13901
13902         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
13903         definition.
13904
13905 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
13906
13907         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
13908         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
13909
13910 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
13911
13912         * config/microblaze/predicates.md: Add cmp_op predicate.
13913         * config/microblaze/microblaze.md: Add branch_compare instruction
13914         which uses cmp_op predicate and emits cmp insn before branch.
13915         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
13916         to microblaze_expand_conditional_branch and consolidate logic.
13917         (microblaze_expand_conditional_branch): emit branch_compare
13918         insn instead of handling cmp op separate from branch insn.
13919
13920 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13921
13922         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
13923         to permit subregs.
13924
13925 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13926
13927         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
13928         define_insn with define_expand and new define_insn
13929         *altivec_lve<VI_char>x_internal.
13930         (altivec_stve<VI_char>x): Replace define_insn with define_expand
13931         and new define_insn *altivec_stve<VI_char>x_internal.
13932         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
13933         prototype.
13934         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
13935         lve*x built-ins.
13936         (altivec_expand_stvex_be): New function.
13937
13938 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
13939
13940         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
13941         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
13942         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
13943         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
13944
13945 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
13946
13947         PR target/60298
13948         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
13949         instead of emit_move_insn.
13950
13951 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13952
13953         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
13954         vspltw with vsldoi.
13955         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
13956         gen_altivec_vsumsws.
13957
13958 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13959
13960         * config/rs6000/altivec.md (altivec_lvxl): Rename as
13961         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
13962         (altivec_lvxl_<mode>): New define_expand incorporating
13963         -maltivec=be semantics where needed.
13964         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
13965         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
13966         semantics where needed.
13967         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
13968         (altivec_stvx_<mode>): New define_expand incorporating
13969         -maltivec=be semantics where needed.
13970         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
13971         VM2 iterator instead of V4SI.
13972         (altivec_stvxl_<mode>): New define_expand incorporating
13973         -maltivec=be semantics where needed.
13974         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
13975         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
13976         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
13977         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
13978         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
13979         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
13980         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
13981         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
13982         ALTIVEC_BUILTIN_STVXL.
13983         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
13984         (altivec_expand_stvx_be): Likewise.
13985         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
13986         (altivec_expand_lvx_be): Likewise.
13987         (altivec_expand_stvx_be): Likewise.
13988         (altivec_expand_builtin): Add cases for
13989         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
13990         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
13991         (altivec_init_builtins): Add definitions for
13992         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
13993         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
13994
13995 2014-02-21  Catherine Moore  <clm@codesourcery.com>
13996
13997         * doc/invoke.texi (mvirt, mno-virt): Document.
13998         * config/mips/mips.opt (mvirt): New option.
13999         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
14000
14001 2014-02-21  Richard Biener  <rguenther@suse.de>
14002
14003         PR tree-optimization/60276
14004         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
14005         (STMT_VINFO_MIN_NEG_DIST): New macro.
14006         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
14007         STMT_VINFO_MIN_NEG_DIST.
14008         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
14009         made for negative dependence distances still hold.
14010
14011 2014-02-21  Richard Biener  <rguenther@suse.de>
14012
14013         PR middle-end/60291
14014         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
14015         DECL_INITIAL for globals not in the current function context.
14016
14017 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
14018
14019         PR tree-optimization/56490
14020         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
14021         * tree-ssa-uninit.c: Include params.h.
14022         (compute_control_dep_chain): Add num_calls argument, return false
14023         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
14024         num_calls to recursive call.
14025         (find_predicates): Change dep_chain into normal array,
14026         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
14027         variable and adjust compute_control_dep_chain caller.
14028         (find_def_preds): Likewise.
14029
14030 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
14031
14032         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
14033         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
14034
14035 2014-02-21  Nick Clifton  <nickc@redhat.com>
14036
14037         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
14038         (pushhi1): Likewise.
14039         (popqi1): Add mode to pre_dec.
14040         (pophi1): Likewise.
14041
14042 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
14043
14044         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
14045         mode for mask of V8SFmode permutation.
14046
14047 2014-02-20  Richard Henderson  <rth@redhat.com>
14048
14049         PR c++/60272
14050         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
14051         a new pseudo for OLDVAL.
14052
14053 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
14054
14055         PR target/57896
14056         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
14057         gen_reg_rtx if d->testing_p.
14058         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
14059         if d->testing_p and we will certainly return true.
14060         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
14061         if d->testing_p.
14062
14063 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
14064
14065         * emit-rtl.c (gen_reg_rtx): Assert that
14066         crtl->emit.regno_pointer_align_length is non-zero.
14067
14068 2014-02-20  Richard Henderson  <rth@redhat.com>
14069
14070         PR c++/60272
14071         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
14072         on failure the store back into EXPECT.
14073
14074 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
14075             Sandra Loosemore  <sandra@codesourcery.com>
14076
14077         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
14078         * config/nios2/nios2.c (nios2_function_profiler): Add
14079         -fPIC (flag_pic == 2) support.
14080         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
14081         (nios2_large_offset_p): New function.
14082         (nios2_unspec_reloc_p): Move up position, update to use
14083         nios2_large_offset_p.
14084         (nios2_unspec_address): Remove function.
14085         (nios2_unspec_offset): New function.
14086         (nios2_large_got_address): New function.
14087         (nios2_got_address): Add large offset support.
14088         (nios2_legitimize_tls_address): Update usage of removed and new
14089         functions.
14090         (nios2_symbol_binds_local_p): New function.
14091         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
14092         (nios2_legitimize_address): Update to use nios2_large_offset_p.
14093         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
14094         (nios2_print_operand): Merge H/L processing, add hiadj/lo
14095         processing for (const (unspec ...)).
14096         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
14097
14098 2014-02-20  Richard Biener  <rguenther@suse.de>
14099
14100         * tree-cfg.c (replace_uses_by): Mark altered BBs before
14101         doing the substitution.
14102         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
14103
14104 2014-02-20  Martin Jambor  <mjambor@suse.cz>
14105
14106         PR ipa/55260
14107         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
14108         info when checking whether lattices are bottom.
14109
14110 2014-02-20  Richard Biener  <rguenther@suse.de>
14111
14112         PR middle-end/60221
14113         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
14114         regions at -O0.
14115
14116 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
14117
14118         PR ipa/58555
14119         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
14120         parameter specifying the scaling.
14121         (inline_call): Update.
14122         (want_inline_recursively): Guard division by zero.
14123         (recursive_inlining): Update.
14124         * ipa-inline.h (clone_inlined_nodes): Update.
14125
14126 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
14127
14128         PR target/60204
14129         * config/i386/i386.c (classify_argument): Pass structures of size
14130         64 bytes or less in register.
14131
14132 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
14133             Kirill Yukhin  <kirill.yukhin@intel.com>
14134
14135         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
14136         (_mm_rcp28_round_ss): Ditto.
14137         (_mm_rsqrt28_round_sd): Ditto.
14138         (_mm_rsqrt28_round_ss): Ditto.
14139         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
14140         (_mm_rcp14_round_ss): Ditto.
14141         (_mm_rsqrt14_round_sd): Ditto.
14142         (_mm_rsqrt14_round_ss): Ditto.
14143         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
14144         the first input operand, get rid of match_dup.
14145         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
14146         attribute to sse.
14147         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
14148         Ditto.
14149         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
14150         operand as the first input operand, set type attribute.
14151         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
14152         Set type attribute.
14153         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
14154         operand as the first input operand, set type attribute.
14155
14156 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14157
14158         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
14159         bit of zero.
14160
14161 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14162
14163         PR target/60207
14164         * config/i386/i386.c (construct_container): Remove TFmode check
14165         for X86_64_INTEGER_CLASS.
14166
14167 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
14168
14169         PR target/59794
14170         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
14171         only when -Wpsabi is enabled.
14172
14173 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
14174
14175          PR target/59799
14176         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
14177         passing arrays in registers are the same as for structs, so remove the
14178         special case for them.
14179
14180 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
14181
14182         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
14183         destination type, extract only the valid bits if the source type is not
14184         integral and has a different mode.
14185
14186 2014-02-19  Richard Biener  <rguenther@suse.de>
14187
14188         PR ipa/60243
14189         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
14190         for all calls.
14191
14192 2014-02-19  Richard Biener  <rguenther@suse.de>
14193
14194         PR ipa/60243
14195         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
14196         (ipa_modify_call_arguments): Emit an argument load explicitely and
14197         preserve virtual SSA form there and for the replacement call.
14198         Do not update SSA form nor free dominance info.
14199
14200 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
14201
14202         * ipa.c (function_and_variable_visibility): Also clear WEAK
14203         flag when disolving COMDAT_GROUP.
14204
14205 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
14206
14207         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
14208         * ipa-prop.c (ipa_set_jf_known_type): Return early when
14209         not devirtualizing.
14210         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
14211         do more sanity checks.
14212         (detect_type_change): Return true when giving up early.
14213         (compute_complex_assign_jump_func): Fix type parameter of
14214         ipa_set_ancestor_jf.
14215         (compute_complex_ancestor_jump_func): Likewise.
14216         (update_jump_functions_after_inlining): Fix updating of
14217         ancestor function.
14218         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
14219
14220 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
14221
14222         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
14223         inline clones when edge disappears.
14224
14225 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
14226
14227         PR target/60203
14228         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
14229         Split 64-bit moves into 2 patterns.  Do not allow the use of
14230         direct move for TDmode in little endian, since the decimal value
14231         has little endian bytes within a word, but the 64-bit pieces are
14232         ordered in a big endian fashion, and normal subreg's of TDmode are
14233         not allowed.
14234         (mov<mode>_64bit_dm): Likewise.
14235         (movtd_64bit_nodm): Likewise.
14236
14237 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
14238
14239         PR tree-optimization/60174
14240         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
14241         statement of an SSA_NAME that occurs in an abnormal PHI node.
14242
14243 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
14244
14245         PR sanitizer/60142
14246         * final.c (SEEN_BB): Remove.
14247         (SEEN_NOTE, SEEN_EMITTED): Renumber.
14248         (final_scan_insn): Don't force_source_line on second
14249         NOTE_INSN_BASIC_BLOCK.
14250
14251 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
14252
14253         PR target/60205
14254         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
14255         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
14256         (type_natural_mode): Warn ABI change when %zmm register is not
14257         available for AVX512F vector value passing.
14258
14259 2014-02-18  Kai Tietz  <ktietz@redhat.com>
14260
14261         PR target/60193
14262         * config/i386/i386.c (ix86_expand_prologue): Use value in
14263         rax register as displacement when restoring %r10 or %rax.
14264         Fix wrong offset when restoring both registers.
14265
14266 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
14267
14268         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
14269         assertion with conditional return.
14270
14271 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
14272             Uros Bizjak  <ubizjak@gmail.com>
14273
14274         PR driver/60233
14275         * config/i386/driver-i386.c (host_detect_local_cpu): If
14276         YMM state is not saved by the OS, also clear has_f16c.  Move
14277         CPUID 0x80000001 handling before YMM state saving checking.
14278
14279 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
14280
14281         PR rtl-optimization/58960
14282         * haifa-sched.c (alloc_global_sched_pressure_data): New,
14283         factored out from ...
14284         (sched_init): ... here.
14285         (free_global_sched_pressure_data): New, factored out from ...
14286         (sched_finish): ... here.
14287         * sched-int.h (free_global_sched_pressure_data): Declare.
14288         * sched-rgn.c (nr_regions_initial): New static global.
14289         (haifa_find_rgns): Initialize it.
14290         (schedule_region): Disable sched-pressure for the newly
14291         generated regions.
14292
14293 2014-02-17  Richard Biener  <rguenther@suse.de>
14294
14295         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
14296         release SSA defs of pattern stmts.
14297
14298 2014-02-17  Richard Biener  <rguenther@suse.de>
14299
14300         * tree-inline.c (expand_call_inline): Release the virtual
14301         operand defined by the call we are about to inline.
14302
14303 2014-02-17  Richard Biener  <rguenther@suse.de>
14304
14305         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
14306
14307 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
14308             Ilya Tocar  <ilya.tocar@intel.com>
14309
14310         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
14311         arguments order in builtin.
14312         (_mm512_permutexvar_epi64): Ditto.
14313         (_mm512_mask_permutexvar_epi64): Ditto
14314         (_mm512_maskz_permutexvar_epi32): Ditto
14315         (_mm512_permutexvar_epi32): Ditto
14316         (_mm512_mask_permutexvar_epi32): Ditto
14317
14318 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14319
14320         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
14321         (p8_vmrgow): Likewise.
14322
14323 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14324
14325         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
14326         endian targets.
14327
14328 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
14329
14330         PR target/60203
14331         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
14332         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
14333         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
14334         using direct move instructions on ISA 2.07.  Also adjust
14335         instruction length for 64-bit.
14336         (mov<mode>_64bit, TFmode/TDmode): Likewise.
14337         (mov<mode>_32bit, TFmode/TDmode): Likewise.
14338
14339 2014-02-15  Alan Modra  <amodra@gmail.com>
14340
14341         PR target/58675
14342         PR target/57935
14343         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14344         find_replacement on parts of insn rtl that might be reloaded.
14345
14346 2014-02-15  Richard Biener  <rguenther@suse.de>
14347
14348         PR tree-optimization/60183
14349         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
14350         (tree_ssa_phiprop): Calculate and free post-dominators.
14351
14352 2014-02-14  Jeff Law  <law@redhat.com>
14353
14354         PR rtl-optimization/60131
14355         * ree.c (get_extended_src_reg): New function.
14356         (combine_reaching_defs): Use it rather than assuming location of REG.
14357         (find_and_remove_re): Verify first operand of extension is
14358         a REG before adding the insns to the copy list.
14359
14360 2014-02-14  Roland McGrath  <mcgrathr@google.com>
14361
14362         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
14363         * configure: Regenerated.
14364         * config.in: Regenerated.
14365         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
14366         instead of ASM_SHORT.
14367
14368 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
14369             Richard Earnshaw  <rearnsha@arm.com>
14370
14371         PR rtl-optimization/59535
14372         * lra-constraints.c (process_alt_operands): Encourage alternative
14373         when unassigned pseudo class is superset of the alternative class.
14374         (inherit_reload_reg): Don't inherit when optimizing for code size.
14375         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
14376         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
14377         modes not less than 4 for Thumb1.
14378
14379 2014-02-14  Kyle McMartin  <kyle@redhat.com>
14380
14381         PR pch/60010
14382         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
14383
14384 2014-02-14  Richard Biener  <rguenther@suse.de>
14385
14386         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
14387         (get_frame_arg): Drop the assert with langhook types_compatible_p.
14388         Do not strip INDIRECT_REFs.
14389
14390 2014-02-14  Richard Biener  <rguenther@suse.de>
14391
14392         PR lto/60179
14393         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
14394         DECL_FUNCTION_SPECIFIC_TARGET.
14395         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
14396         * tree-streamer-out.c (pack_ts_target_option): Remove.
14397         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
14398         (write_ts_function_decl_tree_pointers): Do not stream
14399         DECL_FUNCTION_SPECIFIC_TARGET.
14400         * tree-streamer-in.c (unpack_ts_target_option): Remove.
14401         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
14402         (lto_input_ts_function_decl_tree_pointers): Do not stream
14403         DECL_FUNCTION_SPECIFIC_TARGET.
14404
14405 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
14406
14407         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
14408         (get_initial_def_for_induction, vectorizable_induction): Ignore
14409         debug stmts when looking for exit_phi.
14410         (vectorizable_live_operation): Fix up condition.
14411
14412 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
14413
14414         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
14415         nreverse() because it changes the content of original tree list.
14416
14417 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
14418
14419         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
14420         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
14421
14422 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
14423
14424         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
14425         GNU coding standards.
14426
14427 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
14428
14429         PR debug/60152
14430         * dwarf2out.c (gen_subprogram_die): Don't call
14431         add_calling_convention_attribute if subr_die is old_die.
14432
14433 2014-02-13  Sharad Singhai  <singhai@google.com>
14434
14435         * doc/optinfo.texi: Fix order of nodes.
14436
14437 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
14438
14439         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
14440         operands[2], not operands[3].
14441
14442 2014-02-13  Richard Biener  <rguenther@suse.de>
14443
14444         PR bootstrap/59878
14445         * doc/install.texi (ISL): Update recommended version to 0.12.2,
14446         mention the possibility of an in-tree build.
14447         (CLooG): Update recommended version to 0.18.1, mention the
14448         possibility of an in-tree build and clarify that the ISL
14449         bundled with CLooG does not work.
14450
14451 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
14452
14453         PR target/43546
14454         * expr.c (compress_float_constant): If x is a hard register,
14455         extend into a pseudo and then move to x.
14456
14457 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14458
14459         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
14460         caused by bad second argument to warning_at() with -mhotpatch and
14461         nested functions (e.g. with gfortran).
14462
14463 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
14464
14465         * opts.c (option_name): Remove "enabled by default" rider.
14466
14467 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
14468
14469         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
14470
14471 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
14472             Uros Bizjak  <ubizjak@gmail.com>
14473
14474         PR target/60151
14475         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
14476         * configure: Regenerated.
14477
14478 2014-02-12  Richard Biener  <rguenther@suse.de>
14479
14480         * vec.c (vec_prefix::calculate_allocation): Move as
14481         inline variant to vec.h.
14482         (vec_prefix::calculate_allocation_1): New out-of-line version.
14483         * vec.h (vec_prefix::calculate_allocation_1): Declare.
14484         (vec_prefix::m_has_auto_buf): Rename to ...
14485         (vec_prefix::m_using_auto_storage): ... this.
14486         (vec_prefix::calculate_allocation): Inline the easy cases
14487         and dispatch to calculate_allocation_1 which doesn't need the
14488         prefix address.
14489         (va_heap::reserve): Use gcc_checking_assert.
14490         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
14491         m_using_auto_storage.
14492         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
14493         member and adjust.
14494         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
14495         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
14496         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
14497
14498 2014-02-12  Richard Biener  <rguenther@suse.de>
14499
14500         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
14501         when we found a dependence.
14502
14503 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
14504
14505         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
14506         common code...
14507         (maybe_fold_stmt): ... into this new function.
14508         * omp-low.c (lower_omp): Update comment.
14509
14510         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
14511         last use.
14512
14513         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
14514         dereference.
14515
14516 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
14517
14518         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
14519         identifiers in comments.
14520         (cortexa53_extra_costs): Likewise.
14521         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
14522         (cortexa7_extra_costs): Likewise.
14523         (cortexa12_extra_costs): Likewise.
14524         (cortexa15_extra_costs): Likewise.
14525         (v7m_extra_costs): Likewise.
14526
14527 2014-02-12  Richard Biener  <rguenther@suse.de>
14528
14529         PR middle-end/60092
14530         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
14531         of posix_memalign being successful.
14532         (lower_stmt): Restrict lowering of posix_memalign to when
14533         -ftree-bit-ccp is enabled.
14534
14535 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14536
14537         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
14538         arg_loc.
14539         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
14540
14541 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14542
14543         PR rtl-optimization/60116
14544         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
14545         other_insn once the combination has been validated.
14546
14547 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
14548
14549         PR lto/59468
14550         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
14551         and wrapper.
14552         * ipa-devirt.c: Include demangle.h
14553         (odr_violation_reported): New static variable.
14554         (add_type_duplicate): Update odr_violations.
14555         (maybe_record_node): Add completep parameter; update it.
14556         (record_target_from_binfo): Add COMPLETEP parameter;
14557         update it as needed.
14558         (possible_polymorphic_call_targets_1): Likewise.
14559         (struct polymorphic_call_target_d): Add nonconstruction_targets;
14560         rename FINAL to COMPLETE.
14561         (record_targets_from_bases): Sanity check we found the binfo;
14562         fix COMPLETEP updating.
14563         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
14564         parameter, fix computing of COMPLETEP.
14565         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
14566         at LTO time do demangling.
14567         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
14568         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
14569         parameter.
14570         (gimple_get_virt_method_for_binfo): Likewise.
14571         * gimple-fold.h (gimple_get_virt_method_for_binfo,
14572         gimple_get_virt_method_for_vtable): Update prototypes.
14573
14574 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
14575
14576         PR target/49008
14577         * genautomata.c (add_presence_absence): Fix typo with
14578         {final_}presence_list.
14579
14580 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
14581
14582         PR target/60137
14583         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
14584         for VSX/Altivec vectors that land in GPR registers.
14585
14586 2014-02-11  Richard Henderson  <rth@redhat.com>
14587             Jakub Jelinek  <jakub@redhat.com>
14588
14589         PR debug/59776
14590         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
14591         around drhs if type conversion to lacc->type is not useless.
14592
14593 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14594
14595         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
14596         tuning struct.
14597         (cortex-a57.cortex-a53): Likewise.
14598         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
14599
14600 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14601
14602         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
14603         arm_restrict_it.
14604
14605 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
14606
14607         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
14608         add_options_for_arm_vfp3.
14609
14610 2014-02-11  Jeff Law  <law@redhat.com>
14611
14612         PR middle-end/54041
14613         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
14614         object with an undesirable mode.
14615
14616 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14617
14618         PR libgomp/60107
14619         * config/i386/sol2-9.h: New file.
14620         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
14621         *-*-solaris2.9*): Use it.
14622
14623 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
14624
14625         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
14626         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
14627
14628 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
14629
14630         * config/microblaze/microblaze.c: Extend mcpu version format
14631
14632 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
14633
14634         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
14635
14636 2014-02-10  Richard Henderson  <rth@redhat.com>
14637
14638         PR target/59927
14639         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
14640         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
14641         ms-abi vs -mno-accumulate-outgoing-args.
14642         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
14643         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
14644         respect to ms-abi.
14645
14646 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14647
14648         PR middle-end/60080
14649         * cfgexpand.c (expand_asm_operands): Attach source location to
14650         ASM_INPUT rtx objects.
14651         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
14652
14653 2014-02-10  Nick Clifton  <nickc@redhat.com>
14654
14655         * config/mn10300/mn10300.c (popcount): New function.
14656         (mn10300_expand_prologue): Include saved registers in stack usage
14657         count.
14658
14659 2014-02-10  Jeff Law  <law@redhat.com>
14660
14661         PR middle-end/52306
14662         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
14663         when changing the SET_DEST of a prior insn to avoid an input reload.
14664
14665 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14666
14667         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
14668         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
14669         -mcall-openbsd, or -mcall-linux.
14670         (CC1_ENDIAN_BIG_SPEC): Remove.
14671         (CC1_ENDIAN_LITTLE_SPEC): Remove.
14672         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
14673         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
14674         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
14675         and %cc1_endian_default.
14676         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
14677
14678 2014-02-10  Richard Biener  <rguenther@suse.de>
14679
14680         PR tree-optimization/60115
14681         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
14682         MEM_REF handling.  Properly verify that the accesses are not
14683         out of the objects bound.
14684
14685 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14686
14687         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
14688         coretex to cortex.
14689
14690 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
14691
14692         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
14693         proper constants and fix formatting.
14694         (possible_polymorphic_call_targets): Fix formatting.
14695
14696 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
14697             Ilya Tocar  <ilya.tocar@intel.com>
14698
14699         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
14700         (_mm512_loadu_epi32): Renamed into...
14701         (_mm512_loadu_si512): This.
14702         (_mm512_storeu_epi32): Renamed into...
14703         (_mm512_storeu_si512): This.
14704         (_mm512_maskz_ceil_ps): Removed.
14705         (_mm512_maskz_ceil_pd): Ditto.
14706         (_mm512_maskz_floor_ps): Ditto.
14707         (_mm512_maskz_floor_pd): Ditto.
14708         (_mm512_floor_round_ps): Ditto.
14709         (_mm512_floor_round_pd): Ditto.
14710         (_mm512_ceil_round_ps): Ditto.
14711         (_mm512_ceil_round_pd): Ditto.
14712         (_mm512_mask_floor_round_ps): Ditto.
14713         (_mm512_mask_floor_round_pd): Ditto.
14714         (_mm512_mask_ceil_round_ps): Ditto.
14715         (_mm512_mask_ceil_round_pd): Ditto.
14716         (_mm512_maskz_floor_round_ps): Ditto.
14717         (_mm512_maskz_floor_round_pd): Ditto.
14718         (_mm512_maskz_ceil_round_ps): Ditto.
14719         (_mm512_maskz_ceil_round_pd): Ditto.
14720         (_mm512_expand_pd): Ditto.
14721         (_mm512_expand_ps): Ditto.
14722         * config/i386/i386.c (ix86_builtins): Remove
14723         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
14724         (bdesc_args): Ditto.
14725         * config/i386/predicates.md (const1256_operand): New.
14726         (const_1_to_2_operand): Ditto.
14727         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
14728         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
14729         (*avx512pf_gatherpf<mode>sf): Ditto.
14730         (avx512pf_gatherpf<mode>df): Ditto.
14731         (*avx512pf_gatherpf<mode>df_mask): Ditto.
14732         (*avx512pf_gatherpf<mode>df): Ditto.
14733         (avx512pf_scatterpf<mode>sf): Ditto.
14734         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
14735         (*avx512pf_scatterpf<mode>sf): Ditto.
14736         (avx512pf_scatterpf<mode>df): Ditto.
14737         (*avx512pf_scatterpf<mode>df_mask): Ditto.
14738         (*avx512pf_scatterpf<mode>df): Ditto.
14739         (avx512f_expand<mode>): Removed.
14740         (<shift_insn><mode>3<mask_name>): Change predicate type.
14741
14742 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
14743
14744         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
14745         not at the end of datarefs vector use ordered_remove to avoid
14746         reordering datarefs vector.
14747
14748         PR c/59984
14749         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
14750         mark local addressable non-static vars as GOVD_PRIVATE
14751         instead of GOVD_LOCAL.
14752         * omp-low.c (lower_omp_for): Move gimple_bind_vars
14753         and BLOCK_VARS of gimple_bind_block to new_stmt rather
14754         than copying them.
14755
14756         PR middle-end/60092
14757         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
14758         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
14759         assume_aligned or alloc_align attributes.
14760         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
14761         arguments.  Handle also assume_aligned and alloc_align attributes.
14762         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
14763         calls to functions with assume_aligned or alloc_align attributes.
14764         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
14765
14766 2014-02-08  Terry Guo  <terry.guo@arm.com>
14767
14768         * doc/invoke.texi: Document ARM -march=armv7e-m.
14769
14770 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
14771
14772         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
14773         flag on __cilkrts_rethrow builtin.
14774
14775         PR ipa/60026
14776         * ipa-cp.c (determine_versionability): Fail at -O0
14777         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
14778         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
14779
14780         Revert:
14781         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
14782
14783         PR ipa/60026
14784         * tree-inline.c (copy_forbidden): Fail for
14785         __attribute__((optimize (0))) functions.
14786
14787 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
14788
14789         * varpool.c: Include pointer-set.h.
14790         (varpool_remove_unreferenced_decls): Variables in other partitions
14791         will not be output; be however careful to not lose information
14792         about partitioning.
14793
14794 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
14795
14796         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
14797         lookup in the vtable constructor.
14798
14799 2014-02-07  Jeff Law  <law@redhat.com>
14800
14801         PR target/40977
14802         * config/m68k/m68k.md (ashldi_extsi): Turn into a
14803         define_insn_and_split.
14804
14805         * ipa-inline.c (inline_small_functions): Fix typos.
14806
14807 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
14808
14809         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
14810         (s390_can_use_return_insn): Declare.
14811         * config/s390/s390.h (EPILOGUE_USES): Define.
14812         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
14813         instructions.
14814         (s390_chunkify_start): Handle return JUMP_LABELs.
14815         (s390_early_mach): Emit a main_pool instruction on the entry edge.
14816         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
14817         (s390_can_use_return_insn): New functions.
14818         (s390_fix_long_loop_prediction): Handle conditional returns.
14819         (TARGET_SET_UP_BY_PROLOGUE): Define.
14820         * config/s390/s390.md (ANY_RETURN): New code iterator.
14821         (*creturn, *csimple_return, return, simple_return): New patterns.
14822
14823 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
14824
14825         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
14826         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
14827         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
14828         REG_CFA_RESTORE list when deciding not to restore a register.
14829
14830 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
14831
14832         * config/s390/s390.c: Include tree-pass.h and context.h.
14833         (s390_early_mach): New function, split out from...
14834         (s390_emit_prologue): ...here.
14835         (pass_data_s390_early_mach): New pass structure.
14836         (pass_s390_early_mach): New class.
14837         (s390_option_override): Create and register early_mach pass.
14838         Move to end of file.
14839
14840 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
14841
14842         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
14843         to match for the exit block.
14844
14845 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14846
14847         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
14848         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
14849         Reject misaligned operands.
14850
14851 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14852
14853         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
14854
14855 2014-02-07  Richard Biener  <rguenther@suse.de>
14856
14857         PR middle-end/60092
14858         * gimple-low.c (lower_builtin_posix_memalign): New function.
14859         (lower_stmt): Call it to lower posix_memalign in a way
14860         to make alignment info accessible.
14861
14862 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
14863
14864         PR c++/60082
14865         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
14866         __builtin_setjmp_receiver.
14867
14868 2014-02-07  Richard Biener  <rguenther@suse.de>
14869
14870         PR middle-end/60092
14871         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
14872         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
14873         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14874         Handle BUILT_IN_POSIX_MEMALIGN.
14875         (find_func_clobbers): Likewise.
14876         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
14877         (call_may_clobber_ref_p_1): Likewise.
14878
14879 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
14880
14881         PR ipa/59918
14882         * ipa-devirt.c (record_target_from_binfo): Remove overactive
14883         sanity check.
14884
14885 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
14886
14887         PR ipa/59469
14888         * lto-cgraph.c (lto_output_node): Use
14889         symtab_get_symbol_partitioning_class.
14890         (lto_output_varpool_node): likewise.
14891         (symtab_get_symbol_partitioning_class): Move here from
14892         lto/lto-partition.c
14893         * cgraph.h (symbol_partitioning_class): Likewise.
14894         (symtab_get_symbol_partitioning_class): Declare.
14895
14896 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
14897
14898         * ggc.h (ggc_internal_cleared_alloc): New macro.
14899         * vec.h (vec_safe_copy): Handle memory stats.
14900         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
14901         * target-globals.c (save_target_globals): Likewise.
14902
14903 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
14904
14905         PR target/60077
14906         * expr.c (emit_move_resolve_push): Export; be bit more selective
14907         on when to clear alias set.
14908         * expr.h (emit_move_resolve_push): Declare.
14909         * function.h (struct function): Add tail_call_marked.
14910         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
14911         * config/i386/i386-protos.h (ix86_expand_push): Remove.
14912         * config/i386/i386.md (TImode move expander): De not call
14913         ix86_expand_push.
14914         (FP push expanders): Preserve memory attributes.
14915         * config/i386/sse.md (push<mode>1): Remove.
14916         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
14917         (ix86_expand_push): Remove.
14918         * config/i386/mmx.md (push<mode>1): Remove.
14919
14920 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
14921
14922         PR rtl-optimization/60030
14923         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
14924         lopart with paradoxical subreg before shifting it up by hprec.
14925
14926 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14927
14928         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
14929         Remove extra newline at end of file.
14930         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
14931         (arm_issue_rate): Handle cortexa57.
14932         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
14933         (cortex-a57.cortex-a53): Likewise.
14934
14935 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
14936
14937         PR target/59575
14938         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
14939         don't record in REG_FRAME_RELATED_EXPR registers not set in that
14940         bitmask.
14941         (arm_expand_prologue): Adjust all callers.
14942         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
14943         info, registers also at the lowest numbered registers side.  Use
14944         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
14945         XEXP.
14946
14947         PR debug/59992
14948         * var-tracking.c (adjust_mems): Before adding a SET to
14949         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
14950
14951 2014-02-06  Alan Modra  <amodra@gmail.com>
14952
14953         PR target/60032
14954         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
14955         change SDmode to DDmode when lra_in_progress.
14956
14957 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
14958
14959         PR middle-end/59150
14960         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
14961         free_data_ref on the dr first, and before goto again also set dr
14962         to the next dr.  For simd_lane_access, free old datarefs[i] before
14963         overwriting it.  For get_vectype_for_scalar_type failure, don't
14964         free_data_ref if simd_lane_access.
14965
14966         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
14967
14968         PR target/60062
14969         * tree.h (opts_for_fn): New inline function.
14970         (opt_for_fn): Define.
14971         * config/i386/i386.c (ix86_function_regparm): Use
14972         opt_for_fn (decl, optimize) instead of optimize.
14973
14974 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14975
14976         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
14977         for SYMBOL_REF in large memory model.
14978
14979 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14980
14981         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
14982         and crypto support.
14983         (cortex-a57): Likewise.
14984         (cortex-a57.cortex-a53): Likewise.
14985
14986 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
14987             Kugan Vivekanandarajah  <kuganv@linaro.org>
14988
14989         * config/arm/arm.c (arm_vector_alignment_reachable): Check
14990         unaligned_access.
14991         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
14992
14993 2014-02-06  Richard Biener  <rguenther@suse.de>
14994
14995         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
14996         set_loop_copy and initialize_original_copy_tables.
14997
14998 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
14999
15000         * config/aarch64/aarch64-simd.md
15001         (aarch64_ashr_simddi): Change QI to SI.
15002
15003 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
15004             Jakub Jelinek  <jakub@redhat.com>
15005
15006         PR middle-end/60013
15007         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
15008         of the dataflow.
15009
15010 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15011
15012         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
15013         CODE_FOR_altivec_vpku[hw]um to
15014         CODE_FOR_altivec_vpku[hw]um_direct.
15015         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
15016         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
15017         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
15018         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
15019
15020 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15021
15022         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
15023         generation for -maltivec=be.
15024         (altivec_vsumsws): Simplify redundant test.
15025
15026 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15027
15028         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
15029         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
15030         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
15031         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
15032         gen_altivec_vpkuwum.
15033         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
15034         BYTES_BIG_ENDIAN.
15035         (altivec_vpks<VI_char>ss): Likewise.
15036         (altivec_vpks<VI_char>us): Likewise.
15037         (altivec_vpku<VI_char>us): Likewise.
15038         (altivec_vpku<VI_char>um): Likewise.
15039         (altivec_vpku<VI_char>um_direct): New (copy of
15040         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
15041         internal use).
15042         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
15043         target is little endian and -maltivec=be is not specified.
15044         (*altivec_vupkhs<VU_char>_direct): New (copy of
15045         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
15046         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
15047         target is little endian and -maltivec=be is not specified.
15048         (*altivec_vupkls<VU_char>_direct): New (copy of
15049         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
15050         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
15051         little endian and -maltivec=be is not specified.
15052         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
15053         little endian and -maltivec=be is not specified.
15054
15055 2014-02-05  Richard Henderson  <rth@redhat.com>
15056
15057         PR debug/52727
15058         * combine-stack-adj.c: Revert r206943.
15059         * sched-int.h (struct deps_desc): Add last_args_size.
15060         * sched-deps.c (init_deps): Initialize it.
15061         (sched_analyze_insn): Add OUTPUT dependencies between insns that
15062         contain REG_ARGS_SIZE notes.
15063
15064 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
15065
15066         * lto-cgraph.c (asm_nodes_output): Make global.
15067         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
15068         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
15069         (driver_handle_option): Handle OPT_fwpa.
15070
15071 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
15072
15073         PR ipa/59947
15074         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
15075         a comment typo and formatting issue.  If odr_hash hasn't been
15076         created, return vNULL and set *completep to false.
15077
15078         PR middle-end/57499
15079         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
15080         bb with no successors.
15081
15082 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
15083
15084         PR target/59718
15085         * doc/invoke.texi (-march): Clarify documentation for ARM.
15086         (-mtune): Likewise.
15087         (-mcpu): Likewise.
15088
15089 2014-02-05  Richard Biener  <rguenther@suse.de>
15090
15091         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
15092         when not vectorizing because of too many alias checks.
15093         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
15094         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
15095
15096 2014-02-05  Nick Clifton  <nickc@redhat.com>
15097
15098         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
15099         accept extended registers in any mode when compiling for the MN10300.
15100
15101 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
15102
15103         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
15104         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
15105         sanitization attributes.
15106         (can_inline_edge_p): Likewise.
15107         (sanitize_attrs_match_for_inline_p): New function.
15108
15109 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
15110
15111         * ipa-prop.c (detect_type_change): Shor circuit testing of
15112         type changes on THIS pointer.
15113
15114 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
15115
15116         PR target/59777
15117         * config/pa/pa.c (legitimize_tls_address): Return original address
15118         if not passed a SYMBOL_REF rtx.
15119         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
15120         addresses.
15121         (pa_emit_move_sequence): Simplify TLS source operands.
15122         (pa_legitimate_constant_p): Reject all TLS constants.
15123         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
15124         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
15125
15126 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
15127
15128         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
15129         groups when we know they are controlled by LTO.
15130         * varasm.c (default_binds_local_p_1): If object is in other partition,
15131         it will be resolved locally.
15132
15133 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15134
15135         * config/host-linux.c (linux_gt_pch_use_address): Don't
15136         use SSIZE_MAX because it is not always defined.
15137
15138 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
15139
15140         PR bootstrap/59913
15141         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
15142         threshold for pseudo splitting.
15143         (update_ebb_live_info): Process call argument hard registers and
15144         hard registers from insn definition too.
15145         (max_small_class_regs_num): New constant.
15146         (inherit_in_ebb): Update live hard regs through EBBs.  Update
15147         reloads_num only for small register classes.  Don't split for
15148         outputs of jumps.
15149
15150 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
15151
15152         PR ipa/60058
15153         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
15154         is non-null.
15155
15156 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
15157
15158         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
15159         visibility is safe.
15160
15161 2014-02-04  Marek Polacek  <polacek@redhat.com>
15162
15163         * gdbinit.in (pel): Define.
15164
15165 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15166
15167         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
15168         behavior.
15169
15170 2014-02-04  Richard Biener  <rguenther@suse.de>
15171
15172         PR lto/59723
15173         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
15174         in function context local.
15175         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
15176         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
15177         similar to LTO_imported_decl_ref.
15178
15179 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
15180
15181         PR tree-optimization/60002
15182         * cgraphclones.c (build_function_decl_skip_args): Clear
15183         DECL_LANG_SPECIFIC.
15184
15185         PR tree-optimization/60023
15186         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
15187         false to gsi_replace.
15188         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
15189         has been in some EH region and vec_stmt could throw, add
15190         vec_stmt into the same EH region.
15191         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
15192         has no lhs, ignore it.
15193         * internal-fn.c (expand_MASK_LOAD): Likewise.
15194
15195         PR ipa/60026
15196         * tree-inline.c (copy_forbidden): Fail for
15197         __attribute__((optimize (0))) functions.
15198
15199         PR other/58712
15200         * omp-low.c (simd_clone_struct_copy): If from->inbranch
15201         is set, copy one less argument.
15202         (expand_simd_clones): Don't subtract clone_info->inbranch
15203         from simd_clone_struct_alloc argument.
15204
15205         PR rtl-optimization/57915
15206         * recog.c (simplify_while_replacing): If all unary/binary/relational
15207         operation arguments are constant, attempt to simplify those.
15208
15209         PR middle-end/59261
15210         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
15211         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
15212
15213 2014-02-04  Richard Biener  <rguenther@suse.de>
15214
15215         PR tree-optimization/60012
15216         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
15217         TBAA disambiguation to all DDRs.
15218
15219 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15220
15221         PR target/59788
15222         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
15223         (LINK_SPEC): Use it for -shared, -shared-libgcc.
15224
15225 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
15226
15227         PR ipa/59882
15228         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
15229
15230 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
15231
15232         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
15233         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
15234
15235 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
15236
15237         PR ipa/59831
15238         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
15239         to figure out targets of polymorphic calls with known decl.
15240         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15241         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
15242         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
15243         (get_polymorphic_call_info): ... here.
15244         (get_polymorphic_call_info_from_invariant): New function.
15245
15246 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
15247
15248         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
15249         lookup via vtable pointer; check for type consistency
15250         and turn inconsitent facts into UNREACHABLE.
15251         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15252         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
15253         type inconsistent querries; return UNREACHABLE instead.
15254
15255 2014-02-03  Richard Henderson  <rth@twiddle.net>
15256
15257         PR tree-opt/59924
15258         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
15259         already processed this node.
15260         (normalize_one_pred_1): Pass along mark_set.
15261         (normalize_one_pred): Create and destroy a pointer_set_t.
15262         (normalize_one_pred_chain): Likewise.
15263
15264 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
15265
15266         PR gcov-profile/58602
15267         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
15268
15269 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
15270
15271         PR ipa/59831
15272         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
15273         -fno-devirtualize; try to devirtualize by the knowledge of
15274         virtual table pointer given by aggregate propagation.
15275         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
15276         (ipa_print_node_jump_functions): Dump also offset that
15277         is relevant for polymorphic calls.
15278         (determine_known_aggregate_parts): Add arg_type parameter; use it
15279         instead of determining the type from pointer type.
15280         (ipa_compute_jump_functions_for_edge): Update call of
15281         determine_known_aggregate_parts.
15282         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
15283         (gimple_get_virt_method_for_binfo): ... here; simplify using
15284         vtable_pointer_value_to_vtable.
15285         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
15286         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
15287         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
15288         (vtable_pointer_value_to_vtable): Break out from ...; handle also
15289         POINTER_PLUS_EXPR.
15290         (vtable_pointer_value_to_binfo): ... here.
15291         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
15292
15293 2014-02-03  Teresa Johnson  <tejohnson@google.com>
15294
15295         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
15296         redef of outer loop index variable.
15297
15298 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
15299
15300         PR c++/53017
15301         PR c++/59211
15302         * doc/extend.texi (Function Attributes): Typo.
15303
15304 2014-02-03  Cong Hou  <congh@google.com>
15305
15306         PR tree-optimization/60000
15307         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
15308         if the vectorized statement is a store.  A store statement can only
15309         appear at the end of pattern statements.
15310
15311 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
15312
15313         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
15314         (ix86_option_override_internal): Default long double to 64-bit for
15315         32-bit Bionic and to 128-bit for 64-bit Bionic.
15316
15317         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
15318         TARGET_LONG_DOUBLE_128 is true.
15319         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
15320
15321         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
15322         (mlong-double-64): Negate -mlong-double-128.
15323         (mlong-double-128): New option.
15324
15325         * config/i386/i386-c.c (ix86_target_macros): Define
15326         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
15327
15328         * doc/invoke.texi: Document -mlong-double-128.
15329
15330 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
15331
15332         PR rtl-optimization/60024
15333         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
15334
15335 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
15336
15337         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
15338
15339 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
15340
15341         PR rtl-optimization/57662
15342         * sel-sched.c (code_motion_path_driver): Do not mark already not
15343         existing blocks in the visiting bitmap.
15344
15345 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
15346
15347         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
15348         on the insn being emitted.
15349
15350 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
15351             Will Deacon  <will.deacon@arm.com>
15352
15353         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
15354
15355 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15356
15357         * config/arm/arm-tables.opt: Regenerate.
15358
15359 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15360
15361         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
15362         for vector types other than V16QImode.
15363         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
15364         define_expand, and call altivec_expand_vec_perm_le when producing
15365         code with little endian element order.
15366         (*altivec_vperm_<mode>_internal): New insn having previous
15367         behavior of altivec_vperm_<mode>.
15368         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
15369         altivec_expand_vec_perm_le when producing code with little endian
15370         element order.
15371         (*altivec_vperm_<mode>_uns_internal): New insn having previous
15372         behavior of altivec_vperm_<mode>_uns.
15373
15374 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15375
15376         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
15377         (altivec_vsumsws): Add handling for -maltivec=be with a little
15378         endian target.
15379         (altivec_vsumsws_direct): New.
15380         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
15381         gen_altivec_vsumsws.
15382
15383 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
15384
15385         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
15386         vtable_pointer_value_to_binfo): New functions.
15387         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
15388         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
15389
15390 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
15391
15392         * config/nios2/nios2.md (load_got_register): Initialize GOT
15393         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
15394         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
15395
15396 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
15397
15398         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
15399         preserverd by passthrough, do not propagate the type.
15400
15401 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15402
15403         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
15404         (mips_atomic_assign_expand_fenv): New function.
15405         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
15406
15407 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15408
15409         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
15410         (__builtin_mips_set_fcsr): Likewise.
15411         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
15412         MIPS_USI_FTYPE_VOID.
15413         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
15414         (mips16_expand_set_fcsr): Likewise.
15415         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
15416         (mips16_set_fcsr_stub): Likewise.
15417         (mips16_get_fcsr_one_only_stub): New class.
15418         (mips16_set_fcsr_one_only_stub): Likewise.
15419         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
15420         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
15421         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
15422         (hard_float): New availability predicate.
15423         (mips_builtins): Add get_fcsr and set_fcsr.
15424         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
15425         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
15426         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
15427         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
15428         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
15429         patterns.
15430
15431 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15432
15433         * config/mips/mips.c (mips_one_only_stub): New class.
15434         (mips_need_mips16_rdhwr_p): Replace with...
15435         (mips16_rdhwr_stub): ...this new variable.
15436         (mips16_stub_call_address): New function.
15437         (mips16_rdhwr_one_only_stub): New class.
15438         (mips_expand_thread_pointer): Use mips16_stub_call_address.
15439         (mips_output_mips16_rdhwr): Delete.
15440         (mips_finish_stub): New function.
15441         (mips_code_end): Use it to handle rdhwr stubs.
15442
15443 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
15444
15445         PR target/60017
15446         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
15447         when calculating size of integer atomic types.
15448
15449 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
15450
15451         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
15452
15453 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
15454
15455         PR tree-optimization/60003
15456         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
15457         * profile.c (branch_prob): Use gimple_call_builtin_p
15458         to check for BUILT_IN_SETJMP_RECEIVER.
15459         * tree-inline.c (copy_bb): Call notice_special_calls.
15460
15461 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
15462
15463         PR bootstrap/59985
15464         * lra-constraints.c (process_alt_operands): Update reload_sum only
15465         on the first pass.
15466
15467 2014-01-31  Richard Henderson  <rth@redhat.com>
15468
15469         PR middle-end/60004
15470         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
15471         until after else_eh is processed.
15472
15473 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
15474
15475         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
15476         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
15477         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
15478         in smmintrin.h, remove them.
15479         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
15480         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
15481         * config/i386/i386.md (ROUND_SAE): Fix value.
15482         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
15483         (const48_operand): New.
15484         * config/i386/subst.md (round), (round_expand): Use
15485         const_4_or_8_to_11_operand.
15486         (round_saeonly), (round_saeonly_expand): Use const48_operand.
15487
15488 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
15489
15490         * config/i386/constraints.md (Yk): Swap meaning with k.
15491         * config/i386/i386.md (movhi_internal): Change Yk to k.
15492         (movqi_internal): Ditto.
15493         (*k<logic><mode>): Ditto.
15494         (*andhi_1): Ditto.
15495         (*andqi_1): Ditto.
15496         (kandn<mode>): Ditto.
15497         (*<code>hi_1): Ditto.
15498         (*<code>qi_1): Ditto.
15499         (kxnor<mode>): Ditto.
15500         (kortestzhi): Ditto.
15501         (kortestchi): Ditto.
15502         (kunpckhi): Ditto.
15503         (*one_cmplhi2_1): Ditto.
15504         (*one_cmplqi2_1): Ditto.
15505         * config/i386/sse.md (): Change k to Yk.
15506         (avx512f_load<mode>_mask): Ditto.
15507         (avx512f_blendm<mode>): Ditto.
15508         (avx512f_store<mode>_mask): Ditto.
15509         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
15510         (avx512f_storedqu<mode>_mask): Ditto.
15511         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
15512         Ditto.
15513         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
15514         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
15515         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
15516         (avx512f_maskcmp<mode>3): Ditto.
15517         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
15518         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
15519         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
15520         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
15521         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
15522         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
15523         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
15524         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
15525         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
15526         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
15527         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
15528         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
15529         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
15530         (vec_extract_lo_<mode>_maskm): Ditto.
15531         (vec_extract_hi_<mode>_maskm): Ditto.
15532         (avx512f_vternlog<mode>_mask): Ditto.
15533         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
15534         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
15535         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
15536         (avx512f_<code>v8div16qi2_mask): Ditto.
15537         (avx512f_<code>v8div16qi2_mask_store): Ditto.
15538         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
15539         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
15540         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
15541         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
15542         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
15543         (*avx512pf_gatherpf<mode>df_mask): Ditto.
15544         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
15545         (*avx512pf_scatterpf<mode>df_mask): Ditto.
15546         (avx512cd_maskb_vec_dupv8di): Ditto.
15547         (avx512cd_maskw_vec_dupv16si): Ditto.
15548         (avx512f_vpermi2var<mode>3_maskz): Ditto.
15549         (avx512f_vpermi2var<mode>3_mask): Ditto.
15550         (avx512f_vpermi2var<mode>3_mask): Ditto.
15551         (avx512f_vpermt2var<mode>3_maskz): Ditto.
15552         (*avx512f_gathersi<mode>): Ditto.
15553         (*avx512f_gathersi<mode>_2): Ditto.
15554         (*avx512f_gatherdi<mode>): Ditto.
15555         (*avx512f_gatherdi<mode>_2): Ditto.
15556         (*avx512f_scattersi<mode>): Ditto.
15557         (*avx512f_scatterdi<mode>): Ditto.
15558         (avx512f_compress<mode>_mask): Ditto.
15559         (avx512f_compressstore<mode>_mask): Ditto.
15560         (avx512f_expand<mode>_mask): Ditto.
15561         * config/i386/subst.md (mask): Change k to Yk.
15562         (mask_scalar_merge): Ditto.
15563         (sd): Ditto.
15564
15565 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
15566
15567         * doc/extend.texi (Vector Extensions): Document ?: in C++.
15568
15569 2014-01-31  Richard Biener  <rguenther@suse.de>
15570
15571         PR middle-end/59990
15572         * builtins.c (fold_builtin_memory_op): Make sure to not
15573         use a floating-point mode or a boolean or enumeral type for
15574         the copy operation.
15575
15576 2014-01-30  DJ Delorie  <dj@redhat.com>
15577
15578         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
15579         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
15580         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
15581         whenever main() has an epilogue.
15582
15583 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15584
15585         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
15586         unused variable "field".
15587         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
15588         (vsx_mergeh_<mode>): Likewise.
15589         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
15590         (altivec_vmrghh): Likewise.
15591         (altivec_vmrghw): Likewise.
15592         (altivec_vmrglb): Likewise.
15593         (altivec_vmrglh): Likewise.
15594         (altivec_vmrglw): Likewise.
15595         (altivec_vspltb): Add missing uses.
15596         (altivec_vsplth): Likewise.
15597         (altivec_vspltw): Likewise.
15598         (altivec_vspltsf): Likewise.
15599
15600 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
15601
15602         PR target/59923
15603         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
15604         frame related instructions.
15605
15606 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
15607
15608         PR rtl-optimization/59959
15609         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
15610         any reload of register whose subreg is invalid.
15611
15612 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
15613
15614         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
15615         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
15616         Add missing return type - void.
15617
15618 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15619
15620         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
15621         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
15622         remove element index adjustment for endian (now handled in vsx.md
15623         and altivec.md).
15624         (altivec_expand_vec_perm_const): Use
15625         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
15626         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
15627         (vsx_xxspltw_<mode>): Adjust element index for little endian.
15628         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
15629         define_expand and a new define_insn *altivec_vspltb_internal;
15630         adjust for -maltivec=be on a little endian target.
15631         (altivec_vspltb_direct): New.
15632         (altivec_vsplth): Divide into a define_expand and a new
15633         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
15634         little endian target.
15635         (altivec_vsplth_direct): New.
15636         (altivec_vspltw): Divide into a define_expand and a new
15637         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
15638         little endian target.
15639         (altivec_vspltw_direct): New.
15640         (altivec_vspltsf): Divide into a define_expand and a new
15641         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
15642         a little endian target.
15643
15644 2014-01-30  Richard Biener  <rguenther@suse.de>
15645
15646         PR tree-optimization/59993
15647         * tree-ssa-forwprop.c (associate_pointerplus): Check we
15648         can propagate form the earlier stmt and avoid the transform
15649         when the intermediate result is needed.
15650
15651 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
15652
15653         * README.Portability: Fix typo.
15654
15655 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
15656
15657         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
15658         comparison_operator with ordered_comparison_operator.
15659
15660 2014-01-30  Nick Clifton  <nickc@redhat.com>
15661
15662         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
15663         Rename to mn10300_store_multiple_regs.
15664         * config/mn10300/mn10300.c: Likewise.
15665         * config/mn10300/mn10300.md (store_movm): Fix typo: call
15666         store_multiple_regs.
15667         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
15668         Call mn10300_store_multiple_regs.
15669
15670 2014-01-30  Nick Clifton  <nickc@redhat.com>
15671             DJ Delorie  <dj@redhat.com>
15672
15673         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
15674         %fp 2 to keep registers after it properly word-aligned.
15675         (rl78_alloc_physical_registers_umul): Handle the case where both
15676         input operands are the same.
15677
15678 2014-01-30  Richard Biener  <rguenther@suse.de>
15679
15680         PR tree-optimization/59903
15681         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
15682         check properly.
15683
15684 2014-01-30  Jason Merrill  <jason@redhat.com>
15685
15686         PR c++/59633
15687         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
15688
15689         PR c++/59645
15690         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
15691
15692 2014-01-30  Richard Biener  <rguenther@suse.de>
15693
15694         PR tree-optimization/59951
15695         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
15696
15697 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
15698
15699         PR target/59784
15700         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
15701         SFmode to DFmode case.
15702
15703 2014-01-29  DJ Delorie  <dj@redhat.com>
15704
15705         * config/msp430/msp430.opt (-minrt): New.
15706         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
15707         if -minrt given.
15708         (ENDFILE_SPEC): Likewise.
15709
15710 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
15711
15712         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
15713         (estimate_function_body_sizes): Use it.
15714
15715 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
15716
15717         PR c++/58561
15718         * dwarf2out.c (is_cxx_auto): New.
15719         (is_base_type): Use it.
15720         (gen_type_die_with_usage): Likewise.
15721
15722 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15723
15724         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
15725         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
15726         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
15727         -maltivec=be with LE targets.
15728         (vsx_mergeh_<mode>): Likewise.
15729         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
15730         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
15731         (altivec_vmrghb): Replace with define_expand and new
15732         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
15733         (altivec_vmrghb_direct): New define_insn.
15734         (altivec_vmrghh): Replace with define_expand and new
15735         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
15736         (altivec_vmrghh_direct): New define_insn.
15737         (altivec_vmrghw): Replace with define_expand and new
15738         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
15739         (altivec_vmrghw_direct): New define_insn.
15740         (*altivec_vmrghsf): Adjust for endianness.
15741         (altivec_vmrglb): Replace with define_expand and new
15742         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
15743         (altivec_vmrglb_direct): New define_insn.
15744         (altivec_vmrglh): Replace with define_expand and new
15745         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
15746         (altivec_vmrglh_direct): New define_insn.
15747         (altivec_vmrglw): Replace with define_expand and new
15748         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
15749         (altivec_vmrglw_direct): New define_insn.
15750         (*altivec_vmrglsf): Adjust for endianness.
15751         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
15752         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
15753         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
15754         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
15755         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
15756         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
15757         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
15758         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
15759
15760 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
15761
15762         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
15763         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
15764         whitespace.
15765
15766 2014-01-29  Richard Biener  <rguenther@suse.de>
15767
15768         PR tree-optimization/58742
15769         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
15770         associate_pointerplus_align.
15771         (associate_pointerplus_diff): New function.
15772         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
15773         and associate_pointerplus_diff.
15774
15775 2014-01-29  Richard Biener  <rguenther@suse.de>
15776
15777         * lto-streamer.h (LTO_major_version): Bump to 3.
15778         (LTO_minor_version): Reset to 0.
15779
15780 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
15781
15782         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
15783         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
15784         (arm_file_start): Generate correct asm header for armv7ve.
15785         * config/arm/bpabi.h: Add multilib support for armv7ve.
15786         * config/arm/driver-arm.c: Change the architectures of cortex-a7
15787         and cortex-a15 to armv7ve.
15788         * config/arm/t-aprofile: Add multilib support for armv7ve.
15789         * doc/invoke.texi: Document -march=armv7ve.
15790
15791 2014-01-29  Richard Biener  <rguenther@suse.de>
15792
15793         PR tree-optimization/58742
15794         * tree-ssa-forwprop.c (associate_plusminus): Return true
15795         if we changed sth, defer EH cleanup to ...
15796         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
15797         (simplify_mult): New function.
15798
15799 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
15800
15801         PR middle-end/59917
15802         PR tree-optimization/59920
15803         * tree.c (build_common_builtin_nodes): Remove
15804         __builtin_setjmp_dispatcher initialization.
15805         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
15806         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
15807         instead of gsi_after_labels + manually skipping debug stmts.
15808         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
15809         ignore bbs with IFN_ABNORMAL_DISPATCHER.
15810         * tree-inline.c (copy_edges_for_bb): Remove
15811         can_make_abnormal_goto argument, instead add abnormal_goto_dest
15812         argument.  Ignore computed_goto_p stmts.  Don't call
15813         make_abnormal_goto_edges.  If a call might need abnormal edges
15814         for non-local gotos, see if it already has an edge to
15815         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
15816         with true argument, don't do anything then, otherwise add
15817         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
15818         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
15819         caller.
15820         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
15821         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
15822         (lower_stmt): Don't set data->calls_builtin_setjmp.
15823         (lower_builtin_setjmp): Adjust comment.
15824         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
15825         * tree-cfg.c (found_computed_goto): Remove.
15826         (factor_computed_gotos): Remove.
15827         (make_goto_expr_edges): Return bool, true for computed gotos.
15828         Don't call make_abnormal_goto_edges.
15829         (build_gimple_cfg): Don't set found_computed_goto, don't call
15830         factor_computed_gotos.
15831         (computed_goto_p): No longer static.
15832         (make_blocks): Don't set found_computed_goto.
15833         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
15834         (make_edges): If make_goto_expr_edges returns true, push bb
15835         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
15836         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
15837         vector.  Record mapping between bbs and OpenMP regions if there
15838         are any, adjust make_gimple_omp_edges caller.  Call
15839         handle_abnormal_edges.
15840         (make_abnormal_goto_edges): Remove.
15841         * tree-cfg.h (make_abnormal_goto_edges): Remove.
15842         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
15843         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
15844         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
15845         * internal-fn.def (ABNORMAL_DISPATCHER): New.
15846         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
15847         filling *region also set *region_idx to (*region)->entry->index.
15848
15849         PR other/58712
15850         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
15851         For REGs set ORIGINAL_REGNO.
15852
15853 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
15854
15855         * doc/md.texi: Mention that a target shouldn't implement
15856         vec_widen_(s|u)mul_even/odd pair if it is less efficient
15857         than hi/lo pair.
15858
15859 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
15860
15861         PR tree-optimization/59594
15862         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
15863         a copy of the datarefs vector rather than the vector itself.
15864
15865 2014-01-28  Jason Merrill  <jason@redhat.com>
15866
15867         PR c++/53756
15868         * dwarf2out.c (auto_die): New static.
15869         (gen_type_die_with_usage): Handle C++1y 'auto'.
15870         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
15871         on definition.
15872
15873 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
15874
15875         PR target/59672
15876         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
15877         (SPEC_X32): Likewise.
15878         (SPEC_64): Likewise.
15879         * config/i386/i386.c (ix86_option_override_internal): Turn off
15880         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
15881         for TARGET_16BIT.
15882         (x86_file_start): Output .code16gcc for TARGET_16BIT.
15883         * config/i386/i386.h (TARGET_16BIT): New macro.
15884         (TARGET_16BIT_P): Likewise.
15885         * config/i386/i386.opt: Add m16.
15886         * doc/invoke.texi: Document -m16.
15887
15888 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
15889
15890         PR preprocessor/59935
15891         * input.c (location_get_source_line): Bail out on when line number
15892         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
15893
15894 2014-01-28  Richard Biener  <rguenther@suse.de>
15895
15896         PR tree-optimization/58742
15897         * tree-ssa-forwprop.c (associate_plusminus): Handle
15898         pointer subtraction of the form (T)(P + A) - (T)P.
15899
15900 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15901
15902         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
15903         at const_int_cost.
15904
15905 2014-01-28  Richard Biener  <rguenther@suse.de>
15906
15907         Revert
15908         2014-01-28  Richard Biener  <rguenther@suse.de>
15909
15910         PR rtl-optimization/45364
15911         PR rtl-optimization/59890
15912         * var-tracking.c (local_get_addr_clear_given_value): Handle
15913         already cleared slot.
15914         (val_reset): Handle not allocated local_get_addr_cache.
15915         (vt_find_locations): Use post-order on the inverted CFG.
15916
15917 2014-01-28  Richard Biener  <rguenther@suse.de>
15918
15919         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
15920
15921 2014-01-28  Richard Biener  <rguenther@suse.de>
15922
15923         PR rtl-optimization/45364
15924         PR rtl-optimization/59890
15925         * var-tracking.c (local_get_addr_clear_given_value): Handle
15926         already cleared slot.
15927         (val_reset): Handle not allocated local_get_addr_cache.
15928         (vt_find_locations): Use post-order on the inverted CFG.
15929
15930 2014-01-28  Alan Modra  <amodra@gmail.com>
15931
15932         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
15933         * configure.ac <recursive call for build != host>: Define
15934         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
15935         and LD_FOR_BUILD too.
15936         * configure: Regenerate.
15937
15938 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
15939
15940         * config/i386/i386.c (get_builtin_code_for_version): Separate
15941         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
15942         Broadwell from Haswell.
15943
15944 2014-01-27  Steve Ellcey  <sellcey@mips.com>
15945
15946         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
15947         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
15948         * config/mips/mips.c (mips_option_override): Change setting
15949         of TARGET_DSP.
15950         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
15951         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
15952         Change from Mask to Var.
15953
15954 2014-01-27  Jeff Law  <law@redhat.com>
15955
15956         * ipa-inline.c (inline_small_functions): Fix typo.
15957
15958 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
15959
15960         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
15961         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
15962         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
15963         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
15964         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
15965         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
15966         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
15967         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
15968         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
15969         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
15970         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
15971         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
15972         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
15973         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
15974         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
15975         (_mm512_storeu_epi64): Ditto.
15976         (_mm512_cmpge_epi32_mask): Ditto.
15977         (_mm512_cmpge_epu32_mask): Ditto.
15978         (_mm512_cmpge_epi64_mask): Ditto.
15979         (_mm512_cmpge_epu64_mask): Ditto.
15980         (_mm512_cmple_epi32_mask): Ditto.
15981         (_mm512_cmple_epu32_mask): Ditto.
15982         (_mm512_cmple_epi64_mask): Ditto.
15983         (_mm512_cmple_epu64_mask): Ditto.
15984         (_mm512_cmplt_epi32_mask): Ditto.
15985         (_mm512_cmplt_epu32_mask): Ditto.
15986         (_mm512_cmplt_epi64_mask): Ditto.
15987         (_mm512_cmplt_epu64_mask): Ditto.
15988         (_mm512_cmpneq_epi32_mask): Ditto.
15989         (_mm512_cmpneq_epu32_mask): Ditto.
15990         (_mm512_cmpneq_epi64_mask): Ditto.
15991         (_mm512_cmpneq_epu64_mask): Ditto.
15992         (_mm512_expand_pd): Ditto.
15993         (_mm512_expand_ps): Ditto.
15994         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
15995         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
15996         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
15997         * config/i386/i386.c (ix86_builtins): Add
15998         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
15999         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
16000         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
16001         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
16002         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
16003         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
16004         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
16005         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
16006         IX86_BUILTIN_PMOVUSQW512_MEM.
16007         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
16008         __builtin_ia32_pmovsqd512mem_mask,
16009         __builtin_ia32_pmovqd512mem_mask,
16010         __builtin_ia32_pmovusqw512mem_mask,
16011         __builtin_ia32_pmovsqw512mem_mask,
16012         __builtin_ia32_pmovqw512mem_mask,
16013         __builtin_ia32_pmovusdw512mem_mask,
16014         __builtin_ia32_pmovsdw512mem_mask,
16015         __builtin_ia32_pmovdw512mem_mask,
16016         __builtin_ia32_pmovqb512mem_mask,
16017         __builtin_ia32_pmovusqb512mem_mask,
16018         __builtin_ia32_pmovsqb512mem_mask,
16019         __builtin_ia32_pmovusdb512mem_mask,
16020         __builtin_ia32_pmovsdb512mem_mask,
16021         __builtin_ia32_pmovdb512mem_mask.
16022         (bdesc_args): Add __builtin_ia32_expanddf512,
16023         __builtin_ia32_expandsf512.
16024         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
16025         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
16026         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
16027         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
16028         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
16029         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
16030         (avx512f_<code>v8div16qi2_mask_store): This.
16031         (avx512f_expand<mode>): New.
16032
16033 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
16034
16035         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
16036         New.
16037         (_mm512_mask_prefetch_i64gather_pd): Ditto.
16038         (_mm512_prefetch_i32scatter_pd): Ditto.
16039         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
16040         (_mm512_prefetch_i64scatter_pd): Ditto.
16041         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
16042         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
16043         (_mm512_mask_prefetch_i64gather_ps): Ditto.
16044         (_mm512_prefetch_i32scatter_ps): Ditto.
16045         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
16046         (_mm512_prefetch_i64scatter_ps): Ditto.
16047         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
16048         * config/i386/i386-builtin-types.def: Define
16049         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
16050         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
16051         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
16052         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
16053         IX86_BUILTIN_SCATTERPFQPD.
16054         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
16055         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
16056         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
16057         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
16058         __builtin_ia32_scatterpfqps.
16059         (ix86_expand_builtin): Expand new built-ins.
16060         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
16061         fix memory access data type.
16062         (*avx512pf_gatherpf<mode>_mask): Ditto.
16063         (*avx512pf_gatherpf<mode>): Ditto.
16064         (avx512pf_scatterpf<mode>): Ditto.
16065         (*avx512pf_scatterpf<mode>_mask): Ditto.
16066         (*avx512pf_scatterpf<mode>): Ditto.
16067         (GATHER_SCATTER_SF_MEM_MODE): New.
16068         (avx512pf_gatherpf<mode>df): Ditto.
16069         (*avx512pf_gatherpf<mode>df_mask): Ditto.
16070         (*avx512pf_scatterpf<mode>df): Ditto.
16071
16072 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
16073
16074         PR bootstrap/59934
16075         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
16076         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
16077         reached.
16078
16079 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
16080
16081         * common/config/arm/arm-common.c
16082         (arm_rewrite_mcpu): Handle multiple names.
16083         * config/arm/arm.h
16084         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
16085
16086 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
16087
16088         * gimple-builder.h (create_gimple_tmp): Delete.
16089
16090 2014-01-27  Christian Bruel  <christian.bruel@st.com>
16091
16092         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
16093         words comparisons.
16094
16095 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
16096
16097         * config/pa/pa.md (call): Generate indirect long calls to non-local
16098         functions when outputing 32-bit code.
16099         (call_value): Likewise except for special call to buggy powf function.
16100
16101         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
16102         portable runtime and PIC indirect calls.
16103         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
16104         and PIC call sequences.  Use ldo instead of blr to set return register
16105         in PIC call sequence.
16106
16107 2014-01-25  Walter Lee  <walt@tilera.com>
16108
16109         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
16110         avoid clobbering a live register.
16111
16112 2014-01-25  Walter Lee  <walt@tilera.com>
16113
16114         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
16115         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
16116         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
16117         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
16118
16119 2014-01-25  Walter Lee  <walt@tilera.com>
16120
16121         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
16122         arguments on even registers.
16123         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
16124         STACK_BOUNDARY.
16125         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
16126         (BIGGEST_ALIGNMENT): Ditto.
16127         (BIGGEST_FIELD_ALIGNMENT): Ditto.
16128
16129 2014-01-25  Walter Lee  <walt@tilera.com>
16130
16131         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
16132         insns before bundling.
16133         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
16134
16135 2014-01-25  Walter Lee  <walt@tilera.com>
16136
16137         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
16138         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
16139         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
16140
16141 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
16142
16143         * config/mips/constraints.md (kl): Delete.
16144         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
16145         define expands, using...
16146         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
16147         instructions for MIPS16.
16148         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
16149         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
16150
16151 2014-01-25  Walter Lee  <walt@tilera.com>
16152
16153         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
16154         (clzdi2): Ditto.
16155         (ffsdi2): Ditto.
16156
16157 2014-01-25  Walter Lee  <walt@tilera.com>
16158
16159         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
16160         (TARGET_EXPAND_TO_RTL_HOOK): Define.
16161
16162 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
16163
16164         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
16165         Handle XOR.
16166
16167 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
16168
16169         * print-rtl.c (in_call_function_usage): New var.
16170         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
16171         EXPR_LIST mode as mode and not as reg note name.
16172
16173         PR middle-end/59561
16174         * cfgloopmanip.c (copy_loop_info): If
16175         loop->warned_aggressive_loop_optimizations, make sure
16176         the flag is set in target loop too.
16177
16178 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
16179
16180         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
16181         flag_cilkplus.
16182         * builtins.def: Likewise.
16183         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
16184         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
16185         * ira.c (ira_setup_eliminable_regset): Likewise.
16186         * omp-low.c (gate_expand_omp): Likewise.
16187         (execute_lower_omp): Likewise.
16188         (diagnose_sb_0): Likewise.
16189         (gate_diagnose_omp_blocks): Likewise.
16190         (simd_clone_clauses_extract): Likewise.
16191         (gate): Likewise.
16192
16193 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16194
16195         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
16196         correction for little endian...
16197         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
16198         here.
16199
16200 2014-01-24  Jeff Law  <law@redhat.com>
16201
16202         PR tree-optimization/59919
16203         * tree-vrp.c (find_assert_locations_1): Do not register asserts
16204         for non-returning calls.
16205
16206 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
16207
16208         * common/config/aarch64/aarch64-common.c
16209         (aarch64_rewrite_mcpu): Handle multiple names.
16210         * config/aarch64/aarch64.h
16211         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
16212
16213 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
16214
16215         * input.c (add_file_to_cache_tab): Handle the case where fopen
16216         returns NULL.
16217
16218 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
16219
16220         PR target/59929
16221         * config/i386/i386.md (pushsf splitter): Get stack adjustment
16222         from push operand if code of push isn't PRE_DEC.
16223
16224 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16225
16226         PR target/59909
16227         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16228         -mquad-memory-atomic.  Update -mquad-memory documentation to say
16229         it is only used for non-atomic loads/stores.
16230
16231         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
16232         -mquad-memory or -mquad-memory-atomic switches.
16233
16234         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
16235         -mquad-memory-atomic to ISA 2.07 support.
16236
16237         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
16238         to separate support of normal quad word memory operations (ldq, stq)
16239         from the atomic quad word memory operations.
16240
16241         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16242         support to separate non-atomic quad word operations from atomic
16243         quad word operations.  Disable non-atomic quad word operations in
16244         little endian mode so that we don't have to swap words after the
16245         load and before the store.
16246         (quad_load_store_p): Add comment about atomic quad word support.
16247         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
16248         options printed with -mdebug=reg.
16249
16250         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
16251         -mquad-memory-atomic as the test for whether we have quad word
16252         atomic instructions.
16253         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
16254         or -mp8-vector are used, allow byte/half-word atomic operations.
16255
16256         * config/rs6000/sync.md (load_lockedti): Insure that the address
16257         is a proper indexed or indirect address for the lqarx instruction.
16258         On little endian systems, swap the hi/lo registers after the lqarx
16259         instruction.
16260         (load_lockedpti): Use indexed_or_indirect_operand predicate to
16261         insure the address is valid for the lqarx instruction.
16262         (store_conditionalti): Insure that the address is a proper indexed
16263         or indirect address for the stqcrx. instruction.  On little endian
16264         systems, swap the hi/lo registers before doing the stqcrx.
16265         instruction.
16266         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
16267         insure the address is valid for the stqcrx. instruction.
16268
16269         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
16270         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
16271         type of quad memory support is available.
16272
16273 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
16274
16275         PR regression/59915
16276         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
16277         there is a danger of looping.
16278
16279 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
16280
16281         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16282         force flag_ira_loop_pressure if set via command line.
16283
16284 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
16285
16286         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
16287         (ashr_simd): New builtin handling DI mode.
16288         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
16289         (aarch64_sshr_simddi): New match pattern.
16290         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
16291         (vshrd_n_s64): Likewise.
16292         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
16293
16294 2014-01-23  Nick Clifton  <nickc@redhat.com>
16295
16296         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
16297         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
16298         favour of mcu specific scripts.
16299         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
16300         430x multilibs.
16301
16302 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
16303             Alex Velenko  <Alex.Velenko@arm.com>
16304
16305         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
16306         (vaddv_s16): Likewise.
16307         (vaddv_s32): Likewise.
16308         (vaddv_u8): Likewise.
16309         (vaddv_u16): Likewise.
16310         (vaddv_u32): Likewise.
16311         (vaddvq_s8): Likewise.
16312         (vaddvq_s16): Likewise.
16313         (vaddvq_s32): Likewise.
16314         (vaddvq_s64): Likewise.
16315         (vaddvq_u8): Likewise.
16316         (vaddvq_u16): Likewise.
16317         (vaddvq_u32): Likewise.
16318         (vaddvq_u64): Likewise.
16319         (vaddv_f32): Likewise.
16320         (vaddvq_f32): Likewise.
16321         (vaddvq_f64): Likewise.
16322         (vmaxv_f32): Likewise.
16323         (vmaxv_s8): Likewise.
16324         (vmaxv_s16): Likewise.
16325         (vmaxv_s32): Likewise.
16326         (vmaxv_u8): Likewise.
16327         (vmaxv_u16): Likewise.
16328         (vmaxv_u32): Likewise.
16329         (vmaxvq_f32): Likewise.
16330         (vmaxvq_f64): Likewise.
16331         (vmaxvq_s8): Likewise.
16332         (vmaxvq_s16): Likewise.
16333         (vmaxvq_s32): Likewise.
16334         (vmaxvq_u8): Likewise.
16335         (vmaxvq_u16): Likewise.
16336         (vmaxvq_u32): Likewise.
16337         (vmaxnmv_f32): Likewise.
16338         (vmaxnmvq_f32): Likewise.
16339         (vmaxnmvq_f64): Likewise.
16340         (vminv_f32): Likewise.
16341         (vminv_s8): Likewise.
16342         (vminv_s16): Likewise.
16343         (vminv_s32): Likewise.
16344         (vminv_u8): Likewise.
16345         (vminv_u16): Likewise.
16346         (vminv_u32): Likewise.
16347         (vminvq_f32): Likewise.
16348         (vminvq_f64): Likewise.
16349         (vminvq_s8): Likewise.
16350         (vminvq_s16): Likewise.
16351         (vminvq_s32): Likewise.
16352         (vminvq_u8): Likewise.
16353         (vminvq_u16): Likewise.
16354         (vminvq_u32): Likewise.
16355         (vminnmv_f32): Likewise.
16356         (vminnmvq_f32): Likewise.
16357         (vminnmvq_f64): Likewise.
16358
16359 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
16360
16361         * config/aarch64/aarch64-simd.md
16362         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
16363         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
16364         (*aarch64_mul3_elt<mode>): Likewise.
16365         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
16366         (*aarch64_mul3_elt_to_64v2df): Likewise.
16367         (*aarch64_mla_elt<mode>): Likewise.
16368         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
16369         (*aarch64_mls_elt<mode>): Likewise.
16370         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
16371         (*aarch64_fma4_elt<mode>): Likewise.
16372         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
16373         (*aarch64_fma4_elt_to_64v2df): Likewise.
16374         (*aarch64_fnma4_elt<mode>): Likewise.
16375         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
16376         (*aarch64_fnma4_elt_to_64v2df): Likewise.
16377         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
16378         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
16379         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
16380         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
16381         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
16382         (aarch64_sqdmull_lane<mode>_internal): Likewise.
16383         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
16384
16385 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
16386
16387         * config/aarch64/aarch64-simd.md
16388         (aarch64_be_checked_get_lane<mode>): New define_expand.
16389         * config/aarch64/aarch64-simd-builtins.def
16390         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
16391         New builtin definition.
16392         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
16393         Use new safe be builtin.
16394
16395 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
16396
16397         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
16398         New define_insn.
16399         (aarch64_be_st1<mode>): Likewise.
16400         (aarch_ld1<VALL:mode>): Define_expand modified.
16401         (aarch_st1<VALL:mode>): Likewise.
16402         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
16403         (UNSPEC_ST1): Likewise.
16404
16405 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
16406
16407         * config/microblaze/microblaze.md: Add trap insn and attribute
16408
16409 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
16410
16411         PR preprocessor/58580
16412         * input.h (location_get_source_line): Take an additional line_size
16413         parameter.
16414         (void diagnostics_file_cache_fini): Declare new function.
16415         * input.c (struct fcache): New type.
16416         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
16417         New static constants.
16418         (diagnostic_file_cache_init, total_lines_num)
16419         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
16420         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
16421         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
16422         (get_next_line, read_next_line, goto_next_line, read_line_num):
16423         New static function definitions.
16424         (diagnostic_file_cache_fini): New function.
16425         (location_get_source_line): Take an additional output line_len
16426         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
16427         read_line_num.
16428         * diagnostic.c (diagnostic_finish): Call
16429         diagnostic_file_cache_fini.
16430         (adjust_line): Take an additional input parameter for the length
16431         of the line, rather than calculating it with strlen.
16432         (diagnostic_show_locus): Adjust the use of
16433         location_get_source_line and adjust_line with respect to their new
16434         signature.  While displaying a line now, do not stop at the first
16435         null byte.  Rather, display the zero byte as a space and keep
16436         going until we reach the size of the line.
16437         * Makefile.in: Add vec.o to OBJS-libcommon
16438
16439 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
16440             Ilya Tocar  <ilya.tocar@intel.com>
16441
16442         * config/i386/avx512fintrin.h (_mm512_kmov): New.
16443         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
16444         (__builtin_ia32_kmov16): Ditto.
16445         * config/i386/i386.md (UNSPEC_KMOV): New.
16446         (kmovw): Ditto.
16447
16448 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
16449
16450         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
16451         (_mm512_storeu_si512): Ditto.
16452
16453 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
16454
16455         PR target/52125
16456         * rtl.h (get_referenced_operands): Declare.
16457         * recog.c (get_referenced_operands): New function.
16458         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
16459         operands have been referenced when recording LO_SUM references.
16460
16461 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
16462
16463         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
16464
16465 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
16466
16467         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
16468         Enable for generic and recent AMD targets.
16469
16470 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
16471
16472         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
16473         ARG_SIZE note when adjustment was eliminated.
16474
16475 2014-01-22  Jeff Law  <law@redhat.com>
16476
16477         PR tree-optimization/59597
16478         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
16479         in file.  Accept new argument REGISTERING and use it to modify
16480         dump output appropriately.
16481         (register_jump_thread): Corresponding changes.
16482         (mark_threaded_blocks): Reinstate code to cancel unprofitable
16483         thread paths involving joiner blocks.  Add code to dump cancelled
16484         jump threading paths.
16485
16486 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
16487
16488         PR rtl-optimization/59477
16489         * lra-constraints.c (inherit_in_ebb): Process call for living hard
16490         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
16491
16492 2014-01-22  Tom Tromey  <tromey@redhat.com>
16493
16494         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
16495         PARAMS.
16496         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
16497
16498 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
16499
16500         PR rtl-optimization/59896
16501         * lra-constraints.c (process_alt_operands): Check unused note for
16502         matched operands of insn with no output reloads.
16503
16504 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
16505
16506         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
16507         (mips_move_from_gpr_cost): Likewise.
16508
16509 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
16510
16511         PR rtl-optimization/59858
16512         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
16513         ira_class_hard_regs_num.
16514         (process_alt_operands): Increase reject for dying matched operand.
16515
16516 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
16517
16518         PR target/59003
16519         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
16520         smaller than size, perform several stores or loads and stores
16521         at dst + count - size to store or copy all of size bytes, rather
16522         than just last modesize bytes.
16523
16524 2014-01-20  DJ Delorie  <dj@redhat.com>
16525
16526         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
16527         that CLOBBERs are REGs before propogating their values.
16528
16529 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
16530
16531         PR middle-end/59789
16532         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
16533         (cgraph_inline_failed_type): New function.
16534         * cgraph.h (DEFCIFCODE): Add type.
16535         (cgraph_inline_failed_type_t): New enum.
16536         (cgraph_inline_failed_type): New prototype.
16537         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
16538         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
16539         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
16540         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
16541         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
16542         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
16543         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
16544         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
16545         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
16546         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
16547         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
16548         OPTIMIZATION_MISMATCH.
16549         * tree-inline.c (expand_call_inline): Emit errors during
16550         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
16551
16552 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
16553
16554         PR target/59685
16555         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
16556         mode attribute in insn output.
16557
16558 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
16559
16560         * output.h (output_constant): Delete.
16561         * varasm.c (output_constant): Make private.
16562
16563 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
16564
16565         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
16566
16567 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
16568
16569         PR middle-end/59860
16570         * tree.h (fold_builtin_strcat): New prototype.
16571         * builtins.c (fold_builtin_strcat): No longer static.  Add len
16572         argument, if non-NULL, don't call c_strlen.  Optimize
16573         directly into __builtin_memcpy instead of __builtin_strcpy.
16574         (fold_builtin_2): Adjust fold_builtin_strcat caller.
16575         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
16576
16577 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
16578
16579         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
16580         for SImode_address_operand operands, having only a REG argument.
16581
16582 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16583
16584         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
16585         loader name using mbig-endian.
16586         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
16587
16588 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
16589
16590         * doc/invoke.texi (-march): Clarify documentation for AArch64.
16591         (-mtune): Likewise.
16592         (-mcpu): Likewise.
16593
16594 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
16595
16596         * config/aarch64/aarch64-protos.h
16597         (aarch64_cannot_change_mode_class_ptr): Declare.
16598         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
16599         aarch64_cannot_change_mode_class_ptr): New.
16600         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
16601         backend hook aarch64_cannot_change_mode_class.
16602
16603 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
16604
16605         * common/config/aarch64/aarch64-common.c
16606         (aarch64_handle_option): Don't handle any option order logic here.
16607         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
16608         selected_cpu, warn on architecture version mismatch.
16609         (aarch64_override_options): Fix parsing order for option strings.
16610
16611 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
16612             Iain Sandoe  <iain@codesourcery.com>
16613
16614         PR bootstrap/59496
16615         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
16616         warning.  Amend comment to reflect current functionality.
16617
16618 2014-01-20  Richard Biener  <rguenther@suse.de>
16619
16620         PR middle-end/59860
16621         * builtins.c (fold_builtin_strcat): Remove case better handled
16622         by tree-ssa-strlen.c.
16623
16624 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
16625
16626         * config/aarch64/aarch64.opt
16627         (mcpu, march, mtune): Make case-insensitive.
16628
16629 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
16630
16631         PR target/59880
16632         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
16633         if operands[1] is a REG or ZERO_EXTEND of a REG.
16634
16635 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
16636
16637         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
16638
16639 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
16640
16641         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
16642         long non-pic millicode calls.
16643
16644 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
16645
16646         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
16647
16648 2014-01-19  Kito Cheng  <kito@0xlab.org>
16649
16650         * builtins.c (expand_movstr): Check movstr expand done or fail.
16651
16652 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
16653             H.J. Lu  <hongjiu.lu@intel.com>
16654
16655         PR target/59379
16656         * config/i386/i386.md (*lea<mode>): Zero-extend return register
16657         to DImode for zero-extended addresses.
16658
16659 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
16660
16661         PR rtl-optimization/57763
16662         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
16663         on the new indirect jump_insn and increment LABEL_NUSES (label).
16664
16665 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
16666
16667         PR bootstrap/59580
16668         PR bootstrap/59583
16669         * config.gcc (x86_archs): New variable.
16670         (x86_64_archs): Likewise.
16671         (x86_cpus): Likewise.
16672         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
16673         --with-arch/--with-cpu= options.
16674         Support --with-arch=/--with-cpu={nehalem,westmere,
16675         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
16676
16677 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
16678
16679         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
16680         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
16681
16682 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
16683
16684         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
16685
16686 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
16687
16688         PR target/58944
16689         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
16690         clear cpp_get_options (parse_in)->warn_unused_macros for
16691         ix86_target_macros_internal with cpp_define.
16692
16693 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
16694
16695         * jump.c (delete_related_insns): Keep (use (insn))s.
16696         * reorg.c (redundant_insn): Check for barriers too.
16697
16698 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16699
16700         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
16701
16702 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
16703
16704         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
16705         call to $$dyncall when TARGET_LONG_CALLS is true.
16706
16707 2014-01-17  Jeff Law  <law@redhat.com>
16708
16709         * ree.c (combine_set_extension): Temporarily disable test for
16710         changing number of hard registers.
16711
16712 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
16713
16714         PR middle-end/58125
16715         * ipa-inline-analysis.c (inline_free_summary):
16716         Do not free summary of aliases.
16717
16718 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
16719
16720         PR middle-end/59706
16721         * gimplify.c (gimplify_expr): Use create_tmp_var
16722         instead of create_tmp_var_raw.  If cond doesn't have
16723         integral type, don't add the IFN_ANNOTATE builtin at all.
16724
16725 2014-01-17  Martin Jambor  <mjambor@suse.cz>
16726
16727         PR ipa/59736
16728         * ipa-cp.c (prev_edge_clone): New variable.
16729         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
16730         Also resize prev_edge_clone vector.
16731         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
16732         (ipcp_edge_removal_hook): New function.
16733         (ipcp_driver): Register ipcp_edge_removal_hook.
16734
16735 2014-01-17  Andrew Pinski  <apinski@cavium.com>
16736             Steve Ellcey  <sellcey@mips.com>
16737
16738         PR target/59462
16739         * config/mips/mips.c (mips_print_operand): Check operand mode instead
16740         of operator mode.
16741
16742 2014-01-17  Jeff Law  <law@redhat.com>
16743
16744         PR middle-end/57904
16745         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
16746         so that pass_ccp runs first.
16747
16748 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16749
16750         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
16751         (ix86_adjust_cost): Use !TARGET_XXX.
16752         (do_reorder_for_imul): Likewise.
16753         (swap_top_of_ready_list): Likewise.
16754         (ix86_sched_reorder): Likewise.
16755
16756 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
16757
16758         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16759         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
16760         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
16761         (intel_memset): New.  Duplicate slm_memset.
16762         (intel_cost): New.  Duplicate slm_cost.
16763         (m_INTEL): New macro.
16764         (processor_target_table): Add "intel".
16765         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
16766         with PROCESSOR_INTEL for "intel".
16767         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
16768         PROCESSOR_SILVERMONT.
16769         (ix86_issue_rate): Likewise.
16770         (ix86_adjust_cost): Likewise.
16771         (ia32_multipass_dfa_lookahead): Likewise.
16772         (swap_top_of_ready_list): Likewise.
16773         (ix86_sched_reorder): Likewise.
16774         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
16775         instead of TARGET_OPT_AGU.
16776         * config/i386/i386.h (TARGET_INTEL): New.
16777         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
16778         (processor_type): Add PROCESSOR_INTEL.
16779         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
16780         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
16781
16782 2014-01-17  Marek Polacek  <polacek@redhat.com>
16783
16784         PR c/58346
16785         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
16786         size is zero.
16787
16788 2014-01-17  Richard Biener  <rguenther@suse.de>
16789
16790         PR tree-optimization/46590
16791         * opts.c (default_options_table): Add entries for
16792         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
16793         all enabled at -O1 but not for -Og.
16794         * common.opt (fbranch-count-reg): Remove Init(1).
16795         (fmove-loop-invariants): Likewise.
16796         (ftree-pta): Likewise.
16797
16798 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
16799
16800         * config/i386/i386.c (ix86_data_alignment): For compatibility with
16801         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
16802         decls to at least the GCC 4.8 used alignments.
16803
16804         PR fortran/59440
16805         * tree-nested.c (convert_nonlocal_reference_stmt,
16806         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
16807         of GIMPLE_BIND stmts, adjust associated decls.
16808
16809 2014-01-17  Richard Biener  <rguenther@suse.de>
16810
16811         PR tree-optimization/46590
16812         * vec.h (vec<>::bseach): New member function implementing
16813         binary search according to C89 bsearch.
16814         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
16815         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
16816         bitmap pointer again.  Make accesses_in_loop a flat array.
16817         (mem_ref_obstack): New global.
16818         (outermost_indep_loop): Adjust for mem_ref->stored changes.
16819         (mark_ref_stored): Likewise.
16820         (ref_indep_loop_p_2): Likewise.
16821         (set_ref_stored_in_loop): New helper function.
16822         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
16823         (memref_free): Adjust.
16824         (record_mem_ref_loc): Simplify.
16825         (gather_mem_refs_stmt): Adjust.
16826         (sort_locs_in_loop_postorder_cmp): New function.
16827         (analyze_memory_references): Sort accesses_in_loop after
16828         loop postorder number.
16829         (find_ref_loc_in_loop_cmp): New function.
16830         (for_all_locs_in_loop): Find relevant cluster of locs in
16831         accesses_in_loop and iterate without recursion.
16832         (execute_sm): Avoid uninit warning.
16833         (struct ref_always_accessed): Simplify.
16834         (ref_always_accessed::operator ()): Likewise.
16835         (ref_always_accessed_p): Likewise.
16836         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
16837         loop postorder numbers here.
16838         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
16839         numbers.
16840
16841 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
16842
16843         PR c++/57945
16844         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
16845         on decls for which assemble_alias has been called.
16846
16847 2014-01-17  Nick Clifton  <nickc@redhat.com>
16848
16849         * config/msp430/msp430.opt: (mcpu): New option.
16850         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
16851         (msp430_option_override): Parse target_cpu.  If the MCU name
16852         matches a generic string, clear target_mcu.
16853         (msp430_attr): Allow numeric interrupt values up to 63.
16854         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
16855         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
16856         option.
16857         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
16858         Add mcpu matches.
16859         * config/msp430/msp430.md (popm): Use %J rather than %I.
16860         (addsi3): Use msp430_nonimmediate_operand for operand 2.
16861         (addhi_cy_i): Use immediate_operand for operand 2.
16862         * doc/invoke.texi: Document -mcpu option.
16863
16864 2014-01-17  Richard Biener  <rguenther@suse.de>
16865
16866         PR rtl-optimization/38518
16867         * df.h (df_analyze_loop): Declare.
16868         * df-core.c: Include cfgloop.h.
16869         (df_analyze_1): Split out main part of df_analyze.
16870         (df_analyze): Adjust.
16871         (loop_inverted_post_order_compute): New function.
16872         (loop_post_order_compute): Likewise.
16873         (df_analyze_loop): New function avoiding whole-function
16874         postorder computes.
16875         * loop-invariant.c (find_defs): Use df_analyze_loop.
16876         (find_invariants): Adjust.
16877         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
16878
16879 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16880
16881         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
16882         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
16883
16884 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
16885
16886         * ipa-ref.c (ipa_remove_stmt_references): Fix references
16887         traversal when removing references.
16888
16889 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
16890
16891         PR ipa/59775
16892         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
16893
16894 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
16895
16896         PR middle-end/56791
16897         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
16898         pushing a reload for an autoinc when we had previously reloaded an
16899         inner part of the address.
16900
16901 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
16902
16903         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
16904         field.
16905         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
16906         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
16907         when not giving up or versioning for alias only because of
16908         loop->safelen.
16909         (vect_analyze_data_ref_dependences): Set to true.
16910         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
16911         is a GIMPLE_PHI.
16912         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
16913         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
16914         to the condition.
16915
16916         PR middle-end/58344
16917         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
16918
16919         PR target/59839
16920         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
16921         operand 0 predicate for gathers, use a new pseudo as subtarget.
16922
16923 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
16924
16925         PR middle-end/59609
16926         * lra-constraints.c (process_alt_operands): Add printing debug info.
16927         Check absence of input/output reloads for matched operands too.
16928
16929 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
16930
16931         PR rtl-optimization/59835
16932         * ira.c (ira_init_register_move_cost): Increase cost for
16933         impossible modes.
16934
16935 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
16936
16937         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
16938
16939 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
16940
16941         PR target/59780
16942         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
16943         non-register objects.  Use gen_(high/low)part more consistently.
16944         Fix assertions.
16945
16946 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
16947
16948         PR target/59844
16949         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
16950         endian support, remove tests for WORDS_BIG_ENDIAN.
16951         (p8_mfvsrd_3_<mode>): Likewise.
16952         (reload_gpr_from_vsx<mode>): Likewise.
16953         (reload_gpr_from_vsxsf): Likewise.
16954         (p8_mfvsrd_4_disf): Likewise.
16955
16956 2014-01-16  Richard Biener  <rguenther@suse.de>
16957
16958         PR rtl-optimization/46590
16959         * lcm.c (compute_antinout_edge): Use postorder iteration.
16960         (compute_laterin): Use inverted postorder iteration.
16961
16962 2014-01-16  Nick Clifton  <nickc@redhat.com>
16963
16964         PR middle-end/28865
16965         * varasm.c (output_constant): Return the number of bytes actually
16966         emitted.
16967         (output_constructor_array_range): Update the field size with the
16968         number of bytes emitted by output_constant.
16969         (output_constructor_regular_field): Likewise.  Also do not
16970         complain if the total number of bytes emitted is now greater
16971         than the expected fieldpos.
16972         * output.h (output_constant): Update prototype and descriptive comment.
16973
16974 2014-01-16  Marek Polacek  <polacek@redhat.com>
16975
16976         PR middle-end/59827
16977         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
16978         it is error_mark_node.
16979
16980 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
16981
16982         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
16983         VALID_AVX256_REG_OR_OI_MODE.
16984
16985 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
16986
16987         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
16988         current procedure should be profiled.
16989
16990 2014-01-15  Andrew Pinski  <apinski@cavium.com>
16991
16992         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
16993         of moving from/to the STACK_REG register class.
16994
16995 2014-01-15  Richard Henderson  <rth@redhat.com>
16996
16997         PR debug/54694
16998         * reginfo.c (global_regs_decl): Globalize.
16999         * rtl.h (global_regs_decl): Declare.
17000         * ira.c (do_reload): Diagnose frame_pointer_needed and it
17001         reserved via global_regs.
17002
17003 2014-01-15  Teresa Johnson  <tejohnson@google.com>
17004
17005         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
17006
17007 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
17008
17009         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
17010         and vmulosh rather than call gen_vec_widen_smult_*.
17011         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
17012         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
17013         (vec_widen_smult_even_v16qi): Likewise.
17014         (vec_widen_umult_even_v8hi): Likewise.
17015         (vec_widen_smult_even_v8hi): Likewise.
17016         (vec_widen_umult_odd_v16qi): Likewise.
17017         (vec_widen_smult_odd_v16qi): Likewise.
17018         (vec_widen_umult_odd_v8hi): Likewise.
17019         (vec_widen_smult_odd_v8hi): Likewise.
17020         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
17021         vmuloub rather than call gen_vec_widen_umult_*.
17022         (vec_widen_umult_lo_v16qi): Likewise.
17023         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
17024         vmulosb rather than call gen_vec_widen_smult_*.
17025         (vec_widen_smult_lo_v16qi): Likewise.
17026         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
17027         rather than call gen_vec_widen_umult_*.
17028         (vec_widen_umult_lo_v8hi): Likewise.
17029         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
17030         rather than call gen_vec_widen_smult_*.
17031         (vec_widen_smult_lo_v8hi): Likewise.
17032
17033 2014-01-15  Jeff Law  <law@redhat.com>
17034
17035         PR tree-optimization/59747
17036         * ree.c (find_and_remove_re): Properly handle case where a second
17037         eliminated extension requires widening a copy created for elimination
17038         of a prior extension.
17039         (combine_set_extension): Ensure that the number of hard regs needed
17040         for a destination register does not change when we widen it.
17041
17042 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17043
17044         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
17045         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
17046         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
17047         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
17048         (avr-*-rtems*): Likewise.
17049         (bfin*-rtems*): Likewise.
17050         (moxie-*-rtems*): Likewise.
17051         (h8300-*-rtems*): Likewise.
17052         (i[34567]86-*-rtems*): Likewise.
17053         (lm32-*-rtems*): Likewise.
17054         (m32r-*-rtems*): Likewise.
17055         (m68k-*-rtems*): Likewise.
17056         (microblaze*-*-rtems*): Likewise.
17057         (mips*-*-rtems*): Likewise.
17058         (powerpc-*-rtems*): Likewise.
17059         (sh-*-rtems*): Likewise.
17060         (sparc-*-rtems*): Likewise.
17061         (sparc64-*-rtems*): Likewise.
17062         (v850-*-rtems*): Likewise.
17063         (m32c-*-rtems*): Likewise.
17064
17065 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
17066
17067         PR rtl-optimization/59511
17068         * ira.c (ira_init_register_move_cost): Use memory costs for some
17069         cases of register move cost calculations.
17070         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
17071         instead of BB frequency.
17072         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
17073         * lra-assigns.c (find_hard_regno_for): Ditto.
17074
17075 2014-01-15  Richard Biener  <rguenther@suse.de>
17076
17077         PR tree-optimization/59822
17078         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
17079         (vectorizable_load): Use it to hoist defs of uses of invariant
17080         loads out of the loop.
17081
17082 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
17083             Kugan Vivekanandarajah  <kuganv@linaro.org>
17084
17085         PR target/59695
17086         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
17087         truncation.
17088
17089 2014-01-15  Richard Biener  <rguenther@suse.de>
17090
17091         PR rtl-optimization/59802
17092         * lcm.c (compute_available): Use inverted postorder to seed
17093         the initial worklist.
17094
17095 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17096
17097         PR target/59803
17098         * config/s390/s390.c (s390_preferred_reload_class): Don't return
17099         ADDR_REGS for invalid symrefs in non-PIC code.
17100
17101 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
17102
17103         PR other/58712
17104         * builtins.c (determine_block_size): Initialize *probable_max_size
17105         even if len_rtx is CONST_INT.
17106
17107 2014-01-14  Andrew Pinski  <apinski@cavium.com>
17108
17109         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
17110         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
17111         (cortexa53_tunings): Likewise.
17112         (aarch64_sched_issue_rate): New function.
17113         (TARGET_SCHED_ISSUE_RATE): Define.
17114
17115 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
17116
17117         * ira-costs.c (find_costs_and_classes): Add missed
17118         ira_init_register_move_cost_if_necessary.
17119
17120 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
17121
17122         PR target/59787
17123         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
17124
17125 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
17126
17127         PR target/59794
17128         * config/i386/i386.c (type_natural_mode): Add a bool parameter
17129         to indicate if type is used for function return value.  Warn ABI
17130         change if the vector mode isn't available for function return value.
17131         (ix86_function_arg_advance): Pass false to type_natural_mode.
17132         (ix86_function_arg): Likewise.
17133         (ix86_gimplify_va_arg): Likewise.
17134         (function_arg_32): Don't warn ABI change.
17135         (ix86_function_value): Pass true to type_natural_mode.
17136         (ix86_return_in_memory): Likewise.
17137         (ix86_struct_value_rtx): Removed.
17138         (TARGET_STRUCT_VALUE_RTX): Likewise.
17139
17140 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
17141
17142         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
17143         converting a conditional jump into a conditional return.
17144
17145 2014-01-14  Richard Biener  <rguenther@suse.de>
17146
17147         PR tree-optimization/58921
17148         PR tree-optimization/59006
17149         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
17150         hoisting invariant stmts.
17151         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
17152         invariant loads on the preheader edge if possible.
17153
17154 2014-01-14  Joey Ye  <joey.ye@arm.com>
17155
17156         * doc/plugin.texi (Building GCC plugins): Update to C++.
17157
17158 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
17159
17160         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
17161         (_mm_rcp28_round_ss): Ditto.
17162         (_mm_rsqrt28_round_sd): Ditto.
17163         (_mm_rsqrt28_round_ss): Ditto.
17164         (_mm_rcp28_sd): Ditto.
17165         (_mm_rcp28_ss): Ditto.
17166         (_mm_rsqrt28_sd): Ditto.
17167         (_mm_rsqrt28_ss): Ditto.
17168         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
17169         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
17170         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
17171         (IX86_BUILTIN_RCP28SD): Ditto.
17172         (IX86_BUILTIN_RCP28SS): Ditto.
17173         (IX86_BUILTIN_RSQRT28SD): Ditto.
17174         (IX86_BUILTIN_RSQRT28SS): Ditto.
17175         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
17176         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
17177         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
17178         (ix86_expand_special_args_builtin): Expand new FTYPE.
17179         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
17180         (srcp14<mode>): Make insn unary.
17181         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
17182         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
17183         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
17184         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
17185         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
17186         Fix rounding: make it SAE only.
17187         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
17188         Ditto.
17189         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
17190         Ditto.
17191         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
17192         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
17193         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
17194         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
17195         (round_saeonly_mask_scalar_operand4): Ditto.
17196         (round_saeonly_mask_scalar_op3): Ditto.
17197         (round_saeonly_mask_scalar_op4): Ditto.
17198
17199 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17200
17201         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17202         Implement -maltivec=be for vec_insert and vec_extract.
17203
17204 2014-01-10  DJ Delorie  <dj@redhat.com>
17205
17206         * config/msp430/msp430.md (call_internal): Don't allow memory
17207         references with SP as the base register.
17208         (call_value_internal): Likewise.
17209         * config/msp430/constraints.md (Yc): New.  For memory references
17210         that don't use SP as a base register.
17211
17212         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
17213         "an integer without a # prefix"
17214         * config/msp430/msp430.md (epilogue_helper): Use it.
17215
17216 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
17217
17218         PR target/59617
17219         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
17220         AVX512F gather builtins.
17221         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
17222         on gather decls with INTEGER_TYPE masktype.
17223         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
17224         directly into the builtin rather than hoisting it before loop.
17225
17226         PR tree-optimization/59387
17227         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
17228         (scev_const_prop): If folded_casts and type has undefined overflow,
17229         use force_gimple_operand instead of force_gimple_operand_gsi and
17230         for each added stmt if it is assign with
17231         arith_code_with_undefined_signed_overflow, call
17232         rewrite_to_defined_overflow.
17233         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
17234         gimple-fold.h instead.
17235         (arith_code_with_undefined_signed_overflow,
17236         rewrite_to_defined_overflow): Moved to ...
17237         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
17238         rewrite_to_defined_overflow): ... here.  No longer static.
17239         Include gimplify-me.h.
17240         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
17241         rewrite_to_defined_overflow): New prototypes.
17242
17243 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17244
17245         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
17246
17247 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
17248
17249         * builtins.c (get_object_alignment_2): Minor tweak.
17250         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
17251
17252 2014-01-13  Christian Bruel  <christian.bruel@st.com>
17253
17254         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
17255         optimized non constant lengths.
17256
17257 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
17258
17259         PR libgomp/59194
17260         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
17261         load as __atomic_load_N if possible.
17262
17263 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
17264
17265         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
17266         target parameter.
17267         (rs6000_expand_builtin): Adjust call.
17268
17269 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
17270
17271         PR target/58115
17272         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
17273         * config/rs6000/rs6000.c: Include target-globals.h.
17274         (rs6000_set_current_function): Instead of doing target_reinit
17275         unconditionally, use save_target_globals_default_opts and
17276         restore_target_globals.
17277
17278         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
17279         FPSCR.
17280         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
17281         (rs6000_expand_builtin): Handle mffs and mtfsf.
17282         (rs6000_init_builtins): Define mffs and mtfsf.
17283         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
17284         (rs6000_mffs): New pattern.
17285         (rs6000_mtfsf): New pattern.
17286
17287 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
17288
17289         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
17290         Start narrowing with START.  Apply candidate-use pair
17291         and check overall cost in narrowing.
17292         (iv_ca_prune): Pass new argument.
17293
17294 2014-01-10  Jeff Law  <law@redhat.com>
17295
17296         PR middle-end/59743
17297         * ree.c (combine_reaching_defs): Ensure the defining statement
17298         occurs before the extension when optimizing extensions with
17299         different source and destination hard registers.
17300
17301 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
17302
17303         PR ipa/58585
17304         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
17305         vtables into the type inheritance graph.
17306
17307 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
17308
17309         PR rtl-optimization/59754
17310         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
17311         modes in the REGNO != REGNO case.
17312
17313 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17314
17315         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
17316
17317 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
17318
17319         PR tree-optimization/59745
17320         * tree-predcom.c (tree_predictive_commoning_loop): Call
17321         free_affine_expand_cache if giving up because components is NULL.
17322
17323         * target-globals.c (save_target_globals): Allocate < 4KB structs using
17324         GC in payload of target_globals struct instead of allocating them on
17325         the heap and the larger structs separately using GC.
17326         * target-globals.h (struct target_globals): Make regs, hard_regs,
17327         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
17328         of GTY((skip)) and change type to void *.
17329         (reset_target_globals): Cast loads from those fields to corresponding
17330         types.
17331
17332 2014-01-10  Steve Ellcey  <sellcey@mips.com>
17333
17334         PR plugins/59335
17335         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
17336         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
17337         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
17338
17339 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
17340
17341         PR target/59744
17342         * aarch64-modes.def (CC_Zmode): New flags mode.
17343         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
17344         represents an equality.
17345         (aarch64_get_condition_code): Handle CC_Zmode.
17346         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
17347
17348 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17349
17350         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
17351         extraction in good case.
17352
17353 2014-01-10  Richard Biener  <rguenther@suse.de>
17354
17355         PR tree-optimization/59374
17356         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
17357         checking after SLP discovery.  Mark stmts not participating
17358         in any SLP instance properly.
17359
17360 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17361
17362         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
17363         when handling a SET rtx.
17364
17365 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17366
17367         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
17368         (cortex-a57): Likewise.
17369         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
17370
17371 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17372
17373         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
17374         non-iwmmxt builtins.
17375
17376 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
17377
17378         PR ipa/58252
17379         PR ipa/59226
17380         * ipa-devirt.c record_target_from_binfo): Take as argument
17381         stack of binfos and lookup matching one for virtual inheritance.
17382         (possible_polymorphic_call_targets_1): Update.
17383
17384 2014-01-10  Huacai Chen  <chenhc@lemote.com>
17385
17386         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
17387         kernel strings for Loongson-2E/2F/3A.
17388
17389 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
17390
17391         PR middle-end/59670
17392         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
17393         is_gimple_call before calling gimple_call_internal_p.
17394
17395 2014-01-09  Steve Ellcey  <sellcey@mips.com>
17396
17397         * Makefile.in (TREE_FLOW_H): Remove.
17398         (TREE_SSA_H): Add file names from tree-flow.h.
17399         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
17400         * tree.h: Remove tree-flow.h reference.
17401         * hash-table.h: Remove tree-flow.h reference.
17402         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
17403         reference with tree-ssa-loop.h.
17404
17405 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17406
17407         * doc/invoke.texi: Add -maltivec={be,le} options, and document
17408         default element-order behavior for -maltivec.
17409         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
17410         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
17411         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
17412         when targeting big endian, at least for now.
17413         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
17414
17415 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
17416
17417         PR middle-end/47735
17418         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
17419         var satisfies use_register_for_decl, just take into account type
17420         alignment, rather than decl alignment.
17421
17422         PR tree-optimization/59622
17423         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
17424         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
17425         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
17426         Don't devirtualize for inplace at all.  For targets.length () == 1,
17427         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
17428
17429 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
17430
17431         * config/i386/i386.md (cpu): Remove the unused btver1.
17432
17433 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
17434
17435         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
17436
17437 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
17438
17439         PR target/58115
17440         * tree-core.h (struct target_globals): New forward declaration.
17441         (struct tree_target_option): Add globals field.
17442         * tree.h (TREE_TARGET_GLOBALS): Define.
17443         (prepare_target_option_nodes_for_pch): New prototype.
17444         * target-globals.h (struct target_globals): Define even if
17445         !SWITCHABLE_TARGET.
17446         * tree.c (prepare_target_option_node_for_pch,
17447         prepare_target_option_nodes_for_pch): New functions.
17448         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
17449         * config/i386/i386.c: Include target-globals.h.
17450         (ix86_set_current_function): Instead of doing target_reinit
17451         unconditionally, use save_target_globals_default_opts and
17452         restore_target_globals.
17453
17454 2014-01-09  Richard Biener  <rguenther@suse.de>
17455
17456         PR tree-optimization/59715
17457         * tree-cfg.h (split_critical_edges): Declare.
17458         * tree-cfg.c (split_critical_edges): Export.
17459         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
17460
17461 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
17462
17463         * cfgexpand.c (expand_stack_vars): Optionally disable
17464         asan stack protection.
17465         (expand_used_vars): Likewise.
17466         (partition_stack_vars): Likewise.
17467         * asan.c (asan_emit_stack_protection): Optionally disable
17468         after return stack usage.
17469         (instrument_derefs): Optionally disable memory access instrumentation.
17470         (instrument_builtin_call): Likewise.
17471         (instrument_strlen_call): Likewise.
17472         (asan_protect_global): Optionally disable global variables protection.
17473         * doc/invoke.texi: Added doc for new options.
17474         * params.def: Added new options.
17475         * params.h: Likewise.
17476
17477 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
17478
17479         PR rtl-optimization/59724
17480         * ifcvt.c (cond_exec_process_if_block): Don't call
17481         flow_find_head_matching_sequence with 0 longest_match.
17482         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
17483         non-active insns if !stop_after.
17484         (try_head_merge_bb): Revert 2014-01-07 changes.
17485
17486 2014-01-08  Jeff Law  <law@redhat.com>
17487
17488         * ree.c (get_sub_rtx): New function, extracted from...
17489         (merge_def_and_ext): Here.
17490         (combine_reaching_defs): Use get_sub_rtx.
17491
17492 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
17493
17494         * cgraph.h (varpool_variable_node): Do not choke on null node.
17495
17496 2014-01-08  Catherine Moore  <clm@codesourcery.com>
17497
17498         * config/mips/mips.md (simple_return): Attempt to use JRC
17499         for microMIPS.
17500         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
17501
17502 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
17503
17504         PR rtl-optimization/59137
17505         * reorg.c (steal_delay_list_from_target): Call update_block for
17506         elided insns.
17507         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
17508
17509 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17510
17511         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
17512         two duplicate entries.
17513
17514 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
17515
17516         Revert:
17517         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
17518
17519         * config/mips/mips.c (mips_truncated_op_cost): New function.
17520         (mips_rtx_costs): Adjust test for BADDU.
17521         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
17522
17523         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
17524
17525         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
17526         (*baddu_si): ...this new pattern.
17527
17528 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
17529
17530         PR ipa/59722
17531         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
17532
17533 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17534
17535         PR middle-end/57748
17536         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
17537         inner_reference_p.
17538         (expand_expr, expand_normal): Adjust.
17539         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
17540         inner_reference_p. Use inner_reference_p to expand inner references.
17541         (store_expr): Adjust.
17542         * cfgexpand.c (expand_call_stmt): Adjust.
17543
17544 2014-01-08  Rong Xu  <xur@google.com>
17545
17546         * gcov-io.c (gcov_var): Move from gcov-io.h.
17547         (gcov_position): Ditto.
17548         (gcov_is_error): Ditto.
17549         (gcov_rewrite): Ditto.
17550         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
17551         only part to libgcc/libgcov.h.
17552
17553 2014-01-08  Marek Polacek  <polacek@redhat.com>
17554
17555         PR middle-end/59669
17556         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
17557
17558 2014-01-08  Marek Polacek  <polacek@redhat.com>
17559
17560         PR sanitizer/59667
17561         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
17562
17563 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
17564
17565         PR rtl-optimization/59649
17566         * stor-layout.c (get_mode_bounds): For BImode return
17567         0 and STORE_FLAG_VALUE.
17568
17569 2014-01-08  Richard Biener  <rguenther@suse.de>
17570
17571         PR middle-end/59630
17572         * gimple.h (is_gimple_builtin_call): Remove.
17573         (gimple_builtin_call_types_compatible_p): New.
17574         (gimple_call_builtin_p): New overload.
17575         * gimple.c (is_gimple_builtin_call): Remove.
17576         (validate_call): Rename to ...
17577         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
17578         check return types.
17579         (validate_type): New static function.
17580         (gimple_call_builtin_p): New overload and adjust.
17581         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
17582         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
17583         (gimple_fold_stmt_to_constant_1): Likewise.
17584         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
17585
17586 2014-01-08  Richard Biener  <rguenther@suse.de>
17587
17588         PR middle-end/59471
17589         * gimplify.c (gimplify_expr): Gimplify register-register type
17590         VIEW_CONVERT_EXPRs to separate stmts.
17591
17592 2014-01-07  Jeff Law  <law@redhat.com>
17593
17594         PR middle-end/53623
17595         * ree.c (combine_set_extension): Handle case where source
17596         and destination registers in an extension insn are different.
17597         (combine_reaching_defs): Allow source and destination registers
17598         in extension to be different under limited circumstances.
17599         (add_removable_extension): Remove restriction that the
17600         source and destination registers in the extension are the same.
17601         (find_and_remove_re): Emit a copy from the extension's
17602         destination to its source after the defining insn if
17603         the source and destination registers are different.
17604
17605         PR middle-end/59285
17606         * ifcvt.c (merge_if_block): If we are merging a block with more than
17607         one successor with a block with no successors, remove any BARRIER
17608         after the second block.
17609
17610 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
17611
17612         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
17613
17614 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
17615
17616         PR target/59652
17617         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
17618         for 14-bit register offsets when INT14_OK_STRICT is false.
17619
17620 2014-01-07  Roland Stigge  <stigge@antcom.de>
17621             Michael Meissner  <meissner@linux.vnet.ibm.com>
17622
17623         PR 57386/target
17624         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
17625         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
17626
17627 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
17628
17629         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
17630         -mcpu.
17631
17632 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
17633
17634         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
17635         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
17636         rtx is const0_rtx or not.
17637
17638 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
17639
17640         PR target/58115
17641         * target-globals.c (save_target_globals): Remove this_fn_optab
17642         handling.
17643         * toplev.c: Include optabs.h.
17644         (target_reinit): Temporarily restore the global options if another
17645         set of options are in force.
17646
17647 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
17648
17649         PR rtl-optimization/58668
17650         * cfgcleanup.c (flow_find_cross_jump): Don't count
17651         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
17652         to determine what is counted.
17653         (flow_find_head_matching_sequence): Use active_insn_p to determine
17654         what is counted.
17655         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
17656         counting change.
17657         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
17658         determine what is counted.
17659
17660         PR tree-optimization/59643
17661         * tree-predcom.c (split_data_refs_to_components): If one dr is
17662         read and one write, determine_offset fails and the write isn't
17663         in the bad component, just put the read into the bad component.
17664
17665 2014-01-07  Mike Stump  <mikestump@comcast.net>
17666             Jakub Jelinek  <jakub@redhat.com>
17667
17668         PR pch/59436
17669         * tree-core.h (struct tree_optimization_option): Change optabs
17670         type from unsigned char * to void *.
17671         * optabs.c (init_tree_optimization_optabs): Adjust
17672         TREE_OPTIMIZATION_OPTABS initialization.
17673
17674 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
17675
17676         PR target/59644
17677         * config/i386/i386.h (struct machine_function): Add
17678         no_drap_save_restore field.
17679         * config/i386/i386.c (ix86_save_reg): Use
17680         !cfun->machine->no_drap_save_restore instead of
17681         crtl->stack_realign_needed.
17682         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
17683         this function clears frame_pointer_needed.  Set
17684         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
17685         and DRAP reg is needed.
17686
17687 2014-01-06  Marek Polacek  <polacek@redhat.com>
17688
17689         PR c/57773
17690         * doc/implement-c.texi: Mention that other integer types are
17691         permitted as bit-field types in strictly conforming mode.
17692
17693 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
17694
17695         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
17696         is newly allocated.
17697
17698 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
17699
17700         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
17701
17702 2014-01-06  Martin Jambor  <mjambor@suse.cz>
17703
17704         PR ipa/59008
17705         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
17706         to int.
17707         * ipa-prop.c (ipa_print_node_params): Fix indentation.
17708
17709 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
17710
17711         PR debug/59350
17712         PR debug/59510
17713         * var-tracking.c (add_stores): Preserve the value of the source even if
17714         we don't record the store.
17715
17716 2014-01-06  Terry Guo  <terry.guo@arm.com>
17717
17718         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
17719
17720 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
17721
17722         PR bootstrap/59541
17723         * config/darwin.c (darwin_function_section): Adjust return values to
17724         correspond to optimisation changes made in r206070.
17725
17726 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
17727
17728         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
17729         from prefetch_block tune setting.
17730         (nocona_cost): Correct size of prefetch block to 64.
17731
17732 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
17733
17734         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
17735         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
17736         used to save the static chain register in the computation of the offset
17737         from which the FP registers need to be restored.
17738
17739 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
17740
17741         PR tree-optimization/59519
17742         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
17743         ICE if get_current_def (current_new_name) is already non-NULL, as long
17744         as it is a phi result of some other phi in *new_exit_bb that has
17745         the same argument.
17746
17747         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
17748         or vmovdqu* for misaligned_operand.
17749         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
17750         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
17751         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
17752         aligned_mem for AVX512F masked aligned load and store builtins and for
17753         non-temporal moves.
17754
17755 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
17756
17757         PR tree-optimization/59651
17758         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
17759         Address range for negative step should be added by TYPE_SIZE_UNIT.
17760
17761 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
17762
17763         * config/m68k/m68k.c (handle_move_double): Handle pushes with
17764         overlapping registers also for registers other than the stack pointer.
17765
17766 2014-01-03  Marek Polacek  <polacek@redhat.com>
17767
17768         PR other/59661
17769         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
17770         __builtin_FILE.
17771
17772 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
17773
17774         PR target/59625
17775         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
17776         asm goto as jump.
17777
17778         * config/i386/i386.md (MODE_SIZE): New mode attribute.
17779         (push splitter): Use <P:MODE_SIZE> instead of
17780         GET_MODE_SIZE (<P:MODE>mode).
17781         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
17782         (mov -1, reg peephole2): Likewise.
17783         * config/i386/sse.md (*mov<mode>_internal,
17784         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
17785         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
17786         *<code><mode>3, *andnot<mode>3<mask_name>,
17787         <mask_codefor><code><mode>3<mask_name>): Likewise.
17788         * config/i386/subst.md (mask_mode512bit_condition,
17789         sd_mask_mode512bit_condition): Likewise.
17790
17791 2014-01-02  Xinliang David Li  <davidxl@google.com>
17792
17793         PR tree-optimization/59303
17794         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
17795         (dump_predicates): Better output format.
17796         (pred_equal_p): New function.
17797         (is_neq_relop_p): Ditto.
17798         (is_neq_zero_form_p): Ditto.
17799         (pred_expr_equal_p): Ditto.
17800         (pred_neg_p): Ditto.
17801         (simplify_pred): Ditto.
17802         (simplify_preds_2): Ditto.
17803         (simplify_preds_3): Ditto.
17804         (simplify_preds_4): Ditto.
17805         (simplify_preds): Ditto.
17806         (push_pred): Ditto.
17807         (push_to_worklist): Ditto.
17808         (get_pred_info_from_cmp): Ditto.
17809         (is_degenerated_phi): Ditto.
17810         (normalize_one_pred_1): Ditto.
17811         (normalize_one_pred): Ditto.
17812         (normalize_one_pred_chain): Ditto.
17813         (normalize_preds): Ditto.
17814         (normalize_cond_1): Remove function.
17815         (normalize_cond): Ditto.
17816         (is_gcond_subset_of): Ditto.
17817         (is_subset_of_any): Ditto.
17818         (is_or_set_subset_of): Ditto.
17819         (is_and_set_subset_of): Ditto.
17820         (is_norm_cond_subset_of): Ditto.
17821         (pred_chain_length_cmp): Ditto.
17822         (convert_control_dep_chain_into_preds): Type change.
17823         (find_predicates): Ditto.
17824         (find_def_preds): Ditto.
17825         (destroy_predicates_vecs): Ditto.
17826         (find_matching_predicates_in_rest_chains): Ditto.
17827         (use_pred_not_overlap_with_undef_path_pred): Ditto.
17828         (is_pred_expr_subset): Ditto.
17829         (is_pred_chain_subset_of): Ditto.
17830         (is_included_in): Ditto.
17831         (is_superset_of): Ditto.
17832
17833 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
17834
17835         Update copyright years.
17836
17837 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
17838
17839         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
17840         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
17841         config/arc/arc.md, config/arc/arc.opt,
17842         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
17843         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
17844         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
17845         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
17846         config/linux-protos.h, config/linux.c, config/winnt-c.c,
17847         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
17848         vtable-verify.c, vtable-verify.h: Use the standard form for the
17849         copyright notice.
17850
17851 2014-01-02  Tobias Burnus  <burnus@net-b.de>
17852
17853         * gcc.c (process_command): Update copyright notice dates.
17854         * gcov-dump.c: Ditto.
17855         * gcov.c: Ditto.
17856         * doc/cpp.texi: Bump @copying's copyright year.
17857         * doc/cppinternals.texi: Ditto.
17858         * doc/gcc.texi: Ditto.
17859         * doc/gccint.texi: Ditto.
17860         * doc/gcov.texi: Ditto.
17861         * doc/install.texi: Ditto.
17862         * doc/invoke.texi: Ditto.
17863
17864 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17865
17866         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
17867
17868 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
17869
17870         * config/i386/sse.md (*mov<mode>_internal): Guard
17871         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
17872
17873         PR rtl-optimization/59647
17874         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
17875         new_rtx into UNSIGNED_FLOAT rtxes.
17876 \f
17877 Copyright (C) 2014 Free Software Foundation, Inc.
17878
17879 Copying and distribution of this file, with or without modification,
17880 are permitted in any medium without royalty provided the copyright
17881 notice and this notice are preserved.