[AArch64] Improve TARGET_LEGITIMIZE_ADDRESS_P hook
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-08-01  Jiong Wang <jiong.wang@arm.com>
2
3         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
4         for frame access when strict_p is false.
5
6 2014-08-01  Renlin Li <renlin.li@arm.com>
7 2014-08-01  Jiong Wang <jiong.wang@arm.com>
8
9         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
10         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
11         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
12         Declaration.
13         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
14         predicate.
15         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
16         aarch64_mem_pair_offset.
17
18 2014-08-01  Jiong Wang <jiong.wang@arm.com>
19
20         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
21         offset.
22         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
23         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
24
25 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
26
27         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
28
29 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
30
31         PR regression/61510
32         * cgraphunit.c (analyze_functions): Use get_create rather than get
33         for decls which are clones of abstract functions.
34
35 2014-08-01  Martin Liska  <mliska@suse.cz>
36
37         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
38         * ipa-prop.h (count_formal_params): Global function created from static.
39         * ipa-prop.c (count_formal_params): Likewise.
40         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
41         profiles for semantically equivalent functions.
42         * passes.c (do_per_function): If we load body of a function
43         during WPA, this condition should behave same.
44         * varpool.c (ctor_for_folding): More tolerant assert for variable
45         aliases created during WPA.
46
47 2014-08-01  Martin Liska  <mliska@suse.cz>
48
49         * doc/invoke.texi (Options That Control Optimization): Documentation
50         for -foptimize-strlen introduced. Optimization levels default options
51         fixed.
52
53 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
54
55         * opts.c (common_handle_option): Handle -fsanitize=alignment.
56         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
57         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
58         type to bool.
59         * stor-layout.h (min_align_of_type): New prototype.
60         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
61         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
62         check.
63         * ubsan.c: Include builtins.h.
64         (ubsan_expand_bounds_ifn): Change return type to bool,
65         always return true.
66         (ubsan_expand_null_ifn): Change return type to bool, change
67         argument to gimple_stmt_iterator *.  Handle both null and alignment
68         sanitization, take type from ckind argument's type rather than
69         first argument.
70         (instrument_member_call): Removed.
71         (instrument_mem_ref): Remove t argument, add mem and base arguments.
72         Handle both null and alignment sanitization, don't say whole
73         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
74         call instead of 2 argument.
75         (instrument_null): Adjust instrument_mem_ref caller.  Don't
76         instrument calls here.
77         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
78         like SANITIZE_NULL.
79         * stor-layout.c (min_align_of_type): New function.
80         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
81         Or it into SANITIZE_UNDEFINED.
82         * doc/invoke.texi (-fsanitize=alignment): Document.
83
84 2014-07-31  Andi Kleen  <ak@linux.intel.com>
85
86         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
87
88 2014-07-31  Andi Kleen  <ak@linux.intel.com>
89
90         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
91         inchash.
92         (vn_reference_compute_hash): Dito.
93         (vn_nary_op_compute_hash): Dito.
94         (vn_phi_compute_hash): Dito.
95         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
96
97 2014-07-31  Andi Kleen  <ak@linux.intel.com>
98
99         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
100         Rename to inchash:add_expr_commutative. Convert to inchash.
101         (iterative_hash_hashable_expr): Rename to
102         inchash:add_hashable_expr. Convert to inchash.
103         (avail_expr_hash): Dito.
104
105 2014-07-31  Andi Kleen  <ak@linux.intel.com>
106
107         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
108         Convert to inchash.
109
110 2014-07-31  Andi Kleen  <ak@linux.intel.com>
111
112         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
113
114 2014-07-31  Andi Kleen  <ak@linux.intel.com>
115
116         * Makefile.in (OBJS): Add rtlhash.o
117         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
118         (loc_checksum): Dito.
119         (loc_checksum_ordered): Dito.
120         (hash_loc_operands): Dito.
121         (hash_locs): Dito.
122         (hash_loc_list): Dito.
123         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
124         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
125         * rtlhash.c: New file.
126         * rtlhash.h: New file.
127
128 2014-07-31  Andi Kleen  <ak@linux.intel.com>
129
130         * inchash.h (inchash): Change inchash class to namespace.
131         (class hash): ... Rename from inchash.
132         (add_object): Move from macro to class template.
133         * lto-streamer-out.c (hash_tree): Change inchash
134         to inchash::hash.
135         * tree.c (build_type_attribute_qual_variant): Dito.
136         (type_hash_list): Dito.
137         (attribute_hash_list): Dito.
138         (iterative_hstate_expr): Rename to inchash::add_expr
139         (build_range_type_1): Change inchash to inchash::hash
140         and use hash::add_expr.
141         (build_array_type_1): Dito.
142         (build_function_type): Dito
143         (build_method_type_directly): Dito.
144         (build_offset_type): Dito.
145         (build_complex_type): Dito.
146         (make_vector_type): Dito.
147         * tree.h (iterative_hash_expr): Dito.
148
149 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
150
151         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
152
153 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
154
155         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
156         correct alphabetical position.
157         (vpaddd_f64): Rewrite using builtins.
158         (vpaddd_s64): Move to correct alphabetical position.
159         (vpaddd_u64): New.
160
161 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
162
163         PR target/61844
164         * config/sh/sh.c (sh_legitimate_address_p,
165         sh_legitimize_reload_address): Handle reg+reg address modes when
166         ALLOW_INDEXED_ADDRESS is false.
167         * config/sh/predicates.md (general_movsrc_operand,
168         general_movdst_operand): Likewise.
169
170 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
171
172         * config/aarch64/aarch64-builtins.c
173         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
174         BYTES_BIG_ENDIAN.
175
176 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
177
178         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
179         the generated mask based on BYTES_BIG_ENDIAN.
180         (aarch64_simd_check_vect_par_cnst_half): New.
181         * config/aarch64/aarch64-protos.h
182         (aarch64_simd_check_vect_par_cnst_half): New.
183         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
184         the check out to aarch64_simd_check_vect_par_cnst_half.
185         (vect_par_cnst_lo_half): Likewise.
186         * config/aarch64/aarch64-simd.md
187         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
188         (move_hi_quad_<mode>): Always generate a low mask.
189
190 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
191
192         * doc/invoke.texi (AVR Options): Add documentation about
193         __AVR_DEVICE_NAME__ built-in macro.
194
195 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
196
197         PR target/61948
198         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
199         constraints are satisfied.
200         (<shift>di3_neon): Likewise.
201
202 2014-07-31  Richard Biener  <rguenther@suse.de>
203
204         PR tree-optimization/61964
205         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
206         by structural equality.
207
208 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
209
210         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
211         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
212         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
213         New enums.
214         * gcc.c (sanitize_spec_function): Support new option.
215         (SANITIZER_SPEC): Remove now redundant check.
216         * opts.c (common_handle_option): Support new option.
217         (finish_options): Check for incompatibilities.
218         * toplev.c (process_options): Split userspace-specific checks.
219
220 2014-07-31  Richard Biener  <rguenther@suse.de>
221
222         * lto-streamer.h (struct output_block): Remove global.
223         (struct data_in): Remove labels, num_named_labels and
224         num_unnamed_labels.
225         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
226         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
227
228 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
229
230         PR c++/60517
231         * common.opt (-Wreturn-local-addr): Moved from c.opt.
232         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
233         (isolate_path): New argument to avoid inserting a trap.
234         (find_implicit_erroneous_behaviour): Handle returning the address
235         of a local variable.
236         (find_explicit_erroneous_behaviour): Likewise.
237
238 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
239
240         PR lto/61868
241         * toplev.c (init_random_seed): Move piece of code never called to
242         set_random_seed.
243         (set_random_seed): see above.
244
245 2014-07-31  Tom de Vries  <tom@codesourcery.com>
246
247         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
248
249 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
250
251         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
252         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
253
254 2014-07-31  Richard Biener  <rguenther@suse.de>
255
256         * data-streamer.h (streamer_write_data_stream): Declare here,
257         renamed from ...
258         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
259         * lto-cgraph.c (lto_output_node): Adjust.
260         (lto_output_varpool_node): Likewise.
261         * data-streamer-out.c (streamer_string_index): Likewise.
262         (streamer_write_data_stream, lto_append_block): Move from ...
263         * lto-section-out.c (lto_output_data_stream,
264         lto_append_block): ... here.
265
266 2014-07-30  Mike Stump  <mikestump@comcast.net>
267
268         * configure.ac: Also check for popen.
269         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
270         * configure: Regenerate.
271         * config.in:  Regenerate.
272
273 2014-07-30  Martin Jambor  <mjambor@suse.cz>
274
275         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
276         parameter to gimple.
277
278 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
279
280         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
281         address as second parameter to __tpf_eh_return routine.
282
283 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
284
285         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
286         Thumb2.
287
288 2014-07-30  Tom Tromey  <tromey@redhat.com>
289
290         PR c/59855
291         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
292         * doc/extend.texi (Type Attributes): Document designated_init
293         attribute.
294
295 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
296
297         * graphite-isl-ast-to-gimple.c:
298         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
299         (gcc_expression_from_isl_expression): Pass type to
300         gcc_expression_from_isl_ast_expr_id.
301
302 2014-07-30  Richard Biener  <rguenther@suse.de>
303
304         * lto-streamer.h (lto_write_data): New function.
305         * langhooks.c (lhd_append_data): Do not free block.
306         * lto-section-out.c (lto_write_data): New function writing
307         raw data to the current section.
308         (lto_write_stream): Adjust for langhook semantic change.
309         (lto_destroy_simple_output_block): Write header directly.
310         * lto-opts.c (lto_write_options): Write options directly.
311         * lto-streamer-out.c (produce_asm): Write heaeder directly.
312         (lto_output_toplevel_asms): Likewise.
313         (copy_function_or_variable): Copy data directly.
314         (write_global_references): Output index table directly.
315         (lto_output_decl_state_refs): Likewise.
316         (write_symbol): Write data directly.
317         (produce_symtab): Adjust.
318         (produce_asm_for_decls): Output header and refs directly.
319
320 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
321
322         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
323         to speculative_targets
324         (get_class_context): Fix handling of contextes without outer type;
325         avoid matching non-polymorphic types in LTO.
326         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
327         parameter to speculative_targetsp; handle speculation.
328         (dump_possible_polymorphic_call_targets): Update dumping.
329
330 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
331
332         * common.opt (Wodr): Enable by default.
333
334 2014-07-29  Olivier Hainque  <hainque@adacore.com>
335
336         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
337
338 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
339
340         PR bootstrap/61914
341         * gengtype.c (strtoken): New function.
342         (create_user_defined_type): Replace strtok with strtoken.
343
344 2014-07-29  Nathan Sidwell  <nathan@acm.org>
345
346         * gcov-io.c (gcov_var): Make hidden.
347         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
348         (gcov_do_dump): Declare.
349         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
350
351 2014-07-29  Martin Jambor  <mjambor@suse.cz>
352
353         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
354         parameter to gimple.
355         (sra_modify_assign): Likewise.
356
357 2014-07-29  Richard Biener  <rguenther@suse.de>
358
359         PR middle-end/52478
360         * expr.c (expand_expr_real_2): Revert last change.
361
362 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
363
364         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
365         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
366         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
367         call.
368         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
369         (contains_type_p): Forward declare.
370         (polymorphic_call_target_hasher::hash): Hash speculative info.
371         (polymorphic_call_target_hasher::equal): Compare speculative info.
372         (get_class_context): Handle speuclation.
373         (contains_type_p): Update.
374         (get_polymorphic_call_info_for_decl): Update.
375         (walk_ssa_copies): Break out from ...
376         (get_polymorphic_call_info): ... here; set speculative context
377         before giving up.
378         * ipa-prop.c (ipa_write_indirect_edge_info,
379         ipa_read_indirect_edge_info): Stream speculative context.
380         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
381         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
382         SPECULATIVE_MAYBE_DERIVED_TYPE).
383         (possible_polymorphic_call_targets overriders): Update.
384         (dump_possible_polymorphic_call_targets overriders): Update.
385         (dump_possible_polymorphic_call_target_p overriders): Update.
386
387 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
388
389         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
390         ipa-devirt path; fix thinko there.
391
392 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
393
394         * config/i386/i386.c (ix86_return_in_memory): Replace one
395         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
396
397 2014-07-28  Marek Polacek  <polacek@redhat.com>
398
399         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
400
401 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
402
403         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
404         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
405         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
406         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
407         (USE_LD_AS_NEEDED): Likewise.
408         (ASM_APP_ON): Likewise.
409         (ASM_APP_OFF): Likewise.
410         (TARGET_POSIX_IO): Likewise.
411         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
412         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
413         (USE_LD_AS_NEEDED): Likewise.
414         (ASM_APP_ON): Likewise.
415         (ASM_APP_OFF): Likewise.
416         (TARGET_POSIX_IO): Likewise.
417
418 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
419
420         PR middle-end/61734
421         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
422         operators other than the equality operators.
423
424 2014-07-28  Richard Biener  <rguenther@suse.de>
425
426         PR middle-end/52478
427         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
428         sure to register SImode ones, not only >= word_mode ones.
429         * expr.c (expand_expr_real_2): When expanding -ftrapv
430         binops do not use OPTAB_LIB_WIDEN.
431
432 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
433
434         PR middle-end/61919
435         * tree-outof-ssa.c (insert_partition_copy_on_edge)
436         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
437         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
438         inserting them in the insn stream.
439
440 2014-07-28  Marek Polacek  <polacek@redhat.com>
441
442         PR middle-end/61913
443         * common.opt (Wodr): Add Var.
444
445 2014-07-28  Richard Biener  <rguenther@suse.de>
446
447         PR tree-optimization/61921
448         * tree-ssa-structalias.c (create_variable_info_for_1): Check
449         if there is a varpool node before dereferencing it.
450
451 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
452
453         * graphite-sese-to-poly.c:
454         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
455         id of the pbb), which contains pointer to the pbb1.
456
457         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
458
459 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
460
461         * graphite-isl-ast-to-gimple.c:
462         (graphite_create_new_guard): New function.
463         (translate_isl_ast_node_if): New function.
464         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
465
466         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
467
468 2014-07-27  Anthony Green  <green@moxielogic.com>
469
470         * config.gcc: Add moxie-*-moxiebox* configuration.
471         * config/moxie/moxiebox.h: New file.
472
473 2014-07-26  Andrew Pinski  <apinski@cavium.com>
474
475         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
476         from the read only register.
477
478 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
479
480         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
481         as the allocation class if it isn't likely to be spilled.
482
483 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
484
485         * rtl.h (tls_referenced_p): Declare.
486         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
487         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
488         (mips_cannot_force_const_mem): Use tls_referenced_p.
489         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
490         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
491         instead of pa_tls_referenced_p.
492         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
493         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
494         (pa_legitimate_constant_p): Likewise.
495         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
496         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
497         (rs6000_cannot_force_const_mem, rs6000_emit_move)
498         (rs6000_address_for_altivec): Use tls_referenced_p instead of
499         rs6000_tls_referenced_p.
500         (rs6000_tls_symbol_ref_1): Delete.
501
502 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
503
504         PR target/44551
505         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
506         Optimize inverse of a VEC_CONCAT.
507
508 2014-07-25  Xinliang David Li  <davidxl@google.com>
509
510         * params.def: New parameter.
511         * coverage.c (get_coverage_counts): Check new flag.
512         (coverage_compute_profile_id): Check new flag.
513         (coverage_begin_function): Check new flag.
514         (coverage_end_function): Check new flag.
515         * value-prof.c (coverage_node_map_initialized_p): New function.
516         (init_node_map): Populate map with all functions.
517         * doc/invoke.texi: Document new parameter.
518
519 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
520             Richard Biener <rguenther@suse.de>
521
522         * lto-streamer-out.c (struct sccs): Turn to ...
523         (class DFS): ... this one; refactor the DFS walk so it can
524         be re-done on per-SCC basis.
525         (DFS::DFS): New constructor.
526         (DFS::~DFS): New destructor.
527         (hash_tree): Add new MAP argument holding in-SCC hash values;
528         remove POINTER_TYPE hashing hack.
529         (scc_entry_compare): Rename to ...
530         (DFS::scc_entry_compare): ... this one.
531         (hash_scc): Rename to ...
532         (DFS::hash_scc): ... this one; pass output_block instead
533         of streamer_cache; work harder to get unique and stable SCC
534         hashes.
535         (DFS_write_tree): Rename to ...
536         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
537         (lto_output_tree): Update.
538
539 2014-07-25  Andi Kleen  <ak@linux.intel.com>
540
541         * lto-streamer-out.c (hash_tree): Convert to inchash.
542
543 2014-07-25  Andi Kleen  <ak@linux.intel.com>
544
545         * tree.c (build_type_attribute_qual_variant): Use inchash.
546         (type_hash_list): Dito.
547         (attribute_hash_list): Dito
548         (iterative_hstate_expr): Dito.
549         (iterative_hash_expr): Dito.
550         (build_range_type_1): Dito.
551         (build_array_type_1): Dito.
552         (build_function_type): Dito.
553         (build_method_type_directly): Dito.
554         (build_offset_type): Dito.
555         (build_complex_type): Dito.
556         (make_vector_type): Dito.
557         * tree.h (iterative_hash_expr): Add compat wrapper.
558         (iterative_hstate_expr): Add.
559
560 2014-07-25  Andi Kleen  <ak@linux.intel.com>
561
562         * Makefile.in (OBJS): Add inchash.o.
563         (PLUGIN_HEADERS): Add inchash.h.
564         * ipa-devirt.c: Include inchash.h.
565         * lto-streamer-out.c: Dito.
566         * tree-ssa-dom.c: Dito.
567         * tree-ssa-pre.c: Dito.
568         * tree-ssa-sccvn.c: Dito.
569         * tree-ssa-tail-merge.c: Dito.
570         * asan.c: Dito.
571         * tree.c (iterative_hash_hashval_t): Move to ...
572         (iterative_hash_host_wide_int): Move to ...
573         * inchash.c: Here. New file.
574         * tree.h (iterative_hash_hashval_t): Move to ...
575         (iterative_hash_host_wide_int): Move to ...
576         * inchash.h: Here. New file.
577
578 2014-07-25  Richard Biener  <rguenther@suse.de>
579
580         PR middle-end/61762
581         PR middle-end/61894
582         * fold-const.c (native_encode_int): Add and handle offset
583         parameter to do partial encodings of expr.
584         (native_encode_fixed): Likewise.
585         (native_encode_real): Likewise.
586         (native_encode_complex): Likewise.
587         (native_encode_vector): Likewise.
588         (native_encode_string): Likewise.
589         (native_encode_expr): Likewise.
590         * fold-const.c (native_encode_expr): Add offset parameter
591         defaulting to -1.
592         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
593         (fold_ctor_reference): Handle all reads from tcc_constant
594         ctors.
595
596 2014-07-25  Richard Biener  <rguenther@suse.de>
597
598         * tree-inline.c (estimate_move_cost): Mark speed_p argument
599         as possibly unused.
600
601 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
602
603         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
604
605 2014-07-24  Kyle McMartin  <kyle@redhat.com>
606
607         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
608
609 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
610
611         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
612         Add prototype.
613         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
614         function.
615         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
616         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
617         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
618
619 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
620
621         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
622         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
623         aggregate types.  Instead, *all* aggregate types, except for single-
624         element or homogeneous float/vector aggregates, are quadword-aligned
625         if required by their type alignment.  Issue -Wpsabi note when a type
626         is now treated differently than before.
627
628 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
629
630         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
631         does not fit fully into floating-point registers, and there is still
632         space in the register parameter area, use GPRs to pass those parts
633         of the argument.  Issue -Wpsabi note if any parameter is now treated
634         differently than before.
635         (rs6000_arg_partial_bytes): Update.
636
637 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
638
639         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
640
641 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
642
643         * rtl.h (target_rtl): Remove lang_dependent_initialized.
644         * toplev.c (initialize_rtl): Don't use it.  Move previously
645         "language-dependent" calls to...
646         (backend_init): ...here.
647         (lang_dependent_init_target): Don't set lang_dependent_initialized.
648         Assert that RTL initialization hasn't happend yet.
649
650 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
651
652         PR rtl-optimization/61629
653         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
654         they have already been initialized.
655
656 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
657
658         PR middle-end/61268
659         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
660         DECL_INCOMING_RTL and entry_parm.
661         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
662         * calls.c (load_register_parameters): Likewise argument values.
663         (emit_library_call_value_1, store_one_arg): Likewise argument
664         save areas.
665         * config/i386/i386.c (assign_386_stack_local): Likewise the local
666         stack slot.
667         * explow.c (validize_mem): Modify the argument in-place.
668
669 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
670
671         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
672         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
673
674 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
675
676         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
677         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
678
679 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
680
681         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
682         (aarch64_save_callee_saves): New parameter "skip_wb".
683         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
684
685 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
686
687         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
688         "wb_candidate2".
689         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
690
691 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
692
693         * graphite-isl-ast-to-gimple.c:
694         (graphite_create_new_loop): Add calling of isl_id_free to properly
695         decrement reference counts.
696
697         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
698
699 2014-07-24  Martin Liska  <mliska@suse.cz>
700         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
701         function used.
702         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
703         (rs6000_code_end): Likewise.
704
705 2014-07-24  Martin Liska  <mliska@suse.cz>
706
707         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
708         symtab_node funtion used.
709         (rs6000_xcoff_declare_object_name): Likewise.
710
711 2014-07-24  Martin Liska  <mliska@suse.cz>
712
713         * cgraphunit.c (compile): Correct function used.
714
715 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
716
717         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
718         as non-indexable.
719
720 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
721
722         PR lto/61802
723         * varasm.c (bss_initializer_p): Handle offlined ctors.
724         (align_variable, get_variable_align): Likewise.
725         (make_decl_one_only): Likewise.
726         (default_binds_local_p_1): Likewise.
727         (decl_binds_to_current_def_p): Likewise.
728         (get_variable_section): Get constructor if it is offlined.
729         (assemble_variable_contents): Sanity check that the caller
730         streamed in the ctor in LTO.
731
732 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
733
734         * graphite-isl-ast-to-gimple.c:
735         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
736         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
737         isl_ast_op_pdiv_r to the different case.
738
739         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
740
741 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
742
743         PR middle-end/61876
744         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
745         when flag_errno_math is on.
746
747 2014-07-24  Martin Liska  <mliska@suse.cz>
748
749         * cgraph.h (varpool_node):
750         (availability get_availability (void)):
751         created from cgraph_variable_initializer_availability
752         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
753         created from: cgraph_variable_initializer_availability
754         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
755         (void finalize_named_section_flags (void)):
756         created from varpool_finalize_named_section_flags
757         (bool assemble_decl (void)): created from varpool_assemble_decl
758         (void analyze (void)): created from varpool_analyze_node
759         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
760         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
761         (void remove_initializer (void)): created from varpool_remove_initializer
762         (tree get_constructor (void)): created from varpool_get_constructor
763         (bool externally_visible_p (void)): created from varpool_externally_visible_p
764         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
765         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
766         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
767         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
768         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
769         (static bool output_variables (void)): created from varpool_output_variables
770         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
771         created from varpool_extra_name_alias
772         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
773         (static void dump_varpool (FILE *f)): created from dump_varpool
774         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
775         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
776         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
777         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
778         (void assemble_aliases (void)): created from assemble_aliases
779
780 2014-07-24  Martin Liska  <mliska@suse.cz>
781
782         * cgraph.h (symtab_node):
783         (void register_symbol (void)): created from symtab_register_node
784         (void remove (void)): created from symtab_remove_node
785         (void dump (FILE *f)): created from dump_symtab_node
786         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
787         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
788         (struct ipa_ref *add_reference (symtab_node *referred_node,
789         enum ipa_ref_use use_type)): created from add_reference 
790         (struct ipa_ref *add_reference (symtab_node *referred_node,
791         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
792         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
793         gimple stmt)): created from maybe_add_reference
794         (bool semantically_equivalent_p (symtab_node *target)): created from
795         symtab_semantically_equivalent_p
796         (void remove_from_same_comdat_group (void)): created from
797         remove_from_same_comdat_group
798         (void add_to_same_comdat_group (symtab_node *old_node)): created from
799         symtab_add_to_same_comdat_group
800         (void dissolve_same_comdat_group_list (void)): created from
801         symtab_dissolve_same_comdat_group_list
802         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
803         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
804         created from symtab_alias_ultimate_target
805         (inline symtab_node *next_defined_symbol (void)): created from
806         symtab_next_defined_symbol
807         (bool resolve_alias (symtab_node *target)): created from
808         symtab_resolve_alias
809         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
810         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
811         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
812         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
813         (void set_section (const char *section)): created from set_section_1 
814         (enum availability get_availability (void)): created from symtab_node_availability
815         (void make_decl_local (void)): created from symtab_make_decl_local
816         (bool real_symbol_p (void)): created from symtab_read_node
817         (can_be_discarded_p (void)): created from symtab_can_be_discarded
818         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
819         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
820         symtab_in_same_comdat_p;
821         (bool address_taken_from_non_vtable_p (void)): created from
822         address_taken_from_non_vtable_p
823         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
824         (static void dump_table (FILE *)): created from dump_symtab
825         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
826         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
827         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
828         symtab_used_from_object_file_p 
829         (void dump_base (FILE *)): created from dump_symtab_base
830         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
831         (void unregister (void)): created from symtab_unregister_node
832         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
833         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
834         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
835         symtab_nonoverwritable_alias_1
836         * cgraph.h (cgraph_node):
837         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
838         created from cgraph_remove_node_and_inline_clones
839         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
840         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
841         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
842         (cgraph_node *function_symbol (enum availability *avail = NULL)):
843         created from cgraph_function_node
844         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
845         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
846         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
847         created from cgraph_create_clone 
848         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
849         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
850         created from cgraph_create_virtual_clone
851         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
852         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
853         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
854         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
855         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
856         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
857         created from cgraph_function_version_info
858         (struct cgraph_function_version_info *insert_new_function_version (void)):
859         created from insert_new_cgraph_node_version
860         (struct cgraph_function_version_info *function_version (void)): created from
861         get_cgraph_node_version
862         (void analyze (void)): created from analyze_function
863         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
864         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
865         tree real_alias) cgraph_add_thunk
866         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
867         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
868         created from cgraph_function_or_thunk_node
869         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
870         created from expand_thunk
871         (void reset (void)): created from cgraph_reset_node
872         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
873         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
874         (void remove (void)): created from cgraph_remove_node
875         (void dump (FILE *f)): created from dump_cgraph_node
876         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
877         (bool get_body (void)): created from cgraph_get_body
878         (void release_body (void)): created from cgraph_release_function_body
879         (void unnest (void)): created from cgraph_unnest_node
880         (void make_local (void)): created from cgraph_make_node_local
881         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
882         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
883         gcov_type count, int freq)): created from cgraph_create_edge
884         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
885         gcov_type count, int freq)): created from cgraph_create_indirect_edge
886         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
887         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
888         created from cgraph_create_edge_including_clones
889         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
890         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
891         (void remove_callers (void)): created from cgraph_node_remove_callers
892         (void remove_callees (void)): created from cgraph_node_remove_callees
893         (enum availability get_availability (void)): created from cgraph_function_body_availability
894         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
895         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
896         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
897         (void call_duplication_hooks (cgraph_node *node2)): created from
898         cgraph_call_node_duplication_hooks
899         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
900         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
901         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
902         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
903         (void call_function_insertion_hooks (void)):
904         created from cgraph_call_function_insertion_hooks
905         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
906         (bool local_p (void)): created from cgraph_local_node
907         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
908         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
909         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
910         (inline bool only_called_directly_or_aliased_p (void)):
911         created from cgraph_only_called_directly_or_aliased_p
912         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
913         created from cgraph_will_be_removed_from_program_if_no_direct_calls
914         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
915         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
916         (bool can_remove_if_no_direct_calls_p (void)):
917         created from cgraph_can_remove_if_no_direct_calls_p
918         (inline bool has_gimple_body_p (void)):
919         created from cgraph_function_with_gimple_body_p
920         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
921         (static void dump_cgraph (FILE *f)): created from dump_cgraph
922         (static inline void debug_cgraph (void)): created from debug_cgraph
923         (static void record_function_versions (tree decl1, tree decl2)):
924         created from record_function_versions
925         (static void delete_function_version (tree decl)):
926         created from delete_function_version
927         (static void add_new_function (tree fndecl, bool lowered)):
928         created from cgraph_add_new_function
929         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
930         (static cgraph_node * create (tree decl)): created from cgraph_create_node
931         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
932         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
933         (static cgraph_node *get_for_asmname (tree asmname)):
934         created from cgraph_node_for_asm
935         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
936         created from cgraph_same_body_alias 
937         (static bool used_from_object_file_p_worker (cgraph_node *node,
938         void *): new function
939         (static bool non_local_p (cgraph_node *node, void *)):
940         created from cgraph_non_local_node_p_1
941         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
942         created from verify_cgraph
943         (static bool make_local (cgraph_node *node, void *)):
944         created from cgraph_make_node_local
945         (static cgraph_node *create_alias (tree alias, tree target)):
946         created from cgraph_create_function_alias
947         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
948         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
949         created from cgraph_create_edge_1
950         * cgraph.h (varpool_node):
951         (void remove (void)): created from varpool_remove_node
952         (void dump (FILE *f)): created from dump_varpool_node
953
954 2014-07-24  Richard Biener  <rguenther@suse.de>
955
956         PR ipa/61823
957         * tree-ssa-structalias.c (create_variable_info_for_1):
958         Use varpool_get_constructor.
959         (create_variable_info_for): Likewise.
960
961 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
962
963         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
964         subtract outgoing area size when restoring stack_pointer_rtx.
965
966 2014-07-24  Nick Clifton  <nickc@redhat.com>
967
968         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
969         that operations are taking place in parallel.
970         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
971
972 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
973
974         * omp-low.c (extract_omp_for_data): Add missing break statement.
975
976 2014-07-24  Richard Biener  <rguenther@suse.de>
977
978         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
979         * tree-inline.c (estimate_move_cost): Add speed_p parameter
980         and adjust MOVE_RATIO query accordingly.
981         (estimate_num_insns): Adjust callers.
982         * ipa-prop.c (ipa_populate_param_decls): Likewise.
983         * ipa-cp.c (gather_context_independent_values,
984         estimate_local_effects): Likewise.
985         * ipa-split.c (consider_split): Likewise.
986
987 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
988
989         * config/i386/driver-i386.c: Remove names of unused arguments and
990         unnecessary unused attributes.
991         * config/i386/host-mingw32.c: Likewise.
992         * config/i386/i386.c: Likewise.
993         * config/i386/winnt-stubs.c: Likewise.
994         * config/i386/winnt.c: Likewise.
995
996 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
997
998         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
999         (aarch64_gen_loadwb_pair): New helper function.
1000         (aarch64_expand_epilogue): Simplify code using new helper functions.
1001         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
1002
1003 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1004
1005         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
1006         (aarch64_gen_storewb_pair): New helper function.
1007         (aarch64_expand_prologue): Simplify code using new helper functions.
1008         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
1009
1010 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1011
1012         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
1013         Rename to aarch64_save_callee_saves, remove restore code.
1014         (aarch64_restore_callee_saves): New function.
1015
1016 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1017
1018         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
1019         (aarch64_save_callee_saves): New function to handle reg save
1020         for both core and vectore regs.
1021
1022 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1023
1024         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
1025         (aarch64_gen_store_pair): New helper function.
1026         (aarch64_save_or_restore_callee_save_registers)
1027         (aarch64_save_or_restore_fprs): Use new helper functions.
1028
1029 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1030
1031         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
1032         (aarch64_save_or_restore_callee_save_registers)
1033         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
1034
1035 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1036
1037         * config/aarch64/aarch64.c
1038         (aarch64_save_or_restore_callee_save_registers)
1039         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
1040
1041 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1042
1043         * config/aarch64/aarch64.c
1044         (aarch64_save_or_restore_callee_save_registers)
1045         (aarch64_save_or_restore_fprs): Remove 'increment'.
1046
1047 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1048
1049         * config/aarch64/aarch64.c
1050         (aarch64_save_or_restore_callee_save_registers)
1051         (aarch64_save_or_restore_fprs): Use register offset in
1052         cfun->machine->frame.reg_offset.
1053
1054 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1055
1056         * config/aarch64/aarch64.c
1057         (aarch64_save_or_restore_callee_save_registers)
1058         (aarch64_save_or_restore_fprs): Remove base_rtx.
1059
1060 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1061
1062         * config/aarch64/aarch64.c
1063         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
1064         to 'start_offset'.  Remove local variable 'start_offset'.
1065
1066 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1067
1068         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
1069         type to HOST_WIDE_INT.
1070
1071 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1072
1073         * config/aarch64/aarch64.c (aarch64_expand_prologue)
1074         (aarch64_save_or_restore_fprs)
1075         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
1076
1077 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1078
1079         * config/arm/t-rtems-eabi: Add
1080         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
1081         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
1082         mbig-endian/mthumb/march=armv7-r, and
1083         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
1084         multilibs.
1085
1086 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1087             Chris Johns <chrisj@rtems.org>
1088             Joel Sherrill <joel.sherrill@oarcorp.com>
1089
1090         * config.gcc: Add nios2-*-rtems*.
1091         * config/nios2/rtems.h: New file.
1092         * gcc/config/nios2/t-rtems: New file.
1093
1094 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
1095
1096         PR target/61396
1097         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
1098         constant numbers, not general constants.
1099         (rs6000_expand_vector_init): Ditto.
1100
1101 2014-07-23  Nathan Sidwell  <nathan@acm.org>
1102
1103         * gcov-tool.c (gcov_list): Declare here.
1104         (set_gcov_list): Remove.
1105         (gcov_output_files): Set gcov_list directly.
1106
1107 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
1108
1109         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
1110
1111 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
1112
1113         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
1114         callee-saved registers are available for padding purpose
1115         and r3 is not mandatory, then prefer use those callee-saved
1116         instead of r3.
1117
1118 2014-07-23  Richard Biener  <rguenther@suse.de>
1119
1120         * params.def (PARAM_MAX_COMBINE_INSNS): New.
1121         * combine.c: Include statistics.h and params.h.
1122         (combine_instructions): Guard three and four insn combines
1123         with max-combine-insns value.  Record statistics for combines
1124         performed.
1125         * doc/invoke.texi (max-combine-insns): Document new param.
1126
1127 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
1128
1129         * graphite-isl-ast-to-gimple.c:
1130         (translate_isl_ast_node_block): New function.
1131         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
1132
1133         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
1134         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
1135
1136 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
1137
1138         * graphite-isl-ast-to-gimple.c:
1139         (get_max_schedule_dimensions): New function.
1140         (extend_schedule): Likewise.
1141         (generate_isl_schedule): Add calling of extend_schedule and
1142         get_max_schedule_dimensions.
1143
1144 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1145
1146         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
1147         (case UNSPEC): Handle UNSPEC_RBIT.
1148
1149 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1150
1151         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
1152         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
1153
1154 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1155
1156         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
1157
1158 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
1159
1160         * graphite-isl-ast-to-gimple.c:
1161         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
1162         (ivs_params_clear):
1163         (build_iv_mapping): New function.
1164         (translate_isl_ast_node_user): Likewise.
1165         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
1166
1167         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
1168         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
1169         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
1170
1171 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
1172
1173         PR target/55701
1174         * config/arm/arm.md (setmem): New pattern.
1175         * config/arm/arm-protos.h (struct tune_params): New fields.
1176         (arm_gen_setmem): New prototype.
1177         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
1178         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
1179         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
1180         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
1181         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
1182         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
1183         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
1184         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
1185         (arm_const_inline_cost): New function.
1186         (arm_block_set_max_insns): New function.
1187         (arm_block_set_non_vect_profit_p): New function.
1188         (arm_block_set_vect_profit_p): New function.
1189         (arm_block_set_unaligned_vect): New function.
1190         (arm_block_set_aligned_vect): New function.
1191         (arm_block_set_unaligned_non_vect): New function.
1192         (arm_block_set_aligned_non_vect): New function.
1193         (arm_block_set_vect, arm_gen_setmem): New functions.
1194
1195 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
1196
1197         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
1198
1199 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
1200
1201         PR target/61855
1202         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
1203         out of #ifdef __OPTIMIZE__.
1204
1205 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
1206
1207         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
1208         different trapping status if -fnon-call-exceptions is enabled.
1209
1210 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
1211
1212         * expr.c (store_field): Handle VOIDmode for calls that return values
1213         in multiple locations.
1214
1215 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1216
1217         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
1218         (altivec_vsldoi_<mode>): Likewise.
1219
1220 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
1221
1222         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
1223         to the number of characters in the line.
1224
1225 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
1226
1227         * graphite-isl-ast-to-gimple.c: Add using of
1228         build_nonstandard_integer_type instead of int128_integer_type_node.
1229
1230 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
1231
1232         * toplev.c (output_stack_usage): Adjust the location of the warning.
1233
1234 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
1235
1236         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
1237         (*membar_storeload): Disable for LEON3.
1238
1239 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1240
1241         PR rtl-optimization/61461
1242         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
1243
1244 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
1245
1246         PR target/61794
1247         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
1248         Fix instruction constraint.
1249         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
1250
1251 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
1252
1253         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
1254
1255 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
1256
1257         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
1258         GNU coding standards.
1259         (nds32_register_move_cost): Likewise.
1260         (nds32_memory_move_cost): Likewise.
1261         (nds32_address_cost): Likewise.
1262
1263 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1264
1265         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
1266
1267 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
1268
1269         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
1270         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
1271         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
1272         (HAVE_sync_compare_and_swapqi): Define.
1273         (HAVE_sync_compare_and_swaphi): Likewise.
1274         (HAVE_sync_compare_and_swapsi): Likewise.
1275
1276 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
1277
1278         * config/mips/p5600.md: Add missing cpu tests.
1279
1280 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1281
1282         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
1283         (vmla_f64): Likewise.
1284         (vfms_f64): Likewise.
1285         (vmls_f64): Likewise.
1286
1287 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1288
1289         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
1290         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
1291
1292 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1293
1294         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
1295         (vmlal_high_lane_s32): Likewise.
1296         (vmlal_high_lane_u16): Likewise.
1297         (vmlal_high_lane_u32): Likewise.
1298         (vmlsl_high_lane_s16): Likewise.
1299         (vmlsl_high_lane_s32): Likewise.
1300         (vmlsl_high_lane_u16): Likewise.
1301         (vmlsl_high_lane_u32): Likewise.
1302
1303 2014-07-17  Terry Guo  <terry.guo@arm.com>
1304
1305         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
1306         (alus_reg): Renamed to alus_sreg.
1307         * config/arm/arm-fixed.md: Change type of non-dsp instructions
1308         from alu_reg to alu_sreg.  Change type of dsp instructions from
1309         alu_reg to alu_dsp_reg.
1310         * config/arm/thumb1.md: Likewise.
1311         * config/arm/thumb2.md: Likewise.
1312         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
1313         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
1314         with alu_sreg and alus_sreg.
1315         * config/arm/arm1026ejs.md (alu_op): Likewise.
1316         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
1317         * config/arm/arm926ejs.md (9_alu_op): Likewise.
1318         * config/arm/fa526.md (526_alu_op): Likewise.
1319         * config/arm/fa606te.md (606te_alu_op): Likewise.
1320         * config/arm/fa626te.md (626te_alu_op): Likewise.
1321         * config/arm/fa726te.md (726te_alu_op): Likewise.
1322         * config/arm/fmp626.md (mp626_alu_op): Likewise.
1323         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
1324         alu_sreg, alu_dsp_reg and alus_sreg.
1325         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
1326         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
1327         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
1328         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
1329         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
1330         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
1331         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
1332         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
1333         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
1334         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
1335         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
1336         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
1337         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
1338         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
1339         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
1340         alus_reg to alus_sreg.
1341
1342 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
1343
1344         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
1345         infinity format.
1346
1347 2014-07-17  Richard Biener  <rguenther@suse.de>
1348
1349         PR rtl-optimization/61801
1350         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
1351         don't set reg_pending_barrier if it appears in a debug-insn.
1352
1353 2014-07-16  DJ Delorie  <dj@redhat.com>
1354
1355         * config/rx/rx.c (rx_option_override): Fix alignment values.
1356         (rx_align_for_label): Likewise.
1357
1358 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
1359
1360         PR target/61737.
1361         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
1362         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
1363         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
1364         functions.
1365         (cris_print_index, cris_print_operand, cris_constant_index_p)
1366         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
1367         (cris_address_cost): Ditto last CONSTANT_P.
1368         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
1369         callers changed.  Yield cris_offsettable_symbol for non-PIC
1370         constant symbolic expressions including labels.  Yield cris_unspec
1371         for all unspecs.
1372         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
1373         target to pic_offset_table_rtx for calls that will likely go
1374         through PLT, const0_rtx when they can't.  All callers changed.
1375         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
1376         symbolic expressions to be PICified.  Remove second, redundant,
1377         assert on can_create_pseudo_p returning non-zero.  Use
1378         replace_equiv_address_nv, not replace_equiv_address, for final
1379         operand update.
1380         * config/cris/cris.md ("movsi"): Move variable t to pattern
1381         toplevel. Adjust assert for new cris_symbol_type member.  Use
1382         CONSTANT_P instead of CONSTANT_ADDRESS_P.
1383         ("*movsi_internal") <case 9>: Make check for valid unspec operands
1384         for lapc stricter.
1385         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
1386         ("call", "call_value"): Use second incoming operand as a marker
1387         for pic-offset-table-register being used.
1388         ("*expanded_call_non_v32", "*expanded_call_v32")
1389         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
1390         second incoming operand to CALL, match cris_call_type_marker.
1391         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
1392         ("*expanded_call_side"): Ditto.  Fix typo in comment.
1393         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
1394         CONSTANT_P.
1395         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
1396         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
1397         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
1398         users changed.  Add members cris_offsettable_symbol and cris_unspec.
1399         (cris_symbol_type): Rename from cris_pic_symbol_type.
1400         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
1401         just CONSTANT_P.
1402         * config/cris/cris-protos.h (cris_symbol_type_of,
1403         cris_expand_pic_call_address): Adjust prototypes.
1404         (cris_legitimate_constant_p): New prototype.
1405
1406         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
1407         an existing tmake_file.  Don't add t-slibgcc and t-linux.
1408
1409 2014-07-17  Jason Merrill  <jason@redhat.com>
1410
1411         PR c++/61623
1412         * symtab.c (symtab_remove_from_same_comdat_group): Also
1413         set_comdat_group to NULL_TREE.
1414         (verify_symtab): Fix diagnostic.
1415
1416 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
1417
1418         PR target/61662
1419         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
1420
1421 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
1422
1423         Support location tracking for built-in macro tokens
1424         * input.h (is_location_from_builtin_token): New function declaration.
1425         * input.c (is_location_from_builtin_token): New function definition.
1426         * toplev.c (general_init): Tell libcpp what the pre-defined
1427         spelling location for built-in tokens is.
1428
1429 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
1430
1431         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
1432         on the FUNCTION_DECL.
1433
1434 2014-07-16  Richard Biener  <rguenther@suse.de>
1435
1436         PR other/61782
1437         * doc/extend.texi (always_inline): Clarify.
1438
1439 2014-07-15  Eric Christopher  <echristo@gmail.com>
1440
1441         * doc/invoke.texi (Link Options): Document -z option.
1442
1443 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
1444
1445         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
1446         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1447
1448 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
1449
1450         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
1451
1452 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
1453
1454         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
1455         varpool_assemble_decl.
1456         * varpool.c (varpool_assemble_decl): Assert that node->definition is
1457         true.
1458
1459 2014-07-15  Michael Matz  <matz@suse.de>
1460
1461         PR rtl-optimization/61772
1462         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
1463
1464 2014-07-15  Richard Biener  <rguenther@suse.de>
1465
1466         * opts.c (default_options_table): Disable bit-ccp at -Og.
1467
1468 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
1469
1470         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
1471
1472 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
1473
1474         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
1475         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
1476         call langhook for unknown declaration.
1477         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
1478         * tree.h (DECL_ARGUMENTS): Update.
1479         * print-tree.c (print_node): Update.
1480         * tree-core.h (tree_decl_non_common): Remove arguments.
1481         (tree_function_decl): Add arguments.
1482
1483 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
1484
1485         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
1486
1487 2014-07-14  Richard Biener  <rguenther@suse.de>
1488
1489         PR tree-optimization/61779
1490         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
1491         simplifying a condition.
1492
1493 2014-07-14  Richard Biener  <rguenther@suse.de>
1494
1495         * builtins.c (c_strlen): Make only_value == 2 really only
1496         affect warning generation.
1497
1498 2014-07-14  Richard Biener  <rguenther@suse.de>
1499
1500         PR tree-optimization/61757
1501         PR tree-optimization/61783
1502         PR tree-optimization/61787
1503         * tree-ssa-dom.c (record_equality): Revert canonicalization
1504         change and add comment.
1505         (propagate_rhs_into_lhs): Revert previous fix, removing
1506         loop depth restriction again.
1507
1508 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1509
1510         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
1511         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
1512         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
1513         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
1514         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
1515         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
1516         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
1517
1518 2014-07-14  Richard Biener  <rguenther@suse.de>
1519
1520         * cgraph.h (decl_in_symtab_p): Make inline.
1521
1522 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
1523
1524         PR middle-end/61294
1525         * doc/invoke.texi (-Wmemset-transposed-args): Document.
1526
1527         PR target/61656
1528         * config/i386/i386.c (classify_argument): Don't merge classes above
1529         number of words.
1530
1531 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
1532
1533         * cgraph.h (symtab_node): Add nonzero_address.
1534         (decl_in_symtab_p): Break out from ...
1535         (symtab_get_node): ... here.
1536         * fold-const.c: Include cgraph.h
1537         (tree_single_nonzero_warnv_p): Use symtab to determine
1538         if symbol is non-zero.
1539         * symtab.c (symtab_node::nonzero_address): New method.
1540
1541 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
1542
1543         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
1544         forgotten in previous commit.
1545
1546 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
1547
1548         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
1549         on builtin types.
1550         * ipa-devirt.c: Include stor-layout.h and intl.h
1551         (odr_subtypes_equivalent_p): New function.
1552         (warn_odr): New function.
1553         (warn_type_mismatch): New function.
1554         (odr_types_equivalent_p): New function.
1555         (add_type_duplicate): Use it.
1556         * common.opt (Wodr): New flag.
1557         * doc/invoke.texi (Wodr): Document new warning.
1558
1559 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
1560
1561         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
1562         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
1563         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
1564         (varpool_get_constructor): Push CTORS_IN timevar.
1565         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
1566
1567 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
1568
1569         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
1570         Remove VOID_FTYPE_PUSHORT.
1571         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
1572         Change code to USHORT_FTYPE_VOID.
1573         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
1574         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
1575         (ix86_atomic_assign_expand_fenv): Update for
1576         __builtin_ia32_fnstsw changes.
1577         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
1578         (fnstsw): Change operand 0 to nonimmediate operand.
1579
1580 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
1581
1582         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
1583         (varpool_get_constructor): New function.
1584         (varpool_ctor_useable_for_folding_p): Break out from ...
1585         (ctor_for_folding): ... here; use varpool_get_constructor.
1586         (varpool_assemble_decl): Likewise.
1587         * lto-streamer.h (struct output_block): Turn cgraph_node
1588         to symbol filed.
1589         (lto_input_variable_constructor): Declare.
1590         * ipa-visibility.c (function_and_variable_visibility): Use
1591         varpool_get_constructor.
1592         * cgraph.h (varpool_get_constructor): Declare.
1593         (varpool_ctor_useable_for_folding_p): New function.
1594         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
1595         parameter; return error_mark_node for non-trivial constructors.
1596         (lto_write_tree_1, DFS_write_tree): Update use of
1597         get_symbol_initial_value.
1598         (output_function): Update initialization of symbol.
1599         (output_constructor): New function.
1600         (copy_function): Rename to ..
1601         (copy_function_or_variable): ... this one; handle vars too.
1602         (lto_output): Output variable sections.
1603         * lto-streamer-in.c (input_constructor): New function.
1604         (lto_read_body): Rename from ...
1605         (lto_read_body_or_constructor): ... this one; handle vars too.
1606         (lto_input_variable_constructor): New function.
1607         * ipa-prop.c (ipa_prop_write_jump_functions,
1608         ipa_prop_write_all_agg_replacement): Update.
1609         * lto-cgraph.c (compute_ltrans_boundary): Use it.
1610         (output_cgraph_opt_summary): Set symbol to NULL.
1611
1612 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
1613
1614         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
1615         non-polymorphic types.
1616         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
1617         * ipa-devirt.c (types_same_for_odr): Do not explode when one
1618         of types is not polymorphic.
1619
1620 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
1621
1622         * lra-constraints.c (remove_inheritance_pseudos): Process
1623         destination pseudo too.
1624
1625 2014-07-11  Rong Xu  <xur@google.com>
1626
1627         * gcov-tool.c (gcov_output_files): Fix build error introduced in
1628         commit r212448.
1629
1630 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1631
1632         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
1633         * config/avr/avr-devices.c (AVR_MCU): Same.
1634         (avr_mcu_types): add text start value to end of device list.
1635         * config/avr/avr-mcus.def: Add text section start for all devices.
1636         (ata5782): Add new avr5 device.
1637         (ata5831): Same.
1638         * config/avr/avr-tables.opt: Regenerate.
1639         * config/avr/avr.h: Add declaration for text section start handler.
1640         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
1641         SPEC functions.
1642         (LINK_SPEC): Include text section start handler to linker spec.
1643         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
1644         pass -Ttext option to linker if the text section start for the device
1645         is not zero.
1646         * config/avr/t-multilib: Regenerate.
1647         * doc/avr-mmcu.texi: Regenerate.
1648
1649 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
1650
1651         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
1652         * config/rs6000/aix52.h (LINK_SPEC): Same.
1653         * config/rs6000/aix53.h (LINK_SPEC): Same.
1654         * config/rs6000/aix61.h (LINK_SPEC): Same.
1655         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
1656
1657 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
1658
1659         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
1660         (graphite_verify): New function.
1661         (ivs_params_clear): New function.
1662         (gcc_expression_from_isl_ast_expr_id): New function.
1663         (gcc_expression_from_isl_expr_int): New function.
1664         (binary_op_to_tree): New function.
1665         (ternary_op_to_tree): New function.
1666         (unary_op_to_tree): New function.
1667         (nary_op_to_tree): New function.
1668         (gcc_expression_from_isl_expr_op): New function.
1669         (gcc_expression_from_isl_expression): New function.
1670         (graphite_create_new_loop): New function.
1671         (translate_isl_ast_for_loop): New function.
1672         (get_upper_bound): New function.
1673         (graphite_create_new_loop_guard): New function.
1674         (translate_isl_ast_node_for): New function.
1675         (translate_isl_ast): New function.
1676         (add_parameters_to_ivs_params): New function.
1677         (scop_to_isl_ast): New parameter ip.
1678         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
1679
1680 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
1681
1682         * config/xtensa/predicates.md (call expander): Update for
1683         DECL_SECTION_NAME being string.
1684
1685 2014-07-11  Richard Biener  <rguenther@suse.de>
1686
1687         PR middle-end/61473
1688         * builtins.c (fold_builtin_memory_op): Inline memory moves that
1689         can be implemented with a single load followed by a single store.
1690         (c_strlen): Only warn when only_value is not 2.
1691
1692 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
1693
1694         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
1695
1696 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
1697
1698         PR target/61561
1699         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
1700         (*movhi_bytes): Likewise.
1701         (*arm_movqi_insn): Likewise.
1702
1703 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
1704
1705         PR target/56858
1706         * config/alpha/alpha.c: Include tree-pass.h, context.h
1707         and pass_manager.h.
1708         (pass_data_handle_trap_shadows): New pass.
1709         (pass_handle_trap_shadows::gate): New pass gate function.
1710         (make_pass_handle_trap_shadows): New function.
1711         (rest_of_handle_trap_shadows): Ditto.
1712
1713         (alpha_align_insns_1): Rename from alpha_align_insns.
1714         (pass_data_align_insns): New pass.
1715         (pass_align_insns::gate): New pass gate function.
1716         (make_pass_aling_insns): New function.
1717         (rest_of_align_insns): Ditto.
1718         (alpha_align_insns): Ditto.
1719
1720         (alpha_option_override): Declare handle_trap_shadows info
1721         and align_insns_info.  Register handle_trap_shadows and align_insns
1722         passes here.
1723         (alpha_reorg): Do not call alpha_trap_shadows and
1724         alpha_align_insn from here.
1725
1726         (alpha_pad_function_end): Do not skip BARRIERs.
1727
1728 2014-07-10  Rong Xu  <xur@google.com>
1729
1730         Add gcov-tool: an offline gcda profile processing tool support.
1731         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
1732         (gcov_is_error): Ditto.
1733         (gcov_read_string): Ditto.
1734         (gcov_read_sync): Ditto.
1735         * gcov-io.h: Move counter defines to gcov-counter.def.
1736         * gcov-dump.c (tag_counters): Use gcov-counter.def.
1737         * coverage.c: Ditto.
1738         * gcov-tool.c: Offline gcda profile processing tool.
1739         (unlink_gcda_file): Remove one gcda file.
1740         (unlink_profile_dir): Remove gcda files from the profile path.
1741         (gcov_output_files): Output gcda files to an output dir.
1742         (profile_merge): Merge two profiles in directory.
1743         (print_merge_usage_message): Print merge usage.
1744         (merge_usage): Print merge usage and exit.
1745         (do_merge): Driver for profile merge sub-command.
1746         (profile_rewrite): Rewrite profile.
1747         (print_rewrite_usage_message): Print rewrite usage.
1748         (rewrite_usage): Print rewrite usage and exit.
1749         (do_rewrite): Driver for profile rewrite sub-command.
1750         (print_usage): Print gcov-info usage and exit.
1751         (print_version): Print gcov-info version.
1752         (process_args): Process arguments.
1753         (main): Main routine for gcov-tool.
1754         * Makefile.in: Build and install gcov-tool.
1755         * gcov-counter.def: New file split from gcov-io.h.
1756         * doc/gcc.texi: Include gcov-tool.texi.
1757         * doc/gcov-tool.texi: Document for gcov-tool.
1758
1759 2014-07-10  Richard Biener  <rguenther@suse.de>
1760
1761         PR tree-optimization/61757
1762         * tree-ssa-dom.c (loop_depth_of_name): Restore.
1763         (propagate_rhs_into_lhs): Revert part of last change.
1764
1765 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
1766
1767         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
1768         FUNCTION_DECLs.
1769
1770 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
1771
1772         PR middle-end/53590
1773         * function.c (allocate_struct_function): Revert r188667 change.
1774
1775         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
1776
1777 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
1778
1779         * doc/install.texi: Remove links to defunct package providers for
1780         Solaris.
1781
1782 2014-07-09  Tom de Vries  <tom@codesourcery.com>
1783
1784         * final.c (get_call_fndecl): Declare.
1785         (self_recursive_call_p): New function.
1786         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
1787
1788 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1789
1790         * ipa-devirt.c (record_node): Walk through aliases.
1791
1792 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1793
1794         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
1795
1796 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1797
1798         Revert:
1799         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
1800
1801 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1802
1803         * ipa-visibility.c (function_and_variable_visibility): Remove
1804         temporary hack disabling local aliases on AIX.
1805
1806 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1807
1808         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
1809         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
1810
1811 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1812
1813         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
1814         * rs6000/rs6000.c: Inline output of .set instruction.
1815         (declare_alias_data): New struct.
1816         (rs6000_declare_alias): New function.
1817         (rs6000_xcoff_declare_function_name): Use it.
1818         (rs6000_xcoff_declare_object_name): New function.
1819         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
1820         (ASM_OUTPUT_DEF): Turn to empty definition.
1821
1822 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
1823
1824         PR bootstrap/61679
1825         * hash-table.h: use hash_table::value_type instead of
1826         Descriptor::value_type in the return types of several methods.
1827
1828 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
1829
1830         * tree-pass.h (pass_data): Remove has_execute member.
1831         * passes.c (execute_one_pass): Don't check pass->has_execute.
1832         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
1833         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
1834         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
1835         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
1836         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
1837         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
1838         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
1839         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
1840         gimple-low.c, gimple-ssa-isolate-paths.c,
1841         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
1842         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
1843         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
1844         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
1845         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
1846         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
1847         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
1848         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
1849         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
1850         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
1851         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
1852         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
1853         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
1854         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
1855         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
1856         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
1857         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
1858         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
1859         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
1860         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
1861         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
1862         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
1863         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
1864         web.c: Remove initializer for pass_data::has_execute.
1865
1866 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
1867
1868         * graphite-htab.h: Use hash_map instead of hash_table.
1869         * graphite-clast-to-gimple.c: Adjust.
1870         * passes.c: Use hash_map instead of hash_table.
1871         * sese.c: Likewise.
1872         * sese.h: Remove now unused code.
1873
1874 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
1875
1876         PR target/61599
1877         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
1878         than zero.
1879
1880 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
1881
1882         PR rtl-optimization/61673
1883         * combine.c (simplify_comparison): Test just mode's sign bit
1884         in tmode rather than the sign bit and any bits above it.
1885
1886 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
1887
1888         * graphite-isl-ast-to-gimple.c (generate_isl_context):
1889         Add __isl_give to the declaration.
1890         (generate_isl_schedule): Likewise.
1891         (scop_to_isl_ast): Likewise.
1892
1893 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1894
1895         * config/arm/arm.c (cortexa5_extra_costs): New table.
1896         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
1897
1898 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
1899
1900         PR tree-optimization/61725
1901         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
1902         range, use range_includes_zerop_p instead of integer_zerop on
1903         vr0->min, only use log2 of max if min is not negative.
1904
1905 2014-07-08  Richard Biener  <rguenther@suse.de>
1906
1907         * tree-ssa-dom.h (loop_depth_of_name): Remove.
1908         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
1909         restriction on loop depth difference.
1910         (record_equality): Likewise.
1911         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
1912         (loop_depth_of_name): Remove.
1913         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
1914         restriction on loop depth difference.
1915         (init_copy_prop): Likewise.
1916
1917 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
1918
1919         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
1920         parameter.
1921         (walk_aliased_vdefs): Likewise.
1922         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
1923         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
1924         (detect_type_change_from_memory_writes): Check if entry was reached.
1925
1926 2014-07-08  Richard Biener  <rguenther@suse.de>
1927
1928         PR tree-optimization/61681
1929         * tree-ssa-structalias.c (find_what_var_points_to): Expand
1930         NONLOCAL inside ESCAPED.
1931
1932 2014-07-08  Richard Biener  <rguenther@suse.de>
1933
1934         PR tree-optimization/61680
1935         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1936         Handle properly all read-write dependences with group accesses.
1937
1938 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
1939
1940         PR tree-optimization/61576
1941         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
1942         block containing reduction statement is predecessor of phi basi block.
1943
1944 2014-07-08  Marek Polacek  <polacek@redhat.com>
1945
1946         PR c/60226
1947         * fold-const.c (round_up_loc): Change the parameter type.
1948         Remove assert.
1949         * fold-const.h (round_up_loc): Adjust declaration.
1950         * stor-layout.c (finalize_record_size): Check for too large types.
1951
1952 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
1953
1954         * symtab.c: Include calls.h.
1955         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
1956
1957 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
1958
1959         * config/rs6000/rs6000.c (output_vec_const_move): Handle
1960         little-endian code generation.
1961         * config/rs6000/spe.md (spe_evmergehi): Rename to...
1962         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
1963         (spe_evmergehilo): Rename to...
1964         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
1965         (spe_evmergelo): Rename to...
1966         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
1967         (spe_evmergelohi): Rename to...
1968         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
1969         (spe_evmergehi, spe_evmergehilo): New expanders.
1970         (spe_evmergelo, spe_evmergelohi): Likewise.
1971         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
1972         (*frob_tf_ti): Likewise.
1973         (*frob_<mode>_di_2): Likewise.
1974         (*frob_tf_di_8_2): Likewise.
1975         (*frob_di_<mode>): Likewise.
1976         (*frob_ti_tf): Likewise.
1977         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
1978         (*frob_ti_<mode>_8_2): Likewise.
1979         (*frob_ti_tf_2): Likewise.
1980         (mov_si<mode>_e500_subreg0): Rename to...
1981         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
1982         endianness only.
1983         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
1984         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
1985         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
1986         the big endianness only.
1987         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
1988         (*mov_si<mode>_e500_subreg0_2): Rename to...
1989         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
1990         big big endianness only.
1991         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
1992         (*mov_si<mode>_e500_subreg4): Rename to...
1993         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
1994         endianness only.
1995         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
1996         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
1997         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
1998         the big endianness only.
1999         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
2000         pattern.
2001         (*mov_si<mode>_e500_subreg4_2): Rename to...
2002         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
2003         endianness only.
2004         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
2005         (*mov_sitf_e500_subreg8): Rename to...
2006         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
2007         endianness only.
2008         (*mov_sitf_e500_subreg8_le): New instruction pattern.
2009         (*mov_sitf_e500_subreg8_2): Rename to...
2010         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
2011         endianness only.
2012         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
2013         (*mov_sitf_e500_subreg12): Rename to...
2014         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
2015         endianness only.
2016         (*mov_sitf_e500_subreg12_le): New instruction pattern.
2017         (*mov_sitf_e500_subreg12_2): Rename to...
2018         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
2019         endianness only.
2020         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
2021
2022 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
2023
2024         * asan.c (instrument_strlen_call): Do not instrument first byte
2025         in strlen if already instrumented.
2026
2027 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2028
2029         * config/arm/arm.opt (mwords-little-endian): Delete.
2030         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
2031         of TARGET_LITTLE_WORDS.
2032         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
2033         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
2034         warning.
2035         * doc/invoke.texi: Remove references to -mwords-little-endian.
2036
2037 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
2038
2039         * expmed.c (struct init_expmed_rtl): Change all fields but
2040         pow2 and cint from struct rtx_def to rtx.
2041         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
2042         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
2043         at the end again.
2044
2045 2014-07-06  Marek Polacek  <polacek@redhat.com>
2046
2047         PR c/6940
2048         * doc/invoke.texi: Document -Wsizeof-array-argument.
2049
2050 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
2051
2052         * wide-int.h (wide_int_storage): Change declaration from struct
2053         to class.
2054
2055 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
2056
2057         * cgraph.c (cgraph_create_indirect_edge): Update call of
2058         get_polymorphic_call_info.
2059         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
2060         (possible_polymorphic_call_targets): Add parameter call.
2061         (decl_maybe_in_construction_p): New predicate.
2062         (get_polymorphic_call_info): Add parameter call;
2063         use decl_maybe_in_construction_p.
2064         * gimple-fold.c (fold_gimple_assign): Update use of
2065         possible_polymorphic_call_targets.
2066         (gimple_fold_call): Likewise.
2067         * ipa-prop.c: Inlcude calls.h
2068         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
2069         (param_type_may_change_p): New predicate.
2070         (detect_type_change_from_memory_writes): Break out from ...
2071         (detect_type_change): ... this one; use param_type_may_change_p.
2072         (detect_type_change_ssa): Use param_type_may_change_p.
2073         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
2074
2075 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
2076
2077         PR target/49423
2078         * config/arm/arm-protos.h (arm_legitimate_address_p,
2079         arm_is_constant_pool_ref): Add prototypes.
2080         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
2081         (arm_is_constant_pool_ref) New function.
2082         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
2083         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
2084         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
2085         operand. Remove pool_range and neg_pool_range attributes.
2086         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
2087         pool_range and neg_pool_range attributes.
2088         * config/arm/constraints.md (Uh): New constraint.
2089         (Uq): Don't allow constant pool references.
2090
2091 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
2092
2093         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
2094         (move_lo_quad_internal_be_<mode>): Likewise.
2095         (move_lo_quad_<mode>): Convert to define_expand.
2096         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
2097         (aarch64_simd_move_hi_quad_be_<mode>): New.
2098         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
2099         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
2100         (aarch64_combinez_be<mode>): New.
2101         (aarch64_combine<mode>): Convert to define_expand.
2102         (aarch64_combine_internal<mode>): New.
2103         (aarch64_simd_combine<mode>): Remove bogus RTL description.
2104
2105 2014-07-04  Tom de Vries  <tom@codesourcery.com>
2106
2107         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
2108         combination of earlyclobber and read/write modifiers.
2109
2110 2014-07-04  Tom de Vries  <tom@codesourcery.com>
2111
2112         * config/aarch64/aarch64-simd.md
2113         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
2114
2115 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
2116
2117         PR target/61714
2118         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
2119
2120 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
2121
2122         PR middle-end/61654
2123         * cgraphunit.c (expand_thunk): Call free_dominance_info.
2124
2125         PR tree-optimization/61684
2126         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
2127         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
2128
2129 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2130             Kito Cheng  <kito@0xlab.org>
2131             Monk Chiang  <sh.chiang04@gmail.com>
2132
2133         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
2134         (nds32_symbol_load_store_p): Move to ...
2135         (nds32_fp_as_gp_check_available): Move to ...
2136         * config/nds32/nds32-fp-as-gp.c: ... here.
2137         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
2138         extern declaration.
2139
2140 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2141             Kito Cheng  <kito@0xlab.org>
2142             Monk Chiang  <sh.chiang04@gmail.com>
2143
2144         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
2145         (nds32_expand_store_multiple): Move to ...
2146         (nds32_expand_movmemqi): Move to ...
2147         * config/nds32/nds32-memory-manipulation.c: ... here.
2148
2149 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2150             Kito Cheng  <kito@0xlab.org>
2151             Monk Chiang  <sh.chiang04@gmail.com>
2152
2153         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
2154         (nds32_output_casesi_pc_relative): Move to ...
2155         (nds32_output_casesi): Move to ...
2156         (nds32_mem_format): Move to ...
2157         (nds32_output_16bit_store): Move to ...
2158         (nds32_output_16bit_load): Move to ...
2159         (nds32_output_32bit_store): Move to ...
2160         (nds32_output_32bit_load): Move to ...
2161         (nds32_output_32bit_load_s): Move to ...
2162         (nds32_output_stack_push): Move to ...
2163         (nds32_output_stack_pop): Move to ...
2164         * config/nds32/nds32-md-auxiliary.c: ... here.
2165
2166 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2167             Ling-Hua Tseng  <uranus@tinlans.org>
2168
2169         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
2170         the purpose of this file.
2171
2172 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2173             Kito Cheng  <kito@0xlab.org>
2174             Monk Chiang  <sh.chiang04@gmail.com>
2175
2176         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
2177         (nds32_address_cost): Move implementation to ...
2178         * config/nds32/nds32-cost.c: ... here.
2179         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
2180         (nds32_address_cost_impl): Declare.
2181
2182 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2183             Kito Cheng  <kito@0xlab.org>
2184             Monk Chiang  <sh.chiang04@gmail.com>
2185
2186         * config/nds32/nds32.c
2187         (nds32_consecutive_registers_load_store_p): Move to ...
2188         (nds32_valid_multiple_load_store): Move to ...
2189         (nds32_valid_stack_push_pop): Move to ...
2190         (nds32_can_use_bclr_p): Move to ...
2191         (nds32_can_use_bset_p): Move to ...
2192         (nds32_can_use_btgl_p): Move to ...
2193         (nds32_can_use_bitci_p): Move to ...
2194         * config/nds32/nds32-predicates.c: ... here.
2195
2196 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2197             Kito Cheng  <kito@0xlab.org>
2198             Monk Chiang  <sh.chiang04@gmail.com>
2199
2200         * config/nds32/nds32.c
2201         (nds32_expand_builtin_null_ftype_reg): Move to ...
2202         (nds32_expand_builtin_reg_ftype_imm): Move to ...
2203         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
2204         (nds32_init_builtins): Move implementation to ...
2205         (nds32_expand_builtin): Move implementation to ...
2206         * config/nds32/nds32-intrinsic.c: ... here.
2207         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
2208         (nds32_expand_builtin_impl): Declare.
2209
2210 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2211             Kito Cheng  <kito@0xlab.org>
2212             Monk Chiang  <sh.chiang04@gmail.com>
2213
2214         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
2215         (nds32_emit_section_tail_template): Move to ...
2216         (nds32_emit_isr_jmptbl_section): Move to ...
2217         (nds32_emit_isr_vector_section): Move to ...
2218         (nds32_emit_isr_reset_conten): Move to ...
2219         (nds32_check_isr_attrs_conflict): Move to ...
2220         (nds32_construct_isr_vectors_information): Move to ...
2221         (nds32_asm_file_start): Move implementation to ...
2222         (nds32_asm_file_end): Move implementation to ...
2223         * config/nds32/nds32-isr.c: ... here.
2224         * config/nds32/nds32-protos.h
2225         (nds32_check_isr_attrs_conflict): Declare.
2226         (nds32_construct_isr_vectors_information): Declare.
2227         (nds32_asm_file_start_for_isr): Declare.
2228         (nds32_asm_file_end_for_isr): Declare.
2229
2230 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
2231             Kito Cheng  <kito@0xlab.org>
2232             Monk Chiang  <sh.chiang04@gmail.com>
2233
2234         * config.gcc (nds32*): Add new modules to extra_objs.
2235         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
2236         (nds32be-*-*): Likewise.
2237         * config/nds32/nds32-cost.c: New file.
2238         * config/nds32/nds32-fp-as-gp.c: New file.
2239         * config/nds32/nds32-intrinsic.c: New file.
2240         * config/nds32/nds32-isr.c: New file.
2241         * config/nds32/nds32-md-auxiliary.c: New file.
2242         * config/nds32/nds32-memory-manipulation.c: New file.
2243         * config/nds32/nds32-pipelines-auxiliary.c: New file.
2244         * config/nds32/nds32-predicates.c: New file.
2245         * config/nds32/t-nds32: New file.
2246
2247 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
2248
2249         PR tree-optimization/61682
2250         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
2251         using cases and when one of the operands is equal to 1.
2252
2253 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
2254
2255         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
2256         ashr<mode>3): Correct mode of operands[2].
2257         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
2258         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
2259         Correct mode of operands[2].  Fix split condition.
2260
2261 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
2262
2263         * arm.md (arch): Add armv6_or_vfpv3.
2264         (arch_enabled): Add test for the above.
2265         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
2266         on VFP9.
2267         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
2268
2269 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
2270
2271         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
2272         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
2273         HWI 1 and negate the unsigned value.
2274         * expmed.c (expand_sdiv_pow2): For modes wider than word always
2275         use AND instead of shift.
2276         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
2277
2278 2014-07-03  Marek Polacek  <polacek@redhat.com>
2279
2280         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
2281         (-fsanitize=float-divide-by-zero): Move to the table with
2282         -fsanitize=undefined suboptions.
2283         (-fsanitize=float-cast-overflow): Likewise.
2284
2285 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
2286
2287         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
2288         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
2289         endianness.
2290
2291 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2292
2293         * loop-invariant.c (struct invariant): Add a new member: eqno;
2294         (find_identical_invariants): Update eqno;
2295         (create_new_invariant): Init eqno;
2296         (get_inv_cost): Compute comp_cost with eqno;
2297
2298 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
2299
2300         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
2301         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
2302         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
2303         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
2304         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
2305
2306 2014-07-02  Christian Bruel  <christian.bruel@st.com>
2307
2308         PR target/29349
2309         PR target/53513
2310         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
2311         (make_preds_opaque): Delete.
2312         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
2313         (commit_mode_sets): New function.
2314         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
2315         Process all modes at once.
2316         * basic-block.h (pre_edge_lcm_avs): Declare.
2317         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
2318         Call clear_aux_for_edges. Fix comments.
2319         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
2320         (pre_edge_rev_lcm): Idem.
2321         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
2322         parameter.
2323         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
2324         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
2325         Idem.
2326         * config/i386/i386.c (x96_emit_mode_set): Idem.
2327         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
2328         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
2329         (fpscr_toggle) Disallow from delay slot.
2330         * target.def (emit_mode_set): Add prev_mode parameter.
2331         * doc/tm.texi: Regenerate.
2332
2333 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2334
2335         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
2336         variable i.
2337
2338 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
2339
2340         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
2341         vtable_pointer_value_to_vtable): Constify.
2342         (contains_polymorphic_type_p): Declare.
2343         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
2344         vtable_pointer_value_to_vtable): Constify.
2345         (contains_polymorphic_type_p): New predicate.
2346         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
2347         polymorphic types.
2348         (ipa_set_ancestor_jf): Likewise.
2349         (detect_type_change): Return false in easy cases.
2350         (compute_complex_assign_jump_func): Require type to contain
2351         polymorphic type.
2352         (compute_known_type_jump_func): Likewise.
2353
2354 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
2355
2356         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
2357         Remove.
2358         (type_in_anonymous_namespace_p): Constify argument.
2359         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
2360         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
2361         (main_odr_variant): New function.
2362         (hash_type_name): Make static; update assert; do not ICE on
2363         non-records.
2364         (types_same_for_odr): Bring here from tree.c; simplify and remove
2365         old structural comparing code that doesn't work for templates.
2366         (odr_hasher::equal): Update assert.
2367         (add_type_duplicate): Return true when bases should be computed;
2368         replace incomplete loader by complete; do not output duplicated
2369         warnings; do not ICE on non-records; set odr_violated flag.
2370         (get_odr_type): Be ready to replace incomplete type by complete
2371         one; work on ODR variants instead of main variants; reorder item
2372         in array so bases have still smaller indexes.
2373         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
2374         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
2375
2376 2014-07-01  Cary Coutant  <ccoutant@google.com>
2377
2378         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
2379         lookup.
2380         (resolve_addr_in_expr): When replacing the rtx in a location list
2381         entry, get a new address table entry.
2382         (dwarf2out_finish): Call index_location_lists even if there are no
2383         addr_index_table entries yet.
2384
2385 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
2386
2387         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
2388         change for not being obvious.
2389
2390 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
2391
2392         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
2393         unused argument.
2394
2395 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2396
2397         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
2398         (vcagt_f64): Likewise.
2399         (vcale_f64): Likewise.
2400         (vcaled_f64): Likewise.
2401         (vcales_f32): Likewise.
2402         (vcalt_f64): Likewise.
2403         (vcaltd_f64): Likewise.
2404         (vcalts_f32): Likewise.
2405
2406 2014-07-01  Marek Polacek  <polacek@redhat.com>
2407
2408         * doc/invoke.texi: Document -Wint-conversion.
2409
2410 2014-07-01  Marek Polacek  <polacek@redhat.com>
2411
2412         PR c/58286
2413         * doc/invoke.texi: Document -Wincompatible-pointer-types.
2414
2415 2014-07-01  Martin Liska  <mliska@suse.cz>
2416
2417         IPA REF alias refactoring
2418         * cgraph.h (iterate_direct_aliases): New function.
2419         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
2420         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
2421         FOR_EACH_ALIAS added.
2422         (cgraph_for_node_and_aliases): Likewise.
2423         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
2424         * ipa-inline.c (reset_edge_caches): Likewise.
2425         (update_caller_keys): Likewise.
2426         * trans-mem.c (ipa_tm_execute): Likewise.
2427         *varpool.c (varpool_analyze_node): Likewise.
2428         (varpool_for_node_and_aliases): Likewise.
2429         * ipa-ref.h (first_alias): New function.
2430         (last_alias): Likewise.
2431         (has_aliases_p): Likewise.
2432         * ipa-ref.c (ipa_ref::remove_reference): Removal function
2433         is sensitive to IPA_REF_ALIASes.
2434         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
2435         are put at the beginning of the list.
2436         (symtab_node::iterate_direct_aliases): New function.
2437
2438 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2439
2440         Revert:
2441         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
2442         type is complete.
2443         (write_ts_type_common_tree_pointers): Do not stream fields not set
2444         for incomplete types; do not stream duplicated fields for variants;
2445         sanity check that variant and type match.
2446         (write_ts_type_non_common_tree_pointers): Likewise.
2447         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
2448         TYPE_SIZE whether type is complete.
2449         (lto_input_ts_type_common_tree_pointers): Do same changes as in
2450         write_ts_type_common_tree_pointers
2451         (lto_input_ts_type_non_common_tree_pointers): Likewise.
2452
2453 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
2454
2455         * var-tracking.c (add_stores): Return instead of asserting if old
2456         and new values for conditional store are the same.
2457
2458 2014-06-30  Richard Henderson  <rth@redhat.com>
2459
2460         PR rtl-opt/61608
2461         PR target/39284
2462         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
2463         the cfg if there were any changes.
2464         * passes.def: Revert move of peephole2 after reorder_blocks;
2465         move duplicate_computed_gotos before peephole2.
2466
2467 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
2468
2469         * except.c (emit_note_eh_region_end): New helper function.
2470         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
2471         emit EH_REGION_END note.
2472         * jump.c (cleanup_barriers): Do not split a call and its
2473         corresponding CALL_ARG_LOCATION note.
2474
2475 2014-06-30  Jeff Law  <law@redhat.com>
2476
2477         PR tree-optimization/61607
2478         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
2479         deeper into the SSA_NAME_VALUE chain.
2480
2481 2014-06-30  Marek Polacek  <polacek@redhat.com>
2482
2483         * convert.c (convert_to_integer): Don't instrument conversions if the
2484         function has no_sanitize_undefined attribute.
2485         * ubsan.c: Don't run the ubsan pass if the function has
2486         no_sanitize_undefined attribute.
2487
2488 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
2489
2490         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
2491         -fsanitize=undefined suboptions.
2492
2493 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
2494
2495         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
2496         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
2497         against bigendian and adjust indices.
2498
2499 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
2500
2501         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
2502
2503 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2504
2505         PR target/61633
2506         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
2507         Add alternative; make early clobber.  Adjust both split patterns
2508         to use operand 0 as the working register.
2509
2510 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
2511
2512         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
2513         as ira_object_id_map might be NULL, or 1.
2514
2515 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2516
2517         * loop-invariant.c (get_inv_cost): Handle register class.
2518         (gain_for_invariant): Check the register pressure of the inv
2519         and its overlapped register class, other than all.
2520
2521 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
2522
2523         * doc/invoke.texi (Optimize Options): Fix descriptions of
2524         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
2525
2526 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
2527
2528         * doc/extend.texi (Function Attributes): Update 'naked' attribute
2529         documentation.
2530
2531 2014-06-29  Tobias Grosser <tobias@grosser.es>
2532
2533         PR bootstrap/61650
2534         * graphite-isl-ast-to-gimple.c: Add missing guards.
2535
2536 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
2537
2538         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
2539         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
2540         * flag-types.h: Add new enum fgraphite_generator.
2541         * graphite-isl-ast-to-gimple.c: New.
2542         * graphite-isl-ast-to-gimple.h: New.
2543         * graphite.c (graphite_transform_loops): Add choice of Graphite
2544         code generator, which depends on flag_graphite_code_gen.
2545
2546 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
2547
2548         * graphite-dependences.c (subtract_commutative_associative_deps):
2549         Add NULL checking of the following variables: must_raw_no_source,
2550         may_raw_no_source, must_war_no_source, may_war_no_source,
2551         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
2552         must_war, may_war, must_waw, may_waw.
2553
2554 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
2555
2556         * graphite-clast-to-gimple.c: gloog is renamed to
2557         graphite_regenerate_ast_cloog.  gloog_error is renamed to
2558         graphite_regenerate_error.
2559         * graphite-clast-to-gimple.h: The definition of the struct
2560         bb_pbb_def is moved to graphite-htab.h.
2561         Add inclusion of the hash-table.h.
2562         * graphite-htab.h: The declaration of the function gloog is moved
2563         to graphite-clast-to-gimple.h and renamed to
2564         graphite_regenerate_ast_cloog.
2565         * graphite.c (graphite_transform_loops): gloog is renamed
2566         to graphite_regenerate_ast_cloog.
2567
2568 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2569
2570         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
2571         type is complete.
2572         (write_ts_type_common_tree_pointers): Do not stream fields not set
2573         for incomplete types; do not stream duplicated fields for variants;
2574         sanity check that variant and type match.
2575         (write_ts_type_non_common_tree_pointers): Likewise.
2576         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
2577         TYPE_SIZE whether type is complete.
2578         (lto_input_ts_type_common_tree_pointers): Do same changes as in
2579         write_ts_type_common_tree_pointers
2580         (lto_input_ts_type_non_common_tree_pointers): Likewise.
2581
2582 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2583
2584         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
2585
2586 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2587
2588         * tree-inline.c (remap_type_1): Do not duplicate fields
2589         that are shared in between type and its main variant.
2590
2591 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2592
2593         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
2594         of the type.
2595         (ipa_set_ancestor_jf) Likewise.
2596         (check_stmt_for_type_change): Check that we work on main variant.
2597         (detect_type_change): Look into main variant.
2598         (compute_known_type_jump_func): Check that main variant has BINFO.
2599
2600 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2601
2602         * ipa-devirt.c (set_type_binfo): New function.
2603         (add_type_duplicate): Use it.
2604         (get_odr_type): Sanity check that binfos points to main variants.
2605         (get_class_context): Be sure the context's outer_type is main variant.
2606         (contains_type_p): Walk main variant.
2607         (get_polymorphic_call_info_for_decl): Set outer_type to be
2608         main variant.
2609         (get_polymorphic_call_info): Likewise.
2610         (possible_polymorphic_call_targets): Sanity check that we operate
2611         on main variant.
2612
2613 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
2614
2615         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
2616
2617 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2618
2619         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
2620         accidental change due to wide-int branch merge.
2621
2622 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2623
2624         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
2625         compressed debug support.
2626         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
2627         * configure: Regenerate.
2628         * config.in: Regenerate.
2629         * common.opt (compressed_debug_sections): New enum.
2630         (gz, gz=): New options.
2631         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
2632         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
2633         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
2634         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
2635         LINK_COMPRESS_DEBUG_SPEC.
2636         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
2637         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
2638         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
2639         (Debugging Options): Document -gz[=type].
2640
2641 2014-06-27  Martin Jambor  <mjambor@suse.cz>
2642
2643         PR ipa/61160
2644         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
2645         args_to_skip, use those from node instead.  Copy args_to_skip and
2646         combined_args_to_skip from node to the new thunk.
2647         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
2648         (cgraph_create_virtual_clone): Moved computation of
2649         combined_args_to_skip...
2650         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
2651
2652 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
2653
2654         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
2655         redundant diagnostic machinary.
2656
2657 2014-06-27  Richard Biener  <rguenther@suse.de>
2658
2659         * tree-ssa-math-opts.c (bswap_replace): Fix
2660         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
2661
2662 2014-06-27  Martin Liska  <mliska@suse.cz>
2663
2664         * gimple.h (gimple_location_safe): New function introduced.
2665         * cgraphunit.c (walk_polymorphic_call_targets): Usage
2666         of gimple_location_safe replaces gimple_location.
2667         (gimple_fold_call): Likewise.
2668         * ipa-devirt.c (ipa_devirt): Likewise.
2669         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2670         * ipa.c (walk_polymorphic_call_targets): Likewise.
2671         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
2672
2673 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
2674
2675         PR tree-optimization/57233
2676         PR tree-optimization/61299
2677         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
2678         functions.
2679         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
2680         would be lowered to scalar shifts, check if corresponding
2681         shifts and vector BIT_IOR_EXPR are supported and don't lower
2682         or lower just to narrower vector type in that case.
2683         * expmed.c (expand_shift_1): Fix up handling of vector
2684         shifts and rotates.
2685
2686 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
2687
2688         PR target/61586
2689         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
2690
2691 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
2692
2693         * doc/invoke.texi (-fsemantic-interposition): Document.
2694         * common.opt (fsemantic-interposition): New flag.
2695         * varasm.c (decl_replaceable_p): Use it.
2696
2697 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2698
2699         PR target/61542
2700         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
2701         extraction other than index 3.
2702
2703 2014-06-26  Teresa Johnson  <tejohnson@google.com>
2704
2705         * doc/invoke.texi: Fix typo.
2706         * dumpfile.c: Add support for documented -fdump-* options
2707         optimized/missed/note/optall.
2708
2709 2014-06-26  Martin Jambor  <mjambor@suse.cz>
2710
2711         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
2712         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
2713         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
2714         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
2715         * opts.c (default_options_optimization): Set
2716         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
2717         * doc/invoke.texi (allow-load-data-races)
2718         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
2719         (allow-store-data-races): Document the new default.
2720
2721 2014-06-26  Martin Jambor  <mjambor@suse.cz>
2722
2723         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
2724         renamed to ipa_impossible_devirt_target.  Fix typo.
2725         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
2726         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
2727         ipa_impossible_devirt_target.
2728
2729 2014-06-26  Richard Biener  <rguenther@suse.de>
2730
2731         PR tree-optimization/61607
2732         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
2733         explaining why we restrict copies on loop depth.
2734         * tree-ssa-dom.c (cprop_operand): Remove restriction on
2735         on loop depth.
2736         (record_equivalences_from_phis): Instead add it here.
2737
2738 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
2739
2740         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
2741         (LTO_WRAPPER_OBJS): New variable.
2742         (lto-wrapper$(exeext)): Use it.
2743         * collect2.c: Include "collect-utils.h".
2744         (verbose, debug): Remove variables.
2745         (at_file_supplied): No longer static.
2746         (tool_name): New variable.
2747         (do_wait, fork_execute, maybe_unlink): Don't declare.
2748         (tool_cleanup): No longer static.
2749         (notice): Remove function.
2750         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
2751         fork_execute calls.
2752         (collect_wait, do_wait, collect_execute): Remove functions.
2753         (maybe_unlink): No longer static.
2754         * collect2.h (verbose, debug): Don't declare.
2755         (at_file_supplied): Declare.
2756         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
2757         changed.
2758         (collect_execute): Replace with implementation from collect2, plus a
2759         new arg use_atfile.  All callers changed.
2760         (collect_wait): Replace with implementation from collect2.
2761         (maybe_unlink_file): Remove function.
2762         (fork_execute): Replace with implementation from collect2, plus a
2763         new arg use_atfile.  All callers changed.
2764         (do_wait): Add call to utils_cleanup to the error path.
2765         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
2766         (tool_cleanup): Adjust declarations.
2767         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
2768         * tlink.c: Include "collect-utils.h".
2769         (tlink_execute): New arg use_atfile.  All callers changed.
2770         (tlink_init, tlink_execute): Remove declarations.
2771
2772         * collect-utils.c (save_temps): New variable.
2773         (do_wait): Use it instead of debug.  Use fatal_error.
2774         * collect-utils.h (save_temps): Declare.
2775         * collect2.c (verbose): Rename from vflag.  All uses changed.
2776         (tool_cleanup): New function, copied from collect_atexit.
2777         (collect_atexit, handler): Just call it.
2778         * collect2.h (verbose): Declaration renamed from vflag.
2779         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
2780         debug.
2781
2782         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
2783         (lto-wrapper$(exeext)): Link with collect-utils.o.
2784         * collect-utils.c: New file.
2785         * collect-utils.h: New file.
2786         * lto-wrapper.c: Include "collect-utils.h".
2787         (args_name): Delete variable.
2788         (tool_name): New variable.
2789         (tool_cleanup): New function.
2790         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
2791         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
2792         (fork_execute): Remove functions.
2793
2794 2014-06-26  Nick Clifton  <nickc@redhat.com>
2795
2796         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
2797
2798         * doc/extend.texi (Function Attributes): Fix typo in description
2799         of RX vector attribute.
2800
2801 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
2802
2803         * config.gcc (supported_defaults): Error when passing either
2804         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
2805
2806 2014-06-26  Richard Biener  <rguenther@suse.de>
2807
2808         * tree-ssa-dom.c (cprop_operand): Remove restriction on
2809         propagating volatile pointers.
2810
2811 2014-06-26  Richard Biener  <rguenther@suse.de>
2812
2813         PR tree-optimization/61607
2814         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
2815         loop if we redirected its latch edge.
2816         (thread_block_1): Do not cancel loops prematurely.
2817
2818 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
2819
2820         * toplev.c (backend_init_target): Move init_emit_regs and
2821         init_regs to...
2822         (backend_init) ... here; skip ira_init_once and backend_init_target.
2823         (target_reinit) ... and here; clear
2824         this_target_rtl->lang_dependent_initialized.
2825         (lang_dependent_init_target): Clear
2826         this_target_rtl->lang_dependent_initialized;
2827         break out rtl initialization to ...
2828         (initialize_rtl): ... here; call also backend_init_target
2829         and ira_init_once.
2830         * toplev.h (initialize_rtl): New function.
2831         * function.c: Include toplev.h
2832         (init_function_start): Call initialize_rtl.
2833         * rtl.h (target_rtl): Add target_specific_initialized,
2834         lang_dependent_initialized.
2835
2836 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
2837             Jakub Jelinek  <jakub@redhat.com>
2838
2839         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
2840
2841 2014-06-25  Tom de Vries  <tom@codesourcery.com>
2842
2843         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
2844
2845 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2846
2847         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
2848         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
2849         Issue a strict overflow warning if appropriate.
2850
2851 2014-06-25  Martin Liska  <mliska@suse.cz>
2852
2853         IPA REF refactoring
2854         * Makefile.in: Removed header file (ipa-ref-inline.h).
2855         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
2856         called.
2857         (cgraph_speculative_call_info): Likewise.
2858         (cgraph_for_node_thunks_and_aliases): Likewise.
2859         (cgraph_for_node_and_aliases): Likewise.
2860         (verify_cgraph_node): Likewise.
2861         * cgraph.h: Batch of IPA REF functions become member functions of
2862         symtab_node: add_reference, maybe_add_reference, clone_references,
2863         clone_referring, clone_reference, find_reference,
2864         remove_stmt_references, remove_all_references,
2865         remove_all_referring, dump_references, dump_referring,
2866         has_alias_p, iterate_reference, iterate_referring.
2867         * cgraphbuild.c (record_reference): New IPA REF function used.
2868         (record_type_list): Likewise.
2869         (record_eh_tables): Likewise.
2870         (mark_address): Likewise.
2871         (mark_load): Likewise.
2872         (mark_store): Likewise.
2873         (pass_build_cgraph_edges): Likewise.
2874         (rebuild_cgraph_edge): Likewise.
2875         (cgraph_rebuild_references): Likewise.
2876         (pass_remove_cgraph_callee_edges): Likewise.
2877         * cgraphclones.c (cgraph_clone_node): Likewise.
2878         (cgraph_create_virtual_clone): Likewise.
2879         (cgraph_materialize_clone): Likewise.
2880         (cgraph_materialize_all_clones): Likewise.
2881         * cgraphunit.c (cgraph_reset_node): Likewise.
2882         (cgraph_reset_node): Likewise.
2883         (analyze_function): Likewise.
2884         (assemble_thunks_and_aliases): Likewise.
2885         (expand_function): Likewise.
2886         * ipa-comdats.c (propagate_comdat_group): Likewise.
2887         (enqueue_references): Likewise.
2888         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
2889         (create_specialized_node): Likewise.
2890         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
2891         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
2892         * ipa-inline.c (reset_edge_caches): Likewise.
2893         (update_caller_keys): Likewise.
2894         (execute): Likewise.
2895         * ipa-prop.c (remove_described_reference): Likewise.
2896         (propagate_controlled_uses): Likewise.
2897         (ipa_edge_duplication_hook): Likewise.
2898         (ipa_modify_call_arguments): Likewise.
2899         * ipa-pure-const.c (propagate_pure_const): Likewise.
2900         * ipa-ref-inline.h: Header file removed, functions moved
2901         to symtab_node class.
2902         * ipa-ref.c (remove_reference): New class member function.
2903         (cannot_lead_to_return): New class member function.
2904         (referring_ref_list): Likewise.
2905         (referred_ref_list): Likewise.
2906         Rest of functions moved to symtab_node class.
2907         * ipa-ref.h: New member functions remove_reference,
2908         cannot_lead_to_return, referring_ref_list, referred_ref_list added
2909         to ipa_ref class.
2910         ipa_ref_list class has new member functions: first_reference,
2911         first_referring, clear, nreferences.
2912         * ipa-reference.c (analyze_function): New IPA REF function used.
2913         (write_node_summary_p): Likewise.
2914         (ipa_reference_write_optimization_summary): Likewise.
2915         * ipa-split.c (split_function): Likewise.
2916         * ipa-utils.c (ipa_reverse_postorder): Likewise.
2917         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
2918         (function_and_variable_visibility): Likewise.
2919         * ipa.c (has_addr_references_p): Likewise.
2920         (process_references): Argument type changed.
2921         (symtab_remove_unreachable_nodes): New IPA REF function used.
2922         (process_references): Likewise.
2923         (set_writeonly_bit): Likewise.
2924         * lto-cgraph.c: Implementation of new symtab_node member functions
2925         that uses new IPA REF functions.
2926         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
2927         function used.
2928         * lto-streamer-out.c (output_symbol_p): Likewise.
2929         * lto-streamer.h (referenced_from_this_partition_p): Argument type
2930         changed.
2931         * symtab.c: Implementation of new IPA REF API.
2932         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
2933         (ipa_tm_create_version): Likewise.
2934         (ipa_tm_execute): Likewise.
2935         * tree-emutls.c (gen_emutls_addr): Likewise.
2936         * tree-inline.c (copy_bb): Likewise.
2937         (delete_unreachable_blocks_update_callgraph): Likewise.
2938         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
2939         (varpool_for_node_and_aliases): Likewise.
2940
2941 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
2942
2943         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
2944
2945 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
2946
2947         PR bootstrap/61598
2948         * fold-const.c (fold_checksum_tree): Use a hash_table of const
2949         tree_node * instead of tree_node *.
2950         (fold): Adjust.
2951         (print_fold_checksum): Likewise.
2952         (fold_check_failed): Likewise.
2953         (debug_fold_checksum): Likewise.
2954         (fold_build1_stat_loc): Likewise.
2955         (fold_build2_stat_loc): Likewise.
2956         (fold_build3_stat_loc): Likewise.
2957         (fold_build_call_array_loc): Likewise.
2958
2959 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
2960
2961         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
2962         implementation with call to...
2963         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
2964         function.
2965         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
2966         Declare.
2967
2968 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
2969
2970         PR tree-optimization/57742
2971         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
2972         after replacing the statement.
2973
2974 2014-06-25  Nick Clifton  <nickc@redhat.com>
2975
2976         * config/v850/v850.c (GHS_default_section_names): Change to const
2977         char * type.
2978         (GHS_current_section_names): Likewise.
2979         (v850_insert_attributes): Do not build strings, just assign the
2980         names directly.  Change the type of 'chosen_section' to const
2981         char*.
2982         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
2983         directly to the array entry.
2984         * config/v850/v850.h (GHS_default_section_names): Change to const
2985         char * type.
2986         (GHS_current_section_names): Likewise.
2987
2988 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
2989
2990         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
2991         (LANG_HOOKS_DECLS): Add it.
2992         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
2993         has correct type.
2994         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
2995         * langhooks.h (struct lang_hooks_for_decls): Add
2996         omp_clause_linear_ctor hook.
2997         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
2998         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
2999         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
3000         combined simd loop use omp_clause_linear_ctor hook.
3001
3002 2014-06-24  Cong Hou  <congh@google.com>
3003
3004         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
3005         pattern recognition.
3006         (type_conversion_p): PROMOTION is true if it's a type promotion
3007         conversion, and false otherwise.  Return true if the given expression
3008         is a type conversion one.
3009         * tree-vectorizer.h: Adjust the number of patterns.
3010         * tree.def: Add SAD_EXPR.
3011         * optabs.def: Add sad_optab.
3012         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
3013         * expr.c (expand_expr_real_2): Likewise.
3014         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3015         * gimple.c (get_gimple_rhs_num_ops): Likewise.
3016         * optabs.c (optab_for_tree_code): Likewise.
3017         * tree-cfg.c (estimate_operator_cost): Likewise.
3018         * tree-ssa-operands.c (get_expr_operands): Likewise.
3019         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
3020         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
3021         * doc/generic.texi: Add document for SAD_EXPR.
3022         * doc/md.texi: Add document for ssad and usad.
3023
3024 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
3025
3026         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
3027         qualification in cast.
3028
3029 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
3030
3031         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
3032         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
3033         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
3034         (tree_function_decl): ... here.
3035         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
3036         streaming of vindex to ...
3037         (write_ts_function_decl_tree_pointers): ... here.
3038         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
3039         Do not stream DECL_VINDEX.
3040         (lto_input_ts_function_decl_tree_pointers): Stream it here.
3041
3042 2014-06-24  Catherine Moore  <clm@codesourcery.com>
3043             Sandra Loosemore  <sandra@codesourcery.com>
3044
3045         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
3046         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
3047         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
3048
3049 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
3050
3051         * doc/invoke.texi (Warning Options): Remove duplicated
3052         -Wmaybe-uninitialized.
3053
3054 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
3055
3056         PR tree-optimization/57742
3057         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
3058         (handle_builtin_malloc, handle_builtin_memset): New functions.
3059         (strlen_optimize_stmt): Call them.
3060         * passes.def: Move strlen after loop+dom but before vrp.
3061
3062 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
3063
3064         PR target/61570
3065         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
3066         model family 6 CPU with has_longmode never use a CPU without
3067         64-bit support.
3068
3069 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
3070
3071         PR target/61570
3072         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
3073         the last change.
3074
3075 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
3076
3077         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
3078         * dominance.c (iterate_fix_dominators): Use hash_map instead of
3079         pointer_map.
3080         * hash-map.h: New file.
3081         * ipa-comdats.c: Use hash_map instead of pointer_map.
3082         * ipa.c: Likewise.
3083         * lto-section-out.c: Adjust.
3084         * lto-streamer.h: Replace pointer_map with hash_map.
3085         * symtab.c (verify_symtab): Likewise.
3086         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
3087         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
3088         * tree-streamer.h: Likewise.
3089         * tree-streamer.c: Adjust.
3090         * pointer-set.h: Remove pointer_map.
3091
3092 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
3093
3094         * hash-table.h: Add a template arg to choose between storing values
3095         and storing pointers to values, and then provide partial
3096         specializations for both.
3097         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
3098         should store, not the type values should point to.
3099         * tree-into-ssa.c (var_info_hasher): Likewise.
3100         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
3101         * tree-complex.c: Adjust.
3102         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
3103         table instead of int_tree_map *.
3104         * tree-parloops.c: Adjust.
3105         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
3106         type is being stored.
3107         * tree-vectorizer.c: Adjust.
3108
3109 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
3110
3111         * hash-table.h: Remove a layer of indirection from hash_table so that
3112         it contains the hash table's data instead of a pointer to the data.
3113         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
3114         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
3115         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
3116         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
3117         fold-const.c, gcse.c, ggc-common.c,
3118         gimple-ssa-strength-reduction.c, gimplify.c,
3119         graphite-clast-to-gimple.c, graphite-dependences.c,
3120         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
3121         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
3122         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
3123         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
3124         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
3125         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
3126         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
3127         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
3128         tree-ssa-live.c, tree-ssa-loop-im.c,
3129         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3130         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
3131         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
3132         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
3133         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
3134         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
3135         vtable-verify.c, vtable-verify.h: Adjust.
3136
3137 2014-06-24  Richard Biener  <rguenther@suse.de>
3138
3139         PR tree-optimization/61572
3140         * tree-ssa-sink.c (statement_sink_location): Do not sink
3141         loads from hard registers.
3142
3143 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
3144
3145         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
3146         not mentioned in clauses use private clause if the iterator is
3147         declared in #pragma omp for simd, and when adding lastprivate
3148         instead, add it to the outer #pragma omp for too.  Diagnose
3149         if the variable is private in outer context.  For simd collapse > 1
3150         loops, replace all iterators with temporaries.
3151         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
3152         same even in collapse > 1 loops.
3153
3154         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
3155         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
3156         non-NULL.
3157         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
3158         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
3159         non-NULL.
3160         (gimplify_adjust_omp_clauses): Likewise.
3161         * omp-low.c (lower_rec_simd_input_clauses,
3162         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
3163         safelen the same as safelen(1).
3164         * tree-nested.c (convert_nonlocal_omp_clauses,
3165         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
3166         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
3167         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
3168         Fixup handling of GIMPLE_OMP_TARGET.
3169         (convert_tramp_reference_stmt, convert_gimple_call): Handle
3170         GIMPLE_OMP_TARGET.
3171
3172 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
3173
3174         PR tree-optimization/61554
3175         * tree-ssa-propagate.c: Include "bitmap.h".
3176         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
3177         properly update constructor/destructor.
3178         (substitute_and_fold_dom_walker::before_dom_children):
3179         Remove call to gimple_purge_dead_eh_edges, add bb->index to
3180         need_eh_cleaup instead.
3181         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
3182         need_eh_cleanup.
3183
3184 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
3185
3186         * varpool.c (dump_varpool_node): Dump used_by_single_function.
3187         * tree-pass.h (make_pass_ipa_single_use): New pass.
3188         * cgraph.h (used_by_single_function): New flag.
3189         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
3190         Stream it.
3191         * passes.def (pass_ipa_single_use): Scedule.
3192         * ipa.c (BOTTOM): New macro.
3193         (meet): New function
3194         (propagate_single_user): New function.
3195         (ipa_single_use): New function.
3196         (pass_data_ipa_single_use): New pass.
3197         (pass_ipa_single_use): New pass.
3198         (pass_ipa_single_use::gate): New gate.
3199         (make_pass_ipa_single_use): New function.
3200
3201 2014-06-23  Kai Tietz  <ktietz@redhat.com>
3202
3203         PR target/39284
3204         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
3205         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
3206
3207 2014-06-23  Richard Biener  <rguenther@suse.de>
3208
3209         * tree-ssa-loop.c (gate_loop): New function.
3210         (pass_tree_loop::gate): Call it.
3211         (pass_data_tree_no_loop, pass_tree_no_loop,
3212         make_pass_tree_no_loop): New.
3213         * tree-vectorizer.c: Include tree-scalar-evolution.c
3214         (pass_slp_vectorize::execute): Initialize loops and SCEV if
3215         required.
3216         (pass_slp_vectorize::clone): New method.
3217         * timevar.def (TV_TREE_NOLOOP): New.
3218         * tree-pass.h (make_pass_tree_no_loop): Declare.
3219         * passes.def (pass_tree_no_loop): New pass group with
3220         SLP vectorizer.
3221
3222 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
3223
3224         PR target/61570
3225         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
3226         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
3227
3228 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
3229
3230         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
3231         "yes" where needed.
3232
3233 2014-06-23  Alan Modra  <amodra@gmail.com>
3234
3235         PR bootstrap/61583
3236         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
3237         to zero on debug statements.
3238
3239 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
3240
3241         PR target/60825
3242         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
3243         Ignore third operand if present by marking qualifier_internal.
3244
3245         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
3246
3247         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
3248         vector extension.
3249         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
3250         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
3251         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
3252         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
3253         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
3254         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
3255         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
3256         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
3257         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
3258         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
3259         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
3260         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
3261         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
3262         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
3263         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
3264         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
3265         logic in GCC vector extensions
3266
3267         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
3268         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
3269         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
3270         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
3271         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
3272         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
3273         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
3274         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
3275         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
3276         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
3277
3278         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
3279
3280         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
3281         extensions.
3282
3283         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
3284         (vget_low_s64): Use __GET_LOW macro.
3285         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
3286         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
3287         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
3288         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
3289         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
3290
3291         (vcombine_s64): Use GCC vector extensions; remove cast.
3292         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
3293         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
3294         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
3295         Fix type signature; remove cast.
3296
3297 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
3298
3299         PR target/60825
3300         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
3301         V1DFmode.
3302         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
3303         add V1DFmode
3304         (BUILTIN_VD1): New.
3305         (BUILTIN_VD_RE): Remove.
3306         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
3307         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
3308         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
3309         variant but not df.
3310         (vreinterpretv1df*, vreinterpret*v1df): New.
3311         (vreinterpretdf*, vreinterpret*df): Remove.
3312         * config/aarch64/aarch64-simd.md (aarch64_create,
3313         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
3314         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
3315         (VD1): New.
3316         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
3317         (vcreate_f64): Remove cast, use v1df builtin.
3318         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
3319         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
3320         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
3321         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
3322         vmov_n_f64, vst1_f64): Use gcc vector extensions.
3323         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
3324         add range check using __builtin_aarch64_im_lane_boundsi.
3325         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
3326         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
3327         type signature, use gcc vector extensions.
3328         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
3329         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
3330         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
3331         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
3332         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
3333         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
3334         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
3335         vreinterpret_u64_f64): Use v1df builtin not df.
3336
3337 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
3338
3339         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
3340         vector registers.
3341
3342 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
3343
3344         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
3345         priority directly.
3346
3347 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3348
3349         * loop-invariant.c (pre_check_invariant_p): New function.
3350         (find_invariant_insn): Call pre_check_invariant_p.
3351
3352 2014-06-22  Richard Henderson  <rth@redhat.com>
3353
3354         PR target/61565
3355         * compare-elim.c (struct comparison): Add eh_note.
3356         (find_comparison_dom_walker::before_dom_children): Don't eliminate
3357         a redundant comparison in a different EH region.  Purge EH edges if
3358         necessary.
3359
3360 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3361
3362         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
3363         (var_shift): Use it.
3364         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
3365         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
3366         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
3367         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
3368         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
3369         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
3370         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
3371         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
3372         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
3373         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
3374         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
3375         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
3376         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
3377         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
3378         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
3379         *rotldi3_internal15be): Use the new attribute.  Merge register and
3380         integer alternatives.
3381
3382 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3383
3384         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
3385         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
3386         split, *ashrdi3_internal3 and split): Delete, merge into...
3387         (ashr<mode>3): New expander.
3388         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
3389         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
3390
3391 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3392
3393         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
3394         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
3395         *rotldi3_internal3 and split): Delete, merge into...
3396         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
3397         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
3398         Use "rotlw" extended mnemonic.
3399
3400 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3401
3402         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
3403         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
3404         and split, *ashldi3_internal3 and split): Delete, merge into...
3405         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
3406         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
3407
3408 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3409
3410         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
3411         (lshrsi3, two anonymous define_insns and define_splits,
3412         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
3413         *lshrdi3_internal3 and split): Delete, merge into...
3414         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
3415         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
3416
3417 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
3418
3419         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
3420         Remove "O" alternative.
3421
3422 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
3423
3424         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
3425         (mips_move_from_gpr_cost): Likewise.
3426         (mips_register_move_cost): Update accordingly.
3427         (mips_secondary_reload_class): Remove name of in_p.
3428
3429 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
3430
3431         PR target/61503
3432         * config/i386/i386.md (x86_64_shrd, x86_shrd,
3433         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
3434
3435 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3436
3437         * config/nios2/nios2.c: Include "builtins.h".
3438
3439 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
3440
3441         * cgraph.h (tls_model_names): New variable.
3442         * print-tree.c (print_node): Simplify.
3443         * varpool.c (tls_model_names): New variable.
3444         (dump_varpool_node): Output tls model.
3445
3446 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
3447
3448         * ipa-visibility.c (function_and_variable_visibility): Disable
3449         temporarily local aliases for some targets.
3450
3451 2014-06-20  Marek Polacek  <polacek@redhat.com>
3452
3453         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
3454         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
3455         into SANITIZE_UNDEFINED.
3456         * doc/invoke.texi: Describe -fsanitize=bounds.
3457         * gimplify.c (gimplify_call_expr): Add gimplification of internal
3458         functions created in the FEs.
3459         * internal-fn.c: Move "internal-fn.h" after "tree.h".
3460         (expand_UBSAN_BOUNDS): New function.
3461         * internal-fn.def (UBSAN_BOUNDS): New internal function.
3462         * internal-fn.h: Don't define internal functions here.
3463         * opts.c (common_handle_option): Add -fsanitize=bounds.
3464         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
3465         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
3466         * tree-core.h: Define internal functions here.
3467         (struct tree_base): Add ifn field.
3468         * tree-pretty-print.c: Include "internal-fn.h".
3469         (dump_generic_node): Handle functions without CALL_EXPR_FN.
3470         * tree.c (get_callee_fndecl): Likewise.
3471         (build_call_expr_internal_loc): New function.
3472         * tree.def (CALL_EXPR): Update description.
3473         * tree.h (CALL_EXPR_IFN): Define.
3474         (build_call_expr_internal_loc): Declare.
3475         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
3476         types.
3477         (ubsan_type_descriptor): Change bool parameter to enum
3478         ubsan_print_style.  Adjust the code.  Add handling of
3479         UBSAN_PRINT_ARRAY.
3480         (ubsan_expand_bounds_ifn): New function.
3481         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
3482         (ubsan_build_overflow_builtin): Likewise.
3483         (instrument_bool_enum_load): Likewise.
3484         (ubsan_instrument_float_cast): Likewise.
3485         * ubsan.h (enum ubsan_print_style): New enum.
3486         (ubsan_expand_bounds_ifn): Declare.
3487         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
3488
3489 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
3490
3491         * config/rs6000/rs6000.md: Append `DONE' to preparation
3492         statements of `bswap' pattern splitters.
3493
3494 2014-06-20  Tom de Vries  <tom@codesourcery.com>
3495
3496         * target.def (call_fusage_contains_non_callee_clobbers): Update
3497         definition.
3498         * doc/tm.texi: Regenerate.
3499
3500 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
3501             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3502
3503         PR sanitizer/61547
3504         * asan.c (instrument_strlen_call): Fixed instrumentation of
3505         trailing byte.
3506
3507 2014-06-20  Martin Jambor  <mjambor@suse.cz>
3508
3509         PR ipa/61540
3510         * ipa-prop.c (impossible_devirt_target): New function.
3511         (try_make_edge_direct_virtual_call): Use it, also instead of
3512         asserting.
3513
3514 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
3515             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3516
3517         PR sanitizer/61530
3518         * asan.c (build_check_stmt): Add condition.
3519
3520 2014-06-20  Martin Jambor  <mjambor@suse.cz>
3521
3522         PR ipa/61211
3523         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
3524         expanded clones.
3525
3526 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3527
3528         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
3529         Update comments.
3530         (VCONQ): Make comment more helpful.
3531         (VCON): Delete.
3532         * config/aarch64/aarch64-simd.md
3533         (aarch64_sqdmulh_lane<mode>):
3534         Use VCOND for operands 2.  Update lane checking and flipping logic.
3535         (aarch64_sqrdmulh_lane<mode>): Likewise.
3536         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
3537         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
3538         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
3539         attribute of operand 3 to VCOND.
3540         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
3541         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
3542         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
3543         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
3544         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
3545         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
3546         define_insn.
3547         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
3548         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
3549         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
3550         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
3551         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
3552         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
3553         operand to VCOND.  Update lane flipping and bounds checking logic.
3554         (aarch64_sqdmlal2_lane<mode>): Likewise.
3555         (aarch64_sqdmlsl_lane<mode>): Likewise.
3556         (aarch64_sqdmull_lane<mode>): Likewise.
3557         (aarch64_sqdmull2_lane<mode>): Likewise.
3558         (aarch64_sqdmlal_laneq<mode>):
3559         Replace VCON usage with VCONQ.
3560         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
3561         (aarch64_sqdmlal2_laneq<mode>): Emit
3562         aarch64_sqdmlal2_laneq<mode>_internal insn.
3563         Replace VCON with VCONQ.
3564         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
3565         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
3566         (aarch64_sqdmull_laneq<mode>): Emit
3567         aarch64_sqdmull_laneq<mode>_internal insn.
3568         Replace VCON with VCONQ.
3569         (aarch64_sqdmull2_laneq<mode>): Emit
3570         aarch64_sqdmull2_laneq<mode>_internal insn.
3571         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
3572         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
3573         of 3rd argument to int16x4_t.
3574         (vqdmlalh_lane_s16): Likewise.
3575         (vqdmlslh_lane_s16): Likewise.
3576         (vqdmull_high_lane_s16): Likewise.
3577         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
3578         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
3579         (vqdmlsl_lane_s16): Likewise.
3580         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
3581         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
3582         (vqdmlals_lane_s32): Likewise.
3583         (vqdmlsls_lane_s32): Likewise.
3584         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
3585         (vqdmulls_lane_s32): Likewise.
3586         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
3587         (vqdmlsl_lane_s32): Likewise.
3588         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
3589         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
3590         (vqrdmulhh_lane_s16): Likewise.
3591         (vqdmlsl_high_lane_s16): Likewise.
3592         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
3593         (vqdmlsl_high_lane_s32): Likewise.
3594         (vqrdmulhs_lane_s32): Likewise.
3595
3596 2014-06-20  Tom de Vries  <tom@codesourcery.com>
3597
3598         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
3599         get_call_reg_set_usage.
3600
3601 2014-06-20  Tom de Vries  <tom@codesourcery.com>
3602
3603         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
3604         it contains all call_used_regs.
3605
3606 2014-06-20  Tom de Vries  <tom@codesourcery.com>
3607
3608         * final.c (collect_fn_hard_reg_usage): Add and use variable
3609         function_used_regs.
3610
3611 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
3612
3613         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
3614         (set_init_priority, get_init_priority, set_fini_priority,
3615         get_fini_priority): New methods.
3616         * tree.c (init_priority_for_decl): Remove.
3617         (init_ttree): Do not initialize init priority.
3618         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
3619         (decl_priority_info): Remove.
3620         (decl_init_priority_insert): Rewrite.
3621         (decl_fini_priority_insert): Rewrite.
3622         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
3623         tree_priority_map_marked_p): Remove.
3624         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
3625         * lto-streamer-out.c (hash_tree): Do not hash priorities.
3626         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
3627         not output priorities.
3628         (pack_ts_function_decl_value_fields): Likewise.
3629         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
3630         not input priorities.
3631         (unpack_ts_function_decl_value_fields): Likewise.
3632         * symtab.c (symbol_priority_map): Declare.
3633         (init_priority_hash): Declare.
3634         (symtab_unregister_node): Unregister from priority hash, too.
3635         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
3636         New methods.
3637         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
3638         (symbol_priority_info): New function.
3639         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
3640         New methods.
3641         * tree-core.h (tree_priority_map): Remove.
3642
3643 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
3644
3645         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
3646         0xff to uint64_t before shifting it up.
3647
3648 2014-06-20  Julian Brown  <julian@codesourcery.com>
3649             Chung-Lin Tang  <cltang@codesourcery.com>
3650
3651         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
3652         TARGET_THUMB1_ONLY. Add comments.
3653
3654 2014-06-19  Tom de Vries  <tom@codesourcery.com>
3655
3656         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
3657         return type to void.
3658         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
3659
3660 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3661
3662         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
3663         as "move", from depends_on.
3664
3665 2014-06-19  Terry Guo  <terry.guo@arm.com>
3666
3667         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
3668         stage.
3669
3670 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
3671
3672         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
3673         Remove cr5.
3674         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
3675
3676 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3677
3678         PR target/61550
3679         * config/sh/sh.c (prepare_move_operands): Don't process TLS
3680         addresses here if reload in progress or completed.
3681
3682 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
3683
3684         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
3685         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
3686         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
3687         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
3688         (mips_register_priority): New function that implements the target
3689         hook TARGET_REGISTER_PRIORITY.
3690         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
3691         (mips_lra_p): Likewise for TARGET_LRA_P.
3692         (TARGET_REGISTER_PRIORITY): Define macro.
3693         (TARGET_SPILL_CLASS): Likewise.
3694         (TARGET_LRA_P): Likewise.
3695         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
3696         classes.
3697         (REG_CLASS_NAMES): Likewise.
3698         (REG_CLASS_CONTENTS): Likewise.
3699         (BASE_REG_CLASS): Use M16_SP_REGS.
3700         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
3701         New set attribute to enable alternatives depending on the register
3702         allocator used.
3703         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
3704         (*lea64): Disable pattern for MIPS16.
3705         * config/mips/mips.opt (mlra): New option.
3706
3707 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
3708
3709         * lra-constraints.c (base_to_reg): New function.
3710         (process_address): Use new function.
3711
3712 2014-06-18  Tom de Vries  <tom@codesourcery.com>
3713
3714         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
3715         * config/aarch64/aarch64.c
3716         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
3717         (aarch64_emit_call_insn): New function.
3718         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
3719         of emit_call_insn.
3720         * config/aarch64/aarch64.md (define_expand "call_internal")
3721         (define_expand "call_value_internal", define_expand "sibcall_internal")
3722         (define_expand "sibcall_value_internal"): New.
3723         (define_expand "call", define_expand "call_value")
3724         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
3725         expand variant and aarch64_emit_call_insn.
3726
3727 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
3728             Tom de Vries  <tom@codesourcery.com>
3729
3730         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
3731         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
3732         Redefine to true.
3733         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
3734         clobbers to CALL_INSN_FUNCTION_USAGE.
3735         (define_expand "sibcall_internal")
3736         (define_expand "sibcall_value_internal"): New.
3737         (define_expand "call", define_expand "call_value"): Add argument to
3738         arm_emit_call_insn.
3739         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
3740         (define_expand "sibcall_value"): Use sibcall_value_internal and
3741         arm_emit_call_insn.
3742
3743 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3744
3745         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
3746
3747 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3748
3749         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
3750         __udivmoddi4.
3751
3752 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3753
3754         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
3755         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
3756         annotations. Fix DWARF information.
3757
3758 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3759
3760         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
3761         __udivmoddi4, and fixups for negative operands.
3762
3763 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3764
3765         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
3766
3767 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3768
3769         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
3770         to __udivmoddi4.
3771
3772 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3773
3774         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
3775         manipulation.
3776
3777 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3778
3779         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
3780         describing register usage on function entry and exit.
3781
3782 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3783
3784         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
3785         (__aeabi_ldivmod): Fix whitespace.
3786
3787 2014-06-18  Andreas Schwab  <schwab@suse.de>
3788
3789         * doc/md.texi (Standard Names): Use @itemx for grouped items.
3790         Remove blank line after @item.
3791
3792 2014-06-18  Richard Henderson  <rth@redhat.com>
3793
3794         PR target/61545
3795         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
3796
3797 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
3798
3799         * config/arm/arm.c (neon_vector_mem_operand): Allow register
3800         POST_MODIFY for neon loads and stores.
3801         (arm_print_operand): Output post-index register for neon loads and
3802         stores.
3803
3804 2014-06-18  Richard Biener  <rguenther@suse.de>
3805
3806         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
3807
3808 2014-06-18  Richard Biener  <rguenther@suse.de>
3809
3810         * tree-pass.h (make_pass_dce_loop): Remove.
3811         * passes.def: Replace pass_dce_loop with pass_dce.
3812         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
3813         changed free niter estimates and reset the scev cache.
3814         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
3815         make_pass_dce_loop): Remove.
3816         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
3817         (fini_copy_prop): Return whether something changed.  Always
3818         let substitute_and_fold perform DCE and free niter estimates
3819         and reset the scev cache if so.
3820         (execute_copy_prop): If sth changed schedule cleanup-cfg.
3821         (pass_data_copy_prop): Do not unconditionally schedule
3822         cleanup-cfg or update-ssa.
3823
3824 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
3825
3826         PR tree-optimization/61518
3827         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
3828         reduction var is used in reduction stmt or phi-function only.
3829
3830 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3831
3832         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
3833
3834 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3835
3836         PR tree-optimization/61517
3837         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
3838         whose rhs's first tree is the source expression instead of the
3839         expression itself.
3840         (find_bswap_or_nop): Likewise.
3841         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
3842         gimple stmt whose rhs's first tree is the source. In the memory source
3843         case, move the stmt to be replaced close to one of the original load to
3844         avoid the problem of a store between the load and the stmt's original
3845         location.
3846         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
3847         signature.
3848
3849 2014-06-18  Andreas Schwab  <schwab@suse.de>
3850
3851         PR rtl-optimization/54555
3852         * postreload.c (move2add_use_add2_insn): Substitute
3853         STRICT_LOW_PART only if it is cheaper.
3854
3855 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
3856
3857         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
3858         Do not use unspec as call operand.  Use memory_operand instead of
3859         memory_nox32_operand and add "m" operand constraint.  Disable
3860         pattern for TARGET_X32.
3861         (*sibcall_pop_memory): Ditto.
3862         (*sibcall_value_memory): Ditto.
3863         (*sibcall_value_pop_memory): Ditto.
3864         (sibcall peepholes): Merge SImode and DImode patterns using
3865         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
3866         Disable pattern for TARGET_X32.  Check if eliminated register is
3867         really dead after call insn.  Generate call RTX without unspec operand.
3868         (sibcall_value peepholes): Ditto.
3869         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
3870         instead of memory_nox32_operand.  Check if eliminated register is
3871         really dead after call insn. Generate call RTX without unspec operand.
3872         (sibcall_value_pop peepholes): Ditto.
3873         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
3874
3875 2014-06-18  Terry Guo  <terry.guo@arm.com>
3876
3877         PR target/61544
3878         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
3879         reach the head.
3880
3881 2014-06-18  Olivier Hainque  <hainque@adacore.com>
3882
3883         * tree-core.h (tree_block): Add an "end_locus" field, allowing
3884         memorization of the end of block source location.
3885         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
3886         * gimplify.c (gimplify_bind_expr): Propagate the block start and
3887         end source location info we have on the block entry/exit code we
3888         generate.
3889
3890 2014-06-18  Richard Biener  <rguenther@suse.de>
3891
3892         * common.opt (fssa-phiopt): New option.
3893         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
3894         but not with -Og.
3895         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
3896         * doc/invoke.texi (-fssa-phiopt): Document.
3897
3898 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3899
3900         * genattrtab.c (n_bypassed): New variable.
3901         (process_bypasses): Initialise n_bypassed.
3902         Count number of bypassed reservations.
3903         (make_automaton_attrs): Allocate space for bypassed reservations
3904         rather than number of bypasses.
3905
3906 2014-06-18  Richard Biener  <rguenther@suse.de>
3907
3908         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
3909         we propagated anything.
3910         (substitute_and_fold_dom_walker::before_dom_children): Something
3911         changed if we propagated into PHI arguments.
3912         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
3913         we removed a stmt.
3914
3915 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
3916
3917         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
3918         vector case.
3919         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
3920         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
3921         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
3922         Introduces alternative way of loads group permutaions.
3923         (vect_transform_grouped_load): Try alternative way of permutations.
3924
3925 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
3926
3927         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
3928         changed in ORT_TARGET region, don't jump to do_outer.
3929         (struct gimplify_adjust_omp_clauses_data): New type.
3930         (gimplify_adjust_omp_clauses_1): Adjust for data being
3931         a struct gimplify_adjust_omp_clauses_data pointer instead
3932         of tree *.  Pass pre_p as a new argument to
3933         lang_hooks.decls.omp_finish_clause hook.
3934         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
3935         splay_tree_foreach to pass both list_p and pre_p.
3936         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
3937         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
3938         gimplify_adjust_omp_clauses callers.
3939         * langhooks.c (lhd_omp_finish_clause): New function.
3940         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
3941         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
3942         * langhooks.h (struct lang_hooks_for_decls): Add a new
3943         gimple_seq * argument to omp_finish_clause hook.
3944         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
3945         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
3946         (scan_omp_parallel, lower_omp_for): When adding
3947         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
3948         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
3949         * tree-nested.c (convert_nonlocal_omp_clauses,
3950         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
3951         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
3952
3953 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
3954
3955         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
3956         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
3957
3958 2014-06-17  Xinliang David Li  <davidxl@google.com>
3959
3960         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
3961         * passes.c (pass_init_dump_file): Do not set initialize
3962         flag to false unconditionally.
3963
3964 2014-06-17  Richard Biener  <rguenther@suse.de>
3965
3966         * genopinit.c (main): Use vec<>::qsort method.
3967         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
3968         Likewise.
3969         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
3970
3971 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
3972
3973         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
3974         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
3975         (mips_move_to_gpr_cost): Remove ST_REGS case.
3976         (mips_move_from_gpr_cost): Likewise.
3977         (mips_register_move_cost): Likewise.
3978         (mips_secondary_reload_class): Likewise.
3979
3980 2014-06-17  Richard Biener  <rguenther@suse.de>
3981
3982         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
3983         (pass_all_optimizations): Move 3rd copy-prop pass from after
3984         fre to before ifcombine/phiopt.
3985
3986 2014-06-17  Richard Biener  <rguenther@suse.de>
3987
3988         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
3989         and allow all blocks to be forwarders.
3990
3991 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
3992
3993         PR target/61483
3994         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
3995         variable 'size'; calculate 'size' right in the front; use
3996         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
3997         pcum->aapcs_stack_words.
3998
3999 2014-06-17  Nick Clifton  <nickc@redhat.com>
4000
4001         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
4002         (umulhi3, mulsidi3, umulsidi3): Likewise.
4003
4004 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
4005
4006         PR middle-end/61508
4007         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
4008         check for section name.
4009
4010 2014-06-17  Richard Biener  <rguenther@suse.de>
4011
4012         * tree-ssa-propagate.c: Include domwalk.h.
4013         (substitute_and_fold): Outline main worker into a domwalker ...
4014         (substitute_and_fold_dom_walker::before_dom_children): ... here.
4015         Schedule stmts we can fully propagate for removal.  Remove
4016         poor-mans DCE.
4017         (substitute_and_fold): Apply a dominator walk to perform
4018         substitution.  Process stmts scheduled for removal here.
4019
4020 2014-06-17  Richard Biener  <rguenther@suse.de>
4021
4022         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
4023         of PHI node moving.
4024
4025 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4026
4027         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
4028         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
4029         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
4030         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
4031         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
4032         TARGET_HARD_FLOAT.
4033         (get_fpscr) : Likewise.
4034
4035 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
4036
4037         PR rtl-optimization/61325
4038         * lra-constraints.c (valid_address_p): Add forward declaration.
4039         (simplify_operand_subreg): Check address validity before and after
4040         alter_reg of memory subreg.
4041
4042 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
4043
4044         * config/i386/i386.c (decide_alg): Correctly handle
4045         maximum size of stringop algorithm.
4046
4047 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
4048
4049         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
4050
4051 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
4052
4053         PR rtl-optimization/61522
4054         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
4055
4056 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
4057
4058         Revert:
4059         * symtab.c (symtab_node::reset_section): New method.
4060         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
4061         for localization.
4062         * cgraph.h (reset_section): Declare.
4063         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
4064         do not consider comdat locals.
4065         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
4066         for new symbol.
4067         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
4068         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
4069         reset sections of symbols dragged out of the comdats.
4070         (function_and_variable_visibility): Reset sections of
4071         localized symbols.
4072
4073 2014-06-16  Richard Biener  <rguenther@suse.de>
4074
4075         PR tree-optimization/61482
4076         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
4077         [-INF(OVF), +INF(OVF)] range.
4078
4079 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4080
4081         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
4082         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
4083         handling 32-bit multiplication.
4084
4085 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
4086
4087         PR middle-end/61430
4088         * lra-lives.c (process_bb_lives): Skip creating copy during
4089         insn scan when src/dest has constrained to same regno.
4090
4091 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
4092
4093         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
4094         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
4095
4096 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
4097
4098         * asan.c (check_func): New function.
4099         (maybe_create_ssa_name): Likewise.
4100         (build_check_stmt_with_calls): Likewise.
4101         (use_calls_p): Likewise.
4102         (report_error_func): Change interface.
4103         (build_check_stmt): Allow non-integer lengths; add support
4104         for new parameter.
4105         (asan_instrument): Likewise.
4106         (instrument_mem_region_access): Moved code to build_check_stmt.
4107         (instrument_derefs): Likewise.
4108         (instrument_strlen_call): Likewise.
4109         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
4110         * doc/invoke.texi: Describe new parameter.
4111         * params.def: Define new parameter.
4112         * params.h: Likewise.
4113         * sanitizer.def: Describe new builtins.
4114
4115 2014-06-16  Richard Biener  <rguenther@suse.de>
4116
4117         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4118         Make all defs available at the end.
4119         (eliminate): If we remove a PHI node schedule cfg-cleanup.
4120
4121 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
4122
4123         PR plugins/45078
4124         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
4125
4126 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
4127
4128         PR bootstrap/61516
4129         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
4130         initialization.  Replace remaining use of uid.
4131
4132 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
4133
4134         * c-family/c-common.c (handle_tls_model_attribute): Use
4135         set_decl_tls_model.
4136         * c-family/c-common.c (handle_tls_model_attribute): Use
4137         set_decl_tls_model.
4138         * cgraph.h (struct varpool_node): Add tls_model.
4139         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
4140         * tree.h (DECL_TLS_MODEL): Update.
4141         (DECL_THREAD_LOCAL_P): Check that variable is static.
4142         (decl_tls_model): Declare.
4143         (set_decl_tls_model): Declare.
4144         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
4145         set symbol prorperties.
4146         (get_emutls_init_templ_addr): Cleanup.
4147         (new_emutls_decl): Update.
4148         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
4149         (lto_input_varpool_node): Likewise.
4150         * lto-streamer-out.c (hash_tree): Likewise.
4151         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
4152         not stream DECL_TLS_MODEL.
4153         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
4154         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
4155
4156 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4157
4158         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
4159
4160 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4161
4162         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
4163         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
4164         lists.
4165         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
4166         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
4167         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
4168         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
4169         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
4170         (df_get_artificial_defs, df_get_artificial_uses)
4171         (df_single_def, df_single_use): Update accordingly.
4172         (df_refs_chain_dump): Take the first element in a linked list as
4173         parameter, rather than a pointer to an array of pointers.
4174         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
4175         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
4176         (df_chain_create_bb_process_use): Likewise.
4177         (df_md_bb_local_compute_process_def): Likewise.
4178         * fwprop.c (process_defs, process_uses): Likewise.
4179         (register_active_defs, update_uses): Likewise.
4180         (forward_propagate_asm): Update for new df_ref linking.
4181         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
4182         (df_null_ref_rec, df_null_mw_rec): Likewise.
4183         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
4184         explicitly.
4185         (df_scan_free_bb_info): Remove check for null artificial_defs.
4186         (df_install_ref_incremental): Adjust for new df_ref linking.
4187         Use a single-element insertion rather than a full sort.
4188         (df_ref_chain_delete_du_chain): Take the first element
4189         in a linked list as parameter, rather than a pointer to an array of
4190         pointers.
4191         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
4192         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
4193         (df_insn_info_delete): Remove check for null defs and call to
4194         df_scan_free_mws_vec.
4195         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
4196         null rather than df_null_*_rec.
4197         (df_insn_rescan_debug_internal): Likewise, and update null
4198         checks in the same way.  Remove check for null defs.
4199         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
4200         Move a single element rather doing a full sort.
4201         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
4202         linking.
4203         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
4204         Initialize df_ref and df_mw_hardreg lists to null rather than
4205         df_null_*_rec.
4206         (df_ref_compare): Take df_refs as parameter, transferring the
4207         old interface to...
4208         (df_ref_ptr_compare): ...this new function.
4209         (df_sort_and_compress_refs): Update accordingly.
4210         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
4211         old interface to...
4212         (df_mw_ptr_compare): ...this new function.
4213         (df_sort_and_compress_mws): Update accordingly.
4214         (df_install_refs, df_install_mws): Return a linked list rather than
4215         an array of pointers.
4216         (df_refs_add_to_chains): Assert that old lists are empty rather
4217         than freeing them.
4218         (df_insn_refs_verify): Don't handle null defs speciailly.
4219         * web.c (union_match_dups): Update for new df_ref linking.
4220
4221 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4222
4223         * df.h (df_ref_create, df_ref_remove): Delete.
4224         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
4225         (df_ref_remove): Likewise.
4226
4227 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4228
4229         * df.h (df_single_def, df_single_use): New functions.
4230         * ira.c (find_moveable_pseudos): Use them.
4231
4232 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4233
4234         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
4235         * df-problems.c (df_note_bb_compute): Use it.
4236         * regstat.c (regstat_bb_compute_ri): Likewise.
4237
4238 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4239
4240         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
4241         * cse.c (cse_extended_basic_block): Use them.
4242         * dce.c (mark_artificial_use): Likewise.
4243         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
4244         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
4245         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
4246         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
4247         (df_simulate_initialize_backwards): Likewise.
4248         (df_simulate_finalize_backwards): Likewise.
4249         (df_simulate_initialize_forwards): Likewise.
4250         (df_md_simulate_artificial_defs_at_top): Likewise.
4251         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
4252         * regrename.c (init_rename_info): Likewise.
4253         * regstat.c (regstat_bb_compute_ri): Likewise.
4254         (regstat_bb_compute_calls_crossed): Likewise.
4255
4256 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
4257
4258         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
4259         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
4260         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
4261         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
4262         * combine.c (create_log_links): Likewise.
4263         * compare-elim.c (find_flags_uses_in_insn): Likewise.
4264         (try_eliminate_compare): Likewise.
4265         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
4266         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
4267         (remove_reg_equal_equiv_notes_for_defs): Likewise.
4268         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
4269         (word_dce_process_block, dce_process_block): Likewise.
4270         * ddg.c (def_has_ccmode_p): Likewise.
4271         * df-core.c (df_bb_regno_first_def_find): Likewise.
4272         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
4273         * df-problems.c (df_rd_simulate_one_insn): Likewise.
4274         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
4275         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
4276         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
4277         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
4278         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
4279         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
4280         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
4281         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
4282         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
4283         * fwprop.c (local_ref_killed_between_p): Likewise.
4284         (all_uses_available_at, free_load_extend): Likewise.
4285         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
4286         * hw-doloop.c (scan_loop): Likewise.
4287         * ifcvt.c (dead_or_predicable): Likewise.
4288         * init-regs.c (initialize_uninitialized_regs): Likewise.
4289         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
4290         (process_bb_node_lives): Likewise.
4291         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
4292         (find_moveable_pseudos): Likewise.
4293         * loop-invariant.c (check_dependencies, record_uses): Likewise.
4294         * recog.c (peep2_find_free_register): Likewise.
4295         * ree.c (get_defs): Likewise.
4296         * regstat.c (regstat_bb_compute_ri): Likewise.
4297         (regstat_bb_compute_calls_crossed): Likewise.
4298         * sched-deps.c (find_inc, find_mem): Likewise.
4299         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
4300         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
4301         * shrink-wrap.c (requires_stack_frame_p): Likewise.
4302         (prepare_shrink_wrap): Likewise.
4303         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
4304         * web.c (union_defs, pass_web::execute): Likewise.
4305         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
4306         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
4307
4308 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
4309
4310         * lra-assign.c (assign_by_spills): Add code to assign vector regs
4311         to inheritance pseudos.
4312         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
4313
4314 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
4315
4316         PR target/61415
4317         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
4318         (BU_MISC_2): Rename to ...
4319         (BU_LDBL128_2): ... this.
4320         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
4321         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
4322         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
4323         RS6000_BTM_LDBL128.
4324         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
4325         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
4326         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
4327         (unpacktf_1): Likewise.
4328         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
4329         (__builtin_longdouble_dw1): Likewise.
4330         * doc/sourcebuild.texi (longdouble128): Document.
4331
4332 2014-06-13  Jeff Law  <law@redhat.com>
4333
4334         PR rtl-optimization/61094
4335         PR rtl-optimization/61446
4336         * ree.c (combine_reaching_defs): Get the mode for the copy from
4337         the extension insn rather than the defining insn.
4338
4339 2014-06-13  Dehao Chen  <dehao@google.com>
4340
4341         * dwarf2out.c (add_linkage_name): Emit more linkage name.
4342
4343 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
4344
4345         * doc/install.texi (--enable-linker-plugin-configure-flags)
4346         (--enable-linker-plugin-flags): Document new flags.
4347
4348 2014-06-13  Martin Jambor  <mjambor@suse.cz>
4349
4350         PR ipa/61186
4351         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
4352         cache_token if returning early.
4353
4354 2014-06-13  Nick Clifton  <nickc@redhat.com>
4355
4356         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
4357         requested alignment is active.
4358         (LABEL_ALIGN): Likewise.
4359         (LOOP_ALIGN): Likewise.
4360
4361 2014-06-13  Richard Biener  <rguenther@suse.de>
4362
4363         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4364         Rewrite to propagate the VN result into all uses where
4365         possible and to remove stmts becoming dead because of that.
4366         (eliminate): Generalize stmt removal handling, remove in
4367         reverse dominator order to support proper debug stmt
4368         generation.  Update stmts before removing stmts.
4369         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
4370
4371 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4372
4373         PR tree-optimization/61375
4374         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
4375         symbolic number cannot be represented in an uint64_t.
4376         (find_bswap_or_nop_1): Likewise.
4377
4378 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
4379
4380         * symtab.c (symtab_node::reset_section): New method.
4381         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
4382         for localization.
4383         * cgraph.h (reset_section): Declare.
4384         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
4385         do not consider comdat locals.
4386         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
4387         for new symbol.
4388         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
4389         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
4390         reset sections of symbols dragged out of the comdats.
4391         (function_and_variable_visibility): Reset sections of
4392         localized symbols.
4393
4394 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
4395
4396         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
4397         to use symtab and decl_binds_to_current_def_p
4398         * tree-vectorizer.c (increase_alignment): Increase alignment
4399         of alias target, too.
4400
4401 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
4402
4403         PR middle-end/61486
4404         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
4405         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
4406         if outer combined construct is distribute.
4407         (gimplify_omp_for): For OMP_DISTRIBUTE set
4408         gimplify_omp_ctxp->distribute.
4409         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
4410         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
4411         mapping into decl map.
4412
4413 2014-06-12  Jason Merrill  <jason@redhat.com>
4414
4415         * common.opt (fabi-version): Change default to 0.
4416
4417 2014-06-12  Jason Merrill  <jason@redhat.com>
4418
4419         * toplev.c (process_options): Reject -fabi-version=1.
4420
4421 2014-06-12  Jeff Law  <law@redhat.com>
4422
4423         PR tree-optimization/61009
4424         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
4425         value when we stop processing a block due to problematic PHIs.
4426
4427 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
4428
4429         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
4430         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
4431         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
4432         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
4433         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
4434         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
4435         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
4436         are not in the spec.
4437
4438 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
4439
4440         PR target/59843
4441         * config/aarch64/aarch64-modes.def: Add V1DFmode.
4442         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
4443         Support V1DFmode.
4444
4445 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4446
4447         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
4448
4449 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
4450
4451         PR target/61443
4452         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
4453         loading from address spaces.
4454
4455 2014-06-12  Martin Liska  <mliska@suse.cz>
4456
4457         PR ipa/61462
4458         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
4459         statement is reachable.
4460
4461 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
4462
4463         * symtab.c (section_hash): New hash.
4464         (symtab_unregister_node): Clear section before freeing.
4465         (hash_section_hash_entry): New haser.
4466         (eq_sections): New function.
4467         (symtab_node::set_section_for_node): New method.
4468         (set_section_1): Update.
4469         (symtab_node::set_section): Take string instead of tree as parameter.
4470         (symtab_resolve_alias): Update.
4471         * cgraph.h (section_hash_entry_d): New structure.
4472         (section_hash_entry): New typedef.
4473         (cgraph_node): Change comdat_group_ to x_comdat_group,
4474         change section_ to x_section and turn into section_hash_entry;
4475         update accestors; put set_section_for_node offline.
4476         * tree.c (decl_section_name): Turn into string.
4477         (set_decl_section_name): Change parameter to be string.
4478         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
4479         * sdbout.c (sdbout_one_type): Update.
4480         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
4481         * varasm.c (IN_NAMED_SECTION, get_named_section,
4482         resolve_unique_section, hot_function_section, get_named_text_section,
4483         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
4484         make_decl_rtl, default_unique_section): Update.
4485         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
4486         (c6x_elf_unique_section): Update.
4487         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
4488         * config/pa/pa.c (pa_function_section): Update.
4489         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
4490         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
4491         * config/arc/arc.c (arc_in_small_data_p): Update.
4492         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
4493         * config/mcore/mcore.c (mcore_unique_section): Update.
4494         * config/mips/mips.c (mips16_build_function_stub): Update.
4495         (mips16_build_call_stub): Update.
4496         (mips_function_rodata_section): Update.
4497         (mips_in_small_data_p): Update.
4498         * config/score/score.c (score_in_small_data_p): Update.
4499         * config/rx/rx.c (rx_in_small_data): Update.
4500         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
4501         (rs6000_xcoff_asm_named_section): Update.
4502         (rs6000_xcoff_unique_section): Update.
4503         * config/frv/frv.c (frv_string_begins_with): Update.
4504         (frv_in_small_data_p): Update.
4505         * config/v850/v850.c (v850_encode_data_area): Update.
4506         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
4507         (bfin_handle_l1_data_attribute): Update.
4508         (bfin_handle_l2_attribute): Update.
4509         * config/mep/mep.c (mep_unique_section): Update.
4510         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
4511         Update.
4512         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
4513         (h8300_handle_tiny_data_attribute): Update.
4514         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
4515         (m32r_in_small_data_p): Update.
4516         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
4517         * config/i386/i386.c (ix86_in_large_data_p): Update.
4518         * config/i386/winnt.c (i386_pe_unique_section): Update.
4519         * config/darwin.c (darwin_function_section): Update.
4520         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
4521         * tree-emutls.c (get_emutls_init_templ_addr): Update.
4522         (new_emutls_decl): Update.
4523         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
4524         input_varpool_node): Update.
4525         (ead_string_cst): Turn to ...
4526         (read_string): ... this one.
4527         * dwarf2out.c (secname_for_decl): Update.
4528         * asan.c (asan_protect_global): Update.
4529
4530 2014-06-11  DJ Delorie  <dj@redhat.com>
4531
4532         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
4533         cache lines.
4534         * config/rx/rx.c (rx_option_override): Likewise.
4535         (rx_align_for_label): Likewise.
4536
4537         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
4538
4539 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
4540
4541         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
4542         prototype.
4543
4544 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4545
4546         * common.md: New file.
4547         * doc/md.texi: Update description of generic, machine-independent
4548         constraints.
4549         * config/s390/constraints.md (e): Delete.
4550         * Makefile.in (md_file): Include common.md.
4551         * config/m32c/t-m32c (md_file): Likewise.
4552         * genpreds.c (general_mem): New array.
4553         (generic_constraint_letters): Remove constraints now defined by
4554         common.md.
4555         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
4556         Allow the first character to be '<' or '>' as well.
4557         * genoutput.c (general_mem): New array.
4558         (indep_constraints): Remove constraints now defined by common.md.
4559         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
4560         Remove special handling of 'm'.
4561         * ira-costs.c (record_reg_classes): Remove special handling of
4562         constraints now defined by common.md.
4563         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
4564         * ira-lives.c (single_reg_class): Likewise.
4565         (ira_implicitly_set_insn_hard_regs): Likewise.
4566         * lra-constraints.c (reg_class_from_constraints): Likewise.
4567         (process_alt_operands, process_address, curr_insn_transform): Likewise.
4568         * postreload.c (reload_cse_simplify_operands): Likewise.
4569         * reload.c (push_secondary_reload, scratch_reload_class)
4570         (find_reloads, alternative_allows_const_pool_ref): Likewise.
4571         * reload1.c (maybe_fix_stack_asms): Likewise.
4572         * targhooks.c (default_secondary_reload): Likewise.
4573         * stmt.c (parse_output_constraint): Likewise.
4574         * recog.c (preprocess_constraints): Likewise.
4575         (constrain_operands, peep2_find_free_register): Likewise.
4576         (asm_operand_ok): Likewise, but add a comment saying why 'o'
4577         must be handled specially.
4578
4579 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4580
4581         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
4582         * genpreds.c (have_const_dbl_constraints): Delete.
4583         (add_constraint): Don't set it.
4584         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
4585         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
4586         constraints using the lookup_constraint logic.
4587         * ira-lives.c (single_reg_class): Likewise.
4588         * ira.c (ira_setup_alts): Likewise.
4589         * lra-constraints.c (process_alt_operands): Likewise.
4590         * recog.c (asm_operand_ok, constrain_operands): Likewise.
4591         * reload.c (find_reloads): Likewise.
4592
4593 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4594
4595         * genpreds.c (const_int_start, const_int_end): New variables.
4596         (choose_enum_order): Output CONST_INT constraints before memory
4597         constraints.
4598         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
4599         Add CT_CONST_INT.
4600         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
4601         * ira.c (ira_setup_alts): Likewise.
4602         * lra-constraints.c (process_alt_operands): Likewise.
4603         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
4604         * reload.c (find_reloads): Likewise.
4605
4606 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4607
4608         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
4609         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
4610         * recog.c (preprocess_constraints): Update accordingly.
4611
4612 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4613
4614         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
4615         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
4616         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
4617         * genpreds.c (print_type_tree): New function.
4618         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
4619         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
4620         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
4621         Write out enum constraint_type and get_constraint_type.
4622         * lra-constraints.c (satisfies_memory_constraint_p): Take a
4623         constraint_num rather than a constraint string.
4624         (satisfies_address_constraint_p): Likewise.
4625         (reg_class_from_constraints): Avoid old constraint macros.
4626         (process_alt_operands, process_address_1): Likewise.
4627         (curr_insn_transform): Likewise.
4628         * ira-costs.c (record_reg_classes): Likewise.
4629         (record_operand_costs): Likewise.
4630         * ira-lives.c (single_reg_class): Likewise.
4631         (ira_implicitly_set_insn_hard_regs): Likewise.
4632         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
4633         * postreload.c (reload_cse_simplify_operands): Likewise.
4634         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
4635         (constrain_operands, peep2_find_free_register): Likewise.
4636         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
4637         (find_reloads, alternative_allows_const_pool_ref): Likewise.
4638         * reload1.c (maybe_fix_stack_asms): Likewise.
4639         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
4640         * targhooks.c (default_secondary_reload): Likewise.
4641         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
4642         to EXTRA_CONSTRAINT_STR.
4643         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
4644
4645 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4646
4647         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
4648         (write_constraint_satisfied_p_array): ...this new function.
4649         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
4650         an array.
4651         (write_insn_preds_c): Update accordingly.
4652
4653 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4654
4655         * genpreds.c (write_lookup_constraint): Rename to...
4656         (write_lookup_constraint_1): ...this.
4657         (write_lookup_constraint_array): New function.
4658         (write_tm_preds_h): Define lookup_constraint as an inline function
4659         that uses write_lookup_constraint_array where possible.
4660         (write_insn_preds_c): Update for the changes above.
4661
4662 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
4663
4664         * doc/md.texi (regclass_for_constraint): Rename to...
4665         (reg_class_for_constraint): ...this.
4666         * genpreds.c (num_constraints, enum_order, register_start)
4667         (register_end, satisfied_start, memory_start, memory_end)
4668         (address_start, address_end): New variables.
4669         (add_constraint): Count the number of constraints.
4670         (choose_enum_order): New function.
4671         (write_enum_constraint_num): Iterate over enum_order.
4672         (write_regclass_for_constraint): Rename to...
4673         (write_reg_class_for_constraint_1): ...this and update output
4674         accordingly.
4675         (write_constraint_satisfied_p): Rename to...
4676         (write_constraint_satisfied_p_1): ...this and update output
4677         accordingly.  Do nothing if all extra constraints are register
4678         constraints.
4679         (write_insn_extra_memory_constraint): Delete.
4680         (write_insn_extra_address_constraint): Delete.
4681         (write_range_function): New function.
4682         (write_tm_preds_h): Define constraint_satisfied_p and
4683         reg_class_for_constraint as inline functions that do a range check
4684         before calling the out-of-line function.  Use write_range_function
4685         to implement insn_extra_{register,memory,address}_constraint,
4686         the first of which is new.
4687         (write_insn_preds_c): Update after above changes to write_* functions.
4688         (main): Call choose_enum_order.
4689
4690 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4691
4692         PR tree-optimization/61306
4693         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
4694         expression instead of its size.
4695         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
4696         false to prevent optimization when the result is unpredictable due to
4697         arithmetic right shift of signed type with highest byte is set.
4698         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
4699         (init_symbolic_number): Likewise.
4700         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
4701         when the result is unpredictable due to sign extension.
4702
4703 2014-06-11  Terry Guo  <terry.guo@arm.com>
4704
4705         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
4706         (*thumb1_addsi3): Ditto.
4707         (*thumb_subdi3): Ditto.
4708         (thumb1_subsi3_insn): Ditto.
4709         (*thumb_mulsi3): Ditto.
4710         (*thumb_mulsi3_v6): Ditto.
4711         (*thumb1_andsi3_insn): Ditto.
4712         (thumb1_bicsi3): Ditto.
4713         (*thumb1_iorsi3_insn): Ditto.
4714         (*thumb1_xorsi3_insn): Ditto.
4715         (*thumb1_ashlsi3): Ditto.
4716         (*thumb1_ashrsi3): Ditto.
4717         (*thumb1_lshrsi3): Ditto.
4718         (*thumb1_rotrsi3): Ditto.
4719         (*thumb1_negdi2): Ditto.
4720         (*thumb1_negsi2): Ditto.
4721         (*thumb1_abssi2): Ditto.
4722         (*thumb1_neg_abssi2): Ditto.
4723         (*thumb1_one_cmplsi2): Ditto.
4724         (*thumb1_zero_extendhisi2): Ditto.
4725         (*thumb1_zero_extendqisi2): Ditto.
4726         (*thumb1_zero_extendqisi2_v6): Ditto.
4727         (thumb1_extendhisi2): Ditto.
4728         (thumb1_extendqisi2): Ditto.
4729         (*thumb1_movdi_insn): Ditto.
4730         (*thumb1_movsi_insn): Ditto.
4731         (*thumb1_movhi_insn): Ditto.
4732         (thumb_movhi_clobber): Ditto.
4733         (*thumb1_movqi_insn): Ditto.
4734         (*thumb1_movhf): Ditto.
4735         (*thumb1_movsf_insn): Ditto.
4736         (*thumb_movdf_insn): Ditto.
4737         (movmem12b): Ditto.
4738         (movmem8b): Ditto.
4739         (cbranchqi4): Ditto.
4740         (cbranchsi4_insn): Ditto.
4741         (cbranchsi4_scratch): Ditto.
4742         (*negated_cbranchsi4): Ditto.
4743         (*tbit_cbranch): Ditto.
4744         (*tlobits_cbranch): Ditto.
4745         (*tstsi3_cbranch): Ditto.
4746         (*cbranchne_decr1): Ditto.
4747         (*addsi3_cbranch): Ditto.
4748         (*addsi3_cbranch_scratch): Ditto.
4749         (*thumb_cmpdi_zero): Ditto.
4750         (cstoresi_eq0_thumb1): Ditto.
4751         (cstoresi_ne0_thumb1): Ditto.
4752         (*cstoresi_eq0_thumb1_insn): Ditto.
4753         (*cstoresi_ne0_thumb1_insn): Ditto.
4754         (cstoresi_nltu_thumb1): Ditto.
4755         (cstoresi_ltu_thumb1): Ditto.
4756         (thumb1_addsi3_addgeu): Ditto.
4757         (*thumb_jump): Ditto.
4758         (*call_reg_thumb1_v5): Ditto.
4759         (*call_reg_thumb1): Ditto.
4760         (*call_value_reg_thumb1_v5): Ditto.
4761         (*call_value_reg_thumb1): Ditto.
4762         (*call_insn): Ditto.
4763         (*call_value_insn): Ditto.
4764         (thumb1_casesi_internal_pic): Ditto.
4765         (thumb1_casesi_dispatch): Ditto.
4766         (*thumb1_indirect_jump): Ditto.
4767         (prologue_thumb1_interwork): Ditto.
4768         (*epilogue_insns): Ditto.
4769         (consttable_1): Ditto.
4770         (consttable_2): Ditto.
4771         (tablejump): Ditto.
4772         (*thumb1_tablejump): Ditto.
4773         (thumb_eh_return): Ditto.
4774         (define_peephole2): Two of them are thumb1 only and got moved into
4775         new file thumb1.md.
4776         (define_split): Six of them are thumb1 only and got moved into new
4777         file thumb1.md.
4778         * config/arm/thumb1.md: New file comprised of above thumb1 only
4779         patterns.
4780
4781 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4782
4783         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
4784         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
4785         dependencies.
4786         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
4787         (aarch64_crc_builtin_datum): New struct.
4788         (aarch64_crc_builtin_data): New.
4789         (aarch64_init_crc32_builtins): New function.
4790         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
4791         (aarch64_crc32_expand_builtin): New.
4792         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
4793         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
4794         __ARM_FEATURE_CRC32 when appropriate.
4795         (TARGET_CRC32): Define.
4796         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
4797         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
4798         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
4799         (aarch64_<crc_variant>): New pattern.
4800         * config/aarch64/arm_acle.h: New file.
4801         * config/aarch64/iterators.md (CRC): New int iterator.
4802         (crc_variant, crc_mode): New int attributes.
4803         * doc/aarch64-acle-intrinsics.texi: New file.
4804         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
4805         Include aarch64-acle-intrinsics.texi.
4806
4807 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
4808
4809         * tree-vect-data-refs.c (vect_grouped_store_supported): New
4810         check for stores group of length 3.
4811         (vect_permute_store_chain): New permutations for stores group of
4812         length 3.
4813         * tree-vect-stmts.c (vect_model_store_cost): Change cost
4814         of vec_perm_shuffle for the new permutations.
4815
4816 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
4817
4818         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
4819         table rewriting temporarily on targets not supporting ONE_ONLY.
4820
4821 2014-06-11  Richard Biener  <rguenther@suse.de>
4822
4823         PR middle-end/61437
4824         Revert
4825         2014-06-04  Richard Biener  <rguenther@suse.de>
4826
4827         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
4828         TREE_PUBLIC and DECL_EXTERNAL decls.
4829
4830 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
4831
4832         * varasm.c (set_implicit_section): New function.
4833         (resolve_unique_section): Use it to set implicit section
4834         for aliases, too.
4835         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
4836         (default_function_section): Likewise.
4837         (decl_binds_to_current_def_p): Constify argument.
4838         * varasm.h (decl_binds_to_current_def_p): Update prototype.
4839         * asan.c (asan_protect_global): Use
4840         symtab_get_node (decl)->implicit_section.
4841         * symtab.c (dump_symtab_base): Dump implicit sections.
4842         (verify_symtab_base): Verify sanity of sectoins and comdats.
4843         (symtab_resolve_alias): Alias share the section of its target.
4844         (set_section_1): New function.
4845         (symtab_node::set_section): Move here, recurse to aliases.
4846         (verify_symtab): Check for duplicated symtab lists.
4847         * tree-core.h (implicit_section_name_p): Remove.
4848         * tree-vect-data-refs.c: Include varasm.h.
4849         (vect_can_force_dr_alignment_p): Fix conditional on when
4850         decl bints to current definition; use
4851         symtab_get_node (decl)->implicit_section.
4852         * cgraph.c (cgraph_make_node_local_1): Fix section set.
4853         * cgraph.h (struct symtab_node): Add implicit_section.
4854         (set_section): Rename to ...
4855         (set_section_for_node): ... this one.
4856         (set_section): Declare.
4857         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
4858         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
4859         input_overwrite_node, input_varpool_node): Stream implicit_section.
4860         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
4861         removal; it will fail in LTO.
4862
4863 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4864
4865         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
4866         Change second alternative type to f_mcr.
4867         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
4868         and 12th alternatives' types to f_mcr and f_mrc.
4869         (*movdi_aarch64): Same for 12th and 13th alternatives.
4870         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
4871         (aarch64_movtilow_tilow): Change type to fmov.
4872
4873 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
4874
4875         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
4876         (aarch64_save_or_restore_callee_save_registers): Fix layout.
4877
4878 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4879
4880         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
4881         New expander.
4882         (aarch64_sqrdmulh_lane<mode>): Likewise.
4883         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4884         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
4885         (aarch64_sqdmulh_laneq<mode>): New expander.
4886         (aarch64_sqrdmulh_laneq<mode>): Likewise.
4887         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
4888         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
4889         (aarch64_sqdmulh_lane<mode>): New expander.
4890         (aarch64_sqrdmulh_lane<mode>): Likewise.
4891         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
4892         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
4893         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
4894         (aarch64_sqdmlal_laneq<mode>): Likewise.
4895         (aarch64_sqdmlsl_lane<mode>): Likewise.
4896         (aarch64_sqdmlsl_laneq<mode>): Likewise.
4897         (aarch64_sqdmlal2_lane<mode>): Likewise.
4898         (aarch64_sqdmlal2_laneq<mode>): Likewise.
4899         (aarch64_sqdmlsl2_lane<mode>): Likewise.
4900         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
4901         (aarch64_sqdmull_lane<mode>): Likewise.
4902         (aarch64_sqdmull_laneq<mode>): Likewise.
4903         (aarch64_sqdmull2_lane<mode>): Likewise.
4904         (aarch64_sqdmull2_laneq<mode>): Likewise.
4905
4906 2014-06-10  Richard Biener  <rguenther@suse.de>
4907
4908         PR tree-optimization/61438
4909         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
4910         (eliminate_dom_walker::before_dom_children): Only try to inhibit
4911         insertion of IVs if running PRE.
4912         (eliminate): Adjust.
4913         (pass_pre::execute): Likewise.
4914         (pass_fre::execute): Likewise.
4915
4916 2014-06-10  Richard Biener  <rguenther@suse.de>
4917
4918         PR middle-end/61456
4919         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
4920         Do not use the main variant for the type comparison.
4921         (ncr_compar): Likewise.
4922         (nonoverlapping_component_refs_p): Likewise.
4923
4924 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4925
4926         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
4927         REG_CFA_RESTORE mode.
4928
4929 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
4930
4931         * config/i386/i386.c (expand_vec_perm_pblendv): New.
4932         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
4933         expand_vec_perm_pblendv.
4934
4935 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4936
4937         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
4938         available.
4939         Simplify description of __crc32d and __crc32cd intrinsics.
4940         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
4941         availability.
4942
4943 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
4944
4945         PR lto/61334
4946         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
4947         * config.in: Regenerate.
4948         * configure: Likewise.
4949
4950 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
4951
4952         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
4953         and public vars.
4954         (intersect_static_var_sets): Remove.
4955         (propagate): Do not prune local statics.
4956
4957 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
4958
4959         PR fortran/60928
4960         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
4961         Set lastprivate_firstprivate even if omp_private_outer_ref
4962         langhook returns true.
4963         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
4964         langhook, call unshare_expr on new_var and call
4965         build_outer_var_ref to get the last argument.
4966
4967 2014-06-10  Marek Polacek  <polacek@redhat.com>
4968
4969         PR c/60988
4970         * doc/extend.texi: Add cindex for transparent_union.
4971
4972 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4973
4974         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
4975         init_symbolic_number ().
4976
4977 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
4978
4979         PR middle-end/61141
4980         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
4981         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
4982         (verify_rtl_sharing): Likewise.
4983
4984 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
4985
4986         PR c++/54442
4987         * tree.c (build_qualified_type): Use a canonical type for
4988         TYPE_CANONICAL.
4989
4990 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4991
4992         * config/arm/arm-modes.def: Remove XFmode.
4993
4994 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
4995
4996         PR target/61062
4997         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
4998         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
4999         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
5000         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
5001         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
5002         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
5003         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
5004         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
5005         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
5006
5007 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
5008
5009         * tree-core.h (tree_decl_with_vis): Remove section_name.
5010
5011 2014-06-09  Kito Cheng  <kito@0xlab.org>
5012
5013         * ira.c (ira): Don't call init_caller_save if LRA enabled
5014         since LRA use its own infrastructure to handle that.
5015
5016 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
5017
5018         * symtab.c (dump_symtab_base): Update dumping.
5019         (symtab_make_decl_local): Clear only DECL_COMDAT.
5020         * tree-vect-data-refs.c (Check that variable is static before
5021         tampering with sections.
5022         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
5023         (cgraph_create_virtual_clone): Likewise.
5024         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
5025         (decl_section_name, set_decl_section_name): New accessors.
5026         (find_decls_types_r): Do not walk section name
5027         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
5028         (decl_comdat_group, decl_comdat_group_id): Constify.
5029         (decl_section_name, set_decl_section_name): Update.
5030         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
5031         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
5032         (cgraph_make_node_local_1): Clear section and comdat group.
5033         * cgraph.h (set_comdat_group): Sanity check.
5034         (get_section, set_section): New.
5035         * ipa-comdats.c (ipa_comdats): Use get_section.
5036         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
5037         * lto-streamer-out.c: Do not follow section names.
5038         * c-family/c-common.c (handle_section_attribute): Update.
5039         * lto-cgraph.c (lto_output_node): Output section.
5040         (lto_output_varpool_node): Likewise.
5041         (read_comdat_group): Rename to ...
5042         (read_identifier): ... this one.
5043         (read_string_cst): New function.
5044         (input_node, input_varpool_node): Input section names.
5045         * tree-emutls.c (get_emutls_init_templ_addr): Update.
5046         (new_emutls_decl): Update.
5047         (secname_for_decl): Check section names only of static vars.
5048         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
5049         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
5050         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
5051         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
5052         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
5053         * config/mcore/mcore.c (mcore_unique_section): Likewise.
5054         * config/mips/mips.c (mips16_build_function_stub): Likewise.
5055         * config/v850/v850.c (v850_insert_attributes): Likewise.
5056         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
5057         Likewise.
5058         (h8300_handle_tiny_data_attribute): Likewise.
5059         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
5060         (bfin_handle_l2_attribute): Likewise.
5061
5062 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
5063
5064         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
5065         remove static initializer.
5066
5067 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
5068
5069         * varasm.c (use_blocks_for_decl_p): Check symbol table
5070         instead of alias attribute.
5071         (place_block_symbol): Recurse on aliases.
5072
5073 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
5074
5075         * ipa-visibility.c: Include varasm.h
5076         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
5077
5078 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
5079
5080         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
5081         outputting aliases.
5082
5083 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
5084
5085         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
5086         from test_insn into GGC space escape via SET_SRC.
5087
5088 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
5089
5090         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
5091         call statement, if any.
5092         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
5093         statements, if any.  Tidy up.
5094
5095 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5096
5097         PR target/61431
5098         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
5099         iterators, VSX_D that handles 64-bit types, and VSX_LE that
5100         handles swapping the two 64-bit double words on little endian
5101         systems.  Include V1TImode and optionally TImode in VSX_LE so that
5102         these types are properly swapped.  Change all of the insns and
5103         splits that do the 64-bit swaps to use VSX_LE.
5104         (vsx_le_perm_load_<mode>): Likewise.
5105         (vsx_le_perm_store_<mode>): Likewise.
5106         (splitters for little endian memory operations): Likewise.
5107         (vsx_xxpermdi2_le_<mode>): Likewise.
5108         (vsx_lxvd2x2_le_<mode>): Likewise.
5109         (vsx_stxvd2x2_le_<mode>): Likewise.
5110
5111 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
5112
5113         PR target/61423
5114         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
5115         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
5116         and corresponding splitters.  Zero extend general register
5117         or memory input operand to XMM temporary.  Enable for
5118         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
5119         (floatunssi<mode>2): Update expander predicate.
5120
5121 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
5122
5123         PR rtl-optimization/61325
5124         * lra-constraints.c (process_address_1): Check scale equal to one
5125         to prevent transformation: base + scale * index => base + new_reg.
5126
5127 2014-06-06  Richard Biener  <rguenther@suse.de>
5128
5129         PR tree-optimization/59299
5130         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
5131         a def operand.
5132         (nearest_common_dominator_of_uses): Likewise.
5133         (statement_sink_location): Adjust.  Support sinking loads.
5134
5135 2014-06-06  Martin Jambor  <mjambor@suse.cz>
5136
5137         * ipa-prop.c (get_place_in_agg_contents_list): New function.
5138         (build_agg_jump_func_from_list): Likewise.
5139         (determine_known_aggregate_parts): Renamed to
5140         determine_locally_known_aggregate_parts.  Moved some functionality
5141         to the two functions above, removed bound checks.
5142
5143 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
5144
5145         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
5146         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
5147         (aarch64_progress_pointer): Likewise.
5148         (aarch64_copy_one_part_and_move_pointers): Likewise.
5149         (aarch64_expand_movmen): Likewise.
5150         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
5151         * config/aarch64/aarch64.md (movmem<mode>): New.
5152
5153 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
5154
5155         * targhooks.c (default_add_stmt_cost): Call target specific
5156         hook instead of default one.
5157
5158 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5159
5160         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
5161         endianness instead of host endianness.
5162         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
5163         comments.
5164
5165 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5166
5167         PR debug/53927
5168         * function.c (instantiate_decls): Process the saved static chain.
5169         (expand_function_start): If not optimizing, save the static chain
5170         onto the stack.
5171         * tree-nested.c (convert_all_function_calls): Always create the static
5172         chain for nested functions if not optimizing.
5173
5174 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5175
5176         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
5177
5178 2014-06-06  Richard Biener  <rguenther@suse.de>
5179
5180         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
5181         (construct_init_block): Likewise.
5182         (construct_exit_block): Likewise.
5183         (pass_expand::execute): Likewise.
5184         * graphite.c (graphite_transforms): Replace check for current_loops
5185         with a check for > 1 loops.
5186         (pass_graphite_transforms::execute): Adjust.
5187         * ipa-split.c (split_function): Remove check for current_loops.
5188         * omp-low.c (expand_parallel_call): Likewise.
5189         (expand_omp_for_init_counts): Likewise.
5190         (extract_omp_for_update_vars): Likewise.
5191         (expand_omp_for_generic): Likewise.
5192         (expand_omp_sections): Likewise.
5193         (expand_omp_target): Likewise.
5194         * tracer.c (tail_duplicate): Likewise.
5195         (pass_tracer::execute): Likewise.
5196         * trans-mem.c (expand_transaction): Likewise.
5197         * tree-complex.c (expand_complex_div_wide): Likewise.
5198         * tree-eh.c (lower_resx): Likewise.
5199         (cleanup_empty_eh_merge_phis): Likewise.
5200         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
5201         current_loops with a check for > 1 loops.
5202         (pass_predcom::execute): Adjust.
5203         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
5204         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
5205         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
5206         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
5207         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
5208         * tree-switch-conversion.c (process_switch): Likewise.
5209         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
5210         * tree-vrp.c (vrp_visit_phi_node): Likewise.
5211         (execute_vrp): Likewise.
5212         * ubsan.c (ubsan_expand_null_ifn): Likewise.
5213
5214 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5215
5216         * rtl.h (insn_location): Declare.
5217         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
5218         with UNKNOWN_LOCATION.
5219         * emit-rtl.c (insn_location): New function.
5220         * final.c (notice_source_line): Check that the instruction has a
5221         location before retrieving it and use insn_location.
5222         * modulo-sched.c (loop_single_full_bb_p): Likewise.
5223         * print-rtl.c (print_rtx): Likewise.
5224
5225 2014-06-06  Richard Biener  <rguenther@suse.de>
5226
5227         * passes.def: Move 2nd VRP pass before phi-only-cprop.
5228
5229 2014-06-06  Christian Bruel  <christian.bruel@st.com>
5230
5231         PR tree-optimization/43934
5232         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
5233         cost.
5234
5235 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
5236
5237         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
5238         return NO_REGS for extra address and memory constraints.  Handle
5239         operands that match (or are equivalent to something that matches)
5240         extra constant constraints.  Ignore other non-register operands.
5241
5242 2014-06-06  Alan Modra  <amodra@gmail.com>
5243
5244         PR target/61300
5245         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
5246         * doc/tm.texi: Regenerate.
5247         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
5248         Use throughout in place of REG_PARM_STACK_SPACE.
5249         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
5250         "incoming" param.  Pass to rs6000_function_parms_need_stack.
5251         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
5252         prototype_p when incoming.  Use function decl when incoming
5253         to handle K&R style functions.
5254         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
5255         (INCOMING_REG_PARM_STACK_SPACE): Define.
5256
5257 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5258
5259         PR target/52472
5260         * cfgexpand.c (expand_debug_expr): Use address space of nested
5261         TREE_TYPE for ADDR_EXPR and MEM_REF.
5262
5263 2014-06-05  Jeff Law  <law@redhat.com>
5264
5265         PR tree-optimization/61289
5266         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
5267         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
5268         looking for those which match LHS.  All callers changed.
5269         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
5270         parameters and code which manipulated them.  All callers changed.
5271         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
5272         and DST_MAP parameters.  Simplify invalidation code by just calling
5273         invalidate_equivalences.  All callers changed.
5274         (thread_across_edge): Simplify now that we don't need to maintain
5275         the map of equivalences to invalidate.
5276
5277 2014-06-05  Kai Tietz  <ktietz@redhat.com>
5278             Richard Henderson  <rth@redhat.com>
5279
5280         PR target/46219
5281         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
5282         checking for !TARGET_X32.
5283         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
5284         (sibcall_intern): New define_insn, plus required peepholes.
5285         (sibcall_pop_intern): Likewise.
5286         (sibcall_value_intern): Likewise.
5287         (sibcall_value_pop_intern): Likewise.
5288
5289 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
5290
5291         * tree-inline.c (tree_function_versioning): Check DF info existence
5292         before accessing it.
5293
5294 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5295
5296         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
5297         frame_size.
5298         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
5299         aarch64_frame hard_fp_offset and frame_size.
5300         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
5301         frame_size; remove original_frame_size.
5302         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
5303         (aarch64_initial_elimination_offset): Remove frame_size and
5304         offset.  Use aarch64_frame frame_size.
5305
5306 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5307             Jiong Wang  <jiong.wang@arm.com>
5308             Renlin  <renlin.li@arm.com>
5309
5310         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
5311         initialization of R30 offset.  Update offset.  Iterate core
5312         regisers upto X30.  Remove X29, X30 specific code.
5313
5314 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5315             Jiong Wang  <jiong.wang@arm.com>
5316
5317         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
5318         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
5319         (aarch64_register_saved_on_entry): Adjust test.
5320
5321 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5322
5323         * config/aarch64/aarch64.h (machine_function): Move
5324         saved_varargs_size from here...
5325         (aarch64_frame): ... to here.
5326
5327         * config/aarch64/aarch64.c (aarch64_expand_prologue)
5328         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
5329         (aarch64_initial_elimination_offset)
5330         (aarch64_setup_incoming_varargs): Adjust location of
5331         saved_varargs_size.
5332
5333 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5334
5335         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
5336         layout comment.
5337
5338 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
5339             Prachi Godbole  <Prachi.Godbole@imgtec.com>
5340
5341         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
5342         mips32r5 entry to use PROCESSOR_P5600.
5343         * config/mips/mips-tables.opt: Regenerate.
5344         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
5345         * config/mips/mips.c (mips_fmadd_bypass): New function.
5346         (mips_rtx_cost_data): Add costs for p5600.
5347         (mips_issue_rate): Add support for p5600.
5348         (mips_multipass_dfa_lookahead): Likewise.
5349         * config/mips/mips.h (TUNE_P5600): New define.
5350         (TUNE_MACC_CHAINS): Add TUNE_P5600.
5351         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
5352         * config/mips/mips.md: Include p5600.md.
5353         (processor): Add p5600.
5354         * config/mips/p5600.md: New file.
5355
5356 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
5357
5358         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
5359         * config/i386/predicates.md (palignr_operand): New.
5360         Indicates if permutation is suitable for palignr instruction.
5361
5362 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
5363
5364         PR tree-optimization/61319
5365         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
5366         stmt belongs to loop.
5367
5368 2014-06-05  Richard Biener  <rguenther@suse.de>
5369
5370         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
5371         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
5372         (lookup_tmp_var): Adjust.
5373         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
5374
5375 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5376
5377         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
5378
5379 2014-06-05  Marek Polacek  <polacek@redhat.com>
5380
5381         PR c/49706
5382         * doc/invoke.texi: Document -Wlogical-not-parentheses.
5383
5384 2014-06-04  Tom de Vries  <tom@codesourcery.com>
5385
5386         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
5387         CONST_INT.
5388
5389 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
5390
5391         PR tree-optimization/61385
5392         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
5393
5394 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
5395
5396         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
5397         changed to use fatal_error.
5398         (main): Ensure lto_wrapper_cleanup is run atexit.
5399
5400 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5401
5402         * lra-constraints.c (valid_address_p): Move earlier in file.
5403         (address_eliminator): New structure.
5404         (satisfies_memory_constraint_p): New function.
5405         (satisfies_address_constraint_p): Likewise.
5406         (process_alt_operands, process_address, curr_insn_transform): Use them.
5407
5408 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5409
5410         * lra-int.h (lra_static_insn_data): Make operand_alternative a
5411         const pointer.
5412         (target_lra_int, default_target_lra_int, this_target_lra_int)
5413         (op_alt_data): Delete.
5414         * lra.h (lra_init): Delete.
5415         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
5416         (init_insn_code_data_once): Remove op_alt_data handling.
5417         (finish_insn_code_data_once): Likewise.
5418         (init_op_alt_data): Delete.
5419         (get_static_insn_data): Initialize operand_alternative to null.
5420         (free_insn_recog_data): Cast operand_alternative before freeing it.
5421         (setup_operand_alternative): Take the operand_alternative as
5422         parameter and assume it isn't already cached in the static
5423         insn data.
5424         (lra_set_insn_recog_data): Update accordingly.
5425         (lra_init): Delete.
5426         * ira.c (ira_init): Don't call lra_init.
5427         * target-globals.h (this_target_lra_int): Declare.
5428         (target_globals): Remove lra_int.
5429         (restore_target_globals): Update accordingly.
5430         * target-globals.c: Don't include lra-int.h.
5431         (default_target_globals, save_target_globals): Remove lra_int.
5432
5433 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5434
5435         * recog.h (operand_alternative): Convert reg_class, reject,
5436         matched and matches into bitfields.
5437         (preprocess_constraints): New overload.
5438         (preprocess_insn_constraints): New function.
5439         (preprocess_constraints): Take the insn as parameter.
5440         (recog_op_alt): Change into a pointer.
5441         (target_recog): Add x_op_alt.
5442         * recog.c (asm_op_alt): New variable.
5443         (recog_op_alt): Change into a pointer.
5444         (preprocess_constraints): New overload, replacing the old function
5445         definition with one that doesn't use global state.
5446         (preprocess_insn_constraints): New function.
5447         (preprocess_constraints): Use them.  Take the insn as parameter.
5448         Use asm_op_alt for asms.
5449         (recog_init): Free existing x_op_alt entries.
5450         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
5451         pointer const.
5452         (make_early_clobber_and_input_conflicts): Likewise.
5453         (process_bb_node_lives): Pass the insn to process_constraints.
5454         * reg-stack.c (check_asm_stack_operands): Likewise.
5455         (subst_asm_stack_regs): Likewise.
5456         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
5457         * regrename.c (build_def_use): Likewise.
5458         * sched-deps.c (sched_analyze_insn): Likewise.
5459         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
5460         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
5461         (note_invalid_constants): Likewise.
5462         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5463         (ix86_legitimate_combined_insn): Make operand_alternative pointer
5464         const.
5465
5466 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5467
5468         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
5469         * ira-lives.c (check_and_make_def_conflict): Check for disabled
5470         alternatives.
5471         (make_early_clobber_and_input_conflicts): Likewise.
5472         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5473
5474 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5475
5476         * recog.h (alternative_class): New function.
5477         (which_op_alt): Return a const recog_op_alt.
5478         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
5479         (subst_asm_stack_regs): Likewise.
5480         * config/arm/arm.c (note_invalid_constants): Likewise.
5481         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
5482         the operand_alternative; use alternative class instead.
5483         * sel-sched.c (get_reg_class): Likewise.
5484         * regrename.c (build_def_use): Likewise.
5485         (hide_operands, restore_operands, record_out_operands): Update type
5486         accordingly.
5487
5488 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
5489
5490         * recog.h (recog_op_alt): Convert to a flat array.
5491         (which_op_alt): New function.
5492         * recog.c (recog_op_alt): Convert to a flat array.
5493         (preprocess_constraints): Update accordingly, grouping all
5494         operands of the same alternative together, rather than the
5495         other way around.
5496         * ira-lives.c (check_and_make_def_conflict): Likewise.
5497         (make_early_clobber_and_input_conflicts): Likewise.
5498         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
5499         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
5500         (subst_asm_stack_regs): Likewise.
5501         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
5502         * regrename.c (hide_operands, record_out_operands): Likewise.
5503         (build_def_use): Likewise.
5504         * sel-sched.c (get_reg_class): Likewise.
5505         * config/arm/arm.c (note_invalid_constants): Likewise.
5506
5507 2014-06-04  Jason Merrill  <jason@redhat.com>
5508
5509         PR c++/51253
5510         PR c++/61382
5511         * gimplify.c (gimplify_arg): Non-static.
5512         * gimplify.h: Declare it.
5513
5514 2014-06-04  Richard Biener  <rguenther@suse.de>
5515
5516         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
5517         TREE_PUBLIC and DECL_EXTERNAL decls.
5518
5519 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
5520
5521         * regcprop.c (copyprop_hardreg_forward_1): Account for
5522         HARD_REGNO_CALL_PART_CLOBBERED.
5523
5524 2014-06-04  Richard Biener  <rguenther@suse.de>
5525
5526         * configure.ac: Check whether the underlying type of int64_t
5527         is long or long long.
5528         * configure: Regenerate.
5529         * config.in: Likewise.
5530         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
5531         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
5532
5533 2014-06-04  Richard Biener  <rguenther@suse.de>
5534
5535         PR tree-optimization/60098
5536         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
5537         we hit a kill.
5538         (dse_optimize_stmt): Simplify, now that we found a kill
5539         earlier.
5540
5541 2014-06-04  Richard Biener  <rguenther@suse.de>
5542
5543         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
5544         of accesses with non-invariant address.
5545
5546 2014-06-04  Martin Liska  <mliska@suse.cz>
5547
5548         * cgraph.h (cgraph_make_wrapper): New function introduced.
5549         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
5550         * ipa-inline.h (inline_analyze_function): The function is global.
5551         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
5552
5553 2014-06-04  Martin Liska  <mliska@suse.cz>
5554
5555         * tree.h (private_lookup_attribute_starting): New function.
5556         (lookup_attribute_starting): Likewise.
5557         * tree.c (private_lookup_attribute_starting): Likewise.
5558
5559 2014-06-04  Martin Liska  <mliska@suse.cz>
5560
5561         * cgraph.h (expand_thunk): New argument added.
5562         (address_taken_from_non_vtable_p): New global function.
5563         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
5564         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
5565         * cgraphunit.c (analyze_function): Likewise.
5566         (assemble_thunks_and_aliases): Argument added to call.
5567         (expand_thunk): New argument forces to produce GIMPLE thunk.
5568
5569 2014-06-04  Martin Liska  <mliska@suse.cz>
5570
5571         * coverage.h (coverage_compute_cfg_checksum): Argument added.
5572         * coverage.c (coverage_compute_cfg_checksum): Likewise.
5573         * profile.c (branch_prob): Likewise.
5574
5575 2014-06-04  Martin Jambor  <mjambor@suse.cz>
5576
5577         PR ipa/61340
5578         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
5579         handler for switch on an ipa_ref_use enum.
5580         * ipa-reference.c (analyze_function): Likewise.
5581
5582 2014-06-04  Kai Tietz  <ktietz@redhat.com>
5583
5584         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
5585         from old call-instruction.
5586
5587 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
5588
5589         * config/aarch64/aarch64.c (aarch64_classify_address)
5590         (aarch64_legitimize_reload_address): Support full addressing modes
5591         for vector modes.
5592         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
5593         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
5594
5595 2014-06-03  Andrew Pinski  <apinski@cavium.com>
5596
5597         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
5598         for OP0.
5599
5600 2014-06-03  Andrew Pinski  <apinski@cavium.com>
5601
5602         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
5603         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
5604
5605 2014-06-03  Kai Tietz  <ktietz@redhat.com>
5606
5607         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
5608         for 64-bit ms-abi.
5609
5610 2014-06-03  Dehao Chen  <dehao@google.com>
5611
5612         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
5613         the same loop.
5614
5615 2014-06-03  Marek Polacek  <polacek@redhat.com>
5616
5617         PR c/60439
5618         * doc/invoke.texi: Document -Wswitch-bool.
5619         * function.c (stack_protect_epilogue): Cast controlling expression of
5620         the switch to int.
5621         * gengtype.c (walk_type): Generate switch expression with its
5622         controlling expression cast to int.
5623
5624 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
5625
5626         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
5627         and attiny841.
5628         * config/avr/avr-tables.opt: Regenerate.
5629         * config/avr/t-multilib: Regenerate.
5630         * doc/avr-mmcu.texi: Regenerate.
5631
5632 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
5633             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5634
5635         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
5636         (ata6617c, ata664251): Add new avr35 devices.
5637         (ata6612c): Add new avr4 device.
5638         (ata6613c, ata6614q): Add new avr5 devices.
5639         * config/avr/avr-tables.opt: Regenerate.
5640         * config/avr/t-multilib: Regenerate.
5641         * doc/avr-mmcu.texi: Regenerate.
5642
5643 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
5644
5645         * gcc/config/aarch64/aarch64-builtins.c
5646         (aarch64_types_binop_ssu_qualifiers): New static data.
5647         (TYPES_BINOP_SSU): Define.
5648         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
5649         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
5650         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
5651         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
5652         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
5653         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
5654         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
5655         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
5656         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
5657         suffix to builtin function name, remove cast.
5658         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
5659         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
5660         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
5661
5662 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
5663
5664         * gcc/config/aarch64/aarch64-builtins.c
5665         (aarch64_types_binop_uus_qualifiers,
5666         aarch64_types_shift_to_unsigned_qualifiers,
5667         aarch64_types_unsigned_shiftacc_qualifiers): Define.
5668         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
5669         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
5670         sqshlu_n, uqshl_n): Update qualifiers.
5671         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
5672         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
5673         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
5674         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
5675         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
5676         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
5677         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
5678         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
5679         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
5680         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
5681         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
5682         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
5683         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
5684         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
5685         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
5686         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
5687         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
5688         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
5689         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
5690         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
5691         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
5692         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
5693         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
5694         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
5695         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
5696         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
5697         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
5698
5699 2014-06-03  Teresa Johnson  <tejohnson@google.com>
5700
5701         * tree-sra.c (modify_function): Record caller nodes after rebuild.
5702
5703 2014-06-02  Jason Merrill  <jason@redhat.com>
5704
5705         PR c++/61020
5706         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
5707
5708 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
5709
5710         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
5711         location == 0.
5712
5713 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
5714
5715         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
5716         New pattern.
5717         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
5718         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
5719         * config/aarch64/iterators.md (REVERSE): New iterator.
5720         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
5721         (rev_op): New int_attribute.
5722         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
5723         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
5724         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
5725         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
5726         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
5727         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
5728         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
5729         Replace temporary __asm__ with __builtin_shuffle.
5730
5731 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
5732
5733         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
5734         mips64r5.
5735         * config/mips/mips-tables.opt: Regenerate.
5736         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
5737         to use mips_isa_rev rather than ISA_MIPS32R2.
5738         * config/mips/mips.h (ISA_MIPS32R3): New define.
5739         (ISA_MIPS32R5): New define.
5740         (ISA_MIPS64R3): New define.
5741         (ISA_MIPS64R5): New define.
5742         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
5743         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
5744         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
5745         and mips64r5.
5746         (MIPS_ISA_SYNCI_SPEC): Likewise.
5747         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
5748         (LINK_SPEC): Added mips32r3 and mips32r5.
5749         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
5750         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
5751         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
5752         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
5753         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
5754         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
5755         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
5756
5757 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
5758
5759         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
5760         options.
5761         * config/mips/mips.opt (mxpa): New option.
5762         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
5763         assembler.
5764
5765 2014-06-03  Martin Jambor  <mjambor@suse.cz>
5766
5767         PR ipa/61160
5768         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
5769         thunks.
5770
5771 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5772
5773         PR tree-optimization/61328
5774         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
5775         initialization from find_bswap_or_nop_1.
5776         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
5777         in source_expr2 before using the size value the function sets. Also
5778         make use of init_symbolic_number () in both the old place and
5779         find_bswap_or_nop_load () to avoid reading uninitialized memory when
5780         doing recursion in the GIMPLE_BINARY_RHS case.
5781
5782 2014-06-03  Richard Biener  <rguenther@suse.de>
5783
5784         PR tree-optimization/61383
5785         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
5786         stmts can't trap.
5787
5788 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
5789
5790         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
5791         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
5792         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
5793         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
5794         in this file.
5795         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
5796         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
5797         * system.h: ...here and make it unconditional.
5798         * target.def (conditional_register_usage): Mention
5799         define_register_constraint instead of old-style constraint macros.
5800         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
5801         * doc/tm.texi: Regenerate.
5802         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
5803         protected by !USE_MD_CONSTRAINTS.
5804         * config/frv/frv.md: Remove quote from old version of documentation.
5805         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
5806         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
5807         CONST_DOUBLE_OK_FOR_LETTER.
5808         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
5809
5810 2014-06-02  Andrew Pinski  <apinski@cavium.com>
5811
5812         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
5813         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
5814         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
5815         file whose name depends on -mabi= and -mbig-endian.
5816         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
5817         Handle LP64 better and handle ilp32 too.
5818         (MULTILIB_OPTIONS): Delete.
5819         (MULTILIB_DIRNAMES): Delete.
5820
5821 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
5822
5823         * expr.h: Remove prototypes of functions defined in builtins.c.
5824         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
5825         Remove prototypes of functions defined in builtins.c.
5826         * builtins.h: Update prototype list to include all exported functions.
5827         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
5828         no_c99_libc_has_function): Move to targhooks.c
5829         (build_string_literal, build_call_expr_loc_array,
5830         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
5831         to tree.c.
5832         (expand_builtin_object_size, fold_builtin_object_size): Make static.
5833         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
5834         no_c99_libc_has_function): Relocate from builtins.c.
5835         * tree.c: Include builtins.h.
5836         (build_call_expr_loc_array, build_call_expr_loc_vec,
5837         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
5838         from builtins.c.
5839         * fold-const.h (fold_fma): Move prototype to builtins.h.
5840         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
5841         * asan.c: Include builtins.h.
5842         * cfgexpand.c: Likewise.
5843         * convert.c: Likewise.
5844         * emit-rtl.c: Likewise.
5845         * except.c: Likewise.
5846         * expr.c: Likewise.
5847         * fold-const.c: Likewise.
5848         * gimple-fold.c: Likewise.
5849         * gimple-ssa-strength-reduction.c: Likewise.
5850         * gimplify.c: Likewise.
5851         * ipa-inline.c: Likewise.
5852         * ipa-prop.c: Likewise.
5853         * lto-streamer-out.c: Likewise.
5854         * stmt.c: Likewise.
5855         * tree-inline.c: Likewise.
5856         * tree-object-size.c: Likewise.
5857         * tree-sra.c: Likewise.
5858         * tree-ssa-ccp.c: Likewise.
5859         * tree-ssa-forwprop.c: Likewise.
5860         * tree-ssa-loop-ivcanon.c: Likewise.
5861         * tree-ssa-loop-ivopts.c: Likewise.
5862         * tree-ssa-math-opts.c: Likewise.
5863         * tree-ssa-reassoc.c: Likewise.
5864         * tree-ssa-threadedge.c: Likewise.
5865         * tree-streamer-in.c: Likewise.
5866         * tree-vect-data-refs.c: Likewise.
5867         * tree-vect-patterns.c: Likewise.
5868         * tree-vect-stmts.c: Likewise.
5869         * config/aarch64/aarch64.c: Likewise.
5870         * config/alpha/alpha.c: Likewise.
5871         * config/arc/arc.c: Likewise.
5872         * config/arm/arm.c: Likewise.
5873         * config/avr/avr.c: Likewise.
5874         * config/bfin/bfin.c: Likewise.
5875         * config/c6x/c6x.c: Likewise.
5876         * config/cr16/cr16.c: Likewise.
5877         * config/cris/cris.c: Likewise.
5878         * config/epiphany/epiphany.c: Likewise.
5879         * config/fr30/fr30.c: Likewise.
5880         * config/frv/frv.c: Likewise.
5881         * config/h8300/h8300.c: Likewise.
5882         * config/i386/i386.c: Likewise.
5883         * config/i386/winnt.c: Likewise.
5884         * config/ia64/ia64.c: Likewise.
5885         * config/iq2000/iq2000.c: Likewise.
5886         * config/lm32/lm32.c: Likewise.
5887         * config/m32c/m32c.c: Likewise.
5888         * config/m32r/m32r.c: Likewise.
5889         * config/m68k/m68k.c: Likewise.
5890         * config/mcore/mcore.c: Likewise.
5891         * config/mep/mep.c: Likewise.
5892         * config/microblaze/microblaze.c: Likewise.
5893         * config/mips/mips.c: Likewise.
5894         * config/mmix/mmix.c: Likewise.
5895         * config/mn10300/mn10300.c: Likewise.
5896         * config/moxie/moxie.c: Likewise.
5897         * config/msp430/msp430.c: Likewise.
5898         * config/nds32/nds32.c: Likewise.
5899         * config/pa/pa.c: Likewise.
5900         * config/pdp11/pdp11.c: Likewise.
5901         * config/picochip/picochip.c: Likewise.
5902         * config/rl78/rl78.c: Likewise.
5903         * config/rs6000/rs6000.c: Likewise.
5904         * config/rx/rx.c: Likewise.
5905         * config/s390/s390.c: Likewise.
5906         * config/score/score.c: Likewise.
5907         * config/sh/sh.c: Likewise.
5908         * config/sparc/sparc.c: Likewise.
5909         * config/spu/spu.c: Likewise.
5910         * config/stormy16/stormy16.c: Likewise.
5911         * config/tilegx/tilegx.c: Likewise.
5912         * config/tilepro/tilepro.c: Likewise.
5913         * config/v850/v850.c: Likewise.
5914         * config/vax/vax.c: Likewise.
5915         * config/xtensa/xtensa.c: Likewise.
5916
5917 2014-06-02  Jeff Law  <law@redhat.com>
5918
5919         PR rtl-optimization/61094
5920         * ree.c (combine_reaching_defs): Do not reextend an insn if it
5921         was marked as do_no_reextend.  If a copy is needed to eliminate
5922         an extension, then mark it as do_not_reextend.
5923
5924 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
5925
5926         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
5927
5928 2014-06-02  Richard Henderson  <rth@redhat.com>
5929
5930         PR target/61336
5931         * config/alpha/alpha.c (print_operand_address): Allow symbolic
5932         addresses inside asms.  Use output_operand_lossage instead of
5933         gcc_unreachable.
5934
5935 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
5936
5937         PR target/61239
5938         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
5939         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
5940
5941 2014-06-02  Tom de Vries  <tom@codesourcery.com>
5942
5943         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
5944         case that x has VOIDmode.
5945
5946 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
5947
5948         * varasm.c (copy_constant): Delete function.
5949         (build_constant_desc): Don't call it.
5950
5951 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5952
5953         PR target/61154
5954         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
5955         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
5956         with immediate_operand.
5957
5958 2014-06-02  Andreas Schwab  <schwab@suse.de>
5959
5960         * config/ia64/ia64.c
5961         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
5962         pending_data_specs first.
5963
5964 2014-06-02  Richard Biener  <rguenther@suse.de>
5965
5966         PR tree-optimization/61378
5967         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
5968         valueized_anything.
5969
5970 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
5971
5972         * config/i386/constraints.md (Bw): Rename from 'w'.
5973         (Bz): Rename from 'z'.
5974         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
5975
5976 2014-06-01  Kai Tietz  <ktietz@redhat.com>
5977
5978         PR target/61377
5979         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
5980         * config/i386/i386.md (sibcall_insn_operand): Use Bs
5981         instead of m constraint.
5982
5983 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
5984
5985         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
5986         a separate alternative where the scratch operand 2 is marked as
5987         early clobber.
5988
5989 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
5990
5991         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
5992         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
5993         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
5994         and __builtins_arm_get_fpscr.
5995         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
5996         __builtins_arm_get_fpscr.
5997         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
5998         __builtins_arm_ldfpscr.
5999         (arm_atomic_assign_expand_fenv): New function.
6000         * config/arm/vfp.md (set_fpscr): New pattern.
6001         (get_fpscr) : Likewise.
6002         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
6003         VUNSPEC_SET_FPSCR.
6004         * doc/extend.texi (AARCH64 Built-in Functions) : Document
6005         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
6006
6007 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
6008
6009         * asan.c (report_error_func): Add SLOW_P argument, use
6010         BUILT_IN_ASAN_*_N if set.
6011         (build_check_stmt): Likewise.
6012         (instrument_derefs): If T has insufficient alignment,
6013         force same handling as for odd sizes.
6014
6015         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
6016         BUILT_IN_ASAN_REPORT_STORE_N): New.
6017         * asan.c (struct asan_mem_ref): Change access_size type to
6018         HOST_WIDE_INT.
6019         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
6020         update_mem_ref_hash_table): Likewise.
6021         (asan_mem_ref_hasher::hash): Hash in a HWI.
6022         (report_error_func): Change size_in_bytes argument to HWI.
6023         Use *_N builtins if size_in_bytes is larger than 16 or not power of
6024         two.
6025         (build_shadow_mem_access): New function.
6026         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
6027         Handle size_in_bytes not power of two or larger than 16.
6028         (instrument_derefs): Don't give up if size_in_bytes is not
6029         power of two or is larger than 16.
6030
6031 2014-05-30  Kai Tietz  <ktietz@redhat.com>
6032
6033         PR target/60104
6034         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
6035         for sibling-tail-calls.
6036         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
6037         to its use.
6038         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
6039         (sibcall_insn_operand): Add check for sibcall_memory_operand.
6040
6041 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6042
6043         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
6044         * config/avr/avr-tables.opt: Regenerate.
6045         * config/avr/t-multilib: Regenerate.
6046         * doc/avr-mmcu.texi: Regenerate.
6047
6048 2014-05-30  Ian Lance Taylor  <iant@google.com>
6049
6050         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
6051         target("sse").
6052
6053 2014-05-30  Tom de Vries  <tom@codesourcery.com>
6054
6055         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
6056         Redefine as true.
6057
6058 2014-05-30  Tom de Vries  <tom@codesourcery.com>
6059
6060         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
6061         * lra.c (initialize_lra_reg_info_element): Add init of
6062         actual_call_used_reg_set field.
6063         (lra): Call lra_create_live_ranges before lra_inheritance for
6064         -fuse-caller-save.
6065         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
6066         -fuse-caller-save.
6067         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
6068         instead of call_used_reg_set for -fuse-caller-save.
6069         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
6070
6071 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6072
6073         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
6074         to mov_imm.
6075         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
6076
6077 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
6078
6079         * ira.c (ira_get_dup_out_num): Check for output operands at
6080         the start of the loop.  Handle cases where an included alternative
6081         follows an excluded one.
6082
6083 2014-05-29  Mike Stump  <mikestump@comcast.net>
6084
6085         PR debug/61352
6086         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
6087         post ld passes when lto is used.
6088
6089 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
6090
6091         PR rtl-optimization/61325
6092         * lra-constraints.c (process_address): Rename to process_address_1.
6093         (process_address): New function.
6094
6095 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
6096
6097         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
6098         TYPES_BINOPV): New static data.
6099         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
6100         New builtin.
6101         * config/aarch64/aarch64-simd.md (aarch64_ext,
6102         aarch64_im_lane_boundsi): New patterns.
6103         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
6104         patterns for EXT.
6105         (aarch64_evpc_ext): New function.
6106
6107         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
6108
6109         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
6110         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
6111         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
6112         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
6113         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
6114
6115 2014-05-29  Tom de Vries  <tom@codesourcery.com>
6116
6117         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
6118
6119 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
6120             Richard Sandiford  <rdsandiford@googlemail.com>
6121
6122         * arm/iterators.md (shiftable_ops): New code iterator.
6123         (t2_binop0, arith_shift_insn): New code attributes.
6124         * arm/predicates.md (shift_nomul_operator): New predicate.
6125         * arm/arm.md (insn_enabled): Delete.
6126         (enabled): Remove insn_enabled test.
6127         (*arith_shiftsi): Delete.  Replace with ...
6128         (*<arith_shift_insn>_multsi): ... new pattern.
6129         (*<arith_shift_insn>_shiftsi): ... new pattern.
6130         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
6131
6132 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
6133             Tom de Vries  <tom@codesourcery.com>
6134
6135         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
6136         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
6137         clobber.
6138         (mips_split_call): Use POST_CALL_TMP_REG.
6139         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
6140
6141 2014-05-29  Tom de Vries  <tom@codesourcery.com>
6142
6143         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
6144         with #ifdef STACK_REGS.
6145
6146 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
6147
6148         * varasm.c (get_variable_section): Walk aliases.
6149         (place_block_symbol): Walk aliases.
6150
6151 2014-05-28  Tom de Vries  <tom@codesourcery.com>
6152
6153         Revert:
6154         2014-05-28  Tom de Vries  <tom@codesourcery.com>
6155
6156         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
6157         * lra.c (initialize_lra_reg_info_element): Add init of
6158         actual_call_used_reg_set field.
6159         (lra): Call lra_create_live_ranges before lra_inheritance for
6160         -fuse-caller-save.
6161         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
6162         -fuse-caller-save.
6163         * lra-constraints.c (need_for_call_save_p): Use
6164         actual_call_used_reg_set instead of call_used_reg_set for
6165         -fuse-caller-save.
6166         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
6167
6168 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
6169
6170         * doc/md.texi: Document that the % constraint character must
6171         be at the beginning of the string.
6172         * genoutput.c (validate_insn_alternatives): Check that '=',
6173         '+' and '%' only appear at the beginning of a constraint.
6174         * ira.c (commutative_constraint_p): Delete.
6175         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
6176         at the start of the string.
6177         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
6178         duplicate '='s.
6179         * config/arm/neon.md (bicdi3_neon): Likewise.
6180         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
6181         (slt_si, sltu_si): Likewise.
6182         * config/vax/vax.md (sbcdi3): Likewise.
6183         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
6184         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
6185         (mul64): Move '%' to beginning of constraint.
6186         * config/arm/arm.md (*xordi3_insn): Likewise.
6187         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
6188         (xorsi3): Likewise.
6189
6190 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
6191
6192         * doc/md.texi: Document the restrictions on the "enabled" attribute.
6193
6194 2014-05-28  Jason Merrill  <jason@redhat.com>
6195
6196         PR c++/47202
6197         * cgraph.h (symtab_node::get_comdat_group_id): New.
6198         * cgraphunit.c (analyze_functions): Call it.
6199         * symtab.c (dump_symtab_node): Likewise.
6200         * tree.c (decl_comdat_group_id): New.
6201         * tree.h: Declare it.
6202         * lto-streamer-out.c (write_symbol): Use it.
6203         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
6204
6205 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6206
6207         PR bootstrap/PR61146
6208         * wide-int.cc: Do not include longlong.h when compiling with clang.
6209
6210 2014-05-28  Richard Biener  <rguenther@suse.de>
6211
6212         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
6213         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
6214         (vrp_visit_assignment_or_call): Print less vertical space.
6215         (vrp_visit_stmt): Likewise.
6216         (vrp_visit_phi_node): Likewise.  For a PHI argument with
6217         VR_VARYING range consider recording it as copy.
6218
6219 2014-05-28  Richard Biener  <rguenther@suse.de>
6220
6221         Revert
6222         2014-05-28  Richard Biener  <rguenther@suse.de>
6223
6224         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
6225
6226 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6227
6228         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
6229         sufficiently aligned and an offset is used at the same time.
6230         (expand_expr_real_1): Likewise.
6231
6232 2014-05-28  Richard Biener  <rguenther@suse.de>
6233
6234         PR middle-end/61045
6235         * fold-const.c (fold_comparison): When folding
6236         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
6237         the sign of the remaining constant operand stays the same.
6238
6239 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
6240
6241         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
6242         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
6243         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
6244         to the assembler.
6245         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
6246         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
6247         (m32bit-doubles) Likewise.
6248         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
6249         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
6250         option for RL78.
6251
6252 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6253
6254         * configure.ac ($gcc_cv_ld_clearcap): New test.
6255         * configure: Regenerate.
6256         * config.in: Regenerate.
6257         * config/sol2.opt (mclear-hwcap): New option.
6258         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
6259         * config/sol2-clearcap.map: Moved here from
6260         testsuite/gcc.target/i386/clearcap.map.
6261         * config/sol2-clearcapv2.map: Move here from
6262         gcc.target/i386/clearcapv2.map.
6263         * config/t-sol2 (install): Depend on install-clearcap-map.
6264         (install-clearcap-map): New target.
6265         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
6266         -mclear-hwcap.
6267
6268 2014-05-28  Richard Biener  <rguenther@suse.de>
6269
6270         * hwint.h (*_HALF_WIDE_INT*): Move to ...
6271         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
6272         ... here and remove the rest.
6273         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
6274
6275 2014-05-28  Richard Biener  <rguenther@suse.de>
6276
6277         PR tree-optimization/61335
6278         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
6279         new range fails, drop to varying.
6280
6281 2014-05-28  Olivier Hainque  <hainque@adacore.com>
6282
6283         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
6284         (CPP_SPEC): Add entry for -mcpu=8548.
6285         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
6286         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
6287
6288 2014-05-28  Tom de Vries  <tom@codesourcery.com>
6289
6290         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
6291         * lra.c (initialize_lra_reg_info_element): Add init of
6292         actual_call_used_reg_set field.
6293         (lra): Call lra_create_live_ranges before lra_inheritance for
6294         -fuse-caller-save.
6295         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
6296         -fuse-caller-save.
6297         * lra-constraints.c (need_for_call_save_p): Use
6298         actual_call_used_reg_set instead of call_used_reg_set for
6299         -fuse-caller-save.
6300         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
6301
6302 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
6303             Tom de Vries  <tom@codesourcery.com>
6304
6305         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
6306         to gccoptlist.
6307         (@item -fuse-caller-save): New item.
6308
6309 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
6310             Tom de Vries  <tom@codesourcery.com>
6311
6312         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
6313         OPT_fuse_caller_save.
6314
6315 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
6316             Tom de Vries  <tom@codesourcery.com>
6317
6318         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
6319         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
6320         get_call_reg_set_usage.
6321         * resource.c (mark_set_resources, mark_target_live_regs): Use
6322         get_call_reg_set_usage.
6323         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
6324         field.
6325         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
6326         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
6327         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6328         * ira-build.c (ira_create_allocno): Init
6329         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6330         (create_cap_allocno, propagate_allocno_info)
6331         (propagate_some_info_from_allocno)
6332         (copy_info_to_removed_store_destinations): Handle
6333         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6334         * ira-costs.c (ira_tune_allocno_costs): Use
6335         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
6336
6337 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
6338             Tom de Vries  <tom@codesourcery.com>
6339
6340         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
6341         and function_used_regs_valid fields.
6342         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
6343         find_all_hard_reg_sets.
6344         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
6345         (get_call_reg_set_usage): New function.
6346         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
6347         * regs.h (get_call_reg_set_usage): Declare.
6348
6349 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
6350
6351         PR libgcc/61152
6352         * config/dbx.h (License): Add Runtime Library Exception.
6353         * config/newlib-stdint.h (License): Same.
6354         * config/rtems.h (License): Same
6355         * config/initfini-array.h (License): Same
6356         * config/v850/v850.h (License): Same.
6357         * config/v850/v850-opts.h (License): Same
6358         * config/v850/rtems.h (License): Same.
6359
6360 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
6361
6362         PR target/61044
6363         * doc/extend.texi (Local Labels): Note that label differences are
6364         not supported for AVR.
6365
6366 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
6367             Olivier Hainque  <hainque@adacore.com>
6368
6369         * rtl.h (set_for_reg_notes): Declare.
6370         * emit-rtl.c (set_for_reg_notes): New function.
6371         (set_unique_reg_note): Use it.
6372         * optabs.c (add_equal_note): Likewise
6373
6374 2014-05-27  Andrew Pinski  <apinski@cavium.com>
6375
6376         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
6377         Use <w> for the register in assembly template.
6378         (stack_protect_test): Use the mode of operands[0] for the result.
6379         (stack_protect_test_<mode>): Use <w> for the register
6380         in assembly template.
6381
6382 2014-05-27  DJ Delorie  <dj@redhat.com>
6383
6384         * config/rx/rx.c (add_vector_labels): New.
6385         (rx_output_function_prologue): Call it.
6386         (rx_handle_func_attribute): Don't require empty arguments.
6387         (rx_handle_vector_attribute): New.
6388         (rx_attribute_table): Add "vector" attribute.
6389         * doc/extend.texi (interrupt, vector): Document new/changed
6390         RX-specific attributes.
6391
6392         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
6393
6394 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6395
6396         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
6397         predicate to detect a negative quotient.
6398
6399 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6400
6401         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
6402         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
6403         Add X - Y CMP 0 to X CMP Y transformation.
6404         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
6405
6406 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
6407
6408         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
6409         before printing.
6410
6411 2014-05-27  Steve Ellcey  <sellcey@mips.com>
6412
6413         * config/mips/mips.c: Add include of cgraph.h.
6414
6415 2014-05-27  Richard Biener  <rguenther@suse.de>
6416
6417         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
6418
6419 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
6420
6421         PR libgcc/61152
6422         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
6423         * config/arm/arm-cores.def (License): Same.
6424         * config/arm/arm-opts.h (License): Same.
6425         * config/arm/aout.h (License): Same.
6426         * config/arm/bpabi.h (License): Same.
6427         * config/arm/elf.h (License): Same.
6428         * config/arm/linux-elf.h (License): Same.
6429         * config/arm/linux-gas.h (License): Same.
6430         * config/arm/netbsd-elf.h (License): Same.
6431         * config/arm/uclinux-eabi.h (License): Same.
6432         * config/arm/uclinux-elf.h (License): Same.
6433         * config/arm/vxworks.h (License): Same.
6434
6435 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6436
6437         * config/arm/neon.md (neon_bswap<mode>): New pattern.
6438         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
6439         (arm_init_neon_builtins): Handle NEON_BSWAP.
6440         Define required type nodes.
6441         (arm_expand_neon_builtin): Handle NEON_BSWAP.
6442         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
6443         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
6444         * config/arm/iterators.md (VDQHSD): New mode iterator.
6445
6446 2014-05-27  Richard Biener  <rguenther@suse.de>
6447
6448         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
6449         Try using literal operands when comparing value-ranges failed.
6450
6451 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
6452
6453         * ira.c (commutative_operand): Adjust for change to recog_data.
6454         [Missing from previous commit.]
6455
6456 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
6457
6458         * system.h (TEST_BIT): New macro.
6459         * recog.h (alternative_mask): New type.
6460         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
6461         (recog_data_d): Replace alternative_enabled_p array with
6462         enabled_alternatives.
6463         (target_recog): New structure.
6464         (default_target_recog, this_target_recog): Declare.
6465         (get_enabled_alternatives, recog_init): Likewise.
6466         * recog.c (default_target_recog, this_target_recog): New variables.
6467         (get_enabled_alternatives): New function.
6468         (extract_insn): Use it.
6469         (recog_init): New function.
6470         (preprocess_constraints, constrain_operands): Adjust for change to
6471         recog_data.
6472         * postreload.c (reload_cse_simplify_operands): Likewise.
6473         * reload.c (find_reloads): Likewise.
6474         * ira-costs.c (record_reg_classes): Likewise.
6475         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
6476         all alternatives after a disabled one would be skipped.
6477         (ira_implicitly_set_insn_hard_regs): Likewise.
6478         * ira.c (ira_setup_alts): Adjust for change to recog_data.
6479         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
6480         with enabled_alternatives.
6481         * lra.c (free_insn_recog_data): Update accordingly.
6482         (lra_update_insn_recog_data): Likewise.
6483         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
6484         * lra-constraints.c (process_alt_operands): Likewise.  Handle
6485         only_alternative as part of the enabled mask.
6486         * target-globals.h (this_target_recog): Declare.
6487         (target_globals): Add a recog field.
6488         (restore_target_globals): Restore this_target_recog.
6489         * target-globals.c: Include recog.h.
6490         (default_target_globals): Initialize recog field.
6491         (save_target_globals): Likewise.
6492         * reginfo.c (reinit_regs): Call recog_init.
6493         * toplev.c (backend_init_target): Likewise.
6494
6495 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
6496
6497         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
6498         rather than any named insn's code.
6499
6500 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
6501
6502         PR libgcc/61152
6503         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
6504         * config/arm/arm-cores.def (License): Same.
6505
6506 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
6507
6508         * tree.h (decl_comdat_group): Declare.
6509         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
6510         * tree.c (decl_comdat_group): Here.
6511
6512 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
6513
6514         PR rtl-optimization/61222
6515         * combine.c (simplify_shift_const_1): When moving a PLUS outside
6516         the shift, truncate the PLUS operand to the result mode.
6517
6518 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
6519
6520         PR target/61271
6521         * config/i386/i386.c (ix86_rtx_costs)
6522         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
6523         Fix condition.
6524
6525 2014-05-26  Martin Jambor  <mjambor@suse.cz>
6526
6527         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
6528         subreg uses.
6529
6530 2014-05-26  Richard Biener  <rguenther@suse.de>
6531
6532         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
6533         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
6534         Provide specializations.
6535         (wi::int_traits <HOST_WIDE_INT>,
6536         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
6537
6538 2014-05-26  Alan Modra  <amodra@gmail.com>
6539
6540         PR target/61098
6541         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
6542         params and return a bool.  Remove dead code.  Update comment.
6543         Assert we have a const_int source.  Remove bogus code from
6544         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
6545         handling of constants > 2G and reg_equal note, from..
6546         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
6547         return value.  Update comment.  If we can, use a new pseudo
6548         for intermediate calculations.
6549         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
6550         prototype.
6551         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
6552         call to rs6000_emit_set_const in splitter.
6553         (movdi_internal64+2, +3): Likewise.
6554
6555 2014-05-26  Richard Biener  <rguenther@suse.de>
6556
6557         * system.h: Define __STDC_FORMAT_MACROS before
6558         including inttypes.h.
6559         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
6560         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
6561         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
6562         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
6563         HOST_WIDEST_INT_C): Remove.
6564         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
6565         if C99 inttypes.h is not available.
6566         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
6567         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
6568         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
6569         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
6570         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
6571         (struct output_info): Likewise.
6572         (print_statistics): Adjust.
6573         (dump_bitmap_statistics): Likewise.
6574         * bt-load.c (migrate_btr_defs): Print with PRId64.
6575         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
6576         (MAX_SAFE_MULTIPLIER): Adjust.
6577         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
6578         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
6579         dump_cgraph_node): Likewise.
6580         * final.c (dump_basic_block_info): Likewise.
6581         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
6582         * gcov.c (format_gcov): Likewise.
6583         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
6584         for calculation.
6585         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
6586         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
6587         (inline_small_functions, dump_overall_stats, dump_inline_stats):
6588         Use PRId64 for dumping.
6589         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
6590         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
6591         (add_allocno_hard_regs): Adjust.
6592         * loop-doloop.c (doloop_modify): Print using PRId64.
6593         * loop-iv.c (inverse): Compute in uint64_t.
6594         (determine_max_iter, iv_number_of_iterations): Likewise.
6595         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
6596         Print using PRId64.
6597         * lto-streamer-out.c (write_symbol): Use uint64_t.
6598         * mcf.c (CAP_INFINITY): Use int64_t maximum.
6599         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
6600         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
6601         * modulo-sched.c (const_iteration_count): Use int64_t.
6602         (sms_schedule): Dump using PRId64.
6603         * predict.c (dump_prediction): Likewise.
6604         * pretty-print.h (pp_widest_integer): Remove.
6605         * profile.c (get_working_sets, is_edge_inconsistent,
6606         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
6607         * tree-pretty-print.c (pp_double_int): Remove case handling
6608         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
6609         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
6610         and adjust users.
6611         (pass_optimize_bswap::execute): Remove restriction on hosts.
6612         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
6613         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
6614         * tree.c (widest_int_cst_value): Remove.
6615         * tree.h (widest_int_cst_value): Likewise.
6616         * value-prof.c (dump_histogram_value): Print using PRId64.
6617         * gengtype.c (main): Also inject int64_t.
6618         * ggc-page.c (struct max_alignment): Use int64_t.
6619         * alloc-pool.c (struct allocation_object_def): Likewise.
6620         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
6621         for computation.
6622         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
6623         * doc/tm.texi: Regenerated.
6624         * gengtype-lex.l (IWORD): Handle [u]int64_t.
6625         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
6626         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
6627         mmix_output_register_setting): Use [u]int64_t in prototypes.
6628         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
6629         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
6630         mmix_output_octa, mmix_output_shifted_value): Adjust.
6631         (mmix_intval): Adjust.  Remove unreachable case.
6632         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
6633
6634 2014-05-26  Richard Biener  <rguenther@suse.de>
6635
6636         * configure.ac: Drop __int64 type check.  Insist that we
6637         found uint64_t and int64_t.
6638         * hwint.h (HOST_BITS_PER___INT64): Remove.
6639         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
6640         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
6641         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
6642         (HOST_WIDEST_FAST_INT): Remove __int64 case.
6643         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
6644         for dst_q_src_df_rms_cdt.
6645         * configure: Regenerate.
6646         * config.in: Likewise.
6647
6648 2014-05-26  Michael Tautschnig  <mt@debian.org>
6649
6650         PR target/61249
6651         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
6652         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
6653
6654 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6655
6656         PR rtl-optimization/61278
6657         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
6658
6659 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6660
6661         PR rtl-optimization/61220
6662         Part of PR rtl-optimization/61225
6663         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
6664         insn; skip split_edge for a block with only one successor.
6665
6666 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6667
6668         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
6669         for variables.
6670
6671 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6672
6673         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
6674         (update_vtable_references): New function.
6675         (function_and_variable_visibility): Rewrite also vtable initializers.
6676         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
6677
6678 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6679
6680         * ggc.h (ggc_grow): New function.
6681         * ggc-none.c (ggc_grow): New function.
6682         * ggc-page.c (ggc_grow): Likewise.
6683
6684 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6685
6686         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
6687         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
6688         comdat_can_be_unshared_p, cgraph_externally_visible_p,
6689         varpool_externally_visible_p, can_replace_by_local_alias,
6690         update_visibility_by_resolution_info, function_and_variable_visibility,
6691         pass_data_ipa_function_and_variable_visibility,
6692         make_pass_ipa_function_and_variable_visibility,
6693         whole_program_function_and_variable_visibility,
6694         pass_data_ipa_whole_program_visibility,
6695         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
6696         * cgraph.h (cgraph_local_node_p): Declare.
6697         * ipa-visibility.c: New file.
6698         * Makefile.in (OBJS): Add ipa-visiblity.o
6699
6700 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6701
6702         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
6703         that var decl is available.
6704
6705 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6706
6707         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
6708         symtab_node pointer.
6709         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
6710         (find_decls_types_r): Do not walk COMDAT_GROUP.
6711         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
6712         * varasm.c (make_decl_one_only): Use set_comdat_group;
6713         create node if needed.
6714         * ipa-inline-transform.c (save_inline_function_body): Update
6715         way we decl->symtab mapping.
6716         * symtab.c (symtab_hash, hash_node, eq_node
6717         symtab_insert_node_to_hashtable): Remove.
6718         (symtab_register_node): Update.
6719         (symtab_unregister_node): Update.
6720         (symtab_get_node): Reimplement as inline function.
6721         (symtab_add_to_same_comdat_group): Update.
6722         (symtab_dissolve_same_comdat_group_list): Update.
6723         (dump_symtab_base): Update.
6724         (verify_symtab_base): Update.
6725         (symtab_make_decl_local): Update.
6726         (fixup_same_cpp_alias_visibility): Update.
6727         (symtab_nonoverwritable_alias): Update.
6728         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
6729         * ipa.c (update_visibility_by_resolution_info): UPdate.
6730         * bb-reorder.c: Include cgraph.h
6731         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
6732         with comdat groups.
6733         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
6734         * cgraph.c (cgraph_get_create_node): Update.
6735         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
6736         and comdat_group_.
6737         (symtab_get_node): Make inline.
6738         (symtab_insert_node_to_hashtable): Remove.
6739         (symtab_can_be_discarded): Update.
6740         (decl_comdat_group): New function.
6741         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
6742         Update.
6743         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
6744         comdat group name.
6745         (read_comdat_group): New function.
6746         (input_node, input_varpool_node): Use it.
6747         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
6748         comdat groups.
6749         * mips.c (mips_start_unique_function): Likewise.
6750         (ix86_code_end): Likewise.
6751         (rs6000_code_end): Likweise.
6752         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
6753
6754 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6755
6756         * gengtype-state.c (fatal_reading_state): Bring offline.
6757         * optabs.c (widening_optab_handler): Bring offline.
6758         * optabs.h (widening_optab_handler): Likewise.
6759         * final.c (get_attr_length_1): Likewise.
6760
6761 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
6762
6763         * sched-int.h (sd_iterator_cond): Manually tail recurse.
6764
6765 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6766
6767         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
6768         (ppc440-compare): Include shift with dot.
6769         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
6770         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
6771         without dot.
6772         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
6773         without dot.
6774         (e6500_sfx2): Include it.
6775         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
6776         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
6777         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
6778         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
6779         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
6780         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
6781         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
6782         *lshiftrt_internal1le, *lshiftrt_internal1be,
6783         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
6784         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
6785         *rotldi3_internal10le, *rotldi3_internal10be,
6786         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
6787         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
6788         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
6789         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
6790         define_insns): Use type "shift" in the appropriate alternatives.
6791
6792 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6793
6794         * config/rs6000/rs6000.md (type): Add "logical".  Delete
6795         "fast_compare".
6796         (dot): Adjust comment.
6797         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
6798         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
6799         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
6800         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
6801         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
6802         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
6803         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
6804         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
6805
6806         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
6807         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
6808         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
6809         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
6810         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
6811         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
6812         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
6813         * config/rs6000/8540.md (ppc8540_su): Adjust.
6814         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
6815         cell-cmp-microcoded): Adjust.
6816         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
6817         * config/rs6000/e500mc.md (e500mc_su): Adjust.
6818         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
6819         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
6820         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
6821         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
6822         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
6823         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
6824         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
6825         Adjust.
6826         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
6827         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
6828         Adjust.  Adjust comment.
6829         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
6830         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
6831
6832 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6833
6834         * config/rs6000/rs6000.md (type): Add "add".
6835         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
6836         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
6837         define_insns): Use it.
6838         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
6839
6840         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
6841         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
6842         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
6843         * config/rs6000/601.md (ppc601-integer): Adjust.
6844         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
6845         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
6846         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
6847         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
6848         * config/rs6000/8540.md (ppc8540_su): Adjust.
6849         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
6850         cell-cmp-microcoded): Adjust.
6851         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
6852         * config/rs6000/e500mc.md (e500mc_su): Adjust.
6853         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
6854         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
6855         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
6856         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
6857         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
6858         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
6859         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
6860         Adjust.
6861         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
6862         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
6863         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
6864         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
6865
6866 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6867
6868         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
6869         "delayed_compare", "var_delayed_compare".
6870         (var_shift): New attribute.
6871         (cell_micro): Adjust.
6872         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
6873         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
6874         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
6875         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
6876         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
6877         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
6878         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
6879         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
6880         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
6881         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
6882         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
6883         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
6884         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
6885         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
6886         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
6887         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
6888         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
6889         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
6890         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
6891         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
6892         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
6893         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
6894         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
6895         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
6896         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
6897
6898         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
6899         * config/rs6000/440.md (ppc440-integer): Adjust.
6900         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
6901         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
6902         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
6903         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
6904         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
6905         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
6906         * config/rs6000/8540.md (ppc8540_su): Adjust.
6907         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
6908         cell-cmp-microcoded): Adjust.
6909         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
6910         * config/rs6000/e500mc.md (e500mc_su): Adjust.
6911         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
6912         e500mc64_delayed): Adjust.
6913         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
6914         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
6915         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
6916         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
6917         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
6918         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
6919         power6-delayed-compare, power6-var-delayed-compare): Adjust.
6920         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
6921         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
6922         Adjust comment.
6923         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
6924         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
6925
6926 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6927
6928         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
6929         (bits): New mode_attr.
6930         (idiv_ldiv): Delete mode_attr.
6931         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
6932         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
6933         rs6000_adjust_priority, is_nonpipeline_insn,
6934         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
6935
6936         * config/rs6000/40x.md (ppc403-idiv): Adjust.
6937         * config/rs6000/440.md (ppc440-idiv): Adjust.
6938         * config/rs6000/476.md (ppc476-idiv): Adjust.
6939         * config/rs6000/601.md (ppc601-idiv): Adjust.
6940         * config/rs6000/603.md (ppc603-idiv): Adjust.
6941         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
6942         ppc620-ldiv): Adjust.
6943         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
6944         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
6945         * config/rs6000/8540.md (ppc8540_divide): Adjust.
6946         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
6947         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
6948         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
6949         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
6950         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
6951         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
6952         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
6953         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
6954         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
6955         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
6956         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
6957         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
6958         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
6959         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
6960         * config/rs6000/titan.md (titan_fxu_div): Adjust.
6961
6962 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6963
6964         * config/rs6000/rs6000.md (type): Delete "insert_word",
6965         "insert_dword".  Add "insert".
6966         (size): Update comment.
6967         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
6968         insn_must_be_first_in_group): Adjust.
6969         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
6970         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
6971         *insvsi_internal6, insvdi_internal): Adjust.
6972
6973         * config/rs6000/40x.md (ppc403-integer): Adjust.
6974         * config/rs6000/440.md (ppc440-integer): Adjust.
6975         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
6976         * config/rs6000/601.md (ppc601-integer): Adjust.
6977         * config/rs6000/603.md (ppc603-integer): Adjust.
6978         * config/rs6000/6xx.md (ppc604-integer): Adjust.
6979         * config/rs6000/7450.md (ppc7450-integer): Adjust.
6980         * config/rs6000/7xx.md (ppc750-integer): Adjust.
6981         * config/rs6000/8540.md (ppc8540_su): Adjust.
6982         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
6983         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
6984         * config/rs6000/e500mc.md (e500mc_su): Adjust.
6985         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
6986         * config/rs6000/e5500.md (e5500_sfx): Adjust.
6987         * config/rs6000/e6500.md (e6500_sfx): Adjust.
6988         * config/rs6000/mpc.md (mpccore-integer): Adjust.
6989         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
6990         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
6991         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
6992         * config/rs6000/power7.md (power7-integer): Adjust.
6993         * config/rs6000/power8.md (power8-1cyc): Adjust.
6994         * config/rs6000/rs64.md (rs64a-integer): Adjust.
6995         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
6996
6997 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
6998
6999         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
7000         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
7001         (size): New attribute.
7002         (dot): New attribute.
7003         (cell_micro): Adjust.
7004         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
7005         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
7006         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
7007         umuldi3_highpart): Adjust.
7008         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
7009         rs6000_adjust_priority, is_nonpipeline_insn,
7010         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
7011
7012         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
7013         ppc405-imul3): Adjust.
7014         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
7015         * config/rs6000/476.md (ppc476-imul): Adjust.
7016         * config/rs6000/601.md (ppc601-imul): Adjust.
7017         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
7018         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
7019         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
7020         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
7021         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
7022         Adjust.
7023         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
7024         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
7025         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
7026         cell-imul): Adjust.
7027         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
7028         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
7029         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
7030         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
7031         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
7032         * config/rs6000/mpc.md (mpccore-imul): Adjust.
7033         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
7034         power4-lmul, power4-imul, power4-imul3): Adjust.
7035         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
7036         power5-lmul, power5-imul, power5-imul3): Adjust.
7037         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
7038         power6-lmul, power6-imul, power6-imul3): Adjust.
7039         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
7040         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
7041
7042         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
7043         rs64a-lmul): Adjust.
7044         * config/rs6000/titan.md (titan_imul): Adjust.
7045
7046 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
7047
7048         * config/rs6000/rs6000.md (type): Add new value "halfmul".
7049         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
7050         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
7051         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
7052         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
7053         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
7054         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
7055         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
7056         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
7057         * config/rs6000/titan.md: Delete nonsensical comment.
7058         (titan_imul): Add type imul3.
7059         (titan_mulhw): Remove type imul3; add type halfmul.
7060
7061 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
7062
7063         * config/rs6000/rs6000.md (type): Reorder, reformat.
7064
7065 2014-05-23  Martin Jambor  <mjambor@suse.cz>
7066
7067         PR tree-optimization/53787
7068         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
7069         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
7070         analysis_done, update all uses.
7071         * ipa-prop.c: Include domwalk.h
7072         (param_analysis_info): Removed.
7073         (param_aa_status): New type.
7074         (ipa_bb_info): Likewise.
7075         (func_body_info): Likewise.
7076         (ipa_get_bb_info): New function.
7077         (aa_overwalked): Likewise.
7078         (find_dominating_aa_status): Likewise.
7079         (parm_bb_aa_status_for_bb): Likewise.
7080         (parm_preserved_before_stmt_p): Changed to use new param AA info.
7081         (load_from_unmodified_param): Accept func_body_info as a parameter
7082         instead of parms_ainfo.
7083         (parm_ref_data_preserved_p): Changed to use new param AA info.
7084         (parm_ref_data_pass_through_p): Likewise.
7085         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
7086         (compute_complex_assign_jump_func): Changed to use new param AA info.
7087         (compute_complex_ancestor_jump_func): Likewise.
7088         (ipa_compute_jump_functions_for_edge): Likewise.
7089         (ipa_compute_jump_functions): Removed.
7090         (ipa_compute_jump_functions_for_bb): New function.
7091         (ipa_analyze_indirect_call_uses): Likewise, moved variable
7092         declarations down.
7093         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
7094         and info, moved variable declarations down.
7095         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
7096         node and info.
7097         (ipa_analyze_stmt_uses): Likewise.
7098         (ipa_analyze_params_uses): Removed.
7099         (ipa_analyze_params_uses_in_bb): New function.
7100         (ipa_analyze_controlled_uses): Likewise.
7101         (free_ipa_bb_info): Likewise.
7102         (analysis_dom_walker): New class.
7103         (ipa_analyze_node): Handle node-specific forbidden analysis,
7104         initialize and free func_body_info, use dominator walker.
7105         (ipcp_modif_dom_walker): New class.
7106         (ipcp_transform_function): Create and free func_body_info, use
7107         ipcp_modif_dom_walker, moved a lot of functionality there.
7108
7109 2014-05-23  Marek Polacek  <polacek@redhat.com>
7110             Jakub Jelinek  <jakub@redhat.com>
7111
7112         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
7113         * gcc.c (sanitize_spec_function): Likewise.
7114         * convert.c (convert_to_integer): Include "ubsan.h".  Add
7115         floating-point to integer instrumentation.
7116         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
7117         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
7118         SANITIZE_NONDEFAULT.
7119         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
7120         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
7121         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
7122         * ubsan.c: Include "realmpfr.h" and "dfp.h".
7123         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
7124         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
7125         float/double/long double.
7126         (ubsan_instrument_float_cast): New function.
7127         * ubsan.h (ubsan_instrument_float_cast): Declare.
7128
7129 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
7130
7131         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
7132         predicate.
7133         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
7134         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
7135         Adjust for tailcalling through registers.
7136         * config/aarch64/aarch64.h (enum reg_class): New caller save
7137         register class.
7138         (REG_CLASS_NAMES): Likewise.
7139         (REG_CLASS_CONTENTS): Likewise.
7140         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
7141         Allow tailcalling without decls.
7142
7143 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
7144
7145         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
7146         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
7147
7148         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
7149         gsi, and variables v_* to v*.
7150
7151 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
7152
7153         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
7154
7155 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
7156
7157         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
7158         * omp-low.c: Update accordingly.
7159
7160         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
7161         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
7162         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
7163         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
7164         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
7165         GF_OMP_TARGET_KIND_UPDATE.
7166
7167         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
7168         Explicitly enumerate the expected region types.
7169
7170 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
7171
7172         PR other/56955
7173         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
7174         documentation; the old documentation didn't clearly state the
7175         constraints on the contents of the pointed-to storage.
7176
7177 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7178
7179         Fix bootstrap error on ia64
7180         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
7181         Return default value.
7182
7183 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7184
7185         PR tree-optimization/54733
7186         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
7187         (CMPNOP): Define.
7188         (find_bswap_or_nop_load): New.
7189         (find_bswap_1): Renamed to ...
7190         (find_bswap_or_nop_1): This. Also add support for memory source.
7191         (find_bswap): Renamed to ...
7192         (find_bswap_or_nop): This. Also add support for memory source and
7193         detection of bitwise operations equivalent to load in target
7194         endianness.
7195         (execute_optimize_bswap): Likewise. Also move its leading comment back
7196         in place and split statement transformation into ...
7197         (bswap_replace): This.
7198
7199 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
7200
7201         PR rtl-optimization/61215
7202         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
7203         simplify_gen_subreg until final substitution.
7204
7205 2014-05-23  Alan Modra  <amodra@gmail.com>
7206
7207         PR target/61231
7208         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
7209         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
7210         Use "Y" constraint rather than "m".
7211
7212 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
7213
7214         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
7215         define.
7216         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
7217         New function declaration.
7218         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
7219         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
7220         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
7221         (aarch64_init_builtins) : Initialize builtins
7222         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
7223         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
7224         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
7225         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
7226         and __builtins_aarch64_set_fpsr.
7227         (aarch64_atomic_assign_expand_fenv): New function.
7228         * config/aarch64/aarch64.md (set_fpcr): New pattern.
7229         (get_fpcr) : Likewise.
7230         (set_fpsr) : Likewise.
7231         (get_fpsr) : Likewise.
7232         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
7233          and UNSPECV_SET_FPSR.
7234         * doc/extend.texi (AARCH64 Built-in Functions) : Document
7235         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
7236         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
7237
7238 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
7239
7240         PR rtl-optimization/60969
7241         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
7242         constraints.  Set up mem cost for NO_REGS case.
7243
7244 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
7245
7246         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
7247
7248 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
7249
7250         * config/darwin.c: Include "lto-section-names.h".
7251         (LTO_SEGMENT_NAME): Don't define.
7252         * config/i386/winnt.c: Include "lto-section-names.h".
7253         * lto-streamer.c: Include "lto-section-names.h".
7254         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
7255         * lto-wrapper.c: Include "lto-section-names.h".
7256         (LTO_SECTION_NAME_PREFIX): Don't define.
7257         * lto-section-names.h: New file.
7258         * cgraphunit.c: Include "lto-section-names.h".
7259
7260 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
7261
7262         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
7263
7264 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
7265
7266         PR target/61208
7267         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
7268
7269 2014-05-22  Nick Clifton  <nickc@redhat.com>
7270
7271         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
7272
7273 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
7274
7275         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
7276         -> (T)A transformation to integer types.
7277
7278 2014-05-22  Teresa Johnson  <tejohnson@google.com>
7279
7280         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
7281         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
7282         (gcov_rewrite): Use gcov_nonruntime_assert.
7283         (gcov_open): Ditto.
7284         (gcov_write_words): Ditto.
7285         (gcov_write_length): Ditto.
7286         (gcov_read_words): Use gcov_nonruntime_assert, and remove
7287         gcc_assert from IN_LIBGCOV code.
7288         (gcov_read_summary): Use gcov_error to flag profile corruption.
7289         (gcov_sync): Use gcov_nonruntime_assert.
7290         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
7291         (gcov_histo_index): Use gcov_nonruntime_assert.
7292         (static void gcov_histogram_merge): Ditto.
7293         (compute_working_sets): Ditto.
7294         * gcov-io.h (gcov_nonruntime_assert): Define.
7295         (gcov_error): Define for !IN_LIBGCOV
7296
7297 2014-05-22  Richard Biener  <rguenther@suse.de>
7298
7299         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
7300         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
7301         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
7302         and deallocation site.
7303         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
7304         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
7305         passing through the incoming points-to set.
7306         (handle_lhs_call): Use flags argument instead of recomputing it.
7307         (find_func_aliases_for_call): Call handle_lhs_call with proper
7308         call return flags.
7309
7310 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
7311
7312         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
7313         all padding bits in REAL_VALUE_TYPE are cleared.
7314
7315 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7316
7317         Cleanup and improve multipass_dfa_lookahead_guard
7318         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
7319         (core2i7_first_cycle_multipass_begin,)
7320         (core2i7_first_cycle_multipass_issue,)
7321         (core2i7_first_cycle_multipass_backtrack): Update signature.
7322         * config/ia64/ia64.c
7323         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
7324         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
7325         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
7326         hook definition.
7327         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
7328         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
7329         values.
7330         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
7331         return values.
7332         * doc/tm.texi: Regenerate.
7333         * doc/tm.texi.in
7334         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
7335         * haifa-sched.c (ready_try): Make signed to allow negative values.
7336         (rebug_ready_list_1): Update.
7337         (choose_ready): Simplify.
7338         (sched_extend_ready_list): Update.
7339
7340 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7341
7342         Remove IA64 speculation tweaking flags
7343         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
7344         speculation tuning flags.
7345         (msched-prefer-non-data-spec-insns,)
7346         (msched-prefer-non-control-spec-insns): Obsolete options.
7347         * haifa-sched.c (choose_ready): Remove handling of
7348         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
7349         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
7350         and PREFER_NON_DATA_SPEC.
7351         * sel-sched.c (process_spec_exprs): Remove handling of
7352         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
7353
7354 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7355
7356         Improve scheduling debug output
7357         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
7358         (advance_one_cycle): Update.
7359         (schedule_insn, queue_to_ready): Add debug printouts.
7360         (debug_ready_list_1): New static function.
7361         (debug_ready_list): Update.
7362         (max_issue): Add debug printouts.
7363         (dump_insn_stream): New static function.
7364         (schedule_block): Use it.  Also better indent printouts.
7365
7366 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
7367
7368         Fix sched_insn debug counter
7369         * haifa-sched.c (schedule_insn): Update.
7370         (struct haifa_saved_data): Add nonscheduled_insns_begin.
7371         (save_backtrack_point, restore_backtrack_point): Update.
7372         (first_nonscheduled_insn): New static function.
7373         (queue_to_ready, choose_ready): Use it.
7374         (schedule_block): Init nonscheduled_insns_begin.
7375         (sched_emit_insn): Update.
7376
7377
7378 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
7379
7380         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
7381         to GENERAL_REGS.
7382         (aarch64_secondary_reload) : LikeWise.
7383         (aarch64_class_max_nregs) : Remove CORE_REGS.
7384         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
7385         (REG_CLASS_NAMES) : Likewise.
7386         (REG_CLASS_CONTENTS) : LikeWise.
7387         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
7388
7389 2014-05-21  Guozhi Wei  <carrot@google.com>
7390
7391         PR target/61202
7392         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
7393         constraint.
7394         (vqdmulhq_n_s16): Likewise.
7395
7396 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
7397
7398         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
7399
7400 2014-05-21  Marek Polacek  <polacek@redhat.com>
7401
7402         PR sanitizer/61272
7403         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
7404
7405 2014-05-21  Martin Jambor  <mjambor@suse.cz>
7406
7407         * doc/invoke.texi (Optimize Options): Document parameters
7408         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
7409         ipa-cp-array-index-hint-bonus.
7410
7411 2014-05-21  Mark Wielaard  <mjw@redhat.com>
7412
7413         PR debug/16063
7414         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
7415         version >= 3 or not strict DWARF.
7416         * langhooks.h (struct lang_hooks_for_types): Add
7417         enum_underlying_base_type.
7418         * langhooks.c (lhd_enum_underlying_base_type): New function.
7419         * gcc/langhooks.h (struct lang_hooks_for_types): Add
7420         enum_underlying_base_type.
7421         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
7422         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
7423         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
7424
7425 2014-05-21  Richard Biener  <rguenther@suse.de>
7426
7427         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
7428
7429 2014-05-21  John Marino  <gnugcc@marino.st>
7430
7431         * config.gcc (*-*-dragonfly*): New target.
7432         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
7433         * configure: Regenerate.
7434         * config/dragonfly-stdint.h: New.
7435         * config/dragonfly.h: New.
7436         * config/dragonfly.opt: New.
7437         * config/i386/dragonfly.h: New.
7438         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
7439
7440 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
7441
7442         * tree.def (VOID_CST): New.
7443         * tree-core.h (TI_VOID): New.
7444         * tree.h (void_node): New.
7445         * tree.c (tree_node_structure_for_code, tree_code_size)
7446         (iterative_hash_expr): Handle VOID_CST.
7447         (build_common_tree_nodes): Initialize void_node.
7448
7449 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
7450
7451         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
7452         functions.
7453         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
7454
7455         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
7456         more places.
7457
7458         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
7459         flag_reorder_blocks_and_partition.
7460         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
7461
7462 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
7463
7464         PR target/54236
7465         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
7466         constraints.
7467         (*addc_r_t): Add new insn_and_split.
7468
7469 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
7470
7471         PR middle-end/61252
7472         * omp-low.c (handle_simd_reference): New function.
7473         (lower_rec_input_clauses): Use it.  Defer adding reference
7474         initialization even for reduction without placeholder if in simd,
7475         handle it properly later on.
7476
7477 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
7478
7479         PR tree-optimization/60899
7480         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
7481         assume all static symbols will have definition wile parsing and
7482         check the do have definition later in compilation; check that
7483         variable referring symbol will be output before concluding that
7484         reference is safe; be conservative for referring local statics;
7485         be more precise about when comdat is output in other partition.
7486
7487 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
7488
7489         PR bootstrap/60984
7490         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
7491         parameter.
7492         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
7493         (ipa_inline): Loop inline_to_all_callers until no more aliases
7494         are removed.
7495
7496 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
7497
7498         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
7499         set writeonly flag only for vars actually written to.
7500
7501 2014-05-20  Dehao Chen  <dehao@google.com>
7502
7503         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
7504         and callee count to get clone count.
7505         * tree-inline.c (expand_call_inline): Use callee count instead of bb
7506         count in copy_body.
7507
7508 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
7509
7510         PR rtl-optimization/61243
7511         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
7512
7513 2014-05-20  Xinliang David Li  <davidxl@google.com>
7514
7515         * cgraphunit.c (walk_polymorphic_call_targets): Add
7516         dbgcnt and fopt-info support.
7517         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
7518         * ipa-devirt.c (ipa_devirt): Ditto.
7519         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
7520         * ipa.c (walk_polymorphic_call_targets): Ditto.
7521         * gimple-fold.c (fold_gimple_assign): Ditto.
7522         (gimple_fold_call): Ditto.
7523         * dbgcnt.def: New counter.
7524
7525 2014-05-20  DJ Delorie  <dj@redhat.com>
7526
7527         * config/msp430/msp430.md (split): Don't allow subregs when
7528         splitting SImode adds.
7529         (andneghi): Fix subtraction logic.
7530         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
7531
7532 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
7533
7534         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
7535         symbols.
7536         * except.c (switch_to_exception_section, resolve_unique_section,
7537         get_named_text_section, default_function_rodata_section,
7538         align_variable, get_block_for_decl, default_section_type_flags):
7539         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
7540         * symtab.c (symtab_add_to_same_comdat_group,
7541         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
7542         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
7543         Likewise.
7544         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
7545         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
7546         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
7547         (c6x_function_in_section_p): Likewise.
7548         * config/darwin.c (machopic_select_section): Likewise.
7549         * config/arm/arm.c (arm_function_in_section_p): Likewise.
7550         * config/mips/mips.c (mips_function_rodata_section): Likewise.
7551         * config/mep/mep.c (mep_select_section): LIkewise.
7552         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
7553
7554 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
7555
7556         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
7557         EH region of calls to pure functions that can throw an exception.
7558         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
7559         (copy_reference_ops_from_call): Also copy the EH region of the call if
7560         it can throw an exception.
7561
7562 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7563
7564         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
7565         nested VEC_SELECTs that are inverses of each other.
7566
7567 2014-05-20  Richard Biener  <rguenther@suse.de>
7568
7569         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
7570         (extract_and_process_scc_for_name): not here.
7571         (cond_dom_walker::before_dom_children): Only process
7572         stmts that end the BB in interesting ways.
7573         (run_scc_vn): Mark param uses as visited.
7574
7575 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7576
7577         * config/arm/arm.md (arith_shiftsi): Do not predicate for
7578         arm_restrict_it.
7579
7580 2014-05-20  Nick Clifton  <nickc@redhat.com>
7581
7582         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
7583         (msp430_gimplify_va_arg_expr): New function.
7584         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
7585
7586         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
7587         operand 0 in order to prevent confusion about the number of
7588         registers involved.
7589
7590 2014-05-20  Richard Biener  <rguenther@suse.de>
7591
7592         PR tree-optimization/61221
7593         * tree-ssa-pre.c (el_to_update): Remove.
7594         (eliminate_dom_walker::before_dom_children): Handle released
7595         VDEFs by value-numbering them to the associated VUSE.  Update
7596         stmt immediately for substituted call address.
7597         (eliminate): Remove delayed stmt updating code.
7598         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
7599         possibly late re-numbered vuses.
7600         (vn_reference_lookup_2): Adjust.
7601         (vn_reference_lookup_pieces): Likewise.
7602         (vn_reference_lookup): Likewise.
7603
7604 2014-05-20  Richard Biener  <rguenther@suse.de>
7605
7606         * config.gcc: Remove need_64bit_hwint.
7607         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
7608         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
7609         it to be true.
7610         * config.in: Regenerate.
7611         * configure: Likewise.
7612
7613 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
7614
7615         * doc/extend.texi: Create Label Attributes section,
7616         move all label attributes into it and reference it.
7617
7618 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
7619
7620         * arm.c (thumb1_reorg): When scanning backwards skip anything
7621         that's not a proper insn.
7622
7623 2014-05-19  Richard Biener  <rguenther@suse.de>
7624
7625         PR tree-optimization/61221
7626         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7627         Do nothing for unreachable blocks.
7628         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
7629         Improve unreachability detection.
7630
7631 2014-05-19  Richard Biener  <rguenther@suse.de>
7632
7633         PR tree-optimization/61209
7634         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
7635
7636 2014-05-19  Nick Clifton  <nickc@redhat.com>
7637
7638         * except.c (init_eh): Fix computation of builtin setjmp buffer
7639         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
7640
7641 2014-05-19  Richard Biener  <rguenther@suse.de>
7642
7643         PR tree-optimization/61184
7644         * tree-vrp.c (is_negative_overflow_infinity): Use
7645         TREE_OVERFLOW_P and do that check first.
7646         (is_positive_overflow_infinity): Likewise.
7647         (is_overflow_infinity): Likewise.
7648         (vrp_operand_equal_p): Properly treat operands with
7649         differing overflow as not equal.
7650
7651 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
7652
7653         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
7654         shift simplification where it was intended.
7655
7656 2014-05-19  Christian Bruel  <christian.bruel@st.com>
7657
7658         PR target/61195
7659         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
7660
7661 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
7662
7663         PR target/61084
7664         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
7665         than wide_int.
7666
7667 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
7668
7669         * reg-notes.def (CROSSING_JUMP): Likewise.
7670         * rtl.h (rtx_def): Update comment for jump flag.
7671         (CROSSING_JUMP_P): Define.
7672         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
7673         of a REG_CROSSING_JUMP note.
7674         * cfghooks.c (tidy_fallthru_edges): Likewise.
7675         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
7676         * emit-rtl.c (try_split): Likewise.
7677         * haifa-sched.c (sched_create_recovery_edges): Likewise.
7678         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
7679         * jump.c (redirect_jump_2): Likewise.
7680         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
7681         (relax_delay_slots): Likewise.
7682         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
7683         (bbit_di): Likewise.
7684         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
7685         * config/sh/sh.md (jump_compact): Likewise.
7686         * bb-reorder.c (rotate_loop): Likewise.
7687         (pass_duplicate_computed_gotos::execute): Likewise.
7688         (add_reg_crossing_jump_notes): Rename to...
7689         (update_crossing_jump_flags): ...this.
7690         (pass_partition_blocks::execute): Update accordingly.
7691
7692 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
7693
7694         * tree.h: Remove extraneous template <>.
7695
7696 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
7697
7698         * ipa.c (symtab_remove_unreachable_nodes): Remove
7699         symbol from comdat group if its body was eliminated.
7700         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
7701         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
7702         (symtab_unregister_node): ... this one.
7703         (verify_symtab_base): More strict checking of comdats.
7704         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
7705
7706 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
7707
7708         * tree-pass.h (make_pass_ipa_comdats): New pass.
7709         * timevar.def (TV_IPA_COMDATS): New timevar.
7710         * passes.def (pass_ipa_comdats): Add.
7711         * Makefile.in (OBJS): Add ipa-comdats.o
7712         * ipa-comdats.c: New file.
7713
7714 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
7715
7716         * ipa.c (update_visibility_by_resolution_info): New function.
7717         (function_and_variable_visibility): Use it.
7718
7719 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
7720
7721         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
7722         New functions.
7723         (FOR_EACH_DEFINED_SYMBOL): New macro.
7724         (varpool_first_static_initializer, varpool_next_static_initializer,
7725         varpool_first_defined_variable, varpool_next_defined_variable):
7726         Fix comments.
7727         (symtab_in_same_comdat_p): Correctly deal with inline functions.
7728
7729 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
7730
7731         * ggc-page.c (ggc_handle_finalizers): Add comment.
7732
7733 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
7734
7735         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
7736         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
7737         (ggc_internal_cleared_alloc): Likewise.
7738         * ggc-page.c (finalizer): New class.
7739         (vec_finalizer): Likewise.
7740         (globals::finalizers): New member.
7741         (globals::vec_finalizers): Likewise.
7742         (ggc_internal_alloc): Record the finalizer if any for the block being
7743         allocated.
7744         (ggc_handle_finalizers): New function.
7745         (ggc_collect): Call ggc_handle_finalizers.
7746         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
7747         finalizer.
7748         (ggc_internal_cleared_alloc): Likewise.
7749         (finalize): New function.
7750         (need_finalization_p): Likewise.
7751         (ggc_alloc): Install the type's destructor as the finalizer if it
7752         might do something.
7753         (ggc_cleared_alloc): Likewise.
7754         (ggc_vec_alloc): Likewise.
7755         (ggc_cleared_vec_alloc): Likewise.
7756
7757 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
7758
7759         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
7760
7761 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
7762
7763         * alias.c (record_alias_subset): Adjust.
7764         * bitmap.c (bitmap_element_allocate): Likewise.
7765         (bitmap_gc_alloc_stat): Likewise.
7766         * cfg.c (init_flow): Likewise.
7767         (alloc_block): Likewise.
7768         (unchecked_make_edge): Likewise.
7769         * cfgloop.c (alloc_loop): Likewise.
7770         (flow_loops_find): Likewise.
7771         (rescan_loop_exit): Likewise.
7772         * cfgrtl.c (init_rtl_bb_info): Likewise.
7773         * cgraph.c (insert_new_cgraph_node_version): Likewise.
7774         (cgraph_allocate_node): Likewise.
7775         (cgraph_create_edge_1): Likewise.
7776         (cgraph_allocate_init_indirect_info): Likewise.
7777         * cgraphclones.c (cgraph_clone_edge): Likewise.
7778         * cgraphunit.c (add_asm_node): Likewise.
7779         (init_lowered_empty_function): Likewise.
7780         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
7781         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
7782         (alpha_use_linkage): Likewise.
7783         * config/arc/arc.c (arc_init_machine_status): Likewise.
7784         * config/arm/arm.c (arm_init_machine_status): Likewise.
7785         * config/avr/avr.c (avr_init_machine_status): Likewise.
7786         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
7787         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
7788         * config/cris/cris.c (cris_init_machine_status): Likewise.
7789         * config/darwin.c (machopic_indirection_name): Likewise.
7790         (darwin_build_constant_cfstring): Likewise.
7791         (darwin_enter_string_into_cfstring_table): Likewise.
7792         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
7793         * config/frv/frv.c (frv_init_machine_status): Likewise.
7794         * config/i386/i386.c (get_dllimport_decl): Likewise.
7795         (ix86_init_machine_status): Likewise.
7796         (assign_386_stack_local): Likewise.
7797         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
7798         (i386_pe_maybe_record_exported_symbol): Likewise.
7799         (i386_pe_record_stub): Likewise.
7800         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
7801         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
7802         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
7803         (m32c_note_pragma_address): Likewise.
7804         * config/mep/mep.c (mep_init_machine_status): Likewise.
7805         (mep_note_pragma_flag): Likewise.
7806         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
7807         (mips16_local_alias): Likewise.
7808         (mips_init_machine_status): Likewise.
7809         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
7810         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
7811         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
7812         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
7813         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
7814         * config/pa/pa.c (pa_init_machine_status): Likewise.
7815         (pa_get_deferred_plabel): Likewise.
7816         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
7817         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
7818         (rs6000_init_machine_status): Likewise.
7819         (output_toc): Likewise.
7820         * config/s390/s390.c (s390_init_machine_status): Likewise.
7821         * config/score/score.c (score_output_external): Likewise.
7822         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
7823         * config/spu/spu.c (spu_init_machine_status): Likewise.
7824         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
7825         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
7826         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
7827         * coverage.c (coverage_end_function): Likewise.
7828         * dbxout.c (dbxout_init): Likewise.
7829         * doc/gty.texi: Don't mention variable_size attribute.
7830         * dwarf2cfi.c (new_cfi): Adjust.
7831         (new_cfi_row): Likewise.
7832         (copy_cfi_row): Likewise.
7833         (create_cie_data): Likewise.
7834         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
7835         (new_loc_descr): Likewise.
7836         (find_AT_string_in_table): Likewise.
7837         (add_addr_table_entry): Likewise.
7838         (new_die): Likewise.
7839         (add_var_loc_to_decl): Likewise.
7840         (clone_die): Likewise.
7841         (clone_as_declaration): Likewise.
7842         (break_out_comdat_types): Likewise.
7843         (new_loc_list): Likewise.
7844         (add_loc_descr_to_each): Likewise.
7845         (add_location_or_const_value_attribute): Likewise.
7846         (add_linkage_name): Likewise.
7847         (lookup_filename): Likewise.
7848         (dwarf2out_var_location): Likewise.
7849         (new_line_info_table): Likewise.
7850         (dwarf2out_init): Likewise.
7851         (mem_loc_descriptor): Likewise.
7852         (loc_descriptor): Likewise.
7853         (add_const_value_attribute): Likewise.
7854         (tree_add_const_value_attribute): Likewise.
7855         (comp_dir_string): Likewise.
7856         (dwarf2out_vms_debug_main_pointer): Likewise.
7857         (string_cst_pool_decl): Likewise.
7858         * emit-rtl.c (set_mem_attrs): Likewise.
7859         (get_reg_attrs): Likewise.
7860         (start_sequence): Likewise.
7861         (init_emit): Likewise.
7862         (init_emit_regs): Likewise.
7863         * except.c (init_eh_for_function): Likewise.
7864         (gen_eh_region): Likewise.
7865         (gen_eh_region_catch): Likewise.
7866         (gen_eh_landing_pad): Likewise.
7867         (add_call_site): Likewise.
7868         * function.c (add_frame_space): Likewise.
7869         (insert_temp_slot_address): Likewise.
7870         (assign_stack_temp_for_type): Likewise.
7871         (get_hard_reg_initial_val): Likewise.
7872         (allocate_struct_function): Likewise.
7873         (prepare_function_start): Likewise.
7874         (types_used_by_var_decl_insert): Likewise.
7875         * gengtype.c (variable_size_p): Remove function.
7876         (enum alloc_quantity): Remove enum.
7877         (write_typed_alloc_def): Remove function.
7878         (write_typed_struct_alloc_def): Likewise.
7879         (write_typed_typedef_alloc_def): Likewise.
7880         (write_typed_alloc_defns): Likewise.
7881         (main): Adjust.
7882         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
7883         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
7884         * ggc.h (ggc_alloc): new function.
7885         (ggc_cleared_alloc): Likewise.
7886         (ggc_vec_alloc): Template on type of vector element, and remove
7887         element size argument.
7888         (ggc_cleared_vec_alloc): Likewise.
7889         * gimple.c (gimple_build_omp_for): Adjust.
7890         (gimple_copy): Likewise.
7891         * ipa-cp.c (get_replacement_map): Likewise.
7892         (find_aggregate_values_for_callers_subset): Likewise.
7893         (known_aggs_to_agg_replacement_list): Likewise.
7894         * ipa-devirt.c (get_odr_type): Likewise.
7895         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
7896         (read_agg_replacement_chain): Likewise.
7897         * loop-iv.c (get_simple_loop_desc): Likewise.
7898         * lto-cgraph.c (input_node_opt_summary): Likewise.
7899         * lto-section-in.c (lto_new_in_decl_state): Likewise.
7900         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
7901         (input_eh_region): Likewise.
7902         (input_eh_lp): Likewise.
7903         (input_cfg): Likewise.
7904         * optabs.c (set_optab_libfunc): Likewise.
7905         (init_tree_optimization_optabs): Likewise.
7906         (set_conv_libfunc): Likewise.
7907         * passes.c (do_per_function_toporder): Likewise.
7908         * rtl.h: Don't use variable_size gty attribute.
7909         * sese.c (if_region_set_false_region): Adjust.
7910         * stringpool.c (gt_pch_save_stringpool): Likewise.
7911         * target-globals.c (save_target_globals): Likewise.
7912         * toplev.c (general_init): Likewise.
7913         * trans-mem.c (record_tm_replacement): Likewise.
7914         (split_bb_make_tm_edge): Likewise.
7915         * tree-cfg.c (move_sese_region_to_fn): Likewise.
7916         * tree-data-ref.h (lambda_vector_new): Likewise.
7917         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
7918         * tree-iterator.c (tsi_link_before): Likewise.
7919         (tsi_link_after): Likewise.
7920         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
7921         * tree-ssa-loop-niter.c (record_estimate): Likewise.
7922         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
7923         * tree-ssa-operands.h: Don't use variable_size gty attribute.
7924         * tree-ssa.c (init_tree_ssa): Adjust.
7925         * tree-ssanames.c (set_range_info): Likewise.
7926         (get_ptr_info): Likewise.
7927         (duplicate_ssa_name_ptr_info): Likewise.
7928         (duplicate_ssa_name_range_info): Likewise.
7929         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
7930         (unpack_ts_fixed_cst_value_fields): Likewise.
7931         * tree.c (build_fixed): Likewise.
7932         (build_real): Likewise.
7933         (build_string): Likewise.
7934         (decl_priority_info): Likewise.
7935         (decl_debug_expr_insert): Likewise.
7936         (decl_value_expr_insert): Likewise.
7937         (decl_debug_args_insert): Likewise.
7938         (type_hash_add): Likewise.
7939         (build_omp_clause): Likewise.
7940         * ubsan.c (decl_for_type_insert): Likewise.
7941         * varasm.c (get_unnamed_section): Likewise.
7942         (get_noswitch_section): Likewise.
7943         (get_section): Likewise.
7944         (get_block_for_section): Likewise.
7945         (create_block_symbol): Likewise.
7946         (build_constant_desc): Likewise.
7947         (create_constant_pool): Likewise.
7948         (force_const_mem): Likewise.
7949         (record_tm_clone_pair): Likewise.
7950         * varpool.c (varpool_create_empty_node): Likewise.
7951
7952 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
7953
7954         * dwarf2out.c (tree_add_const_value_attribute): Call
7955         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
7956         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
7957         instead of ggc_internal_<x>alloc_stat.
7958         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
7959         (ggc_realloc): Likewise.
7960         * ggc-none.c (ggc_internal_alloc): Likewise.
7961         (ggc_internal_cleared_alloc): Likewise.
7962         * ggc-page.c: Likewise.
7963         * ggc.h (ggc_internal_alloc_stat): Likewise.
7964         (ggc_internal_alloc): Remove macro.
7965         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
7966         (ggc_internal_cleared_alloc): Remove macro.
7967         (GGC_RESIZEVEC): Adjust.
7968         (ggc_resizevar): Remove macro.
7969         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
7970         (ggc_internal_cleared_vec_alloc_stat): Likewise.
7971         (ggc_internal_vec_cleared_alloc): Remove macro.
7972         (ggc_alloc_atomic_stat): Drop _stat suffix.
7973         (ggc_alloc_atomic): Remove macro.
7974         (ggc_alloc_cleared_atomic): Remove macro.
7975         (ggc_alloc_string_stat): Drop _stat suffix.
7976         (ggc_alloc_string): Remove macro.
7977         (ggc_alloc_rtx_def_stat): Adjust.
7978         (ggc_alloc_tree_node_stat): Likewise.
7979         (ggc_alloc_cleared_tree_node_stat): Likewise.
7980         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
7981         (ggc_alloc_cleared_simd_clone_stat): Likewise.
7982         * gimple.c (gimple_build_omp_for): Likewise.
7983         (gimple_copy): Likewise.
7984         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
7985         * toplev.c (realloc_for_line_map): Adjust.
7986         * tree-data-ref.h (lambda_vector_new): Likewise.
7987         * tree-phinodes.c (allocate_phi_node): Likewise.
7988         * tree.c (grow_tree_vec_stat): Likewise.
7989         * vec.h (va_gc::reserve): Adjust.
7990
7991 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
7992
7993         * config/microblaze/microblaze.c (break_handler): New Declaration.
7994         (microblaze_break_function_p,microblaze_is_break_handler): New.
7995         (compute_frame_size): Use microblaze_break_function_p.
7996         Add the test of break_handler.
7997         (microblaze_function_prologue) : Add the test of variable
7998         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
7999         (microblaze_function_epilogue) : Add the test of break_handler.
8000         (microblaze_globalize_label) : Add the test of break_handler.
8001         Check the name by BREAK_HANDLER_NAME.
8002
8003         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
8004
8005         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
8006         microblaze_is_break_handler test.
8007         (call_internal1,call_value_intern): Use microblaze_break_function_p.
8008         Use SYMBOL_REF_DECL.
8009
8010         * config/microblaze/microblaze-protos.h
8011         (microblaze_break_function_p,microblaze_is_break_handler):
8012         New Declaration.
8013
8014         * doc/extend.texi (MicroBlaze break_handler Functions): Document
8015         new MicroBlaze break_handler functions.
8016
8017 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
8018
8019         * doc/extend.texi (Size of an asm): Move node text according
8020         to its @menu entry position.
8021
8022 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
8023
8024         PR tree-optimization/61140
8025         PR tree-optimization/61150
8026         PR tree-optimization/61197
8027         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
8028
8029 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
8030
8031         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
8032
8033 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
8034
8035         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
8036         __SIZEOF_INT128__ is defined.
8037
8038 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
8039
8040         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
8041         (rs6000_delegitimize_address): Use it.
8042
8043 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
8044
8045         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
8046         inplace argument.  Store the new address in the original MEM when true.
8047         * emit-rtl.c (change_address_1): Likewise.
8048         (adjust_address_1, adjust_automodify_address_1, offset_address):
8049         Update accordingly.
8050         * rtl.h (plus_constant): Add an inplace argument.
8051         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
8052         when true.  Avoid generating (plus X (const_int 0)).
8053         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
8054         in-place.  Pass true to plus_constant.
8055         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
8056
8057 2014-05-16  Dehao Chen  <dehao@google.com>
8058
8059         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
8060
8061 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
8062
8063         PR target/54089
8064         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
8065         patterns.
8066         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
8067
8068 2014-05-16  Dehao Chen  <dehao@google.com>
8069
8070         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
8071         optimize_function_for_size_p.
8072         * regs.h (REG_FREQ_FROM_BB): Likewise.
8073
8074 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
8075
8076         PR target/51244
8077         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
8078         negt_reg_operand cases.
8079         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
8080         predicate.
8081         * config/sh/predicates.md (cbranch_treg_value): Simplify.
8082
8083 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
8084
8085         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
8086         target variants.
8087
8088 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
8089
8090         Revert:
8091         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
8092
8093         * tree-cfg.c (dump_function_to_file): Dump the return type of
8094         functions, in a line to itself before the function body, mimicking
8095         the layout of a C function.
8096
8097 2014-05-16  Dehao Chen  <dehao@google.com>
8098
8099         * cfghooks.c (make_forwarder_block): Use direct computation to
8100         get fall-through edge's count and frequency.
8101
8102 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
8103
8104         * config/arc/arc.c (arc_init): Fix typo in error message.
8105         * config/i386/i386.c (ix86_expand_builtin): Likewise.
8106         (split_stack_prologue_scratch_regno): Likewise.
8107         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
8108         word from error message.
8109
8110 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
8111
8112         * ira-costs.c: Fix typo in comment.
8113
8114 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
8115
8116         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
8117
8118 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
8119
8120         * varpool.c (dump_varpool_node): Dump write-only flag.
8121         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
8122         write-only flag.
8123         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
8124         write-only variables.
8125         * ipa.c (process_references): New function.
8126         (set_readonly_bit): New function.
8127         (set_writeonly_bit): New function.
8128         (clear_addressable_bit): New function.
8129         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
8130         fix handling of aliases.
8131         * cgraph.h (struct varpool_node): Add writeonly flag.
8132
8133 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
8134
8135         PR rtl-optimization/60969
8136         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
8137         Calculate costs for this case.
8138
8139 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
8140
8141         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
8142         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
8143
8144 2014-05-16  Richard Biener  <rguenther@suse.de>
8145
8146         PR tree-optimization/61194
8147         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
8148         bool patterns ending in a COND_EXPR.
8149
8150 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8151
8152         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
8153
8154 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8155
8156         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
8157         where we were unable to cost an RTX.
8158
8159 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8160
8161         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
8162         HIGH, LO_SUM.
8163
8164 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8165             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8166
8167         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
8168
8169 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8170             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8171
8172         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
8173         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
8174
8175 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8176             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8177
8178         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
8179         operators.
8180
8181 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8182             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8183
8184         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
8185         DIV/MOD.
8186
8187 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8188             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8189
8190         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
8191         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
8192
8193 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8194             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8195
8196         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
8197         rotates and shifts.
8198
8199 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8200             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8201
8202         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
8203         ZERO_EXTEND and SIGN_EXTEND better.
8204
8205 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8206             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8207
8208         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
8209         logical operations.
8210
8211 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8212             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8213
8214         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
8215         costs when costing loads and stores to memory.
8216
8217 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8218             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
8219
8220         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
8221         for SET RTX.
8222
8223 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8224
8225         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
8226
8227 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8228             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8229
8230         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
8231         to...
8232         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
8233         well formed.
8234         (aarch64_rtx_mult_cost): New.
8235         (aarch64_rtx_costs): Use it, refactor as appropriate.
8236
8237 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8238             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
8239
8240         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
8241         emit instructions, return number of instructions which would
8242         be emitted.
8243         (aarch64_add_constant): Update call to aarch64_build_constant.
8244         (aarch64_output_mi_thunk): Likewise.
8245         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
8246         a CONST_DOUBLE.
8247
8248 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8249
8250         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
8251         (TARGET_RTX_COSTS): Call it.
8252
8253 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8254
8255         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
8256         (cortexa57_vector_cost): Likewise.
8257         (cortexa57_tunings): Use them.
8258
8259 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
8260
8261         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
8262         (cpu_addrcost_table): Use it.
8263         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
8264         (aarch64_address_cost): Rewrite using aarch64_classify_address,
8265         move it.
8266
8267 2014-05-16  Richard Biener  <rguenther@suse.de>
8268
8269         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
8270         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
8271         (visit_phi): Ignore edges marked as not executable.
8272         (class cond_dom_walker): New.
8273         (cond_dom_walker::before_dom_children): Value-number
8274         control statements and mark successor edges as not
8275         executable if possible.
8276         (run_scc_vn): First walk all control statements in
8277         dominator order, marking edges as not executable.
8278         * tree-inline.c (copy_edges_for_bb): Be not confused
8279         about random edge flags.
8280
8281 2014-05-16  Richard Biener  <rguenther@suse.de>
8282
8283         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
8284
8285 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
8286
8287         PR target/61193
8288         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
8289         (__TM_simple_begin): Use it.
8290         (__TM_begin): Likewise.
8291
8292 2014-05-15  Martin Jambor  <mjambor@suse.cz>
8293
8294         PR ipa/61085
8295         * ipa-prop.c (update_indirect_edges_after_inlining): Check
8296         type_preserved flag when the indirect edge is polymorphic.
8297
8298 2014-05-15  Martin Jambor  <mjambor@suse.cz>
8299
8300         PR tree-optimization/61090
8301         * tree-sra.c (sra_modify_expr): Pass the current gsi to
8302         build_ref_for_model.
8303
8304 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8305
8306         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
8307         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
8308
8309 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
8310
8311         PR tree-optimization/61158
8312         * fold-const.c (fold_binary_loc): If X is zero-extended and
8313         shiftc >= prec, make sure zerobits is all ones instead of
8314         invoking undefined behavior.
8315
8316 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8317
8318         * regcprop.h: New file.
8319         * regcprop.c (skip_debug_insn_p): New decl.
8320         (replace_oldest_value_reg): Check skip_debug_insn_p.
8321         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
8322         * shrink-wrap.c: Include regcprop.h.
8323         (prepare_shrink_wrap): Call
8324         copyprop_hardreg_forward_bb_without_debug_insn.
8325
8326 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8327
8328         * shrink-wrap.h: Update comment.
8329         * shrink-wrap.c: Update comment.
8330         (next_block_for_reg): Rename to live_edge_for_reg.
8331         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
8332         (move_insn_for_shrink_wrap): Split live_edge.
8333         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
8334
8335 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8336
8337         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
8338         Delete.
8339         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
8340         * config/sparc/sparc.md (fptype_ut699): New attribute.
8341         (in_branch_delay): Return false if -mfix-ut699 is specified and
8342         fptype_ut699 is set to single.
8343         (truncdfsf2): Add fptype_ut699 attribute.
8344         (fix_truncdfsi2): Likewise.
8345         (floatsisf2): Change fptype attribute.
8346         (fix_truncsfsi2): Likewise.
8347         (negtf2_notv9): Delete.
8348         (negtf2_v9): Likewise.
8349         (negtf2_hq): New instruction.
8350         (negtf2): New instruction and splitter.
8351         (negdf2_notv9): Rewrite.
8352         (abstf2_notv9): Delete.
8353         (abstf2_hq_v9): Likewise.
8354         (abstf2_v9): Likewise.
8355         (abstf2_hq): New instruction.
8356         (abstf2): New instruction and splitter.
8357         (absdf2_notv9): Rewrite.
8358
8359 2014-05-14  Cary Coutant  <ccoutant@google.com>
8360
8361         PR debug/61013
8362         * opts.c (common_handle_option): Don't special-case "-g".
8363         (set_debug_level): Default to at least level 2 with "-g".
8364
8365 2014-05-14  DJ Delorie  <dj@redhat.com>
8366
8367         * config/msp430/msp430.c (msp430_builtin): Add
8368         MSP430_BUILTIN_DELAY_CYCLES.
8369         (msp430_init_builtins): Register void __delay_cycles(long long).
8370         (msp430_builtin_decl): Add it.
8371         (cg_magic_constant): New.
8372         (msp430_expand_delay_cycles): New.
8373         (msp430_expand_builtin): Call it.
8374         (msp430_print_operand_raw): Change integer printing from "int" to
8375         HOST_WIDE_INT.
8376         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
8377         (delay_cycles_start): New.
8378         (delay_cycles_end): New.
8379         (delay_cycles_32): New.
8380         (delay_cycles_32x): New.
8381         (delay_cycles_16): New.
8382         (delay_cycles_16x): New.
8383         (delay_cycles_2): New.
8384         (delay_cycles_1): New.
8385         * doc/extend.texi: Document __delay_cycles().
8386
8387 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
8388
8389         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
8390         length attribute computation.
8391
8392 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
8393
8394         PR debug/61188
8395         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
8396
8397 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
8398
8399         PR target/61084
8400         * config/sparc/sparc.md: Fix types of low and high in DI constant
8401         splitter.  Use gen_int_mode in some other splitters.
8402
8403 2014-05-14  Martin Jambor  <mjambor@suse.cz>
8404
8405         PR ipa/60897
8406         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
8407
8408 2014-05-14  James Norris  <jnorris@codesourcery.com>
8409
8410         * omp-low.c (expand_parallel_call): Remove shadow variable.
8411         (expand_omp_taskreg): Likewise.
8412
8413 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
8414
8415         * common/config/i386/i386-common.c
8416         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
8417         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
8418         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
8419         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
8420         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
8421         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
8422         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
8423         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
8424         xsavecintrin.h, xsavesintrin.h.
8425         (x86_64-*-*): Ditto.
8426         * config/i386/clflushoptintrin.h: New.
8427         * config/i386/xsavecintrin.h: Ditto.
8428         * config/i386/xsavesintrin.h: Ditto.
8429         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
8430         (bit_XSAVES): Ditto.
8431         (bit_XSAVES): Ditto.
8432         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
8433         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
8434         -mno-clflushopt.
8435         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
8436         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
8437         OPTION_MASK_ISA_XSAVES.
8438         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
8439         -mxsavec, -mxsaves.
8440         (PTA_CLFLUSHOPT) Define.
8441         (PTA_XSAVEC): Ditto.
8442         (PTA_XSAVES): Ditto.
8443         (ix86_option_override_internal): Handle new options.
8444         (ix86_valid_target_attribute_inner_p): Ditto.
8445         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
8446         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
8447         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
8448         (bdesc_special_args): Add __builtin_ia32_xsaves,
8449         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
8450         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
8451         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
8452         (ix86_expand_builtin): Handle new builtins.
8453         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
8454         (TARGET_CLFLUSHOPT_P): Ditto.
8455         (TARGET_XSAVEC): Ditto.
8456         (TARGET_XSAVEC_P): Ditto.
8457         (TARGET_XSAVES): Ditto.
8458         (TARGET_XSAVES_P): Ditto.
8459         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
8460         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
8461         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
8462         (ANY_XRSTOR): New.
8463         (ANY_XRSTOR64): Ditto.
8464         (xrstor): Ditto.
8465         (xrstor): Change into <xrstor>.
8466         (xrstor_rex64): Change into <xrstor>_rex64.
8467         (xrstor64): Change into <xrstor>64
8468         (clflushopt): New.
8469         * config/i386/i386.opt (mclflushopt): New.
8470         (mxsavec): Ditto.
8471         (mxsaves): Ditto.
8472         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
8473         xsavecintrin.h.
8474         * doc/invoke.texi: Document new options.
8475
8476 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
8477
8478         PR rtl-optimization/60866
8479         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
8480         Default it to -1.  Pass it down to init_simplejump_data.
8481         (init_simplejump_data): New parameter old_seqno.  Pass it down
8482         to get_seqno_for_a_jump.
8483         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
8484         initializing new jump seqno as a last resort.  Add comment.
8485         (sel_redirect_edge_and_branch): Save old seqno of the conditional
8486         jump and pass it down to sel_init_new_insn.
8487         (sel_redirect_edge_and_branch_force): Likewise.
8488
8489 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
8490
8491         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
8492         shifted values to avoid build warning.
8493
8494 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
8495
8496         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
8497         * cfgrtl.c (rtl_merge_blocks): Fix comment.
8498         (cfg_layout_merge_blocks): Likewise.
8499         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
8500
8501 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
8502
8503         PR rtl-optimization/60901
8504         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
8505         bb predecessor belongs to the same scheduling region.  Adjust comment.
8506
8507 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
8508
8509         * doc/sourcebuild.texi: (dfp_hw): Document.
8510         (p8vector_hw): Likewise.
8511         (powerpc_eabi_ok): Likewise.
8512         (powerpc_elfv2): Likewise.
8513         (powerpc_htm_ok): Likewise.
8514         (ppc_recip_hw): Likewise.
8515         (vsx_hw): Likewise.
8516
8517 2014-05-13  Cary Coutant  <ccoutant@google.com>
8518
8519         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
8520
8521 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
8522
8523         * gengtype-parse.c (require3): Eliminate in favor of...
8524         (require4): New.
8525         (require_template_declaration): Update to support optional single *
8526         on a type.
8527
8528         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
8529         (create_user_defined_type): Handle a single level of explicit
8530         pointerness within template arguments.
8531         (struct write_types_data): Add field "kind".
8532         (filter_type_name): Handle "*" character.
8533         (write_user_func_for_structure_ptr): Require a write_types_data
8534         rather than just a prefix string, so that we can look up the kind
8535         of the wtd and use it as an index into wrote_user_func_for_ptr,
8536         ensuring that such functions are written at most once.  Support
8537         subclasses by invoking the marking function of the ultimate base class.
8538         (write_user_func_for_structure_body): Require a write_types_data
8539         rather than just a prefix string, so that we can pass this to
8540         write_user_func_for_structure_ptr.
8541         (write_func_for_structure): Likewise.
8542         (ggc_wtd): Add initializer of new "kind" field.
8543         (pch_wtd): Likewise.
8544
8545         * gengtype.h (enum write_types_kinds): New.
8546         (struct type): Add field wrote_user_func_for_ptr to the "s"
8547         union member.
8548
8549 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
8550
8551         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
8552         instead of const_binop.
8553         (fold_binary_loc): Likewise.
8554
8555 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
8556
8557         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
8558         calculation to match get_ref_base_and_extent.
8559
8560 2014-05-13  Catherine Moore  <clm@codesourcery.com>
8561             Sandra Loosemore  <sandra@codesourcery.com>
8562
8563         * configure.ac: Fix assembly for explicit JALR relocation check.
8564         * configure: Regenerate.
8565
8566 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8567
8568         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
8569         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
8570         Remove associated type declarations and initialisations.
8571         (arm_expand_neon_builtin): Likewise.
8572         (neon_emit_pair_result_insn): Delete.
8573         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
8574         * config/arm/neon.md (neon_vtrn<mode>): Delete.
8575         (neon_vzip<mode>): Likewise.
8576         (neon_vuzp<mode>): Likewise.
8577
8578 2014-05-13  Richard Biener  <rguenther@suse.de>
8579
8580         PR ipa/60973
8581         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
8582         it needs revisiting whether the call still may be tail-called.
8583
8584 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8585
8586         * rtl.def (SYMBOL_REF): Remove middle "0" field.
8587         * rtl.h (block_symbol): Reduce number of fields to 2.
8588         (rtx_def): Add u2.symbol_ref_flags.
8589         (SYMBOL_REF_FLAGS): Use it.
8590         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
8591         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
8592         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
8593         Lower index of SYMBOL_REF_DATA.
8594         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
8595         Print SYMBOL_REF_FLAGS at the same time.
8596         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
8597
8598 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8599
8600         * rtl.def (VAR_LOCATION): Remove "i" field.
8601         * rtl.h (rtx_def): Add u2.var_location_status.
8602         (PAT_VAR_LOCATION_STATUS): Use it.
8603         (gen_rtx_VAR_LOCATION): Declare.
8604         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
8605         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
8606         * var-tracking.c (emit_note_insn_var_location): Remove casts.
8607
8608 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8609
8610         * rtl.def (scratch): Fix outdated comment and remove "0" field.
8611         * gengtype.c (adjust_field_rtx_def): Update accordingly.
8612
8613 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8614
8615         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
8616         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
8617         * rtl.h (rtx_def): Add insn_uid to u2 field.
8618         (RTX_FLAG_CHECK8): Delete in favor of...
8619         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
8620         (INSN_DELETED_P): Update accordingly.
8621         (INSN_UID): Use u2.insn_uid.
8622         (INSN_CHAIN_CODE_P): Define.
8623         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
8624         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
8625         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
8626         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
8627         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
8628         indices accordingly.
8629         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
8630         Update indices for insn-chain rtxes.
8631         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
8632         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
8633         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
8634         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
8635         * combine.c (try_combine): Likewise.
8636         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8637
8638 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8639
8640         * rtl.def (REG): Remove middle field.
8641         * rtl.h (rtx_def): Add orignal_regno to u2.
8642         (ORIGINAL_REGNO): Use it instead of field 1.
8643         (REG_ATTRS): Lower field index accordingly.
8644         * gengtype.c (adjust_field_rtx_def): Remove handling of
8645         ORIGINAL_REGNO.  Move REG_ATTRS index down.
8646         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
8647         code that prints the REGNO.
8648
8649 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8650
8651         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
8652         GENERATOR_FILE.
8653
8654 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
8655
8656         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
8657
8658 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
8659
8660         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
8661         (alloc_iv): Lower base expressions containing ADDR_EXPR.
8662
8663 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
8664
8665         * config/aarch64/aarch64-protos.h
8666         (aarch64_hard_regno_caller_save_mode): New prototype.
8667         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
8668         New function.
8669         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8670
8671 2014-05-13  Christian Bruel  <christian.bruel@st.com>
8672
8673         * target.def (mode_switching): New hook vector.
8674         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
8675         (mode_exit, modepriority_to_mode): Likewise.
8676         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
8677         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
8678         * target.h: Include tm.h and hard-reg-set.h.
8679         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
8680         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
8681         * doc/tm.texi Regenerate.
8682         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
8683         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
8684         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
8685         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
8686         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
8687         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
8688         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
8689         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
8690         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
8691         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
8692         (ix86_emit_mode_set): Hookify.
8693         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
8694         Delete.
8695         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
8696         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
8697         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
8698         (epiphany_mode_priority_to_mode): Remove declaration.
8699         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
8700         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
8701         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
8702         Likewise.
8703         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
8704         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
8705         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
8706
8707 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
8708
8709         PR target/61060
8710         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
8711         is const0_rtx, return immediately.  Don't test count == 0 when
8712         it is always true.
8713
8714 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
8715
8716         * Makefile.in: add shrink-wrap.o.
8717         * config/i386/i386.c: include "shrink-wrap.h"
8718         * function.c: Likewise.
8719         (requires_stack_frame_p, next_block_for_reg,
8720         move_insn_for_shrink_wrap, prepare_shrink_wrap,
8721         dup_block_and_redirect): Move to shrink-wrap.c
8722         (thread_prologue_and_epilogue_insns): Extract three code segments
8723         as functions in shrink-wrap.c
8724         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
8725         shrink-wrap.h
8726         * shrink-wrap.c: New file.
8727         * shrink-wrap.h: New file.
8728
8729 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
8730
8731         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
8732         reference to Solaris.
8733
8734 2014-05-12  Mike Stump  <mikestump@comcast.net>
8735
8736         PR other/31778
8737         * genattrtab.c (filename): Add.
8738         (convert_set_attr_alternative): Improve error message.
8739         (check_defs): Restore read_md_filename for error messages.
8740         (gen_insn): Save filename.
8741
8742 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
8743
8744         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
8745         -fno-local-ivars and -fivar-visibility.
8746         * c-family/c.opt: Make -Wshadow also implicitly enable
8747         -Wshadow-ivar.
8748
8749 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
8750
8751         * doc/tm.texi: Remove reference to deleted macro.
8752         * doc/tm.texi.in: Likewise.
8753
8754 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8755
8756         PR target/60991
8757         * config/avr/avr.c (avr_out_store_psi): Use correct constant
8758         to restore Y.
8759
8760 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
8761
8762         PR libgcc/61152
8763         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
8764         * config/arm/aout.h (License): Same.
8765         * config/arm/bpabi.h (License): Same.
8766         * config/arm/elf.h (License): Same.
8767         * config/arm/linux-elf.h (License): Same.
8768         * config/arm/linux-gas.h (License): Same.
8769         * config/arm/netbsd-elf.h (License): Same.
8770         * config/arm/uclinux-eabi.h (License): Same.
8771         * config/arm/uclinux-elf.h (License): Same.
8772         * config/arm/vxworks.h (License): Same.
8773
8774 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
8775
8776         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
8777         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
8778         number of operands to 3.
8779         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
8780         * tree-nested.c (convert_nonlocal_omp_clauses,
8781         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
8782         * gimplify.c (gimplify_scan_omp_clauses): Handle
8783         OMP_CLAUSE_LINEAR_STMT.
8784         * omp-low.c (lower_rec_input_clauses): Fix typo.
8785         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
8786         cast between Fortran boolean_type_node and C _Bool if
8787         needed.
8788
8789 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
8790
8791         PR tree-optimization/61136
8792         * wide-int.h (multiple_of_p): Define a version that doesn't return
8793         the quotient.
8794         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
8795         integer_zerop/const_binop pair.
8796         (multiple_of_p): Likewise, converting both operands to widest_int
8797         precision.
8798
8799 2014-05-09  Teresa Johnson  <tejohnson@google.com>
8800
8801         * cgraphunit.c (analyze_functions): Use correct dump file.
8802
8803 2014-05-09  Florian Weimer  <fweimer@redhat.com>
8804
8805         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
8806         expand_used_vars.
8807         (stack_protect_return_slot_p): New function.
8808         (expand_used_vars): Call stack_protect_decl_p and
8809         stack_protect_return_slot_p for -fstack-protector-strong.
8810
8811 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
8812         Andrew Haley <aph@redhat.com>
8813         Richard Sandiford <rdsandiford@googlemail.com>
8814
8815         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
8816         pages.
8817
8818 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
8819
8820         PR middle-end/61111
8821         * fold-const.c (fold_binary_loc): Changed width of mask.
8822
8823 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
8824
8825         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
8826         unsigned int initializers for regno_in, regno_out.
8827
8828 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
8829
8830         PR target/61055
8831         * config/avr/avr.md (cc): Add new attribute set_vzn.
8832         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
8833         Set cc insn attribute to set_vzn instead of set_zn for alternatives
8834         with INC, DEC or NEG.
8835         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
8836         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
8837         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
8838
8839 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8840
8841         Revert:
8842         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8843
8844         * wide-int.cc (UTItype): Define.
8845         (UDWtype): Define for appropriate W_TYPE_SIZE.
8846
8847 2014-05-09  Richard Biener  <rguenther@suse.de>
8848
8849         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
8850         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
8851         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
8852         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
8853         ssa_propagate): Adjust.
8854
8855 2014-05-08  Jeff Law  <law@redhat.com>
8856
8857         PR tree-optimization/61009
8858         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
8859         tri-state rather than a boolean.  When a block is too big to
8860         thread through, inform caller via negative return value.
8861         (thread_across_edge): If a block was too big for normal threading,
8862         then it's too big for a joiner too, so remove temporary equivalences
8863         and return immediately.
8864
8865 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8866             Matthias Klose  <doko@ubuntu.com>
8867
8868         PR driver/61106
8869         * optc-gen.awk: Fix option handling for -Wunused-parameter.
8870
8871 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
8872
8873         PR target/59952
8874         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
8875
8876 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
8877
8878         PR target/61092
8879         * config/alpha/alpha.c: Include gimple-iterator.h.
8880         (alpha_gimple_fold_builtin): New function.  Move
8881         ALPHA_BUILTIN_UMULH folding from ...
8882         (alpha_fold_builtin): ... here.
8883         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
8884
8885 2014-05-08  Wei Mi  <wmi@google.com>
8886
8887         PR target/58066
8888         * config/i386/i386.c (ix86_compute_frame_layout): Update
8889         preferred_stack_boundary for call, expanded from tls descriptor.
8890         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
8891         to depend on SP register.
8892         (*tls_local_dynamic_base_32_gnu): Ditto.
8893         (*tls_local_dynamic_32_once): Ditto.
8894         (tls_global_dynamic_64_<mode>): Set
8895         ix86_tls_descriptor_calls_expanded_in_cfun.
8896         (tls_local_dynamic_base_64_<mode>): Ditto.
8897         (tls_global_dynamic_32): Set
8898         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
8899         to depend on SP register.
8900         (tls_local_dynamic_base_32): Ditto.
8901
8902 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8903
8904         * config/arm/arm_neon.h: Update comment.
8905         * config/arm/neon-docgen.ml: Delete.
8906         * config/arm/neon-gen.ml: Delete.
8907         * doc/arm-neon-intrinsics.texi: Update comment.
8908
8909 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8910
8911         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
8912         and v4sf versions.
8913         (vand, vorr, veor, vorn, vbic): Remove.
8914         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
8915         iterator.
8916         (neon_vsub_unspec): Likewise.
8917         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
8918
8919 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8920
8921         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
8922         (vadd_s16): Likewise.
8923         (vadd_s32): Likewise.
8924         (vadd_f32): Likewise.
8925         (vadd_u8): Likewise.
8926         (vadd_u16): Likewise.
8927         (vadd_u32): Likewise.
8928         (vadd_s64): Likewise.
8929         (vadd_u64): Likewise.
8930         (vaddq_s8): Likewise.
8931         (vaddq_s16): Likewise.
8932         (vaddq_s32): Likewise.
8933         (vaddq_s64): Likewise.
8934         (vaddq_f32): Likewise.
8935         (vaddq_u8): Likewise.
8936         (vaddq_u16): Likewise.
8937         (vaddq_u32): Likewise.
8938         (vaddq_u64): Likewise.
8939         (vmul_s8): Likewise.
8940         (vmul_s16): Likewise.
8941         (vmul_s32): Likewise.
8942         (vmul_f32): Likewise.
8943         (vmul_u8): Likewise.
8944         (vmul_u16): Likewise.
8945         (vmul_u32): Likewise.
8946         (vmul_p8): Likewise.
8947         (vmulq_s8): Likewise.
8948         (vmulq_s16): Likewise.
8949         (vmulq_s32): Likewise.
8950         (vmulq_f32): Likewise.
8951         (vmulq_u8): Likewise.
8952         (vmulq_u16): Likewise.
8953         (vmulq_u32): Likewise.
8954         (vsub_s8): Likewise.
8955         (vsub_s16): Likewise.
8956         (vsub_s32): Likewise.
8957         (vsub_f32): Likewise.
8958         (vsub_u8): Likewise.
8959         (vsub_u16): Likewise.
8960         (vsub_u32): Likewise.
8961         (vsub_s64): Likewise.
8962         (vsub_u64): Likewise.
8963         (vsubq_s8): Likewise.
8964         (vsubq_s16): Likewise.
8965         (vsubq_s32): Likewise.
8966         (vsubq_s64): Likewise.
8967         (vsubq_f32): Likewise.
8968         (vsubq_u8): Likewise.
8969         (vsubq_u16): Likewise.
8970         (vsubq_u32): Likewise.
8971         (vsubq_u64): Likewise.
8972         (vand_s8): Likewise.
8973         (vand_s16): Likewise.
8974         (vand_s32): Likewise.
8975         (vand_u8): Likewise.
8976         (vand_u16): Likewise.
8977         (vand_u32): Likewise.
8978         (vand_s64): Likewise.
8979         (vand_u64): Likewise.
8980         (vandq_s8): Likewise.
8981         (vandq_s16): Likewise.
8982         (vandq_s32): Likewise.
8983         (vandq_s64): Likewise.
8984         (vandq_u8): Likewise.
8985         (vandq_u16): Likewise.
8986         (vandq_u32): Likewise.
8987         (vandq_u64): Likewise.
8988         (vorr_s8): Likewise.
8989         (vorr_s16): Likewise.
8990         (vorr_s32): Likewise.
8991         (vorr_u8): Likewise.
8992         (vorr_u16): Likewise.
8993         (vorr_u32): Likewise.
8994         (vorr_s64): Likewise.
8995         (vorr_u64): Likewise.
8996         (vorrq_s8): Likewise.
8997         (vorrq_s16): Likewise.
8998         (vorrq_s32): Likewise.
8999         (vorrq_s64): Likewise.
9000         (vorrq_u8): Likewise.
9001         (vorrq_u16): Likewise.
9002         (vorrq_u32): Likewise.
9003         (vorrq_u64): Likewise.
9004         (veor_s8): Likewise.
9005         (veor_s16): Likewise.
9006         (veor_s32): Likewise.
9007         (veor_u8): Likewise.
9008         (veor_u16): Likewise.
9009         (veor_u32): Likewise.
9010         (veor_s64): Likewise.
9011         (veor_u64): Likewise.
9012         (veorq_s8): Likewise.
9013         (veorq_s16): Likewise.
9014         (veorq_s32): Likewise.
9015         (veorq_s64): Likewise.
9016         (veorq_u8): Likewise.
9017         (veorq_u16): Likewise.
9018         (veorq_u32): Likewise.
9019         (veorq_u64): Likewise.
9020         (vbic_s8): Likewise.
9021         (vbic_s16): Likewise.
9022         (vbic_s32): Likewise.
9023         (vbic_u8): Likewise.
9024         (vbic_u16): Likewise.
9025         (vbic_u32): Likewise.
9026         (vbic_s64): Likewise.
9027         (vbic_u64): Likewise.
9028         (vbicq_s8): Likewise.
9029         (vbicq_s16): Likewise.
9030         (vbicq_s32): Likewise.
9031         (vbicq_s64): Likewise.
9032         (vbicq_u8): Likewise.
9033         (vbicq_u16): Likewise.
9034         (vbicq_u32): Likewise.
9035         (vbicq_u64): Likewise.
9036         (vorn_s8): Likewise.
9037         (vorn_s16): Likewise.
9038         (vorn_s32): Likewise.
9039         (vorn_u8): Likewise.
9040         (vorn_u16): Likewise.
9041         (vorn_u32): Likewise.
9042         (vorn_s64): Likewise.
9043         (vorn_u64): Likewise.
9044         (vornq_s8): Likewise.
9045         (vornq_s16): Likewise.
9046         (vornq_s32): Likewise.
9047         (vornq_s64): Likewise.
9048         (vornq_u8): Likewise.
9049         (vornq_u16): Likewise.
9050         (vornq_u32): Likewise.
9051         (vornq_u64): Likewise.
9052
9053 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9054
9055         * wide-int.cc (UTItype): Define.
9056         (UDWtype): Define for appropriate W_TYPE_SIZE.
9057
9058 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
9059
9060         PR tree-optimization/59100
9061         * tree-ssa-phiopt.c: Include tree-inline.h.
9062         (neutral_element_p, absorbing_element_p): New functions.
9063         (value_replacement): Handle conditional binary operations with a
9064         neutral or absorbing element.
9065
9066 2014-05-08  Richard Biener  <rguenther@suse.de>
9067
9068         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
9069         folding the expression.
9070         (valueize_expr): Remove.
9071         (visit_reference_op_load): Do not valueize the result of
9072         vn_get_expr_for.
9073         (simplify_binary_expression): Likewise.
9074         (simplify_unary_expression): Likewise.
9075
9076 2014-05-08  Richard Biener  <rguenther@suse.de>
9077
9078         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
9079         looking at TYPE_ARG_TYPES.
9080
9081 2014-05-08  Richard Biener  <rguenther@suse.de>
9082
9083         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9084         pointer propagation special-case.
9085
9086 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
9087
9088         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
9089         core part of address expressions.
9090
9091 2014-05-08  Alan Modra  <amodra@gmail.com>
9092
9093         PR target/60737
9094         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
9095         loads and stores when -mno-strict-align at any alignment.
9096         (expand_block_clear): Similarly.  Also correct calculation of
9097         instruction count.
9098
9099 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9100
9101         PR middle-end/39246
9102         * tree-complex.c (expand_complex_move): Keep line info when expanding
9103         complex move.
9104         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
9105         of complex expression. Use new argument to display correct location
9106         for values coming from phi statement.
9107         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
9108         (warn_uninitialized_phi): Pass location of phi argument to
9109         warn_uninit.
9110         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
9111         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
9112
9113 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
9114
9115         * config/rs6000/predicates.md (indexed_address_mem): New.
9116         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
9117         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
9118         fpstore_ux, fpstore_u.
9119         (sign_extend, indexed, update): New.
9120         (cell_micro): Adjust.
9121         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
9122         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
9123         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
9124         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
9125         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
9126         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
9127         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
9128         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
9129         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
9130         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
9131         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
9132         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
9133         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
9134         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
9135         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
9136
9137         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
9138         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
9139         *vsx_extract_<mode>_store): Adjust.
9140         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
9141         is_cracked_insn, insn_must_be_first_in_group,
9142         insn_must_be_last_in_group): Adjust.
9143
9144         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
9145         Adjust.
9146         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
9147         ppc440-fpstore): Adjust.
9148         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
9149         ppc476-fpstore): Adjust.
9150         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
9151         ppc601-fpstore): Adjust.
9152         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
9153         Adjust.
9154         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
9155         Adjust.
9156         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
9157         ppc7450-fpstore): Adjust.
9158         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
9159         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
9160         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
9161         Adjust.
9162         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
9163         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
9164         cell-fpstore, cell-fpstore-update): Adjust.
9165         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
9166         ppce300c3_store, ppce300c3_fpstore): Adjust.
9167         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
9168         e500mc_fpstore): Adjust.
9169         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
9170         e500mc64_store, e500mc64_fpstore): Adjust.
9171         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
9172         e5500_fpstore): Adjust.
9173         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
9174         e6500_fpstore): Adjust.
9175         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
9176         Adjust.
9177         * config/rs6000/power4.md (power4-load, power4-load-ext,
9178         power4-load-ext-update, power4-load-ext-update-indexed,
9179         power4-load-update-indexed, power4-load-update, power4-fpload,
9180         power4-fpload-update, power4-store, power4-store-update,
9181         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
9182         Adjust.
9183         * config/rs6000/power5.md (power5-load, power5-load-ext,
9184         power5-load-ext-update, power5-load-ext-update-indexed,
9185         power5-load-update-indexed, power5-load-update, power5-fpload,
9186         power5-fpload-update, power5-store, power5-store-update,
9187         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
9188         Adjust.
9189         * config/rs6000/power6.md (power6-load, power6-load-ext,
9190         power6-load-update, power6-load-update-indexed,
9191         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
9192         power6-fpload-update, power6-store, power6-store-update,
9193         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
9194         Adjust.
9195         * config/rs6000/power7.md (power7-load, power7-load-ext,
9196         power7-load-update, power7-load-update-indexed,
9197         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
9198         power7-fpload-update, power7-store, power7-store-update,
9199         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
9200         Adjust.
9201         * config/rs6000/power8.md (power8-load, power8-load-update,
9202         power8-load-ext, power8-load-ext-update, power8-fpload,
9203         power8-fpload-update, power8-store, power8-store-update-indexed,
9204         power8-fpstore, power8-fpstore-update): Adjust.
9205         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
9206         Adjust.
9207         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
9208         titan_lsu_store, titan_lsu_fpstore): Adjust.
9209         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
9210
9211 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
9212
9213         PR target/60884
9214         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
9215         unrolled byte insns.  Emit address increments after move insns.
9216
9217 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
9218
9219         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
9220         const_gimple, rather than a gimple.
9221         (gimple_call_builtin_p): Likewise, for the three variants.
9222
9223         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
9224         (gimple_call_builtin_p): Likewise, for the three variants.
9225
9226 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
9227
9228         PR tree-optimization/61095
9229         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
9230
9231 2014-05-07  Richard Biener  <rguenther@suse.de>
9232
9233         PR tree-optimization/61034
9234         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
9235         (maybe_skip_until): Use translate to take into account
9236         lattices when trying to do disambiguations.
9237         (get_continuation_for_phi_1): Likewise.
9238         (get_continuation_for_phi): Adjust for added translate arguments.
9239         (walk_non_aliased_vuses): Likewise.
9240         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
9241         (walk_non_aliased_vuses): Likewise.
9242         (call_may_clobber_ref_p_1): Declare.
9243         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
9244         calls.  Stop early if we are only supposed to disambiguate.
9245         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
9246
9247 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
9248
9249         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
9250         Emit an error when the function has arguments.
9251
9252 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
9253
9254         * cfgloop.h (unswitch_loops): Remove.
9255         * doc/passes.texi: Remove references to loop-unswitch.c
9256         * timevar.def (TV_LOOP_UNSWITCH): Remove.
9257
9258 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
9259
9260         * tree-vect-data-refs.c (vect_grouped_load_supported): New
9261         check for loads group of length 3.
9262         (vect_permute_load_chain): New permutations for loads group of
9263         length 3.
9264         * tree-vect-stmts.c (vect_model_load_cost): Change cost
9265         of vec_perm_shuffle for the new permutations.
9266
9267 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
9268
9269         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
9270         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
9271         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
9272         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
9273         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
9274         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
9275         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
9276         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
9277
9278 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
9279
9280         * loop-unswitch.c: Delete.
9281
9282 2014-05-07  Richard Biener  <rguenther@suse.de>
9283
9284         * config.gcc: Always set need_64bit_hwint to yes.
9285
9286 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
9287
9288         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
9289         of using optimize_size.
9290
9291 2014-05-06  Mike Stump  <mikestump@comcast.net>
9292
9293         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
9294
9295 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
9296
9297         * config/i386/sse.md (*mov<mode>_internal)
9298         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
9299         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
9300         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
9301         (*<code><mode>3, *andnot<mode>3<mask_name>)
9302         (<mask_codefor><code><mode>3<mask_name>): Only consider
9303         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
9304
9305 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
9306
9307         Revert:
9308         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
9309
9310         * lra-constraints.c (valid_address_p): Move earlier in file.
9311         Add a constraint argument to the address_info version.
9312         (satisfies_memory_constraint_p): New function.
9313         (satisfies_address_constraint_p): Likewise.
9314         (process_alt_operands, curr_insn_transform): Use them.
9315         (process_address): Pass the constraint to valid_address_p when
9316         checking address operands.
9317
9318 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
9319
9320         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
9321         to their respective blocks.  Fix inadvertent use of "node".
9322
9323 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
9324
9325         * emit-rtl.c (init_derived_machine_modes): New functionm, split
9326         out from...
9327         (init_emit_once): ...here.
9328         * rtl.h (init_derived_machine_modes): Declare.
9329         * toplev.c (do_compile): Call it even if no_backend.
9330
9331 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
9332             Mike Stump  <mikestump@comcast.net>
9333             Richard Sandiford  <rdsandiford@googlemail.com>
9334             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9335
9336         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
9337         (rtx_equal_for_memref_p): Update comment.
9338         (adjust_offset_for_component_ref): Use wide-int interfaces.
9339         * builtins.c (get_object_alignment_2): Likewise.
9340         (c_readstr): Likewise.
9341         (target_char_cast): Add comment.
9342         (determine_block_size): Use wide-int interfaces.
9343         (expand_builtin_signbit): Likewise.
9344         (fold_builtin_int_roundingfn): Likewise.
9345         (fold_builtin_bitop): Likewise.
9346         (fold_builtin_bswap): Likewise.
9347         (fold_builtin_logarithm): Use signop.
9348         (fold_builtin_pow): Likewise.
9349         (fold_builtin_memory_op): Use wide-int interfaces.
9350         (fold_builtin_object_size): Likewise.
9351         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
9352         nb_iterations_estimate.
9353         (record_niter_bound): Use wide-int interfaces.
9354         (get_estimated_loop_iterations_int): Likewise.
9355         (get_estimated_loop_iterations): Likewise.
9356         (get_max_loop_iterations): Likewise.
9357         * cfgloop.h: Include wide-int.h.
9358         (struct nb_iter_bound): Change bound to widest_int.
9359         (struct loop): Change nb_iterations_upper_bound and
9360         nb_iterations_estimate to widest_int.
9361         (record_niter_bound): Switch to use widest_int.
9362         (get_estimated_loop_iterations): Likewise.
9363         (get_max_loop_iterations): Likewise.
9364         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
9365         update for wide-int.
9366         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
9367         * combine.c (try_combine): Likewise.
9368         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
9369         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
9370         interfaces.
9371         (aarch64_float_const_representable_p): Likewise.
9372         * config/arc/arc.c: Include wide-int.h.
9373         (arc_can_use_doloop_p): Use wide-int interfaces.
9374         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
9375         (vfp3_const_double_index): Likewise.
9376         * config/avr/avr.c (avr_out_round): Likewise.
9377         (avr_fold_builtin): Likewise.
9378         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
9379         (bfin_can_use_doloop_p): Likewise.
9380         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
9381         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
9382         * config/i386/i386.c: Include wide-int.h.
9383         (ix86_data_alignment): Use wide-int interfaces.
9384         (ix86_local_alignment): Likewise.
9385         (ix86_emit_swsqrtsf): Update real_from_integer.
9386         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
9387         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
9388         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
9389         (zero_constant): Likewise.
9390         (input_operand): Likewise.
9391         (splat_input_operand): Likewise.
9392         (non_logical_cint_operand): Change const_double to const_wide_int.
9393         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
9394         (easy_altivec_constant): Remove comment.
9395         (paired_expand_vector_init): Use CONSTANT_P.
9396         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
9397         (rs6000_emit_move): Update checks.
9398         (rs6000_aggregate_candidate): Use wide-int interfaces.
9399         (rs6000_expand_ternop_builtin): Likewise.
9400         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
9401         (rs6000_assemble_integer): Likewise.
9402         (rs6000_hash_constant): Likewise.
9403         (output_toc): Likewise.
9404         (rs6000_rtx_costs): Likewise.
9405         (rs6000_emit_swrsqrt); Update call to real_from_integer.
9406         * config/rs6000/rs6000-c.c: Include wide-int.h.
9407         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
9408         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
9409         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
9410         Handle CONST_WIDE_INT.
9411         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
9412         Use tree_fits_uhwi_p.
9413         * config/sparc/sparc.c: Include wide-int.h.
9414         (sparc_fold_builtin): Use wide-int interfaces.
9415         * config/vax/vax.c: Include wide-int.h.
9416         (vax_float_literal): Use real_from_integer.
9417         * coretypes.h (struct hwivec_def): New.
9418         (hwivec): New.
9419         (const_hwivec): New.
9420         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
9421         (equiv_constant): Handle CONST_WIDE_INT.
9422         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
9423         (cselib_hash_rtx): Handle CONST_WIDE_INT.
9424         * dbxout.c (stabstr_U): Use wide-int interfaces.
9425         (dbxout_type): Update to use cst_fits_shwi_p.
9426         * defaults.h (LOG2_BITS_PER_UNIT): Define.
9427         (TARGET_SUPPORTS_WIDE_INT): Add default.
9428         * dfp.c: Include wide-int.h.
9429         (decimal_real_to_integer2): Use wide-int interfaces and rename to
9430         decimal_real_to_integer.
9431         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
9432         decimal_real_to_integer.
9433         * doc/generic.texi (Constant expressions): Update for wide_int.
9434         * doc/rtl.texi (const_double): Likewise.
9435         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
9436         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
9437         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
9438         (REAL_VALUE_FROM_INT): Remove.
9439         (TARGET_SUPPORTS_WIDE_INT): New.
9440         * doc/tm.texi: Regenerate.
9441         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
9442         * double-int.h: Include wide-int.h.
9443         (struct wi::int_traits): New.
9444         * dwarf2out.c (get_full_len): New.
9445         (dw_val_equal_p): Add case dw_val_class_wide_int.
9446         (size_of_loc_descr): Likewise.
9447         (output_loc_operands): Likewise.
9448         (insert_double): Remove.
9449         (insert_wide_int): New.
9450         (add_AT_wide): New.
9451         (print_die): Add case dw_val_class_wide_int.
9452         (attr_checksum): Likewise.
9453         (attr_checksum_ordered): Likewise.
9454         (same_dw_val_p): Likewise.
9455         (size_of_die): Likewise.
9456         (value_format): Likewise.
9457         (output_die): Likewise.
9458         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
9459         Use wide-int.
9460         (clz_loc_descriptor): Use wide-int interfaces.
9461         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
9462         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
9463         (round_up_to_align): Use wide-int interfaces.
9464         (field_byte_offset): Likewise.
9465         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
9466         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
9467         CONST_DOUBLE handling.  Use wide-int interfaces.
9468         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
9469         (gen_enumeration_type_die): Use add_AT_wide.
9470         (hash_loc_operands): Add case dw_val_class_wide_int.
9471         (compare_loc_operands): Likewise.
9472         * dwarf2out.h: Include wide-int.h.
9473         (wide_int_ptr): New.
9474         (enum dw_val_class): Add dw_val_class_wide_int.
9475         (struct dw_val_struct): Add val_wide.
9476         * emit-rtl.c (const_wide_int_htab): New.
9477         (const_wide_int_htab_hash): New.
9478         (const_wide_int_htab_eq): New.
9479         (lookup_const_wide_int): New.
9480         (const_double_htab_hash): Use wide-int interfaces.
9481         (const_double_htab_eq): Likewise.
9482         (rtx_to_double_int): Conditionally compile for wide-int.
9483         (immed_double_int_const): Rename to immed_wide_int_const and
9484         update for wide-int.
9485         (immed_double_const): Conditionally compile for wide-int.
9486         (init_emit_once): Use wide-int interfaces.
9487         * explow.c (plus_constant): Likewise.
9488         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
9489         (lshift_value): Use wide-int interfaces.
9490         (expand_mult): Likewise.
9491         (choose_multiplier): Likewise.
9492         (expand_smod_pow2): Likewise.
9493         (make_tree): Likewise.
9494         * expr.c (convert_modes): Consolidate handling of constants.
9495         Use wide-int interfaces.
9496         (emit_group_load_1): Add note.
9497         (store_expr): Update comment.
9498         (get_inner_reference): Use wide-int interfaces.
9499         (expand_constructor): Update comment.
9500         (expand_expr_real_2): Use wide-int interfaces.
9501         (expand_expr_real_1): Likewise.
9502         (reduce_to_bit_field_precision): Likewise.
9503         (const_vector_from_tree): Likewise.
9504         * final.c: Include wide-int-print.h.
9505         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
9506         * fixed-value.c: Include wide-int.h.
9507         (fixed_from_string): Use wide-int interfaces.
9508         (fixed_to_decimal): Likewise.
9509         (fixed_convert_from_real): Likewise.
9510         (real_convert_from_fixed): Likewise.
9511         * fold-const.h (mem_ref_offset): Return an offset_int.
9512         (div_if_zero_remainder): Remove code parameter.
9513         * fold-const.c (div_if_zero_remainder): Remove code parameter.
9514         Use wide-int interfaces.
9515         (may_negate_without_overflow_p): Use wide-int interfaces.
9516         (negate_expr_p): Likewise.
9517         (fold_negate_expr): Likewise.
9518         (int_const_binop_1): Likewise.
9519         (const_binop): Likewise.
9520         (fold_convert_const_int_from_int): Likewise.
9521         (fold_convert_const_int_from_real): Likewise.
9522         (fold_convert_const_int_from_fixed): Likewise.
9523         (fold_convert_const_fixed_from_int): Likewise.
9524         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
9525         (sign_bit_p): Use wide-int interfaces.
9526         (make_range_step): Likewise.
9527         (build_range_check): Likewise.  Pass an integer of the correct type
9528         instead of using integer_one_node.
9529         (range_predecessor): Pass an integer of the correct type instead
9530         of using integer_one_node.
9531         (range_successor): Likewise.
9532         (merge_ranges): Likewise.
9533         (unextend): Use wide-int interfaces.
9534         (extract_muldiv_1): Likewise.
9535         (fold_div_compare): Likewise.
9536         (fold_single_bit_test): Likewise.
9537         (fold_sign_changed_comparison): Likewise.
9538         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
9539         (fold_plusminus_mult_expr): Use wide-int interfaces.
9540         (native_encode_int): Likewise.
9541         (native_interpret_int): Likewise.
9542         (fold_unary_loc): Likewise.
9543         (pointer_may_wrap_p): Likewise.
9544         (size_low_cst): Likewise.
9545         (mask_with_tz): Likewise.
9546         (fold_binary_loc): Likewise.
9547         (fold_ternary_loc): Likewise.
9548         (multiple_of_p): Likewise.
9549         (tree_call_nonnegative_warnv_p): Update calls to
9550         tree_int_cst_min_precision and real_from_integer.
9551         (fold_negate_const): Use wide-int interfaces.
9552         (fold_abs_const): Likewise.
9553         (fold_relational_const): Use tree_int_cst_lt.
9554         (round_up_loc): Use wide-int interfaces.
9555         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
9556         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
9557         * gengtype.c: Remove include of double-int.h.
9558         (do_typedef): Use wide-int interfaces.
9559         (open_base_files): Add wide-int.h.
9560         (main): Add offset_int and widest_int typedefs.
9561         * gengtype-lex.l: Handle "^".
9562         (CXX_KEYWORD): Add "static".
9563         * gengtype-parse.c (require3): New.
9564         (require_template_declaration): Handle constant template arguments
9565         and nested templates.
9566         * gengtype-state.c: Don't include "double-int.h".
9567         * genpreds.c (write_one_predicate_function): Update comment.
9568         (write_tm_constrs_h): Add check for hval and lval use in
9569         CONST_WIDE_INT.
9570         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
9571         (add_to_sequence): Likewise.
9572         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
9573         and const_double_operand.
9574         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
9575         interfaces.
9576         * gimple-fold.c (get_base_constructor): Likewise.
9577         (fold_array_ctor_reference): Likewise.
9578         (fold_nonarray_ctor_reference): Likewise.
9579         (fold_const_aggregate_ref_1): Likewise.
9580         (gimple_val_nonnegative_real_p): Likewise.
9581         (gimple_fold_indirect_ref): Likewise.
9582         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
9583         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
9584         (struct slsr_cand_d): Change index to be widest_int.
9585         (struct incr_info_d): Change incr to be widest_int.
9586         (alloc_cand_and_find_basis): Use wide-int interfaces.
9587         (slsr_process_phi): Likewise.
9588         (backtrace_base_for_ref): Likewise.  Return a widest_int.
9589         (restructure_reference): Take a widest_int instead of a double_int.
9590         (slsr_process_ref): Use wide-int interfaces.
9591         (create_mul_ssa_cand): Likewise.
9592         (create_mul_imm_cand): Likewise.
9593         (create_add_ssa_cand): Likewise.
9594         (create_add_imm_cand): Take a widest_int instead of a double_int.
9595         (slsr_process_add): Use wide-int interfaces.
9596         (slsr_process_cast): Likewise.
9597         (slsr_process_copy): Likewise.
9598         (dump_candidate): Likewise.
9599         (dump_incr_vec): Likewise.
9600         (replace_ref): Likewise.
9601         (cand_increment): Likewise.  Return a widest_int.
9602         (cand_abs_increment): Likewise.
9603         (replace_mult_candidate): Take a widest_int instead of a double_int.
9604         (replace_unconditional_candidate): Use wide-int interfaces.
9605         (incr_vec_index): Take a widest_int instead of a double_int.
9606         (create_add_on_incoming_edge): Likewise.
9607         (create_phi_basis): Use wide-int interfaces.
9608         (replace_conditional_candidate): Likewise.
9609         (record_increment): Take a widest_int instead of a double_int.
9610         (record_phi_increments): Use wide-int interfaces.
9611         (phi_incr_cost): Take a widest_int instead of a double_int.
9612         (lowest_cost_path): Likewise.
9613         (total_savings): Likewise.
9614         (analyze_increments): Use wide-int interfaces.
9615         (ncd_with_phi): Take a widest_int instead of a double_int.
9616         (ncd_of_cand_and_phis): Likewise.
9617         (nearest_common_dominator_for_cands): Likewise.
9618         (insert_initializers): Use wide-int interfaces.
9619         (all_phi_incrs_profitable): Likewise.
9620         (replace_one_candidate): Likewise.
9621         (replace_profitable_candidates): Likewise.
9622         * godump.c: Include wide-int-print.h.
9623         (go_output_typedef): Use wide-int interfaces.
9624         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
9625         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
9626         (build_loop_iteration_domains): Likewise.
9627         * hooks.h: Include wide-int.h rather than double-int.h.
9628         (hook_bool_dint_dint_uint_bool_true): Delete.
9629         (hook_bool_wint_wint_uint_bool_true): Declare.
9630         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
9631         (hook_bool_wint_wint_uint_bool_true): New.
9632         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
9633         interfaces.
9634         (ubsan_expand_si_overflow_mul_check): Likewise.
9635         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
9636         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
9637         (get_ancestor_addr_info): Likewise.
9638         (ipa_modify_call_arguments): Likewise.
9639         * loop-doloop.c (doloop_modify): Likewise.
9640         (doloop_optimize): Likewise.
9641         * loop-iv.c (iv_number_of_iterations): Likewise.
9642         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
9643         (unroll_loop_constant_iterations): Likewise.
9644         (decide_unroll_runtime_iterations): Likewise.
9645         (unroll_loop_runtime_iterations): Likewise.
9646         (decide_peel_simple): Likewise.
9647         (decide_unroll_stupid): Likewise.
9648         * lto-streamer-in.c (streamer_read_wi): Add.
9649         (input_cfg): Use wide-int interfaces.
9650         (lto_input_tree_1): Likewise.
9651         * lto-streamer-out.c (streamer_write_wi): Add.
9652         (hash_tree): Use wide-int interfaces.
9653         (output_cfg): Likewise.
9654         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
9655         (GTFILES): Add wide-int.h and signop.h.
9656         (TAGS): Look for .cc files too.
9657         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
9658         * optabs.c (expand_subword_shift): Likewise.
9659         (expand_doubleword_shift): Likewise.
9660         (expand_absneg_bit): Likewise.
9661         (expand_copysign_absneg): Likewise.
9662         (expand_copysign_bit): Likewise.
9663         * postreload.c (reload_cse_simplify_set): Likewise.
9664         * predict.c (predict_iv_comparison): Likewise.
9665         * pretty-print.h: Include wide-int-print.h.
9666         (pp_wide_int) New.
9667         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
9668         * print-tree.c: Include wide-int-print.h.
9669         (print_node_brief): Use wide-int interfaces.
9670         (print_node): Likewise.
9671         * read-rtl.c (validate_const_wide_int): New.
9672         (read_rtx_code): Add CONST_WIDE_INT case.
9673         * real.c: Include wide-int.h.
9674         (real_to_integer2): Delete.
9675         (real_to_integer): New function, returning a wide_int.
9676         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
9677         (ten_to_ptwo): Update call to real_from_integer.
9678         (real_digit): Likewise.
9679         * real.h: Include signop.h, wide-int.h and insn-modes.h.
9680         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
9681         (REAL_VALUE_TO_INT): Delete.
9682         (real_to_integer): Declare a wide-int form.
9683         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
9684         * recog.c (const_int_operand): Improve comment.
9685         (const_scalar_int_operand): New.
9686         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
9687         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
9688         (split_double): Likewise.
9689         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
9690         (rtx_size): Likewise.
9691         (rtx_alloc_stat_v): New.
9692         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
9693         (cwi_output_hex): New.
9694         (iterative_hash_rtx): Handle CONST_WIDE_INT.
9695         (cwi_check_failed_bounds): New.
9696         * rtl.def (CONST_WIDE_INT): New.
9697         * rtl.h: Include <utility> and wide-int.h.
9698         (struct hwivec_def): New.
9699         (CWI_GET_NUM_ELEM): New.
9700         (CWI_PUT_NUM_ELEM): New.
9701         (struct rtx_def): Add num_elem and hwiv.
9702         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
9703         (CASE_CONST_UNIQUE): Likewise.
9704         (CASE_CONST_ANY): Likewise.
9705         (CONST_SCALAR_INT_P): Likewise.
9706         (CONST_WIDE_INT_P): New.
9707         (CWI_ELT): New.
9708         (HWIVEC_CHECK): New.
9709         (cwi_check_failed_bounds): New.
9710         (CWI_ELT): New.
9711         (HWIVEC_CHECK): New.
9712         (CONST_WIDE_INT_VEC) New.
9713         (CONST_WIDE_INT_NUNITS) New.
9714         (CONST_WIDE_INT_ELT) New.
9715         (rtx_mode_t): New type.
9716         (wi::int_traits <rtx_mode_t>): New.
9717         (wi::shwi): New.
9718         (wi::min_value): New.
9719         (wi::max_value): New.
9720         (rtx_alloc_v) New.
9721         (const_wide_int_alloc): New.
9722         (immed_wide_int_const): New.
9723         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
9724         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
9725         * signop.h: New file.
9726         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
9727         (simplify_const_unary_operation): Use wide-int interfaces.
9728         (simplify_binary_operation_1): Likewise.
9729         (simplify_const_binary_operation): Likewise.
9730         (simplify_const_relational_operation): Likewise.
9731         (simplify_immed_subreg): Likewise.
9732         * stmt.c (expand_case): Likewise.
9733         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
9734         signop rather than a bool.
9735         * stor-layout.c (layout_type): Use wide-int interfaces.
9736         (initialize_sizetypes): Update calls to
9737         set_min_and_max_values_for_integral_type.
9738         (set_min_and_max_values_for_integral_type): Take a signop rather
9739         than a bool.  Use wide-int interfaces.
9740         (fixup_signed_type): Update accordingly.  Remove
9741         HOST_BITS_PER_DOUBLE_INT limit.
9742         (fixup_unsigned_type): Likewise.
9743         * system.h (STATIC_CONSTANT_P): New.
9744         (STATIC_ASSERT): New.
9745         * target.def (can_use_doloop_p): Take widest_ints rather than
9746         double_ints.
9747         * target.h: Include wide-int.h rather than double-int.h.
9748         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
9749         than double_ints.
9750         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
9751         rather than INT_CST_LT_UNSIGNED.
9752         (can_use_doloop_if_innermost): Take widest_ints rather than
9753         double_ints.
9754         * tree-affine.c: Include wide-int-print.h.
9755         (double_int_ext_for_comb): Delete.
9756         (wide_int_ext_for_comb): New.
9757         (aff_combination_zero): Use wide-int interfaces.
9758         (aff_combination_const): Take a widest_int instead of a double_int.
9759         (aff_combination_elt): Use wide-int interfaces.
9760         (aff_combination_scale): Take a widest_int instead of a double_int.
9761         (aff_combination_add_elt): Likewise.
9762         (aff_combination_add_cst): Likewise.
9763         (aff_combination_add): Use wide-int interfaces.
9764         (aff_combination_convert): Likewise.
9765         (tree_to_aff_combination): Likewise.
9766         (add_elt_to_tree): Take a widest_int instead of a double_int.
9767         (aff_combination_to_tree): Use wide-int interfaces.
9768         (aff_combination_remove_elt): Likewise.
9769         (aff_combination_add_product): Take a widest_int instead of
9770         a double_int.
9771         (aff_combination_mult): Use wide-int interfaces.
9772         (aff_combination_expand): Likewise.
9773         (double_int_constant_multiple_p): Delete.
9774         (wide_int_constant_multiple_p): New.
9775         (aff_combination_constant_multiple_p): Take a widest_int pointer
9776         instead of a double_int pointer.
9777         (print_aff): Use wide-int interfaces.
9778         (get_inner_reference_aff): Take a widest_int pointer
9779         instead of a double_int pointer.
9780         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
9781         * tree-affine.h: Include wide-int.h.
9782         (struct aff_comb_elt): Change type of coef to widest_int.
9783         (struct affine_tree_combination): Change type of offset to widest_int.
9784         (double_int_ext_for_comb): Delete.
9785         (wide_int_ext_for_comb): New.
9786         (aff_combination_const): Use widest_int instead of double_int.
9787         (aff_combination_scale): Likewise.
9788         (aff_combination_add_elt): Likewise.
9789         (aff_combination_constant_multiple_p): Likewise.
9790         (get_inner_reference_aff): Likewise.
9791         (aff_comb_cannot_overlap_p): Likewise.
9792         (aff_combination_zero_p): Use wide-int interfaces.
9793         * tree.c: Include tree.h.
9794         (init_ttree): Use make_int_cst.
9795         (tree_code_size): Removed code for INTEGER_CST case.
9796         (tree_size): Add INTEGER_CST case.
9797         (make_node_stat): Update comment.
9798         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
9799         (build_int_cst_type): Use wide-int interfaces.
9800         (double_int_to_tree): Likewise.
9801         (double_int_fits_to_tree_p): Delete.
9802         (force_fit_type_double): Delete.
9803         (force_fit_type): New.
9804         (int_cst_hash_hash): Use wide-int interfaces.
9805         (int_cst_hash_eq): Likewise.
9806         (build_int_cst_wide): Delete.
9807         (wide_int_to_tree): New.
9808         (cache_integer_cst): Use wide-int interfaces.
9809         (build_low_bits_mask): Likewise.
9810         (cst_and_fits_in_hwi): Likewise.
9811         (real_value_from_int_cst): Likewise.
9812         (make_int_cst_stat): New.
9813         (integer_zerop): Use wide_int interfaces.
9814         (integer_onep): Likewise.
9815         (integer_all_onesp): Likewise.
9816         (integer_pow2p): Likewise.
9817         (integer_nonzerop): Likewise.
9818         (tree_log2): Likewise.
9819         (tree_floor_log2): Likewise.
9820         (tree_ctz): Likewise.
9821         (int_size_in_bytes): Likewise.
9822         (mem_ref_offset): Return an offset_int rather than a double_int.
9823         (build_type_attribute_qual_variant): Use wide_int interfaces.
9824         (type_hash_eq): Likewise
9825         (tree_int_cst_equal): Likewise.
9826         (tree_int_cst_lt): Delete.
9827         (tree_int_cst_compare): Likewise.
9828         (tree_fits_shwi_p): Use wide_int interfaces.
9829         (tree_fits_uhwi_p): Likewise.
9830         (tree_int_cst_sign_bit): Likewise.
9831         (tree_int_cst_sgn): Likewise.
9832         (tree_int_cst_min_precision): Take a signop rather than a bool.
9833         (simple_cst_equal): Use wide_int interfaces.
9834         (compare_tree_int): Likewise.
9835         (iterative_hash_expr): Likewise.
9836         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
9837         INT_CST_LT.
9838         (get_type_static_bounds): Use wide_int interfaces.
9839         (tree_int_cst_elt_check_failed): New.
9840         (build_common_tree_nodes): Reordered to set prec before filling in
9841         value.
9842         (int_cst_value): Check cst_and_fits_in_hwi.
9843         (widest_int_cst_value): Use wide_int interfaces.
9844         (upper_bound_in_type): Likewise.
9845         (lower_bound_in_type): Likewise.
9846         (num_ending_zeros): Likewise.
9847         (drop_tree_overflow): Likewise.
9848         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
9849         (gen_conditions_for_pow_cst_base): Likewise.
9850         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
9851         (group_case_labels_stmt): Use wide-int interfaces.
9852         (verify_gimple_assign_binary): Likewise.
9853         (print_loop): Likewise.
9854         * tree-chrec.c (tree_fold_binomial): Likewise.
9855         * tree-core.h (struct tree_base): Add int_length.
9856         (struct tree_int_cst): Change rep of value.
9857         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
9858         (dr_may_alias_p): Likewise.
9859         (max_stmt_executions_tree): Likewise.
9860         * tree.def (INTEGER_CST): Update comment.
9861         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
9862         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
9863         * tree-dump.c: Include wide-int.h and wide-int-print.h.
9864         (dequeue_and_dump): Use wide-int interfaces.
9865         * tree.h: Include wide-int.h.
9866         (NULL_TREE): Moved to earlier loc in file.
9867         (TREE_INT_CST_ELT_CHECK): New.
9868         (tree_int_cst_elt_check_failed): New.
9869         (TYPE_SIGN): New.
9870         (TREE_INT_CST): Delete.
9871         (TREE_INT_CST_LOW): Use wide-int interfaces.
9872         (TREE_INT_CST_HIGH): Delete.
9873         (TREE_INT_CST_NUNITS): New.
9874         (TREE_INT_CST_EXT_NUNITS): Likewise.
9875         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
9876         (TREE_INT_CST_ELT): Likewise.
9877         (INT_CST_LT): Delete.
9878         (tree_int_cst_elt_check): New (two forms).
9879         (type_code_size): Update comment.
9880         (make_int_cst_stat, make_int_cst): New.
9881         (tree_to_double_int): Delete.
9882         (double_int_fits_to_tree_p): Delete.
9883         (force_fit_type_double): Delete.
9884         (build_int_cstu): Replace with out-of-line function.
9885         (build_int_cst_wide): Delete.
9886         (tree_int_cst_lt): Define inline.
9887         (tree_int_cst_le): New.
9888         (tree_int_cst_compare): Define inline.
9889         (tree_int_cst_min_precision): Take a signop rather than a bool.
9890         (wi::int_traits <const_tree>): New.
9891         (wi::int_traits <tree>): New.
9892         (wi::extended_tree): New.
9893         (wi::int_traits <wi::extended_tree>): New.
9894         (wi::to_widest): New.
9895         (wi::to_offset): New.
9896         (wi::fits_to_tree_p): New.
9897         (wi::min_value): New.
9898         (wi::max_value): New.
9899         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
9900         (copy_tree_body_r): Likewise.
9901         * tree-object-size.c (compute_object_offset): Likewise.
9902         (addr_object_size): Likewise.
9903         * tree-predcom.c: Include wide-int-print.h.
9904         (struct dref_d): Change type of offset to widest_int.
9905         (dump_dref): Call wide-int printer.
9906         (aff_combination_dr_offset): Use wide-int interfaces.
9907         (determine_offset): Take a widest_int pointer rather than a
9908         double_int pointer.
9909         (split_data_refs_to_components): Use wide-int interfaces.
9910         (suitable_component_p): Likewise.
9911         (order_drefs): Likewise.
9912         (add_ref_to_chain): Likewise.
9913         (valid_initializer_p): Likewise.
9914         (determine_roots_comp): Likewise.
9915         * tree-pretty-print.c: Include wide-int-print.h.
9916         (dump_generic_node): Use wide-int interfaces.
9917         * tree-sra.c (sra_ipa_modify_expr): Likewise.
9918         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
9919         (move_fixed_address_to_symbol): Likewise.
9920         (move_hint_to_base): Likewise.
9921         (move_pointer_to_base): Likewise.
9922         (move_variant_to_index): Likewise.
9923         (most_expensive_mult_to_index): Likewise.
9924         (addr_to_parts): Likewise.
9925         (copy_ref_info): Likewise.
9926         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
9927         (indirect_refs_may_alias_p): Likewise.
9928         (stmt_kills_ref_p_1): Likewise.
9929         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
9930         * tree-ssa-ccp.c: Update comment at top of file.  Include
9931         wide-int-print.h.
9932         (struct prop_value_d): Change type of mask to widest_int.
9933         (extend_mask): New function.
9934         (dump_lattice_value): Use wide-int interfaces.
9935         (get_default_value): Likewise.
9936         (set_constant_value): Likewise.
9937         (set_value_varying): Likewise.
9938         (valid_lattice_transition): Likewise.
9939         (set_lattice_value): Likewise.
9940         (value_to_double_int): Delete.
9941         (value_to_wide_int): New.
9942         (get_value_from_alignment): Use wide-int interfaces.
9943         (get_value_for_expr): Likewise.
9944         (do_dbg_cnt): Likewise.
9945         (ccp_finalize): Likewise.
9946         (ccp_lattice_meet): Likewise.
9947         (bit_value_unop_1): Use widest_ints rather than double_ints.
9948         (bit_value_binop_1): Likewise.
9949         (bit_value_unop): Use wide-int interfaces.
9950         (bit_value_binop): Likewise.
9951         (bit_value_assume_aligned): Likewise.
9952         (evaluate_stmt): Likewise.
9953         (ccp_fold_stmt): Likewise.
9954         (visit_cond_stmt): Likewise.
9955         (ccp_visit_stmt): Likewise.
9956         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
9957         (constant_pointer_difference): Likewise.
9958         (associate_pointerplus): Likewise.
9959         (combine_conversions): Likewise.
9960         * tree-ssa-loop.h: Include wide-int.h.
9961         (struct tree_niter_desc): Change type of max to widest_int.
9962         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
9963         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
9964         (remove_redundant_iv_tests): Likewise.
9965         (canonicalize_loop_induction_variables): Likewise.
9966         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
9967         (constant_multiple_of): Take a widest_int pointer instead of
9968         a double_int pointer.
9969         (get_computation_aff): Use wide-int interfaces.
9970         (ptr_difference_cost): Likewise.
9971         (difference_cost): Likewise.
9972         (get_loop_invariant_expr_id): Likewise.
9973         (get_computation_cost_at): Likewise.
9974         (iv_elimination_compare_lt): Likewise.
9975         (may_eliminate_iv): Likewise.
9976         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
9977         instead of double_int.
9978         (max_loop_iterations): Likewise.
9979         (max_stmt_executions): Likewise.
9980         (estimated_stmt_executions): Likewise.
9981         * tree-ssa-loop-niter.c: Include wide-int-print.h.
9982         (split_to_var_and_offset): Use wide-int interfaces.
9983         (determine_value_range): Likewise.
9984         (bound_difference_of_offsetted_base): Likewise.
9985         (bounds_add): Take a widest_int instead of a double_int.
9986         (number_of_iterations_ne_max): Use wide-int interfaces.
9987         (number_of_iterations_ne): Likewise.
9988         (number_of_iterations_lt_to_ne): Likewise.
9989         (assert_loop_rolls_lt): Likewise.
9990         (number_of_iterations_lt): Likewise.
9991         (number_of_iterations_le): Likewise.
9992         (number_of_iterations_cond): Likewise.
9993         (number_of_iterations_exit): Likewise.
9994         (finite_loop_p): Likewise.
9995         (derive_constant_upper_bound_assign): Likewise.
9996         (derive_constant_upper_bound): Return a widest_int.
9997         (derive_constant_upper_bound_ops): Likewise.
9998         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
9999         (record_estimate): Take a widest_int rather than a double_int.
10000         (record_nonwrapping_iv): Use wide-int interfaces.
10001         (double_int_cmp): Delete.
10002         (wide_int_cmp): New.
10003         (bound_index): Take a widest_int rather than a double_int.
10004         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
10005         (maybe_lower_iteration_bound): Likewise.
10006         (estimate_numbers_of_iterations_loop): Likewise.
10007         (estimated_loop_iterations): Take a widest_int pointer than than
10008         a double_int pointer.
10009         (estimated_loop_iterations_int): Use wide-int interfaces.
10010         (max_loop_iterations): Take a widest_int pointer than than
10011         a double_int pointer.
10012         (max_loop_iterations_int): Use wide-int interfaces.
10013         (max_stmt_executions): Take a widest_int pointer than than
10014         a double_int pointer.
10015         (estimated_stmt_executions): Likewise.
10016         (n_of_executions_at_most): Use wide-int interfaces.
10017         (scev_probably_wraps_p): Likewise.
10018         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
10019         to real_to_integer.
10020         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
10021         interfaces.
10022         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
10023         double_ints.  Adjust for trailing_wide_ints <3> representation.
10024         (set_nonzero_bits): Likewise.
10025         (get_range_info): Return wide_ints rather than double_ints.
10026         Adjust for trailing_wide_ints <3> representation.
10027         (get_nonzero_bits): Likewise.
10028         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
10029         representation.
10030         * tree-ssanames.h (struct range_info_def): Replace min, max and
10031         nonzero_bits with a trailing_wide_ints <3>.
10032         (set_range_info): Use wide_int_refs rather than double_ints.
10033         (set_nonzero_bits): Likewise.
10034         (get_range_info): Return wide_ints rather than double_ints.
10035         (get_nonzero_bits): Likewise.
10036         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
10037         * tree-ssa-pre.c (phi_translate_1): Likewise.
10038         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
10039         (acceptable_pow_call): Likewise.
10040         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
10041         interfaces.
10042         (vn_reference_fold_indirect): Likewise.
10043         (vn_reference_maybe_forwprop_address): Likewise.
10044         (valueize_refs_1): Likewise.
10045         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
10046         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
10047         tree_int_cst_lt and tree_int_cst_le.
10048         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
10049         interfaces.
10050         (streamer_alloc_tree): Likewise.
10051         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
10052         (streamer_write_tree_header): Likewise.
10053         (streamer_write_integer_cst): Likewise.
10054         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
10055         (build_constructors): Likewise.
10056         (array_value_type): Likewise.
10057         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
10058         (vect_check_gather): Likewise.
10059         * tree-vect-generic.c (build_replicated_const): Likewise.
10060         (expand_vector_divmod): Likewise.
10061         * tree-vect-loop.c (vect_transform_loop): Likewise.
10062         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
10063         (vect_do_peeling_for_alignment): Likewise.
10064         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
10065         * tree-vrp.c: Include wide-int.h.
10066         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
10067         (extract_range_from_assert): Use wide-int interfaces.
10068         (vrp_int_const_binop): Likewise.
10069         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
10070         double_int pointers.
10071         (ranges_from_anti_range): Use wide-int interfaces.
10072         (quad_int_cmp): Delete.
10073         (quad_int_pair_sort): Likewise.
10074         (extract_range_from_binary_expr_1): Use wide-int interfaces.
10075         (extract_range_from_unary_expr_1): Likewise.
10076         (adjust_range_with_scev): Likewise.
10077         (masked_increment): Take and return wide_ints rather than double_ints.
10078         (register_edge_assert_for_2): Use wide-int interfaces.
10079         (check_array_ref): Likewise.
10080         (search_for_addr_array): Likewise.
10081         (maybe_set_nonzero_bits): Likewise.
10082         (union_ranges): Pass an integer of the correct type instead of
10083         using integer_one_node.
10084         (intersect_ranges): Likewise.
10085         (simplify_truth_ops_using_ranges): Likewise.
10086         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
10087         (range_fits_type_p): Likewise.
10088         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
10089         a bool.
10090         (simplify_conversion_using_ranges): Use wide-int interfaces.
10091         (simplify_float_conversion_using_ranges): Likewise.
10092         (vrp_finalize): Likewise.
10093         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
10094         (gimple_stringops_transform): Likewise.
10095         * varasm.c (decode_addr_const): Likewise.
10096         (const_hash_1): Likewise.
10097         (const_rtx_hash_1): Likewise
10098         (output_constant): Likewise.
10099         (array_size_for_constructor): Likewise.
10100         (output_constructor_regular_field): Likewise.
10101         (output_constructor_bitfield): Likewise.
10102         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
10103         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
10104         GENERATOR_FILEs.
10105         * gencheck.c: Define BITS_PER_UNIT.
10106         * wide-int.cc: New.
10107         * wide-int.h: New.
10108         * wide-int-print.cc: New.
10109         * wide-int-print.h: New.
10110
10111 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10112
10113         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
10114
10115 2014-05-06  Richard Biener  <rguenther@suse.de>
10116
10117         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
10118         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
10119         (TODO_verify_all): Adjust.
10120         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
10121         TODO_verify_stmts and TODO_verify_rtl_sharing.
10122         * bb-reorder.c: Likewise.
10123         * cfgexpand.c: Likewise.
10124         * cprop.c: Likewise.
10125         * cse.c: Likewise.
10126         * function.c: Likewise.
10127         * fwprop.c: Likewise.
10128         * gcse.c: Likewise.
10129         * gimple-ssa-isolate-paths.c: Likewise.
10130         * gimple-ssa-strength-reduction.c: Likewise.
10131         * ipa-split.c: Likewise.
10132         * loop-init.c: Likewise.
10133         * loop-unroll.c: Likewise.
10134         * lower-subreg.c: Likewise.
10135         * modulo-sched.c: Likewise.
10136         * postreload-gcse.c: Likewise.
10137         * predict.c: Likewise.
10138         * recog.c: Likewise.
10139         * sched-rgn.c: Likewise.
10140         * store-motion.c: Likewise.
10141         * tracer.c: Likewise.
10142         * trans-mem.c: Likewise.
10143         * tree-call-cdce.c: Likewise.
10144         * tree-cfg.c: Likewise.
10145         * tree-cfgcleanup.c: Likewise.
10146         * tree-complex.c: Likewise.
10147         * tree-eh.c: Likewise.
10148         * tree-emutls.c: Likewise.
10149         * tree-if-conv.c: Likewise.
10150         * tree-into-ssa.c: Likewise.
10151         * tree-loop-distribution.c: Likewise.
10152         * tree-object-size.c: Likewise.
10153         * tree-parloops.c: Likewise.
10154         * tree-pass.h: Likewise.
10155         * tree-sra.c: Likewise.
10156         * tree-ssa-ccp.c: Likewise.
10157         * tree-ssa-copy.c: Likewise.
10158         * tree-ssa-copyrename.c: Likewise.
10159         * tree-ssa-dce.c: Likewise.
10160         * tree-ssa-dom.c: Likewise.
10161         * tree-ssa-dse.c: Likewise.
10162         * tree-ssa-forwprop.c: Likewise.
10163         * tree-ssa-ifcombine.c: Likewise.
10164         * tree-ssa-loop-ch.c: Likewise.
10165         * tree-ssa-loop-ivcanon.c: Likewise.
10166         * tree-ssa-loop.c: Likewise.
10167         * tree-ssa-math-opts.c: Likewise.
10168         * tree-ssa-phiopt.c: Likewise.
10169         * tree-ssa-phiprop.c: Likewise.
10170         * tree-ssa-pre.c: Likewise.
10171         * tree-ssa-reassoc.c: Likewise.
10172         * tree-ssa-sink.c: Likewise.
10173         * tree-ssa-strlen.c: Likewise.
10174         * tree-ssa-tail-merge.c: Likewise.
10175         * tree-ssa-uncprop.c: Likewise.
10176         * tree-switch-conversion.c: Likewise.
10177         * tree-tailcall.c: Likewise.
10178         * tree-vect-generic.c: Likewise.
10179         * tree-vectorizer.c: Likewise.
10180         * tree-vrp.c: Likewise.
10181         * tsan.c: Likewise.
10182         * var-tracking.c: Likewise.
10183         * bt-load.c: Likewise.
10184         * cfgcleanup.c: Likewise.
10185         * combine-stack-adj.c: Likewise.
10186         * combine.c: Likewise.
10187         * compare-elim.c: Likewise.
10188         * config/epiphany/resolve-sw-modes.c: Likewise.
10189         * config/i386/i386.c: Likewise.
10190         * config/mips/mips.c: Likewise.
10191         * config/s390/s390.c: Likewise.
10192         * config/sh/sh_treg_combine.cc: Likewise.
10193         * config/sparc/sparc.c: Likewise.
10194         * dce.c: Likewise.
10195         * dse.c: Likewise.
10196         * final.c: Likewise.
10197         * ifcvt.c: Likewise.
10198         * mode-switching.c: Likewise.
10199         * passes.c: Likewise.
10200         * postreload.c: Likewise.
10201         * ree.c: Likewise.
10202         * reg-stack.c: Likewise.
10203         * regcprop.c: Likewise.
10204         * regrename.c: Likewise.
10205         * web.c: Likewise.
10206
10207 2014-05-06  Richard Biener  <rguenther@suse.de>
10208
10209         PR middle-end/61070
10210         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
10211         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
10212
10213 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
10214
10215         PR ipa/60965
10216         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
10217
10218 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
10219             Tom de Vries  <tom@codesourcery.com>
10220
10221         * target.def (call_fusage_contains_non_callee_clobbers): New
10222         DEFHOOKPOD.
10223         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
10224         Hooks to @menu.
10225         (@node Miscellaneous Register Hooks): New node.
10226         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
10227         * doc/tm.texi: Regenerate.
10228
10229 2014-05-05  Marek Polacek  <polacek@redhat.com>
10230
10231         PR driver/61065
10232         * opts.c (common_handle_option): Call error_at instead of warning_at.
10233
10234 2014-05-05  Richard Biener  <rguenther@suse.de>
10235
10236         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
10237         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
10238         under the TODO_verify_il umbrella.
10239
10240 2014-05-05  Richard Biener  <rguenther@suse.de>
10241
10242         * passes.c (execute_function_todo): Move TODO_verify_flow under
10243         the TODO_verify_ul umbrella.
10244
10245 2014-05-05  Richard Biener  <rguenther@suse.de>
10246
10247         PR middle-end/61010
10248         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
10249         X & CST away from a CST that is the mask of a mode.
10250
10251 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10252
10253         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
10254         int argument to enum machine_mode.
10255         (picochip_class_max_nregs): Ditto.
10256         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
10257         (picochip_class_max_nregs): Ditto.
10258
10259 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10260
10261         * target.def: Add new target hook.
10262         * doc/tm.texi: Regenerate.
10263         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
10264         * targhooks.c (default_keep_leaf_when_profiled): New function.
10265
10266         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
10267         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
10268
10269 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
10270
10271         PR tree-optimization/60363
10272         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
10273         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
10274         (update_destination_phis): New parameter.
10275         (create_edge_and_update_destination_phis): Ditto.
10276         (ssa_fix_duplicate_block_edges): Pass new arguments.
10277         (thread_single_edge): Ditto.
10278
10279 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
10280
10281         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
10282         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
10283         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
10284         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
10285         Use RS6000_BTM_HARD_FLOAT.
10286         (BU_MISC_2): Likewise.
10287         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
10288         RS6000_BTM_HARD_FLOAT.
10289         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
10290         is explicitly used.
10291         (rs6000_invalid_builtin): Add hard floating builtin support.
10292         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
10293         hard float builtins.
10294         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
10295
10296 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
10297
10298         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
10299         Add missing function* argument.
10300
10301 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
10302
10303         * lra-constraints.c (valid_address_p): Move earlier in file.
10304         Add a constraint argument to the address_info version.
10305         (satisfies_memory_constraint_p): New function.
10306         (satisfies_address_constraint_p): Likewise.
10307         (process_alt_operands, curr_insn_transform): Use them.
10308         (process_address): Pass the constraint to valid_address_p when
10309         checking address operands.
10310
10311 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
10312
10313         * config/mips/mips.c (mips_isa_rev): New variable.
10314         (mips_set_architecture): Set it.
10315         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
10316         from mips_isa_rev.
10317         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
10318         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
10319         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
10320         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
10321         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
10322         conditions in terms of mips_isa_rev.
10323         (mips_isa_rev): Declare.
10324
10325 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
10326
10327         * config/sh/sh-mem.cc: Use tabs instead of spaces.
10328         (prob_unlikely, prob_likely): Make variables const.
10329
10330 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
10331
10332         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
10333
10334 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
10335
10336         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
10337
10338 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
10339
10340         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
10341         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
10342         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
10343         functions.
10344         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
10345         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
10346         sh_pass_in_reg_p.
10347         Replace usage of ROUND_REG with sh_round_reg.
10348         Use CEIL instead of ROUND_ADVANCE.
10349
10350 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
10351
10352         PR target/61026
10353         * config/sh/sh.c: Include stdlib headers before everything else.
10354
10355 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
10356
10357         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
10358         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
10359         (gimplify_adjust_omp_clauses): Simd region is never
10360         directly nested in combined parallel.  Instead, for linear
10361         with copyin/copyout, if in combined for simd loop, make decl
10362         firstprivate/lastprivate on OMP_FOR.
10363         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
10364         expand_omp_for_static_chunk): When setting endvar, also set
10365         fd->loop.v to the same value.
10366
10367 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
10368
10369         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
10370
10371 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
10372
10373         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
10374         expression.
10375
10376 2014-05-02  Marek Polacek  <polacek@redhat.com>
10377
10378         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
10379
10380 2014-05-02  Kito Cheng  <kito@0xlab.org>
10381
10382         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
10383         to a C expression marco.
10384         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
10385         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
10386         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
10387         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
10388         HONOR_REG_ALLOC_ORDER.
10389         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
10390
10391 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10392
10393         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
10394
10395 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10396
10397         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
10398
10399 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
10400
10401         * tree-if-conv.c (is_cond_scalar_reduction): New function.
10402         (convert_scalar_cond_reduction): Likewise.
10403         (predicate_scalar_phi): Add recognition and transformation
10404         of simple conditioanl reduction to be vectorizable.
10405
10406 2014-05-01  Marek Polacek  <polacek@redhat.com>
10407
10408         PR c/43245
10409         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
10410
10411 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
10412
10413         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
10414         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
10415         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
10416         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
10417         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
10418         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
10419         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
10420         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
10421
10422 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10423
10424         * config/arc/arc.opt (mlra): Move comment above option name
10425         to avoid mis-parsing as language options.
10426
10427 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10428
10429         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
10430         * config/sol2.h: ... here.
10431         * config/sol2-10.h: Remove.
10432
10433         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
10434         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
10435         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
10436         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
10437         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
10438         * config/sol2.h: ... here.
10439         (SECTION_NAME_FORMAT): Don't redefine.
10440         (STARTFILE_ARCH32_SPEC): Rename to ...
10441         (STARTFILE_ARCH_SPEC): ... this.
10442         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
10443         * config/sparc/sol2.h: ... here.
10444         (SECTION_NAME_FORMAT): Don't undef.
10445         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
10446         (SUBTARGET_EXTRA_SPECS): Remove.
10447         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
10448
10449         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
10450         (MD_STARTFILE_PREFIX): Remove.
10451         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
10452         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
10453         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
10454         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
10455         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
10456         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
10457         * config/i386/sol2.h: ... here.
10458         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
10459         * config/i386/sol2-bi.h: Remove.
10460         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
10461         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
10462
10463         * config/i386/t-sol2-64: Rename to ...
10464         * config/i386/t-sol2: ... this.
10465         * config/sparc/t-sol2-64: Rename to ...
10466         * config/sparc/t-sol2: ... this.
10467
10468         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
10469         sol2_tm_file_head, sol2_tm_file_tail.
10470         Include ${cpu_type}/sol2.h before sol2.h.
10471         Remove sol2-10.h.
10472         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
10473         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
10474         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
10475         Reflect i386/t-sol2-64 renaming.
10476         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
10477         Reflect sparc/t-sol2-64 renaming.
10478
10479 2014-04-30  Richard Biener  <rguenther@suse.de>
10480
10481         * passes.c (execute_function_todo): Move TODO_verify_stmts
10482         and TODO_verify_ssa under the TODO_verify_il umbrella.
10483         * tree-ssa.h (verify_ssa): Adjust prototype.
10484         * tree-ssa.c (verify_ssa): Add parameter to tell whether
10485         we should verify SSA operands.
10486         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
10487         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
10488         whether we should verify whether not throwing stmts have EH info.
10489         * graphite-scop-detection.c (create_sese_edges): Adjust.
10490         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
10491         * tree-eh.c (lower_try_finally_switch): Do not add the
10492         default case label twice.
10493
10494 2014-04-30  Marek Polacek  <polacek@redhat.com>
10495
10496         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
10497         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
10498         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
10499         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
10500
10501 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
10502
10503         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
10504         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
10505         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
10506         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
10507         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
10508         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
10509         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
10510         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
10511
10512 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
10513
10514         * tree-cfg.c (dump_function_to_file): Dump the return type of
10515         functions, in a line to itself before the function body, mimicking
10516         the layout of a C function.
10517
10518 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
10519
10520         PR tree-optimization/60971
10521         * tree-tailcall.c (process_assignment): Reject conversions which
10522         reduce precision.
10523
10524 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
10525
10526         * calls.c (initialize_argument_information): Always treat
10527         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
10528         (expand_call): Likewise.
10529         (emit_library_call_calue_1): Likewise.
10530         * expr.c (PUSH_ARGS_REVERSED): Do not define.
10531         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
10532         code accordingly.
10533
10534 2014-04-29  Nick Clifton  <nickc@redhat.com>
10535
10536         * config/msp430/msp430.md (umulsidi): Fix typo.
10537         (mulhisi3): Enable even inside interrupt handlers.
10538         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
10539         bigger return address pushed in large mode.
10540
10541 2014-04-29  Nick Clifton  <nickc@redhat.com>
10542
10543         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
10544         (arc_init_reg_tables): Use a machine_mode enum to iterate over
10545         available modes.
10546         * config/m32r/m32r.c (init_reg_tables): Likewise.
10547         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
10548         enum to hold the modes.
10549
10550 2014-04-29  Richard Biener  <rguenther@suse.de>
10551
10552         * dominance.c (free_dominance_info): Add overload with
10553         function parameter.
10554         (dom_info_state): Likewise.
10555         (dom_info_available_p): Likewise.
10556         * basic-block.h (free_dominance_info, dom_info_state,
10557         dom_info_available_p): Declare overloads.
10558         * passes.c (execute_function_todo): Verify that verifiers
10559         don't change dominator info state.  Drop dominator info
10560         for IPA pass invocations.
10561         * cgraph.c (release_function_body): Restore asserts that
10562         dominator information is released.
10563
10564 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
10565
10566         * doc/invoke.texi: Fix typo.
10567         * tree-vrp.c: Fix typos.
10568         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
10569
10570 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
10571
10572         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
10573
10574 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
10575
10576         * config/aarch64/aarch64-builtins.c
10577         (aarch64_types_storestruct_lane_qualifiers): New.
10578         (TYPES_STORESTRUCT_LANE): Likewise.
10579         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
10580         (st3_lane): Likewise.
10581         (st4_lane): Likewise.
10582         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
10583         (vec_store_lanesci_lane<mode>): Likewise.
10584         (vec_store_lanesxi_lane<mode>): Likewise.
10585         (aarch64_st2_lane<VQ:mode>): Likewise.
10586         (aarch64_st3_lane<VQ:mode>): Likewise.
10587         (aarch64_st4_lane<VQ:mode>): Likewise.
10588         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
10589         * config/aarch64/arm_neon.h
10590         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
10591         use new macro arguments.
10592         (__ST3_LANE_FUNC): Likewise.
10593         (__ST4_LANE_FUNC): Likewise.
10594         * config/aarch64/iterators.md (V_TWO_ELEM): New.
10595         (V_THREE_ELEM): Likewise.
10596         (V_FOUR_ELEM): Likewise.
10597
10598 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
10599
10600         * doc/gimple.texi: Replace the description of the now-defunct
10601         union gimple_statement_d with a diagram showing the
10602         gimple_statement_base class hierarchy and its relationships to
10603         the GSS_ and GIMPLE_ enums.
10604
10605 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
10606
10607         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
10608         * config/aarch64/aarch64.c
10609         (aarch64_cannot_change_mode_class): Weaken conditions.
10610         (aarch64_modes_tieable_p): New.
10611         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
10612
10613 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
10614
10615         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
10616         (loadsync_<mode>): Change mode.
10617         (load_quadpti, store_quadpti): New.
10618         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
10619         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
10620
10621 2014-04-28  Martin Jambor  <mjambor@suse.cz>
10622
10623         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
10624         same alias type as the original statement.
10625         (subreplacement_assignment_data): New type.
10626         (handle_unscalarized_data_in_subtree): New type of parameter,
10627         generate new memory accesses with same alias type as the original
10628         statement.
10629         (load_assign_lhs_subreplacements): Likewise.
10630         (sra_modify_constructor_assign): Generate new memory accesses with
10631         same alias type as the original statement.
10632
10633 2014-04-28  Richard Biener  <rguenther@suse.de>
10634
10635         * tree-pass.h (TODO_verify_il): Define.
10636         (TODO_verify_all): Complete properly.
10637         * passes.c (execute_function_todo): Move existing loop-closed
10638         SSA verification under TODO_verify_il.
10639         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
10640         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
10641         Fix tree sharing issue.
10642
10643 2014-04-28  Richard Biener  <rguenther@suse.de>
10644
10645         PR middle-end/60092
10646         * builtins.def (DEF_C11_BUILTIN): Add.
10647         (BUILT_IN_ALIGNED_ALLOC): Likewise.
10648         * coretypes.h (enum function_class): Add function_c11_misc.
10649         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
10650         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
10651         (call_may_clobber_ref_p_1): Likewise.
10652         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10653         (mark_all_reaching_defs_necessary_1): Likewise.
10654         (propagate_necessity): Likewise.
10655         (eliminate_unnecessary_stmts): Likewise.
10656         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
10657
10658 2014-04-28  Richard Biener  <rguenther@suse.de>
10659
10660         * tree-vrp.c (vrp_var_may_overflow): Remove.
10661         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
10662         with overflow immediately bump to one before that value and
10663         let iteration figure out overflow status.
10664
10665 2014-04-28  Richard Biener  <rguenther@suse.de>
10666
10667         * configure.ac: Do valgrind header checks unconditionally.
10668         Add --enable-valgrind-annotations.
10669         * system.h: Guard valgrind header inclusion with
10670         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
10671         * alloc-pool.c (pool_alloc, pool_free): Use
10672         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
10673         to guard possibly dead code.
10674         * config.in: Regenerated.
10675         * configure: Likewise.
10676
10677 2014-04-28  Jeff Law  <law@redhat.com>
10678
10679         PR tree-optimization/60902
10680         * tree-ssa-threadedge.c
10681         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
10682         over real defs when invalidating outputs from statements that do not
10683         produce useful outputs for threading.
10684
10685 2014-04-28  Richard Biener  <rguenther@suse.de>
10686
10687         PR tree-optimization/60979
10688         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
10689         SCOPs that end in a block with a successor with abnormal
10690         predecessors.
10691
10692 2014-04-28  Richard Biener  <rguenther@suse.de>
10693
10694         * tree-pass.h (execute_pass_list): Adjust prototype.
10695         * passes.c (pass_manager::execute_early_local_passes): Adjust.
10696         (do_per_function): Change callback signature, push all actual
10697         work to the callbals.
10698         (do_per_function_toporder): Likewise.
10699         (execute_function_dump): Adjust.
10700         (execute_function_todo): Likewise.
10701         (clear_last_verified): Likewise.
10702         (verify_curr_properties): Likewise.
10703         (update_properties_after_pass): Likewise.
10704         (execute_pass_list_1): Split out from ...
10705         (execute_pass_list): ... here.  Adjust.
10706         (execute_ipa_pass_list): Likewise.
10707         * cgraphunit.c (cgraph_add_new_function): Adjust.
10708         (analyze_function): Likewise.
10709         (expand_function): Likewise.
10710         * cgraph.c (release_function_body): Free dominance info
10711         here instead of asserting it was magically freed elsewhere.
10712
10713 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10714
10715         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
10716         * configure: Regenerate.
10717         * config/sparc/sparc.opt (muser-mode): New option.
10718         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
10719         for LEON3.
10720         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
10721         * doc/invoke.texi (SPARC options): Document -muser-mode.
10722
10723 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
10724
10725         * cselib.c (find_slot_memmode): Delete.
10726         (cselib_hasher): Change compare_type to a struct.
10727         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
10728         constants.
10729         (preserve_constants_and_equivs): Adjust for new compare_type.
10730         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
10731         (wrap_constant): Delete.
10732         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
10733
10734 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
10735
10736         * doc/install.texi (Building with profile feedback): Remove
10737         outdated sentence.
10738
10739 2014-04-26  Tom de Vries  <tom@codesourcery.com>
10740
10741         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
10742         array accesses.
10743
10744 2014-04-25  Cary Coutant  <ccoutant@google.com>
10745
10746         PR debug/60929
10747         * dwarf2out.c (should_move_die_to_comdat): A type definition
10748         can contain a subprogram definition, but don't move it to a
10749         comdat unit.
10750         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
10751         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
10752         from original DIE.
10753         (clone_tree_hash): Rename to...
10754         (clone_tree_partial): ...this; change callers.  Copy
10755         DW_TAG_subprogram DIEs as declarations.
10756         (copy_decls_walk): Don't copy children of a declaration into a
10757         type unit.
10758
10759 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
10760
10761         PR target/60969
10762         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
10763         alternative 12.
10764
10765 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
10766
10767         * config/arm/predicates.md (call_insn_operand): Add long_call check.
10768         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
10769         reg for long_call.
10770         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
10771         restriction.
10772
10773 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10774
10775         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
10776
10777 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10778
10779         PR tree-optimization/60930
10780         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
10781         creating a multiply candidate by folding two constant
10782         multiplicands when the result overflows.
10783
10784 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
10785
10786         PR tree-optimization/60960
10787         * tree-vect-generic.c (expand_vector_operation): Only call
10788         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
10789
10790 2014-04-25  Tom de Vries  <tom@codesourcery.com>
10791
10792         * expr.c (clobber_reg_mode): New function.
10793         * expr.h (clobber_reg): New function.
10794
10795 2014-04-25  Tom de Vries  <tom@codesourcery.com>
10796
10797         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
10798         clobbers.
10799
10800 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
10801             Tom de Vries  <tom@codesourcery.com>
10802
10803         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
10804         handle.
10805         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
10806         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
10807         new argument to find_all_hard_reg_sets call.
10808
10809 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10810
10811         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
10812         Use HOST_WIDE_INT_C for mask literal.
10813         (aarch_rev16_shleft_mask_imm_p): Likewise.
10814
10815 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
10816
10817         PR target/60941
10818         * config/sparc/sparc.md (ashlsi3_extend): Delete.
10819
10820 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
10821
10822         PR preprocessor/56540
10823         * config/i386/i386-c.c (ix86_target_macros): Define
10824         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
10825
10826 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10827
10828         * configure.ac (tga_func): Remove.
10829         (LIB_TLS_SPEC): Remove.
10830         * configure: Regenerate.
10831         * config.in: Regenerate.
10832         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
10833
10834 2014-04-25  Richard Biener  <rguenther@suse.de>
10835
10836         PR ipa/60912
10837         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
10838         call stmt use/clobber sets during stmt walk instead of
10839         walking the possibly incomplete set of caller edges.
10840
10841 2014-04-25  Richard Biener  <rguenther@suse.de>
10842
10843         PR ipa/60911
10844         * passes.c (apply_ipa_transforms): Inline into only caller ...
10845         (execute_one_pass): ... here.  Properly bring in function
10846         bodies for nodes we want to apply IPA transforms to.
10847
10848 2014-04-24  Cong Hou  <congh@google.com>
10849
10850         PR tree-optimization/60896
10851         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
10852         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
10853         (vect_mark_pattern_stmts): Set the def type of all statements in
10854         PATTERN_DEF_SEQ as vect_internal_def.
10855
10856 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10857
10858         * doc/extend.texi (PowerPC Built-in Functions): Document new
10859         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
10860         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
10861
10862         * config/rs6000/predicates.md (const_0_to_3_operand): New
10863         predicate to match 0..3 integer constants.
10864
10865         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
10866         to support adding miscellaneous builtin functions.
10867         (BU_DFP_MISC_2): Likewise.
10868         (BU_P7_MISC_1): Likewise.
10869         (BU_P7_MISC_2): Likewise.
10870         (BU_P8V_MISC_3): Likewise.
10871         (BU_MISC_1): Likewise.
10872         (BU_MISC_2): Likewise.
10873         (DIVWE): Add extended divide builtin functions.
10874         (DIVWEO): Likewise.
10875         (DIVWEU): Likewise.
10876         (DIVWEUO): Likewise.
10877         (DIVDE): Likewise.
10878         (DIVDEO): Likewise.
10879         (DIVDEU): Likewise.
10880         (DIVDEUO): Likewise.
10881         (DXEX): Add decimal floating-point builtin functions.
10882         (DXEXQ): Likewise.
10883         (DDEDPD): Likewise.
10884         (DDEDPDQ): Likewise.
10885         (DENBCD): Likewise.
10886         (DENBCDQ): Likewise.
10887         (DIEX): Likewise.
10888         (DIEXQ): Likewise.
10889         (DSCLI): Likewise.
10890         (DSCLIQ): Likewise.
10891         (DSCRI): Likewise.
10892         (DSCRIQ): Likewise.
10893         (CDTBCD): Add new BCD builtin functions.
10894         (CBCDTD): Likewise.
10895         (ADDG6S): Likewise.
10896         (BCDADD): Likewise.
10897         (BCDADD_LT): Likewise.
10898         (BCDADD_EQ): Likewise.
10899         (BCDADD_GT): Likewise.
10900         (BCDADD_OV): Likewise.
10901         (BCDSUB): Likewise.
10902         (BCDSUB_LT): Likewise.
10903         (BCDSUB_EQ): Likewise.
10904         (BCDSUB_GT): Likewise.
10905         (BCDSUB_OV): Likewise.
10906         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
10907         (UNPACK_TD): Likewise.
10908         (PACK_TF): Likewise.
10909         (UNPACK_TF): Likewise.
10910         (UNPACK_TF_0): Likewise.
10911         (UNPACK_TF_1): Likewise.
10912         (PACK_V1TI): Likewise.
10913         (UNPACK_V1TI): Likewise.
10914
10915         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
10916         support for decimal floating point builtin functions.
10917         (rs6000_expand_ternop_builtin): Add checks for the new builtin
10918         functions that take constant arguments.
10919         (rs6000_invalid_builtin): Add decimal floating point builtin support.
10920         (rs6000_init_builtins): Setup long double, _Decimal64, and
10921         _Decimal128 types for new builtin functions.
10922         (builtin_function_type): Set the unsigned flags appropriately for
10923         the new builtin functions.
10924         (rs6000_opt_masks): Add support for decimal floating point builtin
10925         functions.
10926
10927         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
10928         floating point builtin functions.
10929         (RS6000_BTM_COMMON): Likewise.
10930         (RS6000_BTI_long_double): Likewise.
10931         (RS6000_BTI_dfloat64): Likewise.
10932         (RS6000_BTI_dfloat128): Likewise.
10933         (long_double_type_internal_node): Likewise.
10934         (dfloat64_type_internal_node): Likewise.
10935         (dfloat128_type_internal_node): Likewise.
10936
10937         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
10938         2.07 bcd arithmetic instructions.
10939         (UNSPEC_BCDSUB): Likewise.
10940         (UNSPEC_BCD_OVERFLOW): Likewise.
10941         (UNSPEC_BCD_ADD_SUB): Likewise.
10942         (bcd_add_sub): Likewise.
10943         (BCD_TEST): Likewise.
10944         (bcd<bcd_add_sub>): Likewise.
10945         (bcd<bcd_add_sub>_test): Likewise.
10946         (bcd<bcd_add_sub>_test2): Likewise.
10947         (bcd<bcd_add_sub>_<code>): Likewise.
10948         (peephole2 for combined bcd ops): Likewise.
10949
10950         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
10951         decimal floating point builtin functions.
10952         (UNSPEC_DENBCD): Likewise.
10953         (UNSPEC_DXEX): Likewise.
10954         (UNSPEC_DIEX): Likewise.
10955         (UNSPEC_DSCLI): Likewise.
10956         (UNSPEC_DSCRI): Likewise.
10957         (D64_D128): Likewise.
10958         (dfp_suffix): Likewise.
10959         (dfp_ddedpd_<mode>): Likewise.
10960         (dfp_denbcd_<mode>): Likewise.
10961         (dfp_dxex_<mode>): Likewise.
10962         (dfp_diex_<mode>): Likewise.
10963         (dfp_dscli_<mode>): Likewise.
10964         (dfp_dscri_<mode>): Likewise.
10965
10966         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
10967         builtin functions.
10968         (UNSPEC_CDTBCD): Likewise.
10969         (UNSPEC_CBCDTD): Likewise.
10970         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
10971         (UNSPEC_DIVEO): Likewise.
10972         (UNSPEC_DIVEU): Likewise.
10973         (UNSPEC_DIVEUO): Likewise.
10974         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
10975         pack/unpack 128-bit types.
10976         (UNSPEC_PACK_128BIT): Likewise.
10977         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
10978         (udiv<mode>3): Use idiv_ldiv mode attribute.
10979         (div<mode>3): Likewise.
10980         (addg6s): Add new BCD builtin functions.
10981         (cdtbcd): Likewise.
10982         (cbcdtd): Likewise.
10983         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
10984         (div_extend): Likewise.
10985         (div<div_extend>_<mode>"): Likewise.
10986         (FP128_64): Add support for new builtin functions to pack/unpack
10987         128-bit types.
10988         (unpack<mode>): Likewise.
10989         (unpacktf_0): Likewise.
10990         (unpacktf_1): Likewise.
10991         (unpack<mode>_dm): Likewise.
10992         (unpack<mode>_nodm): Likewise.
10993         (pack<mode>): Likewise.
10994         (unpackv1ti): Likewise.
10995         (packv1ti): Likewise.
10996
10997 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
10998
10999         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
11000         is disabled.
11001
11002 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
11003
11004         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
11005         * gimplify.c (omp_is_private): Change last argument's type to int.
11006         Only diagnose lastprivate if the simd argument is 1, only diagnose
11007         linear if the simd argument is 2.
11008         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
11009         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
11010         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
11011         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
11012         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
11013         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
11014         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
11015         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
11016         * tree-nested.c (convert_nonlocal_omp_clauses,
11017         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
11018
11019 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
11020
11021         PR target/60822
11022         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
11023         operand 1.
11024
11025 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
11026
11027         * flag-types.h (enum ivar_visibility): Add.
11028
11029 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
11030
11031         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
11032         function * argument.
11033
11034 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
11035
11036         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
11037
11038 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
11039             Tom de Vries  <tom@codesourcery.com>
11040
11041         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
11042         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
11043         reg-note.
11044         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
11045         * emit-rtl.c (try_split): Same.
11046
11047 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
11048             Tom de Vries  <tom@codesourcery.com>
11049
11050         * common.opt (fuse-caller-save): New option.
11051
11052 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
11053
11054         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
11055         elements for big-endian.
11056
11057 2014-04-24  Richard Biener  <rguenther@suse.de>
11058
11059         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
11060         during TER and instead use the sepops interface for expanding
11061         non-GIMPLE_SINGLE_RHS.
11062
11063 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11064
11065         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
11066         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
11067
11068 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11069
11070         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
11071         assembler 64-bit option.
11072         * configure: Regenerate.
11073
11074 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11075
11076         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
11077         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
11078         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
11079         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
11080         (TARGET_CRYPTO): Take TARGET_SIMD into account.
11081
11082 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11083
11084         * config/aarch64/aarch64-builtins.c
11085         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
11086         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
11087         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
11088         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
11089         builtins.
11090         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
11091         (Vrevsuff): New mode attribute.
11092
11093 2014-04-24  Terry Guo  <terry.guo@arm.com>
11094
11095         * config/arm/arm.h (machine_function): Define variable
11096         after_arm_reorg here.
11097         * config/arm/arm.c (after_arm_reorg): Remove the definition.
11098         (arm_split_constant): Update the way to access variable
11099         after_arm_reorg.
11100         (arm_reorg): Ditto.
11101         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
11102
11103 2014-04-23  Tom de Vries  <tom@codesourcery.com>
11104
11105         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
11106
11107 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
11108
11109         * is-a.h: Update comments to reflect the following changes to the
11110         "pointerness" of the API, making the template parameter match the
11111         return type, allowing use of is-a.h with typedefs of pointers.
11112         (is_a_helper::cast): Return a T rather then a pointer to a T, so
11113         that the return type matches the parameter to the is_a_helper.
11114         (as_a): Likewise.
11115         (dyn_cast): Likewise.
11116
11117         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
11118         pointer from the is-a.h API.
11119
11120         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
11121         (is_a_helper <cgraph_node *>::test): ...this, matching change to
11122         is-a.h API.
11123         (is_a_helper <varpool_node>::test): Likewise, convert to...
11124         (is_a_helper <varpool_node *>::test): ...this.
11125
11126         (varpool_first_variable): Update for removal of implicit pointer
11127         from the is-a.h API.
11128         (varpool_next_variable): Likewise.
11129         (varpool_first_static_initializer): Likewise.
11130         (varpool_next_static_initializer): Likewise.
11131         (varpool_first_defined_variable): Likewise.
11132         (varpool_next_defined_variable): Likewise.
11133         (cgraph_first_defined_function): Likewise.
11134         (cgraph_next_defined_function): Likewise.
11135         (cgraph_first_function): Likewise.
11136         (cgraph_next_function): Likewise.
11137         (cgraph_first_function_with_gimple_body): Likewise.
11138         (cgraph_next_function_with_gimple_body): Likewise.
11139         (cgraph_alias_target): Likewise.
11140         (varpool_alias_target): Likewise.
11141         (cgraph_function_or_thunk_node): Likewise.
11142         (varpool_variable_node): Likewise.
11143         (symtab_real_symbol_p): Likewise.
11144         * cgraphunit.c (referred_to_p): Likewise.
11145         (analyze_functions): Likewise.
11146         (handle_alias_pairs): Likewise.
11147         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
11148         * gimple-ssa.h (gimple_vuse_op): Likewise.
11149         (gimple_vdef_op): Likewise.
11150         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
11151         * gimple.c (gimple_build_asm_1): Likewise.
11152         (gimple_build_try): Likewise.
11153         (gimple_build_resx): Likewise.
11154         (gimple_build_eh_dispatch): Likewise.
11155         (gimple_build_omp_for): Likewise.
11156         (gimple_omp_for_set_clauses): Likewise.
11157
11158         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
11159         (is_a_helper <gimple_statement_asm *>::test): ...this.
11160         (is_a_helper <gimple_statement_bind>::test): Convert to...
11161         (is_a_helper <gimple_statement_bind *>::test): ...this.
11162         (is_a_helper <gimple_statement_call>::test): Convert to...
11163         (is_a_helper <gimple_statement_call *>::test): ...this.
11164         (is_a_helper <gimple_statement_catch>::test): Convert to...
11165         (is_a_helper <gimple_statement_catch *>::test): ...this.
11166         (is_a_helper <gimple_statement_resx>::test): Convert to...
11167         (is_a_helper <gimple_statement_resx *>::test): ...this.
11168         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
11169         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
11170         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
11171         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
11172         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
11173         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
11174         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
11175         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
11176         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
11177         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
11178         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
11179         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
11180         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
11181         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
11182         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
11183         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
11184         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
11185         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
11186         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
11187         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
11188         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
11189         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
11190         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
11191         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
11192         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
11193         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
11194         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
11195         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
11196         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
11197         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
11198         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
11199         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
11200         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
11201         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
11202         (is_a_helper <gimple_statement_phi>::test): Convert to...
11203         (is_a_helper <gimple_statement_phi *>::test): ...this.
11204         (is_a_helper <gimple_statement_transaction>::test): Convert to...
11205         (is_a_helper <gimple_statement_transaction *>::test): ...this.
11206         (is_a_helper <gimple_statement_try>::test): Convert to...
11207         (is_a_helper <gimple_statement_try *>::test): ...this.
11208         (is_a_helper <gimple_statement_wce>::test): Convert to...
11209         (is_a_helper <gimple_statement_wce *>::test): ...this.
11210         (is_a_helper <const gimple_statement_asm>::test): Convert to...
11211         (is_a_helper <const gimple_statement_asm *>::test): ...this.
11212         (is_a_helper <const gimple_statement_bind>::test): Convert to...
11213         (is_a_helper <const gimple_statement_bind *>::test): ...this.
11214         (is_a_helper <const gimple_statement_call>::test): Convert to...
11215         (is_a_helper <const gimple_statement_call *>::test): ...this.
11216         (is_a_helper <const gimple_statement_catch>::test): Convert to...
11217         (is_a_helper <const gimple_statement_catch *>::test): ...this.
11218         (is_a_helper <const gimple_statement_resx>::test): Convert to...
11219         (is_a_helper <const gimple_statement_resx *>::test): ...this.
11220         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
11221         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
11222         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
11223         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
11224         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
11225         Convert to...
11226         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
11227         ...this.
11228         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
11229         Convert to...
11230         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
11231         ...this.
11232         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
11233         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
11234         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
11235         to...
11236         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
11237         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
11238         to...
11239         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
11240         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
11241         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
11242         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
11243         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
11244         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
11245         to...
11246         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
11247         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
11248         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
11249         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
11250         to...
11251         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
11252         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
11253         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
11254         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
11255         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
11256         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
11257         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
11258         (is_a_helper <const gimple_statement_phi>::test): Convert to...
11259         (is_a_helper <const gimple_statement_phi *>::test): ...this.
11260         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
11261         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
11262         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
11263         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
11264         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
11265         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
11266         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
11267         to...
11268         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
11269         ...this.
11270         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
11271         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
11272
11273         (gimple_use_ops): Update for removal of implicit pointer from the
11274         is-a.h API.
11275         (gimple_set_use_ops): Likewise.
11276         (gimple_vuse): Likewise.
11277         (gimple_vdef): Likewise.
11278         (gimple_vuse_ptr): Likewise.
11279         (gimple_vdef_ptr): Likewise.
11280         (gimple_set_vuse): Likewise.
11281         (gimple_set_vdef): Likewise.
11282         (gimple_omp_return_set_lhs): Likewise.
11283         (gimple_omp_return_lhs): Likewise.
11284         (gimple_omp_return_lhs_ptr): Likewise.
11285         (gimple_call_fntype): Likewise.
11286         (gimple_call_set_fntype): Likewise.
11287         (gimple_call_set_internal_fn): Likewise.
11288         (gimple_call_use_set): Likewise.
11289         (gimple_call_clobber_set): Likewise.
11290         (gimple_bind_vars): Likewise.
11291         (gimple_bind_set_vars): Likewise.
11292         (gimple_bind_body_ptr): Likewise.
11293         (gimple_bind_set_body): Likewise.
11294         (gimple_bind_add_stmt): Likewise.
11295         (gimple_bind_block): Likewise.
11296         (gimple_bind_set_block): Likewise.
11297         (gimple_asm_ninputs): Likewise.
11298         (gimple_asm_noutputs): Likewise.
11299         (gimple_asm_nclobbers): Likewise.
11300         (gimple_asm_nlabels): Likewise.
11301         (gimple_asm_input_op): Likewise.
11302         (gimple_asm_input_op_ptr): Likewise.
11303         (gimple_asm_output_op): Likewise.
11304         (gimple_asm_output_op_ptr): Likewise.
11305         (gimple_asm_set_output_op): Likewise.
11306         (gimple_asm_clobber_op): Likewise.
11307         (gimple_asm_set_clobber_op): Likewise.
11308         (gimple_asm_label_op): Likewise.
11309         (gimple_asm_set_label_op): Likewise.
11310         (gimple_asm_string): Likewise.
11311         (gimple_catch_types): Likewise.
11312         (gimple_catch_types_ptr): Likewise.
11313         (gimple_catch_handler_ptr): Likewise.
11314         (gimple_catch_set_types): Likewise.
11315         (gimple_catch_set_handler): Likewise.
11316         (gimple_eh_filter_types): Likewise.
11317         (gimple_eh_filter_types_ptr): Likewise.
11318         (gimple_eh_filter_failure_ptr): Likewise.
11319         (gimple_eh_filter_set_types): Likewise.
11320         (gimple_eh_filter_set_failure): Likewise.
11321         (gimple_eh_must_not_throw_fndecl): Likewise.
11322         (gimple_eh_must_not_throw_set_fndecl): Likewise.
11323         (gimple_eh_else_n_body_ptr): Likewise.
11324         (gimple_eh_else_e_body_ptr): Likewise.
11325         (gimple_eh_else_set_n_body): Likewise.
11326         (gimple_eh_else_set_e_body): Likewise.
11327         (gimple_try_eval_ptr): Likewise.
11328         (gimple_try_cleanup_ptr): Likewise.
11329         (gimple_try_set_eval): Likewise.
11330         (gimple_try_set_cleanup): Likewise.
11331         (gimple_wce_cleanup_ptr): Likewise.
11332         (gimple_wce_set_cleanup): Likewise.
11333         (gimple_phi_capacity): Likewise.
11334         (gimple_phi_num_args): Likewise.
11335         (gimple_phi_result): Likewise.
11336         (gimple_phi_result_ptr): Likewise.
11337         (gimple_phi_set_result): Likewise.
11338         (gimple_phi_arg): Likewise.
11339         (gimple_phi_set_arg): Likewise.
11340         (gimple_resx_region): Likewise.
11341         (gimple_resx_set_region): Likewise.
11342         (gimple_eh_dispatch_region): Likewise.
11343         (gimple_eh_dispatch_set_region): Likewise.
11344         (gimple_omp_critical_name): Likewise.
11345         (gimple_omp_critical_name_ptr): Likewise.
11346         (gimple_omp_critical_set_name): Likewise.
11347         (gimple_omp_for_clauses): Likewise.
11348         (gimple_omp_for_clauses_ptr): Likewise.
11349         (gimple_omp_for_set_clauses): Likewise.
11350         (gimple_omp_for_collapse): Likewise.
11351         (gimple_omp_for_index): Likewise.
11352         (gimple_omp_for_index_ptr): Likewise.
11353         (gimple_omp_for_set_index): Likewise.
11354         (gimple_omp_for_initial): Likewise.
11355         (gimple_omp_for_initial_ptr): Likewise.
11356         (gimple_omp_for_set_initial): Likewise.
11357         (gimple_omp_for_final): Likewise.
11358         (gimple_omp_for_final_ptr): Likewise.
11359         (gimple_omp_for_set_final): Likewise.
11360         (gimple_omp_for_incr): Likewise.
11361         (gimple_omp_for_incr_ptr): Likewise.
11362         (gimple_omp_for_set_incr): Likewise.
11363         (gimple_omp_for_pre_body_ptr): Likewise.
11364         (gimple_omp_for_set_pre_body): Likewise.
11365         (gimple_omp_parallel_clauses): Likewise.
11366         (gimple_omp_parallel_clauses_ptr): Likewise.
11367         (gimple_omp_parallel_set_clauses): Likewise.
11368         (gimple_omp_parallel_child_fn): Likewise.
11369         (gimple_omp_parallel_child_fn_ptr): Likewise.
11370         (gimple_omp_parallel_set_child_fn): Likewise.
11371         (gimple_omp_parallel_data_arg): Likewise.
11372         (gimple_omp_parallel_data_arg_ptr): Likewise.
11373         (gimple_omp_parallel_set_data_arg): Likewise.
11374         (gimple_omp_task_clauses): Likewise.
11375         (gimple_omp_task_clauses_ptr): Likewise.
11376         (gimple_omp_task_set_clauses): Likewise.
11377         (gimple_omp_task_child_fn): Likewise.
11378         (gimple_omp_task_child_fn_ptr): Likewise.
11379         (gimple_omp_task_set_child_fn): Likewise.
11380         (gimple_omp_task_data_arg): Likewise.
11381         (gimple_omp_task_data_arg_ptr): Likewise.
11382         (gimple_omp_task_set_data_arg): Likewise.
11383         (gimple_omp_taskreg_clauses): Likewise.
11384         (gimple_omp_taskreg_clauses_ptr): Likewise.
11385         (gimple_omp_taskreg_set_clauses): Likewise.
11386         (gimple_omp_taskreg_child_fn): Likewise.
11387         (gimple_omp_taskreg_child_fn_ptr): Likewise.
11388         (gimple_omp_taskreg_set_child_fn): Likewise.
11389         (gimple_omp_taskreg_data_arg): Likewise.
11390         (gimple_omp_taskreg_data_arg_ptr): Likewise.
11391         (gimple_omp_taskreg_set_data_arg): Likewise.
11392         (gimple_omp_task_copy_fn): Likewise.
11393         (gimple_omp_task_copy_fn_ptr): Likewise.
11394         (gimple_omp_task_set_copy_fn): Likewise.
11395         (gimple_omp_task_arg_size): Likewise.
11396         (gimple_omp_task_arg_size_ptr): Likewise.
11397         (gimple_omp_task_set_arg_size): Likewise.
11398         (gimple_omp_task_arg_align): Likewise.
11399         (gimple_omp_task_arg_align_ptr): Likewise.
11400         (gimple_omp_task_set_arg_align): Likewise.
11401         (gimple_omp_single_clauses): Likewise.
11402         (gimple_omp_single_clauses_ptr): Likewise.
11403         (gimple_omp_single_set_clauses): Likewise.
11404         (gimple_omp_target_clauses): Likewise.
11405         (gimple_omp_target_clauses_ptr): Likewise.
11406         (gimple_omp_target_set_clauses): Likewise.
11407         (gimple_omp_target_child_fn): Likewise.
11408         (gimple_omp_target_child_fn_ptr): Likewise.
11409         (gimple_omp_target_set_child_fn): Likewise.
11410         (gimple_omp_target_data_arg): Likewise.
11411         (gimple_omp_target_data_arg_ptr): Likewise.
11412         (gimple_omp_target_set_data_arg): Likewise.
11413         (gimple_omp_teams_clauses): Likewise.
11414         (gimple_omp_teams_clauses_ptr): Likewise.
11415         (gimple_omp_teams_set_clauses): Likewise.
11416         (gimple_omp_sections_clauses): Likewise.
11417         (gimple_omp_sections_clauses_ptr): Likewise.
11418         (gimple_omp_sections_set_clauses): Likewise.
11419         (gimple_omp_sections_control): Likewise.
11420         (gimple_omp_sections_control_ptr): Likewise.
11421         (gimple_omp_sections_set_control): Likewise.
11422         (gimple_omp_for_set_cond): Likewise.
11423         (gimple_omp_for_cond): Likewise.
11424         (gimple_omp_atomic_store_set_val): Likewise.
11425         (gimple_omp_atomic_store_val): Likewise.
11426         (gimple_omp_atomic_store_val_ptr): Likewise.
11427         (gimple_omp_atomic_load_set_lhs): Likewise.
11428         (gimple_omp_atomic_load_lhs): Likewise.
11429         (gimple_omp_atomic_load_lhs_ptr): Likewise.
11430         (gimple_omp_atomic_load_set_rhs): Likewise.
11431         (gimple_omp_atomic_load_rhs): Likewise.
11432         (gimple_omp_atomic_load_rhs_ptr): Likewise.
11433         (gimple_omp_continue_control_def): Likewise.
11434         (gimple_omp_continue_control_def_ptr): Likewise.
11435         (gimple_omp_continue_set_control_def): Likewise.
11436         (gimple_omp_continue_control_use): Likewise.
11437         (gimple_omp_continue_control_use_ptr): Likewise.
11438         (gimple_omp_continue_set_control_use): Likewise.
11439         (gimple_transaction_body_ptr): Likewise.
11440         (gimple_transaction_label): Likewise.
11441         (gimple_transaction_label_ptr): Likewise.
11442         (gimple_transaction_set_body): Likewise.
11443         (gimple_transaction_set_label): Likewise.
11444
11445         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
11446         * ipa-inline-analysis.c (inline_write_summary): Likewise.
11447         * ipa-ref.c (ipa_record_reference): Likewise.
11448         * ipa-reference.c (analyze_function): Likewise.
11449         (ipa_reference_write_optimization_summary): Likewise.
11450         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
11451         (address_taken_from_non_vtable_p): Likewise.
11452         (comdat_can_be_unshared_p_1): Likewise.
11453         * lto-cgraph.c (lto_output_ref): Likewise.
11454         (add_references): Likewise.
11455         (compute_ltrans_boundary): Likewise.
11456         (output_symtab): Likewise.
11457         (input_ref): Likewise.
11458         (input_cgraph_1): Likewise.
11459         (output_cgraph_opt_summary): Likewise.
11460         * lto-streamer-out.c (lto_output): Likewise.
11461         (output_symbol_p): Likewise.
11462         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
11463         (lsei_start_function_in_partition): Likewise.
11464         (lsei_next_variable_in_partition): Likewise.
11465         (lsei_start_variable_in_partition): Likewise.
11466         * symtab.c (insert_to_assembler_name_hash): Likewise.
11467         (unlink_from_assembler_name_hash): Likewise.
11468         (symtab_unregister_node): Likewise.
11469         (symtab_remove_node): Likewise.
11470         (dump_symtab_node): Likewise.
11471         (verify_symtab_base): Likewise.
11472         (verify_symtab_node): Likewise.
11473         (symtab_make_decl_local): Likewise.
11474         (symtab_alias_ultimate_target): Likewise.
11475         (symtab_resolve_alias): Likewise.
11476         (symtab_get_symbol_partitioning_class): Likewise.
11477         * tree-phinodes.c (allocate_phi_node): Likewise.
11478         (reserve_phi_args_for_new_edge): Likewise.
11479         (remove_phi_args): Likewise.
11480         * varpool.c (varpool_node_for_asm): Likewise.
11481         (varpool_remove_unreferenced_decls): Likewise.
11482
11483 2014-04-23  Jeff Law  <law@redhat.com>
11484
11485         PR tree-optimization/60902
11486         * tree-ssa-threadedge.c
11487         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
11488         invalidate outputs from statements that do not produce useful
11489         outputs for threading.
11490
11491 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
11492
11493         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
11494         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
11495         machine descriptions for Stack Smashing Protector.
11496
11497 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
11498
11499         * aarch64.md (<optab>_rol<mode>3): New pattern.
11500         (<optab>_rolsi3_uxtw): Likewise.
11501         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
11502
11503 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
11504
11505         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
11506         (arm_cortex_a12_tune): Likewise.
11507
11508 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11509
11510         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
11511
11512 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11513
11514         * config/arm/arm.md (arm_rev16si2): New pattern.
11515         (arm_rev16si2_alt): Likewise.
11516         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
11517
11518 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11519
11520         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
11521         (rev16<mode>2_alt): Likewise.
11522         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
11523         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
11524         (aarch_rev16_shleft_mask_imm_p): Likewise.
11525         (aarch_rev16_p_1): Likewise.
11526         (aarch_rev16_p): Likewise.
11527         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
11528         (aarch_rev16_shright_mask_imm_p): Likewise.
11529         (aarch_rev16_shleft_mask_imm_p): Likewise.
11530
11531 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11532
11533         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
11534         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
11535         rev cost.
11536         (cortex_a53_extra_costs): Likewise.
11537         (cortex_a57_extra_costs): Likewise.
11538         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
11539         (cortexa7_extra_costs): Likewise.
11540         (cortexa8_extra_costs): Likewise.
11541         (cortexa12_extra_costs): Likewise.
11542         (cortexa15_extra_costs): Likewise.
11543         (v7m_extra_costs): Likewise.
11544         (arm_new_rtx_costs): Handle BSWAP.
11545
11546 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11547
11548         * config/arm/arm.c (cortexa8_extra_costs): New table.
11549         (arm_cortex_a8_tune): New tuning struct.
11550         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
11551
11552 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11553
11554         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
11555
11556 2014-04-23  Richard Biener  <rguenther@suse.de>
11557
11558         * Makefile.in (OBJS): Remove loop-unswitch.o.
11559         * tree-pass.h (make_pass_rtl_unswitch): Remove.
11560         * passes.def (pass_rtl_unswitch): Likewise.
11561         * loop-init.c (gate_rtl_unswitch): Likewise.
11562         (rtl_unswitch): Likewise.
11563         (pass_data_rtl_unswitch): Likewise.
11564         (pass_rtl_unswitch): Likewise.
11565         (make_pass_rtl_unswitch): Likewise.
11566         * rtl.h (reversed_condition): Likewise.
11567         (compare_and_jump_seq): Likewise.
11568         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
11569         and make static.
11570         * loop-unroll.c (compare_and_jump_seq): Likewise.
11571
11572 2014-04-23  Richard Biener  <rguenther@suse.de>
11573
11574         PR tree-optimization/60903
11575         * tree-ssa-loop-im.c (analyze_memory_references): Remove
11576         commented code block.
11577         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
11578         loop flags to newly created BBs and edges.
11579
11580 2014-04-23  Nick Clifton  <nickc@redhat.com>
11581
11582         * config/msp430/msp430.c (msp430_handle_option): Move function
11583         to msp430-common.c
11584         (msp430_option_override): Simplify mcu and mcpu option handling.
11585         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
11586         support for -mhwmult command line option.
11587         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
11588         -mhwmult command line option.
11589         (msp430_hwmult_enabled): Delete.
11590         (msp43o_output_labelref): Add support for -mhwmult command line option.
11591         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
11592         (umulsidi3): Likewise.
11593         * config/msp430/msp430.opt (mmcu): Add Report attribute.
11594         (mcpu, mlarge, msmall): Likewise.
11595         (mhwmult): New option.
11596         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
11597         prototype.
11598         (msp430_is_f5_mcu): Remove prototype.
11599         (msp430_use_f5_series_hwmult): Add prototype.
11600         * config/msp430/msp430-opts.h: New file.
11601         * common/config/msp430: New directory.
11602         * common/config/msp430/msp430-common.c: New file.
11603         * config.gcc (msp430): Remove target_has_targetm_common.
11604         * doc/invoke.texi: Document -mhwmult command line option.
11605
11606 2014-04-23  Nick Clifton  <nickc@redhat.com>
11607
11608         * config/i386/cygwin.h (ENDFILE_SPEC): Include
11609         default-manifest.o if it can be found in the search path.
11610         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
11611
11612 2014-04-23  Terry Guo  <terry.guo@arm.com>
11613
11614         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
11615
11616 2014-04-23  Richard Biener  <rguenther@suse.de>
11617
11618         PR middle-end/60895
11619         * tree-inline.c (declare_return_variable): Use mark_addressable.
11620
11621 2014-04-23  Richard Biener  <rguenther@suse.de>
11622
11623         PR middle-end/60891
11624         * loop-init.c (loop_optimizer_init): Make sure to apply
11625         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
11626
11627 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
11628
11629         PR sanitizer/60275
11630         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
11631         New options.
11632         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
11633         if flag_sanitize_undefined_trap_on_error.
11634         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
11635         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
11636         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
11637         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
11638         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
11639         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
11640         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
11641         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
11642         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
11643         * ubsan.c (ubsan_instrument_unreachable): Return
11644         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
11645         (ubsan_expand_null_ifn): Emit __builtin_trap ()
11646         if flag_sanitize_undefined_trap_on_error and
11647         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
11648         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
11649         instrument_bool_enum_load): Emit __builtin_trap () if
11650         flag_sanitize_undefined_trap_on_error and
11651         __builtin_handle_*_abort () if !flag_sanitize_recover.
11652         * doc/invoke.texi (-fsanitize-recover,
11653         -fsanitize-undefined-trap-on-error): Document.
11654
11655 2014-04-22  Christian Bruel  <christian.bruel@st.com>
11656
11657         * config/sh/sh.md (mov<mode>): Replace movQIHI.
11658          Force immediates to SImode.
11659
11660 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
11661
11662         * config/nios2/nios2.md (UNSPEC_ROUND): New.
11663         (lroundsfsi2): New.
11664         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
11665         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
11666         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
11667         (nios2_fpu_insn): Add entry for round.
11668         (N2FPU_NO_ERRNO_P): Define.
11669         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
11670         flag_errno_math.
11671         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
11672
11673 2014-04-22  Richard Henderson  <rth@redhat.com>
11674
11675         * config/aarch64/aarch64 (addti3, subti3): New expanders.
11676         (add<GPI>3_compare0): Remove leading * from name.
11677         (add<GPI>3_carryin): Likewise.
11678         (sub<GPI>3_compare0): Likewise.
11679         (sub<GPI>3_carryin): Likewise.
11680         (<su_optab>mulditi3): New expander.
11681         (multi3): New expander.
11682         (madd<GPI>): Remove leading * from name.
11683
11684 2014-04-22  Martin Jambor  <mjambor@suse.cz>
11685
11686         * cgraphclones.c (cgraph_function_versioning): Copy
11687         ipa_transforms_to_apply instead of asserting it is empty.
11688
11689 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
11690
11691         PR target/60868
11692         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
11693         on count_exp to get mode.
11694
11695 2014-04-22  Andrew Pinski  <apinski@cavium.com>
11696
11697         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
11698         Handle TLS for ILP32.
11699         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
11700         (tlsie_small_<mode>): this and handle PTR.
11701         (tlsie_small_sidi): New pattern.
11702         (tlsle_small): Change to an expand to handle ILP32.
11703         (tlsle_small_<mode>): New pattern.
11704         (tlsdesc_small): Rename to ...
11705         (tlsdesc_small_<mode>): this and handle PTR.
11706
11707 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11708
11709         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
11710
11711 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
11712
11713         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
11714         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
11715         (aarch64_types_signed_poly_qualifiers): Likewise.
11716         (aarch64_types_unsigned_signed_qualifiers): Likewise.
11717         (aarch64_types_poly_signed_qualifiers): Likewise.
11718         (TYPES_REINTERP_SS): Type macro added.
11719         (TYPES_REINTERP_SU): Likewise.
11720         (TYPES_REINTERP_SP): Likewise.
11721         (TYPES_REINTERP_US): Likewise.
11722         (TYPES_REINTERP_PS): Likewise.
11723         (aarch64_fold_builtin): New expression folding added.
11724         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
11725         Declarations removed.
11726         (REINTERP_SS): Declarations added.
11727         (REINTERP_US): Likewise.
11728         (REINTERP_PS): Likewise.
11729         (REINTERP_SU): Likewise.
11730         (REINTERP_SP): Likewise.
11731         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
11732         (vreinterpretq_p8_f64): Likewise.
11733         (vreinterpret_p16_f64): Likewise.
11734         (vreinterpretq_p16_f64): Likewise.
11735         (vreinterpret_f32_f64): Likewise.
11736         (vreinterpretq_f32_f64): Likewise.
11737         (vreinterpret_f64_f32): Likewise.
11738         (vreinterpret_f64_p8): Likewise.
11739         (vreinterpret_f64_p16): Likewise.
11740         (vreinterpret_f64_s8): Likewise.
11741         (vreinterpret_f64_s16): Likewise.
11742         (vreinterpret_f64_s32): Likewise.
11743         (vreinterpret_f64_s64): Likewise.
11744         (vreinterpret_f64_u8): Likewise.
11745         (vreinterpret_f64_u16): Likewise.
11746         (vreinterpret_f64_u32): Likewise.
11747         (vreinterpret_f64_u64): Likewise.
11748         (vreinterpretq_f64_f32): Likewise.
11749         (vreinterpretq_f64_p8): Likewise.
11750         (vreinterpretq_f64_p16): Likewise.
11751         (vreinterpretq_f64_s8): Likewise.
11752         (vreinterpretq_f64_s16): Likewise.
11753         (vreinterpretq_f64_s32): Likewise.
11754         (vreinterpretq_f64_s64): Likewise.
11755         (vreinterpretq_f64_u8): Likewise.
11756         (vreinterpretq_f64_u16): Likewise.
11757         (vreinterpretq_f64_u32): Likewise.
11758         (vreinterpretq_f64_u64): Likewise.
11759         (vreinterpret_s64_f64): Likewise.
11760         (vreinterpretq_s64_f64): Likewise.
11761         (vreinterpret_u64_f64): Likewise.
11762         (vreinterpretq_u64_f64): Likewise.
11763         (vreinterpret_s8_f64): Likewise.
11764         (vreinterpretq_s8_f64): Likewise.
11765         (vreinterpret_s16_f64): Likewise.
11766         (vreinterpretq_s16_f64): Likewise.
11767         (vreinterpret_s32_f64): Likewise.
11768         (vreinterpretq_s32_f64): Likewise.
11769         (vreinterpret_u8_f64): Likewise.
11770         (vreinterpretq_u8_f64): Likewise.
11771         (vreinterpret_u16_f64): Likewise.
11772         (vreinterpretq_u16_f64): Likewise.
11773         (vreinterpret_u32_f64): Likewise.
11774         (vreinterpretq_u32_f64): Likewise.
11775
11776 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
11777
11778         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
11779         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
11780         (vreinterpret_p8_s8): Likewise.
11781         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
11782         (vreinterpret_p8_s16): Likewise.
11783         (vreinterpret_p8_s32): Likewise.
11784         (vreinterpret_p8_s64): Likewise.
11785         (vreinterpret_p8_f32): Likewise.
11786         (vreinterpret_p8_u8): Likewise.
11787         (vreinterpret_p8_u16): Likewise.
11788         (vreinterpret_p8_u32): Likewise.
11789         (vreinterpret_p8_u64): Likewise.
11790         (vreinterpret_p8_p16): Likewise.
11791         (vreinterpretq_p8_s8): Likewise.
11792         (vreinterpretq_p8_s16): Likewise.
11793         (vreinterpretq_p8_s32): Likewise.
11794         (vreinterpretq_p8_s64): Likewise.
11795         (vreinterpretq_p8_f32): Likewise.
11796         (vreinterpretq_p8_u8): Likewise.
11797         (vreinterpretq_p8_u16): Likewise.
11798         (vreinterpretq_p8_u32): Likewise.
11799         (vreinterpretq_p8_u64): Likewise.
11800         (vreinterpretq_p8_p16): Likewise.
11801         (vreinterpret_p16_s8): Likewise.
11802         (vreinterpret_p16_s16): Likewise.
11803         (vreinterpret_p16_s32): Likewise.
11804         (vreinterpret_p16_s64): Likewise.
11805         (vreinterpret_p16_f32): Likewise.
11806         (vreinterpret_p16_u8): Likewise.
11807         (vreinterpret_p16_u16): Likewise.
11808         (vreinterpret_p16_u32): Likewise.
11809         (vreinterpret_p16_u64): Likewise.
11810         (vreinterpret_p16_p8): Likewise.
11811         (vreinterpretq_p16_s8): Likewise.
11812         (vreinterpretq_p16_s16): Likewise.
11813         (vreinterpretq_p16_s32): Likewise.
11814         (vreinterpretq_p16_s64): Likewise.
11815         (vreinterpretq_p16_f32): Likewise.
11816         (vreinterpretq_p16_u8): Likewise.
11817         (vreinterpretq_p16_u16): Likewise.
11818         (vreinterpretq_p16_u32): Likewise.
11819         (vreinterpretq_p16_u64): Likewise.
11820         (vreinterpretq_p16_p8): Likewise.
11821         (vreinterpret_f32_s8): Likewise.
11822         (vreinterpret_f32_s16): Likewise.
11823         (vreinterpret_f32_s32): Likewise.
11824         (vreinterpret_f32_s64): Likewise.
11825         (vreinterpret_f32_u8): Likewise.
11826         (vreinterpret_f32_u16): Likewise.
11827         (vreinterpret_f32_u32): Likewise.
11828         (vreinterpret_f32_u64): Likewise.
11829         (vreinterpret_f32_p8): Likewise.
11830         (vreinterpret_f32_p16): Likewise.
11831         (vreinterpretq_f32_s8): Likewise.
11832         (vreinterpretq_f32_s16): Likewise.
11833         (vreinterpretq_f32_s32): Likewise.
11834         (vreinterpretq_f32_s64): Likewise.
11835         (vreinterpretq_f32_u8): Likewise.
11836         (vreinterpretq_f32_u16): Likewise.
11837         (vreinterpretq_f32_u32): Likewise.
11838         (vreinterpretq_f32_u64): Likewise.
11839         (vreinterpretq_f32_p8): Likewise.
11840         (vreinterpretq_f32_p16): Likewise.
11841         (vreinterpret_s64_s8): Likewise.
11842         (vreinterpret_s64_s16): Likewise.
11843         (vreinterpret_s64_s32): Likewise.
11844         (vreinterpret_s64_f32): Likewise.
11845         (vreinterpret_s64_u8): Likewise.
11846         (vreinterpret_s64_u16): Likewise.
11847         (vreinterpret_s64_u32): Likewise.
11848         (vreinterpret_s64_u64): Likewise.
11849         (vreinterpret_s64_p8): Likewise.
11850         (vreinterpret_s64_p16): Likewise.
11851         (vreinterpretq_s64_s8): Likewise.
11852         (vreinterpretq_s64_s16): Likewise.
11853         (vreinterpretq_s64_s32): Likewise.
11854         (vreinterpretq_s64_f32): Likewise.
11855         (vreinterpretq_s64_u8): Likewise.
11856         (vreinterpretq_s64_u16): Likewise.
11857         (vreinterpretq_s64_u32): Likewise.
11858         (vreinterpretq_s64_u64): Likewise.
11859         (vreinterpretq_s64_p8): Likewise.
11860         (vreinterpretq_s64_p16): Likewise.
11861         (vreinterpret_u64_s8): Likewise.
11862         (vreinterpret_u64_s16): Likewise.
11863         (vreinterpret_u64_s32): Likewise.
11864         (vreinterpret_u64_s64): Likewise.
11865         (vreinterpret_u64_f32): Likewise.
11866         (vreinterpret_u64_u8): Likewise.
11867         (vreinterpret_u64_u16): Likewise.
11868         (vreinterpret_u64_u32): Likewise.
11869         (vreinterpret_u64_p8): Likewise.
11870         (vreinterpret_u64_p16): Likewise.
11871         (vreinterpretq_u64_s8): Likewise.
11872         (vreinterpretq_u64_s16): Likewise.
11873         (vreinterpretq_u64_s32): Likewise.
11874         (vreinterpretq_u64_s64): Likewise.
11875         (vreinterpretq_u64_f32): Likewise.
11876         (vreinterpretq_u64_u8): Likewise.
11877         (vreinterpretq_u64_u16): Likewise.
11878         (vreinterpretq_u64_u32): Likewise.
11879         (vreinterpretq_u64_p8): Likewise.
11880         (vreinterpretq_u64_p16): Likewise.
11881         (vreinterpret_s8_s16): Likewise.
11882         (vreinterpret_s8_s32): Likewise.
11883         (vreinterpret_s8_s64): Likewise.
11884         (vreinterpret_s8_f32): Likewise.
11885         (vreinterpret_s8_u8): Likewise.
11886         (vreinterpret_s8_u16): Likewise.
11887         (vreinterpret_s8_u32): Likewise.
11888         (vreinterpret_s8_u64): Likewise.
11889         (vreinterpret_s8_p8): Likewise.
11890         (vreinterpret_s8_p16): Likewise.
11891         (vreinterpretq_s8_s16): Likewise.
11892         (vreinterpretq_s8_s32): Likewise.
11893         (vreinterpretq_s8_s64): Likewise.
11894         (vreinterpretq_s8_f32): Likewise.
11895         (vreinterpretq_s8_u8): Likewise.
11896         (vreinterpretq_s8_u16): Likewise.
11897         (vreinterpretq_s8_u32): Likewise.
11898         (vreinterpretq_s8_u64): Likewise.
11899         (vreinterpretq_s8_p8): Likewise.
11900         (vreinterpretq_s8_p16): Likewise.
11901         (vreinterpret_s16_s8): Likewise.
11902         (vreinterpret_s16_s32): Likewise.
11903         (vreinterpret_s16_s64): Likewise.
11904         (vreinterpret_s16_f32): Likewise.
11905         (vreinterpret_s16_u8): Likewise.
11906         (vreinterpret_s16_u16): Likewise.
11907         (vreinterpret_s16_u32): Likewise.
11908         (vreinterpret_s16_u64): Likewise.
11909         (vreinterpret_s16_p8): Likewise.
11910         (vreinterpret_s16_p16): Likewise.
11911         (vreinterpretq_s16_s8): Likewise.
11912         (vreinterpretq_s16_s32): Likewise.
11913         (vreinterpretq_s16_s64): Likewise.
11914         (vreinterpretq_s16_f32): Likewise.
11915         (vreinterpretq_s16_u8): Likewise.
11916         (vreinterpretq_s16_u16): Likewise.
11917         (vreinterpretq_s16_u32): Likewise.
11918         (vreinterpretq_s16_u64): Likewise.
11919         (vreinterpretq_s16_p8): Likewise.
11920         (vreinterpretq_s16_p16): Likewise.
11921         (vreinterpret_s32_s8): Likewise.
11922         (vreinterpret_s32_s16): Likewise.
11923         (vreinterpret_s32_s64): Likewise.
11924         (vreinterpret_s32_f32): Likewise.
11925         (vreinterpret_s32_u8): Likewise.
11926         (vreinterpret_s32_u16): Likewise.
11927         (vreinterpret_s32_u32): Likewise.
11928         (vreinterpret_s32_u64): Likewise.
11929         (vreinterpret_s32_p8): Likewise.
11930         (vreinterpret_s32_p16): Likewise.
11931         (vreinterpretq_s32_s8): Likewise.
11932         (vreinterpretq_s32_s16): Likewise.
11933         (vreinterpretq_s32_s64): Likewise.
11934         (vreinterpretq_s32_f32): Likewise.
11935         (vreinterpretq_s32_u8): Likewise.
11936         (vreinterpretq_s32_u16): Likewise.
11937         (vreinterpretq_s32_u32): Likewise.
11938         (vreinterpretq_s32_u64): Likewise.
11939         (vreinterpretq_s32_p8): Likewise.
11940         (vreinterpretq_s32_p16): Likewise.
11941         (vreinterpret_u8_s8): Likewise.
11942         (vreinterpret_u8_s16): Likewise.
11943         (vreinterpret_u8_s32): Likewise.
11944         (vreinterpret_u8_s64): Likewise.
11945         (vreinterpret_u8_f32): Likewise.
11946         (vreinterpret_u8_u16): Likewise.
11947         (vreinterpret_u8_u32): Likewise.
11948         (vreinterpret_u8_u64): Likewise.
11949         (vreinterpret_u8_p8): Likewise.
11950         (vreinterpret_u8_p16): Likewise.
11951         (vreinterpretq_u8_s8): Likewise.
11952         (vreinterpretq_u8_s16): Likewise.
11953         (vreinterpretq_u8_s32): Likewise.
11954         (vreinterpretq_u8_s64): Likewise.
11955         (vreinterpretq_u8_f32): Likewise.
11956         (vreinterpretq_u8_u16): Likewise.
11957         (vreinterpretq_u8_u32): Likewise.
11958         (vreinterpretq_u8_u64): Likewise.
11959         (vreinterpretq_u8_p8): Likewise.
11960         (vreinterpretq_u8_p16): Likewise.
11961         (vreinterpret_u16_s8): Likewise.
11962         (vreinterpret_u16_s16): Likewise.
11963         (vreinterpret_u16_s32): Likewise.
11964         (vreinterpret_u16_s64): Likewise.
11965         (vreinterpret_u16_f32): Likewise.
11966         (vreinterpret_u16_u8): Likewise.
11967         (vreinterpret_u16_u32): Likewise.
11968         (vreinterpret_u16_u64): Likewise.
11969         (vreinterpret_u16_p8): Likewise.
11970         (vreinterpret_u16_p16): Likewise.
11971         (vreinterpretq_u16_s8): Likewise.
11972         (vreinterpretq_u16_s16): Likewise.
11973         (vreinterpretq_u16_s32): Likewise.
11974         (vreinterpretq_u16_s64): Likewise.
11975         (vreinterpretq_u16_f32): Likewise.
11976         (vreinterpretq_u16_u8): Likewise.
11977         (vreinterpretq_u16_u32): Likewise.
11978         (vreinterpretq_u16_u64): Likewise.
11979         (vreinterpretq_u16_p8): Likewise.
11980         (vreinterpretq_u16_p16): Likewise.
11981         (vreinterpret_u32_s8): Likewise.
11982         (vreinterpret_u32_s16): Likewise.
11983         (vreinterpret_u32_s32): Likewise.
11984         (vreinterpret_u32_s64): Likewise.
11985         (vreinterpret_u32_f32): Likewise.
11986         (vreinterpret_u32_u8): Likewise.
11987         (vreinterpret_u32_u16): Likewise.
11988         (vreinterpret_u32_u64): Likewise.
11989         (vreinterpret_u32_p8): Likewise.
11990         (vreinterpret_u32_p16): Likewise.
11991         (vreinterpretq_u32_s8): Likewise.
11992         (vreinterpretq_u32_s16): Likewise.
11993         (vreinterpretq_u32_s32): Likewise.
11994         (vreinterpretq_u32_s64): Likewise.
11995         (vreinterpretq_u32_f32): Likewise.
11996         (vreinterpretq_u32_u8): Likewise.
11997         (vreinterpretq_u32_u16): Likewise.
11998         (vreinterpretq_u32_u64): Likewise.
11999         (vreinterpretq_u32_p8): Likewise.
12000         (vreinterpretq_u32_p16): Likewise.
12001
12002 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
12003
12004         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
12005         Pattern extended.
12006         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
12007         (sqabs): Likewise.
12008         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
12009         (vqnegd_s64): Likewise.
12010         (vqabs_s64): Likewise.
12011         (vqabsd_s64): Likewise.
12012
12013 2014-04-22  Richard Henderson  <rth@redhat.com>
12014
12015         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
12016         computation to the top of the loop.
12017
12018 2014-04-22  Renlin  <renlin.li@arm.com>
12019             Jiong Wang  <jiong.wang@arm.com>
12020
12021         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
12022         * config/aarch64/aarch64.c (aarch64_layout_frame)
12023         (aarch64_initial_elimination_offset): Likewise.
12024
12025 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12026
12027         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
12028         Fix indentation.
12029
12030 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
12031
12032         * machmode.h (bitwise_mode_for_mode): Declare.
12033         * stor-layout.h (bitwise_type_for_mode): Likewise.
12034         * stor-layout.c (bitwise_mode_for_mode): New function.
12035         (bitwise_type_for_mode): Likewise.
12036         * builtins.c (fold_builtin_memory_op): Use it instead of
12037         int_mode_for_mode and build_nonstandard_integer_type.
12038
12039 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12040
12041         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
12042         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
12043         (*-*-solaris2*): Simplify.
12044         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
12045         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
12046         *-*-solaris2.9* handling.
12047
12048         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
12049         as bug.
12050         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
12051         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
12052         handling, simplify.
12053         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
12054         * configure: Regenerate.
12055
12056         * config/i386/sol2-9.h: Remove.
12057
12058         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
12059         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
12060         Remove Solaris 9 references.
12061
12062 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
12063
12064         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
12065         (floatuns<GPI:mode><GPF:mode>2): Remove.
12066         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
12067         and floatuns conversions.
12068         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
12069         and floatuns conversions.
12070         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
12071         (w1,w2): New mode attributes for inequal width conversions.
12072
12073 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
12074
12075         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
12076         the output asm format.
12077
12078 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
12079
12080         * config/aarch64/aarch64-simd.md
12081         (aarch64_cm<optab>di): Always split.
12082         (*aarch64_cm<optab>di): New.
12083         (aarch64_cmtstdi): Always split.
12084         (*aarch64_cmtstdi): New.
12085
12086 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
12087
12088         PR tree-optimization/60823
12089         * omp-low.c (ipa_simd_modify_function_body): Go through
12090         all SSA_NAMEs and for those refering to vector arguments
12091         which are going to be replaced adjust SSA_NAME_VAR and,
12092         if it is a default definition, change it into a non-default
12093         definition assigned at the beginning of function from new_decl.
12094         (ipa_simd_modify_stmt_ops): Rewritten.
12095         * tree-dfa.c (set_ssa_default_def): When removing default def,
12096         check for NULL loc instead of NULL *loc.
12097
12098 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12099
12100         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
12101         restrictions on core registers for DImode values in Thumb2.
12102
12103 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
12104
12105         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
12106         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
12107
12108 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
12109
12110         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
12111         (*iordi_notzesidi_di): Likewise.
12112         (*iordi_notsesidi_di): Likewise.
12113
12114 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
12115
12116         * config/arm/arm-protos.h (tune_params): New struct members.
12117         * config/arm/arm.c: Initialise tune_params per processor.
12118         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
12119         for speed, based on new tune_params.
12120
12121 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
12122
12123         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
12124         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
12125         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
12126         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
12127         * config/aarch64/arm_neon.h (vrnd_f64): Added.
12128         (vrnda_f64): Likewise.
12129         (vrndi_f64): Likewise.
12130         (vrndm_f64): Likewise.
12131         (vrndn_f64): Likewise.
12132         (vrndp_f64): Likewise.
12133         (vrndx_f64): Likewise.
12134
12135 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
12136
12137         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
12138         GET_MODE_SIZE argument is enum machine_mode.
12139
12140 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
12141
12142         PR target/60910
12143         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
12144         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
12145
12146 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
12147
12148         PR middle-end/60281
12149         * asan.c (asan_emit_stack_protection): Force the base to align to
12150         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
12151         appropriate bits if STRICT_ALIGNMENT.
12152         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
12153         when asan is on.
12154         (expand_used_vars): Leave a space in the stack frame for alignment
12155         if STRICT_ALIGNMENT.
12156
12157 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
12158
12159         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
12160         than a gimple.
12161         (gimple_store_p): Likewise.
12162         (gimple_assign_load_p): Likewise.
12163         (gimple_assign_cast_p): Likewise.
12164         (gimple_clobber_p): Likewise.
12165
12166         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
12167         rather than a gimple.
12168         (gimple_assign_cast_p): Likewise.
12169
12170 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
12171
12172         PR target/60735
12173         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
12174         If mode is DDmode and TARGET_E500_DOUBLE allow move.
12175
12176         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
12177         more debug information for E500 if -mdebug=reg.
12178
12179 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
12180
12181         PR target/60909
12182         * config/i386/i386.c (ix86_expand_builtin)
12183         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
12184         register for target RTX.
12185         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
12186
12187 2014-04-18  Cong Hou  <congh@google.com>
12188
12189         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
12190         the widen-mult pattern by handling two operands with different sizes,
12191         and operands whose size is smaller than half of the result type.
12192
12193 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
12194
12195         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
12196         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
12197         (do_estimate_edge_time): Compute it.
12198         * ipa-inline.c (want_inline_small_function_p): Bypass
12199         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
12200
12201 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
12202
12203         * ipa-inline.c (spec_rem): New static variable.
12204         (dump_overall_stats): New function.
12205         (dump_inline_stats): New function.
12206
12207 2014-04-18  Richard Henderson  <rth@redhat.com>
12208
12209         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
12210         to GET_MODE_SIZE, not a reg_class_t.
12211
12212 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12213
12214         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
12215         (vsx_xxmrglw_<mode>): Likewise.
12216
12217 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
12218
12219         PR target/60876
12220         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
12221         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
12222         (rs6000_init_hard_regno_mode_ok): Likewise.
12223
12224 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
12225
12226         * ipa-inline.c (inline_small_functions): Account only non-cold
12227         functions.
12228         * doc/invoke.texi (inline-unit-growth): Update documentation.
12229
12230 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
12231
12232         * config/rs6000/rs6000.md (addti3, subti3): New.
12233
12234 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
12235
12236         PR target/60863
12237         * config/i386/i386.c (ix86_expand_clear): Remove outdated
12238         comment.  Check optimize_insn_for_size_p instead of
12239         optimize_insn_for_speed_p.
12240
12241 2014-04-17  Martin Jambor  <mjambor@suse.cz>
12242
12243         * gimple-iterator.c (gsi_start_edge): New function.
12244         * gimple-iterator.h (gsi_start_edge): Declare.
12245         * tree-sra.c (single_non_eh_succ): New function.
12246         (disqualify_ops_if_throwing_stmt): Renamed to
12247         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
12248         having one non-EH successor BB.
12249         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
12250         generate loads into replacements.
12251         (sra_modify_assign): Likewise and and also use the simple path for
12252         such statements.
12253         (sra_modify_function_body): Commit statements on edges.
12254
12255 2014-04-17  Richard Biener  <rguenther@suse.de>
12256
12257         PR middle-end/60849
12258         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
12259         comparison results and add clarifying comment.
12260
12261 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
12262
12263         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
12264         (blank_mode): Initialize it.
12265         (emit_mode_size_inline, emit_mode_nunits_inline,
12266         emit_mode_inner_inline): New functions.
12267         (emit_insn_modes_h): Call them and surround their output with
12268         #if GCC_VERSION >= 4001 ... #endif.
12269         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
12270         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
12271         mode_* arrays if the argument is __builtin_constant_p.
12272         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
12273         is enum machine_mode.
12274
12275 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12276
12277         * passes.c (opt_pass::execute): Adjust.
12278         (pass_manager::execute_pass_mode_switching): Likewise.
12279         (early_local_passes::execute): Likewise.
12280         (execute_one_pass): Pass cfun to the pass's execute method.
12281         * tree-pass.h (opt_pass::execute): Add function * argument.
12282         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
12283         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
12284         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
12285         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
12286         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
12287         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
12288         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
12289         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
12290         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
12291         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
12292         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
12293         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
12294         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
12295         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
12296         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
12297         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
12298         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
12299         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
12300         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
12301         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
12302         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
12303         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
12304         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
12305         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
12306         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
12307         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
12308         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
12309         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
12310         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
12311         Adjust.
12312
12313 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12314
12315         * passes.c (opt_pass::gate): Take function * argument.
12316         (gate_all_early_local_passes): Merge into
12317         (early_local_passes::gate): this.
12318         (gate_all_early_optimizations): Merge into
12319         (all_early_optimizations::gate): this.
12320         (gate_all_optimizations): Mege into
12321         (all_optimizations::gate): this.
12322         (gate_all_optimizations_g): Merge into
12323         (all_optimizations_g::gate): this.
12324         (gate_rest_of_compilation): Mege into
12325         (rest_of_compilation::gate): this.
12326         (gate_postreload): Merge into
12327         (postreload::gate): this.
12328         (dump_one_pass): Pass cfun to the pass's gate method.
12329         (execute_ipa_summary_passes): Likewise.
12330         (execute_one_pass): Likewise.
12331         (ipa_write_summaries_2): Likewise.
12332         (ipa_write_optimization_summaries_1): Likewise.
12333         (ipa_read_summaries_1): Likewise.
12334         (ipa_read_optimization_summaries_1): Likewise.
12335         (execute_ipa_stmt_fixups): Likewise.
12336         * tree-pass.h (opt_pass::gate): Add function * argument.
12337         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
12338         combine-stack-adj.c, combine.c, compare-elim.c,
12339         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
12340         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
12341         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
12342         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
12343         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
12344         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
12345         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
12346         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
12347         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
12348         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
12349         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
12350         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
12351         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
12352         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
12353         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
12354         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
12355         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
12356         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
12357         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
12358         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
12359         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
12360         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
12361         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
12362         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
12363         var-tracking.c, vtable-verify.c, web.c: Adjust.
12364
12365 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12366
12367         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
12368         * configure: Regenerate.
12369
12370 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12371
12372         * passes.c (dump_one_pass): don't check pass->has_gate.
12373         (execute_ipa_summary_passes): Likewise.
12374         (execute_one_pass): Likewise.
12375         (ipa_write_summaries_2): Likewise.
12376         (ipa_write_optimization_summaries_1): Likewise.
12377         (ipa_read_optimization_summaries_1): Likewise.
12378         (execute_ipa_stmt_fixups): Likewise.
12379         * tree-pass.h (pass_data::has_gate): Remove.
12380         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
12381         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
12382         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
12383         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
12384         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
12385         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
12386         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
12387         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
12388         gimple-low.c, gimple-ssa-isolate-paths.c,
12389         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
12390         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
12391         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
12392         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
12393         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
12394         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
12395         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
12396         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
12397         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
12398         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
12399         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
12400         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
12401         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
12402         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
12403         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
12404         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
12405         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
12406         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
12407         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
12408         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
12409         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
12410         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
12411         Adjust.
12412
12413 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12414
12415         * pass_manager.h (pass_manager::register_dump_files_1): Remove
12416         declaration.
12417         * passes.c (pass_manager::register_dump_files_1): Merge into
12418         (pass_manager::register_dump_files): this, and remove its handling of
12419         properties since the pass always has the properties anyway.
12420         (pass_manager::pass_manager): Adjust.
12421
12422 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
12423
12424         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
12425         * passes.c (pass_manager::register_dump_files_1): Remove dead code
12426         dealing with properties.
12427         (pass_manager::register_dump_files): Adjust.
12428
12429 2014-03-20  Mark Wielaard  <mjw@redhat.com>
12430
12431         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
12432         then represent the bound as normal constant value.
12433
12434 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
12435
12436         PR target/60847
12437         Forward port from 4.8 branch
12438         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
12439
12440         * config/i386/bmiintrin.h (_blsi_u32): New.
12441         (_blsi_u64): Ditto.
12442         (_blsr_u32): Ditto.
12443         (_blsr_u64): Ditto.
12444         (_blsmsk_u32): Ditto.
12445         (_blsmsk_u64): Ditto.
12446         (_tzcnt_u32): Ditto.
12447         (_tzcnt_u64): Ditto.
12448
12449 2014-04-17  Kito Cheng  <kito@0xlab.org>
12450
12451         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
12452
12453 2014-04-17  Richard Biener  <rguenther@suse.de>
12454
12455         PR middle-end/60849
12456         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
12457         boolean results for comparisons.
12458
12459 2014-04-17  Richard Biener  <rguenther@suse.de>
12460
12461         PR tree-optimization/60836
12462         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
12463         initial PHI args to be gimple values.
12464
12465 2014-04-17  Richard Biener  <rguenther@suse.de>
12466
12467         PR tree-optimization/60841
12468         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
12469         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
12470         of stmts to SLP build.
12471         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
12472         (vect_analyze_slp): Likewise.
12473         (vect_analyze_slp_instance): Likewise.
12474         (vect_build_slp_tree): Limit overall SLP tree growth.
12475         * tree-vectorizer.h (vect_analyze_data_refs,
12476         vect_analyze_slp): Adjust prototypes.
12477
12478 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
12479
12480         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
12481         Silvermont.
12482
12483 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
12484
12485         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
12486         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
12487         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
12488         for TARGET_SLOW_PSHUFB
12489
12490 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
12491
12492         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
12493         * config/i386/i386.c (intel_cost): Ditto.
12494
12495 2014-04-17  Joey Ye  <joey.ye@arm.com>
12496
12497         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
12498
12499 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
12500
12501         * opts.c (common_handle_option): Disable -fipa-reference coorectly
12502         with -fuse-profile.
12503
12504 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
12505
12506         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
12507         (type_all_derivations_known_p): New predicate.
12508         (type_all_ctors_visible_p): New predicate.
12509         (type_possibly_instantiated_p): New predicate.
12510         (get_odr_type): Compute all_derivations_known.
12511         (dump_odr_type): Dump the flag.
12512         (maybe_record_type): Cleanup.
12513         (record_target_from_binfo): Add bases_to_consider array;
12514         record bases for types w/o instances and skip CXX destructor.
12515         (possible_polymorphic_call_targets_1): Add bases_to_consider
12516         and consider_construction parameters; check if type may have instance.
12517         (get_polymorphic_call_info): Set maybe_in_construction to true
12518         when we know nothing.
12519         (record_targets_from_bases): Skip CXX destructors; they are
12520         never called for types in construction.
12521         (possible_polymorphic_call_targets): Do not record target when
12522         type may not have instance.
12523
12524 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
12525
12526         PR ipa/60854
12527         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
12528         external aliases alive, too.
12529
12530 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
12531
12532         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
12533         definition.
12534
12535 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
12536
12537         * final.c (compute_alignments): Do not apply loop alignment to a block
12538         falling through to the exit.
12539
12540 2014-04-16  Catherine Moore  <clm@codesourcery.com>
12541
12542         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
12543         Adjust constraints for microMIPS store patterns.
12544
12545 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
12546
12547         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
12548
12549 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
12550
12551         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
12552         (append_use): Run at -O0.
12553         (append_vdef): Likewise.
12554         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
12555         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
12556
12557 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
12558
12559         PR tree-optimization/60844
12560         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
12561         (propagate_op_to_single_use, remove_visited_stmt_chain,
12562         linearize_expr, repropagate_negates, reassociate_bb): Use it
12563         instead of gsi_remove.
12564
12565 2014-04-16  Martin Jambor  <mjambor@suse.cz>
12566
12567         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
12568         ipa_transforms_to_apply.
12569         (cgraph_function_versioning): Assert that old_node has empty
12570         ipa_transforms_to_apply.
12571         * trans-mem.c (ipa_tm_create_version): Likewise.
12572         * tree-inline.c (tree_function_versioning): Do not duplicate
12573         ipa_transforms_to_apply.
12574
12575 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12576
12577         PR target/60817
12578         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
12579         x86_64-*-* cases.
12580         Pass necessary as flags on 64-bit Solaris/x86.
12581         Use lowercase relocs for x86_64-*-*.
12582         * configure: Regenerate.
12583
12584 2014-04-15  Jan Hubicka  <jh@suse.cz>
12585
12586         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
12587         (maybe_record_node, likely_target_p): Use it.
12588
12589 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12590
12591         PR target/60839
12592         Revert following patch
12593
12594         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12595
12596         PR target/60735
12597         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
12598         software floating point or no floating point registers, do not
12599         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
12600         in GPRs that occurs after we tested for GPRs that would never be
12601         true.
12602
12603         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
12604         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
12605         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
12606         specifically allow DDmode, since that does not use the SPE SIMD
12607         instructions.
12608
12609 2014-03-21  Mark Wielaard  <mjw@redhat.com>
12610
12611         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
12612         as unsigned or int depending on type and value used.
12613
12614 2014-04-15  Richard Biener  <rguenther@suse.de>
12615
12616         PR rtl-optimization/56965
12617         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
12618         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
12619         ... here.
12620         * alias.c (true_dependence_1): Do not call
12621         nonoverlapping_component_refs_p.
12622         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
12623         nonoverlapping_component_refs_p.
12624         (indirect_refs_may_alias_p): Likewise.
12625
12626 2014-04-15  Teresa Johnson  <tejohnson@google.com>
12627
12628         * cfg.c (dump_bb_info): Fix flags check.
12629         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
12630
12631 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12632
12633         PR rtl-optimization/60663
12634         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
12635         avoid 0 cost.
12636
12637 2014-04-15  Richard Biener  <rguenther@suse.de>
12638
12639         * lto-streamer.h (LTO_major_version): Bump to 4.
12640
12641 2014-04-15  Richard Biener  <rguenther@suse.de>
12642
12643         * common.opt (lto_partition_model): New enum.
12644         (flto-partition=): Merge separate options with a single with argument,
12645         add -flto-partition=one support.
12646         * flag-types.h (enum lto_partition_model): Declare.
12647         * opts.c (finish_options): Remove duplicate -flto-partition=
12648         option check.
12649         * lto-wrapper.c (run_gcc): Adjust.
12650
12651 2014-04-15  Richard Biener  <rguenther@suse.de>
12652
12653         * alias.c (ncr_compar): New function.
12654         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
12655
12656 2014-04-15  Richard Biener  <rguenther@suse.de>
12657
12658         * alias.c (record_component_aliases): Do not walk BINFOs.
12659
12660 2014-04-15  Richard Biener  <rguenther@suse.de>
12661
12662         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12663         Add struct function argument and adjust.
12664         (find_func_aliases_for_call): Likewise.
12665         (find_func_aliases): Likewise.
12666         (find_func_clobbers): Likewise.
12667         (intra_create_variable_infos): Likewise.
12668         (compute_points_to_sets): Likewise.
12669         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
12670
12671 2014-04-15  Richard Biener  <rguenther@suse.de>
12672
12673         * tree.c (iterative_hash_expr): Use enum tree_code_class
12674         to store TREE_CODE_CLASS.
12675         (tree_block): Likewise.
12676         (tree_set_block): Likewise.
12677         * tree.h (fold_build_pointer_plus_loc): Use
12678         convert_to_ptrofftype_loc.
12679
12680 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
12681
12682         PR plugins/59335
12683         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
12684         added in 4.9.
12685
12686 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
12687
12688         * cfgloop.h (struct loop): Move force_vectorize down.
12689         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
12690         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
12691         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
12692         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
12693         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
12694         * tree-core.h (enum annot_expr_kind): Add new kind values.
12695         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
12696         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
12697         kinds.
12698         * tree.def (ANNOTATE_EXPR): Tweak comment.
12699
12700 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
12701
12702         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
12703         cxa_pure_virtual).
12704
12705 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
12706
12707         * tree.h (TYPE_IDENTIFIER): Declare.
12708         * tree.c (subrange_type_for_debug_p): Use it.
12709         * godump.c (go_format_type): Likewise.
12710         * dwarf2out.c (is_cxx_auto, modified_type_die,
12711         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
12712         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
12713
12714 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
12715
12716         PR lto/60820
12717         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
12718
12719 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
12720
12721         * config/i386/i386.c (examine_argument): Return bool.  Return true if
12722         parameter should be passed in memory.
12723         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
12724         (construct_container): Update calls to examine_argument.
12725         (function_arg_advance_64): Ditto.
12726         (return_in_memory_32): Merge with ix86_return_in_memory.
12727         (return_in_memory_64): Ditto.
12728         (return_in_memory_ms_64): Ditto.
12729
12730 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
12731
12732         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
12733         * coverage.c (coverage_compute_profile_id): Handle externally visible
12734         symbols.
12735
12736 2014-04-14  Martin Jambor  <mjambor@suse.cz>
12737
12738         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
12739         DECL_DISREGARD_INLINE_LIMITS functions.
12740
12741 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
12742
12743         PR target/60827
12744         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
12745
12746 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
12747
12748         PR target/60827
12749         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
12750         optimize_insn_for_speed_p instead of
12751         optimize_function_for_speed_p.
12752
12753 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
12754
12755         * doc/invoke.texi (free): Document AArch64.
12756
12757 2014-04-14  Richard Biener  <rguenther@suse.de>
12758
12759         PR tree-optimization/60042
12760         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
12761         (insert_into_preds_of_block): Do not prevent PHI insertion
12762         for REFERENCE exprs here ...
12763         (eliminate_dom_walker::before_dom_children): ... but prevent
12764         their use here under similar conditions when applied to the
12765         IL after PRE optimizations.
12766
12767 2014-04-14  Richard Biener  <rguenther@suse.de>
12768
12769         * passes.def: Move early points-to after early SRA.
12770
12771 2014-04-14  Richard Biener  <rguenther@suse.de>
12772
12773         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
12774         check for which sign-changes we allow when forwarding
12775         a converted value into a switch.
12776
12777 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
12778
12779         * stor-layout.c (place_field): Finalize non-constant offset for the
12780         field, if any.
12781
12782 2014-04-14  Richard Biener  <rguenther@suse.de>
12783
12784         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
12785         as argument.
12786         (expand_switch_using_bit_tests_p): Likewise.
12787         (process_switch): Compute and pass on speed_p based on the
12788         switch stmt.
12789         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
12790         optimize_bb_for_speed_p.
12791
12792 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
12793
12794         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
12795         * function.h (struct function): Rename has_force_vect_loops into
12796         has_force_vectorize_loops.
12797         * lto-streamer-in.c (input_cfg): Adjust for renaming.
12798         (input_struct_function_base): Likewise.
12799         * lto-streamer-out.c (output_cfg): Likewise.
12800         (output_struct_function_base): Likewise.
12801         * omp-low.c (expand_omp_simd): Likewise.
12802         * tree-cfg.c (move_sese_region_to_fn): Likewise.
12803         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
12804         (version_loop_for_if_conversion): Likewise.
12805         (tree_if_conversion): Likewise.
12806         (main_tree_if_conversion): Likewise.
12807         (gate_tree_if_conversion): Likewise.
12808         * tree-inline.c (copy_loops): Likewise.
12809         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
12810         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
12811         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
12812         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
12813         * tree-vectorizer.c (vectorize_loops): Likewise.
12814         * tree-vectorizer.h (unlimited_cost_model): Likewise.
12815
12816 2014-04-14  Richard Biener  <rguenther@suse.de>
12817
12818         PR lto/60720
12819         * lto-streamer-out.c (wrap_refs): New function.
12820         (lto_output): Wrap symbol references in global initializes in
12821         type-preserving MEM_REFs.
12822
12823 2014-04-14  Christian Bruel  <christian.bruel@st.com>
12824
12825         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
12826
12827 2014-04-14  Christian Bruel  <christian.bruel@st.com>
12828
12829         * config/sh/sh.md (setmemqi): New expand pattern.
12830         * config/sh/sh.h (CLEAR_RATIO): Define.
12831         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
12832         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
12833
12834 2014-04-14  Richard Biener  <rguenther@suse.de>
12835
12836         PR middle-end/55022
12837         * fold-const.c (negate_expr_p): Don't negate directional rounding
12838         division.
12839         (fold_negate_expr): Likewise.
12840
12841 2014-04-14  Richard Biener  <rguenther@suse.de>
12842
12843         PR tree-optimization/59817
12844         PR tree-optimization/60453
12845         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
12846         recursion to catch all CHRECs in the scalar evolution and restrict
12847         the predicate for the remains appropriately.
12848
12849 2014-04-12  Catherine Moore  <clm@codesourcery.com>
12850
12851         * config/mips/constraints.md: Add new register constraint "kb".
12852         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
12853         (*movhi_internal): Likewise.
12854         (*movqi_internal): Likewise.
12855         * config/mips/mips.h (M16_STORE_REGS): New register class.
12856         (REG_CLASS_NAMES): Add M16_STORE_REGS.
12857         (REG_CLASS_CONTENTS): Likewise.
12858         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
12859
12860 2014-04-11  Tobias Burnus  <burnus@net-b.de>
12861
12862         PR c/60194
12863         * doc/invoke.texi (-Wformat-signedness): Document it.
12864         (Wformat=2): Mention that this enables -Wformat-signedness.
12865
12866 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
12867
12868         * common/config/epiphany/epiphany-common.c
12869         (epiphany_option_optimization_table): Enable section anchors by
12870         default at -O1 or higher.
12871         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
12872         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
12873         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
12874         carries no extra cost.
12875         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
12876         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
12877         * config/epiphany/predicates.md (memclob_operand): New predicate.
12878         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
12879         Use memclob_operand predicate and X constraint for operand 3.
12880
12881 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
12882
12883         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
12884         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
12885         its operands.
12886
12887 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
12888
12889         PR rtl-optimization/60651
12890         * mode-switching.c (optimize_mode_switching): Make sure to emit
12891         sets of a lower numbered entity before sets of a higher numbered
12892         entity to a mode of the same or lower priority.
12893         When creating a seginfo for a basic block that starts with a code
12894         label, move the insertion point past the code label.
12895         (new_seginfo): Document and enforce requirement that
12896         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
12897         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
12898         * doc/tm.texi: Regenerate.
12899
12900 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
12901
12902         PR target/60811
12903         * config/arc/arc.c (arc_save_restore): Fix assert typo.
12904
12905 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
12906
12907         * BASE-VER: Set to 4.10.0.
12908
12909 2014-04-11  Tobias Burnus  <burnus@net-b.de>
12910
12911         PR other/59055
12912         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
12913         * doc/gcc.texi (Service): Update description in the @menu
12914         * doc/invoke.texi (Option Summary): Remove misplaced and
12915         duplicated @menu.
12916
12917 2014-04-11  Steve Ellcey  <sellcey@mips.com>
12918             Jakub Jelinek  <jakub@redhat.com>
12919
12920         PR middle-end/60556
12921         * expr.c (convert_move): Use emit_store_flag_force instead of
12922         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
12923         argument to it.
12924
12925 2014-04-11  Richard Biener  <rguenther@suse.de>
12926
12927         PR middle-end/60797
12928         * varasm.c (assemble_alias): Avoid endless error reporting
12929         recursion by setting TREE_ASM_WRITTEN.
12930
12931 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12932
12933         * config/s390/s390.md: Add a splitter for NOT rtx.
12934
12935 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
12936
12937         PR rtl-optimization/60663
12938         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
12939
12940 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
12941             Jakub Jelinek  <jakub@redhat.com>
12942
12943         PR lto/60567
12944         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
12945         flag from decl_node to node.
12946
12947 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12948
12949         PR debug/60655
12950         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
12951         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
12952         ameliorating the cases where it can be.
12953
12954 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
12955
12956         Revert
12957         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
12958
12959         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
12960         (loadsync_<mode>): Change mode.
12961         (load_quadpti, store_quadpti): New.
12962         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
12963         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
12964         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
12965
12966 2014-04-09  Cong Hou  <congh@google.com>
12967
12968         PR testsuite/60773
12969         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
12970         documentation.
12971
12972 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12973
12974         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
12975         instead of vnor to exploit possible fusion opportunity in the
12976         future.
12977         (altivec_expand_vec_perm_const_le): Likewise.
12978
12979 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
12980
12981         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
12982         (loadsync_<mode>): Change mode.
12983         (load_quadpti, store_quadpti): New.
12984         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
12985         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
12986
12987 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
12988
12989         PR target/60763
12990         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
12991         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
12992         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
12993
12994 2014-04-08  Richard Biener  <rguenther@suse.de>
12995
12996         PR middle-end/60706
12997         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
12998         a 64bit widest int print double-int similar to on HWI64 hosts.
12999
13000 2014-04-08  Richard Biener  <rguenther@suse.de>
13001
13002         PR tree-optimization/60785
13003         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
13004         default defs properly.
13005
13006 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
13007
13008         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
13009         (Weffc++): Likewise.
13010
13011 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
13012
13013         * ipa-devirt.c (maybe_record_node): When node is not recorded,
13014         set completep to false rather than true.
13015
13016 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
13017
13018         PR target/60504
13019         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
13020         ARM_TARGET2_DWARF_FORMAT.
13021
13022 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
13023
13024         PR target/60609
13025         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
13026         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
13027         ADDR_DIFF_VEC.
13028
13029 2014-04-07  Richard Biener  <rguenther@suse.de>
13030
13031         PR tree-optimization/60766
13032         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
13033         (may_eliminate_iv): Convert cand_value_at result to desired type.
13034
13035 2014-04-07  Jason Merrill  <jason@redhat.com>
13036
13037         PR c++/60731
13038         * common.opt (-fno-gnu-unique): Add.
13039         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
13040
13041 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13042
13043         * haifa-sched.c: Fix outdated function reference and minor
13044         grammar errors in introductory comment.
13045
13046 2014-04-07  Richard Biener  <rguenther@suse.de>
13047
13048         PR middle-end/60750
13049         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
13050         for noreturn calls.
13051         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
13052
13053 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
13054
13055         PR debug/55794
13056         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
13057         size accounting for thunks.
13058         (pa_asm_output_mi_thunk): Use final_start_function() and
13059         final_end_function() to output function start and end directives.
13060
13061 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
13062
13063         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
13064         device specific ISA/ feature information. Remove short_sp and
13065         errata_skip ds.  Add avr_device_specific_features enum to have device
13066         specific info.
13067         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
13068         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
13069         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
13070         updated device specific info.
13071         * config/avr/avr-mcus.def: Merge device specific details to
13072         dev_attribute field.
13073         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
13074         errata_skip.
13075         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
13076         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
13077         assembler if RMW isa supported by current device.
13078         * config/avr/genmultilib.awk: Update as device info structure changed.
13079         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
13080
13081 2014-04-04  Cong Hou  <congh@google.com>
13082
13083         PR tree-optimization/60656
13084         * tree-vect-stmts.c (supportable_widening_operation):
13085         Fix a bug that elements in a vector with vect_used_by_reduction
13086         property are incorrectly reordered when the operation on it is not
13087         consistant with the one in reduction operation.
13088
13089 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
13090
13091         PR rtl-optimization/60155
13092         * gcse.c (record_set_data): New function.
13093         (single_set_gcse): New function.
13094         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
13095         (hoist_code): Likewise.
13096         (get_pressure_class_and_nregs): Likewise.
13097
13098 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
13099
13100         * explow.c (probe_stack_range): Emit a final optimization blockage.
13101
13102 2014-04-04  Anthony Green  <green@moxielogic.com>
13103
13104         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
13105         typos.
13106
13107 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
13108
13109         PR ipa/59626
13110         * lto-cgraph.c (input_overwrite_node): Check that partitioning
13111         flags are set only during streaming.
13112         * ipa.c (process_references, walk_polymorphic_call_targets,
13113         symtab_remove_unreachable_nodes): Drop bodies of always inline
13114         after early inlining.
13115         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
13116
13117 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
13118         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13119
13120         PR debug/60655
13121         * dwarf2out.c (const_ok_for_output_1): Reject expressions
13122         containing a NOT.
13123
13124 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13125
13126         PR bootstrap/60743
13127         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
13128         duration.
13129         (cortex_a53_fdivd): Likewise.
13130
13131 2014-04-04  Martin Jambor  <mjambor@suse.cz>
13132
13133         PR ipa/60640
13134         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
13135         Adjust all callers.
13136         * cgraph.c (clone_of_p): Also return true if thunks match.
13137         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
13138         cgraph_function_or_thunk_node and an obsolete comment.
13139         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
13140         file.
13141         (build_function_decl_skip_args): Likewise.
13142         (set_new_clone_decl_and_node_flags): New function.
13143         (duplicate_thunk_for_node): Likewise.
13144         (redirect_edge_duplicating_thunks): Likewise.
13145         (cgraph_clone_node): New parameter args_to_skip, pass it to
13146         redirect_edge_duplicating_thunks which is called instead of
13147         cgraph_redirect_edge_callee.
13148         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
13149         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
13150
13151 2014-04-04  Jeff Law  <law@redhat.com>
13152
13153         PR target/60657
13154         * config/arm/predicates.md (const_int_I_operand): New predicate.
13155         (const_int_M_operand): Similarly.
13156         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
13157         const_int_operand.
13158         (insv_t2, extv_reg, extzv_t2): Likewise.
13159         (load_multiple_with_writeback): Similarly for const_int_I_operand.
13160         (pop_multiple_with_writeback_and_return): Likewise.
13161         (vfp_pop_multiple_with_writeback): Likewise
13162
13163 2014-04-04  Richard Biener  <rguenther@suse.de>
13164
13165         PR ipa/60746
13166         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
13167         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
13168         non-GIMPLE_LABELs.
13169         * gimplify.h (gimple_add_tmp_var_fn): Declare.
13170         * gimplify.c (gimple_add_tmp_var_fn): New function.
13171         * gimple-expr.h (create_tmp_reg_fn): Declare.
13172         * gimple-expr.c (create_tmp_reg_fn): New function.
13173         * gimple-low.c (record_vars_into): Don't change cfun.
13174         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
13175         code generation without cfun.
13176
13177 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
13178
13179         PR bootstrap/60719
13180         * Makefile.in (install-driver): Fix shell scripting.
13181
13182 2014-04-03  Cong Hou  <congh@google.com>
13183
13184         PR tree-optimization/60505
13185         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
13186         threshold of number of iterations below which no vectorization
13187         will be done.
13188         * tree-vect-loop.c (new_loop_vec_info):
13189         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
13190         * tree-vect-loop.c (vect_analyze_loop_operations):
13191         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
13192         * tree-vect-loop.c (vect_transform_loop):
13193         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
13194         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
13195         of iterations of the loop and see if we should build the epilogue.
13196
13197 2014-04-03  Richard Biener  <rguenther@suse.de>
13198
13199         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
13200         (streamer_tree_cache_create): Adjust.
13201         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
13202         to allow optional nodes array.
13203         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
13204         (streamer_tree_cache_append): Likewise.
13205         (streamer_tree_cache_create): Create nodes array optionally
13206         as specified by parameter.
13207         * lto-streamer-out.c (create_output_block): Avoid maintaining
13208         the node array in the writer cache.
13209         (DFS_write_tree): Remove assertion.
13210         (produce_asm_for_decls): Free the out decl state hash table early.
13211         * lto-streamer-in.c (lto_data_in_create): Adjust for
13212         streamer_tree_cache_create prototype change.
13213
13214 2014-04-03  Richard Biener  <rguenther@suse.de>
13215
13216         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
13217         set TREE_CHAIN to NULL_TREE.
13218
13219 2014-04-03  Richard Biener  <rguenther@suse.de>
13220
13221         PR tree-optimization/60740
13222         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
13223         over all GIMPLE_COND operands.
13224
13225 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
13226
13227         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
13228         (Weffc++): Remove Scott's numbering, merge lists and reference
13229         Wnon-virtual-dtor.
13230
13231 2014-04-03  Nick Clifton  <nickc@redhat.com>
13232
13233         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
13234         properly.
13235
13236 2014-04-03  Martin Jambor  <mjambor@suse.cz>
13237
13238         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
13239         mention gcc_unreachable before failing.
13240         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
13241         removed symbols.
13242
13243 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
13244
13245         PR ipa/60659
13246         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
13247         inconsistent code and instead mark the context inconsistent.
13248         (possible_polymorphic_call_targets): For inconsistent contexts
13249         return empty complete list.
13250
13251 2014-04-02  Anthony Green  <green@moxielogic.com>
13252
13253         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
13254         (extendqisi2, extendhisi2): Define.
13255         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
13256         (WCHAR_TYPE): Change to unsigned int.
13257
13258 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13259
13260         PR tree-optimization/60733
13261         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
13262         insertion point for PHI candidates to be the end of the feeding
13263         block for the PHI argument.
13264
13265 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
13266
13267         PR rtl-optimization/60650
13268         * lra-constraints.c (process_alt_operands): Decrease reject for
13269         earlyclobber matching.
13270
13271 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13272
13273         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
13274
13275 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13276
13277         * config/spu/spu.c (pad_bb): Do not crash when the last
13278         insn is CODE_FOR_blockage.
13279
13280 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13281
13282         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
13283         lies outside the target mode.
13284
13285 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
13286
13287         PR target/60735
13288         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
13289         software floating point or no floating point registers, do not
13290         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
13291         in GPRs that occurs after we tested for GPRs that would never be
13292         true.
13293
13294         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
13295         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
13296         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
13297         specifically allow DDmode, since that does not use the SPE SIMD
13298         instructions.
13299
13300 2014-04-02  Richard Biener  <rguenther@suse.de>
13301
13302         PR middle-end/60729
13303         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
13304         MODE_INTs.  Properly use negv_optab.
13305         (expand_abs): Likewise.
13306
13307 2014-04-02  Richard Biener  <rguenther@suse.de>
13308
13309         PR bootstrap/60719
13310         * Makefile.in (install-driver): Guard extra installs with special
13311         names properly.
13312
13313 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
13314
13315         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13316         Document vec_vgbbd.
13317
13318 2014-04-01  Richard Henderson  <rth@redhat.com>
13319
13320         PR target/60704
13321         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
13322         alternative enabled before register allocation.
13323
13324 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
13325
13326         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
13327         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
13328         typo.
13329         (nios2_large_got_address): Remove unneeded 'sym' parameter.
13330         (nios2_got_address): Update nios2_large_got_address call site.
13331         (nios2_delegitimize_address): New function.
13332         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
13333         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
13334         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
13335
13336 2014-04-01  Martin Husemann  <martin@duskware.de>
13337
13338         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
13339         for -mabi=32.
13340
13341 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
13342
13343         PR rtl-optimization/60604
13344         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
13345         check from register_operand.
13346         (register_operand): Redefine in terms of general_operand.
13347         (nonmemory_operand): Use register_operand for the non-constant cases.
13348
13349 2014-04-01  Richard Biener  <rguenther@suse.de>
13350
13351         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
13352
13353 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13354
13355         * doc/invoke.texi (mapp-regs): Clarify.
13356
13357 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
13358
13359         * config/i386/avx512fintrin.h (__v32hi): Define type.
13360         (__v64qi): Likewise.
13361         (_mm512_set1_epi8): Define.
13362         (_mm512_set1_epi16): Define.
13363         (_mm512_set4_epi32): Define.
13364         (_mm512_set4_epi64): Define.
13365         (_mm512_set4_pd): Define.
13366         (_mm512_set4_ps): Define.
13367         (_mm512_setr4_epi64): Define.
13368         (_mm512_setr4_epi32): Define.
13369         (_mm512_setr4_pd): Define.
13370         (_mm512_setr4_ps): Define.
13371         (_mm512_setzero_epi32): Define.
13372
13373 2014-03-31  Martin Jambor  <mjambor@suse.cz>
13374
13375         PR middle-end/60647
13376         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
13377         callsite_arguments_match_p.  Updated all callers.  Also check types of
13378         corresponding formal parameters and actual arguments.
13379         (not_all_callers_have_enough_arguments_p) Renamed to
13380         some_callers_have_mismatched_arguments_p.
13381
13382 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
13383
13384         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
13385
13386 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
13387
13388         PR target/60034
13389         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
13390         section anchor.
13391
13392 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
13393
13394         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
13395         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
13396         Split out
13397         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
13398         Use FMAMODE_NOVF512 mode iterator.
13399         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
13400         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
13401         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
13402         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
13403         Split out
13404         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
13405         Use VF_128_256 mode iterator.
13406         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
13407         Ditto.
13408
13409 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
13410
13411         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
13412         static chain if needed.
13413
13414 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
13415
13416         PR target/60697
13417         * lra-constraints.c (index_part_to_reg): New.
13418         (process_address): Use it.
13419
13420 2014-03-27  Jeff Law  <law@redhat.com>
13421             Jakub Jelinek  <jakub@redhat.com>
13422
13423         PR target/60648
13424         * expr.c (do_tablejump): Use simplify_gen_binary rather than
13425         gen_rtx_{PLUS,MULT} to build up the address expression.
13426
13427         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
13428         creating non-canonical RTL.
13429
13430 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
13431
13432         PR ipa/60243
13433         * ipa-inline.c (want_inline_small_function_p): Short circuit large
13434         functions; reorganize to make cheap checks first.
13435         (inline_small_functions): Do not estimate growth when dumping;
13436         it is expensive.
13437         * ipa-inline.h (inline_summary): Add min_size.
13438         (growth_likely_positive): New function.
13439         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
13440         (set_cond_stmt_execution_predicate): Cleanup.
13441         (estimate_edge_size_and_time): Compute min_size.
13442         (estimate_calls_size_and_time): Likewise.
13443         (estimate_node_size_and_time): Likewise.
13444         (inline_update_overall_summary): Update min_size.
13445         (do_estimate_edge_time): Likewise.
13446         (do_estimate_edge_size): Update.
13447         (do_estimate_edge_hints): Update.
13448         (growth_likely_positive): New function.
13449
13450 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
13451
13452         PR target/60693
13453         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
13454         also if addr has VOIDmode.
13455
13456 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13457
13458         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
13459         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
13460         Declare extern.
13461         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
13462         instructions as well as AdvancedSIMD loads.
13463
13464 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13465
13466         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
13467         Use crypto_aese type.
13468         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
13469         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
13470         crypto_aese, crypto_aesmc.  Move to types.md.
13471         * config/arm/types.md (crypto_aes): Split into crypto_aese,
13472         crypto_aesmc.
13473         * config/arm/iterators.md (crypto_type): Likewise.
13474
13475 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
13476
13477         * cgraph.c: Include expr.h and tree-dfa.h.
13478         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
13479         remove LHS.
13480
13481 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
13482
13483         PR target/60675
13484         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
13485         regs from checking multi-reg pseudos.
13486
13487 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13488
13489         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
13490
13491 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13492
13493         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
13494         if it would clobber the stack pointer, even temporarily.
13495
13496 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
13497
13498         * mode-switching.c: Make small adjustments to the top comment.
13499
13500 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
13501
13502         * config/rs6000/constraints.md (wD constraint): New constraint to
13503         match the constant integer to get the top DImode/DFmode out of a
13504         vector in a VSX register.
13505
13506         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
13507         match the constant integer to get the top DImode/DFmode out of a
13508         vector in a VSX register.
13509
13510         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
13511         for ISA 2.07.
13512
13513         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13514         vbpermq builtins.
13515
13516         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
13517         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
13518
13519         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
13520         Optimize vec_extract of 64-bit values, where the value being
13521         extracted is in the top word, where we can use scalar
13522         instructions.  Add direct move and store support.  Combine the big
13523         endian/little endian vector select load support into a single insn.
13524         (vsx_extract_<mode>_internal1): Likewise.
13525         (vsx_extract_<mode>_internal2): Likewise.
13526         (vsx_extract_<mode>_load): Likewise.
13527         (vsx_extract_<mode>_store): Likewise.
13528         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
13529         combined into vsx_extract_<mode>_load.
13530         (vsx_extract_<mode>_one_le): Likewise.
13531
13532         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
13533         define the top 64-bit vector element.
13534
13535         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
13536         constraint.
13537
13538         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13539         Document vec_vbpermq builtin.
13540
13541         PR target/60672
13542         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
13543         enable use of xxsldwi and xxpermdi builtin functions.
13544         (vec_xxpermdi): Likewise.
13545
13546         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
13547         Document use of vec_xxsldwi and vec_xxpermdi builtins.
13548
13549 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
13550
13551         PR rtl-optimization/60650
13552         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
13553         first_p.  Use it.
13554         (find_spills_for): New.
13555         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
13556         Spill all pseudos on the second iteration.
13557
13558 2014-03-27  Marek Polacek  <polacek@redhat.com>
13559
13560         PR c/50347
13561         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
13562         types.
13563
13564 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13565
13566         * config/s390/s390.c (s390_can_use_return_insn): Check for
13567         call-saved FPRs on 31 bit.
13568
13569 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
13570
13571         PR middle-end/60682
13572         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
13573         if they need regimplification, just drop them instead of
13574         calling gimple_regimplify_operands on them.
13575
13576 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13577
13578         PR target/60580
13579         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
13580         (aarch64_frame_pointer_required): Adjust logic.
13581         (aarch64_can_eliminate): Adjust logic.
13582         (aarch64_override_options_after_change): Adjust logic.
13583
13584 2014-03-27  Dehao Chen  <dehao@google.com>
13585
13586         * ipa-inline.c (early_inliner): Update node's inline info.
13587
13588 2014-03-26  Dehao Chen  <dehao@google.com>
13589
13590         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
13591         compiler inserted conditional jumps for NAN float check.
13592
13593 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
13594
13595         * ubsan.h (ubsan_create_data): Change second argument's type
13596         to const location_t *.
13597         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
13598         _("<unknown>").
13599         (ubsan_create_data): Change second argument to const location_t *PLOC.
13600         Create Loc field whenever PLOC is non-NULL.
13601         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
13602         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
13603         callers.
13604
13605         PR other/59545
13606         * real.c (real_to_integer2): Change type of low to UHWI.
13607
13608 2014-03-26  Tobias Burnus  <burnus@net-b.de>
13609
13610         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
13611         (CILK_SELF_SPECS): New define.
13612         (driver_self_specs): Use it.
13613
13614 2014-03-26  Richard Biener  <rguenther@suse.de>
13615
13616         * tree-pretty-print.c (percent_K_format): Implement special
13617         case for LTO and its stripped down BLOCK tree.
13618
13619 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
13620
13621         PR sanitizer/60636
13622         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
13623
13624         * tree-vrp.c (simplify_internal_call_using_ranges): If only
13625         one range is range_int_cst_p, but not both, at least optimize
13626         addition/subtraction of 0 and multiplication by 0 or 1.
13627         * gimple-fold.c (gimple_fold_call): Fold
13628         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
13629         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
13630         INTEGER_CSTs, try to fold at least x * 0 and y - y.
13631
13632 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
13633
13634         PR rtl-optimization/60452
13635         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
13636         <case REG>: Return 1 for invalid offsets from the frame pointer.
13637
13638 2014-03-26  Marek Polacek  <polacek@redhat.com>
13639
13640         PR c/37428
13641         * doc/extend.texi (C Extensions): Mention variable-length arrays in
13642         a structure/union.
13643
13644 2014-03-26  Marek Polacek  <polacek@redhat.com>
13645
13646         PR c/39525
13647         * doc/extend.texi (Designated Inits): Describe what happens to omitted
13648         field members.
13649
13650 2014-03-26  Marek Polacek  <polacek@redhat.com>
13651
13652         PR other/59545
13653         * ira-color.c (update_conflict_hard_regno_costs): Perform the
13654         multiplication in unsigned type.
13655
13656 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
13657
13658         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
13659
13660 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
13661
13662         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
13663
13664 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
13665
13666         PR ipa/60315
13667         * cif-code.def (UNREACHABLE) New code.
13668         * ipa-inline.c (inline_small_functions): Skip edges to
13669         __builtlin_unreachable.
13670         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
13671         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
13672         predicate to __bulitin_unreachable.
13673         (set_cond_stmt_execution_predicate): Fix issue when
13674         invert_tree_comparison returns ERROR_MARK.
13675         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
13676         propagate to inline clones.
13677         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
13678         to unreachable.
13679         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
13680         * cgraphclones.c (cgraph_clone_node): If call destination is already
13681         ureachable, do not redirect it back.
13682         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
13683         unreachable.
13684
13685 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
13686
13687         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
13688         Do not modify inline clones.
13689
13690 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
13691
13692         * config/i386/i386.md (general_sext_operand): New mode attr.
13693         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
13694         don't generate (sign_extend (const_int)).
13695         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
13696         operands[2].  Use We constraint instead of <i> and
13697         <general_sext_operand> predicate instead of <general_operand>.
13698         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
13699         * config/i386/constraints.md (We): New constraint.
13700         * config/i386/predicates.md (x86_64_sext_operand,
13701         sext_operand): New predicates.
13702
13703 2014-03-25  Martin Jambor  <mjambor@suse.cz>
13704
13705         PR ipa/60600
13706         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
13707         inconsistent devirtualizations to __builtin_unreachable.
13708
13709 2014-03-25  Marek Polacek  <polacek@redhat.com>
13710
13711         PR c/35449
13712         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
13713
13714 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
13715
13716         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
13717         order of elements for big-endian.
13718
13719 2014-03-25  Richard Biener  <rguenther@suse.de>
13720
13721         PR middle-end/60635
13722         * gimplify-me.c (gimple_regimplify_operands): Update the
13723         re-gimplifed stmt.
13724
13725 2014-03-25  Martin Jambor  <mjambor@suse.cz>
13726
13727         PR ipa/59176
13728         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
13729         (lto_output_varpool_node): Likewise.
13730         (input_overwrite_node): Likewise.
13731         (input_varpool_node): Likewise.
13732
13733 2014-03-25  Richard Biener  <rguenther@suse.de>
13734
13735         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
13736         (run_gcc): Likewise.
13737
13738 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
13739
13740         * combine.c (simplify_compare_const): Add MODE argument.
13741         Handle mode_width 0 as very large mode_width.
13742         (try_combine, simplify_comparison): Adjust callers.
13743
13744         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
13745         type to avoid signed integer overflow.
13746         * explow.c (plus_constant): Likewise.
13747
13748 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13749
13750         * doc/generic.texi: Correct typos.
13751
13752 2014-03-24  Tobias Burnus  <burnus@net-b.de>
13753
13754         * doc/invoke.texi (-flto): Expand section about
13755         using static libraries with LTO.
13756
13757 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13758
13759         PR rtl-optimization/60501
13760         * optabs.def (addptr3_optab): New optab.
13761         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
13762         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
13763         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
13764
13765         * lra.c (emit_add3_insn): Use the addptr pattern if available.
13766
13767         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
13768
13769 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
13770
13771         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
13772         _mm512_set1_pd.
13773
13774         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
13775         (_mm256_undefined_ps): Define.
13776         (_mm256_undefined_pd): Define.
13777         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
13778         (_mm_undefined_pd): Define.
13779         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
13780         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
13781         (_mm512_undefined_ps): Define.
13782         (_mm512_undefined_pd): Define.
13783         Use _mm*_undefined_*.
13784         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
13785
13786 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
13787
13788         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
13789         (lshr_simd): DI mode added.
13790         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
13791         (aarch64_ushr_simddi): Likewise.
13792         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
13793         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
13794         (vshrd_n_u64): Likewise.
13795
13796 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13797
13798         * Makefile.in (s-macro_list): Depend on cc1.
13799
13800 2014-03-23  Teresa Johnson  <tejohnson@google.com>
13801
13802         * ipa-utils.c (ipa_print_order): Use specified dump file.
13803
13804 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
13805
13806         PR rtl-optimization/60601
13807         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
13808
13809         * gcc.c (eval_spec_function): Initialize save_growing_value.
13810
13811 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
13812
13813         PR sanitizer/60613
13814         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
13815         code == MINUS_EXPR, never swap op0 with op1.
13816
13817         * toplev.c (init_local_tick): Avoid signed integer multiplication
13818         overflow.
13819         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
13820         shift by first operand's bitsize.
13821
13822 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
13823
13824         PR target/60610
13825         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
13826         redefine to 1 or 0.
13827         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
13828         TARGET_ISA_64BIT_P(x).
13829
13830 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13831
13832         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
13833         pattern for vector nor instead of subtract from splat(-1).
13834         (altivec_expand_vec_perm_const_le): Likewise.
13835
13836 2014-03-21  Richard Henderson  <rth@twiddle.net>
13837
13838         PR target/60598
13839         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
13840         related insns after epilogue_completed.
13841
13842 2014-03-21  Martin Jambor  <mjambor@suse.cz>
13843
13844         PR ipa/59176
13845         * cgraph.h (symtab_node): New flag body_removed.
13846         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
13847         when removing bodies.
13848         * symtab.c (dump_symtab_base): Dump body_removed flag.
13849         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
13850         had their bodies removed.
13851
13852 2014-03-21  Martin Jambor  <mjambor@suse.cz>
13853
13854         PR ipa/60419
13855         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
13856         in the border.
13857
13858 2014-03-21  Richard Biener  <rguenther@suse.de>
13859
13860         PR tree-optimization/60577
13861         * tree-core.h (struct tree_base): Document nothrow_flag use
13862         in DECL_NONALIASED.
13863         * tree.h (DECL_NONALIASED): New.
13864         (may_be_aliased): Adjust.
13865         * coverage.c (build_var): Set DECL_NONALIASED.
13866
13867 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
13868
13869         * expr.c (expand_expr_real_1): Remove outdated comment.
13870
13871 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
13872
13873         PR middle-end/60597
13874         * ira.c (adjust_cleared_regs): Call copy_rtx on
13875         *reg_equiv[REGNO (loc)].src_p before passing it to
13876         simplify_replace_fn_rtx.
13877
13878         PR target/60568
13879         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
13880         into CONST, put pic register as first operand of PLUS.  Use
13881         gen_const_mem for both 32-bit and 64-bit PIC got loads.
13882
13883 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13884
13885         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
13886
13887 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
13888
13889         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
13890         around for store forwarding issue in the FPU on the UT699.
13891         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
13892         loads and operations if -mfix-ut699 is specified.
13893         (divtf3_hq): Tweak attribute.
13894         (sqrttf2_hq): Likewise.
13895
13896 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
13897
13898         * calls.c (store_one_arg): Remove incorrect const qualification on the
13899         type of the temporary.
13900         * cfgexpand.c (expand_return): Likewise.
13901         * expr.c (expand_constructor): Likewise.
13902         (expand_expr_real_1): Likewise.
13903
13904 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
13905
13906         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
13907         of parts.
13908
13909 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
13910
13911         PR target/60039
13912         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
13913
13914 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
13915
13916         * config/arm/aarch-common-protos.h
13917         (alu_cost_table): Fix spelling of "extend".
13918         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
13919
13920 2014-03-19  Richard Biener  <rguenther@suse.de>
13921
13922         PR middle-end/60553
13923         * tree-core.h (tree_type_common): Re-order pointer members
13924         to reduce recursion depth during GC walks.
13925
13926 2014-03-19  Marek Polacek  <polacek@redhat.com>
13927
13928         PR sanitizer/60569
13929         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
13930         before accessing it.
13931
13932 2014-03-19  Richard Biener  <rguenther@suse.de>
13933
13934         PR lto/59543
13935         * lto-streamer-in.c (input_function): In WPA stage do not drop
13936         debug stmts.
13937
13938 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
13939
13940         PR tree-optimization/60559
13941         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
13942         with build_zero_cst assignment.
13943
13944 2014-03-18  Kai Tietz  <ktietz@redhat.com>
13945
13946         PR rtl-optimization/56356
13947         * sdbout.c (sdbout_parms): Verify that parms'
13948         incoming argument is valid.
13949         (sdbout_reg_parms): Likewise.
13950
13951 2014-03-18  Richard Henderson  <rth@redhat.com>
13952
13953         PR target/60562
13954         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
13955         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
13956         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
13957
13958 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
13959
13960         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
13961         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
13962         Italicize plugin event names in description.  Explain that
13963         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
13964         Remind that no GCC functions should be called after PLUGIN_FINISH.
13965         Explain what pragmas with expansion are.
13966
13967 2014-03-18  Martin Liska  <mliska@suse.cz>
13968
13969         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
13970         gimple call statement is update.
13971         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
13972         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
13973
13974 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
13975
13976         PR sanitizer/60557
13977         * ubsan.c (ubsan_instrument_unreachable): Call
13978         initialize_sanitizer_builtins.
13979         (ubsan_pass): Likewise.
13980
13981         PR sanitizer/60535
13982         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
13983         varpool_finalize_decl instead of rest_of_decl_compilation.
13984
13985 2014-03-18  Richard Biener  <rguenther@suse.de>
13986
13987         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
13988         by using bitmap_and_compl instead of bitmap_and_compl_into.
13989         (df_rd_transfer_function): Likewise.
13990
13991 2014-03-18  Richard Biener  <rguenther@suse.de>
13992
13993         * doc/lto.texi (fresolution): Fix typo.
13994
13995 2014-03-18  Richard Biener  <rguenther@suse.de>
13996
13997         * doc/invoke.texi (flto): Update for changes in 4.9.
13998
13999 2014-03-18  Richard Biener  <rguenther@suse.de>
14000
14001         * doc/loop.texi: Remove section on the removed lambda framework.
14002         Update loop docs with recent changes in preserving loop structure.
14003
14004 2014-03-18  Richard Biener  <rguenther@suse.de>
14005
14006         * doc/lto.texi (-fresolution): Document.
14007
14008 2014-03-18  Richard Biener  <rguenther@suse.de>
14009
14010         * doc/contrib.texi: Adjust my name.
14011
14012 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
14013
14014         PR ipa/58721
14015         * internal-fn.c: Include diagnostic-core.h.
14016         (expand_BUILTIN_EXPECT): New function.
14017         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
14018         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
14019         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
14020         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
14021         IFN_BUILTIN_EXPECT.
14022         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
14023         Revert 3 argument __builtin_expect code.
14024         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
14025         * gimple-fold.c (gimple_fold_call): Likewise.
14026         * tree.h (fold_builtin_expect): New prototype.
14027         * builtins.c (build_builtin_expect_predicate): Add predictor
14028         argument, if non-NULL, create 3 argument __builtin_expect.
14029         (fold_builtin_expect): No longer static.  Add ARG2 argument,
14030         pass it through to build_builtin_expect_predicate.
14031         (fold_builtin_2): Adjust caller.
14032         (fold_builtin_3): Handle BUILT_IN_EXPECT.
14033         * internal-fn.def (BUILTIN_EXPECT): New.
14034
14035 2014-03-18  Tobias Burnus  <burnus@net-b.de>
14036
14037         PR ipa/58721
14038         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
14039         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
14040         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
14041
14042 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
14043
14044         PR ipa/58721
14045         * predict.c (combine_predictions_for_bb): Fix up formatting.
14046         (expr_expected_value_1, expr_expected_value): Add predictor argument,
14047         fill what it points to if non-NULL.
14048         (tree_predict_by_opcode): Adjust caller, use the predictor.
14049         * predict.def (PRED_COMPARE_AND_SWAP): Add.
14050
14051 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
14052
14053         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
14054         proper constant for the store mode.
14055
14056 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
14057
14058         * symtab.c (change_decl_assembler_name): Fix transparent alias
14059         chain construction.
14060
14061 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
14062
14063         * config/aarch64/aarch64.c: Correct the comments about the
14064         aarch64 stack layout.
14065
14066 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
14067
14068         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
14069         check for GF_OMP_FOR_KIND_FOR.
14070
14071 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
14072
14073         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
14074         ymm and zmm register names.
14075
14076 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
14077
14078         PR target/60516
14079         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
14080         note creation for the 2010-08-31 changes.
14081
14082 2014-03-17  Marek Polacek  <polacek@redhat.com>
14083
14084         PR middle-end/60534
14085         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
14086         as -fno-tree-loop-vectorize.
14087         (expand_omp_simd): Likewise.
14088
14089 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
14090
14091         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
14092         (eligible_for_call_delay): New prototype.
14093         * config/sparc/sparc.c (tls_call_delay): Rename into...
14094         (eligible_for_call_delay): ...this.  Return false if the instruction
14095         cannot be put in the delay slot of a branch.
14096         (eligible_for_restore_insn): Simplify.
14097         (eligible_for_return_delay): Return false if the instruction cannot be
14098         put in the delay slot of a branch and simplify.
14099         (eligible_for_sibcall_delay): Return false if the instruction cannot be
14100         put in the delay slot of a branch.
14101         * config/sparc/sparc.md (fix_ut699): New attribute.
14102         (tls_call_delay): Delete.
14103         (in_call_delay): Reimplement.
14104         (eligible_for_sibcall_delay): Rename into...
14105         (in_sibcall_delay): ...this.
14106         (eligible_for_return_delay): Rename into...
14107         (in_return_delay): ...this.
14108         (in_branch_delay): Reimplement.
14109         (in_uncond_branch_delay): Delete.
14110         (in_annul_branch_delay): Delete.
14111
14112 2014-03-14  Richard Henderson  <rth@redhat.com>
14113
14114         PR target/60525
14115         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
14116         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
14117         (*floathi<X87MODEF>2_i387_with_temp): Remove.
14118         (floathi splitters): Remove.
14119         (float<SWI48x>xf2): New pattern.
14120         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
14121         code that tried to handle DImode for 32-bit, but which was excluded
14122         by the pattern's condition.  Drop allocation of stack temporary.
14123         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
14124         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
14125         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
14126         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
14127         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
14128         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
14129         (*float<SWI48><MODEF>2_sse_interunit): Remove.
14130         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
14131         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
14132         (*float<SWI48x><X87MODEF>2_i387): Remove.
14133         (all float _with_temp splitters): Remove.
14134         (*float<SWI48x><MODEF>2_i387): New pattern.
14135         (*float<SWI48><MODEF>2_sse): New pattern.
14136         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
14137         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
14138
14139 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
14140             Marek Polacek  <polacek@redhat.com>
14141
14142         PR middle-end/60484
14143         * common.opt (dump_base_name_prefixed): New Variable.
14144         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
14145         if x_dump_base_name_prefixed is already set, set it at the end.
14146
14147 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
14148
14149         PR rtl-optimization/60508
14150         * lra-constraints.c (get_reload_reg): Add new parameter
14151         in_subreg_p.
14152         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
14153         Pass the new parameter values.
14154
14155 2014-03-14  Richard Biener  <rguenther@suse.de>
14156
14157         * common.opt: Revert unintented changes from r205065.
14158         * opts.c: Likewise.
14159
14160 2014-03-14  Richard Biener  <rguenther@suse.de>
14161
14162         PR middle-end/60518
14163         * cfghooks.c (split_block): Properly adjust all loops the
14164         block was a latch of.
14165
14166 2014-03-14  Martin Jambor  <mjambor@suse.cz>
14167
14168         PR lto/60461
14169         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
14170         and simplify it.
14171
14172 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
14173
14174         PR target/59396
14175         * config/avr/avr.c (avr_set_current_function): Pass function name
14176         through default_strip_name_encoding before sanity checking instead
14177         of skipping the first char of the assembler name.
14178
14179 2014-03-13  Richard Henderson  <rth@redhat.com>
14180
14181         PR debug/60438
14182         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
14183         (ix86_force_to_memory, ix86_free_from_memory): Remove.
14184         * config/i386/i386-protos.h: Likewise.
14185         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
14186         in the expander instead of a splitter.
14187         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
14188         any possibility of requiring a memory.
14189         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
14190         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
14191         (fp branch splitters): Update for ix86_split_fp_branch.
14192         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
14193         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
14194         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
14195         (*fop_<MODEF>_2_i387): Remove f/r alternative.
14196         (*fop_<MODEF>_3_i387): Likewise.
14197         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
14198         (splitters for the fop_* register patterns): Remove.
14199         (fscalexf4_i387): Rename from *fscalexf4_i387.
14200         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
14201
14202 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
14203
14204         PR tree-optimization/59779
14205         * tree-dfa.c (get_ref_base_and_extent): Use double_int
14206         type for bitsize and maxsize instead of HOST_WIDE_INT.
14207
14208 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
14209
14210         PR rtl-optimization/57320
14211         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
14212         the CFG after thread_prologue_and_epilogue_insns.
14213
14214 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
14215
14216         PR rtl-optimization/57189
14217         * lra-constraints.c (process_alt_operands): Disfavor spilling
14218         vector pseudos.
14219
14220 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
14221
14222         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
14223
14224 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
14225
14226         PR tree-optimization/59025
14227         PR middle-end/60418
14228         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
14229         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
14230
14231 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
14232
14233         PR target/60486
14234         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
14235         calls of avr_out_plus_1.
14236
14237 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
14238
14239         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
14240         BB's single pred and update the father loop's latch info later.
14241
14242 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
14243
14244         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
14245         (VEC_M): Likewise.
14246         (VEC_N): Likewise.
14247         (VEC_R): Likewise.
14248         (VEC_base): Likewise.
14249         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
14250         registers, we need to swap double words in little endian mode.
14251
14252         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
14253         to be a container mode for 128-bit integer operations added in ISA
14254         2.07.  Unlike TImode and PTImode, the preferred register set is
14255         the Altivec/VMX registers for the 128-bit operations.
14256
14257         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
14258         declarations.
14259         (rs6000_split_128bit_ok_p): Likewise.
14260
14261         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
14262         macros for creating ISA 2.07 normal and overloaded builtin
14263         functions with 3 arguments.
14264         (BU_P8V_OVERLOAD_3): Likewise.
14265         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
14266         for use as overloaded functions.
14267         (VPERM_1TI_UNS): Likewise.
14268         (VSEL_1TI): Likewise.
14269         (VSEL_1TI_UNS): Likewise.
14270         (ST_INTERNAL_1ti): Likewise.
14271         (LD_INTERNAL_1ti): Likewise.
14272         (XXSEL_1TI): Likewise.
14273         (XXSEL_1TI_UNS): Likewise.
14274         (VPERM_1TI): Likewise.
14275         (VPERM_1TI_UNS): Likewise.
14276         (XXPERMDI_1TI): Likewise.
14277         (SET_1TI): Likewise.
14278         (LXVD2X_V1TI): Likewise.
14279         (STXVD2X_V1TI): Likewise.
14280         (VEC_INIT_V1TI): Likewise.
14281         (VEC_SET_V1TI): Likewise.
14282         (VEC_EXT_V1TI): Likewise.
14283         (EQV_V1TI): Likewise.
14284         (NAND_V1TI): Likewise.
14285         (ORC_V1TI): Likewise.
14286         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
14287         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
14288         overloaded builtin.
14289         (VADDUQM): Likewise.
14290         (VSUBCUQ): Likewise.
14291         (VADDEUQM): Likewise.
14292         (VADDECUQ): Likewise.
14293         (VSUBEUQM): Likewise.
14294         (VSUBECUQ): Likewise.
14295
14296         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
14297         __int128_t and __uint128_t types.
14298         (__uint128_type): Likewise.
14299         (altivec_categorize_keyword): Add support for vector __int128_t,
14300         vector __uint128_t, vector __int128, and vector unsigned __int128
14301         as a container type for TImode operations that need to be done in
14302         VSX/Altivec registers.
14303         (rs6000_macro_to_expand): Likewise.
14304         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
14305         to support 128-bit integer instructions vaddcuq, vadduqm,
14306         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
14307         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
14308
14309         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
14310         for V1TImode, and set up preferences to use VSX/Altivec registers.
14311         Setup VSX reload handlers.
14312         (rs6000_debug_reg_global): Likewise.
14313         (rs6000_init_hard_regno_mode_ok): Likewise.
14314         (rs6000_preferred_simd_mode): Likewise.
14315         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
14316         (easy_altivec_constant): Likewise.
14317         (output_vec_const_move): Likewise.
14318         (rs6000_expand_vector_set): Convert V1TImode set and extract to
14319         simple move.
14320         (rs6000_expand_vector_extract): Likewise.
14321         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
14322         addressing.
14323         (rs6000_const_vec): Add support for V1TImode.
14324         (rs6000_emit_le_vsx_load): Swap double words when loading or
14325         storing TImode/V1TImode.
14326         (rs6000_emit_le_vsx_store): Likewise.
14327         (rs6000_emit_le_vsx_move): Likewise.
14328         (rs6000_emit_move): Add support for V1TImode.
14329         (altivec_expand_ld_builtin): Likewise.
14330         (altivec_expand_st_builtin): Likewise.
14331         (altivec_expand_vec_init_builtin): Likewise.
14332         (altivec_expand_builtin): Likewise.
14333         (rs6000_init_builtins): Add support for V1TImode type.  Add
14334         support for ISA 2.07 128-bit integer builtins.  Define type names
14335         for the VSX/Altivec vector types.
14336         (altivec_init_builtins): Add support for overloaded vector
14337         functions with V1TImode type.
14338         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
14339         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
14340         external function.
14341         (rs6000_split_128bit_ok_p): Likewise.
14342         (rs6000_handle_altivec_attribute): Create V1TImode from vector
14343         __int128_t and vector __uint128_t.
14344
14345         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
14346         and mode attributes.
14347         (VSX_M): Likewise.
14348         (VSX_M2): Likewise.
14349         (VSm): Likewise.
14350         (VSs): Likewise.
14351         (VSr): Likewise.
14352         (VSv): Likewise.
14353         (VS_scalar): Likewise.
14354         (VS_double): Likewise.
14355         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
14356
14357         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
14358         we support the ISA 2.07 128-bit integer arithmetic instructions.
14359         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
14360         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
14361         and TImode types for use with the builtin functions.
14362         (V1TI_type_node): Likewise.
14363         (unsigned_V1TI_type_node): Likewise.
14364         (intTI_type_internal_node): Likewise.
14365         (uintTI_type_internal_node): Likewise.
14366
14367         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
14368         128-bit builtin functions.
14369         (UNSPEC_VADDEUQM): Likewise.
14370         (UNSPEC_VADDECUQ): Likewise.
14371         (UNSPEC_VSUBCUQ): Likewise.
14372         (UNSPEC_VSUBEUQM): Likewise.
14373         (UNSPEC_VSUBECUQ): Likewise.
14374         (VM): Add V1TImode to vector mode iterators.
14375         (VM2): Likewise.
14376         (VI_unit): Likewise.
14377         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
14378         (altivec_vaddcuq): Likewise.
14379         (altivec_vsubuqm): Likewise.
14380         (altivec_vsubcuq): Likewise.
14381         (altivec_vaddeuqm): Likewise.
14382         (altivec_vaddecuq): Likewise.
14383         (altivec_vsubeuqm): Likewise.
14384         (altivec_vsubecuq): Likewise.
14385
14386         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
14387         mode iterators.
14388         (BOOL_128): Likewise.
14389         (BOOL_REGS_OUTPUT): Likewise.
14390         (BOOL_REGS_OP1): Likewise.
14391         (BOOL_REGS_OP2): Likewise.
14392         (BOOL_REGS_UNARY): Likewise.
14393         (BOOL_REGS_AND_CR0): Likewise.
14394
14395         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
14396         128-bit integer builtin support.
14397         (vec_vadduqm): Likewise.
14398         (vec_vaddecuq): Likewise.
14399         (vec_vaddeuqm): Likewise.
14400         (vec_vsubecuq): Likewise.
14401         (vec_vsubeuqm): Likewise.
14402         (vec_vsubcuq): Likewise.
14403         (vec_vsubuqm): Likewise.
14404
14405         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
14406         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
14407         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
14408         128-bit integer add/subtract to ISA 2.07.
14409
14410 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
14411
14412         * config/arc/arc.c (arc_predicate_delay_insns):
14413         Fix third argument passed to conditionalize_nonjump.
14414
14415 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
14416
14417         * config/aarch64/aarch64-builtins.c
14418         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
14419         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
14420         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
14421         instead of __builtin_lfloor.
14422         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
14423
14424 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
14425
14426         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
14427         (tree_ssa_ifcombine_bb_1): New function.
14428         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
14429         is an empty forwarder block to then_bb or vice versa and then_bb
14430         and else_bb are effectively swapped.
14431
14432 2014-03-12  Christian Bruel  <christian.bruel@st.com>
14433
14434         PR target/60264
14435         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
14436         REG_CFA_DEF_CFA note.
14437         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
14438         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
14439
14440 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14441
14442         PR tree-optimization/60454
14443         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
14444
14445 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14446
14447         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
14448         Do not define target_cpu_default2 to generic.
14449         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
14450         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
14451         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
14452
14453 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
14454             Marc Glisse  <marc.glisse@inria.fr>
14455
14456         PR tree-optimization/60502
14457         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
14458         instead of build_low_bits_mask.
14459
14460 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
14461
14462         PR middle-end/60482
14463         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
14464         if there are multiple uses, but op doesn't live on E edge.
14465         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
14466         clobber stmts before __builtin_unreachable.
14467
14468 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
14469
14470         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
14471         hard_frame_pointer_rtx.
14472         * cse.c (cse_insn): Remove volatile check.
14473         * cselib.c (cselib_process_insn): Likewise.
14474         * dse.c (scan_insn): Likewise.
14475
14476 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14477
14478         * config/arc/arc.c (conditionalize_nonjump): New function,
14479         broken out of ...
14480         (arc_ifcvt): ... this.
14481         (arc_predicate_delay_insns): Use it.
14482
14483 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
14484
14485         * config/arc/predicates.md (extend_operand): During/after reload,
14486         allow const_int_operand.
14487         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
14488         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
14489         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
14490         to "i".
14491         (umulsi3_highpart_i): Likewise.
14492
14493 2014-03-11  Richard Biener  <rguenther@suse.de>
14494
14495         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
14496         Add asserts to guard possible wrong-code bugs.
14497
14498 2014-03-11  Richard Biener  <rguenther@suse.de>
14499
14500         PR tree-optimization/60429
14501         PR tree-optimization/60485
14502         * tree-ssa-structalias.c (set_union_with_increment): Properly
14503         take into account all fields that overlap the shifted vars.
14504         (do_sd_constraint): Likewise.
14505         (do_ds_constraint): Likewise.
14506         (get_constraint_for_ptr_offset): Likewise.
14507
14508 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
14509
14510         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
14511         (nios2_compute_frame_layout):
14512         Add calculation of cfun->machine->fp_save_offset.
14513         (nios2_expand_prologue): Correct setting of frame pointer register
14514         in prologue.
14515         (nios2_expand_epilogue): Update recovery of stack pointer from
14516         frame pointer accordingly.
14517         (nios2_initial_elimination_offset): Update calculation of offset
14518         for eliminating to HARD_FRAME_POINTER_REGNUM.
14519
14520 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
14521
14522         PR ipa/60457
14523         * ipa.c (symtab_remove_unreachable_nodes): Don't call
14524         cgraph_get_create_node on VAR_DECLs.
14525
14526 2014-03-10  Richard Biener  <rguenther@suse.de>
14527
14528         PR middle-end/60474
14529         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
14530
14531 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
14532
14533         * config/vms/vms.opt (vms_float_format): New variable.
14534
14535 2014-03-08  Tobias Burnus  <burnus@net-b.de>
14536
14537         * doc/invoke.texi (-fcilkplus): Update implementation status.
14538
14539 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
14540             Richard Biener  <rguenther@suse.de>
14541
14542         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
14543         consistently accross all TUs.
14544         (run_gcc): Enable -fshort-double automatically at link at link-time
14545         and disallow override.
14546
14547 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
14548
14549         PR target/58271
14550         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
14551         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
14552         if they can't be used.
14553
14554 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14555
14556         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
14557         for Solaris 11/x86 ld.
14558         * configure: Regenerate.
14559
14560 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14561
14562         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
14563         (LIB_TLS_SPEC): Save as ld_tls_libs.
14564         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
14565         (HAVE_AS_IX86_TLSLDM): New test.
14566         * configure, config.in: Regenerate.
14567         * config/i386/i386.c (legitimize_tls_address): Fall back to
14568         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
14569         cannot support TLS_MODEL_LOCAL_DYNAMIC.
14570         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
14571         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
14572
14573 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
14574
14575         * common.opt (fira-loop-pressure): Mark as optimization.
14576
14577 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
14578
14579         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
14580         an OpenMP mappable type.
14581
14582 2014-03-06  Matthias Klose  <doko@ubuntu.com>
14583
14584         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
14585         MULTILIB_OSDIRNAMES is not defined.
14586
14587 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
14588             Meador Inge  <meadori@codesourcery.com>
14589
14590         PR target/58595
14591         * config/arm/arm.c (arm_tls_symbol_p): Remove.
14592         (arm_legitimize_address): Call legitimize_tls_address for any
14593         arm_tls_referenced_p expression, handle constant addend.  Call it
14594         before testing for !TARGET_ARM.
14595         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
14596
14597 2014-03-06  Richard Biener  <rguenther@suse.de>
14598
14599         PR middle-end/60445
14600         PR lto/60424
14601         PR lto/60427
14602         Revert
14603         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
14604
14605         * tree-streamer.c (record_common_node): Assert we don't record
14606         nodes with type double.
14607         (preload_common_node): Skip type double, complex double and double
14608         pointer since it is now frontend dependent due to fshort-double option.
14609
14610 2014-03-06  Richard Biener  <rguenther@suse.de>
14611
14612         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
14613         or -fno-lto is specified and the linker has full plugin support.
14614         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
14615         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
14616         * lto-wrapper.c (merge_and_complain): Merge compile-time
14617         optimization levels.
14618         (run_gcc): And pass it through to the link options.
14619
14620 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
14621
14622         PR debug/60381
14623         Revert:
14624         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
14625         PR debug/59992
14626         * cselib.c (remove_useless_values): Skip to avoid quadratic
14627         behavior if the condition moved from...
14628         (cselib_process_insn): ... here holds.
14629
14630 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
14631
14632         PR plugins/59335
14633         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
14634         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
14635
14636         PR plugins/59335
14637         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
14638         (TM_H): Add x86-tune.def.
14639
14640 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14641
14642         * config/aarch64/aarch64.c (generic_tunings):
14643         Use cortexa57_extra_costs.
14644
14645 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
14646
14647         PR lto/60404
14648         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
14649         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
14650         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
14651         cost for in_lto_p.
14652
14653 2014-03-04  Heiher  <r@hev.cc>
14654
14655         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
14656         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
14657
14658 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
14659
14660         * config/i386/predicates.md (const2356_operand): Change to ...
14661         (const2367_operand): ... this.
14662         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
14663         const2367_operand.
14664         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
14665         (*avx512pf_scatterpf<mode>sf): Ditto.
14666         (avx512pf_scatterpf<mode>df): Ditto.
14667         (*avx512pf_scatterpf<mode>df_mask): Ditto.
14668         (*avx512pf_scatterpf<mode>df): Ditto.
14669         * config/i386/i386.c (ix86_expand_builtin): Update
14670         incorrect hint operand error message.
14671
14672 2014-03-04  Richard Biener  <rguenther@suse.de>
14673
14674         * lto-section-in.c (lto_get_section_data): Fix const cast.
14675
14676 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
14677
14678         * tree-streamer.c (record_common_node): Assert we don't record
14679         nodes with type double.
14680         (preload_common_node): Skip type double, complex double and double
14681         pointer since it is now frontend dependent due to fshort-double option.
14682
14683 2014-03-04  Richard Biener  <rguenther@suse.de>
14684
14685         PR lto/60405
14686         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
14687         (lto_input_toplevel_asms): Likewise.
14688         * lto-section-in.c (lto_get_section_data): Instead do it here
14689         for every section.
14690
14691 2014-03-04  Richard Biener  <rguenther@suse.de>
14692
14693         PR tree-optimization/60382
14694         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
14695         dead PHIs a reduction.
14696
14697 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
14698
14699         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
14700         hint value.
14701         (_mm_prefetch): Move out of GCC target("sse") pragma.
14702         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
14703         GCC target("prfchw") pragma.
14704         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
14705         for locality <= 2.
14706         * config/i386/i386.c (ix86_option_override_internal): Enable
14707         -mprfchw with -mprefetchwt1.
14708
14709 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
14710
14711         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
14712         Mark as varying.
14713
14714 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
14715
14716         * opts.h (CL_PCH_IGNORE): Define.
14717         * targhooks.c (option_affects_pch_p):
14718         Return false for options that have CL_PCH_IGNORE set.
14719         * opt-functions.awk: Process PchIgnore.
14720         * doc/options.texi: Document PchIgnore.
14721
14722         * config/arc/arc.opt (misize): Add PchIgnore property.
14723
14724 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14725
14726         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
14727         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
14728         constraint on constants to permit them being loaded into
14729         GENERAL_REGS or BASE_REGS.
14730
14731 2014-03-03  Nick Clifton  <nickc@redhat.com>
14732
14733         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
14734         anti-cacnonical alternatives.
14735         (negandhi3_real): New pattern.
14736         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
14737
14738 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
14739
14740         * config/avr/avr-mcus.def: Remove atxmega16x1.
14741         * config/avr/avr-tables.opt: Regenerate.
14742         * config/avr/t-multilib: Regenerate.
14743         * doc/avr-mmcu.texi: Regenerate.
14744
14745 2014-03-03  Tobias Grosser  <tobias@grosser.es>
14746             Mircea Namolaru  <mircea.namolaru@inria.fr>
14747
14748         PR tree-optimization/58028
14749         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
14750         scalar dimensions.
14751
14752 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14753
14754         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
14755         not handled by recognizers.
14756
14757 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
14758
14759         PR middle-end/60175
14760         * function.c (expand_function_end): Don't emit
14761         clobber_return_register sequence if clobber_after is a BARRIER.
14762         * cfgexpand.c (construct_exit_block): Append instructions before
14763         return_label to prev_bb.
14764
14765 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14766
14767         * config/rs6000/constraints.md: Document reserved use of "wc".
14768
14769 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
14770
14771         PR ipa/60150
14772         * ipa.c (function_and_variable_visibility): When dissolving comdat
14773         group, also set all symbols to local.
14774
14775 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
14776
14777         PR ipa/60306
14778
14779         Revert:
14780         2013-12-14  Jan Hubicka  <jh@suse.cz>
14781         PR middle-end/58477
14782         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
14783
14784 2014-03-02  Jon Beniston  <jon@beniston.com>
14785
14786         PR bootstrap/48230
14787         PR bootstrap/50927
14788         PR bootstrap/52466
14789         PR target/46898
14790         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
14791           (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
14792         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
14793         (simple_return, *simple_return): New patterns
14794         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
14795         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
14796
14797 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
14798
14799         * dwarf2out.c (gen_subprogram_die): Tidy.
14800
14801 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
14802
14803         PR target/60071
14804         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
14805         (*mov_t_msb_neg_negc): ... this new insn.
14806
14807 2014-02-28  Jason Merrill  <jason@redhat.com>
14808
14809         PR c++/58678
14810         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
14811         function.
14812
14813 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
14814
14815         PR c++/60314
14816         * dwarf2out.c (decltype_auto_die): New static.
14817         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
14818         (gen_type_die_with_usage): Handle 'decltype(auto)'.
14819         (is_cxx_auto): Likewise.
14820
14821 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
14822
14823         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
14824         we are not using general regs only.
14825
14826 2014-02-28  Richard Biener  <rguenther@suse.de>
14827
14828         PR target/60280
14829         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
14830         previous fix and only allow to remove trivial pre-headers
14831         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
14832         (remove_forwarder_block): Properly update the latch of a loop.
14833
14834 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
14835
14836         PR debug/59992
14837         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
14838         (cselib_preserved_hash_table): New.
14839         (preserve_constants_and_equivs): Move preserved vals to it.
14840         (cselib_find_slot): Look it up first.
14841         (cselib_init): Initialize it.
14842         (cselib_finish): Release it.
14843         (dump_cselib_table): Dump it.
14844
14845 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
14846
14847         PR debug/59992
14848         * cselib.c (remove_useless_values): Skip to avoid quadratic
14849         behavior if the condition moved from...
14850         (cselib_process_insn): ... here holds.
14851
14852 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
14853
14854         PR debug/57232
14855         * var-tracking.c (vt_initialize): Apply the same condition to
14856         preserve the CFA base value.
14857
14858 2014-02-28  Joey Ye  <joey.ye@arm.com>
14859
14860         PR target/PR60169
14861         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
14862         if reload in progress or completed.
14863
14864 2014-02-28  Tobias Burnus  <burnus@net-b.de>
14865
14866         PR middle-end/60147
14867         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
14868         NAMELIST_DECL.
14869
14870 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
14871
14872         * doc/tm.texi.in (Condition Code Status): Update documention for
14873         relative locations of cc0-setter and cc0-user.
14874
14875 2014-02-27  Jeff Law  <law@redhat.com>
14876
14877         PR rtl-optimization/52714
14878         * combine.c (try_combine): When splitting an unrecognized PARALLEL
14879         into two independent simple sets, if I3 is a jump, ensure the
14880         pattern we place into I3 is a (set (pc) ...).
14881
14882 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
14883             Jeff Law  <law@redhat.com>
14884
14885         PR rtl-optimization/49847
14886         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
14887         are in different blocks.
14888         * doc/tm.texi (Condition Code Status): Update documention for
14889         relative locations of cc0-setter and cc0-user.
14890
14891 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
14892
14893         PR target/59222
14894         * lra.c (lra_emit_add): Check SUBREG too.
14895
14896 2014-02-27  Andreas Schwab  <schwab@suse.de>
14897
14898         * config/m68k/m68k.c (m68k_option_override): Disable
14899         -flive-range-shrinkage for classic m68k.
14900         (m68k_override_options_after_change): Likewise.
14901
14902 2014-02-27  Marek Polacek  <polacek@redhat.com>
14903
14904         PR middle-end/59223
14905         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
14906         -Wmaybe-uninitialized.
14907
14908 2014-02-27  Alan Modra  <amodra@gmail.com>
14909
14910         PR target/57936
14911         * reload1.c (emit_input_reload_insns): When reload_override_in,
14912         set old to rl->in_reg when rl->in_reg is a subreg.
14913
14914 2014-02-26  Richard Biener  <rguenther@suse.de>
14915
14916         PR bootstrap/60343
14917         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
14918
14919 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
14920
14921         * common/config/i386/predicates.md (const1256_operand): Remove.
14922         (const2356_operand): New.
14923         (const_1_to_2_operand): Remove.
14924         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
14925         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
14926         (*avx512pf_gatherpf<mode>sf): Ditto.
14927         (avx512pf_gatherpf<mode>df): Ditto.
14928         (*avx512pf_gatherpf<mode>df_mask): Ditto.
14929         (*avx512pf_gatherpf<mode>df): Ditto.
14930         (avx512pf_scatterpf<mode>sf): Ditto.
14931         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
14932         (*avx512pf_scatterpf<mode>sf): Ditto.
14933         (avx512pf_scatterpf<mode>df): Ditto.
14934         (*avx512pf_scatterpf<mode>df_mask): Ditto.
14935         (*avx512pf_scatterpf<mode>df): Ditto.
14936         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
14937
14938 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
14939
14940         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
14941         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
14942         (_mm512_mask_testn_epi64_mask): Move to ...
14943         * config/i386/avx512cdintrin.h: Here.
14944         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
14945         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
14946         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
14947         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
14948         TARGET_AVX512F from TARGET_AVX512CD.
14949
14950 2014-02-26  Richard Biener  <rguenther@suse.de>
14951
14952         PR ipa/60327
14953         * ipa.c (walk_polymorphic_call_targets): Properly guard
14954         call to inline_update_overall_summary.
14955
14956 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
14957
14958         PR target/60280
14959         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
14960         and latches only if requested.  Fix latch if it is removed.
14961         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
14962         LOOPS_HAVE_PREHEADERS.
14963
14964 2014-02-25  Andrew Pinski  <apinski@cavium.com>
14965
14966         * builtins.c (expand_builtin_thread_pointer): Create a new target
14967         when the target is NULL.
14968
14969 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
14970
14971         PR rtl-optimization/60317
14972         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
14973         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
14974         * lra-assigns.c: Include params.h.
14975         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
14976         other reload pseudos considerations.
14977
14978 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14979
14980         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
14981         to use canonical form for nor<mode>3.
14982
14983 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14984
14985         PR target/55426
14986         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
14987         conversions.
14988
14989 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
14990
14991         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
14992         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
14993         (ix86_handle_option): Handle OPT_mprefetchwt1.
14994         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
14995         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
14996         PREFETCHWT1 CPUID.
14997         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14998         OPTION_MASK_ISA_PREFETCHWT1.
14999         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
15000         (PTA_PREFETCHWT1): New.
15001         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
15002         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
15003         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
15004         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
15005         (*prefetch_avx512pf_<mode>_: Change into ...
15006         (*prefetch_prefetchwt1_<mode>: This.
15007         * config/i386/i386.opt (mprefetchwt1): New.
15008         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
15009         (_mm_prefetch): Handle intent to write.
15010         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
15011
15012 2014-02-25  Richard Biener  <rguenther@suse.de>
15013
15014         PR middle-end/60291
15015         * emit-rtl.c (mem_attrs_htab): Remove.
15016         (mem_attrs_htab_hash): Likewise.
15017         (mem_attrs_htab_eq): Likewise.
15018         (set_mem_attrs): Always allocate new mem-attrs when something changed.
15019         (init_emit_once): Do not allocate mem_attrs_htab.
15020
15021 2014-02-25  Richard Biener  <rguenther@suse.de>
15022
15023         PR lto/60319
15024         * lto-opts.c (lto_write_options): Output non-explicit conservative
15025         -fwrapv, -fno-trapv and -fno-strict-overflow.
15026         * lto-wrapper.c (merge_and_complain): Handle merging those options.
15027         (run_gcc): And pass them through.
15028
15029 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
15030
15031         * sel-sched.c (calculate_new_fences): New parameter ptime.
15032         Calculate it as a maximum over all fence cycles.
15033         (sel_sched_region_2): Adjust the call to calculate_new_fences.
15034         Print the final schedule timing when sched_verbose.
15035
15036 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
15037
15038         PR rtl-optimization/60292
15039         * sel-sched.c (fill_vec_av_set): Do not reset target availability
15040         bit fot the fence instruction.
15041
15042 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
15043
15044         * calls.h: Fix typo in comment.
15045
15046 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
15047
15048         * config/pa/pa.c (pa_output_move_double): Don't valididate when
15049         adjusting offsetable addresses.
15050
15051 2014-02-24  Guozhi Wei  <carrot@google.com>
15052
15053         * sparseset.h (sparseset_pop): Fix the wrong index.
15054
15055 2014-02-24  Walter Lee  <walt@tilera.com>
15056
15057         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
15058         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
15059         triplet.
15060         * common/config/tilegx/tilegx-common.c
15061         (TARGET_DEFAULT_TARGET_FLAGS): Define.
15062         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
15063         (LINK_SPEC): Ditto.
15064         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
15065         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
15066         (tilegx_gimplify_va_arg_expr): Handle big endian.
15067         (tilegx_expand_unaligned_load): Ditto.
15068         (tilegx_expand_unaligned_store): Ditto.
15069         (TARGET_RETURN_IN_MSB): New.
15070         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
15071         (TARGET_ENDIAN_DEFAULT): New.
15072         (TARGET_BIG_ENDIAN): Handle big endian.
15073         (BYTES_BIG_ENDIAN): Ditto.
15074         (WORDS_BIG_ENDIAN): Ditto.
15075         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
15076         (ENDIAN_SPEC): New.
15077         (EXTRA_SPECS): New.
15078         * config/tilegx/tilegx.md (extv): Handle big endian.
15079         (extzv): Ditto.
15080         (insn_st<n>): Ditto.
15081         (insn_st<n>_add<bitsuffix>): Ditto.
15082         (insn_stnt<n>): Ditto.
15083         (insn_stnt<n>_add<bitsuffix>):Ditto.
15084         (vec_interleave_highv8qi): Handle big endian.
15085         (vec_interleave_highv8qi_be): New.
15086         (vec_interleave_highv8qi_le): New.
15087         (insn_v1int_h): Handle big endian.
15088         (vec_interleave_lowv8qi): Handle big endian.
15089         (vec_interleave_lowv8qi_be): New.
15090         (vec_interleave_lowv8qi_le): New.
15091         (insn_v1int_l): Handle big endian.
15092         (vec_interleave_highv4hi): Handle big endian.
15093         (vec_interleave_highv4hi_be): New.
15094         (vec_interleave_highv4hi_le): New.
15095         (insn_v2int_h): Handle big endian.
15096         (vec_interleave_lowv4hi): Handle big endian.
15097         (vec_interleave_lowv4hi_be): New.
15098         (vec_interleave_lowv4hi_le): New.
15099         (insn_v2int_l): Handle big endian.
15100         (vec_interleave_highv2si): Handle big endian.
15101         (vec_interleave_highv2si_be): New.
15102         (vec_interleave_highv2si_le): New.
15103         (insn_v4int_h): Handle big endian.
15104         (vec_interleave_lowv2si): Handle big endian.
15105         (vec_interleave_lowv2si_be): New.
15106         (vec_interleave_lowv2si_le): New.
15107         (insn_v4int_l): Handle big endian.
15108         * config/tilegx/tilegx.opt (mbig-endian): New option.
15109         (mlittle-endian): New option.
15110         * doc/install.texi: Document tilegxbe-linux.
15111         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
15112
15113 2014-02-24  Martin Jambor  <mjambor@suse.cz>
15114
15115         PR ipa/60266
15116         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
15117         there are no parameter descriptors.
15118
15119 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
15120
15121         PR rtl-optimization/60268
15122         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
15123         initialization to ...
15124         (sched_rgn_init): ... here.
15125         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
15126
15127 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
15128
15129         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
15130         names.
15131
15132 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
15133
15134         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
15135         definition.
15136
15137 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
15138
15139         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
15140         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
15141
15142 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
15143
15144         * config/microblaze/predicates.md: Add cmp_op predicate.
15145         * config/microblaze/microblaze.md: Add branch_compare instruction
15146         which uses cmp_op predicate and emits cmp insn before branch.
15147         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
15148         to microblaze_expand_conditional_branch and consolidate logic.
15149         (microblaze_expand_conditional_branch): emit branch_compare
15150         insn instead of handling cmp op separate from branch insn.
15151
15152 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15153
15154         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
15155         to permit subregs.
15156
15157 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15158
15159         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
15160         define_insn with define_expand and new define_insn
15161         *altivec_lve<VI_char>x_internal.
15162         (altivec_stve<VI_char>x): Replace define_insn with define_expand
15163         and new define_insn *altivec_stve<VI_char>x_internal.
15164         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
15165         prototype.
15166         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
15167         lve*x built-ins.
15168         (altivec_expand_stvex_be): New function.
15169
15170 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
15171
15172         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
15173         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
15174         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
15175         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
15176
15177 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
15178
15179         PR target/60298
15180         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
15181         instead of emit_move_insn.
15182
15183 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15184
15185         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
15186         vspltw with vsldoi.
15187         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
15188         gen_altivec_vsumsws.
15189
15190 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15191
15192         * config/rs6000/altivec.md (altivec_lvxl): Rename as
15193         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
15194         (altivec_lvxl_<mode>): New define_expand incorporating
15195         -maltivec=be semantics where needed.
15196         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
15197         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
15198         semantics where needed.
15199         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
15200         (altivec_stvx_<mode>): New define_expand incorporating
15201         -maltivec=be semantics where needed.
15202         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
15203         VM2 iterator instead of V4SI.
15204         (altivec_stvxl_<mode>): New define_expand incorporating
15205         -maltivec=be semantics where needed.
15206         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
15207         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
15208         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
15209         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
15210         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
15211         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
15212         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
15213         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
15214         ALTIVEC_BUILTIN_STVXL.
15215         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
15216         (altivec_expand_stvx_be): Likewise.
15217         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
15218         (altivec_expand_lvx_be): Likewise.
15219         (altivec_expand_stvx_be): Likewise.
15220         (altivec_expand_builtin): Add cases for
15221         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
15222         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
15223         (altivec_init_builtins): Add definitions for
15224         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
15225         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
15226
15227 2014-02-21  Catherine Moore  <clm@codesourcery.com>
15228
15229         * doc/invoke.texi (mvirt, mno-virt): Document.
15230         * config/mips/mips.opt (mvirt): New option.
15231         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
15232
15233 2014-02-21  Richard Biener  <rguenther@suse.de>
15234
15235         PR tree-optimization/60276
15236         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
15237         (STMT_VINFO_MIN_NEG_DIST): New macro.
15238         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
15239         STMT_VINFO_MIN_NEG_DIST.
15240         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
15241         made for negative dependence distances still hold.
15242
15243 2014-02-21  Richard Biener  <rguenther@suse.de>
15244
15245         PR middle-end/60291
15246         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
15247         DECL_INITIAL for globals not in the current function context.
15248
15249 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR tree-optimization/56490
15252         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
15253         * tree-ssa-uninit.c: Include params.h.
15254         (compute_control_dep_chain): Add num_calls argument, return false
15255         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
15256         num_calls to recursive call.
15257         (find_predicates): Change dep_chain into normal array,
15258         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
15259         variable and adjust compute_control_dep_chain caller.
15260         (find_def_preds): Likewise.
15261
15262 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
15263
15264         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
15265         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
15266
15267 2014-02-21  Nick Clifton  <nickc@redhat.com>
15268
15269         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
15270         (pushhi1): Likewise.
15271         (popqi1): Add mode to pre_dec.
15272         (pophi1): Likewise.
15273
15274 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
15275
15276         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
15277         mode for mask of V8SFmode permutation.
15278
15279 2014-02-20  Richard Henderson  <rth@redhat.com>
15280
15281         PR c++/60272
15282         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
15283         a new pseudo for OLDVAL.
15284
15285 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
15286
15287         PR target/57896
15288         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
15289         gen_reg_rtx if d->testing_p.
15290         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
15291         if d->testing_p and we will certainly return true.
15292         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
15293         if d->testing_p.
15294
15295 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
15296
15297         * emit-rtl.c (gen_reg_rtx): Assert that
15298         crtl->emit.regno_pointer_align_length is non-zero.
15299
15300 2014-02-20  Richard Henderson  <rth@redhat.com>
15301
15302         PR c++/60272
15303         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
15304         on failure the store back into EXPECT.
15305
15306 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
15307             Sandra Loosemore  <sandra@codesourcery.com>
15308
15309         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
15310         * config/nios2/nios2.c (nios2_function_profiler): Add
15311         -fPIC (flag_pic == 2) support.
15312         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
15313         (nios2_large_offset_p): New function.
15314         (nios2_unspec_reloc_p): Move up position, update to use
15315         nios2_large_offset_p.
15316         (nios2_unspec_address): Remove function.
15317         (nios2_unspec_offset): New function.
15318         (nios2_large_got_address): New function.
15319         (nios2_got_address): Add large offset support.
15320         (nios2_legitimize_tls_address): Update usage of removed and new
15321         functions.
15322         (nios2_symbol_binds_local_p): New function.
15323         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
15324         (nios2_legitimize_address): Update to use nios2_large_offset_p.
15325         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
15326         (nios2_print_operand): Merge H/L processing, add hiadj/lo
15327         processing for (const (unspec ...)).
15328         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
15329
15330 2014-02-20  Richard Biener  <rguenther@suse.de>
15331
15332         * tree-cfg.c (replace_uses_by): Mark altered BBs before
15333         doing the substitution.
15334         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
15335
15336 2014-02-20  Martin Jambor  <mjambor@suse.cz>
15337
15338         PR ipa/55260
15339         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
15340         info when checking whether lattices are bottom.
15341
15342 2014-02-20  Richard Biener  <rguenther@suse.de>
15343
15344         PR middle-end/60221
15345         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
15346         regions at -O0.
15347
15348 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
15349
15350         PR ipa/58555
15351         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
15352         parameter specifying the scaling.
15353         (inline_call): Update.
15354         (want_inline_recursively): Guard division by zero.
15355         (recursive_inlining): Update.
15356         * ipa-inline.h (clone_inlined_nodes): Update.
15357
15358 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
15359
15360         PR target/60204
15361         * config/i386/i386.c (classify_argument): Pass structures of size
15362         64 bytes or less in register.
15363
15364 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
15365             Kirill Yukhin  <kirill.yukhin@intel.com>
15366
15367         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
15368         (_mm_rcp28_round_ss): Ditto.
15369         (_mm_rsqrt28_round_sd): Ditto.
15370         (_mm_rsqrt28_round_ss): Ditto.
15371         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
15372         (_mm_rcp14_round_ss): Ditto.
15373         (_mm_rsqrt14_round_sd): Ditto.
15374         (_mm_rsqrt14_round_ss): Ditto.
15375         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
15376         the first input operand, get rid of match_dup.
15377         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
15378         attribute to sse.
15379         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
15380         Ditto.
15381         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
15382         operand as the first input operand, set type attribute.
15383         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
15384         Set type attribute.
15385         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
15386         operand as the first input operand, set type attribute.
15387
15388 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15389
15390         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
15391         bit of zero.
15392
15393 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
15394
15395         PR target/60207
15396         * config/i386/i386.c (construct_container): Remove TFmode check
15397         for X86_64_INTEGER_CLASS.
15398
15399 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
15400
15401         PR target/59794
15402         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
15403         only when -Wpsabi is enabled.
15404
15405 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
15406
15407          PR target/59799
15408         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
15409         passing arrays in registers are the same as for structs, so remove the
15410         special case for them.
15411
15412 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
15413
15414         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
15415         destination type, extract only the valid bits if the source type is not
15416         integral and has a different mode.
15417
15418 2014-02-19  Richard Biener  <rguenther@suse.de>
15419
15420         PR ipa/60243
15421         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
15422         for all calls.
15423
15424 2014-02-19  Richard Biener  <rguenther@suse.de>
15425
15426         PR ipa/60243
15427         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
15428         (ipa_modify_call_arguments): Emit an argument load explicitely and
15429         preserve virtual SSA form there and for the replacement call.
15430         Do not update SSA form nor free dominance info.
15431
15432 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
15433
15434         * ipa.c (function_and_variable_visibility): Also clear WEAK
15435         flag when disolving COMDAT_GROUP.
15436
15437 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
15438
15439         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
15440         * ipa-prop.c (ipa_set_jf_known_type): Return early when
15441         not devirtualizing.
15442         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
15443         do more sanity checks.
15444         (detect_type_change): Return true when giving up early.
15445         (compute_complex_assign_jump_func): Fix type parameter of
15446         ipa_set_ancestor_jf.
15447         (compute_complex_ancestor_jump_func): Likewise.
15448         (update_jump_functions_after_inlining): Fix updating of
15449         ancestor function.
15450         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
15451
15452 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
15453
15454         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
15455         inline clones when edge disappears.
15456
15457 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
15458
15459         PR target/60203
15460         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
15461         Split 64-bit moves into 2 patterns.  Do not allow the use of
15462         direct move for TDmode in little endian, since the decimal value
15463         has little endian bytes within a word, but the 64-bit pieces are
15464         ordered in a big endian fashion, and normal subreg's of TDmode are
15465         not allowed.
15466         (mov<mode>_64bit_dm): Likewise.
15467         (movtd_64bit_nodm): Likewise.
15468
15469 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15470
15471         PR tree-optimization/60174
15472         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
15473         statement of an SSA_NAME that occurs in an abnormal PHI node.
15474
15475 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
15476
15477         PR sanitizer/60142
15478         * final.c (SEEN_BB): Remove.
15479         (SEEN_NOTE, SEEN_EMITTED): Renumber.
15480         (final_scan_insn): Don't force_source_line on second
15481         NOTE_INSN_BASIC_BLOCK.
15482
15483 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
15484
15485         PR target/60205
15486         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
15487         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
15488         (type_natural_mode): Warn ABI change when %zmm register is not
15489         available for AVX512F vector value passing.
15490
15491 2014-02-18  Kai Tietz  <ktietz@redhat.com>
15492
15493         PR target/60193
15494         * config/i386/i386.c (ix86_expand_prologue): Use value in
15495         rax register as displacement when restoring %r10 or %rax.
15496         Fix wrong offset when restoring both registers.
15497
15498 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15499
15500         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
15501         assertion with conditional return.
15502
15503 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
15504             Uros Bizjak  <ubizjak@gmail.com>
15505
15506         PR driver/60233
15507         * config/i386/driver-i386.c (host_detect_local_cpu): If
15508         YMM state is not saved by the OS, also clear has_f16c.  Move
15509         CPUID 0x80000001 handling before YMM state saving checking.
15510
15511 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
15512
15513         PR rtl-optimization/58960
15514         * haifa-sched.c (alloc_global_sched_pressure_data): New,
15515         factored out from ...
15516         (sched_init): ... here.
15517         (free_global_sched_pressure_data): New, factored out from ...
15518         (sched_finish): ... here.
15519         * sched-int.h (free_global_sched_pressure_data): Declare.
15520         * sched-rgn.c (nr_regions_initial): New static global.
15521         (haifa_find_rgns): Initialize it.
15522         (schedule_region): Disable sched-pressure for the newly
15523         generated regions.
15524
15525 2014-02-17  Richard Biener  <rguenther@suse.de>
15526
15527         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
15528         release SSA defs of pattern stmts.
15529
15530 2014-02-17  Richard Biener  <rguenther@suse.de>
15531
15532         * tree-inline.c (expand_call_inline): Release the virtual
15533         operand defined by the call we are about to inline.
15534
15535 2014-02-17  Richard Biener  <rguenther@suse.de>
15536
15537         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
15538
15539 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
15540             Ilya Tocar  <ilya.tocar@intel.com>
15541
15542         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
15543         arguments order in builtin.
15544         (_mm512_permutexvar_epi64): Ditto.
15545         (_mm512_mask_permutexvar_epi64): Ditto
15546         (_mm512_maskz_permutexvar_epi32): Ditto
15547         (_mm512_permutexvar_epi32): Ditto
15548         (_mm512_mask_permutexvar_epi32): Ditto
15549
15550 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15551
15552         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
15553         (p8_vmrgow): Likewise.
15554
15555 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15556
15557         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
15558         endian targets.
15559
15560 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
15561
15562         PR target/60203
15563         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
15564         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
15565         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
15566         using direct move instructions on ISA 2.07.  Also adjust
15567         instruction length for 64-bit.
15568         (mov<mode>_64bit, TFmode/TDmode): Likewise.
15569         (mov<mode>_32bit, TFmode/TDmode): Likewise.
15570
15571 2014-02-15  Alan Modra  <amodra@gmail.com>
15572
15573         PR target/58675
15574         PR target/57935
15575         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
15576         find_replacement on parts of insn rtl that might be reloaded.
15577
15578 2014-02-15  Richard Biener  <rguenther@suse.de>
15579
15580         PR tree-optimization/60183
15581         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
15582         (tree_ssa_phiprop): Calculate and free post-dominators.
15583
15584 2014-02-14  Jeff Law  <law@redhat.com>
15585
15586         PR rtl-optimization/60131
15587         * ree.c (get_extended_src_reg): New function.
15588         (combine_reaching_defs): Use it rather than assuming location of REG.
15589         (find_and_remove_re): Verify first operand of extension is
15590         a REG before adding the insns to the copy list.
15591
15592 2014-02-14  Roland McGrath  <mcgrathr@google.com>
15593
15594         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
15595         * configure: Regenerated.
15596         * config.in: Regenerated.
15597         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
15598         instead of ASM_SHORT.
15599
15600 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
15601             Richard Earnshaw  <rearnsha@arm.com>
15602
15603         PR rtl-optimization/59535
15604         * lra-constraints.c (process_alt_operands): Encourage alternative
15605         when unassigned pseudo class is superset of the alternative class.
15606         (inherit_reload_reg): Don't inherit when optimizing for code size.
15607         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
15608         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
15609         modes not less than 4 for Thumb1.
15610
15611 2014-02-14  Kyle McMartin  <kyle@redhat.com>
15612
15613         PR pch/60010
15614         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
15615
15616 2014-02-14  Richard Biener  <rguenther@suse.de>
15617
15618         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
15619         (get_frame_arg): Drop the assert with langhook types_compatible_p.
15620         Do not strip INDIRECT_REFs.
15621
15622 2014-02-14  Richard Biener  <rguenther@suse.de>
15623
15624         PR lto/60179
15625         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
15626         DECL_FUNCTION_SPECIFIC_TARGET.
15627         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
15628         * tree-streamer-out.c (pack_ts_target_option): Remove.
15629         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
15630         (write_ts_function_decl_tree_pointers): Do not stream
15631         DECL_FUNCTION_SPECIFIC_TARGET.
15632         * tree-streamer-in.c (unpack_ts_target_option): Remove.
15633         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
15634         (lto_input_ts_function_decl_tree_pointers): Do not stream
15635         DECL_FUNCTION_SPECIFIC_TARGET.
15636
15637 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
15638
15639         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
15640         (get_initial_def_for_induction, vectorizable_induction): Ignore
15641         debug stmts when looking for exit_phi.
15642         (vectorizable_live_operation): Fix up condition.
15643
15644 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
15645
15646         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
15647         nreverse() because it changes the content of original tree list.
15648
15649 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
15650
15651         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
15652         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
15653
15654 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
15655
15656         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
15657         GNU coding standards.
15658
15659 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
15660
15661         PR debug/60152
15662         * dwarf2out.c (gen_subprogram_die): Don't call
15663         add_calling_convention_attribute if subr_die is old_die.
15664
15665 2014-02-13  Sharad Singhai  <singhai@google.com>
15666
15667         * doc/optinfo.texi: Fix order of nodes.
15668
15669 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
15670
15671         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
15672         operands[2], not operands[3].
15673
15674 2014-02-13  Richard Biener  <rguenther@suse.de>
15675
15676         PR bootstrap/59878
15677         * doc/install.texi (ISL): Update recommended version to 0.12.2,
15678         mention the possibility of an in-tree build.
15679         (CLooG): Update recommended version to 0.18.1, mention the
15680         possibility of an in-tree build and clarify that the ISL
15681         bundled with CLooG does not work.
15682
15683 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
15684
15685         PR target/43546
15686         * expr.c (compress_float_constant): If x is a hard register,
15687         extend into a pseudo and then move to x.
15688
15689 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15690
15691         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
15692         caused by bad second argument to warning_at() with -mhotpatch and
15693         nested functions (e.g. with gfortran).
15694
15695 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
15696
15697         * opts.c (option_name): Remove "enabled by default" rider.
15698
15699 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
15700
15701         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
15702
15703 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15704             Uros Bizjak  <ubizjak@gmail.com>
15705
15706         PR target/60151
15707         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
15708         * configure: Regenerated.
15709
15710 2014-02-12  Richard Biener  <rguenther@suse.de>
15711
15712         * vec.c (vec_prefix::calculate_allocation): Move as
15713         inline variant to vec.h.
15714         (vec_prefix::calculate_allocation_1): New out-of-line version.
15715         * vec.h (vec_prefix::calculate_allocation_1): Declare.
15716         (vec_prefix::m_has_auto_buf): Rename to ...
15717         (vec_prefix::m_using_auto_storage): ... this.
15718         (vec_prefix::calculate_allocation): Inline the easy cases
15719         and dispatch to calculate_allocation_1 which doesn't need the
15720         prefix address.
15721         (va_heap::reserve): Use gcc_checking_assert.
15722         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
15723         m_using_auto_storage.
15724         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
15725         member and adjust.
15726         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
15727         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
15728         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
15729
15730 2014-02-12  Richard Biener  <rguenther@suse.de>
15731
15732         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
15733         when we found a dependence.
15734
15735 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
15736
15737         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
15738         common code...
15739         (maybe_fold_stmt): ... into this new function.
15740         * omp-low.c (lower_omp): Update comment.
15741
15742         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
15743         last use.
15744
15745         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
15746         dereference.
15747
15748 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
15749
15750         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
15751         identifiers in comments.
15752         (cortexa53_extra_costs): Likewise.
15753         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
15754         (cortexa7_extra_costs): Likewise.
15755         (cortexa12_extra_costs): Likewise.
15756         (cortexa15_extra_costs): Likewise.
15757         (v7m_extra_costs): Likewise.
15758
15759 2014-02-12  Richard Biener  <rguenther@suse.de>
15760
15761         PR middle-end/60092
15762         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
15763         of posix_memalign being successful.
15764         (lower_stmt): Restrict lowering of posix_memalign to when
15765         -ftree-bit-ccp is enabled.
15766
15767 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
15768
15769         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
15770         arg_loc.
15771         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
15772
15773 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
15774
15775         PR rtl-optimization/60116
15776         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
15777         other_insn once the combination has been validated.
15778
15779 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
15780
15781         PR lto/59468
15782         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
15783         and wrapper.
15784         * ipa-devirt.c: Include demangle.h
15785         (odr_violation_reported): New static variable.
15786         (add_type_duplicate): Update odr_violations.
15787         (maybe_record_node): Add completep parameter; update it.
15788         (record_target_from_binfo): Add COMPLETEP parameter;
15789         update it as needed.
15790         (possible_polymorphic_call_targets_1): Likewise.
15791         (struct polymorphic_call_target_d): Add nonconstruction_targets;
15792         rename FINAL to COMPLETE.
15793         (record_targets_from_bases): Sanity check we found the binfo;
15794         fix COMPLETEP updating.
15795         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
15796         parameter, fix computing of COMPLETEP.
15797         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
15798         at LTO time do demangling.
15799         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
15800         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
15801         parameter.
15802         (gimple_get_virt_method_for_binfo): Likewise.
15803         * gimple-fold.h (gimple_get_virt_method_for_binfo,
15804         gimple_get_virt_method_for_vtable): Update prototypes.
15805
15806 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
15807
15808         PR target/49008
15809         * genautomata.c (add_presence_absence): Fix typo with
15810         {final_}presence_list.
15811
15812 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15813
15814         PR target/60137
15815         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
15816         for VSX/Altivec vectors that land in GPR registers.
15817
15818 2014-02-11  Richard Henderson  <rth@redhat.com>
15819             Jakub Jelinek  <jakub@redhat.com>
15820
15821         PR debug/59776
15822         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
15823         around drhs if type conversion to lacc->type is not useless.
15824
15825 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15826
15827         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
15828         tuning struct.
15829         (cortex-a57.cortex-a53): Likewise.
15830         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
15831
15832 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15833
15834         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
15835         arm_restrict_it.
15836
15837 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
15838
15839         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
15840         add_options_for_arm_vfp3.
15841
15842 2014-02-11  Jeff Law  <law@redhat.com>
15843
15844         PR middle-end/54041
15845         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
15846         object with an undesirable mode.
15847
15848 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15849
15850         PR libgomp/60107
15851         * config/i386/sol2-9.h: New file.
15852         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
15853         *-*-solaris2.9*): Use it.
15854
15855 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
15856
15857         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
15858         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
15859
15860 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
15861
15862         * config/microblaze/microblaze.c: Extend mcpu version format
15863
15864 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
15865
15866         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
15867
15868 2014-02-10  Richard Henderson  <rth@redhat.com>
15869
15870         PR target/59927
15871         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
15872         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
15873         ms-abi vs -mno-accumulate-outgoing-args.
15874         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
15875         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
15876         respect to ms-abi.
15877
15878 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15879
15880         PR middle-end/60080
15881         * cfgexpand.c (expand_asm_operands): Attach source location to
15882         ASM_INPUT rtx objects.
15883         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
15884
15885 2014-02-10  Nick Clifton  <nickc@redhat.com>
15886
15887         * config/mn10300/mn10300.c (popcount): New function.
15888         (mn10300_expand_prologue): Include saved registers in stack usage
15889         count.
15890
15891 2014-02-10  Jeff Law  <law@redhat.com>
15892
15893         PR middle-end/52306
15894         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
15895         when changing the SET_DEST of a prior insn to avoid an input reload.
15896
15897 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15898
15899         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
15900         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
15901         -mcall-openbsd, or -mcall-linux.
15902         (CC1_ENDIAN_BIG_SPEC): Remove.
15903         (CC1_ENDIAN_LITTLE_SPEC): Remove.
15904         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
15905         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
15906         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
15907         and %cc1_endian_default.
15908         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
15909
15910 2014-02-10  Richard Biener  <rguenther@suse.de>
15911
15912         PR tree-optimization/60115
15913         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
15914         MEM_REF handling.  Properly verify that the accesses are not
15915         out of the objects bound.
15916
15917 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15918
15919         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
15920         coretex to cortex.
15921
15922 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
15923
15924         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
15925         proper constants and fix formatting.
15926         (possible_polymorphic_call_targets): Fix formatting.
15927
15928 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
15929             Ilya Tocar  <ilya.tocar@intel.com>
15930
15931         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
15932         (_mm512_loadu_epi32): Renamed into...
15933         (_mm512_loadu_si512): This.
15934         (_mm512_storeu_epi32): Renamed into...
15935         (_mm512_storeu_si512): This.
15936         (_mm512_maskz_ceil_ps): Removed.
15937         (_mm512_maskz_ceil_pd): Ditto.
15938         (_mm512_maskz_floor_ps): Ditto.
15939         (_mm512_maskz_floor_pd): Ditto.
15940         (_mm512_floor_round_ps): Ditto.
15941         (_mm512_floor_round_pd): Ditto.
15942         (_mm512_ceil_round_ps): Ditto.
15943         (_mm512_ceil_round_pd): Ditto.
15944         (_mm512_mask_floor_round_ps): Ditto.
15945         (_mm512_mask_floor_round_pd): Ditto.
15946         (_mm512_mask_ceil_round_ps): Ditto.
15947         (_mm512_mask_ceil_round_pd): Ditto.
15948         (_mm512_maskz_floor_round_ps): Ditto.
15949         (_mm512_maskz_floor_round_pd): Ditto.
15950         (_mm512_maskz_ceil_round_ps): Ditto.
15951         (_mm512_maskz_ceil_round_pd): Ditto.
15952         (_mm512_expand_pd): Ditto.
15953         (_mm512_expand_ps): Ditto.
15954         * config/i386/i386.c (ix86_builtins): Remove
15955         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
15956         (bdesc_args): Ditto.
15957         * config/i386/predicates.md (const1256_operand): New.
15958         (const_1_to_2_operand): Ditto.
15959         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
15960         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
15961         (*avx512pf_gatherpf<mode>sf): Ditto.
15962         (avx512pf_gatherpf<mode>df): Ditto.
15963         (*avx512pf_gatherpf<mode>df_mask): Ditto.
15964         (*avx512pf_gatherpf<mode>df): Ditto.
15965         (avx512pf_scatterpf<mode>sf): Ditto.
15966         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
15967         (*avx512pf_scatterpf<mode>sf): Ditto.
15968         (avx512pf_scatterpf<mode>df): Ditto.
15969         (*avx512pf_scatterpf<mode>df_mask): Ditto.
15970         (*avx512pf_scatterpf<mode>df): Ditto.
15971         (avx512f_expand<mode>): Removed.
15972         (<shift_insn><mode>3<mask_name>): Change predicate type.
15973
15974 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
15975
15976         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
15977         not at the end of datarefs vector use ordered_remove to avoid
15978         reordering datarefs vector.
15979
15980         PR c/59984
15981         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
15982         mark local addressable non-static vars as GOVD_PRIVATE
15983         instead of GOVD_LOCAL.
15984         * omp-low.c (lower_omp_for): Move gimple_bind_vars
15985         and BLOCK_VARS of gimple_bind_block to new_stmt rather
15986         than copying them.
15987
15988         PR middle-end/60092
15989         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
15990         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
15991         assume_aligned or alloc_align attributes.
15992         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
15993         arguments.  Handle also assume_aligned and alloc_align attributes.
15994         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
15995         calls to functions with assume_aligned or alloc_align attributes.
15996         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
15997
15998 2014-02-08  Terry Guo  <terry.guo@arm.com>
15999
16000         * doc/invoke.texi: Document ARM -march=armv7e-m.
16001
16002 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
16003
16004         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
16005         flag on __cilkrts_rethrow builtin.
16006
16007         PR ipa/60026
16008         * ipa-cp.c (determine_versionability): Fail at -O0
16009         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
16010         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
16011
16012         Revert:
16013         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
16014
16015         PR ipa/60026
16016         * tree-inline.c (copy_forbidden): Fail for
16017         __attribute__((optimize (0))) functions.
16018
16019 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
16020
16021         * varpool.c: Include pointer-set.h.
16022         (varpool_remove_unreferenced_decls): Variables in other partitions
16023         will not be output; be however careful to not lose information
16024         about partitioning.
16025
16026 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
16027
16028         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
16029         lookup in the vtable constructor.
16030
16031 2014-02-07  Jeff Law  <law@redhat.com>
16032
16033         PR target/40977
16034         * config/m68k/m68k.md (ashldi_extsi): Turn into a
16035         define_insn_and_split.
16036
16037         * ipa-inline.c (inline_small_functions): Fix typos.
16038
16039 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
16040
16041         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
16042         (s390_can_use_return_insn): Declare.
16043         * config/s390/s390.h (EPILOGUE_USES): Define.
16044         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
16045         instructions.
16046         (s390_chunkify_start): Handle return JUMP_LABELs.
16047         (s390_early_mach): Emit a main_pool instruction on the entry edge.
16048         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
16049         (s390_can_use_return_insn): New functions.
16050         (s390_fix_long_loop_prediction): Handle conditional returns.
16051         (TARGET_SET_UP_BY_PROLOGUE): Define.
16052         * config/s390/s390.md (ANY_RETURN): New code iterator.
16053         (*creturn, *csimple_return, return, simple_return): New patterns.
16054
16055 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
16056
16057         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
16058         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
16059         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
16060         REG_CFA_RESTORE list when deciding not to restore a register.
16061
16062 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
16063
16064         * config/s390/s390.c: Include tree-pass.h and context.h.
16065         (s390_early_mach): New function, split out from...
16066         (s390_emit_prologue): ...here.
16067         (pass_data_s390_early_mach): New pass structure.
16068         (pass_s390_early_mach): New class.
16069         (s390_option_override): Create and register early_mach pass.
16070         Move to end of file.
16071
16072 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
16073
16074         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
16075         to match for the exit block.
16076
16077 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16078
16079         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
16080         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
16081         Reject misaligned operands.
16082
16083 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16084
16085         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
16086
16087 2014-02-07  Richard Biener  <rguenther@suse.de>
16088
16089         PR middle-end/60092
16090         * gimple-low.c (lower_builtin_posix_memalign): New function.
16091         (lower_stmt): Call it to lower posix_memalign in a way
16092         to make alignment info accessible.
16093
16094 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
16095
16096         PR c++/60082
16097         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
16098         __builtin_setjmp_receiver.
16099
16100 2014-02-07  Richard Biener  <rguenther@suse.de>
16101
16102         PR middle-end/60092
16103         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
16104         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
16105         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16106         Handle BUILT_IN_POSIX_MEMALIGN.
16107         (find_func_clobbers): Likewise.
16108         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
16109         (call_may_clobber_ref_p_1): Likewise.
16110
16111 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
16112
16113         PR ipa/59918
16114         * ipa-devirt.c (record_target_from_binfo): Remove overactive
16115         sanity check.
16116
16117 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
16118
16119         PR ipa/59469
16120         * lto-cgraph.c (lto_output_node): Use
16121         symtab_get_symbol_partitioning_class.
16122         (lto_output_varpool_node): likewise.
16123         (symtab_get_symbol_partitioning_class): Move here from
16124         lto/lto-partition.c
16125         * cgraph.h (symbol_partitioning_class): Likewise.
16126         (symtab_get_symbol_partitioning_class): Declare.
16127
16128 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
16129
16130         * ggc.h (ggc_internal_cleared_alloc): New macro.
16131         * vec.h (vec_safe_copy): Handle memory stats.
16132         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
16133         * target-globals.c (save_target_globals): Likewise.
16134
16135 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
16136
16137         PR target/60077
16138         * expr.c (emit_move_resolve_push): Export; be bit more selective
16139         on when to clear alias set.
16140         * expr.h (emit_move_resolve_push): Declare.
16141         * function.h (struct function): Add tail_call_marked.
16142         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
16143         * config/i386/i386-protos.h (ix86_expand_push): Remove.
16144         * config/i386/i386.md (TImode move expander): De not call
16145         ix86_expand_push.
16146         (FP push expanders): Preserve memory attributes.
16147         * config/i386/sse.md (push<mode>1): Remove.
16148         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
16149         (ix86_expand_push): Remove.
16150         * config/i386/mmx.md (push<mode>1): Remove.
16151
16152 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
16153
16154         PR rtl-optimization/60030
16155         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
16156         lopart with paradoxical subreg before shifting it up by hprec.
16157
16158 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16159
16160         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
16161         Remove extra newline at end of file.
16162         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
16163         (arm_issue_rate): Handle cortexa57.
16164         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
16165         (cortex-a57.cortex-a53): Likewise.
16166
16167 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
16168
16169         PR target/59575
16170         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
16171         don't record in REG_FRAME_RELATED_EXPR registers not set in that
16172         bitmask.
16173         (arm_expand_prologue): Adjust all callers.
16174         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
16175         info, registers also at the lowest numbered registers side.  Use
16176         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
16177         XEXP.
16178
16179         PR debug/59992
16180         * var-tracking.c (adjust_mems): Before adding a SET to
16181         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
16182
16183 2014-02-06  Alan Modra  <amodra@gmail.com>
16184
16185         PR target/60032
16186         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
16187         change SDmode to DDmode when lra_in_progress.
16188
16189 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
16190
16191         PR middle-end/59150
16192         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
16193         free_data_ref on the dr first, and before goto again also set dr
16194         to the next dr.  For simd_lane_access, free old datarefs[i] before
16195         overwriting it.  For get_vectype_for_scalar_type failure, don't
16196         free_data_ref if simd_lane_access.
16197
16198         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
16199
16200         PR target/60062
16201         * tree.h (opts_for_fn): New inline function.
16202         (opt_for_fn): Define.
16203         * config/i386/i386.c (ix86_function_regparm): Use
16204         opt_for_fn (decl, optimize) instead of optimize.
16205
16206 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16207
16208         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
16209         for SYMBOL_REF in large memory model.
16210
16211 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16212
16213         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
16214         and crypto support.
16215         (cortex-a57): Likewise.
16216         (cortex-a57.cortex-a53): Likewise.
16217
16218 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
16219             Kugan Vivekanandarajah  <kuganv@linaro.org>
16220
16221         * config/arm/arm.c (arm_vector_alignment_reachable): Check
16222         unaligned_access.
16223         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
16224
16225 2014-02-06  Richard Biener  <rguenther@suse.de>
16226
16227         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
16228         set_loop_copy and initialize_original_copy_tables.
16229
16230 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
16231
16232         * config/aarch64/aarch64-simd.md
16233         (aarch64_ashr_simddi): Change QI to SI.
16234
16235 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
16236             Jakub Jelinek  <jakub@redhat.com>
16237
16238         PR middle-end/60013
16239         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
16240         of the dataflow.
16241
16242 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16243
16244         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
16245         CODE_FOR_altivec_vpku[hw]um to
16246         CODE_FOR_altivec_vpku[hw]um_direct.
16247         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
16248         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
16249         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
16250         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
16251
16252 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16253
16254         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
16255         generation for -maltivec=be.
16256         (altivec_vsumsws): Simplify redundant test.
16257
16258 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16259
16260         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
16261         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
16262         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
16263         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
16264         gen_altivec_vpkuwum.
16265         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
16266         BYTES_BIG_ENDIAN.
16267         (altivec_vpks<VI_char>ss): Likewise.
16268         (altivec_vpks<VI_char>us): Likewise.
16269         (altivec_vpku<VI_char>us): Likewise.
16270         (altivec_vpku<VI_char>um): Likewise.
16271         (altivec_vpku<VI_char>um_direct): New (copy of
16272         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
16273         internal use).
16274         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
16275         target is little endian and -maltivec=be is not specified.
16276         (*altivec_vupkhs<VU_char>_direct): New (copy of
16277         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
16278         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
16279         target is little endian and -maltivec=be is not specified.
16280         (*altivec_vupkls<VU_char>_direct): New (copy of
16281         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
16282         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
16283         little endian and -maltivec=be is not specified.
16284         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
16285         little endian and -maltivec=be is not specified.
16286
16287 2014-02-05  Richard Henderson  <rth@redhat.com>
16288
16289         PR debug/52727
16290         * combine-stack-adj.c: Revert r206943.
16291         * sched-int.h (struct deps_desc): Add last_args_size.
16292         * sched-deps.c (init_deps): Initialize it.
16293         (sched_analyze_insn): Add OUTPUT dependencies between insns that
16294         contain REG_ARGS_SIZE notes.
16295
16296 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
16297
16298         * lto-cgraph.c (asm_nodes_output): Make global.
16299         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
16300         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
16301         (driver_handle_option): Handle OPT_fwpa.
16302
16303 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
16304
16305         PR ipa/59947
16306         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
16307         a comment typo and formatting issue.  If odr_hash hasn't been
16308         created, return vNULL and set *completep to false.
16309
16310         PR middle-end/57499
16311         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
16312         bb with no successors.
16313
16314 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
16315
16316         PR target/59718
16317         * doc/invoke.texi (-march): Clarify documentation for ARM.
16318         (-mtune): Likewise.
16319         (-mcpu): Likewise.
16320
16321 2014-02-05  Richard Biener  <rguenther@suse.de>
16322
16323         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
16324         when not vectorizing because of too many alias checks.
16325         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
16326         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
16327
16328 2014-02-05  Nick Clifton  <nickc@redhat.com>
16329
16330         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
16331         accept extended registers in any mode when compiling for the MN10300.
16332
16333 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
16334
16335         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
16336         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
16337         sanitization attributes.
16338         (can_inline_edge_p): Likewise.
16339         (sanitize_attrs_match_for_inline_p): New function.
16340
16341 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
16342
16343         * ipa-prop.c (detect_type_change): Shor circuit testing of
16344         type changes on THIS pointer.
16345
16346 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
16347
16348         PR target/59777
16349         * config/pa/pa.c (legitimize_tls_address): Return original address
16350         if not passed a SYMBOL_REF rtx.
16351         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
16352         addresses.
16353         (pa_emit_move_sequence): Simplify TLS source operands.
16354         (pa_legitimate_constant_p): Reject all TLS constants.
16355         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
16356         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
16357
16358 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
16359
16360         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
16361         groups when we know they are controlled by LTO.
16362         * varasm.c (default_binds_local_p_1): If object is in other partition,
16363         it will be resolved locally.
16364
16365 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16366
16367         * config/host-linux.c (linux_gt_pch_use_address): Don't
16368         use SSIZE_MAX because it is not always defined.
16369
16370 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
16371
16372         PR bootstrap/59913
16373         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
16374         threshold for pseudo splitting.
16375         (update_ebb_live_info): Process call argument hard registers and
16376         hard registers from insn definition too.
16377         (max_small_class_regs_num): New constant.
16378         (inherit_in_ebb): Update live hard regs through EBBs.  Update
16379         reloads_num only for small register classes.  Don't split for
16380         outputs of jumps.
16381
16382 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
16383
16384         PR ipa/60058
16385         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
16386         is non-null.
16387
16388 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
16389
16390         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
16391         visibility is safe.
16392
16393 2014-02-04  Marek Polacek  <polacek@redhat.com>
16394
16395         * gdbinit.in (pel): Define.
16396
16397 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16398
16399         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
16400         behavior.
16401
16402 2014-02-04  Richard Biener  <rguenther@suse.de>
16403
16404         PR lto/59723
16405         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
16406         in function context local.
16407         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
16408         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
16409         similar to LTO_imported_decl_ref.
16410
16411 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
16412
16413         PR tree-optimization/60002
16414         * cgraphclones.c (build_function_decl_skip_args): Clear
16415         DECL_LANG_SPECIFIC.
16416
16417         PR tree-optimization/60023
16418         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
16419         false to gsi_replace.
16420         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
16421         has been in some EH region and vec_stmt could throw, add
16422         vec_stmt into the same EH region.
16423         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
16424         has no lhs, ignore it.
16425         * internal-fn.c (expand_MASK_LOAD): Likewise.
16426
16427         PR ipa/60026
16428         * tree-inline.c (copy_forbidden): Fail for
16429         __attribute__((optimize (0))) functions.
16430
16431         PR other/58712
16432         * omp-low.c (simd_clone_struct_copy): If from->inbranch
16433         is set, copy one less argument.
16434         (expand_simd_clones): Don't subtract clone_info->inbranch
16435         from simd_clone_struct_alloc argument.
16436
16437         PR rtl-optimization/57915
16438         * recog.c (simplify_while_replacing): If all unary/binary/relational
16439         operation arguments are constant, attempt to simplify those.
16440
16441         PR middle-end/59261
16442         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
16443         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
16444
16445 2014-02-04  Richard Biener  <rguenther@suse.de>
16446
16447         PR tree-optimization/60012
16448         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
16449         TBAA disambiguation to all DDRs.
16450
16451 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16452
16453         PR target/59788
16454         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
16455         (LINK_SPEC): Use it for -shared, -shared-libgcc.
16456
16457 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
16458
16459         PR ipa/59882
16460         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
16461
16462 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
16463
16464         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
16465         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
16466
16467 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
16468
16469         PR ipa/59831
16470         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
16471         to figure out targets of polymorphic calls with known decl.
16472         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16473         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
16474         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
16475         (get_polymorphic_call_info): ... here.
16476         (get_polymorphic_call_info_from_invariant): New function.
16477
16478 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
16479
16480         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
16481         lookup via vtable pointer; check for type consistency
16482         and turn inconsitent facts into UNREACHABLE.
16483         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16484         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
16485         type inconsistent querries; return UNREACHABLE instead.
16486
16487 2014-02-03  Richard Henderson  <rth@twiddle.net>
16488
16489         PR tree-opt/59924
16490         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
16491         already processed this node.
16492         (normalize_one_pred_1): Pass along mark_set.
16493         (normalize_one_pred): Create and destroy a pointer_set_t.
16494         (normalize_one_pred_chain): Likewise.
16495
16496 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
16497
16498         PR gcov-profile/58602
16499         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
16500
16501 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
16502
16503         PR ipa/59831
16504         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
16505         -fno-devirtualize; try to devirtualize by the knowledge of
16506         virtual table pointer given by aggregate propagation.
16507         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
16508         (ipa_print_node_jump_functions): Dump also offset that
16509         is relevant for polymorphic calls.
16510         (determine_known_aggregate_parts): Add arg_type parameter; use it
16511         instead of determining the type from pointer type.
16512         (ipa_compute_jump_functions_for_edge): Update call of
16513         determine_known_aggregate_parts.
16514         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
16515         (gimple_get_virt_method_for_binfo): ... here; simplify using
16516         vtable_pointer_value_to_vtable.
16517         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
16518         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
16519         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
16520         (vtable_pointer_value_to_vtable): Break out from ...; handle also
16521         POINTER_PLUS_EXPR.
16522         (vtable_pointer_value_to_binfo): ... here.
16523         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
16524
16525 2014-02-03  Teresa Johnson  <tejohnson@google.com>
16526
16527         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
16528         redef of outer loop index variable.
16529
16530 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
16531
16532         PR c++/53017
16533         PR c++/59211
16534         * doc/extend.texi (Function Attributes): Typo.
16535
16536 2014-02-03  Cong Hou  <congh@google.com>
16537
16538         PR tree-optimization/60000
16539         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
16540         if the vectorized statement is a store.  A store statement can only
16541         appear at the end of pattern statements.
16542
16543 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
16544
16545         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
16546         (ix86_option_override_internal): Default long double to 64-bit for
16547         32-bit Bionic and to 128-bit for 64-bit Bionic.
16548
16549         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
16550         TARGET_LONG_DOUBLE_128 is true.
16551         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
16552
16553         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
16554         (mlong-double-64): Negate -mlong-double-128.
16555         (mlong-double-128): New option.
16556
16557         * config/i386/i386-c.c (ix86_target_macros): Define
16558         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
16559
16560         * doc/invoke.texi: Document -mlong-double-128.
16561
16562 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
16563
16564         PR rtl-optimization/60024
16565         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
16566
16567 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
16568
16569         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
16570
16571 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
16572
16573         PR rtl-optimization/57662
16574         * sel-sched.c (code_motion_path_driver): Do not mark already not
16575         existing blocks in the visiting bitmap.
16576
16577 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
16578
16579         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
16580         on the insn being emitted.
16581
16582 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
16583             Will Deacon  <will.deacon@arm.com>
16584
16585         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
16586
16587 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16588
16589         * config/arm/arm-tables.opt: Regenerate.
16590
16591 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16592
16593         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
16594         for vector types other than V16QImode.
16595         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
16596         define_expand, and call altivec_expand_vec_perm_le when producing
16597         code with little endian element order.
16598         (*altivec_vperm_<mode>_internal): New insn having previous
16599         behavior of altivec_vperm_<mode>.
16600         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
16601         altivec_expand_vec_perm_le when producing code with little endian
16602         element order.
16603         (*altivec_vperm_<mode>_uns_internal): New insn having previous
16604         behavior of altivec_vperm_<mode>_uns.
16605
16606 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16607
16608         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
16609         (altivec_vsumsws): Add handling for -maltivec=be with a little
16610         endian target.
16611         (altivec_vsumsws_direct): New.
16612         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
16613         gen_altivec_vsumsws.
16614
16615 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
16616
16617         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
16618         vtable_pointer_value_to_binfo): New functions.
16619         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
16620         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
16621
16622 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
16623
16624         * config/nios2/nios2.md (load_got_register): Initialize GOT
16625         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
16626         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
16627
16628 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
16629
16630         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
16631         preserverd by passthrough, do not propagate the type.
16632
16633 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
16634
16635         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
16636         (mips_atomic_assign_expand_fenv): New function.
16637         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
16638
16639 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
16640
16641         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
16642         (__builtin_mips_set_fcsr): Likewise.
16643         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
16644         MIPS_USI_FTYPE_VOID.
16645         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
16646         (mips16_expand_set_fcsr): Likewise.
16647         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
16648         (mips16_set_fcsr_stub): Likewise.
16649         (mips16_get_fcsr_one_only_stub): New class.
16650         (mips16_set_fcsr_one_only_stub): Likewise.
16651         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
16652         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
16653         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
16654         (hard_float): New availability predicate.
16655         (mips_builtins): Add get_fcsr and set_fcsr.
16656         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
16657         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
16658         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
16659         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
16660         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
16661         patterns.
16662
16663 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
16664
16665         * config/mips/mips.c (mips_one_only_stub): New class.
16666         (mips_need_mips16_rdhwr_p): Replace with...
16667         (mips16_rdhwr_stub): ...this new variable.
16668         (mips16_stub_call_address): New function.
16669         (mips16_rdhwr_one_only_stub): New class.
16670         (mips_expand_thread_pointer): Use mips16_stub_call_address.
16671         (mips_output_mips16_rdhwr): Delete.
16672         (mips_finish_stub): New function.
16673         (mips_code_end): Use it to handle rdhwr stubs.
16674
16675 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
16676
16677         PR target/60017
16678         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
16679         when calculating size of integer atomic types.
16680
16681 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
16682
16683         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
16684
16685 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
16686
16687         PR tree-optimization/60003
16688         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
16689         * profile.c (branch_prob): Use gimple_call_builtin_p
16690         to check for BUILT_IN_SETJMP_RECEIVER.
16691         * tree-inline.c (copy_bb): Call notice_special_calls.
16692
16693 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
16694
16695         PR bootstrap/59985
16696         * lra-constraints.c (process_alt_operands): Update reload_sum only
16697         on the first pass.
16698
16699 2014-01-31  Richard Henderson  <rth@redhat.com>
16700
16701         PR middle-end/60004
16702         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
16703         until after else_eh is processed.
16704
16705 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
16706
16707         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
16708         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
16709         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
16710         in smmintrin.h, remove them.
16711         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
16712         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
16713         * config/i386/i386.md (ROUND_SAE): Fix value.
16714         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
16715         (const48_operand): New.
16716         * config/i386/subst.md (round), (round_expand): Use
16717         const_4_or_8_to_11_operand.
16718         (round_saeonly), (round_saeonly_expand): Use const48_operand.
16719
16720 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
16721
16722         * config/i386/constraints.md (Yk): Swap meaning with k.
16723         * config/i386/i386.md (movhi_internal): Change Yk to k.
16724         (movqi_internal): Ditto.
16725         (*k<logic><mode>): Ditto.
16726         (*andhi_1): Ditto.
16727         (*andqi_1): Ditto.
16728         (kandn<mode>): Ditto.
16729         (*<code>hi_1): Ditto.
16730         (*<code>qi_1): Ditto.
16731         (kxnor<mode>): Ditto.
16732         (kortestzhi): Ditto.
16733         (kortestchi): Ditto.
16734         (kunpckhi): Ditto.
16735         (*one_cmplhi2_1): Ditto.
16736         (*one_cmplqi2_1): Ditto.
16737         * config/i386/sse.md (): Change k to Yk.
16738         (avx512f_load<mode>_mask): Ditto.
16739         (avx512f_blendm<mode>): Ditto.
16740         (avx512f_store<mode>_mask): Ditto.
16741         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
16742         (avx512f_storedqu<mode>_mask): Ditto.
16743         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
16744         Ditto.
16745         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
16746         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
16747         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
16748         (avx512f_maskcmp<mode>3): Ditto.
16749         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
16750         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
16751         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
16752         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
16753         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
16754         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
16755         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
16756         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
16757         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
16758         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
16759         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
16760         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
16761         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
16762         (vec_extract_lo_<mode>_maskm): Ditto.
16763         (vec_extract_hi_<mode>_maskm): Ditto.
16764         (avx512f_vternlog<mode>_mask): Ditto.
16765         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
16766         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
16767         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
16768         (avx512f_<code>v8div16qi2_mask): Ditto.
16769         (avx512f_<code>v8div16qi2_mask_store): Ditto.
16770         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
16771         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
16772         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
16773         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
16774         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
16775         (*avx512pf_gatherpf<mode>df_mask): Ditto.
16776         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
16777         (*avx512pf_scatterpf<mode>df_mask): Ditto.
16778         (avx512cd_maskb_vec_dupv8di): Ditto.
16779         (avx512cd_maskw_vec_dupv16si): Ditto.
16780         (avx512f_vpermi2var<mode>3_maskz): Ditto.
16781         (avx512f_vpermi2var<mode>3_mask): Ditto.
16782         (avx512f_vpermi2var<mode>3_mask): Ditto.
16783         (avx512f_vpermt2var<mode>3_maskz): Ditto.
16784         (*avx512f_gathersi<mode>): Ditto.
16785         (*avx512f_gathersi<mode>_2): Ditto.
16786         (*avx512f_gatherdi<mode>): Ditto.
16787         (*avx512f_gatherdi<mode>_2): Ditto.
16788         (*avx512f_scattersi<mode>): Ditto.
16789         (*avx512f_scatterdi<mode>): Ditto.
16790         (avx512f_compress<mode>_mask): Ditto.
16791         (avx512f_compressstore<mode>_mask): Ditto.
16792         (avx512f_expand<mode>_mask): Ditto.
16793         * config/i386/subst.md (mask): Change k to Yk.
16794         (mask_scalar_merge): Ditto.
16795         (sd): Ditto.
16796
16797 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
16798
16799         * doc/extend.texi (Vector Extensions): Document ?: in C++.
16800
16801 2014-01-31  Richard Biener  <rguenther@suse.de>
16802
16803         PR middle-end/59990
16804         * builtins.c (fold_builtin_memory_op): Make sure to not
16805         use a floating-point mode or a boolean or enumeral type for
16806         the copy operation.
16807
16808 2014-01-30  DJ Delorie  <dj@redhat.com>
16809
16810         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
16811         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
16812         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
16813         whenever main() has an epilogue.
16814
16815 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16816
16817         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
16818         unused variable "field".
16819         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
16820         (vsx_mergeh_<mode>): Likewise.
16821         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
16822         (altivec_vmrghh): Likewise.
16823         (altivec_vmrghw): Likewise.
16824         (altivec_vmrglb): Likewise.
16825         (altivec_vmrglh): Likewise.
16826         (altivec_vmrglw): Likewise.
16827         (altivec_vspltb): Add missing uses.
16828         (altivec_vsplth): Likewise.
16829         (altivec_vspltw): Likewise.
16830         (altivec_vspltsf): Likewise.
16831
16832 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
16833
16834         PR target/59923
16835         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
16836         frame related instructions.
16837
16838 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
16839
16840         PR rtl-optimization/59959
16841         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
16842         any reload of register whose subreg is invalid.
16843
16844 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
16845
16846         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
16847         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
16848         Add missing return type - void.
16849
16850 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16851
16852         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
16853         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
16854         remove element index adjustment for endian (now handled in vsx.md
16855         and altivec.md).
16856         (altivec_expand_vec_perm_const): Use
16857         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
16858         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
16859         (vsx_xxspltw_<mode>): Adjust element index for little endian.
16860         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
16861         define_expand and a new define_insn *altivec_vspltb_internal;
16862         adjust for -maltivec=be on a little endian target.
16863         (altivec_vspltb_direct): New.
16864         (altivec_vsplth): Divide into a define_expand and a new
16865         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
16866         little endian target.
16867         (altivec_vsplth_direct): New.
16868         (altivec_vspltw): Divide into a define_expand and a new
16869         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
16870         little endian target.
16871         (altivec_vspltw_direct): New.
16872         (altivec_vspltsf): Divide into a define_expand and a new
16873         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
16874         a little endian target.
16875
16876 2014-01-30  Richard Biener  <rguenther@suse.de>
16877
16878         PR tree-optimization/59993
16879         * tree-ssa-forwprop.c (associate_pointerplus): Check we
16880         can propagate form the earlier stmt and avoid the transform
16881         when the intermediate result is needed.
16882
16883 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
16884
16885         * README.Portability: Fix typo.
16886
16887 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
16888
16889         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
16890         comparison_operator with ordered_comparison_operator.
16891
16892 2014-01-30  Nick Clifton  <nickc@redhat.com>
16893
16894         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
16895         Rename to mn10300_store_multiple_regs.
16896         * config/mn10300/mn10300.c: Likewise.
16897         * config/mn10300/mn10300.md (store_movm): Fix typo: call
16898         store_multiple_regs.
16899         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
16900         Call mn10300_store_multiple_regs.
16901
16902 2014-01-30  Nick Clifton  <nickc@redhat.com>
16903             DJ Delorie  <dj@redhat.com>
16904
16905         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
16906         %fp 2 to keep registers after it properly word-aligned.
16907         (rl78_alloc_physical_registers_umul): Handle the case where both
16908         input operands are the same.
16909
16910 2014-01-30  Richard Biener  <rguenther@suse.de>
16911
16912         PR tree-optimization/59903
16913         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
16914         check properly.
16915
16916 2014-01-30  Jason Merrill  <jason@redhat.com>
16917
16918         PR c++/59633
16919         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
16920
16921         PR c++/59645
16922         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
16923
16924 2014-01-30  Richard Biener  <rguenther@suse.de>
16925
16926         PR tree-optimization/59951
16927         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
16928
16929 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
16930
16931         PR target/59784
16932         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
16933         SFmode to DFmode case.
16934
16935 2014-01-29  DJ Delorie  <dj@redhat.com>
16936
16937         * config/msp430/msp430.opt (-minrt): New.
16938         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
16939         if -minrt given.
16940         (ENDFILE_SPEC): Likewise.
16941
16942 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
16943
16944         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
16945         (estimate_function_body_sizes): Use it.
16946
16947 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
16948
16949         PR c++/58561
16950         * dwarf2out.c (is_cxx_auto): New.
16951         (is_base_type): Use it.
16952         (gen_type_die_with_usage): Likewise.
16953
16954 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16955
16956         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
16957         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
16958         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
16959         -maltivec=be with LE targets.
16960         (vsx_mergeh_<mode>): Likewise.
16961         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
16962         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
16963         (altivec_vmrghb): Replace with define_expand and new
16964         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
16965         (altivec_vmrghb_direct): New define_insn.
16966         (altivec_vmrghh): Replace with define_expand and new
16967         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
16968         (altivec_vmrghh_direct): New define_insn.
16969         (altivec_vmrghw): Replace with define_expand and new
16970         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
16971         (altivec_vmrghw_direct): New define_insn.
16972         (*altivec_vmrghsf): Adjust for endianness.
16973         (altivec_vmrglb): Replace with define_expand and new
16974         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
16975         (altivec_vmrglb_direct): New define_insn.
16976         (altivec_vmrglh): Replace with define_expand and new
16977         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
16978         (altivec_vmrglh_direct): New define_insn.
16979         (altivec_vmrglw): Replace with define_expand and new
16980         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
16981         (altivec_vmrglw_direct): New define_insn.
16982         (*altivec_vmrglsf): Adjust for endianness.
16983         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
16984         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
16985         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
16986         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
16987         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
16988         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
16989         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
16990         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
16991
16992 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
16993
16994         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
16995         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
16996         whitespace.
16997
16998 2014-01-29  Richard Biener  <rguenther@suse.de>
16999
17000         PR tree-optimization/58742
17001         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
17002         associate_pointerplus_align.
17003         (associate_pointerplus_diff): New function.
17004         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
17005         and associate_pointerplus_diff.
17006
17007 2014-01-29  Richard Biener  <rguenther@suse.de>
17008
17009         * lto-streamer.h (LTO_major_version): Bump to 3.
17010         (LTO_minor_version): Reset to 0.
17011
17012 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
17013
17014         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
17015         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
17016         (arm_file_start): Generate correct asm header for armv7ve.
17017         * config/arm/bpabi.h: Add multilib support for armv7ve.
17018         * config/arm/driver-arm.c: Change the architectures of cortex-a7
17019         and cortex-a15 to armv7ve.
17020         * config/arm/t-aprofile: Add multilib support for armv7ve.
17021         * doc/invoke.texi: Document -march=armv7ve.
17022
17023 2014-01-29  Richard Biener  <rguenther@suse.de>
17024
17025         PR tree-optimization/58742
17026         * tree-ssa-forwprop.c (associate_plusminus): Return true
17027         if we changed sth, defer EH cleanup to ...
17028         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
17029         (simplify_mult): New function.
17030
17031 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
17032
17033         PR middle-end/59917
17034         PR tree-optimization/59920
17035         * tree.c (build_common_builtin_nodes): Remove
17036         __builtin_setjmp_dispatcher initialization.
17037         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
17038         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
17039         instead of gsi_after_labels + manually skipping debug stmts.
17040         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
17041         ignore bbs with IFN_ABNORMAL_DISPATCHER.
17042         * tree-inline.c (copy_edges_for_bb): Remove
17043         can_make_abnormal_goto argument, instead add abnormal_goto_dest
17044         argument.  Ignore computed_goto_p stmts.  Don't call
17045         make_abnormal_goto_edges.  If a call might need abnormal edges
17046         for non-local gotos, see if it already has an edge to
17047         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
17048         with true argument, don't do anything then, otherwise add
17049         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
17050         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
17051         caller.
17052         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
17053         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
17054         (lower_stmt): Don't set data->calls_builtin_setjmp.
17055         (lower_builtin_setjmp): Adjust comment.
17056         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
17057         * tree-cfg.c (found_computed_goto): Remove.
17058         (factor_computed_gotos): Remove.
17059         (make_goto_expr_edges): Return bool, true for computed gotos.
17060         Don't call make_abnormal_goto_edges.
17061         (build_gimple_cfg): Don't set found_computed_goto, don't call
17062         factor_computed_gotos.
17063         (computed_goto_p): No longer static.
17064         (make_blocks): Don't set found_computed_goto.
17065         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
17066         (make_edges): If make_goto_expr_edges returns true, push bb
17067         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
17068         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
17069         vector.  Record mapping between bbs and OpenMP regions if there
17070         are any, adjust make_gimple_omp_edges caller.  Call
17071         handle_abnormal_edges.
17072         (make_abnormal_goto_edges): Remove.
17073         * tree-cfg.h (make_abnormal_goto_edges): Remove.
17074         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
17075         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
17076         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
17077         * internal-fn.def (ABNORMAL_DISPATCHER): New.
17078         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
17079         filling *region also set *region_idx to (*region)->entry->index.
17080
17081         PR other/58712
17082         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
17083         For REGs set ORIGINAL_REGNO.
17084
17085 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
17086
17087         * doc/md.texi: Mention that a target shouldn't implement
17088         vec_widen_(s|u)mul_even/odd pair if it is less efficient
17089         than hi/lo pair.
17090
17091 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
17092
17093         PR tree-optimization/59594
17094         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
17095         a copy of the datarefs vector rather than the vector itself.
17096
17097 2014-01-28  Jason Merrill  <jason@redhat.com>
17098
17099         PR c++/53756
17100         * dwarf2out.c (auto_die): New static.
17101         (gen_type_die_with_usage): Handle C++1y 'auto'.
17102         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
17103         on definition.
17104
17105 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
17106
17107         PR target/59672
17108         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
17109         (SPEC_X32): Likewise.
17110         (SPEC_64): Likewise.
17111         * config/i386/i386.c (ix86_option_override_internal): Turn off
17112         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
17113         for TARGET_16BIT.
17114         (x86_file_start): Output .code16gcc for TARGET_16BIT.
17115         * config/i386/i386.h (TARGET_16BIT): New macro.
17116         (TARGET_16BIT_P): Likewise.
17117         * config/i386/i386.opt: Add m16.
17118         * doc/invoke.texi: Document -m16.
17119
17120 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
17121
17122         PR preprocessor/59935
17123         * input.c (location_get_source_line): Bail out on when line number
17124         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
17125
17126 2014-01-28  Richard Biener  <rguenther@suse.de>
17127
17128         PR tree-optimization/58742
17129         * tree-ssa-forwprop.c (associate_plusminus): Handle
17130         pointer subtraction of the form (T)(P + A) - (T)P.
17131
17132 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17133
17134         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
17135         at const_int_cost.
17136
17137 2014-01-28  Richard Biener  <rguenther@suse.de>
17138
17139         Revert
17140         2014-01-28  Richard Biener  <rguenther@suse.de>
17141
17142         PR rtl-optimization/45364
17143         PR rtl-optimization/59890
17144         * var-tracking.c (local_get_addr_clear_given_value): Handle
17145         already cleared slot.
17146         (val_reset): Handle not allocated local_get_addr_cache.
17147         (vt_find_locations): Use post-order on the inverted CFG.
17148
17149 2014-01-28  Richard Biener  <rguenther@suse.de>
17150
17151         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
17152
17153 2014-01-28  Richard Biener  <rguenther@suse.de>
17154
17155         PR rtl-optimization/45364
17156         PR rtl-optimization/59890
17157         * var-tracking.c (local_get_addr_clear_given_value): Handle
17158         already cleared slot.
17159         (val_reset): Handle not allocated local_get_addr_cache.
17160         (vt_find_locations): Use post-order on the inverted CFG.
17161
17162 2014-01-28  Alan Modra  <amodra@gmail.com>
17163
17164         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
17165         * configure.ac <recursive call for build != host>: Define
17166         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
17167         and LD_FOR_BUILD too.
17168         * configure: Regenerate.
17169
17170 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
17171
17172         * config/i386/i386.c (get_builtin_code_for_version): Separate
17173         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
17174         Broadwell from Haswell.
17175
17176 2014-01-27  Steve Ellcey  <sellcey@mips.com>
17177
17178         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
17179         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
17180         * config/mips/mips.c (mips_option_override): Change setting
17181         of TARGET_DSP.
17182         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
17183         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
17184         Change from Mask to Var.
17185
17186 2014-01-27  Jeff Law  <law@redhat.com>
17187
17188         * ipa-inline.c (inline_small_functions): Fix typo.
17189
17190 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
17191
17192         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
17193         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
17194         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
17195         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
17196         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
17197         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
17198         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
17199         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
17200         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
17201         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
17202         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
17203         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
17204         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
17205         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
17206         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
17207         (_mm512_storeu_epi64): Ditto.
17208         (_mm512_cmpge_epi32_mask): Ditto.
17209         (_mm512_cmpge_epu32_mask): Ditto.
17210         (_mm512_cmpge_epi64_mask): Ditto.
17211         (_mm512_cmpge_epu64_mask): Ditto.
17212         (_mm512_cmple_epi32_mask): Ditto.
17213         (_mm512_cmple_epu32_mask): Ditto.
17214         (_mm512_cmple_epi64_mask): Ditto.
17215         (_mm512_cmple_epu64_mask): Ditto.
17216         (_mm512_cmplt_epi32_mask): Ditto.
17217         (_mm512_cmplt_epu32_mask): Ditto.
17218         (_mm512_cmplt_epi64_mask): Ditto.
17219         (_mm512_cmplt_epu64_mask): Ditto.
17220         (_mm512_cmpneq_epi32_mask): Ditto.
17221         (_mm512_cmpneq_epu32_mask): Ditto.
17222         (_mm512_cmpneq_epi64_mask): Ditto.
17223         (_mm512_cmpneq_epu64_mask): Ditto.
17224         (_mm512_expand_pd): Ditto.
17225         (_mm512_expand_ps): Ditto.
17226         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
17227         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
17228         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
17229         * config/i386/i386.c (ix86_builtins): Add
17230         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
17231         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
17232         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
17233         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
17234         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
17235         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
17236         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
17237         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
17238         IX86_BUILTIN_PMOVUSQW512_MEM.
17239         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
17240         __builtin_ia32_pmovsqd512mem_mask,
17241         __builtin_ia32_pmovqd512mem_mask,
17242         __builtin_ia32_pmovusqw512mem_mask,
17243         __builtin_ia32_pmovsqw512mem_mask,
17244         __builtin_ia32_pmovqw512mem_mask,
17245         __builtin_ia32_pmovusdw512mem_mask,
17246         __builtin_ia32_pmovsdw512mem_mask,
17247         __builtin_ia32_pmovdw512mem_mask,
17248         __builtin_ia32_pmovqb512mem_mask,
17249         __builtin_ia32_pmovusqb512mem_mask,
17250         __builtin_ia32_pmovsqb512mem_mask,
17251         __builtin_ia32_pmovusdb512mem_mask,
17252         __builtin_ia32_pmovsdb512mem_mask,
17253         __builtin_ia32_pmovdb512mem_mask.
17254         (bdesc_args): Add __builtin_ia32_expanddf512,
17255         __builtin_ia32_expandsf512.
17256         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
17257         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
17258         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
17259         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
17260         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
17261         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
17262         (avx512f_<code>v8div16qi2_mask_store): This.
17263         (avx512f_expand<mode>): New.
17264
17265 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
17266
17267         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
17268         New.
17269         (_mm512_mask_prefetch_i64gather_pd): Ditto.
17270         (_mm512_prefetch_i32scatter_pd): Ditto.
17271         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
17272         (_mm512_prefetch_i64scatter_pd): Ditto.
17273         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
17274         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
17275         (_mm512_mask_prefetch_i64gather_ps): Ditto.
17276         (_mm512_prefetch_i32scatter_ps): Ditto.
17277         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
17278         (_mm512_prefetch_i64scatter_ps): Ditto.
17279         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
17280         * config/i386/i386-builtin-types.def: Define
17281         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
17282         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
17283         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
17284         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
17285         IX86_BUILTIN_SCATTERPFQPD.
17286         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
17287         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
17288         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
17289         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
17290         __builtin_ia32_scatterpfqps.
17291         (ix86_expand_builtin): Expand new built-ins.
17292         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
17293         fix memory access data type.
17294         (*avx512pf_gatherpf<mode>_mask): Ditto.
17295         (*avx512pf_gatherpf<mode>): Ditto.
17296         (avx512pf_scatterpf<mode>): Ditto.
17297         (*avx512pf_scatterpf<mode>_mask): Ditto.
17298         (*avx512pf_scatterpf<mode>): Ditto.
17299         (GATHER_SCATTER_SF_MEM_MODE): New.
17300         (avx512pf_gatherpf<mode>df): Ditto.
17301         (*avx512pf_gatherpf<mode>df_mask): Ditto.
17302         (*avx512pf_scatterpf<mode>df): Ditto.
17303
17304 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
17305
17306         PR bootstrap/59934
17307         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
17308         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
17309         reached.
17310
17311 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
17312
17313         * common/config/arm/arm-common.c
17314         (arm_rewrite_mcpu): Handle multiple names.
17315         * config/arm/arm.h
17316         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
17317
17318 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
17319
17320         * gimple-builder.h (create_gimple_tmp): Delete.
17321
17322 2014-01-27  Christian Bruel  <christian.bruel@st.com>
17323
17324         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
17325         words comparisons.
17326
17327 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
17328
17329         * config/pa/pa.md (call): Generate indirect long calls to non-local
17330         functions when outputing 32-bit code.
17331         (call_value): Likewise except for special call to buggy powf function.
17332
17333         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
17334         portable runtime and PIC indirect calls.
17335         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
17336         and PIC call sequences.  Use ldo instead of blr to set return register
17337         in PIC call sequence.
17338
17339 2014-01-25  Walter Lee  <walt@tilera.com>
17340
17341         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
17342         avoid clobbering a live register.
17343
17344 2014-01-25  Walter Lee  <walt@tilera.com>
17345
17346         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
17347         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
17348         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
17349         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
17350
17351 2014-01-25  Walter Lee  <walt@tilera.com>
17352
17353         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
17354         arguments on even registers.
17355         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
17356         STACK_BOUNDARY.
17357         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
17358         (BIGGEST_ALIGNMENT): Ditto.
17359         (BIGGEST_FIELD_ALIGNMENT): Ditto.
17360
17361 2014-01-25  Walter Lee  <walt@tilera.com>
17362
17363         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
17364         insns before bundling.
17365         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
17366
17367 2014-01-25  Walter Lee  <walt@tilera.com>
17368
17369         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
17370         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
17371         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
17372
17373 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
17374
17375         * config/mips/constraints.md (kl): Delete.
17376         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
17377         define expands, using...
17378         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
17379         instructions for MIPS16.
17380         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
17381         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
17382
17383 2014-01-25  Walter Lee  <walt@tilera.com>
17384
17385         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
17386         (clzdi2): Ditto.
17387         (ffsdi2): Ditto.
17388
17389 2014-01-25  Walter Lee  <walt@tilera.com>
17390
17391         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
17392         (TARGET_EXPAND_TO_RTL_HOOK): Define.
17393
17394 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
17395
17396         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
17397         Handle XOR.
17398
17399 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
17400
17401         * print-rtl.c (in_call_function_usage): New var.
17402         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
17403         EXPR_LIST mode as mode and not as reg note name.
17404
17405         PR middle-end/59561
17406         * cfgloopmanip.c (copy_loop_info): If
17407         loop->warned_aggressive_loop_optimizations, make sure
17408         the flag is set in target loop too.
17409
17410 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
17411
17412         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
17413         flag_cilkplus.
17414         * builtins.def: Likewise.
17415         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
17416         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
17417         * ira.c (ira_setup_eliminable_regset): Likewise.
17418         * omp-low.c (gate_expand_omp): Likewise.
17419         (execute_lower_omp): Likewise.
17420         (diagnose_sb_0): Likewise.
17421         (gate_diagnose_omp_blocks): Likewise.
17422         (simd_clone_clauses_extract): Likewise.
17423         (gate): Likewise.
17424
17425 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17426
17427         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
17428         correction for little endian...
17429         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
17430         here.
17431
17432 2014-01-24  Jeff Law  <law@redhat.com>
17433
17434         PR tree-optimization/59919
17435         * tree-vrp.c (find_assert_locations_1): Do not register asserts
17436         for non-returning calls.
17437
17438 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
17439
17440         * common/config/aarch64/aarch64-common.c
17441         (aarch64_rewrite_mcpu): Handle multiple names.
17442         * config/aarch64/aarch64.h
17443         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
17444
17445 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
17446
17447         * input.c (add_file_to_cache_tab): Handle the case where fopen
17448         returns NULL.
17449
17450 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
17451
17452         PR target/59929
17453         * config/i386/i386.md (pushsf splitter): Get stack adjustment
17454         from push operand if code of push isn't PRE_DEC.
17455
17456 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
17457
17458         PR target/59909
17459         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
17460         -mquad-memory-atomic.  Update -mquad-memory documentation to say
17461         it is only used for non-atomic loads/stores.
17462
17463         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
17464         -mquad-memory or -mquad-memory-atomic switches.
17465
17466         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
17467         -mquad-memory-atomic to ISA 2.07 support.
17468
17469         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
17470         to separate support of normal quad word memory operations (ldq, stq)
17471         from the atomic quad word memory operations.
17472
17473         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
17474         support to separate non-atomic quad word operations from atomic
17475         quad word operations.  Disable non-atomic quad word operations in
17476         little endian mode so that we don't have to swap words after the
17477         load and before the store.
17478         (quad_load_store_p): Add comment about atomic quad word support.
17479         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
17480         options printed with -mdebug=reg.
17481
17482         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
17483         -mquad-memory-atomic as the test for whether we have quad word
17484         atomic instructions.
17485         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
17486         or -mp8-vector are used, allow byte/half-word atomic operations.
17487
17488         * config/rs6000/sync.md (load_lockedti): Insure that the address
17489         is a proper indexed or indirect address for the lqarx instruction.
17490         On little endian systems, swap the hi/lo registers after the lqarx
17491         instruction.
17492         (load_lockedpti): Use indexed_or_indirect_operand predicate to
17493         insure the address is valid for the lqarx instruction.
17494         (store_conditionalti): Insure that the address is a proper indexed
17495         or indirect address for the stqcrx. instruction.  On little endian
17496         systems, swap the hi/lo registers before doing the stqcrx.
17497         instruction.
17498         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
17499         insure the address is valid for the stqcrx. instruction.
17500
17501         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
17502         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
17503         type of quad memory support is available.
17504
17505 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
17506
17507         PR regression/59915
17508         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
17509         there is a danger of looping.
17510
17511 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
17512
17513         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
17514         force flag_ira_loop_pressure if set via command line.
17515
17516 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
17517
17518         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
17519         (ashr_simd): New builtin handling DI mode.
17520         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
17521         (aarch64_sshr_simddi): New match pattern.
17522         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
17523         (vshrd_n_s64): Likewise.
17524         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
17525
17526 2014-01-23  Nick Clifton  <nickc@redhat.com>
17527
17528         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
17529         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
17530         favour of mcu specific scripts.
17531         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
17532         430x multilibs.
17533
17534 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
17535             Alex Velenko  <Alex.Velenko@arm.com>
17536
17537         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
17538         (vaddv_s16): Likewise.
17539         (vaddv_s32): Likewise.
17540         (vaddv_u8): Likewise.
17541         (vaddv_u16): Likewise.
17542         (vaddv_u32): Likewise.
17543         (vaddvq_s8): Likewise.
17544         (vaddvq_s16): Likewise.
17545         (vaddvq_s32): Likewise.
17546         (vaddvq_s64): Likewise.
17547         (vaddvq_u8): Likewise.
17548         (vaddvq_u16): Likewise.
17549         (vaddvq_u32): Likewise.
17550         (vaddvq_u64): Likewise.
17551         (vaddv_f32): Likewise.
17552         (vaddvq_f32): Likewise.
17553         (vaddvq_f64): Likewise.
17554         (vmaxv_f32): Likewise.
17555         (vmaxv_s8): Likewise.
17556         (vmaxv_s16): Likewise.
17557         (vmaxv_s32): Likewise.
17558         (vmaxv_u8): Likewise.
17559         (vmaxv_u16): Likewise.
17560         (vmaxv_u32): Likewise.
17561         (vmaxvq_f32): Likewise.
17562         (vmaxvq_f64): Likewise.
17563         (vmaxvq_s8): Likewise.
17564         (vmaxvq_s16): Likewise.
17565         (vmaxvq_s32): Likewise.
17566         (vmaxvq_u8): Likewise.
17567         (vmaxvq_u16): Likewise.
17568         (vmaxvq_u32): Likewise.
17569         (vmaxnmv_f32): Likewise.
17570         (vmaxnmvq_f32): Likewise.
17571         (vmaxnmvq_f64): Likewise.
17572         (vminv_f32): Likewise.
17573         (vminv_s8): Likewise.
17574         (vminv_s16): Likewise.
17575         (vminv_s32): Likewise.
17576         (vminv_u8): Likewise.
17577         (vminv_u16): Likewise.
17578         (vminv_u32): Likewise.
17579         (vminvq_f32): Likewise.
17580         (vminvq_f64): Likewise.
17581         (vminvq_s8): Likewise.
17582         (vminvq_s16): Likewise.
17583         (vminvq_s32): Likewise.
17584         (vminvq_u8): Likewise.
17585         (vminvq_u16): Likewise.
17586         (vminvq_u32): Likewise.
17587         (vminnmv_f32): Likewise.
17588         (vminnmvq_f32): Likewise.
17589         (vminnmvq_f64): Likewise.
17590
17591 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
17592
17593         * config/aarch64/aarch64-simd.md
17594         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
17595         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
17596         (*aarch64_mul3_elt<mode>): Likewise.
17597         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
17598         (*aarch64_mul3_elt_to_64v2df): Likewise.
17599         (*aarch64_mla_elt<mode>): Likewise.
17600         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
17601         (*aarch64_mls_elt<mode>): Likewise.
17602         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
17603         (*aarch64_fma4_elt<mode>): Likewise.
17604         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
17605         (*aarch64_fma4_elt_to_64v2df): Likewise.
17606         (*aarch64_fnma4_elt<mode>): Likewise.
17607         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
17608         (*aarch64_fnma4_elt_to_64v2df): Likewise.
17609         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
17610         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
17611         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
17612         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
17613         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
17614         (aarch64_sqdmull_lane<mode>_internal): Likewise.
17615         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
17616
17617 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
17618
17619         * config/aarch64/aarch64-simd.md
17620         (aarch64_be_checked_get_lane<mode>): New define_expand.
17621         * config/aarch64/aarch64-simd-builtins.def
17622         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
17623         New builtin definition.
17624         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
17625         Use new safe be builtin.
17626
17627 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
17628
17629         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
17630         New define_insn.
17631         (aarch64_be_st1<mode>): Likewise.
17632         (aarch_ld1<VALL:mode>): Define_expand modified.
17633         (aarch_st1<VALL:mode>): Likewise.
17634         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
17635         (UNSPEC_ST1): Likewise.
17636
17637 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
17638
17639         * config/microblaze/microblaze.md: Add trap insn and attribute
17640
17641 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
17642
17643         PR preprocessor/58580
17644         * input.h (location_get_source_line): Take an additional line_size
17645         parameter.
17646         (void diagnostics_file_cache_fini): Declare new function.
17647         * input.c (struct fcache): New type.
17648         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
17649         New static constants.
17650         (diagnostic_file_cache_init, total_lines_num)
17651         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
17652         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
17653         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
17654         (get_next_line, read_next_line, goto_next_line, read_line_num):
17655         New static function definitions.
17656         (diagnostic_file_cache_fini): New function.
17657         (location_get_source_line): Take an additional output line_len
17658         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
17659         read_line_num.
17660         * diagnostic.c (diagnostic_finish): Call
17661         diagnostic_file_cache_fini.
17662         (adjust_line): Take an additional input parameter for the length
17663         of the line, rather than calculating it with strlen.
17664         (diagnostic_show_locus): Adjust the use of
17665         location_get_source_line and adjust_line with respect to their new
17666         signature.  While displaying a line now, do not stop at the first
17667         null byte.  Rather, display the zero byte as a space and keep
17668         going until we reach the size of the line.
17669         * Makefile.in: Add vec.o to OBJS-libcommon
17670
17671 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
17672             Ilya Tocar  <ilya.tocar@intel.com>
17673
17674         * config/i386/avx512fintrin.h (_mm512_kmov): New.
17675         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
17676         (__builtin_ia32_kmov16): Ditto.
17677         * config/i386/i386.md (UNSPEC_KMOV): New.
17678         (kmovw): Ditto.
17679
17680 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
17681
17682         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
17683         (_mm512_storeu_si512): Ditto.
17684
17685 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
17686
17687         PR target/52125
17688         * rtl.h (get_referenced_operands): Declare.
17689         * recog.c (get_referenced_operands): New function.
17690         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
17691         operands have been referenced when recording LO_SUM references.
17692
17693 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
17694
17695         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
17696
17697 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
17698
17699         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
17700         Enable for generic and recent AMD targets.
17701
17702 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
17703
17704         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
17705         ARG_SIZE note when adjustment was eliminated.
17706
17707 2014-01-22  Jeff Law  <law@redhat.com>
17708
17709         PR tree-optimization/59597
17710         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
17711         in file.  Accept new argument REGISTERING and use it to modify
17712         dump output appropriately.
17713         (register_jump_thread): Corresponding changes.
17714         (mark_threaded_blocks): Reinstate code to cancel unprofitable
17715         thread paths involving joiner blocks.  Add code to dump cancelled
17716         jump threading paths.
17717
17718 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
17719
17720         PR rtl-optimization/59477
17721         * lra-constraints.c (inherit_in_ebb): Process call for living hard
17722         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
17723
17724 2014-01-22  Tom Tromey  <tromey@redhat.com>
17725
17726         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
17727         PARAMS.
17728         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
17729
17730 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17731
17732         PR rtl-optimization/59896
17733         * lra-constraints.c (process_alt_operands): Check unused note for
17734         matched operands of insn with no output reloads.
17735
17736 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
17737
17738         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
17739         (mips_move_from_gpr_cost): Likewise.
17740
17741 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
17742
17743         PR rtl-optimization/59858
17744         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
17745         ira_class_hard_regs_num.
17746         (process_alt_operands): Increase reject for dying matched operand.
17747
17748 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
17749
17750         PR target/59003
17751         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
17752         smaller than size, perform several stores or loads and stores
17753         at dst + count - size to store or copy all of size bytes, rather
17754         than just last modesize bytes.
17755
17756 2014-01-20  DJ Delorie  <dj@redhat.com>
17757
17758         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
17759         that CLOBBERs are REGs before propogating their values.
17760
17761 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
17762
17763         PR middle-end/59789
17764         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
17765         (cgraph_inline_failed_type): New function.
17766         * cgraph.h (DEFCIFCODE): Add type.
17767         (cgraph_inline_failed_type_t): New enum.
17768         (cgraph_inline_failed_type): New prototype.
17769         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
17770         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
17771         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
17772         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
17773         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
17774         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
17775         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
17776         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
17777         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
17778         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
17779         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
17780         OPTIMIZATION_MISMATCH.
17781         * tree-inline.c (expand_call_inline): Emit errors during
17782         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
17783
17784 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
17785
17786         PR target/59685
17787         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
17788         mode attribute in insn output.
17789
17790 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
17791
17792         * output.h (output_constant): Delete.
17793         * varasm.c (output_constant): Make private.
17794
17795 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
17796
17797         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
17798
17799 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
17800
17801         PR middle-end/59860
17802         * tree.h (fold_builtin_strcat): New prototype.
17803         * builtins.c (fold_builtin_strcat): No longer static.  Add len
17804         argument, if non-NULL, don't call c_strlen.  Optimize
17805         directly into __builtin_memcpy instead of __builtin_strcpy.
17806         (fold_builtin_2): Adjust fold_builtin_strcat caller.
17807         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
17808
17809 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
17810
17811         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
17812         for SImode_address_operand operands, having only a REG argument.
17813
17814 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17815
17816         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
17817         loader name using mbig-endian.
17818         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
17819
17820 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
17821
17822         * doc/invoke.texi (-march): Clarify documentation for AArch64.
17823         (-mtune): Likewise.
17824         (-mcpu): Likewise.
17825
17826 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
17827
17828         * config/aarch64/aarch64-protos.h
17829         (aarch64_cannot_change_mode_class_ptr): Declare.
17830         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
17831         aarch64_cannot_change_mode_class_ptr): New.
17832         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
17833         backend hook aarch64_cannot_change_mode_class.
17834
17835 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
17836
17837         * common/config/aarch64/aarch64-common.c
17838         (aarch64_handle_option): Don't handle any option order logic here.
17839         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
17840         selected_cpu, warn on architecture version mismatch.
17841         (aarch64_override_options): Fix parsing order for option strings.
17842
17843 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17844             Iain Sandoe  <iain@codesourcery.com>
17845
17846         PR bootstrap/59496
17847         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
17848         warning.  Amend comment to reflect current functionality.
17849
17850 2014-01-20  Richard Biener  <rguenther@suse.de>
17851
17852         PR middle-end/59860
17853         * builtins.c (fold_builtin_strcat): Remove case better handled
17854         by tree-ssa-strlen.c.
17855
17856 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
17857
17858         * config/aarch64/aarch64.opt
17859         (mcpu, march, mtune): Make case-insensitive.
17860
17861 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
17862
17863         PR target/59880
17864         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
17865         if operands[1] is a REG or ZERO_EXTEND of a REG.
17866
17867 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
17868
17869         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
17870
17871 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
17872
17873         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
17874         long non-pic millicode calls.
17875
17876 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17877
17878         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
17879
17880 2014-01-19  Kito Cheng  <kito@0xlab.org>
17881
17882         * builtins.c (expand_movstr): Check movstr expand done or fail.
17883
17884 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
17885             H.J. Lu  <hongjiu.lu@intel.com>
17886
17887         PR target/59379
17888         * config/i386/i386.md (*lea<mode>): Zero-extend return register
17889         to DImode for zero-extended addresses.
17890
17891 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
17892
17893         PR rtl-optimization/57763
17894         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
17895         on the new indirect jump_insn and increment LABEL_NUSES (label).
17896
17897 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
17898
17899         PR bootstrap/59580
17900         PR bootstrap/59583
17901         * config.gcc (x86_archs): New variable.
17902         (x86_64_archs): Likewise.
17903         (x86_cpus): Likewise.
17904         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
17905         --with-arch/--with-cpu= options.
17906         Support --with-arch=/--with-cpu={nehalem,westmere,
17907         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
17908
17909 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
17910
17911         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
17912         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
17913
17914 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
17915
17916         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
17917
17918 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
17919
17920         PR target/58944
17921         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
17922         clear cpp_get_options (parse_in)->warn_unused_macros for
17923         ix86_target_macros_internal with cpp_define.
17924
17925 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
17926
17927         * jump.c (delete_related_insns): Keep (use (insn))s.
17928         * reorg.c (redundant_insn): Check for barriers too.
17929
17930 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
17931
17932         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
17933
17934 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
17935
17936         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
17937         call to $$dyncall when TARGET_LONG_CALLS is true.
17938
17939 2014-01-17  Jeff Law  <law@redhat.com>
17940
17941         * ree.c (combine_set_extension): Temporarily disable test for
17942         changing number of hard registers.
17943
17944 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
17945
17946         PR middle-end/58125
17947         * ipa-inline-analysis.c (inline_free_summary):
17948         Do not free summary of aliases.
17949
17950 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
17951
17952         PR middle-end/59706
17953         * gimplify.c (gimplify_expr): Use create_tmp_var
17954         instead of create_tmp_var_raw.  If cond doesn't have
17955         integral type, don't add the IFN_ANNOTATE builtin at all.
17956
17957 2014-01-17  Martin Jambor  <mjambor@suse.cz>
17958
17959         PR ipa/59736
17960         * ipa-cp.c (prev_edge_clone): New variable.
17961         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
17962         Also resize prev_edge_clone vector.
17963         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
17964         (ipcp_edge_removal_hook): New function.
17965         (ipcp_driver): Register ipcp_edge_removal_hook.
17966
17967 2014-01-17  Andrew Pinski  <apinski@cavium.com>
17968             Steve Ellcey  <sellcey@mips.com>
17969
17970         PR target/59462
17971         * config/mips/mips.c (mips_print_operand): Check operand mode instead
17972         of operator mode.
17973
17974 2014-01-17  Jeff Law  <law@redhat.com>
17975
17976         PR middle-end/57904
17977         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
17978         so that pass_ccp runs first.
17979
17980 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
17981
17982         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
17983         (ix86_adjust_cost): Use !TARGET_XXX.
17984         (do_reorder_for_imul): Likewise.
17985         (swap_top_of_ready_list): Likewise.
17986         (ix86_sched_reorder): Likewise.
17987
17988 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
17989
17990         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
17991         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
17992         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
17993         (intel_memset): New.  Duplicate slm_memset.
17994         (intel_cost): New.  Duplicate slm_cost.
17995         (m_INTEL): New macro.
17996         (processor_target_table): Add "intel".
17997         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
17998         with PROCESSOR_INTEL for "intel".
17999         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
18000         PROCESSOR_SILVERMONT.
18001         (ix86_issue_rate): Likewise.
18002         (ix86_adjust_cost): Likewise.
18003         (ia32_multipass_dfa_lookahead): Likewise.
18004         (swap_top_of_ready_list): Likewise.
18005         (ix86_sched_reorder): Likewise.
18006         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
18007         instead of TARGET_OPT_AGU.
18008         * config/i386/i386.h (TARGET_INTEL): New.
18009         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
18010         (processor_type): Add PROCESSOR_INTEL.
18011         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
18012         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
18013
18014 2014-01-17  Marek Polacek  <polacek@redhat.com>
18015
18016         PR c/58346
18017         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
18018         size is zero.
18019
18020 2014-01-17  Richard Biener  <rguenther@suse.de>
18021
18022         PR tree-optimization/46590
18023         * opts.c (default_options_table): Add entries for
18024         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
18025         all enabled at -O1 but not for -Og.
18026         * common.opt (fbranch-count-reg): Remove Init(1).
18027         (fmove-loop-invariants): Likewise.
18028         (ftree-pta): Likewise.
18029
18030 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
18031
18032         * config/i386/i386.c (ix86_data_alignment): For compatibility with
18033         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
18034         decls to at least the GCC 4.8 used alignments.
18035
18036         PR fortran/59440
18037         * tree-nested.c (convert_nonlocal_reference_stmt,
18038         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
18039         of GIMPLE_BIND stmts, adjust associated decls.
18040
18041 2014-01-17  Richard Biener  <rguenther@suse.de>
18042
18043         PR tree-optimization/46590
18044         * vec.h (vec<>::bseach): New member function implementing
18045         binary search according to C89 bsearch.
18046         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
18047         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
18048         bitmap pointer again.  Make accesses_in_loop a flat array.
18049         (mem_ref_obstack): New global.
18050         (outermost_indep_loop): Adjust for mem_ref->stored changes.
18051         (mark_ref_stored): Likewise.
18052         (ref_indep_loop_p_2): Likewise.
18053         (set_ref_stored_in_loop): New helper function.
18054         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
18055         (memref_free): Adjust.
18056         (record_mem_ref_loc): Simplify.
18057         (gather_mem_refs_stmt): Adjust.
18058         (sort_locs_in_loop_postorder_cmp): New function.
18059         (analyze_memory_references): Sort accesses_in_loop after
18060         loop postorder number.
18061         (find_ref_loc_in_loop_cmp): New function.
18062         (for_all_locs_in_loop): Find relevant cluster of locs in
18063         accesses_in_loop and iterate without recursion.
18064         (execute_sm): Avoid uninit warning.
18065         (struct ref_always_accessed): Simplify.
18066         (ref_always_accessed::operator ()): Likewise.
18067         (ref_always_accessed_p): Likewise.
18068         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
18069         loop postorder numbers here.
18070         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
18071         numbers.
18072
18073 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
18074
18075         PR c++/57945
18076         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
18077         on decls for which assemble_alias has been called.
18078
18079 2014-01-17  Nick Clifton  <nickc@redhat.com>
18080
18081         * config/msp430/msp430.opt: (mcpu): New option.
18082         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
18083         (msp430_option_override): Parse target_cpu.  If the MCU name
18084         matches a generic string, clear target_mcu.
18085         (msp430_attr): Allow numeric interrupt values up to 63.
18086         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
18087         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
18088         option.
18089         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
18090         Add mcpu matches.
18091         * config/msp430/msp430.md (popm): Use %J rather than %I.
18092         (addsi3): Use msp430_nonimmediate_operand for operand 2.
18093         (addhi_cy_i): Use immediate_operand for operand 2.
18094         * doc/invoke.texi: Document -mcpu option.
18095
18096 2014-01-17  Richard Biener  <rguenther@suse.de>
18097
18098         PR rtl-optimization/38518
18099         * df.h (df_analyze_loop): Declare.
18100         * df-core.c: Include cfgloop.h.
18101         (df_analyze_1): Split out main part of df_analyze.
18102         (df_analyze): Adjust.
18103         (loop_inverted_post_order_compute): New function.
18104         (loop_post_order_compute): Likewise.
18105         (df_analyze_loop): New function avoiding whole-function
18106         postorder computes.
18107         * loop-invariant.c (find_defs): Use df_analyze_loop.
18108         (find_invariants): Adjust.
18109         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
18110
18111 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
18112
18113         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
18114         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
18115
18116 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
18117
18118         * ipa-ref.c (ipa_remove_stmt_references): Fix references
18119         traversal when removing references.
18120
18121 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
18122
18123         PR ipa/59775
18124         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
18125
18126 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
18127
18128         PR middle-end/56791
18129         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
18130         pushing a reload for an autoinc when we had previously reloaded an
18131         inner part of the address.
18132
18133 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
18134
18135         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
18136         field.
18137         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
18138         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
18139         when not giving up or versioning for alias only because of
18140         loop->safelen.
18141         (vect_analyze_data_ref_dependences): Set to true.
18142         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
18143         is a GIMPLE_PHI.
18144         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
18145         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
18146         to the condition.
18147
18148         PR middle-end/58344
18149         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
18150
18151         PR target/59839
18152         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
18153         operand 0 predicate for gathers, use a new pseudo as subtarget.
18154
18155 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
18156
18157         PR middle-end/59609
18158         * lra-constraints.c (process_alt_operands): Add printing debug info.
18159         Check absence of input/output reloads for matched operands too.
18160
18161 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
18162
18163         PR rtl-optimization/59835
18164         * ira.c (ira_init_register_move_cost): Increase cost for
18165         impossible modes.
18166
18167 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
18168
18169         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
18170
18171 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
18172
18173         PR target/59780
18174         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
18175         non-register objects.  Use gen_(high/low)part more consistently.
18176         Fix assertions.
18177
18178 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
18179
18180         PR target/59844
18181         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
18182         endian support, remove tests for WORDS_BIG_ENDIAN.
18183         (p8_mfvsrd_3_<mode>): Likewise.
18184         (reload_gpr_from_vsx<mode>): Likewise.
18185         (reload_gpr_from_vsxsf): Likewise.
18186         (p8_mfvsrd_4_disf): Likewise.
18187
18188 2014-01-16  Richard Biener  <rguenther@suse.de>
18189
18190         PR rtl-optimization/46590
18191         * lcm.c (compute_antinout_edge): Use postorder iteration.
18192         (compute_laterin): Use inverted postorder iteration.
18193
18194 2014-01-16  Nick Clifton  <nickc@redhat.com>
18195
18196         PR middle-end/28865
18197         * varasm.c (output_constant): Return the number of bytes actually
18198         emitted.
18199         (output_constructor_array_range): Update the field size with the
18200         number of bytes emitted by output_constant.
18201         (output_constructor_regular_field): Likewise.  Also do not
18202         complain if the total number of bytes emitted is now greater
18203         than the expected fieldpos.
18204         * output.h (output_constant): Update prototype and descriptive comment.
18205
18206 2014-01-16  Marek Polacek  <polacek@redhat.com>
18207
18208         PR middle-end/59827
18209         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
18210         it is error_mark_node.
18211
18212 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
18213
18214         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
18215         VALID_AVX256_REG_OR_OI_MODE.
18216
18217 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
18218
18219         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
18220         current procedure should be profiled.
18221
18222 2014-01-15  Andrew Pinski  <apinski@cavium.com>
18223
18224         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
18225         of moving from/to the STACK_REG register class.
18226
18227 2014-01-15  Richard Henderson  <rth@redhat.com>
18228
18229         PR debug/54694
18230         * reginfo.c (global_regs_decl): Globalize.
18231         * rtl.h (global_regs_decl): Declare.
18232         * ira.c (do_reload): Diagnose frame_pointer_needed and it
18233         reserved via global_regs.
18234
18235 2014-01-15  Teresa Johnson  <tejohnson@google.com>
18236
18237         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
18238
18239 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
18240
18241         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
18242         and vmulosh rather than call gen_vec_widen_smult_*.
18243         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
18244         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
18245         (vec_widen_smult_even_v16qi): Likewise.
18246         (vec_widen_umult_even_v8hi): Likewise.
18247         (vec_widen_smult_even_v8hi): Likewise.
18248         (vec_widen_umult_odd_v16qi): Likewise.
18249         (vec_widen_smult_odd_v16qi): Likewise.
18250         (vec_widen_umult_odd_v8hi): Likewise.
18251         (vec_widen_smult_odd_v8hi): Likewise.
18252         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
18253         vmuloub rather than call gen_vec_widen_umult_*.
18254         (vec_widen_umult_lo_v16qi): Likewise.
18255         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
18256         vmulosb rather than call gen_vec_widen_smult_*.
18257         (vec_widen_smult_lo_v16qi): Likewise.
18258         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
18259         rather than call gen_vec_widen_umult_*.
18260         (vec_widen_umult_lo_v8hi): Likewise.
18261         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
18262         rather than call gen_vec_widen_smult_*.
18263         (vec_widen_smult_lo_v8hi): Likewise.
18264
18265 2014-01-15  Jeff Law  <law@redhat.com>
18266
18267         PR tree-optimization/59747
18268         * ree.c (find_and_remove_re): Properly handle case where a second
18269         eliminated extension requires widening a copy created for elimination
18270         of a prior extension.
18271         (combine_set_extension): Ensure that the number of hard regs needed
18272         for a destination register does not change when we widen it.
18273
18274 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18275
18276         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
18277         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
18278         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
18279         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
18280         (avr-*-rtems*): Likewise.
18281         (bfin*-rtems*): Likewise.
18282         (moxie-*-rtems*): Likewise.
18283         (h8300-*-rtems*): Likewise.
18284         (i[34567]86-*-rtems*): Likewise.
18285         (lm32-*-rtems*): Likewise.
18286         (m32r-*-rtems*): Likewise.
18287         (m68k-*-rtems*): Likewise.
18288         (microblaze*-*-rtems*): Likewise.
18289         (mips*-*-rtems*): Likewise.
18290         (powerpc-*-rtems*): Likewise.
18291         (sh-*-rtems*): Likewise.
18292         (sparc-*-rtems*): Likewise.
18293         (sparc64-*-rtems*): Likewise.
18294         (v850-*-rtems*): Likewise.
18295         (m32c-*-rtems*): Likewise.
18296
18297 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
18298
18299         PR rtl-optimization/59511
18300         * ira.c (ira_init_register_move_cost): Use memory costs for some
18301         cases of register move cost calculations.
18302         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
18303         instead of BB frequency.
18304         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
18305         * lra-assigns.c (find_hard_regno_for): Ditto.
18306
18307 2014-01-15  Richard Biener  <rguenther@suse.de>
18308
18309         PR tree-optimization/59822
18310         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
18311         (vectorizable_load): Use it to hoist defs of uses of invariant
18312         loads out of the loop.
18313
18314 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
18315             Kugan Vivekanandarajah  <kuganv@linaro.org>
18316
18317         PR target/59695
18318         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
18319         truncation.
18320
18321 2014-01-15  Richard Biener  <rguenther@suse.de>
18322
18323         PR rtl-optimization/59802
18324         * lcm.c (compute_available): Use inverted postorder to seed
18325         the initial worklist.
18326
18327 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18328
18329         PR target/59803
18330         * config/s390/s390.c (s390_preferred_reload_class): Don't return
18331         ADDR_REGS for invalid symrefs in non-PIC code.
18332
18333 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
18334
18335         PR other/58712
18336         * builtins.c (determine_block_size): Initialize *probable_max_size
18337         even if len_rtx is CONST_INT.
18338
18339 2014-01-14  Andrew Pinski  <apinski@cavium.com>
18340
18341         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
18342         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
18343         (cortexa53_tunings): Likewise.
18344         (aarch64_sched_issue_rate): New function.
18345         (TARGET_SCHED_ISSUE_RATE): Define.
18346
18347 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
18348
18349         * ira-costs.c (find_costs_and_classes): Add missed
18350         ira_init_register_move_cost_if_necessary.
18351
18352 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
18353
18354         PR target/59787
18355         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
18356
18357 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
18358
18359         PR target/59794
18360         * config/i386/i386.c (type_natural_mode): Add a bool parameter
18361         to indicate if type is used for function return value.  Warn ABI
18362         change if the vector mode isn't available for function return value.
18363         (ix86_function_arg_advance): Pass false to type_natural_mode.
18364         (ix86_function_arg): Likewise.
18365         (ix86_gimplify_va_arg): Likewise.
18366         (function_arg_32): Don't warn ABI change.
18367         (ix86_function_value): Pass true to type_natural_mode.
18368         (ix86_return_in_memory): Likewise.
18369         (ix86_struct_value_rtx): Removed.
18370         (TARGET_STRUCT_VALUE_RTX): Likewise.
18371
18372 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
18373
18374         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
18375         converting a conditional jump into a conditional return.
18376
18377 2014-01-14  Richard Biener  <rguenther@suse.de>
18378
18379         PR tree-optimization/58921
18380         PR tree-optimization/59006
18381         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
18382         hoisting invariant stmts.
18383         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
18384         invariant loads on the preheader edge if possible.
18385
18386 2014-01-14  Joey Ye  <joey.ye@arm.com>
18387
18388         * doc/plugin.texi (Building GCC plugins): Update to C++.
18389
18390 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
18391
18392         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
18393         (_mm_rcp28_round_ss): Ditto.
18394         (_mm_rsqrt28_round_sd): Ditto.
18395         (_mm_rsqrt28_round_ss): Ditto.
18396         (_mm_rcp28_sd): Ditto.
18397         (_mm_rcp28_ss): Ditto.
18398         (_mm_rsqrt28_sd): Ditto.
18399         (_mm_rsqrt28_ss): Ditto.
18400         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
18401         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
18402         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
18403         (IX86_BUILTIN_RCP28SD): Ditto.
18404         (IX86_BUILTIN_RCP28SS): Ditto.
18405         (IX86_BUILTIN_RSQRT28SD): Ditto.
18406         (IX86_BUILTIN_RSQRT28SS): Ditto.
18407         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
18408         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
18409         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
18410         (ix86_expand_special_args_builtin): Expand new FTYPE.
18411         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
18412         (srcp14<mode>): Make insn unary.
18413         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
18414         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
18415         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
18416         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
18417         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
18418         Fix rounding: make it SAE only.
18419         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
18420         Ditto.
18421         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
18422         Ditto.
18423         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
18424         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
18425         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
18426         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
18427         (round_saeonly_mask_scalar_operand4): Ditto.
18428         (round_saeonly_mask_scalar_op3): Ditto.
18429         (round_saeonly_mask_scalar_op4): Ditto.
18430
18431 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18432
18433         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18434         Implement -maltivec=be for vec_insert and vec_extract.
18435
18436 2014-01-10  DJ Delorie  <dj@redhat.com>
18437
18438         * config/msp430/msp430.md (call_internal): Don't allow memory
18439         references with SP as the base register.
18440         (call_value_internal): Likewise.
18441         * config/msp430/constraints.md (Yc): New.  For memory references
18442         that don't use SP as a base register.
18443
18444         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
18445         "an integer without a # prefix"
18446         * config/msp430/msp430.md (epilogue_helper): Use it.
18447
18448 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
18449
18450         PR target/59617
18451         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
18452         AVX512F gather builtins.
18453         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
18454         on gather decls with INTEGER_TYPE masktype.
18455         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
18456         directly into the builtin rather than hoisting it before loop.
18457
18458         PR tree-optimization/59387
18459         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
18460         (scev_const_prop): If folded_casts and type has undefined overflow,
18461         use force_gimple_operand instead of force_gimple_operand_gsi and
18462         for each added stmt if it is assign with
18463         arith_code_with_undefined_signed_overflow, call
18464         rewrite_to_defined_overflow.
18465         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
18466         gimple-fold.h instead.
18467         (arith_code_with_undefined_signed_overflow,
18468         rewrite_to_defined_overflow): Moved to ...
18469         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
18470         rewrite_to_defined_overflow): ... here.  No longer static.
18471         Include gimplify-me.h.
18472         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
18473         rewrite_to_defined_overflow): New prototypes.
18474
18475 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18476
18477         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
18478
18479 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
18480
18481         * builtins.c (get_object_alignment_2): Minor tweak.
18482         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
18483
18484 2014-01-13  Christian Bruel  <christian.bruel@st.com>
18485
18486         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
18487         optimized non constant lengths.
18488
18489 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
18490
18491         PR libgomp/59194
18492         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
18493         load as __atomic_load_N if possible.
18494
18495 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
18496
18497         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
18498         target parameter.
18499         (rs6000_expand_builtin): Adjust call.
18500
18501 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
18502
18503         PR target/58115
18504         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
18505         * config/rs6000/rs6000.c: Include target-globals.h.
18506         (rs6000_set_current_function): Instead of doing target_reinit
18507         unconditionally, use save_target_globals_default_opts and
18508         restore_target_globals.
18509
18510         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
18511         FPSCR.
18512         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
18513         (rs6000_expand_builtin): Handle mffs and mtfsf.
18514         (rs6000_init_builtins): Define mffs and mtfsf.
18515         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
18516         (rs6000_mffs): New pattern.
18517         (rs6000_mtfsf): New pattern.
18518
18519 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
18520
18521         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
18522         Start narrowing with START.  Apply candidate-use pair
18523         and check overall cost in narrowing.
18524         (iv_ca_prune): Pass new argument.
18525
18526 2014-01-10  Jeff Law  <law@redhat.com>
18527
18528         PR middle-end/59743
18529         * ree.c (combine_reaching_defs): Ensure the defining statement
18530         occurs before the extension when optimizing extensions with
18531         different source and destination hard registers.
18532
18533 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
18534
18535         PR ipa/58585
18536         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
18537         vtables into the type inheritance graph.
18538
18539 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
18540
18541         PR rtl-optimization/59754
18542         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
18543         modes in the REGNO != REGNO case.
18544
18545 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18546
18547         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
18548
18549 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
18550
18551         PR tree-optimization/59745
18552         * tree-predcom.c (tree_predictive_commoning_loop): Call
18553         free_affine_expand_cache if giving up because components is NULL.
18554
18555         * target-globals.c (save_target_globals): Allocate < 4KB structs using
18556         GC in payload of target_globals struct instead of allocating them on
18557         the heap and the larger structs separately using GC.
18558         * target-globals.h (struct target_globals): Make regs, hard_regs,
18559         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
18560         of GTY((skip)) and change type to void *.
18561         (reset_target_globals): Cast loads from those fields to corresponding
18562         types.
18563
18564 2014-01-10  Steve Ellcey  <sellcey@mips.com>
18565
18566         PR plugins/59335
18567         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
18568         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
18569         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
18570
18571 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
18572
18573         PR target/59744
18574         * aarch64-modes.def (CC_Zmode): New flags mode.
18575         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
18576         represents an equality.
18577         (aarch64_get_condition_code): Handle CC_Zmode.
18578         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
18579
18580 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18581
18582         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
18583         extraction in good case.
18584
18585 2014-01-10  Richard Biener  <rguenther@suse.de>
18586
18587         PR tree-optimization/59374
18588         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
18589         checking after SLP discovery.  Mark stmts not participating
18590         in any SLP instance properly.
18591
18592 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18593
18594         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
18595         when handling a SET rtx.
18596
18597 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18598
18599         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
18600         (cortex-a57): Likewise.
18601         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
18602
18603 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18604
18605         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
18606         non-iwmmxt builtins.
18607
18608 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
18609
18610         PR ipa/58252
18611         PR ipa/59226
18612         * ipa-devirt.c record_target_from_binfo): Take as argument
18613         stack of binfos and lookup matching one for virtual inheritance.
18614         (possible_polymorphic_call_targets_1): Update.
18615
18616 2014-01-10  Huacai Chen  <chenhc@lemote.com>
18617
18618         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
18619         kernel strings for Loongson-2E/2F/3A.
18620
18621 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
18622
18623         PR middle-end/59670
18624         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
18625         is_gimple_call before calling gimple_call_internal_p.
18626
18627 2014-01-09  Steve Ellcey  <sellcey@mips.com>
18628
18629         * Makefile.in (TREE_FLOW_H): Remove.
18630         (TREE_SSA_H): Add file names from tree-flow.h.
18631         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
18632         * tree.h: Remove tree-flow.h reference.
18633         * hash-table.h: Remove tree-flow.h reference.
18634         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
18635         reference with tree-ssa-loop.h.
18636
18637 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18638
18639         * doc/invoke.texi: Add -maltivec={be,le} options, and document
18640         default element-order behavior for -maltivec.
18641         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
18642         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
18643         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
18644         when targeting big endian, at least for now.
18645         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
18646
18647 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
18648
18649         PR middle-end/47735
18650         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
18651         var satisfies use_register_for_decl, just take into account type
18652         alignment, rather than decl alignment.
18653
18654         PR tree-optimization/59622
18655         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
18656         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
18657         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
18658         Don't devirtualize for inplace at all.  For targets.length () == 1,
18659         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
18660
18661 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
18662
18663         * config/i386/i386.md (cpu): Remove the unused btver1.
18664
18665 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
18666
18667         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
18668
18669 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
18670
18671         PR target/58115
18672         * tree-core.h (struct target_globals): New forward declaration.
18673         (struct tree_target_option): Add globals field.
18674         * tree.h (TREE_TARGET_GLOBALS): Define.
18675         (prepare_target_option_nodes_for_pch): New prototype.
18676         * target-globals.h (struct target_globals): Define even if
18677         !SWITCHABLE_TARGET.
18678         * tree.c (prepare_target_option_node_for_pch,
18679         prepare_target_option_nodes_for_pch): New functions.
18680         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
18681         * config/i386/i386.c: Include target-globals.h.
18682         (ix86_set_current_function): Instead of doing target_reinit
18683         unconditionally, use save_target_globals_default_opts and
18684         restore_target_globals.
18685
18686 2014-01-09  Richard Biener  <rguenther@suse.de>
18687
18688         PR tree-optimization/59715
18689         * tree-cfg.h (split_critical_edges): Declare.
18690         * tree-cfg.c (split_critical_edges): Export.
18691         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
18692
18693 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18694
18695         * cfgexpand.c (expand_stack_vars): Optionally disable
18696         asan stack protection.
18697         (expand_used_vars): Likewise.
18698         (partition_stack_vars): Likewise.
18699         * asan.c (asan_emit_stack_protection): Optionally disable
18700         after return stack usage.
18701         (instrument_derefs): Optionally disable memory access instrumentation.
18702         (instrument_builtin_call): Likewise.
18703         (instrument_strlen_call): Likewise.
18704         (asan_protect_global): Optionally disable global variables protection.
18705         * doc/invoke.texi: Added doc for new options.
18706         * params.def: Added new options.
18707         * params.h: Likewise.
18708
18709 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
18710
18711         PR rtl-optimization/59724
18712         * ifcvt.c (cond_exec_process_if_block): Don't call
18713         flow_find_head_matching_sequence with 0 longest_match.
18714         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
18715         non-active insns if !stop_after.
18716         (try_head_merge_bb): Revert 2014-01-07 changes.
18717
18718 2014-01-08  Jeff Law  <law@redhat.com>
18719
18720         * ree.c (get_sub_rtx): New function, extracted from...
18721         (merge_def_and_ext): Here.
18722         (combine_reaching_defs): Use get_sub_rtx.
18723
18724 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
18725
18726         * cgraph.h (varpool_variable_node): Do not choke on null node.
18727
18728 2014-01-08  Catherine Moore  <clm@codesourcery.com>
18729
18730         * config/mips/mips.md (simple_return): Attempt to use JRC
18731         for microMIPS.
18732         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
18733
18734 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
18735
18736         PR rtl-optimization/59137
18737         * reorg.c (steal_delay_list_from_target): Call update_block for
18738         elided insns.
18739         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
18740
18741 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18742
18743         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
18744         two duplicate entries.
18745
18746 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
18747
18748         Revert:
18749         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
18750
18751         * config/mips/mips.c (mips_truncated_op_cost): New function.
18752         (mips_rtx_costs): Adjust test for BADDU.
18753         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
18754
18755         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
18756
18757         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
18758         (*baddu_si): ...this new pattern.
18759
18760 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
18761
18762         PR ipa/59722
18763         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
18764
18765 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18766
18767         PR middle-end/57748
18768         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
18769         inner_reference_p.
18770         (expand_expr, expand_normal): Adjust.
18771         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
18772         inner_reference_p. Use inner_reference_p to expand inner references.
18773         (store_expr): Adjust.
18774         * cfgexpand.c (expand_call_stmt): Adjust.
18775
18776 2014-01-08  Rong Xu  <xur@google.com>
18777
18778         * gcov-io.c (gcov_var): Move from gcov-io.h.
18779         (gcov_position): Ditto.
18780         (gcov_is_error): Ditto.
18781         (gcov_rewrite): Ditto.
18782         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
18783         only part to libgcc/libgcov.h.
18784
18785 2014-01-08  Marek Polacek  <polacek@redhat.com>
18786
18787         PR middle-end/59669
18788         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
18789
18790 2014-01-08  Marek Polacek  <polacek@redhat.com>
18791
18792         PR sanitizer/59667
18793         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
18794
18795 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
18796
18797         PR rtl-optimization/59649
18798         * stor-layout.c (get_mode_bounds): For BImode return
18799         0 and STORE_FLAG_VALUE.
18800
18801 2014-01-08  Richard Biener  <rguenther@suse.de>
18802
18803         PR middle-end/59630
18804         * gimple.h (is_gimple_builtin_call): Remove.
18805         (gimple_builtin_call_types_compatible_p): New.
18806         (gimple_call_builtin_p): New overload.
18807         * gimple.c (is_gimple_builtin_call): Remove.
18808         (validate_call): Rename to ...
18809         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
18810         check return types.
18811         (validate_type): New static function.
18812         (gimple_call_builtin_p): New overload and adjust.
18813         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
18814         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
18815         (gimple_fold_stmt_to_constant_1): Likewise.
18816         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
18817
18818 2014-01-08  Richard Biener  <rguenther@suse.de>
18819
18820         PR middle-end/59471
18821         * gimplify.c (gimplify_expr): Gimplify register-register type
18822         VIEW_CONVERT_EXPRs to separate stmts.
18823
18824 2014-01-07  Jeff Law  <law@redhat.com>
18825
18826         PR middle-end/53623
18827         * ree.c (combine_set_extension): Handle case where source
18828         and destination registers in an extension insn are different.
18829         (combine_reaching_defs): Allow source and destination registers
18830         in extension to be different under limited circumstances.
18831         (add_removable_extension): Remove restriction that the
18832         source and destination registers in the extension are the same.
18833         (find_and_remove_re): Emit a copy from the extension's
18834         destination to its source after the defining insn if
18835         the source and destination registers are different.
18836
18837         PR middle-end/59285
18838         * ifcvt.c (merge_if_block): If we are merging a block with more than
18839         one successor with a block with no successors, remove any BARRIER
18840         after the second block.
18841
18842 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
18843
18844         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
18845
18846 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
18847
18848         PR target/59652
18849         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
18850         for 14-bit register offsets when INT14_OK_STRICT is false.
18851
18852 2014-01-07  Roland Stigge  <stigge@antcom.de>
18853             Michael Meissner  <meissner@linux.vnet.ibm.com>
18854
18855         PR 57386/target
18856         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
18857         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
18858
18859 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
18860
18861         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
18862         -mcpu.
18863
18864 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
18865
18866         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
18867         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
18868         rtx is const0_rtx or not.
18869
18870 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
18871
18872         PR target/58115
18873         * target-globals.c (save_target_globals): Remove this_fn_optab
18874         handling.
18875         * toplev.c: Include optabs.h.
18876         (target_reinit): Temporarily restore the global options if another
18877         set of options are in force.
18878
18879 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
18880
18881         PR rtl-optimization/58668
18882         * cfgcleanup.c (flow_find_cross_jump): Don't count
18883         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
18884         to determine what is counted.
18885         (flow_find_head_matching_sequence): Use active_insn_p to determine
18886         what is counted.
18887         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
18888         counting change.
18889         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
18890         determine what is counted.
18891
18892         PR tree-optimization/59643
18893         * tree-predcom.c (split_data_refs_to_components): If one dr is
18894         read and one write, determine_offset fails and the write isn't
18895         in the bad component, just put the read into the bad component.
18896
18897 2014-01-07  Mike Stump  <mikestump@comcast.net>
18898             Jakub Jelinek  <jakub@redhat.com>
18899
18900         PR pch/59436
18901         * tree-core.h (struct tree_optimization_option): Change optabs
18902         type from unsigned char * to void *.
18903         * optabs.c (init_tree_optimization_optabs): Adjust
18904         TREE_OPTIMIZATION_OPTABS initialization.
18905
18906 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
18907
18908         PR target/59644
18909         * config/i386/i386.h (struct machine_function): Add
18910         no_drap_save_restore field.
18911         * config/i386/i386.c (ix86_save_reg): Use
18912         !cfun->machine->no_drap_save_restore instead of
18913         crtl->stack_realign_needed.
18914         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
18915         this function clears frame_pointer_needed.  Set
18916         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
18917         and DRAP reg is needed.
18918
18919 2014-01-06  Marek Polacek  <polacek@redhat.com>
18920
18921         PR c/57773
18922         * doc/implement-c.texi: Mention that other integer types are
18923         permitted as bit-field types in strictly conforming mode.
18924
18925 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
18926
18927         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
18928         is newly allocated.
18929
18930 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
18931
18932         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
18933
18934 2014-01-06  Martin Jambor  <mjambor@suse.cz>
18935
18936         PR ipa/59008
18937         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
18938         to int.
18939         * ipa-prop.c (ipa_print_node_params): Fix indentation.
18940
18941 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
18942
18943         PR debug/59350
18944         PR debug/59510
18945         * var-tracking.c (add_stores): Preserve the value of the source even if
18946         we don't record the store.
18947
18948 2014-01-06  Terry Guo  <terry.guo@arm.com>
18949
18950         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
18951
18952 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
18953
18954         PR bootstrap/59541
18955         * config/darwin.c (darwin_function_section): Adjust return values to
18956         correspond to optimisation changes made in r206070.
18957
18958 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
18959
18960         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
18961         from prefetch_block tune setting.
18962         (nocona_cost): Correct size of prefetch block to 64.
18963
18964 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
18965
18966         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
18967         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
18968         used to save the static chain register in the computation of the offset
18969         from which the FP registers need to be restored.
18970
18971 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
18972
18973         PR tree-optimization/59519
18974         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
18975         ICE if get_current_def (current_new_name) is already non-NULL, as long
18976         as it is a phi result of some other phi in *new_exit_bb that has
18977         the same argument.
18978
18979         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
18980         or vmovdqu* for misaligned_operand.
18981         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
18982         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
18983         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
18984         aligned_mem for AVX512F masked aligned load and store builtins and for
18985         non-temporal moves.
18986
18987 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
18988
18989         PR tree-optimization/59651
18990         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18991         Address range for negative step should be added by TYPE_SIZE_UNIT.
18992
18993 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
18994
18995         * config/m68k/m68k.c (handle_move_double): Handle pushes with
18996         overlapping registers also for registers other than the stack pointer.
18997
18998 2014-01-03  Marek Polacek  <polacek@redhat.com>
18999
19000         PR other/59661
19001         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
19002         __builtin_FILE.
19003
19004 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
19005
19006         PR target/59625
19007         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
19008         asm goto as jump.
19009
19010         * config/i386/i386.md (MODE_SIZE): New mode attribute.
19011         (push splitter): Use <P:MODE_SIZE> instead of
19012         GET_MODE_SIZE (<P:MODE>mode).
19013         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
19014         (mov -1, reg peephole2): Likewise.
19015         * config/i386/sse.md (*mov<mode>_internal,
19016         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
19017         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
19018         *<code><mode>3, *andnot<mode>3<mask_name>,
19019         <mask_codefor><code><mode>3<mask_name>): Likewise.
19020         * config/i386/subst.md (mask_mode512bit_condition,
19021         sd_mask_mode512bit_condition): Likewise.
19022
19023 2014-01-02  Xinliang David Li  <davidxl@google.com>
19024
19025         PR tree-optimization/59303
19026         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
19027         (dump_predicates): Better output format.
19028         (pred_equal_p): New function.
19029         (is_neq_relop_p): Ditto.
19030         (is_neq_zero_form_p): Ditto.
19031         (pred_expr_equal_p): Ditto.
19032         (pred_neg_p): Ditto.
19033         (simplify_pred): Ditto.
19034         (simplify_preds_2): Ditto.
19035         (simplify_preds_3): Ditto.
19036         (simplify_preds_4): Ditto.
19037         (simplify_preds): Ditto.
19038         (push_pred): Ditto.
19039         (push_to_worklist): Ditto.
19040         (get_pred_info_from_cmp): Ditto.
19041         (is_degenerated_phi): Ditto.
19042         (normalize_one_pred_1): Ditto.
19043         (normalize_one_pred): Ditto.
19044         (normalize_one_pred_chain): Ditto.
19045         (normalize_preds): Ditto.
19046         (normalize_cond_1): Remove function.
19047         (normalize_cond): Ditto.
19048         (is_gcond_subset_of): Ditto.
19049         (is_subset_of_any): Ditto.
19050         (is_or_set_subset_of): Ditto.
19051         (is_and_set_subset_of): Ditto.
19052         (is_norm_cond_subset_of): Ditto.
19053         (pred_chain_length_cmp): Ditto.
19054         (convert_control_dep_chain_into_preds): Type change.
19055         (find_predicates): Ditto.
19056         (find_def_preds): Ditto.
19057         (destroy_predicates_vecs): Ditto.
19058         (find_matching_predicates_in_rest_chains): Ditto.
19059         (use_pred_not_overlap_with_undef_path_pred): Ditto.
19060         (is_pred_expr_subset): Ditto.
19061         (is_pred_chain_subset_of): Ditto.
19062         (is_included_in): Ditto.
19063         (is_superset_of): Ditto.
19064
19065 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
19066
19067         Update copyright years.
19068
19069 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
19070
19071         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
19072         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
19073         config/arc/arc.md, config/arc/arc.opt,
19074         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
19075         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
19076         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
19077         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
19078         config/linux-protos.h, config/linux.c, config/winnt-c.c,
19079         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
19080         vtable-verify.c, vtable-verify.h: Use the standard form for the
19081         copyright notice.
19082
19083 2014-01-02  Tobias Burnus  <burnus@net-b.de>
19084
19085         * gcc.c (process_command): Update copyright notice dates.
19086         * gcov-dump.c: Ditto.
19087         * gcov.c: Ditto.
19088         * doc/cpp.texi: Bump @copying's copyright year.
19089         * doc/cppinternals.texi: Ditto.
19090         * doc/gcc.texi: Ditto.
19091         * doc/gccint.texi: Ditto.
19092         * doc/gcov.texi: Ditto.
19093         * doc/install.texi: Ditto.
19094         * doc/invoke.texi: Ditto.
19095
19096 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19097
19098         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
19099
19100 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
19101
19102         * config/i386/sse.md (*mov<mode>_internal): Guard
19103         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
19104
19105         PR rtl-optimization/59647
19106         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
19107         new_rtx into UNSIGNED_FLOAT rtxes.
19108 \f
19109 Copyright (C) 2014 Free Software Foundation, Inc.
19110
19111 Copying and distribution of this file, with or without modification,
19112 are permitted in any medium without royalty provided the copyright
19113 notice and this notice are preserved.