2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / ChangeLog
blob2ddff45eabd7f0d8f7965bfbeb356dc2be128e5a
1 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
3         PR rtl-optimization/79571
4         * lra-constraints.c (process_alt_operands): Claculate static
5         reject and subtract it from overal when there will be only address
6         reloads.
8 2017-03-06  Julia Koval  <julia.koval@intel.com>
10         PR target/79793
11         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
12         incoming stack boundary to 128 for 64-bit targets.
14 2017-03-06  Richard Biener  <rguenther@suse.de>
16         PR tree-optimization/79894
17         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
18         to NULL after folding it.
20 2017-03-06  Richard Biener  <rguenther@suse.de>
22         PR tree-optimization/79824
23         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
24         check disabling peeling for gaps.
26 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
28         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
29         attributes): Document gettimeofday.
31 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
33         * config/s390/s390.c (s390_option_override_internal): Set
34         PARAM_MIN_VECT_LOOP_BOUND
36 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
38         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
39         * config/s390/s390.md: Likewise.
41 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
43         PR target/79812
44         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
45         (<avx2_avx512>_perm<mode>): Rename to ...
46         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
47         of VI8F_256_512.
48         (<avx512>_perm<mode>_mask): Rename to ...
49         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
50         of VI8F_256_512.
51         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
52         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
53         instead of VI8F_256_512.
54         (avx512f_perm<mode>): New define_expand.
55         (avx512f_perm<mode>_mask): Likewise.
56         (avx512f_perm<mode>_1<mask_name>): New define_insn.
57         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
59 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
61         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
62         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
63         if_then_else.
64         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
66 2017-03-06  Martin Liska  <mliska@suse.cz>
68         PR sanitize/79783
69         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
70         when having a SSA NAME w/o VAR_DECL assigned to it.
72 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
74         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
75         msa_dpsub_<su>_d): Fix MODE for vec_select.
77 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
79         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
80         argument.
81         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
83 2017-03-06  Richard Biener  <rguenther@suse.de>
85         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
86         * plugin.c (register_plugin_info): Likewise.
87         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
89 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
91         * config/i386/sse.md (sse_storehps, sse_storelps,
92         avx_<castmode><avxsizesuffix>_<castmode>,
93         avx512f_<castmode><avxsizesuffix>_<castmode>,
94         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
95         in condition that at least one operand is not a MEM.
97 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
99         PR middle-end/79805
100         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
101         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
102         ECF_NOTHROW.
103         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
104         gimple_call_nothrow_p flag based on whether original builtin can throw.
105         If it can, emit following stmts on the fallthrough edge.
106         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
107         don't create new bb if inserting just debug stmts on the edge, try to
108         insert them on the fallthru bb or just reset debug stmts.
110 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
112         PR target/43763
113         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
114         restore recog_data (including the operand rtxes inside it) around
115         the call to get_insn_template.
117 2017-03-03  Martin Sebor  <msebor@redhat.com>
119         PR tree-optimization/79699
120         * context.c (context::~context): Free MPFR caches to avoid
121         a memory leak on program exit.
123 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
125         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
126         Use wide_int::ulow () instead of .elt (0).
128 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
130         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
131         (*pushxf): Limit oF constraint to 32bit targets and add oC
132         constraint for 64bit targets.
133         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
134         (*pushdf): Change rmF constraint to rmC.
136 2017-03-03  Martin Liska  <mliska@suse.cz>
138         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
139         Remove unused variable.
141 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
143         PR target/79807
144         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
145         is a memory operand, increase num_memory.
146         (ix86_expand_args_builtin): Likewise.
148 2017-03-03  Jan Hubicka  <jh@suse.cz>
150         PR lto/79760
151         * ipa-devirt.c (maybe_record_node): Properly handle
152         __cxa_pure_virtual visibility.
154 2017-03-03  Martin Liska  <mliska@suse.cz>
156         PR tree-optimization/79803
157         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
158         assert.
159         (pass_loop_prefetch::execute): Disabled optimization if an
160         assumption about L1 cache size is not met.
162 2017-03-03  Martin Liska  <mliska@suse.cz>
164         PR rtl-optimization/79574
165         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
166         (hash_scan_set): Likewise.
167         (dump_hash_table): Likewise.
168         (hoist_code): Likewise.
170 2017-03-03  Richard Biener  <rguenther@suse.de>
172         * fixed-value.c (fixed_from_string): Restore use of elt (1)
173         in place of uhigh ().
174         (fixed_convert_from_real): Likewise.
176 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
178         PR target/79514
179         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
181 2017-03-03  Richard Biener  <rguenther@suse.de>
183         PR middle-end/79818
184         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
185         TYPE_OVERFLOW_UNDEFINED check.
187 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
189         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
190         numbers.
191         (vector_ae_<mode>_p): Likewise.
192         (vector_nez_<mode>_p): Likewise.
193         (vector_ne_v2di_p): Likewise.
194         (vector_ae_v2di_p): Likewise.
195         (vector_ne_<mode>_p): Likewise.
196         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
197         numbers.
198         (vsx_tsqrt<mode>2_fe): Likewise.
200 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
202         PR target/79514
203         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
205 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
207         PR rtl-optimization/79780
208         * cprop.c (one_cprop_pass): When second and further conditional trap
209         in a single basic block is turned into an unconditional trap, turn it
210         into a deleted note to avoid RTL verification failures.
212 2017-03-02  Richard Biener  <rguenther@suse.de>
214         * fold-const.c (const_binop): Use ulow () instead of elt (0).
216 2017-03-02  Richard Biener  <rguenther@suse.de>
218         PR tree-optimization/79345
219         PR c++/42000
220         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
221         param and abort the walk, returning -1 if it is hit.
222         (walk_aliased_vdefs): Take a limit param and pass it on.
223         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
224         defaulting to 0 and return a signed int.
225         * tree-ssa-uninit.c (struct check_defs_data): New struct.
226         (check_defs): New helper.
227         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
228         about uninitialized memory.
229         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
230         bogus uninitialized warning.
231         (fixed_convert_from_real): Likewise.
233 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
235         PR tree-optimization/66768
236         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
237         iv_use if base object can't be determined.
239 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
241         PR tree-optimization/79345
242         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
243         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
244         (get_pattern_stats): Initialize it.
245         * genemit.c (gen_expand): Verify match_scratch numbers come after
246         match_operand/match_dup numbers.
247         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
248         match_scratch numbers.
249         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
250         Likewise.
251         * config/s390/s390.md (trunctdsd2): Likewise.
253 2017-03-02  Richard Biener  <rguenther@suse.de>
255         * wide-int.h (wide_int_storage::operator=): Implement in terms
256         of wi::copy.
258 2017-03-02  Richard Biener  <rguenther@suse.de>
260         PR tree-optimization/79777
261         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
262         the to insert expression to sth existing.
264 2017-03-01  Martin Sebor  <msebor@redhat.com>
266         PR middle-end/79692
267         * gimple-ssa-sprintf.c
268         (directive::known_width_and_precision): New function.
269         (format_integer): Use it.
270         (get_mpfr_format_length): Consider the full range of precision
271         when computing %g output with the # flag.  Set the likely byte
272         count to 3 rather than 1 when precision is indeterminate.
273         (format_floating): Correct the lower bound of precision.
275 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
277         * doc/invoke.texi: Document default code model for 64-bit Linux.
279 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
281         PR target/79752
282         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
283         udiv rather than div since input pattern is unsigned.
285 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
287         * config/i386/i386.c (print_reg): Warn for values of
288         unsupported size in integer register.
290 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
292         PR target/79439
293         * config/rs6000/predicates.md (current_file_function_operand): Do
294         not allow self calls to be local if the function is replaceable.
296 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
298         PR target/79395
299         * config/rs6000/altivec.h (vec_ctz and others): Change the
300         preprocessor macro that controls conditional compilation from
301         _ARCH_PWR9 to __POWER9_VECTOR__.
302         (vec_all_ne): Change parameterization of __altivec_scalar_pred
303         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
304         control (instead of _ARCH_PWR9 control) so that template
305         definition uses power9-specific function.
306         (vec_any_eq): Likewise.
307         (vec_all_ne): Change macro definition to use a power9-specific
308         expansion under #ifdef __POWER9_VECTOR__ control (instead of
309         _ARCH_PWR9 control).
310         (vec_any_eq) Likewise.
311         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
312         expansion for CMPNEF to remove support for xvcmpnesp instruction.
313         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
314         support for xvcmpnedp instruction.
315         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
316         macro expansion so that Power9 implementation of vec_all_ne does
317         not use the AltiVec predicate framework.
318         (VCMPNEH_P): Likewise.
319         (VCMPNEW_P): Likewise.
320         (VCMPNED_P): Likewise.
321         (VCMPNEFP_P): Likewise.
322         (VCMPNEDP_P): Likewise.
323         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
324         implementation of vec_any_eq to not use AltiVec predicate
325         framework.
326         (VCMPAEH_P): Likewise.
327         (VCMPAEW_P): Likewise.
328         (VCMPAED_P): Likewise.
329         (VCMPAEFP_P): Likewise.
330         (VCMPAEDP_P): Likewise.
331         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
332         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
333         not use the AltiVec predicate framework.
334         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
335         of vec_any_eq to not use AltiVec predicate framework.
336         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
337         support for predefined __POWER9_VECTOR__ macro to indicate that
338         Power9 instruction selection is enabled.
339         (altivec_overloaded_builtins): Remove extraneous
340         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
341         function argument types RS6000_BTI_bool_V16QI and
342         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
343         entry for overloaded function argument types RS6000_BTI_bool_V4SI
344         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
345         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
346         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
347         Power9 for implementations of vec_cmpne.  Change the signature for
348         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
349         (representing vec_all_ne) to remove the previously described first
350         argument of type RS6000_BTI_INTSI, as this was an artifact of
351         reliance on the AltiVec predicate framework, which is no longer
352         used in the implementation of these functions.  Add
353         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
354         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
355         since, unlike the AltiVec predicate framework implementation, we
356         do not share function descriptors between vec_alle and vec_anyeq.
357         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
358         set of modes that receive special treatment even when
359         TARGET_P9_VECTOR is true.  The special treatment emits code that
360         does not depend on Power9 instructions.
361         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
362         define_expand to not rely on AltiVec predicate framework.
363         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
364         function.
365         (vector_ne_v2di_p): Change this define_expand to not rely on
366         AltiVec predicate framework.
367         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
368         function.
369         (vector_ne_<mode>_p): Change this define_expand to not rely on
370         AltiVec predicate framework.
371         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
372         function.
373         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
374         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
375         define_insn pattern.
376         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
377         define_insn pattern because the xvcmpne<VSs>. instruction is not
378         supported.
379         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
380         instruction is not supported.
382 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
384         * config/nvptx/nvptx.c: Include intl.h.
386 2017-03-01  Martin Jambor  <mjambor@suse.cz>
388         PR lto/78140
389         * ipa-prop.h (ipa_bits): Removed field known.
390         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
391         to pointers.  Adjusted their comments to warn about their sharing.
392         (ipcp_transformation_summary): Change bits to a vector of pointers.
393         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
394         (ipa_get_ipa_bits_for_value): Declare.
395         * tree-vrp.h (value_range): Mark as GTY((for_user)).
396         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
397         (ipa_bits_hash_table): Likewise.
398         (ipa_vr_ggc_hash_traits): Likewise.
399         (ipa_vr_hash_table): Likewise.
400         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
401         being pointers and vr_known being removed.
402         (ipa_set_jf_unknown): Likewise.
403         (ipa_get_ipa_bits_for_value): New function.
404         (ipa_set_jfunc_bits): Likewise.
405         (ipa_get_value_range): New overloaded functions.
406         (ipa_set_jfunc_vr): Likewise.
407         (ipa_compute_jump_functions_for_edge): Use the above functions to
408         construct bits and vr parts of jump functions.
409         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
410         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
411         exist.
412         (ipcp_grow_transformations_if_necessary): Also allocate
413         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
414         exist.
415         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
416         them.  Fix too long lines.
417         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
418         vr_known being removed.
419         (ipa_read_jump_function): Use new setter functions to construct bits
420         and vr parts of jump functions or set them to NULL.
421         (write_ipcp_transformation_info): Adjust for bits being pointers.
422         (read_ipcp_transformation_info): Likewise.
423         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
424         space.
425         Include gt-ipa-prop.h.
426         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
427         being pointers.
428         (ipcp_store_bits_results): Likewise.
429         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
430         Do not write to existing jump functions but use a temporary instead.
432 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
434         PR c++/79681
435         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
436         attempt to use its first operand as BIT_FIELD_REF base.
438 2017-03-01  Richard Biener  <rguenther@suse.de>
440         PR middle-end/79721
441         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
442         interpolating formula in wrapping arithmetic.
443         (chrec_apply): Convert chrec_evaluate return value to wanted type.
445 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
447         PR tree-optimization/79734
448         * tree-vect-generic.c (expand_vector_condition): Optimize
449         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
450         Handle VEC_COND_EXPR where comparison has different inner width from
451         type's inner width.
453 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
455         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
456         markup, and similar issues.  Remove @opindex entries for things
457         that aren't options.  Add missing -mmpy-option entries.
459 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
461         PR tree-optimization/79737
462         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
463         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
464         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
465         instead of byte_size.  Formatting fix.
466         (shift_bytes_in_array_right): Formatting fix.
468 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
470         PR target/79749
471         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
472         condition on optimize for the leaf function test.
474 2017-02-28  Martin Liska  <mliska@suse.cz>
476         PR lto/79625
477         * read-rtl-function.c (function_reader::handle_unknown_directive):
478         Bail out when one uses -flto.
480 2017-02-28  Martin Liska  <mliska@suse.cz>
482         * common.opt: Replace space with tabular for options of <number>
483         type.
484         * config/i386/i386.opt: Show <number> value for
485         -mlarge-data-threshold.
486         * opts.c (print_filtered_help): Do not display number in hexadecimal
487         format.
489 2017-02-28  Martin Liska  <mliska@suse.cz>
491         * common.opt: Fix --help=option -Q for options which are of
492         an enum type.
494 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
496         * config/i386/i386.c (print_reg): Error out for values
497         of 8-bit size in invalid integer register.
499 2017-02-28  Martin Sebor  <msebor@redhat.com>
501         PR tree-optimization/79691
502         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
504 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
506         PR target/79729
507         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
508         gcc_unreachable with output_operand_lossage.
510 2017-02-28  Richard Biener  <rguenther@suse.de>
512         PR tree-optimization/79740
513         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
514         inserts.
515         (visit_nary_op): Insert the nary into the hashtable if we
516         pattern-matched sth.
517         * tree-ssa-pre.c (eliminate_insert): Robustify.
519 2017-02-28  Richard Biener  <rguenther@suse.de>
521         PR middle-end/79731
522         * fold-const.c (decode_field_reference): Reject out-of-bound
523         accesses.
525 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
527         * config/i386/i386.c: Include intl.h.
528         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
529         instead of just cond ? "..." : "...".
530         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
531         * coverage.c (read_counts_file): Likewise.
532         * omp-offload.c: Include intl.h.
533         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
534         of just cond ? "..." : "...".
535         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
536         of just cond ? "..." : "...".
538 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
540         PR target/79742
541         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
542         entry, if present.
543         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
544         'tune for' CPU name.
545         * config/arm/arm-cpu-data.h: Regenerated.
547 2017-02-28  Richard Biener  <rguenther@suse.de>
549         PR tree-optimization/79732
550         * tree-inline.c (expand_call_inline): Do not shadow var.
552 2017-02-28  Richard Biener  <rguenther@suse.de>
554         PR tree-optimization/79723
555         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
556         address-space properly.
558 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
560         * doc/optinfo.texi (Optimization groups): Fix option used for
561         OPTGROUP_ALL.
562         * doc/invoke.texi (-fopt-info): Document "omp".
563         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
564         (OPTGROUP_ALL): Add OPTGROUP_OMP.
565         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
566         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
567         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
569         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
570         all users.
571         * dumpfile.c (optgroup_options): Instead of "openmp", associate
572         OPTGROUP_OMP with "omp".
574 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
576         PR target/79544
577         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
578         for arithmetic shift of unsigned V2DI.
580 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
582         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
583         arc/linux.h headers.
584         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
585         (LINK_SPEC): Likewise.
586         (ARC_TLS_EXTRA_START_SPEC): Likewise.
587         (EXTRA_SPECS): Likewise.
588         (STARTFILE_SPEC): Likewise.
589         (ENDFILE_SPEC): Likewise.
590         (LIB_SPEC): Likewise.
591         (TARGET_SDATA_DEFAULT): Likewise.
592         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
593         (MULTILIB_DEFAULTS): Likewise.
594         (DWARF2_UNWIND_INFO): Likewise.
595         * config/arc/big.h: New file.
596         * config/arc/elf.h: Likewise.
597         * config/arc/linux.h: Likewise.
598         * config/arc/t-uClibc: Remove.
600 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
602         PR tree-optimization/77536
603         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
604         (tree_transform_and_unroll_loop): Use above function to compute the
605         estimated niter of unrolled loop and use it when scaling profile.
606         Also use count info rather than frequency if it's non-zero.
607         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
608         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
609         (vect_transform_loop): Call above function.
611 2017-02-27  Richard Biener  <rguenther@suse.de>
613         PR tree-optimization/45397
614         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
615         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
616         (visit_nary_op): Add pattern matching for CSEing sign-changed
617         or truncated operations with wider ones.
619 2017-02-27  Richard Biener  <rguenther@suse.de>
621         PR tree-optimization/79690
622         * tree-vect-stmts.c (vectorizable_store): Use vector type
623         built from the DR with address-space.
625 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
627         * doc/invoke.texi (Optimize Options): Refine the description
628         of asan-use-after-return.
630 2017-02-25  Alan Modra  <amodra@gmail.com>
632         PR rtl-optimization/79584
633         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
634         base, not ad->base_term, the reg within base.  Remove assertion
635         that ad->base == ad->base_term.  Replace gen_int_mode using
636         bogus mode with const0_rtx.
638 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
640         PR middle-end/79396
641         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
642         FMA_EXPR like tcc_binary or tcc_unary.
644         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
646         PR debug/77589
647         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
648         bitfield.
649         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
650         (output_loc_operands): Handle DW_OP_call_ref and
651         DW_OP_GNU_variable_value.
652         (struct variable_value_struct): New type.
653         (struct variable_value_hasher): Likewise.
654         (variable_value_hash): New variable.
655         (string_types): Remove.
656         (copy_loc_descr): New function.
657         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
658         (prepend_loc_descr_to_each): New function.
659         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
660         instead of add_loc_descr_to_each if the first argument is single
661         location list and the second has multiple.
662         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
663         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
664         when looking for variable value which doesn't have other location info.
665         (loc_list_from_tree): Formatting fix.
666         (gen_array_type_die): Simplify DW_AT_string_length handling.
667         (adjust_string_types): Remove.
668         (gen_subprogram_die): Don't call adjust_string_types nor test/set
669         string_types.  Call resolve_variable_values.
670         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
671         (resolve_addr_in_expr): Likewise.  Add A argument.
672         (copy_deref_exprloc): Remove deref argument.  Adjust for the
673         original expression being DW_OP_GNU_variable_value with optionally
674         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
675         optionally after it.
676         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
677         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
678         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
679         (variable_value_hasher::hash, variable_value_hasher::equal): New
680         methods.
681         (resolve_variable_value_in_expr, resolve_variable_value,
682         resolve_variable_values, note_variable_value_in_expr,
683         note_variable_value): New functions.
684         (dwarf2out_early_finish): Call note_variable_value on all toplevel
685         DIEs.
687 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
689         PR c/79677
690         * opts.h (handle_generated_option): Add GENERATED_P argument.
691         * opts-common.c (handle_option): Adjust function comment.
692         (handle_generated_option): Add GENERATED_P argument, pass it to
693         handle_option.
694         (control_warning_option): Pass false to handle_generated_option
695         GENERATED_P.
696         * opts.c (maybe_default_option): Pass true to handle_generated_option
697         GENERATED_P.
698         * optc-gen.awk: Likewise.
700 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
702         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
703         a REG, look at the REG it is a SUBREG of.
704         (splitter for cmpeqsi_t): Ditto.
706 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
708         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
709         the special USEs with the pattern of the insn, not the insn itself.
711 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
713         PR target/79473
714         * doc/invoke.texi: Document -mload-store-pairs.
716 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
717             Sandra Loosemore  <sandra@codesourcery.com>
719         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
720         argument isn't a CONST_INT.
721         (nios2_alternate_compare_const): Assert op is a CONST_INT.
722         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
723         (nios2_validate_compare): Bypass alternate compare logic if *op2
724         is not a CONST_INT.
725         (ldstwm_operation_p): Return false if first_base is not a REG or
726         if first_offset is not a CONST_INT.
728 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
730         * config/cris/cris.md: Use correct operand in a define_peephole2.
732 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
734         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
736 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
738         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
739         this_insn if it is an INSN or JUMP_INSN.
740         (force_offsettable): Look at base, not at addr.
741         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
742         on things that aren't necessarily CONST_INTs.
744 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
746         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
747         -mfpmath=sse is the default also for x86-32 targets with SSE2
748         instruction set when @option{-ffast-math} is enabled
750 2017-02-24  Jeff Law  <law@redhat.com>
752         PR rtl-optimizatoin/79286
753         * ira.c (update_equiv_regs): Drop may_trap_p exception to
754         dominance test.
756 2017-02-24  Richard Biener  <rguenther@suse.de>
758         PR tree-optimization/79389
759         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
760         debug insns.
762 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
764         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
765         function comment to reflect reality.
766         (loop_exits_before_overflow): Fix typo in function description.
768 2017-02-24  Richard Biener  <rguenther@suse.de>
770         PR tree-optimization/79389
771         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
772         properly that a threading opportunity exists.  Detect conditional
773         copy/constant propagation opportunities.
775 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
777         * config/visium/visium.md (type): Add trap.
778         (b): New mode attribute.
779         (*btst): Rename into...
780         (*btst<mode>): ...this and adjust.
781         (*cbranchsi4_btst_insn): Rename into...
782         (*cbranch<mode>4_btst_insn): ...this and adjust.
783         (trap): New define_insn.
785 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
787         PR tree-optimization/79389
788         * ifcvt.c (struct noce_if_info): Add rev_cond field.
789         (noce_reversed_cond_code): New function.
790         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
791         reversed_comparison_code.  Formatting fix.
792         (noce_try_store_flag): Test rev_cond != NULL in addition to
793         reversed_comparison_code.
794         (noce_try_store_flag_constants): Likewise.
795         (noce_try_store_flag_mask): Likewise.
796         (noce_try_addcc): Use rev_cond if non-NULL instead of
797         reversed_comparison_code.
798         (noce_try_cmove_arith): Likewise.  Formatting fixes.
799         (noce_try_minmax, noce_try_abs): Clear rev_cond.
800         (noce_find_if_block): Initialize rev_cond.
801         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
802         instead of false as last argument never attempt to reverse it
803         afterwards.
805 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
807         PR tree-optimization/79663
808         * tree-predcom.c (combine_chains): Process refs in reverse order
809         only for ZERO length chains, and add explaining comment.
811 2017-02-23  Jeff Law  <law@redhat.com>
813         PR tree-optimization/79578
814         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
815         in call to operand_equal_p.
817 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
819         PR target/71017
820         * config/i386/cpuid.h: Fix another undefined behavior.
822 2017-02-23  Richard Biener  <rguenther@suse.de>
824         PR tree-optimization/79683
825         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
826         vector types for data-refs.
828 2017-02-23  Martin Liska  <mliska@suse.cz>
830         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
832 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
834         PR middle-end/79665
835         * internal-fn.c (get_range_pos_neg): Moved to ...
836         * tree.c (get_range_pos_neg): ... here.  No longer static.
837         * tree.h (get_range_pos_neg): New prototype.
838         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
839         are known to be in between 0 and signed maximum inclusive, try to
840         expand both unsigned and signed divmod and use the cheaper one from
841         those.
843 2017-02-22  Jeff Law  <law@redhat.com>
845         PR tree-optimization/79578
846         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
847         to compare base operands.
849 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
851         PR target/79211
852         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
853         gpc_reg_operand instead of fpr_reg_operand.
855 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
857         * config/mips/mips.c (mips_return_in_memory): Force FP
858         vector types to be returned in memory for o32 ABI.
860 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
862         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
863         instead of DW_TAG_member for static data member declarations and don't
864         set no_linkage_name for static inline data members.
865         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
866         to DW_TAG_member.
868 2017-02-22  Martin Liska  <mliska@suse.cz>
870         * doc/invoke.texi: Replace inequality signs with square brackets
871         for -Wnormalized.
873 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
875         PR tree-optimization/68644
876         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
878 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
880         PR target/78660
881         * lra-constraints.c (simplify_operand_subreg): Handle
882         WORD_REGISTER_OPERATIONS targets.
884 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
886         PR target/70465
887         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
888         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
889         elimination by swapping fld*.
891 2017-02-22  Richard Biener  <rguenther@suse.de>
893         PR tree-optimization/79673
894         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
895         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
896         irrelevant address-space qualifiers and avoiding a
897         ADDR_SPACE_CONVERT_EXPR from fold_convert.
899 2017-02-22  Richard Biener  <rguenther@suse.de>
901         PR tree-optimization/79666
902         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
903         to not symbolically negate if that may introduce undefined
904         overflow.
906 2017-02-22  Martin Liska  <mliska@suse.cz>
908         PR lto/79587
909         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
910         * data-streamer-out.c (streamer_write_gcov_count_stream):
911         Likewise.
912         * value-prof.c (stream_out_histogram_value): Make assert more
913         precise based on type of counter.
915 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
917         PR target/79593
918         * config/i386/i386.md (standard_x87sse_constant_load splitter):
919         Use nonimmediate_operand instead of memory_operand for operand 1.
920         (float-extend standard_x87sse_constant_load splitter): Ditto.
922 2017-02-21 Jeff Law  <law@redhat.com>
924         PR tree-optimization/79621
925         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
926         blocks with edges to themselves.
928 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
930         PR target/79633
931         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
932         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
933         Use gimple_call_builtin_p.
935         PR target/79570
936         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
937         on temporarily removed DEBUG_INSNs.
939         PR tree-optimization/79649
940         * tree-loop-distribution.c (classify_partition): Give up on
941         non-generic address space loads/stores.
943 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
945         * doc/loop.texi (Loop manipulation): Remove nonexistent
946         tree_ssa_loop_version from the documentation.
947         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
949 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
951         PR target/79494
952         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
953         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
954         * config/rs6000/rs6000.c: Include except.h.
955         (rs6000_expand_split_stack_prologue): Call
956         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
958 2017-02-21  Martin Jambor  <mjambor@suse.cz>
960         PR lto/79579
961         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
962         have been analyzed.
964 2017-02-21  Martin Jambor  <mjambor@suse.cz>
966         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
967         for backward compatibility only.
968         * doc/invoke.texi (Option Summary): Remove all references to
969         -fipa-cp-alignment.
971 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
973         PR target/78660
974         Revert:
975         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
977         * lra-constraints.c (curr_insn_transform): Handle
978         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
980 2017-02-21  Martin Liska  <mliska@suse.cz>
982         * config/i386/i386.opt: Replace -masm-dialect with -masm.
984 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
986         PR translation/79638
987         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
989 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
991         PR ada/67205
992         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
993         (arm_function_ok_for_sibcall): Return false for an indirect call by
994         descriptor if all the argument registers are used.
995         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
996         alignment of the function.
998 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
1000         PR tree-optimization/61441
1001         * simplify-rtx.c (simplify_const_unary_operation): For
1002         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
1003         the sNaN unmodified.
1005 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1007         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
1008         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
1009         instead of SYSTEM_HEADER_DIR.
1011 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
1012             Martin LiÅ¡ka  <mliska@suse.cz>
1014         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
1015         Fix typos and grammar, use active voice, and clarify.
1017 2017-02-20  Marek Polacek  <polacek@redhat.com>
1019         PR middle-end/79537
1020         * gimplify.c (gimplify_expr): Handle unused *&&L;.
1022         PR sanitizer/79558
1023         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
1025 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
1027         PR target/79568
1028         * config/i386/i386.c (ix86_expand_builtin): Handle
1029         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
1030         ix86_builtins_isa[fcode].isa as a requirement of those
1031         flags and any other flag in the bitmask.
1032         (ix86_init_mmx_sse_builtins): Use 0 instead of
1033         ~OPTION_MASK_ISA_64BIT as mask.
1034         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
1035         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
1036         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
1037         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
1039 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1041         PR target/78012
1042         * lra-constraints.c (split_reg): Check requested split mode
1043         is supported by the register.
1045 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1047         * lra-constraints.c (simplify_operand_subreg): Remove early
1048         return false.
1050 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1052         PR target/78660
1053         * lra-constraints.c (curr_insn_transform): Tighten condition
1054         for converting SUBREG reloads from OP_OUT to OP_INOUT.
1056 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
1058         PR target/78660
1059         * lra-constraints.c (curr_insn_transform): Handle
1060         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
1062 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
1064         Revert:
1065         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
1067         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
1069 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
1071         PR c++/69523
1072         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
1073         description.
1075 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1077         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
1078         for FMA_EXPR.
1080 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
1082         * final.c (last_columnnum, override_columnnum): New variables.
1083         (final_start_function): Set last_columnnum, pass it to begin_prologue
1084         hook and pass 0 to dwarf2out_begin_prologue.
1085         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
1086         to source_line debug hook.
1087         (notice_source_line): Compute last_columnnum and for debug_column_info
1088         return true on column changes.
1089         * debug.h (struct gcc_debug_hooks): Add column argument to
1090         source_line and begin_prologue hooks.
1091         (debug_nothing_int_charstar_int_bool): Remove prototype.
1092         (debug_nothing_int_int_charstar,
1093         debug_nothing_int_int_charstar_int_bool): New prototypes.
1094         (dwarf2out_begin_prologue): Add column argument.
1095         * debug.c (do_nothing_debug_hooks): Adjust source_line and
1096         begin_prologue hooks.
1097         (debug_nothing_int_charstar_int_bool): Remove.
1098         (debug_nothing_int_int_charstar,
1099         debug_nothing_int_int_charstar_int_bool): New functions.
1100         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
1101         through to dwarf2out_source_line.
1102         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
1103         (dwarf2out_source_line): Add column argument, emit it if requested.
1104         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
1105         arguments.
1106         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
1107         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
1108         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
1109         through to dwarf2out_begin_prologue.
1110         (vmsdbgout_source_line): Add column argument, pass it through to
1111         dwarf2out_source_line.
1112         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
1113         dbxout_source_line caller.
1114         (dbxout_source_line): Add column argument.
1116         * common.opt (gno-column-info, gcolumn-info): New options.
1117         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
1118         (check_die): Also test for multiple DW_AT_decl_column attributes.
1119         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
1120         DW_AT_decl_column if requested.
1121         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
1122         if requested.
1123         (gen_variable_die): Likewise.
1124         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
1125         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
1127         PR target/79569
1128         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
1129         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
1130         (ix86_handle_option): Handle OPT_m3dnowa.
1131         * doc/invoke.texi (-m3dnowa): Document.
1132         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
1133         -m3dnowa instead of -m3dnow -march=athlon.
1135         PR target/79559
1136         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
1137         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
1139 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1141         PR target/79261
1142         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
1143         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
1144         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
1145         generator for vsx_xxpermdi_<mode>_be.
1146         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
1147         force big-endian semantics.
1148         (vsx_xxpermdi_<mode>_be): New define_expand with same
1149         implementation as previous version of vsx_xxpermdi_<mode>.
1151 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
1153         PR tree-optimization/79327
1154         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
1155         variable, its initialization and use.
1157 2017-02-17  Julia Koval  <julia.koval@intel.com>
1159         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
1160         (OPTION_MASK_ISA_PKU_UNSET): New.
1161         (ix86_handle_option): Handle -mrdpid.
1162         * config/i386/cpuid.h (bit_RDPID): New.
1163         * config/i386/driver-i386.c (host_detect_local_cpu):
1164         Detect RDPID feature.
1165         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
1166         * config/i386/i386-c.c (ix86_target_macros_internal):
1167         Handle RDPID flag.
1168         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
1169         (ix86_valid_target_attribute_inner_p): Add "rdpid".
1170         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
1171         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
1172         * config/i386/i386.md (define_insn "rdpid"): New.
1173         * config/i386/i386.opt Add -mrdpid.
1174         * config/i386/immintrin.h (_rdpid_u32): New.
1176 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
1178         PR rtl-optimization/79541
1179         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
1180         instead of transforming it into USE.
1182 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
1184         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
1185         If HONOR_SNANS (SFmode) force the input to a register.
1186         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
1187         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
1188         an frsp or similar insn.
1190 2017-02-17  Martin Liska  <mliska@suse.cz>
1192         PR rtl-optimization/79577
1193         * params.def (selsched-max-sched-times): Increase minimum to 1.
1195 2017-02-17  Martin Liska  <mliska@suse.cz>
1197         PR rtl-optimization/79574
1198         * gcse.c (want_to_gcse_p): Prevent integer overflow.
1200 2017-02-17  Martin Liska  <mliska@suse.cz>
1202         PR tree-optimization/79529
1203         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
1204         ssa_defined_default_def_p to handle cases which are implicitly
1205         defined.
1206         * tree-ssa.c (ssa_defined_default_def_p): New function.
1207         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
1208         which are implicitly defined.
1209         * tree-ssa.h (ssa_defined_default_def_p): Declare.
1211 2017-02-17  Richard Biener  <rguenther@suse.de>
1213         PR middle-end/79576
1214         * params.def (max-ssa-name-query-depth): Limit to 10.
1216 2017-02-17  Richard Biener  <rguenther@suse.de>
1218         PR tree-optimization/79552
1219         * tree-ssa-structalias.c (visit_loadstore): Properly verify
1220         default defs.
1222 2017-02-17  Richard Biener  <rguenther@suse.de>
1224         PR bootstrap/79567
1225         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
1227 2017-02-17  Marek Polacek  <polacek@redhat.com>
1229         PR middle-end/79536
1230         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
1231         (fold_negate_expr): New wrapper.
1233 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
1235         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
1236         Correct terminology and de-emphasize pre-standard behavior.
1238 2017-02-16  Alan Modra  <amodra@gmail.com>
1240         PR rtl-optimization/79286
1241         * ira.c (def_dominates_uses): New function.
1242         (update_equiv_regs): Don't create an equivalence for insns that
1243         may trap where the register def does not dominate the use.
1245 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
1247         PR rtl-optimization/78127
1248         * lra.c (lra): Call lra_eliminate before finish the loop after
1249         lra_constraint.
1251 2017-02-16  Richard Biener  <rguenther@suse.de>
1253         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
1254         isl/isl_val.h.
1255         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
1256         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
1257         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
1258         (isl_val_int_from_wi): New function.
1259         (extract_affine_gmp): Rename to ...
1260         (extract_affine_wi): ... this, take a widest_int.
1261         (extract_affine_int): Just wrap extract_affine_wi.
1262         (add_param_constraints): Use isl_val_int_from_wi.
1263         (add_loop_constraints): Likewise, and extract_affine_wi.
1265 2017-02-15 Jeff Law  <law@redhat.com>
1267         PR middle-end/79521
1268         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
1269         ira_init_register_move_cost_if_necessary.
1271 2017-02-15  Martin Sebor  <msebor@redhat.com>
1273         PR middle-end/32003
1274         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
1275         removed in a prior commit.
1277 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
1279         PR tree-optimization/79347
1280         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
1281         counters during peeling.
1283 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
1285         * Makefile.in (site.exp): Remove "set ISLVER".
1287 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
1289         PR target/79487
1290         * real.c (real_from_integer): Call real_convert even for decimal.
1292 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1294         PR target/79421
1295         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
1297 2017-02-14  Andrew Pinski  <apinski@cavium.com>
1299         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
1300         cores and change the partno/implementer to be correct.
1301         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
1302         the 'B" as the implementer.
1303         * config/aarch64/aarch64-tune.md: Regenerate.
1305 2017-02-14  Carl Love  <cel@us.ibm.com>
1307         * config/rs6000/rs6000.c: Add case statement entry to make the
1308         xvcvuxdsp built-in argument unsigned.
1309         * config/rs6000/vsx.md: Fix the source and return operand types so they
1310         match the instruction definitions from the ISA document.  Fix typo
1311         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
1312         statement.
1314 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
1316         PR target/79282
1317         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
1318         member early_clobber_alts.
1319         * lra-lives.c (reg_early_clobber_p): New.
1320         (process_bb_lives): Use it.
1321         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
1322         (debug_operand_data): Initialize early_clobber_alts.
1323         (setup_operand_alternative): Set up early_clobber_alts.
1324         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
1325         alternatives to new_insn_reg.
1326         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
1327         it.
1328         (lra_update_insn_regno_info): Pass the new arg.
1330 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
1332         PR middle-end/79505
1333         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
1334         (new_oacc_loop_raw): Don't clear already cleared fields.
1336         PR target/79481
1337         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
1338         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
1339         _mm512_prefetch_i64gather_ps): New inline functions and macros.
1341 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
1343         PR target/79495
1344         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
1346 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
1348         PR target/79498
1349         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
1350         the extra instruction to the right place to store 128-bit constant
1351         when needed.
1353 2017-02-14  Martin Sebor  <msebor@redhat.com>
1355         PR middle-end/79448
1356         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
1357           warning for strings of unknown length.
1359 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
1361         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
1363 2017-02-14 Jeff Law  <law@redhat.com>
1365         PR target/79404
1366         * ira-costs.c (scan_one_insn): Initialize register move costs
1367         for pseudos seen in USE/CLOBBER insns.
1369         PR tree-optimization/79095
1370         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
1371         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
1372         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
1373         if the operands are known to be not equal, then the resulting range
1374         is ~[0,0].
1375         (intersect_ranges): If the new range is ~[0,0] and the old range is
1376         wide, then prefer ~[0,0].
1377         * tree-vrp.c (overflow_comparison_p_1): New function.
1378         (overflow_comparison_p): New function.
1379         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
1380         if NAME is used in an overflow test.
1381         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
1382         overflow check that can be expressed as an equality test, then adjust
1383         ops to be that equality test.
1385 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1387         * config/s390/s390-builtin-types.def: Remove flags argument.
1388         * config/s390/s390.c (s390_init_builtins): Likewise.
1390 2017-02-14  Martin Liska  <mliska@suse.cz>
1392         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
1393         vector.  Fix trailing white spaces.
1395 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
1397         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
1398         HFmode.
1400 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1402         PR rtl-optimization/68664
1403         * config/arm/arm.c (arm_sched_can_speculate_insn):
1404         New function.  Declare prototype.
1405         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
1407 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1409         PR rtl-optimization/68664
1410         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
1411         New function.
1412         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
1414 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
1416         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
1417         max skip bytes for function, loop and jump.
1419 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1421         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
1422         ABS_EXPR for gimple dump.
1424 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
1426         PR target/79462
1427         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
1429         PR tree-optimization/79408
1430         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
1431         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
1432         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
1433         also if rhs1 is INTEGER_CST.
1435 2017-02-14  Richard Biener  <rguenther@suse.de>
1437         PR middle-end/79432
1438         * tree-into-ssa.c (insert_phi_nodes): When the function can
1439         have abnormal edges rewrite SSA names with broken use-def
1440         dominance out of SSA and register them for PHI insertion.
1442 2017-02-13  Martin Sebor  <msebor@redhat.com>
1444         PR middle-end/79496
1445         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
1446         clearing info.nowrite flag when snprintf size argument is a range.
1448 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
1450         * cprop.c (cprop_jump): Add missing space in string literal.
1451         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
1452         (get_constraint_for_component_ref): Likewise.
1453         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
1454         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
1455         * lra-constraints.c (process_alt_operands): Likewise.
1456         * ipa-inline.c (inline_small_functions): Likewise.
1457         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
1458         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1459         * trans-mem.c (diagnose_tm_1_op): Likewise.
1460         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
1461         (grid_parallel_clauses_gridifiable): Likewise.
1463         * config/nvptx/mkoffload.c (process): Add space in between
1464         , and %d.
1466         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
1467         "MOD4_SSE_REGS" and "ALL_REGS".
1469         * spellcheck.c (test_data): Add , in between "foo" and "food".
1471 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1473         PR target/79449
1474         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
1475         boundary crossing check and subsequent code generation agree.
1477 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1479         * config/aarch64/aarch64.c (has_memory_op): Delete.
1480         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
1481         has_memory_op.
1483 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
1485         PR rtl-optimization/79388
1486         PR rtl-optimization/79450
1487         * combine.c (distribute_notes): When removing TEM_INSN for which
1488         corresponding dest has last value recorded, invalidate that last
1489         value.
1491 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1493         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
1494         of explicit '@'.  Add missing assembly comment marker on branch costs
1495         printout.
1497 2017-02-13  Nathan Sidwell  <nathan@acm.org>
1499         * gengtype-lex.l (<in_struct>): Add '/'.
1501 2017-02-13  Martin Liska  <mliska@suse.cz>
1503         PR c/79471
1504         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
1506 2017-02-13  Richard Biener  <rguenther@suse.de>
1508         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
1509         Remove.
1510         * configure: Re-generate.
1511         * config.in: Likewise.
1512         * graphite-dependences.c: Simplify as if
1513         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
1514         * graphite-isl-ast-to-gimple.c: Likewise.
1515         * graphite-optimize-isl.c: Likewise.
1516         * graphite-poly.c: Likewise.
1517         * graphite-sese-to-poly.c: Likewise.
1518         * graphite.h: Likewise.
1519         * toplev.c: Include isl/version.h and use isl_version () for
1520         printing the ISL version.
1521         * doc/install.texi: Update ISL requirement.
1523 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
1525         * doc/standards.texi (Standards): Update reference to
1526         Objective-C 2.0.
1528 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
1529         
1530         * doc/extend.texi (Named Address Spaces): sourceware.org now
1531         defaults to https.
1532         * doc/install.texi (Binaries): Ditto.
1533         (Specific): Ditto.
1535 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
1537         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
1538         standard terminology "stringize"/"stringizing" throughout.
1539         * doc/cppinternals.texi: Likewise.
1541 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
1543         * doc/extend.texi: Fix some spelling mistakes and typos.
1544         * doc/invoke.texi: Likewise.
1546 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
1548         PR ipa/79224
1549         * params.def (inline-min-speedup) Change from 10 to 8.
1551 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
1553         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
1554         4.5.
1556 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
1558         PR ipa/79224
1559         * ipa-inline-analysis.c (get_minimal_bb): New function.
1560         (record_modified): Use it.
1561         (remap_edge_change_prob): Handle also ancestor functions.
1563 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
1565         * doc/contrib.texi (Contributors): Remove broken link into
1566         the Mauve CVS repository.
1568 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
1570         PR middle-end/79454
1571         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
1572         result computation whenever lhs doesn't have vector mode, not
1573         just when it has BLKmode.
1575 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
1577         * doc/makefile.texi (profiledbootstrap): Refer to the
1578         installation instructions only in textual form.
1580 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1582         PR target/79295
1583         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
1585 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
1587         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
1588         (Specific): Update mingw-w64 reference.
1589         (Binaries): Ditto.
1590         (Specific): Remove broken link to Renesas RX processor.
1592 2017-02-10  Richard Biener  <rguenther@suse.de>
1594         * toplev.c (process_options): Do not mention obsolete graphite
1595         options when printing sorry message about missing graphite support.
1596         Mention -floop-nest-optimize.
1598 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
1600         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
1601         (vtst_p16): Likewise.
1602         (vtstq_p8): Likewise.
1603         (vtstq_p16): Likewise.
1604         (vtst_p64): New.
1605         (vtstq_p64): Likewise.
1606         * config/arm/arm_neon.h (vgetq_lane_p64): New.
1607         (vset_lane_p64): New.
1608         (vsetq_lane_p64): New.
1610 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
1612         PR tree-optimization/79411
1613         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
1614         stmt operands are SSA_NAMEs used in abnormal phis.
1615         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
1616         phis.
1618 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
1620         PR ipa/70795
1621         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
1622         flag if needed.
1624 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
1626         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
1628 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
1630         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
1631         to avoid warning.
1633         PR c/79413
1634         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
1635         not arbitrary TREE_CONSTANT.
1637         PR c/79431
1638         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
1639         "omp declare target link" attribute unless is_global_var.
1640         * omp-offload.c (find_link_var_op): Likewise.
1642 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
1643             Chung-Lin Tang  <cltang@codesourcery.com>
1645         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
1646         OMP_CLAUSE_TILE.
1647         (gimplify_adjust_omp_clauses): Don't delete TILE.
1648         (gimplify_omp_for): Deal with TILE.
1649         * internal-fn.c (expand_GOACC_TILE): New function.
1650         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
1651         (GOACC_TILE): New.
1652         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
1653         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
1654         element fields.
1655         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
1656         avoid DIV for outermost collapse var.
1657         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
1658         Remove out of date comments, fix whitespace.
1659         * omp-general.c (omp_extract_for_data): Deal with tiling.
1660         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
1661         adjust OLF_DIM_BASE value.
1662         (struct omp_for_data): Add tiling field.
1663         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
1664         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
1665         for auto loops.  Remove default auto determining, moved to
1666         oacc_loop_fixed_partitions.
1667         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
1668         stmts, add e_mask field.
1669         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
1670         (oacc_thread_numbers): Use oacc_dim_call.
1671         (oacc_xform_tile): New.
1672         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
1673         (finish_oacc_loop): Adjust for ifns vector.
1674         (oacc_loop_discover_walk): Append loop abstraction sites to list,
1675         add case for GOACC_TILE fns.
1676         (oacc_loop_xform_loop): Delete.
1677         (oacc_loop_process): Iterate over call list directly, and add
1678         handling for GOACC_TILE fns.
1679         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
1680         dump partitioning.
1681         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
1682         vector partitioning to outer loops.  Assign 2 partitions to loops
1683         when available. Add TILE handling.
1684         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
1685         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
1686         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
1687         * tree.c (omp_clause_num_ops): Adjust TILE ops.
1688         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
1690 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
1692         * configure.ac (ACX_BUGURL): Update.
1693         * configure: Regenerate.
1695 2017-02-09  Richard Biener  <rguenther@suse.de>
1697         PR tree-optimization/69823
1698         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
1699         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
1701 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
1703         * config/arc/arc-c.def: Add __NPS400__ definition.
1704         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
1705         (TARGET_NPS400): Define.
1707 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
1709         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
1710         file.
1711         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
1712         pointer, arch_info.
1713         (arc_cpu_types): Fill the arch_info field with a pointer into the
1714         arc_arch_types table.
1715         (arc_selected_cpu): Declare.
1716         * config/arc/arc.c (arc_selected_cpu): Make global.
1717         (arc_selected_arch): Delete.
1718         (arc_base_cpu): Delete.
1719         (arc_override_options): Remove references to deleted variables,
1720         update access to arch information.
1721         (ARC_OPT): Update access to arch information.
1722         (ARC_OPTX): Likewise.
1723         * config/arc/arc.h (arc_base_cpu): Remove declaration.
1724         (TARGET_ARC600): Update access to arch information.
1725         (TARGET_ARC601): Likewise.
1726         (TARGET_ARC700): Likewise.
1727         (TARGET_EM): Likewise.
1728         (TARGET_HS): Likewise.
1729         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
1730         information.
1732 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
1734         PR target/78604
1735         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
1736         condition/operands for integer GE/LE/GEU/LEU operations.
1738 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
1740         PR translation/79397
1741         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
1742         of AltiVec.
1744 2017-02-08  Martin Jambor  <mjambor@suse.cz>
1746         PR ipa/79375
1747         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
1748         whether allocation happened.
1749         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
1750         nothing was allocated.
1752 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
1754         PR tree-optimization/79408
1755         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
1756         constant, but SSA_NAME with a known integer range, use the minimum
1757         of that range instead of op1 to determine if modulo can be replaced
1758         with its first operand.
1760 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1762         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
1764 2017-02-08  Richard Biener  <rguenther@suse.de>
1766         PR tree-optimization/71824
1767         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
1768         Check all loops contained in the merged region.
1770 2017-02-07  Andrew Pinski  <apinski@cavium.com>
1772         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
1774 2017-02-07  Andrew Pinski  <apinski@cavium.com>
1776         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
1777         (thunderxt88): Likewise.
1778         (thunderxt81): Disable LSE and change v8.1 to v8.
1779         (thunderxt83): Likewise.
1781 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
1782             Richard Biener  <rguenther@suse.de>
1784         PR middle-end/79399
1785         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
1786         type from int to size_t.
1787         * ira-costs.c (struct_costs_size): Change type from int to size_t.
1789 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
1791         PR rtl-optimization/79386
1792         * cprop.c (bypass_conditional_jumps): Initialize
1793         bypass_last_basic_block already before splitting bbs after
1794         unconditional traps...
1795         (bypass_conditional_jumps): ... rather than here.
1797         PR target/79299
1798         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
1799         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
1800         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
1801         fix -masm=intel patterns.
1803 2017-02-07  Richard Biener  <rguenther@suse.de>
1805         PR tree-optimization/79256
1806         PR middle-end/79278
1807         * builtins.c (get_object_alignment_2): Use min_align_of_type
1808         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
1809         and ADJUST_FIELD_ALIGN.
1811         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
1812         type parameter.
1813         * doc/tm.texi: Regenerate.
1814         * stor-layout.c (layout_decl): Adjust.
1815         (update_alignment_for_field): Likewise.
1816         (place_field): Likewise.
1817         (min_align_of_type): Likewise.
1818         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
1819         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
1820         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
1821         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
1822         * config/frv/frv.c (frv_adjust_field_align): Likewise.
1823         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
1824         * config/i386/i386.c (x86_field_alignment): Likewise.
1825         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
1826         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
1827         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
1828         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
1829         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
1830         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
1831          Likewise.
1833         Revert
1834         2017-01-30  Richard Biener  <rguenther@suse.de>
1836         PR tree-optimization/79256
1837         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
1838         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
1839         alignment on TYPE.
1841 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
1843         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
1844         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
1845         builtins to SImode and emit a zero-extend, if necessary.
1847 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
1849         * docs/invoke.texi (RISC-V Options): Alphabetize.
1851 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
1853         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
1854         options.
1856 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
1858         * config/riscv/riscv.c: New file.
1859         * gcc/common/config/riscv/riscv-common.c: Likewise.
1860         * config.gcc: Likewise.
1861         * config/riscv/constraints.md: Likewise.
1862         * config/riscv/elf.h: Likewise.
1863         * config/riscv/generic.md: Likewise.
1864         * config/riscv/linux.h: Likewise.
1865         * config/riscv/multilib-generator: Likewise.
1866         * config/riscv/peephole.md: Likewise.
1867         * config/riscv/pic.md: Likewise.
1868         * config/riscv/predicates.md: Likewise.
1869         * config/riscv/riscv-builtins.c: Likewise.
1870         * config/riscv/riscv-c.c: Likewise.
1871         * config/riscv/riscv-ftypes.def: Likewise.
1872         * config/riscv/riscv-modes.def: Likewise.
1873         * config/riscv/riscv-opts.h: Likewise.
1874         * config/riscv/riscv-protos.h: Likewise.
1875         * config/riscv/riscv.h: Likewise.
1876         * config/riscv/riscv.md: Likewise.
1877         * config/riscv/riscv.opt: Likewise.
1878         * config/riscv/sync.md: Likewise.
1879         * config/riscv/t-elf-multilib: Likewise.
1880         * config/riscv/t-linux: Likewise.
1881         * config/riscv/t-linux-multilib: Likewise.
1882         * config/riscv/t-riscv: Likewise.
1883         * configure.ac: Likewise.
1884         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
1885         Waterman as RISC-V maintainers.
1886         * doc/install.texi: Add RISC-V entries.
1887         * doc/invoke.texi: Add RISC-V options section.
1888         * doc/md.texi: Add RISC-V constraints section.
1889         * configure: Regenerated.
1891 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1893         PR target/66144
1894         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
1895         false values to be constant vectors with all 0 or all 1 bits set.
1896         (vcondu<mode><mode>): Likewise.
1897         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
1898         predicate.
1899         (fpmask_comparison_operator): Update comment.
1900         (vecint_comparison_operator): New predicate.
1901         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
1902         vector conditionals when the true and false values are constant
1903         vectors with all 0 bits or all 1 bits set.
1905 2017-02-06  Martin Sebor  <msebor@redhat.com>
1907         PR  tree-optimization/79376
1908         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
1910 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
1912         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
1913         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
1914         to simplify split condition.
1916 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
1918         * omp-expand.c (oxpand_omp_atomic_fetch_op,
1919         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
1920         false.
1922 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
1924         PR rtl-optimization/68664
1925         * target.def (can_speculate_insn): New hook.
1926         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
1927         * doc/tm.texi: Regenerate.
1928         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
1929         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
1930         (rs6000_sched_can_speculate_insn): New function.
1932 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
1934         PR tree-optimization/79284
1935         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
1936         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
1937         vectorizable_mask_load_store, vectorizable_operation,
1938         vect_is_simple_cond, get_same_sized_vectype): Use it instead
1939         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
1940         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
1941         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
1942         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1943         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1944         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
1945         is_gimple_assign (stmt).  Replace another such test with
1946         is_gimple_assign (stmt).
1948 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
1950         PR target/78883
1951         * config/avr/avr.c (rtl-iter.h): Include it.
1952         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
1953         (avr_legitimate_combined_insn): ...and implementation.
1955 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1957         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
1958         * config/s390/s390.c (s390_const_operand_ok)
1959         (s390_canonicalize_comparison, s390_extract_part)
1960         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
1961         (s390_contiguous_bitmask_p, s390_rtx_costs)
1962         (legitimize_pic_address): Likewise.
1963         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
1964         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
1965         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
1966         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
1967         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
1969 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
1971         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
1972         REGNO($0) == REGNO($1).
1974 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1976         * config/s390/linux.h(SIZE_TYPE): Add comment.
1978 2017-02-06  Julian Brown  <julian@codesourcery.com>
1979             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
1980             Virendra Pathak  <virendra.pathak@broadcom.com>
1982         * config/aarch64/aarch64-cores.def: Change the scheduler
1983         to Thunderx2t99.
1984         * config/aarch64/aarch64.md: Include thunderx2t99.md.
1985         * config/aarch64/thunderx2t99.md: New file.
1987 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
1989         * doc/standards.texi (Go Language): Update link to language
1990         standard.
1992 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
1994         * tree-eh.c (lower_resx): Sanitize profile.
1995         (cleanup_empty_eh_move_lp): Likewise.
1997 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
1999         PR tree-ssa/79347
2000         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
2001         ELSE_PROB.
2002         * cfgloopmanip.h (loop_version): Update prototype.
2003         * modulo-sched.c (sms_schedule): Update call of loop_version.
2004         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
2005         * tree-parloops.c (gen_parallel_loop): Likewise.
2006         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
2007         * tree-ssa-loop-split.c (split_loop): Likewise.
2008         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
2009         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
2011 2017-02-05  Martin Liska  <mliska@suse.cz>
2013         PR bootstrap/78985
2014         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
2015         variable to NULL.
2016         (print_operand_address): Initialize a struct to zero.
2018 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
2020         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
2021         garbage collector only in textual form.
2023 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
2024         
2025         * doc/extend.texi (x86 specific memory model extensions for
2026         transactional memory): Simplify a phrase.
2028 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
2030         PR target/79353
2031         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
2032         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
2033         (atomic_storedi_1): Likewise.
2035 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
2037         PR tree-optimization/79338
2038         * tree-parloops.c (gather_scalar_reductions): Don't call
2039         vect_analyze_loop_form for loop->inner before destroying loop's
2040         loop_vinfo.
2042 2017-02-03  Martin Sebor  <msebor@redhat.com>
2044         PR tree-optimization/79327
2045         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
2046         when precision has resulted in leading zeros.
2047         (format_integer): Adjust the likely counter to assume an unknown
2048         argument that may be zero is non-zero.
2050 2017-02-03  Jason Merrill  <jason@redhat.com>
2052         PR c++/78689
2053         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
2054         avoid copying non-taken branch.
2056 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
2058         PR tree-optimization/79340
2059         * tree-vect-loop.c (vectorizable_reduction): Release
2060         vec_defs elements after safe_splicing them into other vectors.
2061         Formatting fixes.
2063         PR tree-optimization/79327
2064         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
2065         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
2066         dirtype.
2067         (format_integer): Use wide_int_to_tree instead of build_int_cst
2068         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
2069         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
2070         of shortest and longest sequence.
2072 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
2074         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
2075         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
2077 2017-02-03  Walter Lee  <walt@tilera.com>
2079         PR target/78862
2080         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
2081         after initial stackframe link reg save.
2082         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
2084 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
2086         PR target/79354
2087         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
2088         wu for stxssp alternative.
2090 2017-02-03  Martin Sebor  <msebor@redhat.com>
2092         PR tree-optimization/79352
2093         * gimple-fold.c (get_range_strlen): Add argument.
2094         (get_range_strlen): Change return type to bool.
2095         (get_maxval_strlen): Pass in a dummy argument.
2096         * gimple-fold.h (get_range_strlen): Change return type to bool.
2097         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
2098         * tree.h (array_at_struct_end_p): Add argument.
2099         * tree.c (array_at_struct_end_p): Handle it.
2101 2017-02-03  Martin Liska  <mliska@suse.cz>
2103         PR lto/66295
2104         * multiple_target.c (create_dispatcher_calls): Redirect edge
2105         from a caller of a dispatcher.
2106         (expand_target_clones): Make the clones local.
2107         (ipa_target_clone): Do both target clones and resolvers.
2108         (ipa_dispatcher_calls): Remove the pass.
2109         (pass_dispatcher_calls::gate): Likewise.
2110         (make_pass_dispatcher_calls): Likewise.
2111         * passes.def (pass_target_clone): Put as very first IPA early
2112         pass.
2114 2017-02-03  Martin Liska  <mliska@suse.cz>
2116         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
2117         in case of a function with ifunc attribute.
2119 2017-02-03  Martin Liska  <mliska@suse.cz>
2121         * cgraph.c (cgraph_node::dump): Dump function version info.
2122         * symtab.c (symtab_node::dump_base): Add missing new line.
2124 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
2126         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
2127         (ifcombine_ifandif): Use it.
2129 2017-02-03  Martin Liska  <mliska@suse.cz>
2131         * doc/invoke.texi: Document default value for
2132         use-after-scope-direct-emission-threshold.
2134 2017-02-03  Martin Liska  <mliska@suse.cz>
2136         PR tree-optimization/79339
2137         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
2138         (format_floating): Likewise.
2140 2017-02-03  Martin Liska  <mliska@suse.cz>
2142         PR ipa/79337
2143         * ipa-prop.c (ipa_node_params_t::insert): Remove current
2144         implementation.
2145         (ipa_node_params_t::remove): Likewise.
2146         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
2147         initialization from removed ipa_node_params_t::insert.
2148         (ipa_node_params::~ipa_node_params): Move from removed
2149         ipa_node_params_t::release.
2150         * symbol-summary.h (symbol_summary::m_released): New member.
2151         Do not release a summary twice.  Do not allow to call finalizer
2152         for types of a summary that live in GGC memory.
2154 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
2156         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
2157         cmp_branch fusion.
2159 2017-02-02  Martin Sebor  <msebor@redhat.com>
2161         PR middle-end/79275
2162         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
2163         (format_string): Tighten up the range of output for non-constant
2164         strings and correct the expected range for wide non-constant strings.
2166 2017-02-02  Martin Sebor  <msebor@redhat.com>
2168         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
2170         PR middle-end/32003
2171         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
2172         index.
2173         (-fdump-tree-@var): Add to index and document how to come up
2174         with pass-specific option and dump file names.
2175         (-fdump-passes): Clarify where to look for output.
2177 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
2179         PR middle-end/77445
2180         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
2181         statistics of the analyzed path; allow threading for speed when
2182         any of BBs along the path are optimized for speed.
2184 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
2186         PR middle-end/78468
2187         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
2188         settings of the virtual registers.
2190         Revert again
2191         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2193         * explow.c (get_dynamic_stack_size): Take known alignment of stack
2194         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
2195         needed.
2197 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2199         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
2200         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
2202 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2204         * config/s390/s390.md: Add missing comments with the expanded
2205         mnemonics.
2206         * config/s390/vector.md: Likewise.
2207         * config/s390/vx-builtins.md: Likewise.
2209 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
2211         PR target/79197
2212         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
2213         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
2214         conditions on a single line.
2216 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2218         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
2219         __S390_VX__ to __VX__.
2221 2017-02-01  Andrew Pinski  <apinski@cavium.com>
2223         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
2224         stmt_info to record_stmt_cost.
2225         (vect_get_known_peeling_cost): Pass stmt_info if known to
2226         record_stmt_cost.
2227         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
2228         cpu_vector_cost field into
2229         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
2230         field into vec_int_stmt_cost and vec_fp_stmt_cost.
2231         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
2232         splitting of scalar_stmt_cost and vec_stmt_cost.
2233         (thunderx_vector_cost): Likewise.
2234         (cortexa57_vector_cost): LIkewise.
2235         (exynosm1_vector_cost): Likewise.
2236         (xgene1_vector_cost): Likewise.
2237         (thunderx2t99_vector_cost): Improve after the splitting of the two
2238         fields.
2239         (aarch64_builtin_vectorization_cost): Update for the splitting of
2240         scalar_stmt_cost and vec_stmt_cost.
2242 2017-02-01  Torvald Riegel  <triegel@redhat.com>
2243             Richard Henderson  <rth@redhat.com>
2245         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
2246         conditional on existance of a fast atomic load.
2247         * optabs-query.c (can_atomic_load_p): New function.
2248         * optabs-query.h (can_atomic_load_p): Declare it.
2249         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
2250         no fast atomic load is available for the particular size of access.
2251         (expand_atomic_compare_and_swap): Likewise.
2252         (expand_atomic_load): Likewise.
2253         (expand_atomic_store): Likewise.
2254         (expand_atomic_fetch_op): Likewise.
2255         * testsuite/lib/target-supports.exp
2256         (check_effective_target_sync_int_128): Remove x86 because it provides
2257         no fast atomic load.
2258         (check_effective_target_sync_int_128_runtime): Likewise.
2260 2017-02-01  Richard Biener  <rguenther@suse.de>
2262         * graphite.c: Include tree-vectorizer.h for find_loop_location.
2263         (graphite_transform_loops): Provide opt-info for optimized nests.
2264         * tree-parloop.c (parallelize_loops): Provide opt-info for
2265         parallelized loops.
2267 2017-02-01  Richard Biener  <rguenther@suse.de>
2269         PR middle-end/79315
2270         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
2271         was not set before.
2273 2017-02-01  Richard Biener  <rguenther@suse.de>
2275         PR tree-optimization/71824
2276         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
2277         Verify the loops are valid in the merged SESE region.
2278         (scop_detection::can_represent_loop_1): Check analyzing the
2279         evolution of the number of iterations in the region succeeds.
2281 2017-01-31  Ian Lance Taylor  <iant@golang.org>
2283         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
2284         REG_ARGS_SIZE note to 32-bit push insns and call insn.
2286 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
2288         PR preprocessor/79210
2289         * input.c (get_substring_ranges_for_loc): Replace line_width
2290         assertion with error-handling.
2292 2017-01-31  Richard Biener  <rguenther@suse.de>
2294         PR tree-optimization/77318
2295         * graphite-sese-to-poly.c (extract_affine): Fix assert.
2296         (create_pw_aff_from_tree): Take loop parameter.
2297         (add_condition_to_pbb): Pass loop of the condition to
2298         create_pw_aff_from_tree.
2300 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
2302         * config/s390/s390.c (s390_asan_shadow_offset): New function.
2303         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
2305 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2307         PR target/78597
2308         PR target/79038
2309         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
2310         no longer used.
2311         (convert_int_to_float128): Likewise.
2312         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
2313         (convert_int_to_float128): Likewise.
2314         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
2315         (UNSPEC_IEEE128_CONVERT): Likewise.
2316         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
2317         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
2318         Use local variables for IBM extended format.
2319         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
2320         (fix_trunc<mode>si2_fprs): Likewise.
2321         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
2322         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
2323         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
2324         to know that we can now have integers of all sizes in vector
2325         registers.
2326         (fix<uns>_<mode>di2_hw): Likewise.
2327         (float<uns>_<mode>si2_hw): Likewise.
2328         (fix_<mode>si2_hw): Likewise.
2329         (fixuns_<mode>si2_hw): Likewise.
2330         (float<uns>_<mode>di2_hw): Likewise.
2331         (float_<mode>di2_hw): Likewise.
2332         (float_<mode>si2_hw): Likewise.
2333         (floatuns_<mode>di2_hw): Likewise.
2334         (floatuns_<mode>si2_hw): Likewise.
2335         (xscvqp<su>wz_<mode>): Delete, no longer used.
2336         (xscvqp<su>dz_<mode>): Likewise.
2337         (xscv<su>dqp_<mode>): Likewise.
2338         (ieee128_mfvsrd_64bit): Likewise.
2339         (ieee128_mfvsrd_32bit): Likewise.
2340         (ieee128_mfvsrwz): Likewise.
2341         (ieee128_mtvsrw): Likewise.
2342         (ieee128_mtvsrd_64bit): Likewise.
2343         (ieee128_mtvsrd_32bit): Likewise.
2345 2017-01-31  Martin Liska  <mliska@suse.cz>
2347         PR ipa/79285
2348         * ipa-prop.c (ipa_free_all_node_params): Call release method
2349         instead of ~sumbol_summary to not to trigger double times
2350         dtor of hash_map.
2352 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
2354         PR tree-optimization/71691
2355         * bitmap.h (class auto_bitmap): New.
2356         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
2357         is_maybe_undefined instead of ssa_undefined_value_p.
2359 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2361         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
2362         __S390_ARCH_LEVEL__ to __ARCH__.
2364 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
2366         PR tree-optimization/79267
2367         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
2368         if should_remove_lhs_p is true.
2370 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
2372         PR debug/63238
2373         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
2374         (add_alignment_attribute): New.
2375         (base_type_die): Add alignment attribute.
2376         (subrange_type_die): Likewise.
2377         (modified_type_die): Likewise.
2378         (gen_array_type_die): Likewise.
2379         (gen_descr_array_type_die: Likewise.
2380         (gen_enumeration_type_die): Likewise.
2381         (gen_subprogram_die): Likewise.
2382         (gen_variable_die): Likewise.
2383         (gen_field_die): Likewise.
2384         (gen_ptr_to_mbr_type_die): Likewise.
2385         (gen_struct_or_union_type_die): Likewise.
2386         (gen_subroutine_type_die): Likewise.
2387         (gen_typedef_die): Likewise.
2388         (base_type_cmp): Compare alignment attribute.
2390 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2392         PR target/79170
2393         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
2394         (setb_unsigned) New pattern for setb with CCUNS.
2395         * config/rs6000/rs6000.c (expand_block_compare): Use a different
2396         subfc./subfe sequence to avoid overflow problems.  Generate a
2397         shorter sequence with cmpld/setb for power9.
2398         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
2399         for generating subfc. instruction.
2400         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
2401         now uses this instruction.
2403 2017-01-30  Ian Lance Taylor  <iant@google.com>
2405         PR debug/79289
2406         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
2407         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
2409 2017-01-30  Martin Sebor  <msebor@redhat.com>
2411         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
2412         Move constant to the right of a relational operator.
2413         (get_mpfr_format_length, format_character, format_string): Ditto.
2414         (should_warn_p, maybe_warn): Same.
2416         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
2418 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
2420         PR lto/79061
2421         * asan.c (get_translation_unit_decl): Remove function.
2422         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
2424 2017-01-30  Martin Liska  <mliska@suse.cz>
2426         PR gcov-profile/79259
2427         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
2428         -fprofile-generate.
2430 2017-01-30  Martin Liska  <mliska@suse.cz>
2432         PR bootstrap/78985
2433         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
2434         Initialize variables with NULL value.
2436 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
2438         PR target/79260
2439         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
2440         tm_p_file.
2441         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
2443 2017-01-30  Richard Biener  <rguenther@suse.de>
2445         PR tree-optimization/79276
2446         * tree-vrp.c (process_assert_insertions): Properly adjust common
2447         when removing a duplicate.
2449         * gcc.dg/torture/pr79276.c: New testcase.
2451 2017-01-30  Richard Biener  <rguenther@suse.de>
2453         PR tree-optimization/79256
2454         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
2455         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
2456         alignment on TYPE.
2457         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
2459 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2461         PR target/79240
2462         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
2463         ("*r<noxa>sbg_<mode>_sll_bitmask")
2464         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
2465         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
2466         Use contiguous_bitmask_nowrap_operand.
2468 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2470         PR target/79268
2471         * config/rs6000/altivec.h (vec_xl): Revise #define.
2472         (vec_xst): Likewise.
2474 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
2476         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
2478 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
2480         PR rtl-optimization/79194
2481         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
2482         traps before call to bypass_conditional_jumps.
2484 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
2486         PR tree-optimization/71374
2487         * lra-constraints.c (check_conflict_input_operands): New.
2488         (match_reload): Use it.
2490 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
2492         PR target/79131
2493         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
2494         account to calculate conflict_set.
2496 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
2498         PR rtl-optimization/78559
2499         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
2500         other_insn in combine.
2502 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
2504         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
2505         uint16_type_node for BT_UINT16.
2507 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
2509         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
2510         "RTL Tests" to menu.
2511         (GIMPLE Tests): New node.
2512         (RTL Tests): New node.
2514 2017-01-27  Richard Biener  <rguenther@suse.de>
2516         PR tree-optimization/79245
2517         * tree-loop-distribution.c (distribute_loop): Apply cost
2518         modeling also to detected patterns.
2520 2017-01-27  Richard Biener  <rguenther@suse.de>
2522         PR tree-optimization/71433
2523         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
2524         (compare_assert_loc): New function.
2525         (process_assert_insertions): Sort and optimize assert locations
2526         to remove duplicates and push down identical assertions on
2527         edges to their destination block.
2529 2017-01-27  Richard Biener  <rguenther@suse.de>
2531         PR tree-optimization/79244
2532         * tree-vrp.c (remove_range_assertions): Forcefully propagate
2533         out SSA names even if abnormal.
2535 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
2537         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
2538         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
2539         instead of MPFR_RNDN.
2541 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
2543         PR target/79239
2544         * arm.c (arm_option_override): Don't call build_target_option_node
2545         until after doing all option overrides.
2546         (arm_valid_target_attribute_tree): Likewise.
2548 2017-01-27  Martin Liska  <mliska@suse.cz>
2550         * doc/invoke.texi (-fprofile-arcs): Document profiling support
2551         for {cd}tors and C++ {cd}tors.
2553 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2555         * config/s390/s390.md ("*setmem_long_and")
2556         ("*setmem_long_and_31z"): Use zero_extend instead of and.
2558 2017-01-26  Martin Sebor  <msebor@redhat.com>
2560         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
2561         of precision.
2563 2017-01-26  Martin Sebor  <msebor@redhat.com>
2565         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
2566         HAVE_DFmode before using XFmode or DFmode.
2567         (parse_directive): Avoid using the z length modifier to avoid
2568         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
2570         PR middle-end/78703
2571         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
2572         to accept adjustment as an array.
2573         (get_int_range): New function.
2574         (struct directive): Make width and prec arrays.
2575         (directive::set_width, directive::set_precision): Call get_int_range.
2576         (format_integer, format_floating): Handle width and precision ranges.
2577         (format_string, parse_directive): Same.
2579 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2581         PR debug/79129
2582         * dwarf2out.c (generate_skeleton_bottom_up): For children with
2583         comdat_type_p set, just clone them, but keep the children in the
2584         original DIE.
2586         PR debug/78835
2587         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
2588         which have direct callers with -fvar-tracking-assignments enabled
2589         in the current TU.
2590         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
2591         inside of type units.
2593 2017-01-26  Martin Sebor  <msebor@redhat.com>
2595         PR middle-end/78703
2596         * gimple-ssa-sprintf.c (struct result_range): Add likely and
2597         unlikely counters.
2598         (struct format_result): Replace number_chars, number_chars_min,
2599         and number_chars_max with a single member of struct result_range.
2600         Remove bounded.
2601         (format_result::operator+=): Adjust.
2602         (struct fmtresult): Remove bounded.  Handle likely and unlikely
2603         counters.
2604         (fmtresult::adjust_for_width_or_precision): New function.
2605         (fmtresult:type_max_digits): New function.
2606         (bytes_remaining): Handle likely and unlikely counters.
2607         (min_bytes_remaining): Remove.
2608         (format_percent): Simplify.
2609         (format_integer, format_floating): Set likely and unlikely counters.
2610         (get_string_length, format_character, format_string): Same.
2611         (format_plain, should_warn_p): New function.
2612         (maybe_warn): Call should_warn_p.  Update diagnostic messages
2613         and handle those for all directives, including plain strings.
2614         (format_directive): Handle likely and unlikely counters.
2615         Remove unnecessary quoting from diagnostics.  Add an informational
2616         note.
2617         (add_bytes): Remove.
2618         (pass_sprintf_length::compute_format_length): Simplify.
2619         (try_substitute_return_value): Handle likely and unlikely counters.
2621 2017-01-26  Carl Love  <cel@us.ibm.com>
2623         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
2624         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
2626 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
2628         PR target/79131
2629         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
2630         endianess for subregs into account.
2631         * lra-constraints.c (lra_constraints): Do risky transformations
2632         always on the first iteration.
2633         * lra-lives.c (check_pseudos_live_through_calls): Add arg
2634         last_call_used_reg_set.
2635         (process_bb_lives): Define and use last_call_used_reg_set.
2636         * lra.c (lra): Always continue after lra_constraints on the first
2637         iteration.
2639 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
2641         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
2642         constant.
2643         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
2645 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2647         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
2648         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
2649         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
2650         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
2651         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
2652         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
2653         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
2654         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
2655         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
2657 2017-01-26  Marek Polacek  <polacek@redhat.com>
2659         PR c/79199
2660         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
2661         for the third operand.
2663 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2665         PR middle-end/79236
2666         * omp-low.c (struct omp_context): Add simt_stmt field.
2667         (scan_omp_for): Return omp_context *.
2668         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
2669         context to the _simt_ SIMD stmt.
2670         (lower_omp_for): For combined SIMD with sibling _simt_
2671         SIMD, make sure to use the same decls in _looptemp_
2672         clauses as in the sibling.
2674 2017-01-26  David Sherwood  <david.sherwood@arm.com>
2676         PR middle-end/79212
2677         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
2678         all contexts.
2680 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
2682         PR target/70465
2683         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
2684         emit fld b; fld a; if possible.
2686         * brig-builtins.def: Update copyright years.
2687         * config/arm/arm_acle_builtins.def: Update copyright years.
2689 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
2691         PR target/79179
2692         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
2693         constraint instead of o for the stxsd instruction.
2695 2017-01-25  Carl Love  <cel@us.ibm.com>
2697         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
2698         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
2700 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
2702         * doc/invoke.texi (C++ Dialect Options): Fix typo.
2704 2017-01-25  Richard Biener  <rguenther@suse.de>
2706         PR tree-optimization/69264
2707         * target.def (vector_alignment_reachable): Improve documentation.
2708         * doc/tm.texi: Regenerate.
2709         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
2710         and add a comment.
2711         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
2712         earlier changes with respect to TYPE_USER_ALIGN.
2713         (vector_alignment_reachable_p): Likewise.  Improve dumping.
2715 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2717         PR target/79145
2718         * config/arm/arm.md (xordi3): Force constant operand into a register
2719         for TARGET_IWMMXT.
2721 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2723         * doc/invoke.texi (-fstore-merging): Correct default optimization
2724         levels at which it is enabled.
2725         (-O): Move -fstore-merging from list to...
2726         (-O2): ... Here.
2728 2017-01-25  Richard Biener  <rguenther@suse.de>
2730         PR debug/78363
2731         * omp-expand.c: Include debug.h.
2732         (expand_omp_taskreg): Make sure to generate early debug before
2733         outlining anything from a function.
2734         (expand_omp_target): Likewise.
2735         (grid_expand_target_grid_body): Likewise.
2737 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
2739         PR lto/79061
2740         * asan.c (get_translation_unit_decl): New function.
2741         (asan_add_global): Extract modules file name from globals
2742         TRANSLATION_UNIT_DECL name.
2744 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
2746         PR target/77439
2747         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
2748         for long calls with APCS frame and VFP.
2750 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
2752         * cfg.c (original_copy_tables_initialized_p): New function.
2753         * cfg.h (original_copy_tables_initialized_p): New decl.
2754         * cfgrtl.c (relink_block_chain): Guard the call to
2755         free_original_copy_tables with a call to
2756         original_copy_tables_initialized_p.
2757         * cgraph.h (symtab_node::native_rtl_p): New decl.
2758         * cgraphunit.c (symtab_node::native_rtl_p): New function.
2759         (symtab_node::needed_p): Don't assert for early assembly output
2760         for __RTL functions.
2761         (cgraph_node::finalize_function): Set "force_output" for __RTL
2762         functions.
2763         (cgraph_node::analyze): Bail out early for __RTL functions.
2764         (analyze_functions): Update assertion to support __RTL functions.
2765         (cgraph_node::expand): Bail out early for __RTL functions.
2766         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
2767         __RTL functions.
2768         * function.h (struct function): Update comment for field
2769         "pass_startwith".
2770         * gimple-expr.c: Include "tree-pass.h".
2771         (gimple_has_body_p): Return false for __RTL functions.
2772         * Makefile.in (OBJS): Add run-rtl-passes.o.
2773         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
2774         accessor.
2775         (gcc::pass_manager::get_clean_slate): New accessor.
2776         * passes.c: Include "insn-addr.h".
2777         (should_skip_pass_p): Add logging.  Update logic for running
2778         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
2779         property-provider override so it is only done for gimple passes.
2780         Don't skip dfinit.
2781         (skip_pass): New function.
2782         (execute_one_pass): Call skip_pass when skipping passes.
2783         * read-md.c (md_reader::read_char): Support filtering
2784         the input to a subset of line numbers.
2785         (md_reader::md_reader): Initialize fields
2786         m_first_line and m_last_line.
2787         (md_reader::read_file_fragment): New function.
2788         * read-md.h (md_reader::read_file_fragment): New decl.
2789         (md_reader::m_first_line): New field.
2790         (md_reader::m_last_line): New field.
2791         * read-rtl-function.c (function_reader::create_function): Only
2792         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
2793         curr_properties.  Set DECL_INITIAL to a dummy block.
2794         (read_rtl_function_body_from_file_range): New function.
2795         * read-rtl-function.h (read_rtl_function_body_from_file_range):
2796         New decl.
2797         * run-rtl-passes.c: New file.
2798         * run-rtl-passes.h: New file.
2800 2017-01-24 Jeff Law  <law@redhat.com>
2802         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
2803         buffer size.
2805 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
2807         PR tree-optimization/79159
2808         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
2809         (record_nonwrapping_iv): Improve boundary using above function if no
2810         value range information.
2812 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
2813             Martin Jambor  <mjambor@suse.cz>
2815         * brig-builtins.def: New file.
2816         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
2817         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
2818         (DEF_HSAIL_SAT_BUILTIN): Likewise.
2819         (DEF_HSAIL_INTR_BUILTIN): Likewise.
2820         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
2821         * builtin-types.def (BT_INT8): New.
2822         (BT_INT16): Likewise.
2823         (BT_UINT8): Likewise.
2824         (BT_UINT16): Likewise.
2825         (BT_FN_ULONG): Likewise.
2826         (BT_FN_UINT_INT): Likewise.
2827         (BT_FN_UINT_ULONG): Likewise.
2828         (BT_FN_UINT_LONG): Likewise.
2829         (BT_FN_UINT_PTR): Likewise.
2830         (BT_FN_ULONG_PTR): Likewise.
2831         (BT_FN_INT8_FLOAT): Likewise.
2832         (BT_FN_INT16_FLOAT): Likewise.
2833         (BT_FN_UINT32_FLOAT): Likewise.
2834         (BT_FN_UINT16_FLOAT): Likewise.
2835         (BT_FN_UINT8_FLOAT): Likewise.
2836         (BT_FN_UINT64_FLOAT): Likewise.
2837         (BT_FN_UINT16_UINT32): Likewise.
2838         (BT_FN_UINT32_UINT16): Likewise.
2839         (BT_FN_UINT16_UINT16_UINT16): Likewise.
2840         (BT_FN_INT_PTR_INT): Likewise.
2841         (BT_FN_UINT_PTR_UINT): Likewise.
2842         (BT_FN_LONG_PTR_LONG): Likewise.
2843         (BT_FN_ULONG_PTR_ULONG): Likewise.
2844         (BT_FN_VOID_UINT64_UINT64): Likewise.
2845         (BT_FN_UINT8_UINT8_UINT8): Likewise.
2846         (BT_FN_INT8_INT8_INT8): Likewise.
2847         (BT_FN_INT16_INT16_INT16): Likewise.
2848         (BT_FN_INT_INT_INT): Likewise.
2849         (BT_FN_UINT_FLOAT_UINT): Likewise.
2850         (BT_FN_FLOAT_UINT_UINT): Likewise.
2851         (BT_FN_ULONG_UINT_UINT): Likewise.
2852         (BT_FN_ULONG_UINT_PTR): Likewise.
2853         (BT_FN_ULONG_ULONG_ULONG): Likewise.
2854         (BT_FN_UINT_UINT_UINT): Likewise.
2855         (BT_FN_VOID_UINT_PTR): Likewise.
2856         (BT_FN_UINT_UINT_PTR: Likewise.
2857         (BT_FN_UINT32_UINT64_PTR): Likewise.
2858         (BT_FN_INT_INT_UINT_UINT): Likewise.
2859         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
2860         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
2861         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
2862         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
2863         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
2864         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
2865         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
2866         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
2867         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
2868         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
2869         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
2870         * doc/frontends.texi: List BRIG FE.
2871         * doc/install.texi (Testing): Add BRIG tesring requirements.
2872         * doc/invoke.texi (Overall Options): Mention BRIG.
2873         * doc/standards.texi (Standards): Doucment BRIG HSA version.
2875 2017-01-24  Richard Biener  <rguenther@suse.de>
2877         PR translation/79208
2878         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
2880 2017-01-24  Martin Jambor  <mjambor@suse.cz>
2882         PR bootstrap/79198
2883         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
2884         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
2885         and known_contexts.
2887 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
2889         PR middle-end/79123
2890         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
2891         casts from signed to unsigned really don't have a range.
2893 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
2895         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
2896         GMP_RNDx for compatiblity.
2898 2017-01-24  Martin Liska  <mliska@suse.cz>
2900         PR bootstrap/79132
2901         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
2902         that would prevent us to call alloca with -1 as argument.
2904 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
2906         * dwarf2out.c (output_compilation_unit_header, output_file_names):
2907         Avoid -Wformat-security warning.
2909 2017-01-23  Andrew Pinski  <apinski@cavium.com>
2911         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
2912         cost table.
2914 2017-01-23  Martin Sebor  <msebor@redhat.com>
2916         PR middle-end/78703
2917         * gimple-ssa-sprintf.c (warn_level): New global.
2918         (format_integer): Use it here and throughout the rest of the file.
2919         Use the same switch to compute sign as base.
2920         (maybe_warn): New function.
2921         (format_directive): Factor out warnings into maybe_warn.
2922         Add debugging output.  Use warn_level.
2923         (add_bytes): Use warn_level.
2924         (pass_sprintf_length::compute_format_length): Add debugging output.
2925         (try_substitute_return_value): Same.
2926         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
2928         PR middle-end/78703
2929         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
2930         (struct fmtresult, format_integer, format_floating): Adjust.
2931         (fmtresult::fmtresult): Set max correctly in two argument ctor.
2932         (get_string_length, format_string,format_directive): Same.
2933         (pass_sprintf_length::compute_format_length): Same.
2934         (try_substitute_return_value): Simplify slightly.
2936         PR middle-end/78703
2937         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
2938         (fmtresult::operator+=): Outlined.
2939         (struct fmtresult): Add ctors.
2940         (struct conversion_spec): Rename...
2941         (struct directive): ...to this.  Add and remove data members.
2942         (directive::set_width, directive::set_precision): New functions.
2943         (format_percent): Use fmtresult ctor.
2944         (get_width_and_precision): Remove.
2945         (format_integer): Make naming changes.  Avoid computing width and
2946         precision.
2947         (format_floating): Same.  Adjust indentation.
2948         (format_character, format_none): New functions.
2949         (format_string): Moved character handling to format_character.
2950         (format_directive): Remove arguments, change return type.
2951         (parse_directive): New function.
2952         (pass_sprintf_length::compute_format_length): Move directive
2953         parsing to parse_directive.
2955 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
2957         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
2958         (assign_assembler_name_if_needed): ... this.
2959         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
2960         (assign_assembler_name_if_needed): ... this.
2961         (free_lang_data_in_cgraph): Adjust callers.
2962         * cgraphunit.c (cgraph_node::analyze): Likewise.
2963         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
2964         Likewise.
2966 2017-01-23  Richard Biener  <rguenther@suse.de>
2968         PR tree-optimization/79088
2969         PR tree-optimization/79188
2970         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
2971         resetting loop bounds after last path deletion.  Reset loop
2972         bounds of the target loop, make code match the comments.
2973         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
2974         Make sure loops need no fixups.
2976 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2978         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
2979         exponent support with double type for first argument.
2980         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
2981         type returned by __builtin_vec_extract_sig,
2982         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
2983         functions from "vector int" to "vector unsigned int" or from
2984         "vector long long int" to "vector unsigned long long int".
2985         Changed type returned by __builtin_vec_extract_exp,
2986         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
2987         functions from "vector int" to "vector unsigned int" or from
2988         "vector long long int" to "vector unsigned long long int".
2989         Changed return type of __builtin_vec_test_data_class,
2990         __builtin_vec_test_data_class_sp, and
2991         __builtin_vec_test_data_class_dp from "vector int" to
2992         "vector bool int" or from "vector long long int" to "vector bool
2993         long long int" and changed second argument type from "unsigned
2994         int" to "int".  Added new overloaded function forms "vector float
2995         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
2996         "vector float __builtin_vec_insert_exp_sp (vector float, vector
2997         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
2998         double, vector unsigned long long int)" and "vector double
2999         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
3000         long int)".  Changed return type of
3001         __builtin_scalar_test_data_class and
3002         __builtin_scalar_test_data_class_sp and
3003         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
3004         int" and changed second argument from "unsigned int" to "int".
3005         Changed type returned by __builtin_scalar_test_neg,
3006         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
3007         from "int" to "bool int".  Added new overloaded function form
3008         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
3009         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
3010         exponent double-precision with floating point first argument.
3011         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
3012         documentation of scalar_test_data_class, scalar_test_neg,
3013         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
3014         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
3015         vec_test_data_class built-in functions to reflect refinements in
3016         their type signatures.
3018 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
3020         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
3021         size of buf.
3022         (aarch64_elf_asm_destructor): Likewise.
3024 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
3026         PR rtl-optimization/78634
3027         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
3028         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
3029         * ifcvt.c (noce_try_cmove): Add missing cost check.
3031         PR rtl-optimization/71724
3032         * combine.c (if_then_else_cond): Look for situations where it is
3033         beneficial to undo the work of one of the recursive calls.
3035 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
3037         PR tree-optimization/70754
3038         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
3039         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
3040         combined stmt before it if not NULL.
3041         (combine_chains): Process refs reversely and compute dominance point
3042         for root ref.
3044 2017-01-23  Martin Liska  <mliska@suse.cz>
3046         PR tree-optimization/79196
3047         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
3048         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
3049         instead of memcmp.
3050         (strlen_optimize_stmt): Call the renamed function.
3052 2017-01-23  Michael Matz  <matz@suse.de>
3054         PR tree-optimization/78384
3055         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
3057 2017-01-23  Richard Biener  <rguenther@suse.de>
3059         PR tree-optimization/79186
3060         * tree-vrp.c (register_new_assert_for): Make sure we've seen
3061         both incoming edges before moving an assert.
3063 2017-01-23  Martin Jambor  <mjambor@suse.cz>
3065         * ipa-prop.c (load_from_param_1): Removed.
3066         (load_from_unmodified_param): Bits from load_from_param_1 put back
3067         here.
3068         (load_from_param): Removed.
3069         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
3070         with stmt.  Reverted back to use of load_from_unmodified_param.
3072 2017-01-23  Martin Jambor  <mjambor@suse.cz>
3074         PR ipa/79108
3075         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
3076         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
3077         field a pointer to garbage collected vector, mark lattices and
3078         ipcp_orig_node with GTY((skip)).
3079         (ipa_get_param_count): Adjust to descriptors being a pointer.
3080         (ipa_get_param): Likewise.
3081         (ipa_get_type): Likewise.
3082         (ipa_get_param_move_cost): Likewise.
3083         (ipa_set_param_used): Likewise.
3084         (ipa_get_controlled_uses): Likewise.
3085         (ipa_set_controlled_uses): Likewise.
3086         (ipa_is_param_used): Likewise.
3087         (ipa_node_params_t): Move into garbage collector.  New methods insert
3088         and remove.
3089         (ipa_node_params_sum): Annotate wth GTY(()).
3090         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
3091         garbage collected.
3092         (ipa_load_from_parm_agg): Adjust declaration.
3093         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
3094         * ipa-profile.c (ipa_profile): Likewise.
3095         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
3096         (ipa_populate_param_decls): Make descriptors parameter garbage
3097         collected.
3098         (ipa_dump_param): Adjust to descriptors being a pointer.
3099         (ipa_alloc_node_params): Likewise.
3100         (ipa_initialize_node_params): Likewise.
3101         (load_from_param_1): Make descriptors parameter garbage collected.
3102         (load_from_unmodified_param): Likewise.
3103         (load_from_param): Likewise.
3104         (ipa_load_from_parm_agg): Likewise.
3105         (ipa_node_params::~ipa_node_params): Removed.
3106         (ipa_free_all_node_params): Remove call to delete operator.
3107         (ipa_node_params_t::insert): New.
3108         (ipa_node_params_t::remove): Likewise.
3109         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
3110         copy known_csts and known_contexts vectors.
3111         (ipa_read_node_info): Adjust to descriptors being a pointer.
3112         (ipcp_modif_dom_walker): Make m_descriptors field garbage
3113         collected.
3114         (ipcp_transform_function): Make descriptors variable garbage
3115         collected.
3117 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
3119         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
3120         * config/i386/avx512dqintrin.h: Ditto.
3121         * config/i386/avx512fintrin.h: Ditto.
3122         * gcc/config/i386/i386.c: Handle new builtins.
3123         * config/i386/i386-builtin.def: Add new builtins.
3124         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
3125         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
3127 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
3128             Martin Liska  <mliska@suse.cz>
3130         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
3131         * asan.c (asan_expand_poison_ifn): Support stores and use
3132         appropriate ASAN report function.
3133         * internal-fn.c (expand_ASAN_POISON_USE): New function.
3134         * internal-fn.def (ASAN_POISON_USE): Declare.
3135         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
3136         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
3137         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
3138         ASAN_POISON calls w/o LHS.
3139         * tree-ssa.c (execute_update_addresses_taken): Create clobber
3140         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
3141         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
3142         * gimplify.c (asan_poison_variables): Add attribute
3143         use_after_scope_memory to variables that really needs to live
3144         in memory.
3145         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
3146         having the attribute.
3148 2017-01-23  Martin Liska  <mliska@suse.cz>
3150         * asan.c (create_asan_shadow_var): New function.
3151         (asan_expand_poison_ifn): Likewise.
3152         * asan.h (asan_expand_poison_ifn): New declaration.
3153         * internal-fn.c (expand_ASAN_POISON): Likewise.
3154         * internal-fn.def (ASAN_POISON): New builtin.
3155         * sanopt.c (pass_sanopt::execute): Expand
3156         asan_expand_poison_ifn.
3157         * tree-inline.c (copy_decl_for_dup_finish): Make function
3158         external.
3159         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
3160         * tree-ssa.c (is_asan_mark_p): New function.
3161         (execute_update_addresses_taken): Rewrite local variables
3162         (identified just by use-after-scope as addressable) into SSA.
3164 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3166         * doc/install.texi (Specific): opensource.apple.com uses https
3167         now. Remove trailing slash.
3169 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
3171         * README.Portability: Remove note on an Irix compatibility issue.
3173 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
3175         * gcov.c (INCLUDE_ALGORITHM): Define.
3176         (INCLUDE_VECTOR): Define.
3177         No longer include <vector> and <algorithm> directly.
3179 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
3181         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
3182         to https.
3183         * doc/invoke.texi (Code Gen Options): Ditto.
3185 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
3187         PR lto/78407
3188         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
3190 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
3192         rtl-optimization/79125
3193         * cprop.c (local_cprop_pass): Handle cases where we make an
3194         unconditional trap.
3196 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
3198         PR target/61729
3199         PR target/77850
3200         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
3201         read from, for big endian.
3203 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
3205         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
3206         register pauth builtins for LP64 only.
3208 2017-01-20  Marek Polacek  <polacek@redhat.com>
3210         PR c/79152
3211         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
3212         non-case labels.
3214 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
3216         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
3217         of safelen status.
3218         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
3219         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
3220         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
3222 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3224         PR target/71270
3225         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
3226         in big-endian mode when they are not a single duplicated value.
3228 2017-01-20  Richard Biener  <rguenther@suse.de>
3230         * BASE-VER: Bump to 7.0.1.
3232 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
3234         * omp-low.c (omplow_simd_context): New struct.  Use it...
3235         (lower_rec_simd_input_clauses): ...here and...
3236         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
3237         references to idx, lane, max_vf, is_simt.
3239 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
3241         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
3242         mcpu=nps400.
3244 2017-01-20  Martin Jambor  <mjambor@suse.cz>
3246         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
3247         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
3248         gt-hsa-common.h.
3249         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
3250         (GTFILES): Rename hsa.c to hsa-common.c.
3251         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
3252         * hsa-dump.c: Likewise.
3253         * hsa-gen.c: Likewise.
3254         * hsa-regalloc.c: Likewise.
3255         * ipa-hsa.c: Likewise.
3256         * omp-expand.c: Likewise.
3257         * omp-low.c: Likewise.
3258         * toplev.c: Likewise.
3260 2017-01-20  Marek Polacek  <polacek@redhat.com>
3262         PR c/64279
3263         * doc/invoke.texi: Document -Wduplicated-branches.
3264         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
3265         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
3266         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
3267         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
3268         return 0 only when not OEP_LEXICOGRAPHIC.
3269         (fold_build_cleanup_point_expr): Use the expression
3270         location when building CLEANUP_POINT_EXPR.
3271         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
3272         * tree.c (add_expr): Handle error_mark_node.
3274 2017-01-20  Martin Liska  <mliska@suse.cz>
3276         PR lto/69188
3277         * tree-profile.c (init_ic_make_global_vars): Do not call
3278         finalize_decl.
3279         (gimple_init_gcov_profiler): Likewise.
3281 2017-01-20  Martin Liska  <mliska@suse.cz>
3283         PR ipa/71190
3284         * cgraph.h (maybe_create_reference): Remove argument and
3285         update comment.
3286         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
3287         argument.
3288         * ipa-cp.c (create_specialized_node): Likewise.
3289         * symtab.c (symtab_node::maybe_create_reference): Handle
3290         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
3292 2017-01-20  Martin Liska  <mliska@suse.cz>
3294         * read-rtl-function.c (function_reader::create_function): Use
3295         build_decl instread of build_decl_stat.
3297 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
3299         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
3300         * config/i386/avx512dqintrin.h: Ditto.
3301         * config/i386/avx512fintrin.h: Ditto.
3302         * config/i386/i386-builtin-types.def: Add new types.
3303         * gcc/config/i386/i386.c: Handle new types.
3304         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
3305         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
3306         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
3307         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
3308         (__builtin_ia32_kshiftridi): New.
3309         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
3311 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
3313         PR target/78875
3314         PR target/79140
3315         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
3316         define to rs6000_init_stack_protect_guard.
3317         (rs6000_init_stack_protect_guard): New function.
3319 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
3320             Yunqiang Su  <yunqiang.su@imgtec.com>
3322         * config.gcc (supported_defaults): Add madd4.
3323         (with_madd4): Add validation.
3324         (all_defaults): Add madd4.
3325         * config/mips/mips.opt (mmadd4): New option.
3326         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
3327         mmadd4.
3328         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
3329         __mips_no_madd4.
3330         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
3331         (ISA_HAS_FUSED_MADD4): Likewise.
3332         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
3333         * gcc/doc/install.texi (--with-madd4): Document the new option.
3335 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
3337         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
3338         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
3339         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
3340         (aarch64_init_pauth_hint_builtins): New.
3341         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
3342         (aarch64_expand_builtin): Expand new builtins.
3344 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
3346         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
3347         * combine-stack-adj.c (no_unhandled_cfa): Handle
3348         REG_CFA_TOGGLE_RA_MANGLE.
3349         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
3350         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
3351         info for return address signing.
3352         (aarch64_expand_epilogue): Likewise.
3354 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
3356         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
3357         * config/aarch64/aarch64-protos.h
3358         (aarch64_return_address_signing_enabled): New declaration.
3359         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
3360         New function.
3361         (aarch64_expand_prologue): Sign return address before it's pushed onto
3362         stack.
3363         (aarch64_expand_epilogue): Authenticate return address fetched from
3364         stack.
3365         (aarch64_override_options): Sanity check for ILP32 and ISA level.
3366         (aarch64_attributes): New function attributes for "sign-return-address".
3367         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
3368         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
3369         ("*do_return"): Generate combined instructions according to key index.
3370         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
3371         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
3372         iterators.
3373         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
3374         * config/aarch64/aarch64.opt (msign-return-address=): New.
3375         * doc/extend.texi (AArch64 Function Attributes): Documents
3376         "sign-return-address=".
3377         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
3379 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
3381         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
3382         overall option summary.
3384 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
3386         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
3387         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
3388         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
3389         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
3391 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3393         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
3394         -mpower9-minmax by default for -mcpu=power9.
3395         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
3396         128-bit floating point.
3398 2017-01-20  Alan Modra  <amodra@gmail.com>
3400         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
3401         optimizing for size.
3403 2017-01-20  Alan Modra  <amodra@gmail.com>
3405         PR target/79144
3406         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
3407         for strcmp and strncmp from corresponding builtin decl.
3409 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
3411         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
3412         instead of i386/rtems-64.h.
3413         * config/i386/rtems-64.h: Remove.
3415 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
3417         PR target/78478
3418         Revert:
3419         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
3421         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
3423 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
3425         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
3426         Change int to HOST_WIDE_INT.
3427         * config/aarch64/aarch64-protos.h
3428         (aarch64_simd_gen_const_vector_dup): Likewise.
3429         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
3431 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
3433         * langhooks-def.h (lhd_type_for_size): New decl.
3434         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
3435         * langhooks.c (lhd_type_for_size): New function, taken from
3436         lto_type_for_size.
3438 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
3440         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
3441         define_bypass for CR latency.
3442         (power9-cracked-alu): Update bypass latency and remove power9-branch.
3443         (power9-alu2): Add define_bypass for CR latency.
3444         (power9-cmp): New.
3445         (power9-mul): Update insn latency.
3446         (power9-mul-compare): Update insn latency, bypass latency and remove
3447         power9-branch.
3449 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3451         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
3452         Delete.
3453         * config/aarch64/aarch64.md
3454         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
3455         aarch64_nopcrelative_literal_loads.
3456         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
3458 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
3460         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
3461         TARGET_LOONGSON_3A.
3462         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
3464 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
3466         PR target/78176
3467         * config.gcc (supported_defaults): Add lxc1-sxc1.
3468         (with_lxc1_sxc1): Add validation.
3469         (all_defaults): Add lxc1-sxc1.
3470         * config/mips/mips.opt (mlxc1-sxc1): New option.
3471         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
3472         mlxc1-sxc1.
3473         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
3474         __mips_no_lxc1_sxc1.
3475         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
3476         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
3477         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
3479 2017-01-19  Richard Biener  <rguenther@suse.de>
3481         PR tree-optimization/72488
3482         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
3483         sure to restore SSA info.
3484         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
3486 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
3488         PR rtl-optimization/79121
3489         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
3490         of the inner type when shifting an extended value.
3492 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
3494         PR lto/78407
3495         * symtab.c (symtab_node::equal_address_to): Fix comparing of
3496         interposable aliases.
3498 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
3500         PR target/78516
3501         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
3502         Use the evmergelohi instruction.
3503         (mov_si<mode>_e500_subreg4_2_le): Likewise.
3504         (mov_sitf_e500_subreg8_2_be): Likewise.
3505         (mov_sitf_e500_subreg12_2_le): Likewise.
3506         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
3507         (mov_si<mode>_e500_subreg4_2_be): Likewise.
3508         (mov_sitf_e500_subreg8_2_le): Likewise.
3509         (mov_sitf_e500_subreg12_2_be): Likewise.
3511 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3513         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
3514         attribute from vecsimple to vecperm.
3515         (altivec_vbpermq2): Likewise.
3517 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3519         PR target/79040
3520         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
3522 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3523         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
3524         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
3525         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
3526         case where N arg is SIZE_MAX.
3527         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
3528         (cmpstrsi): Add pattern.
3530 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3532         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3533         __builtin_vec_revb builtins.
3534         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
3535         built-in functions to support generation of the ISA 3.0 XXBR<x>
3536         vector byte reverse instructions.
3537         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
3538         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
3539         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
3540         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
3541         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
3542         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
3543         (P9V_BUILTIN_VEC_REVB): Likewise.
3544         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
3545         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
3546         (p9_xxbrq_v16qi): Likewise.
3547         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
3548         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
3549         (p9_xxbrh_v8hi): Likewise.
3550         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
3551         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
3552         vec_revb built-in functions.
3554 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
3556         PR rtl-optimization/78952
3557         * config/i386/i386.md (any_extract): New code iterator.
3558         (*insvqi_2): Use any_extract for source operand.
3559         (*insvqi_3): Use any_shiftrt for source operand.
3561 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
3563         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
3564         New function.
3565         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
3567 2017-01-18  Matthias Klose  <doko@ubuntu.com>
3569         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
3571 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3573         * config/rs6000/altivec.h (vec_bperm): Change #define.
3574         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
3575         (altivec_vbpermq2): New define_insn.
3576         (altivec_vbpermd): Likewise.
3577         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
3578         function interface.
3579         (VBPERMD): Likewise.
3580         (VBPERM): New polymorphic function interface.
3581         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
3582         Add entries for P9V_BUILTIN_VEC_VBPERM.
3583         * doc/extend.texi: Add interfaces for vec_bperm.
3585 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3587         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
3588         first letter of error messages.
3589         (s390_resolve_overloaded_builtin): Likewise.
3590         * config/s390/s390.c (s390_expand_builtin): Likewise.
3591         (s390_invalid_arg_for_unprototyped_fn): Likewise.
3592         (s390_valid_target_attribute_inner_p): Likewise.
3593         * config/s390/s390.md ("tabort"): Likewise.
3595 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
3597         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
3598         (ISA_AVOID_DIV_HILO): New macro.
3599         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
3600         (ISA_HAS_DDIV): Likewise.
3602 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
3604         * doc/invoke.texi (fabi-version): Correct number of occurrences.
3606 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
3608         * doc/invoke.texi (fabi-version): Spelling fix.
3610 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
3612         PR c++/70182
3613         * doc/invoke.texi (fabi-version): Mention mangling fix for
3614         operator names.
3616 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
3618         PR c++/77489
3619         * doc/invoke.texi (fabi-version): Document discriminator mangling.
3621 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
3623         PR target/78875
3624         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
3625         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
3626         the new options.
3627         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
3628         flexible settings.
3629         (stack_protect_test): Ditto.
3630         * config/rs6000/rs6000.opt (mstack-protector-guard=,
3631         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
3632         options.
3633         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
3634         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
3635         -mstack-protector-guard-offset=.
3636         (RS/6000 and PowerPC Options): Ditto.
3638 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
3640         * config/i386/i386.h (MASK_CLASS_P): New define.
3641         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
3642         there are no registers from different register sets also when
3643         mask registers are used.  Update function comment.
3644         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
3645         to (*k/*r) and (*k/*km) alternatives.
3647 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
3649         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
3650         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
3651         (EH_RETURN_HANDLER_RTX): New define.
3652         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
3653         Force frame pointer in EH return functions.
3654         (aarch64_expand_epilogue): Add barrier for eh_return.
3655         (aarch64_final_eh_return_addr): Remove.
3656         (aarch64_eh_return_handler_rtx): New function.
3657         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
3658         Remove.
3659         (aarch64_eh_return_handler_rtx): New prototype.
3661 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3663         * config/rs6000/altivec.h (vec_rlmi): New #define.
3664         (vec_vrlnm): Likewise.
3665         (vec_rlnm): Likewise.
3666         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
3667         (UNSPEC_VRLNM): Likewise.
3668         (VIlong): New mode iterator.
3669         (altivec_vrl<VI_char>mi): New define_insn.
3670         (altivec_vrl<VI_char>nm): Likewise.
3671         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
3672         function entry.
3673         (VRLDNM): Likewise.
3674         (RLNM): New polymorphic function entry.
3675         (VRLWMI): New monomorphic function entry.
3676         (VRLDMI): Likewise.
3677         (RLMI): New polymorphic function entry.
3678         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
3679         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
3680         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
3681         vec_vrlnm.
3683 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3685         PR debug/78839
3686         * dwarf2out.c (field_byte_offset): Restore the
3687         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
3688         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
3689         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
3690         of build2 + fold.
3692 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
3694         PR ada/67205
3695         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
3697 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3699         PR debug/71669
3700         * dwarf2out.c (add_data_member_location_attribute): For constant
3701         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
3702         instead of DW_AT_data_member_location, DW_AT_bit_offset and
3703         DW_AT_byte_size attributes.
3705 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
3707         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
3708         after forcing to constant memory when the code model is medium.
3710 2017-01-17  Julia Koval  <julia.koval@intel.com>
3712         PR target/76731
3713         * config/i386/avx512fintrin.h
3714         (_mm512_i32gather_ps): Change __addr type to void const*.
3715         (_mm512_mask_i32gather_ps): Ditto.
3716         (_mm512_i32gather_pd): Ditto.
3717         (_mm512_mask_i32gather_pd): Ditto.
3718         (_mm512_i64gather_ps): Ditto.
3719         (_mm512_mask_i64gather_ps): Ditto.
3720         (_mm512_i64gather_pd): Ditto.
3721         (_mm512_mask_i64gather_pd): Ditto.
3722         (_mm512_i32gather_epi32): Ditto.
3723         (_mm512_mask_i32gather_epi32): Ditto.
3724         (_mm512_i32gather_epi64): Ditto.
3725         (_mm512_mask_i32gather_epi64): Ditto.
3726         (_mm512_i64gather_epi32): Ditto.
3727         (_mm512_mask_i64gather_epi32): Ditto.
3728         (_mm512_i64gather_epi64): Ditto.
3729         (_mm512_mask_i64gather_epi64): Ditto.
3730         (_mm512_i32scatter_ps): Change __addr type to void*.
3731         (_mm512_mask_i32scatter_ps): Ditto.
3732         (_mm512_i32scatter_pd): Ditto.
3733         (_mm512_mask_i32scatter_pd): Ditto.
3734         (_mm512_i64scatter_ps): Ditto.
3735         (_mm512_mask_i64scatter_ps): Ditto.
3736         (_mm512_i64scatter_pd): Ditto.
3737         (_mm512_mask_i64scatter_pd): Ditto.
3738         (_mm512_i32scatter_epi32): Ditto.
3739         (_mm512_mask_i32scatter_epi32): Ditto.
3740         (_mm512_i32scatter_epi64): Ditto.
3741         (_mm512_mask_i32scatter_epi64): Ditto.
3742         (_mm512_i64scatter_epi32): Ditto.
3743         (_mm512_mask_i64scatter_epi32): Ditto.
3744         (_mm512_i64scatter_epi64): Ditto.
3745         (_mm512_mask_i64scatter_epi64): Ditto.
3746         * config/i386/avx512pfintrin.h
3747         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
3748         (_mm512_mask_prefetch_i32gather_ps): Ditto.
3749         (_mm512_mask_prefetch_i64gather_pd): Ditto.
3750         (_mm512_mask_prefetch_i64gather_ps): Ditto.
3751         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
3752         (_mm512_prefetch_i32scatter_ps): Ditto.
3753         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
3754         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
3755         (_mm512_prefetch_i64scatter_pd): Ditto.
3756         (_mm512_prefetch_i64scatter_ps): Ditto.
3757         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
3758         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
3759         * config/i386/avx512vlintrin.h
3760         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
3761         (_mm_mmask_i32gather_ps): Ditto.
3762         (_mm256_mmask_i32gather_pd): Ditto.
3763         (_mm_mmask_i32gather_pd): Ditto.
3764         (_mm256_mmask_i64gather_ps): Ditto.
3765         (_mm_mmask_i64gather_ps): Ditto.
3766         (_mm256_mmask_i64gather_pd): Ditto.
3767         (_mm_mmask_i64gather_pd): Ditto.
3768         (_mm256_mmask_i32gather_epi32): Ditto.
3769         (_mm_mmask_i32gather_epi32): Ditto.
3770         (_mm256_mmask_i32gather_epi64): Ditto.
3771         (_mm_mmask_i32gather_epi64): Ditto.
3772         (_mm256_mmask_i64gather_epi32): Ditto.
3773         (_mm_mmask_i64gather_epi32): Ditto.
3774         (_mm256_mmask_i64gather_epi64): Ditto.
3775         (_mm_mmask_i64gather_epi64): Ditto.
3776         (_mm256_i32scatter_ps): Change __addr type to void*.
3777         (_mm256_mask_i32scatter_ps): Ditto.
3778         (_mm_i32scatter_ps): Ditto.
3779         (_mm_mask_i32scatter_ps): Ditto.
3780         (_mm256_i32scatter_pd): Ditto.
3781         (_mm256_mask_i32scatter_pd): Ditto.
3782         (_mm_i32scatter_pd): Ditto.
3783         (_mm_mask_i32scatter_pd): Ditto.
3784         (_mm256_i64scatter_ps): Ditto.
3785         (_mm256_mask_i64scatter_ps): Ditto.
3786         (_mm_i64scatter_ps): Ditto.
3787         (_mm_mask_i64scatter_ps): Ditto.
3788         (_mm256_i64scatter_pd): Ditto.
3789         (_mm256_mask_i64scatter_pd): Ditto.
3790         (_mm_i64scatter_pd): Ditto.
3791         (_mm_mask_i64scatter_pd): Ditto.
3792         (_mm256_i32scatter_epi32): Ditto.
3793         (_mm256_mask_i32scatter_epi32): Ditto.
3794         (_mm_i32scatter_epi32): Ditto.
3795         (_mm_mask_i32scatter_epi32): Ditto.
3796         (_mm256_i32scatter_epi64): Ditto.
3797         (_mm256_mask_i32scatter_epi64): Ditto.
3798         (_mm_i32scatter_epi64): Ditto.
3799         (_mm_mask_i32scatter_epi64): Ditto.
3800         (_mm256_i64scatter_epi32): Ditto.
3801         (_mm256_mask_i64scatter_epi32): Ditto.
3802         (_mm_i64scatter_epi32): Ditto.
3803         (_mm_mask_i64scatter_epi32): Ditto.
3804         (_mm256_i64scatter_epi64): Ditto.
3805         (_mm256_mask_i64scatter_epi64): Ditto.
3806         (_mm_i64scatter_epi64): Ditto.
3807         (_mm_mask_i64scatter_epi64): Ditto.
3808         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
3809         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
3810         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
3811         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
3812         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
3813         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
3814         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
3815         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
3816         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
3817         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
3818         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
3819         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
3820         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
3821         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
3822         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
3823         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
3824         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
3825         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
3826         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
3827         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
3828         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
3829         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
3830         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
3831         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
3832         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
3833         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
3834         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
3835         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
3836         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
3837         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
3838         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
3839         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
3840         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
3841         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
3842         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
3843         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
3844         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
3845         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
3846         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
3847         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
3848         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
3849         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
3850         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
3851         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
3852         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
3853         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
3854         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
3855         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
3856         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
3857         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
3858         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
3859         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
3860         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
3861         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
3862         definitions accordingly.
3864 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
3865             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
3867         PR target/79079
3868         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
3869         gen_lowpart.
3871 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
3873         PR target/79058
3874         * ira-conflicts.c (ira_build_conflicts): Update total conflict
3875         hard regs for inner regno.
3877 2017-01-17  Martin Liska  <mliska@suse.cz>
3879         PR ipa/71207
3880         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
3881         assumption and add comment.
3883 2017-01-17  Nathan Sidwell  <nathan@acm.org>
3885         * ipa-visibility.c (localize_node): New function, broken out of ...
3886         (function_and_variable_visibility): ... here. Call it.
3888 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
3890         PR middle-end/77445
3891         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
3892         correctly set frequency of oudgoing edge.
3893         (duplicate_thread_path): Fix profile updating.
3895 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
3897         PR other/79046
3898         * configure.ac: Add GCC_BASE_VER.
3899         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
3900         version from BASE-VER file.
3901         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
3902         (gcc.o): Depend on $(BASEVER).
3903         * common.opt (dumpfullversion): New option.
3904         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
3905         * doc/invoke.texi: Document -dumpfullversion.
3906         * doc/install.texi: Document --with-gcc-major-version-only.
3907         * configure: Regenerated.
3909 2017-01-17  Richard Biener  <rguenther@suse.de>
3911         PR tree-optimization/71433
3912         * tree-vrp.c (register_new_assert_for): Merge same asserts
3913         on all incoming edges.
3914         (process_assert_insertions_for): Handle insertions at the
3915         beginning of BBs.
3917 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
3919         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
3920         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
3922 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3924         PR target/78633
3925         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
3926         RTL sharing.
3928 2017-01-17  Alan Modra  <amodra@gmail.com>
3930         PR target/79066
3931         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
3932         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
3933         symbolic stack limit when pic.
3935 2017-01-16  Martin Sebor  <msebor@redhat.com>
3937         PR tree-optimization/78608
3938         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
3940 2017-01-16  Jeff Law  <law@redhat.com>
3942         Revert:
3943         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
3944         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
3945         for several include directories that may be relative to sysroot.
3946         * config/i386/x-mingw32 (gplus_includedir): Define.
3947         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
3948         (native_system_includedir): Likewise.
3949         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
3950         override if TARGET_SYSTEM_ROOT is defined.
3951         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
3953         PR tree-optimization/79090
3954         PR tree-optimization/33562
3955         PR tree-optimization/61912
3956         PR tree-optimization/77485
3957         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
3958         and computed trims into the dump file.
3960 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
3962         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
3964 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
3966         PR c/79089
3967         * gimplify.c (gimplify_init_constructor): If want_value and
3968         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
3969         fix.
3971         PR target/79080
3972         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
3973         sequence.  Formatting fixes.
3974         (doloop_optimize): Formatting fixes.
3976         PR driver/49726
3977         * gcc.c (debug_level_greater_than_spec_func): New function.
3978         (static_spec_functions): Add debug-level-gt spec function.
3979         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
3980         !g0.
3981         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
3982         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
3983         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
3984         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
3985         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
3986         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
3988 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
3990         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
3991         QImode fixups to general and mask registers only.
3993 2017-01-16  Carl Love  <cel@us.ibm.com>
3995         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
3996         for built-in functions
3997         vector signed char vec_nabs (vector signed char)
3998         vector signed short vec_nabs (vector signed short)
3999         vector signed int vec_nabs (vector signed int)
4000         vector signed long long vec_nabs (vector signed long long)
4001         vector float vec_nabs (vector float)
4002         vector double vec_nabs (vector double)
4003         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
4004         and NABS overload.
4005         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
4006         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
4007         * doc/extend.texi: Update the documentation file for the new built-in
4008         functions.
4010 2017-01-16  Martin Sebor  <msebor@redhat.com>
4012         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
4013         message.
4015 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4017         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
4018         UNSPEC_VSX__XXSPLTD to require special splat handling.
4020 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
4022         PR bootstrap/78616
4023         * system.h: Poison strndup.
4025 2017-01-16  Alan Modra  <amodra@gmail.com>
4027         PR target/79098
4028         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
4029         use a switch.
4031 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
4033         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
4035 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
4037         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
4038         call recog here.  Assert that INSN_CODE (insn) is non-negative.
4040 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
4042         PR target/72749
4043         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
4044         fallthrough.
4045         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
4046         in the currently scheduled RTL fragment.
4048 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
4050         PR rtl-optimization/78751
4051         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
4052         give up.
4054 2017-01-14  Jeff Law  <law@redhat.com>
4056         PR tree-optimization/79090
4057         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
4058         variable length stores.
4059         (compute_trims): Delete dead assignment to *trim_tail.
4060         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
4061         zero length.
4063 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
4065         PR rtl-optimization/78626
4066         PR rtl-optimization/78727
4067         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
4068         of a block, and split such blocks after everything else is finished.
4070 2017-01-14  Alan Modra  <amodra@gmail.com>
4072         PR target/72749
4073         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
4074         target legitimate_combined_insn.
4075         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
4076         (rs6000_legitimate_combined_insn): New function.
4077         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
4078         all uses.
4079         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
4080         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
4081         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
4083 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
4085         * doc/frontends.texi (G++ and GCC): Remove references to Java.
4087 2017-01-13  Jeff Law  <law@redhat.com>
4089         PR tree-optimization/33562
4090         PR tree-optimization/61912
4091         PR tree-optimization/77485
4092         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
4093         a statement.
4094         (delete_dead_assignment): Likewise.
4095         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
4096         statement to delete_dead_call and delete_dead_assignment.
4098 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
4100         PR c/78304
4101         * substring-locations.c (format_warning_va): Strengthen case 1 so
4102         that both endpoints of the substring must be within the format
4103         range for just the substring to be printed.
4105 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
4107         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
4108         * config/i386/i386.c (ix86_target_string): Add missing options
4109         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
4110         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
4111         flags_other and ix86_target_other to flags2_other.  Display unknown
4112         isa2 options.
4113         (ix86_valid_target_attribute_inner_p): Add missing options and
4114         reorder options by implied ISAs, as in ix86_target_string.
4116 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4118         * hash-table.h (hash_table::too_empty_p): New function.
4119         (hash_table::expand): Use it.
4120         (hash_table::traverse): Likewise.
4121         (hash_table::empty_slot): Use sizeof (value_type) instead of
4122         sizeof (PTR) to convert bytes to elements.  Shrink the table
4123         if the current size is excessive for the current number of
4124         elements.
4126 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
4128         * ira-costs.c (record_reg_classes): Break from the inner loop
4129         early once alt_fail is known to be true.  Update outer loop
4130         handling accordingly.
4132 2017-01-13  Jeff Law  <law@redhat.com>
4134         * tree-ssa-dse.c (decrement_count): New function.
4135         (increment_start_addr, maybe_trim_memstar_call): Likewise.
4136         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
4137         when we know the partially dead statement is a mem* function.
4139         PR tree-optimization/61912
4140         PR tree-optimization/77485
4141         * tree-ssa-dse.c: Include expr.h.
4142         (maybe_trim_constructor_store): New function.
4143         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
4145         PR tree-optimization/33562
4146         PR tree-optimization/61912
4147         PR tree-optimization/77485
4148         * doc/invoke.texi: Document new dse-max-object-size param.
4149         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
4150         * tree-ssa-dse.c: Include params.h.
4151         (dse_store_status): New enum.
4152         (initialize_ao_ref_for_dse): New, partially extracted from
4153         dse_optimize_stmt.
4154         (valid_ao_ref_for_dse, normalize_ref): New.
4155         (setup_live_bytes_from_ref, compute_trims): Likewise.
4156         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
4157         (maybe_trim_partially_dead_store): Likewise.
4158         (maybe_trim_complex_store): Likewise.
4159         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
4160         Track what bytes live from the original store.  Return tri-state
4161         for dead, partially dead or live.
4162         (dse_dom_walker): Add constructor, destructor and new private members.
4163         (delete_dead_call, delete_dead_assignment): New extracted from
4164         dse_optimize_stmt.
4165         (dse_optimize_stmt): Make a member of dse_dom_walker.
4166         Use initialize_ao_ref_for_dse.
4168         PR tree-optimization/33562
4169         PR tree-optimization/61912
4170         PR tree-optimization/77485
4171         * sbitmap.h (bitmap_count_bits): Prototype.
4172         (bitmap_clear_range, bitmap_set_range): Likewise.
4173         * sbitmap.c (bitmap_clear_range): New function.
4174         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
4176 2017-01-13  Martin Liska  <mliska@suse.cz>
4178         PR ipa/79043
4179         * function.c (set_cfun): Add new argument force.
4180         * function.h (set_cfun): Likewise.
4181         * ipa-inline-transform.c (inline_call): Use the function when
4182         strict alising from is dropped for function we inline to.
4184 2017-01-13  Richard Biener  <rguenther@suse.de>
4186         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
4187         for dumping GIMPLE INTEGER_CSTs.
4189 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4191         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
4192         to 201112L since C++17.
4194 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
4196         PR sanitizer/78887
4197         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
4198         if -fsanitize=kernel-address is present.
4200 2017-01-13  Richard Biener  <rguenther@suse.de>
4202         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
4203         as _Literal ( type ) number in case usual suffixes do not
4204         preserve all information.
4206 2017-01-13  Richard Biener  <rguenther@suse.de>
4208         PR tree-optimization/77283
4209         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
4210         and ssa-iterators.h.
4211         (is_feasible_trace): Implement a cost model based on joiner
4212         PHI node uses.
4214 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4216         PR target/79004
4217         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
4218         char or short to __float128/_Float128 directly.
4220 2017-01-12  Martin Sebor  <msebor@redhat.com>
4222         to -Wformat-overflow.
4223         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
4224         (min_bytes_remaining): Same.
4225         (get_string_length): Same.
4226         (format_string): Same.
4227         (format_directive): Same.
4228         (add_bytes): Same.
4229         (pass_sprintf_length::handle_gimple_call): Same.
4231 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
4233         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
4234         info.nowrite calls with no lhs that can't throw.  Return bool
4235         whether gsi_remove has been called or not.
4236         (pass_sprintf_length::handle_gimple_call): Return bool whether
4237         try_substitute_return_value called gsi_remove.  Formatting fix.
4238         (pass_sprintf_length::execute): Don't use gsi_remove if
4239         handle_gimple_call returned true.
4241         PR bootstrap/79069
4242         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
4243         be removed due to side-effects, don't remove following barrier nor
4244         turn the successor edge into fallthru edge.
4246 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4248         PR target/79044
4249         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
4250         element-reversing loads and stores as not swappable.
4252 2017-01-12  Nathan Sidwell  <nathan@acm.org>
4253             Nicolai Stange  <nicstange@gmail.com>
4255         * combine.c (try_combine): Don't ignore result of overlap checking
4256         loop.  Combine overlap & asm check into single loop.
4258 2017-01-12  Richard Biener  <rguenther@suse.de>
4260         * tree-pretty-print.c (dump_generic_node): Provide -gimple
4261         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
4263 2017-01-12  Richard Biener  <rguenther@suse.de>
4265         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
4266         and TS_TARGET_OPTION directly derive from TS_BASE.
4267         * tree-core.h (tree_optimization_option): Derive from tree_base.
4268         (tree_target_option): Likewise.
4270 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
4272         * config/i386/i386.c (memory_address_length): Increase len
4273         only when rip_relative_addr_p returns false.
4275 2017-01-11  Julia Koval  <julia.koval@intel.com>
4277         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
4278         (OPTION_MASK_ISA_SGX_SET): New.
4279         (ix86_handle_option): Handle OPT_msgx.
4280         * config.gcc: Added sgxintrin.h.
4281         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
4282         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
4283         * config/i386/i386.c (ix86_target_string): Add -msgx.
4284         (PTA_SGX): New.
4285         (ix86_option_override_internal): Handle new options.
4286         (ix86_valid_target_attribute_inner_p): Add sgx.
4287         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
4288         * config/i386/i386.opt: Add msgx.
4289         * config/i386/sgxintrin.h: New file.
4290         * config/i386/x86intrin.h: Add sgxintrin.h.
4292 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
4294         PR c++/71537
4295         * fold-const.c (maybe_nonzero_address): Return 1 for function
4296         local objects.
4297         (tree_single_nonzero_warnv_p): Don't handle function local objects
4298         here.
4300         PR c++/72813
4301         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
4302         of c-header.
4304 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
4306         PR driver/78877
4307         * opts.c: Include "spellcheck.h"
4308         (struct string_fragment): New struct.
4309         (struct edit_distance_traits<const string_fragment &>): New
4310         struct.
4311         (get_closest_sanitizer_option): New function.
4312         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
4314 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
4316         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
4317         by 12.
4318         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
4319         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
4320         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
4321         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
4322         for initial die_offset if dwarf_split_debug_info.
4323         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
4324         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
4325         fields.
4326         (output_skeleton_debug_sections): Formatting fix.  Use
4327         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
4328         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
4330 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
4332         * config/arm/cortex-a53.md: Add bypasses for
4333         cortex_a53_r2f_cvt.
4334         (cortex_a53_r2f): Only use for transfers.
4335         (cortex_a53_f2r): Likewise.
4336         (cortex_a53_r2f_cvt): Add reservation for conversions.
4337         (cortex_a53_f2r_cvt): Likewise.
4339 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
4341         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
4342         to all inlined functions, change static to extern.
4344 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
4346         PR target/78253
4347         * config/arm/arm.c (legitimize_pic_address): Handle reference to
4348         weak symbol.
4349         (arm_assemble_integer): Likewise.
4351 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
4353         * config.gcc: Use new awk script to check CPU, FPU and architecture
4354         parameters for --with-... options.
4355         * config/arm/parsecpu.awk: New file
4356         * config/arm/arm-cpus.in: New file.
4357         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
4358         files.
4359         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
4360         files.
4361         * config/arm/t-arm: Update dependency rules.
4362         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
4363         of processing .def files.
4364         * config/arm/genopt.sh: Deleted.
4365         * config/arm/gentune.sh: Deleted.
4366         * config/arm/arm-cores.def: Deleted.
4367         * config/arm/arm-arches.def: Deleted.
4368         * config/arm/arm-fpus.def: Deleted.
4369         * config/arm/arm-tune.md: Regenerated.
4370         * config/arm/arm-tables.opt: Regenerated.
4371         * config/arm/arm-cpu.h: New generated file.
4372         * config/arm/arm-cpu-data.h: New generated file.
4373         * config/arm/arm-cpu-cdata.h: New generated file.
4375 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
4377         PR lto/79042
4378         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
4379         bit.
4380         (input_varpool_node): Unpack dynamically_initialized bit.
4382 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
4384         PR rtl-optimization/79032
4385         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
4386         the alignment of the adjusted memory reference against that of MODE,
4387         instead of the alignment of the original memory reference.
4389 2017-01-11  Martin Jambor  <mjambor@suse.cz>
4391         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
4392         test.
4393         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
4394         decorated functions.
4396 2017-01-11  Richard Biener  <rguenther@suse.de>
4398         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
4399         set range/nonnull info for PHI results.  Do not set it on
4400         stmts marked for removal.
4402 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
4404         * expr.c (store_field): In the bitfield case, fetch the return value
4405         from the registers before applying a single big-endian adjustment.
4406         Always do a final load for a BLKmode value not larger than a word.
4408 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
4410         PR c++/77949
4411         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
4412         that we correctly handle column numbers greater than
4413         LINE_MAP_MAX_COLUMN_NUMBER.
4415 2017-01-10  Martin Sebor  <msebor@redhat.com>
4417         PR middle-end/78245
4418         * gimple-ssa-sprintf.c (get_destination_size): Call
4419         {init,fini}object_sizes.
4420         * tree-object-size.c (addr_object_size): Adjust.
4421         (pass_through_call): Adjust.
4422         (pass_object_sizes::execute): Adjust.
4423         * tree-object-size.h (fini_object_sizes): Declare.
4425 2017-01-10  Martin Sebor  <msebor@redhat.com>
4427         PR tree-optimization/78775
4428         * builtins.c (get_size_range): Move...
4429         * calls.c: ...to here.
4430         (alloc_max_size): Accept zero argument.
4431         (operand_signed_p): Remove.
4432         (maybe_warn_alloc_args_overflow): Call get_size_range.
4433         * calls.h (get_size_range): Declare.
4435 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
4437         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
4438         from TI's devices.csv file as of September 2016.
4439         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
4441 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
4443         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
4444         * doc/invoke.texi: Likewise.
4445         * doc/md.texi: Likewise.
4446         * doc/objc.texi: Likewise.
4448 2017-01-10  Joshua Conner  <joshconner@google.com>
4450         * config/arm/fuchsia-elf.h: New file.
4451         * config/fuchsia.h: New file.
4452         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
4453         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
4454         targets.
4455         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
4457 2016-01-10  Richard Biener  <rguenther@suse.de>
4459         PR tree-optimization/79034
4460         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
4461         Propagate out degenerate PHIs in the joiner.
4463 2017-01-10  Martin Liska  <mliska@suse.cz>
4465         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
4466         (sort_congruence_classes_by_decl_uid): Likewise.
4467         (sort_congruence_class_groups_by_decl_uid): Likewise.
4468         (sem_item_optimizer::merge_classes): Sort class, groups in these
4469         classes and members in the groups by DECL_UID of declarations.
4470         This would make merge operations stable.
4472 2017-01-10  Martin Liska  <mliska@suse.cz>
4474         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
4475         usage of m_classes_vec.
4476         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
4477         (sem_item_optimizer::get_group_by_hash): Likewise.
4478         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
4479         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
4480         (sem_item_optimizer::verify_classes): Likewise.
4481         (sem_item_optimizer::process_cong_reduction): Likewise.
4482         (sem_item_optimizer::dump_cong_classes): Likewise.
4483         (sem_item_optimizer::merge_classes): Likewise.
4484         * ipa-icf.h (congruence_class_hash): Rename from
4485         congruence_class_group_hash.  Remove declaration of m_classes_vec.
4487 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
4489         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
4490         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
4491         * config.gcc: Add avx512vpopcntdqintrin.h.
4492         * config/i386/avx512vpopcntdqintrin.h: New.
4493         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
4494         * config/i386/i386-builtin-types.def: Add new types.
4495         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
4496         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
4497         __builtin_ia32_vpopcountq_v8di_mask): New.
4498         * config/i386/i386-c.c (ix86_target_macros_internal): Define
4499         __AVX512VPOPCNTDQ__.
4500         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
4501         (PTA_AVX512VPOPCNTDQ): Define.
4502         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
4503         TARGET_AVX512VPOPCNTDQ_P): Define.
4504         * config/i386/i386.opt: Add mavx512vpopcntdq.
4505         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
4506         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
4508 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
4510         PR middle-end/77484
4511         * predict.def (PRED_CALL): Set to 67.
4513 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
4515         * expr.c (store_field): In the bitfield case, if the value comes from
4516         a function call and is of an aggregate type returned in registers, do
4517         not modify the field mode; extract the value in all cases if the mode
4518         is BLKmode and the size is not larger than a word.
4520 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
4522         PR target/71017
4523         * config/i386/cpuid.h: Fix undefined behavior.
4525 2017-01-04  Jeff Law  <law@redhat.com>
4527         PR tree-optimization/79007
4528         PR tree-optimization/67955
4529         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
4530         conservative for pt.null when flag_non_call_exceptions is on.
4532 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
4534         PR translation/79019
4535         PR translation/79020
4536         * params.def (PARAM_INLINE_MIN_SPEEDUP,
4537         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
4538         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
4539         in descriptions.
4540         * config/avr/avr.opt (maccumulate-args): Likewise.
4541         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
4542         * common.opt (freport-bug): Likewise.
4543         * cif-code.def (CIF_FINAL_ERROR): Likewise.
4544         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
4545         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
4546         translatable string.
4547         * config/i386/i386.c (function_value_32): Likewise.
4548         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
4549         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
4550         Likewise.
4551         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
4552         * common/config/msp430/msp430-common.c (msp430_handle_option):
4553         Likewise.
4554         * symtab.c (symtab_node::verify_base): Likewise.
4555         * opts.c (set_debug_level): Likewise.
4556         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
4557         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4558         missing whitespace to translatable strings.
4559         * config/avr/avr.md (bswapsi2): Fix typo in comment.
4560         * config/sh/superh.h: Likewise.
4561         * config/i386/xopintrin.h: Likewise.
4562         * config/i386/znver1.md: Likewise.
4563         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
4564         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
4565         * double-int.h (struct double_int): Likewise.
4566         * double-int.c (div_and_round_double): Likewise.
4567         * wide-int.cc: Likewise.
4568         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
4569         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
4570         * cfgcleanup.c (crossjumps_occured): Renamed to ...
4571         (crossjumps_occurred): ... this.
4572         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
4573         Adjust all uses.
4575         PR tree-optimization/78899
4576         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
4577         returning bool return struct loop *, NULL for failure and the new
4578         loop on success.
4579         (versionable_outer_loop_p): Don't version outer loop if it has
4580         dont_vectorized bit set.
4581         (tree_if_conversion): When versioning outer loop, ensure
4582         tree_if_conversion is performed also on the inner loop of the
4583         non-vectorizable outer loop copy.
4584         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
4585         LOOP_VECTORIZED in inner loop of the scalar outer loop and
4586         prevent vectorization of it.
4587         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
4588         the outer loop vectorization of the non-scalar version is attempted
4589         before vectorization of the inner loop in scalar version.  If
4590         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
4591         vectorization of its inner loop.
4592         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
4593         has 2 inner loops, rename also on edges from bb whose single pred
4594         is outer_loop->header.  Fix typo in function comment.
4596 2017-01-09  Martin Sebor  <msebor@redhat.com>
4598         PR bootstrap/79033
4599         * asan.c (asan_emit_stack_protection): Increase local buffer size
4600         to avoid snprintf truncation warning.
4602 2017-01-09  Andrew Pinski  <apinski@cavium.com>
4604         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
4605         to reference thunderx2t99 for the tuning structure
4606         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
4607         Rename to ...
4608         (thunderx2t99_extra_costs): This.
4609         * config/aarch64/aarch64-tune.md: Regenerate.
4610         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
4611         (vulcan_addrcost_table): This.
4612         (vulcan_regmove_cost): Rename to ...
4613         (thunderx2t99_regmove_cost): This.
4614         (vulcan_vector_cost): Rename to ...
4615         (thunderx2t99_vector_cost): this.
4616         (vulcan_branch_cost): Rename to ...
4617         (thunderx2t99_branch_cost): This.
4618         (vulcan_tunings): Rename to ...
4619         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
4620         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
4622 2017-01-09  Martin Jambor  <mjambor@suse.cz>
4624         PR ipa/78365
4625         PR ipa/78599
4626         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
4627         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
4628         (propagate_vr_accross_jump_function): Use the above function for all
4629         value range computations for pass-through jump functions and type
4630         converasion from explicit value range values.
4631         (ipcp_propagate_stage): Do not attempt to deduce types of formal
4632         parameters from TYPE_ARG_TYPES.
4633         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
4634         (ipa_write_node_info): Stream type of the actual argument.
4635         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
4637 2017-01-09  Martin Liska  <mliska@suse.cz>
4639         PR pch/78970
4640         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
4641         (lookup_compiler): Do not show error message with have_E.
4643 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
4645         PR tree-optimization/78938
4646         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
4647         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
4648         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
4649         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
4650         fixes.
4652 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4654         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
4655         is const0_rtx.
4657 2017-01-09  Richard Biener  <rguenther@suse.de>
4659         PR tree-optimization/78997
4660         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
4661         name condition properly.
4663 2017-01-09  Richard Biener  <rguenther@suse.de>
4665         PR debug/79000
4666         * dwarf2out.c (is_cxx): New overload with context.
4667         (is_naming_typedef_decl): Use it.
4669 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
4671         * invoke.texi (Option Summary): Correct spacing in option lists
4672         and add line breaks to fix over-long lines.
4674 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
4676         PR middle-end/17660
4678         * extend.texi (Common Variable Attributes): Add xref to GCC
4679         Internals manual to explain mode attribute keywords.
4681 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
4683         PR other/16519
4684         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
4685         and Preprocessor Options.
4686         (Options for Linking): Document -pthread here....
4687         (RS/6000 and PowerPC Options): ...not here.
4688         (Solaris 2 Options): ...or here.
4689         * doc/cppopts.texi: Document -pthread.
4691 2017-01-08  Martin Sebor  <msebor@redhat.com>
4693         PR middle-end/77708
4694         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
4695         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
4696         New member functions.
4697         (format_directive): Used them.
4698         (add_bytes): Same.
4699         (pass_sprintf_length::handle_gimple_call): Same.
4700         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
4701         to avoid truncation for any argument.
4702         (extract_affine_mul): Same.
4703         * tree.c (get_file_function_name): Same.
4705 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
4707         PR middle-end/77484
4708         * predict.def (PRED_INDIR_CALL): Set to 86.
4710 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
4712         PR preprocessor/54124
4713         * doc/cppopts.texi: Reformat -d subtable to list the full name
4714         of the options.  Add cross-reference to the docs for the general
4715         compiler -d options.
4716         * doc/invoke.texi (Developer Options): Add cross-reference to the
4717         preprocessor-specific -d option documentation.
4719 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
4721         PR preprocessor/13498
4722         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
4723         redudant material, and reflect new command-line options.
4724         (System Headers): Likewise.
4726 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
4728         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
4729         -isystem, and -idirafter.  Copy-edit.
4730         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
4731         default for -ftrack-macro-expansion.  Delete obsolete and
4732         badly-formatted implementation details about -fdebug-cpp output.
4733         * doc/cppwarnopts.texi: Copy-edit.
4735 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
4737         PR c++/72803
4738         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
4739         that the transition from a max line width >= 1<<10 to narrower
4740         lines works correctly.
4742 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
4744         * doc/options.texi (PerFunction): New.
4745         * opt-functions.awk (switch_flags): Map both Optimization and
4746         PerFunction to CL_OPTIMIZATION.
4747         * opth-gen.awk: Test for PerFunction flag along with
4748         Optimization.
4749         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
4750         it only when the latter is present.  Skip those that don't in
4751         the hash function generator.
4752         * common.opt (fvar-tracking): Mark as PerFunction instead of
4753         Optimization.
4754         (fvar-tracking-assignments): Likewise.
4755         (fvar-tracking-assignments-toggle): Likewise.
4756         (fvar-tracking-uninit): Likewise.
4758 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
4760         PR translation/79018
4761         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
4762         the and store.
4764 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
4766         PR target/57583
4767         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
4768         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
4769         TARGET_LONG_JUMP_TABLE_OFFSETS.
4770         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
4771         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
4772         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
4773         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
4774         * config/m68k/m68k.md (tablejump expander): Likewise.
4775         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
4776         TARGET_LONG_JUMP_TABLE_OFFSETS.
4777         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
4778         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
4780 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
4781             David Holsgrove <david.holsgrove@xilinx.com>
4783         * common/config/microblaze/microblaze-common.c
4784         (TARGET_EXCEPT_UNWIND_INFO): Remove.
4785         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
4786         New prototype.
4787         * config/microblaze/microblaze.c (microblaze_must_save_register)
4788         (microblaze_expand_epilogue, microblaze_return_addr): Handle
4789         calls_eh_return.
4790         (microblaze_eh_return): New function.
4791         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
4792         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
4793         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
4794         * config/microblaze/microblaze.md (eh_return): New pattern.
4796 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
4798         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
4799         GCC_DIAGNOSTIC_STRINGIFY): Define.
4801         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
4803 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4805         * config/arm/arm.md (<mcrr>): New.
4806         (<mrrc>): New.
4807         * config/arm/arm.c (arm_arch5te): New.
4808         (arm_option_override): Set arm_arch5te.
4809         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
4810         and mrrc2.
4811         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
4812         (arm_mcrr_qualifiers): ... this. New.
4813         (MRRC_QUALIFIERS): Define to...
4814         (arm_mrrc_qualifiers): ... this. New.
4815         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
4816         __arm_mrrc2): New.
4817         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
4818         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
4819         (MRRCI, mrrc, MRRC): New.
4820         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
4821         VUNSPEC_MRRC2): New.
4823 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4825         * config/arm/arm.md (<mcr>): New.
4826         (<mrc>): New.
4827         * config/arm/arm.c (arm_coproc_builtin_available): Add
4828         support for mcr, mrc, mcr2 and mrc2.
4829         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
4830         (arm_mcr_qualifiers): ... this. New.
4831         (MRC_QUALIFIERS): Define to ...
4832         (arm_mrc_qualifiers): ... this. New.
4833         (MCR_QUALIFIERS): Define to ...
4834         (arm_mcr_qualifiers): ... this. New.
4835         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
4836         __arm_mrc2): New.
4837         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
4838         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
4839         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
4840         VUNSPEC_MRC2): New.
4842 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4844         * config/arm/arm.md (*ldc): New.
4845         (*stc): New.
4846         (<ldc>): New.
4847         (<stc>): New.
4848         * config/arm/arm.c (arm_coproc_builtin_available): Add
4849         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
4850         (arm_coproc_ldc_stc_legitimate_address): New.
4851         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
4852         'qualifier_const_pointer'.
4853         (LDC_QUALIFIERS): Define to...
4854         (arm_ldc_qualifiers): ... this. New.
4855         (STC_QUALIFIERS): Define to...
4856         (arm_stc_qualifiers): ... this. New.
4857         * config/arm/arm-protos.h
4858         (arm_coproc_ldc_stc_legitimate_address): New.
4859         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
4860         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
4861         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
4862         stc2, stcl, stc2l): New.
4863         * config/arm/constraints.md (Uz): New.
4864         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
4865         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
4866         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
4867         VUNSPEC_STC2L): New.
4869 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4871         * config/arm/arm.md (<cdp>): New.
4872         * config/arm/arm.c (neon_const_bounds): Rename this ...
4873         (arm_const_bounds): ... this.
4874         (arm_coproc_builtin_available): New.
4875         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
4876         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
4877         (CDP_QUALIFIERS): Define to...
4878         (arm_cdp_qualifiers): ... this. New.
4879         (void_UP): Define.
4880         (arm_expand_builtin_args): Add case for 6 arguments.
4881         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
4882         (arm_const_bounds): ... this.
4883         (arm_coproc_builtin_available): New.
4884         * config/arm/arm_acle.h (__arm_cdp): New.
4885         (__arm_cdp2): New.
4886         * config/arm/arm_acle_builtins.def (cdp): New.
4887         (cdp2): New.
4888         * config/arm/iterators.md (CDPI,CDP,cdp): New.
4889         * config/arm/neon.md: Rename all 'neon_const_bounds' to
4890         'arm_const_bounds'.
4891         * config/arm/types.md (coproc): New.
4892         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
4893         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
4894         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
4895         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
4897 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4899         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
4900         (UBINOP_QUALIFIERS): New.
4901         (si_UP): Define.
4902         (acle_builtin_data): New. Change comment.
4903         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
4904         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
4905         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
4906         arm_acle_builtins.def.
4907         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
4908         (arm_init_acle_builtins): New.
4909         (CRC32_BUILTIN): Remove.
4910         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
4911         crc32cb, crc32ch and crc32cw.
4912         (arm_init_crc32_builtins): Remove.
4913         (arm_init_builtins): Use arm_init_acle_builtins rather
4914         than arm_init_crc32_builtins.
4915         (arm_expand_acle_builtin): New.
4916         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
4917         * config/arm/arm_acle_builtins.def: New.
4919 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4921         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
4922         (arm_builtin_datum): ... this.
4923         (arm_init_neon_builtin): Rename to ...
4924         (arm_init_builtin): ... this. Add a new parameters PREFIX
4925         and USE_SIG_IN_NAME.
4926         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
4927         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
4928         'arm_builtin_datum'.
4929         (arm_init_vfp_builtins): Likewise.
4930         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
4931         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
4932         (arm_expand_neon_args): Rename to ...
4933         (arm_expand_builtin_args): ... this. Rename builtin_arg
4934         enum values and differentiate between ARG_BUILTIN_MEMORY
4935         and ARG_BUILTIN_NEON_MEMORY.
4936         (arm_expand_neon_builtin_1): Rename to ...
4937         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
4938         values, arm_expand_builtin_args and add bool parameter NEON.
4939         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
4940         (arm_expand_vfp_builtin): Likewise.
4941         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
4943 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
4945         PR middle-end/77484
4946         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
4947         * predict.c (tree_estimate_probability_bb): Reverse direction of
4948         polymorphic call predictor.
4950 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
4952         * passes.c (execute_one_pass): Split out pass-skipping logic into...
4953         (determine_pass_name_match): ...this new function and...
4954         (should_skip_pass_p): ...this new function.
4956 2017-01-06  Nathan Sidwell  <nathan@acm.org>
4958         * ipa-visibility.c (function_and_variable_visibility): Reformat
4959         comments and long lines.  Remove extrneous if.
4960         * symtab.c (symtab_node::make_decl_local): Fix code format.
4961         (symtab_node::set_section_for_node): Fix comment typo.
4963 2017-01-06  Martin Liska  <mliska@suse.cz>
4965         PR bootstrap/79003
4966         * lra-constraints.c: Rename invariant to lra_invariant.
4967         * predict.c (set_even_probabilities): Initialize e to NULL.
4969 2017-01-05  Martin Sebor  <msebor@redhat.com>
4971         PR tree-optimization/78910
4972         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
4973         (format_integer): Correct off-by-one error in the handling
4974         of precision with negative numbers in signed conversions..
4976 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
4978         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
4980 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
4982         PR tree-optimization/71016
4983         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
4984         factor_out_conditional_conversion.  Formatting fix.
4985         (factor_out_conditional_conversion): Add cond_stmt argument.
4986         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
4987         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
4988         Formatting fix.
4990 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
4992         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
4993         read-rtl-function.o, and selftest-rtl.o.
4994         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
4995         (selftest::aarch64_test_loading_full_dump): New function.
4996         (selftest::aarch64_run_selftests): New function.
4997         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
4998         selftest::aarch64_run_selftests.
4999         * config/i386/i386.c
5000         (selftest::ix86_test_loading_dump_fragment_1): New function.
5001         (selftest::ix86_test_loading_call_insn): New function.
5002         (selftest::ix86_test_loading_full_dump): New function.
5003         (selftest::ix86_test_loading_unspec): New function.
5004         (selftest::ix86_run_selftests): Call the new functions.
5005         * emit-rtl.c (maybe_set_max_label_num): New function.
5006         * emit-rtl.h (maybe_set_max_label_num): New decl.
5007         * function.c (instantiate_decls): Guard call to
5008         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
5009         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
5010         "static".
5011         * gensupport.c (gen_reader::gen_reader): Pass "false"
5012         for new "compact" param of rtx_reader.
5013         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
5014         rather than an empty string for NULL strings.
5015         * read-md.c: Potentially include config.h rather than bconfig.h.
5016         Wrap include of errors.h with #ifdef GENERATOR_FILE.
5017         (have_error): New global, copied from errors.c.
5018         (md_reader::read_name): Rename to...
5019         (md_reader::read_name_1): ...this, adding "out_loc" param,
5020         and converting "missing name or number" to returning false, rather
5021         than failing.
5022         (md_reader::read_name): Reimplement in terms of read_name_1.
5023         (md_reader::read_name_or_nil): New function.
5024         (md_reader::read_string): Handle "(nil)" by returning NULL.
5025         (md_reader::md_reader): Add new param "compact".
5026         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
5027         (md_reader::read_file): New method.
5028         * read-md.h (md_reader::md_reader): Add new param "compact".
5029         (md_reader::read_file): New method.
5030         (md_reader::is_compact): New accessor.
5031         (md_reader::read_name): Convert return type from void to file_location.
5032         (md_reader::read_name_or_nil): New decl.
5033         (md_reader::read_name_1): New decl.
5034         (md_reader::m_compact): New field.
5035         (noop_reader::noop_reader): Pass "false" for new "compact" param
5036         of rtx_reader.
5037         (rtx_reader::rtx_reader): Add new "compact" param.
5038         (rtx_reader::read_rtx_operand): Make virtual and convert return
5039         type from void to rtx.
5040         (rtx_reader::read_until): New decl.
5041         (rtx_reader::handle_any_trailing_information): New virtual function.
5042         (rtx_reader::postprocess): New virtual function.
5043         (rtx_reader::finalize_string): New virtual function.
5044         (rtx_reader::m_in_call_function_usage): New field.
5045         (rtx_reader::m_reuse_rtx_by_id): New field.
5046         * read-rtl-function.c: New file.
5047         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
5048         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
5049         (selftest::verify_three_block_rtl_cfg): New decl.
5050         * read-rtl-function.h: New file.
5051         * read-rtl.c: Potentially include config.h rather than bconfig.h.
5052         For host, include function.h, memmodel.h, and emit-rtl.h.
5053         (one_time_initialization): New function.
5054         (struct compact_insn_name): New struct.
5055         (compact_insn_names): New array.
5056         (find_code): Handle insn codes in compact dumps.
5057         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
5058         (bind_subst_iter_and_attr): Likewise.
5059         (add_condition_to_string): Likewise.
5060         (add_condition_to_rtx): Likewise.
5061         (apply_attribute_uses): Likewise.
5062         (add_current_iterators): Likewise.
5063         (apply_iterators): Likewise.
5064         (initialize_iterators): Guard usage of apply_subst_iterator with
5065         #ifdef GENERATOR_FILE.
5066         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
5067         (md_reader::read_mapping): Likewise.
5068         (add_define_attr_for_define_subst): Likewise.
5069         (add_define_subst_attr): Likewise.
5070         (read_subst_mapping): Likewise.
5071         (check_code_iterator): Likewise.
5072         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
5073         logic to...
5074         (one_time_initialization): New function.
5075         (rtx_reader::read_until): New method.
5076         (read_flags): New function.
5077         (parse_reg_note_name): New function.
5078         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
5079         Handle reuse_rtx ids.
5080         Wrap iterator lookup within #ifdef GENERATOR_FILE.
5081         Add parsing support for RTL dumps, mirroring the special-cases in
5082         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
5083         values, and calling handle_any_trailing_information.
5084         (rtx_reader::read_rtx_operand): Convert return type from void
5085         to rtx, returning return_rtx.  Handle case 'e'.  Call
5086         finalize_string on XSTR and XTMPL fields.
5087         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
5088          "(nil)" values were omitted.  Call the postprocess vfunc on the
5089         return_rtx.
5090         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
5091         class ctor.  Initialize m_in_call_function_usage.  Call
5092         one_time_initialization.
5093         * rtl-tests.c (selftest::test_uncond_jump): Call
5094         set_new_first_and_last_insn.
5095         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
5096         * selftest-rtl.c: New file.
5097         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
5098         (selftest::get_insn_by_uid): New decl.
5099         * selftest-run-tests.c (selftest::run_tests): Call
5100         read_rtl_function_c_tests.
5101         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
5102         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
5103         dumps.
5105 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
5107         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
5108         operands in a special way.  Assert that pos+len <= mode precision.
5110 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
5112         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
5113         3 argument Alias with unlimited for the negative form.
5114         (fno-vect-cost-model): Removed.
5116 2017-01-05  Martin Liska  <mliska@suse.cz>
5118         * hsa-gen.c (gen_hsa_divmod): New function.
5119         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
5121 2017-01-05  Martin Liska  <mliska@suse.cz>
5123         PR pch/78970
5124         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
5125         header.
5127 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5129         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
5130         small constant length operands.
5132 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5134         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
5135         between loop iterations.
5137 2017-01-05  Martin Liska  <mliska@suse.cz>
5139         PR sanitizer/78815
5140         * gimplify.c (gimplify_decl_expr): Compare to
5141         asan_poisoned_variables instread of checking flags.
5142         (gimplify_target_expr): Likewise.
5143         (gimplify_expr): Likewise.
5144         (gimplify_function_tree): Conditionally initialize
5145         asan_poisoned_variables.
5147 2017-01-04  Jeff Law  <law@redhat.com>
5149         PR tree-optimizatin/78812
5150         * rtl.h (contains_mem_rtx_p): Prototype.
5151         * ifcvt.c (containts_mem_rtx_p): Move from here to...
5152         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
5153         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
5154         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
5155         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
5157 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5159         * input.c (assert_char_at_range): Default-initialize actual_range.
5161 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5163         * df-scan.c (df_ref_create_structure): Make regno unsigned,
5164         to match the caller.
5166 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5168         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
5169         insns after final jump in test to emit dummy move.
5171 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5173         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
5174         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
5176 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
5178         * multiple_target.c (create_dispatcher_calls): Init e_next.
5179         * tree-ssa-loop-split.c (split_loop): Init border.
5180         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
5181         scalar_type.
5183 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
5185         PR target/71977
5186         PR target/70568
5187         PR target/78823
5188         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
5189         (altivec_register_operand): Do not return true if the operand
5190         contains a SUBREG mixing SImode and SFmode.
5191         (vsx_register_operand): Likewise.
5192         (vsx_reg_sfsubreg_ok): New predicate.
5193         (vfloat_operand): Do not return true if the operand contains a
5194         SUBREG mixing SImode and SFmode.
5195         (vint_operand): Likewise.
5196         (vlogical_operand): Likewise.
5197         (gpc_reg_operand): Likewise.
5198         (int_reg_operand): Likewise.
5199         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
5200         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
5201         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
5202         SImode and SFmode.
5203         (rs6000_emit_move_si_sf_subreg): New helper function.
5204         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
5205         fixup SUBREGs involving SImode and SFmode.
5206         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
5207         numbers for the new peephole2 optimization.
5208         (peephole2 for SFmode unions): New peephole2 to optimize cases in
5209         the GLIBC math library that do AND/IOR/XOR operations on single
5210         precision floating point.
5211         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
5212         target macros to say whether we need to avoid SUBREGs mixing
5213         SImode and SFmode.
5214         (TARGET_ALLOW_SF_SUBREG): Likewise.
5215         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
5216         (UNSPEC_SI_FROM_SF): Likewise.
5217         (iorxor): Change spacing.
5218         (and_ior_xor): New iterator for AND, IOR, and XOR.
5219         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
5220         (movdi_from_sf_zero_ext): Likewise.
5221         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
5222         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
5223         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
5224         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
5225         (fms<mode>4): Likewise.
5226         (fnma<mode>4): Likewise.
5227         (fnms<mode>4): Likewise.
5228         (nfma<mode>4): Likewise.
5229         (nfms<mode>4): Likewise.
5231 2017-01-04  Marek Polacek  <polacek@redhat.com>
5233         PR c++/64767
5234         * doc/invoke.texi: Document -Wpointer-compare.
5236 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5238         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
5239         RejectNegative.
5241         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
5242         descriptions for -gdwarf-5 and emit them as uleb128 instead of
5243         2-byte data.
5245 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5247         PR target/78056
5248         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
5249         documentation of the powerpc_popcntb_ok attribute.
5250         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5251         code to issue warning messages if a requested CPU configuration is
5252         not supported by the binary (assembler and loader) toolchain.
5253         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
5254         made to define a built-in function that has been disabled.
5255         (paired_init_builtins): Add assertion to prevent ICE if attempt is
5256         made to define a built-in function that has been disabled.
5257         (altivec_init_builtins): Add comment explaining why definition
5258         of the DST built-in functions is not preceded by an assertion
5259         check.  Add assertions to prevent ICE if attempts are made to
5260         define an altivec predicate or an abs* built-in function that has
5261         been disabled.
5262         (htm_init_builtins): Add comment explaining why definition of the
5263         htm built-in functions is not preceded by an assertion check.
5265 2017-01-04  Jeff Law  <law@redhat.com>
5267         PR tree-optimizatin/67955
5268         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
5269         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
5270         the points-to solution does not include pt_null.  Use DECL_PT_UID
5271         unconditionally.
5273 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
5275         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
5276         Use gen_int_mode instead of gen_lopwart for const_int operands.
5278 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5280         PR tree-optimization/71563
5281         * match.pd: Simplify X << Y into X if Y is known to be 0 or
5282         out of range value - has low bits known to be zero.
5284 2017-01-04  Alan Modra  <amodra@gmail.com>
5286         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
5287         * configure: Regenerate.
5288         * config.in: Regenerate.
5290 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
5292         PR bootstrap/77569
5293         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
5294         a substring of the message, but strcmp with the whole message.  Ifdef
5295         ENABLE_NLS, translate the message first using dgettext.
5297 2017-01-03  Jeff Law  <law@redhat.com>
5299         PR tree-optimizatin/78856
5300         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
5301         (mark_threaded_blocks): Remove code to truncate thread paths that
5302         cross multiple loop headers.  Instead invalidate the cached loop
5303         iteration information and handle case of a thread path walking
5304         into an irreducible region.
5306 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
5308         PR target/78900
5309         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
5310         assertions.  Add support for doing the signbit if the IEEE 128-bit
5311         floating point value is in a GPR.
5312         * config/rs6000/rs6000.md (Fsignbit): Delete.
5313         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
5314         Update the length attribute if the value is in a GPR.
5315         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
5316         the sign or zero extension instruction, since the value is always 0/1.
5317         (signbit<mode>2_dm2): Delete using <Fsignbit>.
5319         PR target/78953
5320         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
5321         extracting SImode to a GPR register so that we can generate a
5322         store, limit the vector to be in a traditional Altivec register
5323         for the vextuwrx instruction.
5325 2017-01-03  Ian Lance Taylor  <iant@google.com>
5327         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
5329 2017-01-03  Martin Sebor  <msebor@redhat.com>
5331         PR tree-optimization/78696
5332         * gimple-ssa-sprintf.c (format_floating): Correct handling of
5333         precision.  Use MPFR for %f for greater fidelity.  Correct handling
5334         of %g.
5335         (pass_sprintf_length::compute_format_length): Set width and precision
5336         specified by asrerisk to void_node for vararg functions.
5337         (try_substitute_return_value): Adjust dump output.
5339 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
5341         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
5343 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
5345         * doc/invoke.texi (SPARC options): Document -mlra as the default.
5346         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
5347         -mlra/-mno-lra was passed to the compiler.
5349 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
5351         PR rtl-optimization/65618
5352         * emit-rtl.c (try_split): Move initialization of "before" and
5353         "after" to just before the call to emit_insn_after_setloc.
5355 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
5357         * doc/md.texi (Standard Names): Remove reference to Java frontend.
5359 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
5361         * dwarf2out.c (gen_enumeration_type_die): When
5362         -gno-strict-dwarf, add a DW_AT_encoding attribute.
5364 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
5366         PR tree-optimization/78965
5367         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
5368         Change first argument from const call_info & to call_info &.  For %n
5369         set info.nowrite to false.
5371         PR middle-end/78901
5372         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
5373         possibly throwing calls.
5375         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
5376         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
5377         and fns handling, rather than in a separate case SSA_NAME.
5379 2017-01-02  Jeff Law  <law@redhat.com>
5381         * config/darwin-driver.c (darwin_driver_init): Const-correctness
5382         fixes for first_period and second_period variables.
5384 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
5386         PR target/78967
5387         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
5388         (*insvqi_1): New insn pattern.
5389         (*insvqi_1_mem_rex64): Ditto.
5390         (*insvqi_2): Ditto.
5391         (*insvqi_3): Rename from *insvqi.
5393         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
5395 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
5397         * doc/cfg.texi (Edges): Remove reference to Java.
5398         (Maintaining the CFG): Ditto.
5400 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
5402         PR middle-end/77674
5403         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
5404         transparent aliases.
5406 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
5408         PR middle-end/77484
5409         * predict.def (PRED_CALL): Update hitrate.
5410         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
5411         * predict.c (tree_estimate_probability_bb): Split CALL predictor
5412         into direct/indirect/polymorphic variants.
5414 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
5416         Update copyright years.
5418         * gcc.c (process_command): Update copyright notice dates.
5419         * gcov-dump.c (print_version): Ditto.
5420         * gcov.c (print_version): Ditto.
5421         * gcov-tool.c (print_version): Ditto.
5422         * gengtype.c (create_file): Ditto.
5423         * doc/cpp.texi: Bump @copying's copyright year.
5424         * doc/cppinternals.texi: Ditto.
5425         * doc/gcc.texi: Ditto.
5426         * doc/gccint.texi: Ditto.
5427         * doc/gcov.texi: Ditto.
5428         * doc/install.texi: Ditto.
5429         * doc/invoke.texi: Ditto.
5431 Copyright (C) 2017 Free Software Foundation, Inc.
5433 Copying and distribution of this file, with or without modification,
5434 are permitted in any medium without royalty provided the copyright
5435 notice and this notice are preserved.