SHA1H instructions may be scheduled after a SHA1C instruction
[official-gcc.git] / gcc / ChangeLog
blob507320d5757c958d4a990f7c3732b24c666fad8d
1 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
3         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
4         New function.
5         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
7 2017-01-18  Maxim Ostapenko  <m.ostapenko@samsung.com>
9         PR lto/79061
10         * asan.c (get_translation_unit_decl): New function.
11         (asan_add_global): Extract modules file name from globals
12         TRANSLATION_UNIT_DECL in lto mode.
13         * tree.c (build_translation_unit_decl): Add source location for newly
14         built TRANSLATION_UNIT_DECL.
16 2017-01-18  Matthias Klose  <doko@ubuntu.com>
18        * doc/install.texi: Allow default for --with-target-bdw-gc-include.
20 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22         * config/rs6000/altivec.h (vec_bperm): Change #define.
23         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
24         (altivec_vbpermq2): New define_insn.
25         (altivec_vbpermd): Likewise.
26         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
27         function interface.
28         (VBPERMD): Likewise.
29         (VBPERM): New polymorphic function interface.
30         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
31         Add entries for P9V_BUILTIN_VEC_VBPERM.
32         * doc/extend.texi: Add interfaces for vec_bperm.
34 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
37         first letter of error messages.
38         (s390_resolve_overloaded_builtin): Likewise.
39         * config/s390/s390.c (s390_expand_builtin): Likewise.
40         (s390_invalid_arg_for_unprototyped_fn): Likewise.
41         (s390_valid_target_attribute_inner_p): Likewise.
42         * config/s390/s390.md ("tabort"): Likewise.
44 2017-01-18  Jakub Jelinek  <jakub@redhat.com>
46         * gcc.target/s390/target-attribute/tattr-2.c: Add -fno-ipa-icf
47         to dg-options.
48         (p0): Add missing dg-error.
50 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
52         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
53         (ISA_AVOID_DIV_HILO): New macro.
54         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
55         (ISA_HAS_DDIV): Likewise.
57 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
59         * doc/invoke.texi (fabi-version): Correct number of occurrences.
61 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
63         * doc/invoke.texi (fabi-version): Spelling fix.
65 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
67         PR c++/70182
68         * doc/invoke.texi (fabi-version): Mention mangling fix for
69         operator names.
71 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
73         PR c++/77489
74         * doc/invoke.texi (fabi-version): Document discriminator mangling.
76 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
78         PR target/78875
79         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
80         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
81         the new options.
82         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
83         flexible settings.
84         (stack_protect_test): Ditto.
85         * config/rs6000/rs6000.opt (mstack-protector-guard=,
86         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
87         options.
88         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
89         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
90         -mstack-protector-guard-offset=.
91         (RS/6000 and PowerPC Options): Ditto.
93 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
95         * config/i386/i386.h (MASK_CLASS_P): New define.
96         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
97         there are no registers from different register sets also when
98         mask registers are used.  Update function comment.
99         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
100         to (*k/*r) and (*k/*km) alternatives.
102 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
104         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
105         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
106         (EH_RETURN_HANDLER_RTX): New define.
107         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
108         Force frame pointer in EH return functions.
109         (aarch64_expand_epilogue): Add barrier for eh_return.
110         (aarch64_final_eh_return_addr): Remove.
111         (aarch64_eh_return_handler_rtx): New function.
112         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
113         Remove.
114         (aarch64_eh_return_handler_rtx): New prototype.
116 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
118         * config/rs6000/altivec.h (vec_rlmi): New #define.
119         (vec_vrlnm): Likewise.
120         (vec_rlnm): Likewise.
121         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
122         (UNSPEC_VRLNM): Likewise.
123         (VIlong): New mode iterator.
124         (altivec_vrl<VI_char>mi): New define_insn.
125         (altivec_vrl<VI_char>nm): Likewise.
126         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
127         function entry.
128         (VRLDNM): Likewise.
129         (RLNM): New polymorphic function entry.
130         (VRLWMI): New monomorphic function entry.
131         (VRLDMI): Likewise.
132         (RLMI): New polymorphic function entry.
133         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
134         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
135         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
136         vec_vrlnm.
138 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
140         PR debug/78839
141         * dwarf2out.c (field_byte_offset): Restore the
142         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
143         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
144         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
145         of build2 + fold.
147 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
149         PR ada/67205
150         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
152 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
154         PR debug/71669
155         * dwarf2out.c (add_data_member_location_attribute): For constant
156         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
157         instead of DW_AT_data_member_location, DW_AT_bit_offset and
158         DW_AT_byte_size attributes.
160 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
162         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
163         after forcing to constant memory when the code model is medium.
165 2017-01-17  Julia Koval  <julia.koval@intel.com>
167         PR target/76731
168         * config/i386/avx512fintrin.h
169         (_mm512_i32gather_ps): Change __addr type to void const*.
170         (_mm512_mask_i32gather_ps): Ditto.
171         (_mm512_i32gather_pd): Ditto.
172         (_mm512_mask_i32gather_pd): Ditto.
173         (_mm512_i64gather_ps): Ditto.
174         (_mm512_mask_i64gather_ps): Ditto.
175         (_mm512_i64gather_pd): Ditto.
176         (_mm512_mask_i64gather_pd): Ditto.
177         (_mm512_i32gather_epi32): Ditto.
178         (_mm512_mask_i32gather_epi32): Ditto.
179         (_mm512_i32gather_epi64): Ditto.
180         (_mm512_mask_i32gather_epi64): Ditto.
181         (_mm512_i64gather_epi32): Ditto.
182         (_mm512_mask_i64gather_epi32): Ditto.
183         (_mm512_i64gather_epi64): Ditto.
184         (_mm512_mask_i64gather_epi64): Ditto.
185         (_mm512_i32scatter_ps): Change __addr type to void*.
186         (_mm512_mask_i32scatter_ps): Ditto.
187         (_mm512_i32scatter_pd): Ditto.
188         (_mm512_mask_i32scatter_pd): Ditto.
189         (_mm512_i64scatter_ps): Ditto.
190         (_mm512_mask_i64scatter_ps): Ditto.
191         (_mm512_i64scatter_pd): Ditto.
192         (_mm512_mask_i64scatter_pd): Ditto.
193         (_mm512_i32scatter_epi32): Ditto.
194         (_mm512_mask_i32scatter_epi32): Ditto.
195         (_mm512_i32scatter_epi64): Ditto.
196         (_mm512_mask_i32scatter_epi64): Ditto.
197         (_mm512_i64scatter_epi32): Ditto.
198         (_mm512_mask_i64scatter_epi32): Ditto.
199         (_mm512_i64scatter_epi64): Ditto.
200         (_mm512_mask_i64scatter_epi64): Ditto.
201         * config/i386/avx512pfintrin.h
202         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
203         (_mm512_mask_prefetch_i32gather_ps): Ditto.
204         (_mm512_mask_prefetch_i64gather_pd): Ditto.
205         (_mm512_mask_prefetch_i64gather_ps): Ditto.
206         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
207         (_mm512_prefetch_i32scatter_ps): Ditto.
208         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
209         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
210         (_mm512_prefetch_i64scatter_pd): Ditto.
211         (_mm512_prefetch_i64scatter_ps): Ditto.
212         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
213         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
214         * config/i386/avx512vlintrin.h
215         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
216         (_mm_mmask_i32gather_ps): Ditto.
217         (_mm256_mmask_i32gather_pd): Ditto.
218         (_mm_mmask_i32gather_pd): Ditto.
219         (_mm256_mmask_i64gather_ps): Ditto.
220         (_mm_mmask_i64gather_ps): Ditto.
221         (_mm256_mmask_i64gather_pd): Ditto.
222         (_mm_mmask_i64gather_pd): Ditto.
223         (_mm256_mmask_i32gather_epi32): Ditto.
224         (_mm_mmask_i32gather_epi32): Ditto.
225         (_mm256_mmask_i32gather_epi64): Ditto.
226         (_mm_mmask_i32gather_epi64): Ditto.
227         (_mm256_mmask_i64gather_epi32): Ditto.
228         (_mm_mmask_i64gather_epi32): Ditto.
229         (_mm256_mmask_i64gather_epi64): Ditto.
230         (_mm_mmask_i64gather_epi64): Ditto.
231         (_mm256_i32scatter_ps): Change __addr type to void*.
232         (_mm256_mask_i32scatter_ps): Ditto.
233         (_mm_i32scatter_ps): Ditto.
234         (_mm_mask_i32scatter_ps): Ditto.
235         (_mm256_i32scatter_pd): Ditto.
236         (_mm256_mask_i32scatter_pd): Ditto.
237         (_mm_i32scatter_pd): Ditto.
238         (_mm_mask_i32scatter_pd): Ditto.
239         (_mm256_i64scatter_ps): Ditto.
240         (_mm256_mask_i64scatter_ps): Ditto.
241         (_mm_i64scatter_ps): Ditto.
242         (_mm_mask_i64scatter_ps): Ditto.
243         (_mm256_i64scatter_pd): Ditto.
244         (_mm256_mask_i64scatter_pd): Ditto.
245         (_mm_i64scatter_pd): Ditto.
246         (_mm_mask_i64scatter_pd): Ditto.
247         (_mm256_i32scatter_epi32): Ditto.
248         (_mm256_mask_i32scatter_epi32): Ditto.
249         (_mm_i32scatter_epi32): Ditto.
250         (_mm_mask_i32scatter_epi32): Ditto.
251         (_mm256_i32scatter_epi64): Ditto.
252         (_mm256_mask_i32scatter_epi64): Ditto.
253         (_mm_i32scatter_epi64): Ditto.
254         (_mm_mask_i32scatter_epi64): Ditto.
255         (_mm256_i64scatter_epi32): Ditto.
256         (_mm256_mask_i64scatter_epi32): Ditto.
257         (_mm_i64scatter_epi32): Ditto.
258         (_mm_mask_i64scatter_epi32): Ditto.
259         (_mm256_i64scatter_epi64): Ditto.
260         (_mm256_mask_i64scatter_epi64): Ditto.
261         (_mm_i64scatter_epi64): Ditto.
262         (_mm_mask_i64scatter_epi64): Ditto.
263         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
264         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
265         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
266         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
267         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
268         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
269         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
270         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
271         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
272         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
273         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
274         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
275         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
276         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
277         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
278         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
279         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
280         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
281         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
282         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
283         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
284         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
285         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
286         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
287         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
288         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
289         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
290         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
291         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
292         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
293         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
294         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
295         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
296         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
297         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
298         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
299         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
300         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
301         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
302         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
303         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
304         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
305         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
306         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
307         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
308         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
309         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
310         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
311         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
312         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
313         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
314         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
315         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
316         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
317         definitions accordingly.
319 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
320             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
322         PR target/79079
323         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
324         gen_lowpart.
326 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
328         PR target/79058
329         * ira-conflicts.c (ira_build_conflicts): Update total conflict
330         hard regs for inner regno.
332 2017-01-17  Martin Liska  <mliska@suse.cz>
334         PR ipa/71207
335         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
336         assumption and add comment.
338 2017-01-17  Nathan Sidwell  <nathan@acm.org>
340         * ipa-visibility.c (localize_node): New function, broken out of ...
341         (function_and_variable_visibility): ... here. Call it.
343 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
345         PR middle-end/77445
346         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
347         correctly set frequency of oudgoing edge.
348         (duplicate_thread_path): Fix profile updating.
350 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
352         PR other/79046
353         * configure.ac: Add GCC_BASE_VER.
354         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
355         version from BASE-VER file.
356         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
357         (gcc.o): Depend on $(BASEVER).
358         * common.opt (dumpfullversion): New option.
359         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
360         * doc/invoke.texi: Document -dumpfullversion.
361         * doc/install.texi: Document --with-gcc-major-version-only.
362         * configure: Regenerated.
364 2017-01-17  Richard Biener  <rguenther@suse.de>
366         PR tree-optimization/71433
367         * tree-vrp.c (register_new_assert_for): Merge same asserts
368         on all incoming edges.
369         (process_assert_insertions_for): Handle insertions at the
370         beginning of BBs.
372 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
374         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
375         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
377 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
379         PR target/78633
380         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
381         RTL sharing.
383 2017-01-17  Alan Modra  <amodra@gmail.com>
385         PR target/79066
386         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
387         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
388         symbolic stack limit when pic.
390 2017-01-16  Martin Sebor  <msebor@redhat.com>
392         PR tree-optimization/78608
393         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
395 2017-01-16  Jeff Law  <law@redhat.com>
397         Revert:
398         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
399         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
400         for several include directories that may be relative to sysroot.
401         * config/i386/x-mingw32 (gplus_includedir): Define.
402         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
403         (native_system_includedir): Likewise.
404         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
405         override if TARGET_SYSTEM_ROOT is defined.
406         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
408         PR tree-optimization/79090
409         PR tree-optimization/33562
410         PR tree-optimization/61912
411         PR tree-optimization/77485
412         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
413         and computed trims into the dump file.
415 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
417         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
419 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
421         PR c/79089
422         * gimplify.c (gimplify_init_constructor): If want_value and
423         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
424         fix.
426         PR target/79080
427         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
428         sequence.  Formatting fixes.
429         (doloop_optimize): Formatting fixes.
431         PR driver/49726
432         * gcc.c (debug_level_greater_than_spec_func): New function.
433         (static_spec_functions): Add debug-level-gt spec function.
434         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
435         !g0.
436         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
437         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
438         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
439         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
440         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
441         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
443 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
445         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
446         QImode fixups to general and mask registers only.
448 2017-01-16  Carl Love  <cel@us.ibm.com>
450         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
451         for built-in functions
452         vector signed char vec_nabs (vector signed char)
453         vector signed short vec_nabs (vector signed short)
454         vector signed int vec_nabs (vector signed int)
455         vector signed long long vec_nabs (vector signed long long)
456         vector float vec_nabs (vector float)
457         vector double vec_nabs (vector double)
458         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
459         and NABS overload.
460         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
461         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
462         * doc/extend.texi: Update the documentation file for the new built-in
463         functions.
465 2017-01-16  Martin Sebor  <msebor@redhat.com>
467         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
468         message.
470 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
472         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
473         UNSPEC_VSX__XXSPLTD to require special splat handling.
475 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
477         PR bootstrap/78616
478         * system.h: Poison strndup.
480 2017-01-16  Alan Modra  <amodra@gmail.com>
482         PR target/79098
483         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
484         use a switch.
486 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
488         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
490 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
492         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
493         call recog here.  Assert that INSN_CODE (insn) is non-negative.
495 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
497         PR target/72749
498         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
499         fallthrough.
500         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
501         in the currently scheduled RTL fragment.
503 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
505         PR rtl-optimization/78751
506         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
507         give up.
509 2017-01-14  Jeff Law  <law@redhat.com>
511         PR tree-optimization/79090
512         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
513         variable length stores.
514         (compute_trims): Delete dead assignment to *trim_tail.
515         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
516         zero length.
518 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
520         PR rtl-optimization/78626
521         PR rtl-optimization/78727
522         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
523         of a block, and split such blocks after everything else is finished.
525 2017-01-14  Alan Modra  <amodra@gmail.com>
527         PR target/72749
528         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
529         target legitimate_combined_insn.
530         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
531         (rs6000_legitimate_combined_insn): New function.
532         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
533         all uses.
534         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
535         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
536         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
538 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
540         * doc/frontends.texi (G++ and GCC): Remove references to Java.
542 2017-01-13  Jeff Law  <law@redhat.com>
544         PR tree-optimization/33562
545         PR tree-optimization/61912
546         PR tree-optimization/77485
547         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
548         a statement.
549         (delete_dead_assignment): Likewise.
550         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
551         statement to delete_dead_call and delete_dead_assignment.
553 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
555         PR c/78304
556         * substring-locations.c (format_warning_va): Strengthen case 1 so
557         that both endpoints of the substring must be within the format
558         range for just the substring to be printed.
560 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
562         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
563         * config/i386/i386.c (ix86_target_string): Add missing options
564         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
565         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
566         flags_other and ix86_target_other to flags2_other.  Display unknown
567         isa2 options.
568         (ix86_valid_target_attribute_inner_p): Add missing options and
569         reorder options by implied ISAs, as in ix86_target_string.
571 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
573         * hash-table.h (hash_table::too_empty_p): New function.
574         (hash_table::expand): Use it.
575         (hash_table::traverse): Likewise.
576         (hash_table::empty_slot): Use sizeof (value_type) instead of
577         sizeof (PTR) to convert bytes to elements.  Shrink the table
578         if the current size is excessive for the current number of
579         elements.
581 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
583         * ira-costs.c (record_reg_classes): Break from the inner loop
584         early once alt_fail is known to be true.  Update outer loop
585         handling accordingly.
587 2017-01-13  Jeff Law  <law@redhat.com>
589         * tree-ssa-dse.c (decrement_count): New function.
590         (increment_start_addr, maybe_trim_memstar_call): Likewise.
591         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
592         when we know the partially dead statement is a mem* function.
594         PR tree-optimization/61912
595         PR tree-optimization/77485
596         * tree-ssa-dse.c: Include expr.h.
597         (maybe_trim_constructor_store): New function.
598         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
600         PR tree-optimization/33562
601         PR tree-optimization/61912
602         PR tree-optimization/77485
603         * doc/invoke.texi: Document new dse-max-object-size param.
604         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
605         * tree-ssa-dse.c: Include params.h.
606         (dse_store_status): New enum.
607         (initialize_ao_ref_for_dse): New, partially extracted from
608         dse_optimize_stmt.
609         (valid_ao_ref_for_dse, normalize_ref): New.
610         (setup_live_bytes_from_ref, compute_trims): Likewise.
611         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
612         (maybe_trim_partially_dead_store): Likewise.
613         (maybe_trim_complex_store): Likewise.
614         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
615         Track what bytes live from the original store.  Return tri-state
616         for dead, partially dead or live.
617         (dse_dom_walker): Add constructor, destructor and new private members.
618         (delete_dead_call, delete_dead_assignment): New extracted from
619         dse_optimize_stmt.
620         (dse_optimize_stmt): Make a member of dse_dom_walker.
621         Use initialize_ao_ref_for_dse.
623         PR tree-optimization/33562
624         PR tree-optimization/61912
625         PR tree-optimization/77485
626         * sbitmap.h (bitmap_count_bits): Prototype.
627         (bitmap_clear_range, bitmap_set_range): Likewise.
628         * sbitmap.c (bitmap_clear_range): New function.
629         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
631 2017-01-13  Martin Liska  <mliska@suse.cz>
633         PR ipa/79043
634         * function.c (set_cfun): Add new argument force.
635         * function.h (set_cfun): Likewise.
636         * ipa-inline-transform.c (inline_call): Use the function when
637         strict alising from is dropped for function we inline to.
639 2017-01-13  Richard Biener  <rguenther@suse.de>
641         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
642         for dumping GIMPLE INTEGER_CSTs.
644 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
646         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
647         to 201112L since C++17.
649 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
651         PR sanitizer/78887
652         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
653         if -fsanitize=kernel-address is present.
655 2017-01-13  Richard Biener  <rguenther@suse.de>
657         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
658         as _Literal ( type ) number in case usual suffixes do not
659         preserve all information.
661 2017-01-13  Richard Biener  <rguenther@suse.de>
663         PR tree-optimization/77283
664         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
665         and ssa-iterators.h.
666         (is_feasible_trace): Implement a cost model based on joiner
667         PHI node uses.
669 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
671         PR target/79004
672         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
673         char or short to __float128/_Float128 directly.
675 2017-01-12  Martin Sebor  <msebor@redhat.com>
677         to -Wformat-overflow.
678         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
679         (min_bytes_remaining): Same.
680         (get_string_length): Same.
681         (format_string): Same.
682         (format_directive): Same.
683         (add_bytes): Same.
684         (pass_sprintf_length::handle_gimple_call): Same.
686 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
688         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
689         info.nowrite calls with no lhs that can't throw.  Return bool
690         whether gsi_remove has been called or not.
691         (pass_sprintf_length::handle_gimple_call): Return bool whether
692         try_substitute_return_value called gsi_remove.  Formatting fix.
693         (pass_sprintf_length::execute): Don't use gsi_remove if
694         handle_gimple_call returned true.
696         PR bootstrap/79069
697         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
698         be removed due to side-effects, don't remove following barrier nor
699         turn the successor edge into fallthru edge.
701 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
703         PR target/79044
704         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
705         element-reversing loads and stores as not swappable.
707 2017-01-12  Nathan Sidwell  <nathan@acm.org>
708             Nicolai Stange  <nicstange@gmail.com>
710         * combine.c (try_combine): Don't ignore result of overlap checking
711         loop.  Combine overlap & asm check into single loop.
713 2017-01-12  Richard Biener  <rguenther@suse.de>
715         * tree-pretty-print.c (dump_generic_node): Provide -gimple
716         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
718 2017-01-12  Richard Biener  <rguenther@suse.de>
720         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
721         and TS_TARGET_OPTION directly derive from TS_BASE.
722         * tree-core.h (tree_optimization_option): Derive from tree_base.
723         (tree_target_option): Likewise.
725 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
727         * config/i386/i386.c (memory_address_length): Increase len
728         only when rip_relative_addr_p returns false.
730 2017-01-11  Julia Koval  <julia.koval@intel.com>
732         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
733         (OPTION_MASK_ISA_SGX_SET): New.
734         (ix86_handle_option): Handle OPT_msgx.
735         * config.gcc: Added sgxintrin.h.
736         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
737         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
738         * config/i386/i386.c (ix86_target_string): Add -msgx.
739         (PTA_SGX): New.
740         (ix86_option_override_internal): Handle new options.
741         (ix86_valid_target_attribute_inner_p): Add sgx.
742         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
743         * config/i386/i386.opt: Add msgx.
744         * config/i386/sgxintrin.h: New file.
745         * config/i386/x86intrin.h: Add sgxintrin.h.
747 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
749         PR c++/71537
750         * fold-const.c (maybe_nonzero_address): Return 1 for function
751         local objects.
752         (tree_single_nonzero_warnv_p): Don't handle function local objects
753         here.
755         PR c++/72813
756         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
757         of c-header.
759 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
761         PR driver/78877
762         * opts.c: Include "spellcheck.h"
763         (struct string_fragment): New struct.
764         (struct edit_distance_traits<const string_fragment &>): New
765         struct.
766         (get_closest_sanitizer_option): New function.
767         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
769 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
771         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
772         by 12.
773         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
774         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
775         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
776         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
777         for initial die_offset if dwarf_split_debug_info.
778         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
779         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
780         fields.
781         (output_skeleton_debug_sections): Formatting fix.  Use
782         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
783         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
785 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
787         * config/arm/cortex-a53.md: Add bypasses for
788         cortex_a53_r2f_cvt.
789         (cortex_a53_r2f): Only use for transfers.
790         (cortex_a53_f2r): Likewise.
791         (cortex_a53_r2f_cvt): Add reservation for conversions.
792         (cortex_a53_f2r_cvt): Likewise.
794 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
796         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
797         to all inlined functions, change static to extern.
799 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
801         PR target/78253
802         * config/arm/arm.c (legitimize_pic_address): Handle reference to
803         weak symbol.
804         (arm_assemble_integer): Likewise.
806 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
808         * config.gcc: Use new awk script to check CPU, FPU and architecture
809         parameters for --with-... options.
810         * config/arm/parsecpu.awk: New file
811         * config/arm/arm-cpus.in: New file.
812         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
813         files.
814         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
815         files.
816         * config/arm/t-arm: Update dependency rules.
817         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
818         of processing .def files.
819         * config/arm/genopt.sh: Deleted.
820         * config/arm/gentune.sh: Deleted.
821         * config/arm/arm-cores.def: Deleted.
822         * config/arm/arm-arches.def: Deleted.
823         * config/arm/arm-fpus.def: Deleted.
824         * config/arm/arm-tune.md: Regenerated.
825         * config/arm/arm-tables.opt: Regenerated.
826         * config/arm/arm-cpu.h: New generated file.
827         * config/arm/arm-cpu-data.h: New generated file.
828         * config/arm/arm-cpu-cdata.h: New generated file.
830 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
832         PR lto/79042
833         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
834         bit.
835         (input_varpool_node): Unpack dynamically_initialized bit.
837 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
839         PR rtl-optimization/79032
840         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
841         the alignment of the adjusted memory reference against that of MODE,
842         instead of the alignment of the original memory reference.
844 2017-01-11  Martin Jambor  <mjambor@suse.cz>
846         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
847         test.
848         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
849         decorated functions.
851 2017-01-11  Richard Biener  <rguenther@suse.de>
853         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
854         set range/nonnull info for PHI results.  Do not set it on
855         stmts marked for removal.
857 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
859         * expr.c (store_field): In the bitfield case, fetch the return value
860         from the registers before applying a single big-endian adjustment.
861         Always do a final load for a BLKmode value not larger than a word.
863 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
865         PR c++/77949
866         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
867         that we correctly handle column numbers greater than
868         LINE_MAP_MAX_COLUMN_NUMBER.
870 2017-01-10  Martin Sebor  <msebor@redhat.com>
872         PR middle-end/78245
873         * gimple-ssa-sprintf.c (get_destination_size): Call
874         {init,fini}object_sizes.
875         * tree-object-size.c (addr_object_size): Adjust.
876         (pass_through_call): Adjust.
877         (pass_object_sizes::execute): Adjust.
878         * tree-object-size.h (fini_object_sizes): Declare.
880 2017-01-10  Martin Sebor  <msebor@redhat.com>
882         PR tree-optimization/78775
883         * builtins.c (get_size_range): Move...
884         * calls.c: ...to here.
885         (alloc_max_size): Accept zero argument.
886         (operand_signed_p): Remove.
887         (maybe_warn_alloc_args_overflow): Call get_size_range.
888         * calls.h (get_size_range): Declare.
890 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
892         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
893         from TI's devices.csv file as of September 2016.
894         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
896 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
898         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
899         * doc/invoke.texi: Likewise.
900         * doc/md.texi: Likewise.
901         * doc/objc.texi: Likewise.
903 2017-01-10  Joshua Conner  <joshconner@google.com>
905         * config/arm/fuchsia-elf.h: New file.
906         * config/fuchsia.h: New file.
907         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
908         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
909         targets.
910         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
912 2016-01-10  Richard Biener  <rguenther@suse.de>
914         PR tree-optimization/79034
915         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
916         Propagate out degenerate PHIs in the joiner.
918 2017-01-10  Martin Liska  <mliska@suse.cz>
920         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
921         (sort_congruence_classes_by_decl_uid): Likewise.
922         (sort_congruence_class_groups_by_decl_uid): Likewise.
923         (sem_item_optimizer::merge_classes): Sort class, groups in these
924         classes and members in the groups by DECL_UID of declarations.
925         This would make merge operations stable.
927 2017-01-10  Martin Liska  <mliska@suse.cz>
929         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
930         usage of m_classes_vec.
931         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
932         (sem_item_optimizer::get_group_by_hash): Likewise.
933         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
934         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
935         (sem_item_optimizer::verify_classes): Likewise.
936         (sem_item_optimizer::process_cong_reduction): Likewise.
937         (sem_item_optimizer::dump_cong_classes): Likewise.
938         (sem_item_optimizer::merge_classes): Likewise.
939         * ipa-icf.h (congruence_class_hash): Rename from
940         congruence_class_group_hash.  Remove declaration of m_classes_vec.
942 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
944         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
945         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
946         * config.gcc: Add avx512vpopcntdqintrin.h.
947         * config/i386/avx512vpopcntdqintrin.h: New.
948         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
949         * config/i386/i386-builtin-types.def: Add new types.
950         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
951         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
952         __builtin_ia32_vpopcountq_v8di_mask): New.
953         * config/i386/i386-c.c (ix86_target_macros_internal): Define
954         __AVX512VPOPCNTDQ__.
955         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
956         (PTA_AVX512VPOPCNTDQ): Define.
957         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
958         TARGET_AVX512VPOPCNTDQ_P): Define.
959         * config/i386/i386.opt: Add mavx512vpopcntdq.
960         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
961         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
963 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
965         PR middle-end/77484
966         * predict.def (PRED_CALL): Set to 67.
968 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
970         * expr.c (store_field): In the bitfield case, if the value comes from
971         a function call and is of an aggregate type returned in registers, do
972         not modify the field mode; extract the value in all cases if the mode
973         is BLKmode and the size is not larger than a word.
975 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
977         PR target/71017
978         * config/i386/cpuid.h: Fix undefined behavior.
980 2017-01-04  Jeff Law  <law@redhat.com>
982         PR tree-optimization/79007
983         PR tree-optimization/67955
984         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
985         conservative for pt.null when flag_non_call_exceptions is on.
987 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
989         PR translation/79019
990         PR translation/79020
991         * params.def (PARAM_INLINE_MIN_SPEEDUP,
992         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
993         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
994         in descriptions.
995         * config/avr/avr.opt (maccumulate-args): Likewise.
996         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
997         * common.opt (freport-bug): Likewise.
998         * cif-code.def (CIF_FINAL_ERROR): Likewise.
999         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
1000         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
1001         translatable string.
1002         * config/i386/i386.c (function_value_32): Likewise.
1003         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
1004         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
1005         Likewise.
1006         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
1007         * common/config/msp430/msp430-common.c (msp430_handle_option):
1008         Likewise.
1009         * symtab.c (symtab_node::verify_base): Likewise.
1010         * opts.c (set_debug_level): Likewise.
1011         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
1012         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1013         missing whitespace to translatable strings.
1014         * config/avr/avr.md (bswapsi2): Fix typo in comment.
1015         * config/sh/superh.h: Likewise.
1016         * config/i386/xopintrin.h: Likewise.
1017         * config/i386/znver1.md: Likewise.
1018         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
1019         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
1020         * double-int.h (struct double_int): Likewise.
1021         * double-int.c (div_and_round_double): Likewise.
1022         * wide-int.cc: Likewise.
1023         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
1024         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
1025         * cfgcleanup.c (crossjumps_occured): Renamed to ...
1026         (crossjumps_occurred): ... this.
1027         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
1028         Adjust all uses.
1030         PR tree-optimization/78899
1031         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
1032         returning bool return struct loop *, NULL for failure and the new
1033         loop on success.
1034         (versionable_outer_loop_p): Don't version outer loop if it has
1035         dont_vectorized bit set.
1036         (tree_if_conversion): When versioning outer loop, ensure
1037         tree_if_conversion is performed also on the inner loop of the
1038         non-vectorizable outer loop copy.
1039         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
1040         LOOP_VECTORIZED in inner loop of the scalar outer loop and
1041         prevent vectorization of it.
1042         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
1043         the outer loop vectorization of the non-scalar version is attempted
1044         before vectorization of the inner loop in scalar version.  If
1045         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
1046         vectorization of its inner loop.
1047         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
1048         has 2 inner loops, rename also on edges from bb whose single pred
1049         is outer_loop->header.  Fix typo in function comment.
1051 2017-01-09  Martin Sebor  <msebor@redhat.com>
1053         PR bootstrap/79033
1054         * asan.c (asan_emit_stack_protection): Increase local buffer size
1055         to avoid snprintf truncation warning.
1057 2017-01-09  Andrew Pinski  <apinski@cavium.com>
1059         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
1060         to reference thunderx2t99 for the tuning structure
1061         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
1062         Rename to ...
1063         (thunderx2t99_extra_costs): This.
1064         * config/aarch64/aarch64-tune.md: Regenerate.
1065         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
1066         (vulcan_addrcost_table): This.
1067         (vulcan_regmove_cost): Rename to ...
1068         (thunderx2t99_regmove_cost): This.
1069         (vulcan_vector_cost): Rename to ...
1070         (thunderx2t99_vector_cost): this.
1071         (vulcan_branch_cost): Rename to ...
1072         (thunderx2t99_branch_cost): This.
1073         (vulcan_tunings): Rename to ...
1074         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
1075         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
1077 2017-01-09  Martin Jambor  <mjambor@suse.cz>
1079         PR ipa/78365
1080         PR ipa/78599
1081         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
1082         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
1083         (propagate_vr_accross_jump_function): Use the above function for all
1084         value range computations for pass-through jump functions and type
1085         converasion from explicit value range values.
1086         (ipcp_propagate_stage): Do not attempt to deduce types of formal
1087         parameters from TYPE_ARG_TYPES.
1088         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
1089         (ipa_write_node_info): Stream type of the actual argument.
1090         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
1092 2017-01-09  Martin Liska  <mliska@suse.cz>
1094         PR pch/78970
1095         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
1096         (lookup_compiler): Do not show error message with have_E.
1098 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
1100         PR tree-optimization/78938
1101         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
1102         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
1103         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
1104         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
1105         fixes.
1107 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1109         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
1110         is const0_rtx.
1112 2017-01-09  Richard Biener  <rguenther@suse.de>
1114         PR tree-optimization/78997
1115         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
1116         name condition properly.
1118 2017-01-09  Richard Biener  <rguenther@suse.de>
1120         PR debug/79000
1121         * dwarf2out.c (is_cxx): New overload with context.
1122         (is_naming_typedef_decl): Use it.
1124 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
1126         * invoke.texi (Option Summary): Correct spacing in option lists
1127         and add line breaks to fix over-long lines.
1129 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
1131         PR middle-end/17660
1133         * extend.texi (Common Variable Attributes): Add xref to GCC
1134         Internals manual to explain mode attribute keywords.
1136 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
1138         PR other/16519
1139         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
1140         and Preprocessor Options.
1141         (Options for Linking): Document -pthread here....
1142         (RS/6000 and PowerPC Options): ...not here.
1143         (Solaris 2 Options): ...or here.
1144         * doc/cppopts.texi: Document -pthread.
1146 2017-01-08  Martin Sebor  <msebor@redhat.com>
1148         PR middle-end/77708
1149         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
1150         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
1151         New member functions.
1152         (format_directive): Used them.
1153         (add_bytes): Same.
1154         (pass_sprintf_length::handle_gimple_call): Same.
1155         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
1156         to avoid truncation for any argument.
1157         (extract_affine_mul): Same.
1158         * tree.c (get_file_function_name): Same.
1160 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
1162         PR middle-end/77484
1163         * predict.def (PRED_INDIR_CALL): Set to 86.
1165 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
1167         PR preprocessor/54124
1168         * doc/cppopts.texi: Reformat -d subtable to list the full name
1169         of the options.  Add cross-reference to the docs for the general
1170         compiler -d options.
1171         * doc/invoke.texi (Developer Options): Add cross-reference to the
1172         preprocessor-specific -d option documentation.
1174 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
1176         PR preprocessor/13498
1177         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
1178         redudant material, and reflect new command-line options.
1179         (System Headers): Likewise.
1181 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
1183         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
1184         -isystem, and -idirafter.  Copy-edit.
1185         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
1186         default for -ftrack-macro-expansion.  Delete obsolete and
1187         badly-formatted implementation details about -fdebug-cpp output.
1188         * doc/cppwarnopts.texi: Copy-edit.
1190 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
1192         PR c++/72803
1193         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
1194         that the transition from a max line width >= 1<<10 to narrower
1195         lines works correctly.
1197 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
1199         * doc/options.texi (PerFunction): New.
1200         * opt-functions.awk (switch_flags): Map both Optimization and
1201         PerFunction to CL_OPTIMIZATION.
1202         * opth-gen.awk: Test for PerFunction flag along with
1203         Optimization.
1204         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
1205         it only when the latter is present.  Skip those that don't in
1206         the hash function generator.
1207         * common.opt (fvar-tracking): Mark as PerFunction instead of
1208         Optimization.
1209         (fvar-tracking-assignments): Likewise.
1210         (fvar-tracking-assignments-toggle): Likewise.
1211         (fvar-tracking-uninit): Likewise.
1213 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
1215         PR translation/79018
1216         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
1217         the and store.
1219 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
1221         PR target/57583
1222         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
1223         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
1224         TARGET_LONG_JUMP_TABLE_OFFSETS.
1225         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
1226         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
1227         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
1228         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
1229         * config/m68k/m68k.md (tablejump expander): Likewise.
1230         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
1231         TARGET_LONG_JUMP_TABLE_OFFSETS.
1232         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
1233         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
1235 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
1236             David Holsgrove <david.holsgrove@xilinx.com>
1238         * common/config/microblaze/microblaze-common.c
1239         (TARGET_EXCEPT_UNWIND_INFO): Remove.
1240         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
1241         New prototype.
1242         * config/microblaze/microblaze.c (microblaze_must_save_register)
1243         (microblaze_expand_epilogue, microblaze_return_addr): Handle
1244         calls_eh_return.
1245         (microblaze_eh_return): New function.
1246         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
1247         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
1248         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
1249         * config/microblaze/microblaze.md (eh_return): New pattern.
1251 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
1253         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
1254         GCC_DIAGNOSTIC_STRINGIFY): Define.
1256         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
1258 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1260         * config/arm/arm.md (<mcrr>): New.
1261         (<mrrc>): New.
1262         * config/arm/arm.c (arm_arch5te): New.
1263         (arm_option_override): Set arm_arch5te.
1264         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
1265         and mrrc2.
1266         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
1267         (arm_mcrr_qualifiers): ... this. New.
1268         (MRRC_QUALIFIERS): Define to...
1269         (arm_mrrc_qualifiers): ... this. New.
1270         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
1271         __arm_mrrc2): New.
1272         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
1273         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
1274         (MRRCI, mrrc, MRRC): New.
1275         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
1276         VUNSPEC_MRRC2): New.
1278 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1280         * config/arm/arm.md (<mcr>): New.
1281         (<mrc>): New.
1282         * config/arm/arm.c (arm_coproc_builtin_available): Add
1283         support for mcr, mrc, mcr2 and mrc2.
1284         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
1285         (arm_mcr_qualifiers): ... this. New.
1286         (MRC_QUALIFIERS): Define to ...
1287         (arm_mrc_qualifiers): ... this. New.
1288         (MCR_QUALIFIERS): Define to ...
1289         (arm_mcr_qualifiers): ... this. New.
1290         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
1291         __arm_mrc2): New.
1292         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
1293         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
1294         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
1295         VUNSPEC_MRC2): New.
1297 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1299         * config/arm/arm.md (*ldc): New.
1300         (*stc): New.
1301         (<ldc>): New.
1302         (<stc>): New.
1303         * config/arm/arm.c (arm_coproc_builtin_available): Add
1304         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
1305         (arm_coproc_ldc_stc_legitimate_address): New.
1306         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
1307         'qualifier_const_pointer'.
1308         (LDC_QUALIFIERS): Define to...
1309         (arm_ldc_qualifiers): ... this. New.
1310         (STC_QUALIFIERS): Define to...
1311         (arm_stc_qualifiers): ... this. New.
1312         * config/arm/arm-protos.h
1313         (arm_coproc_ldc_stc_legitimate_address): New.
1314         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
1315         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
1316         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
1317         stc2, stcl, stc2l): New.
1318         * config/arm/constraints.md (Uz): New.
1319         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
1320         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
1321         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
1322         VUNSPEC_STC2L): New.
1324 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1326         * config/arm/arm.md (<cdp>): New.
1327         * config/arm/arm.c (neon_const_bounds): Rename this ...
1328         (arm_const_bounds): ... this.
1329         (arm_coproc_builtin_available): New.
1330         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
1331         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
1332         (CDP_QUALIFIERS): Define to...
1333         (arm_cdp_qualifiers): ... this. New.
1334         (void_UP): Define.
1335         (arm_expand_builtin_args): Add case for 6 arguments.
1336         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
1337         (arm_const_bounds): ... this.
1338         (arm_coproc_builtin_available): New.
1339         * config/arm/arm_acle.h (__arm_cdp): New.
1340         (__arm_cdp2): New.
1341         * config/arm/arm_acle_builtins.def (cdp): New.
1342         (cdp2): New.
1343         * config/arm/iterators.md (CDPI,CDP,cdp): New.
1344         * config/arm/neon.md: Rename all 'neon_const_bounds' to
1345         'arm_const_bounds'.
1346         * config/arm/types.md (coproc): New.
1347         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
1348         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
1349         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
1350         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
1352 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1354         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
1355         (UBINOP_QUALIFIERS): New.
1356         (si_UP): Define.
1357         (acle_builtin_data): New. Change comment.
1358         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
1359         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
1360         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
1361         arm_acle_builtins.def.
1362         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
1363         (arm_init_acle_builtins): New.
1364         (CRC32_BUILTIN): Remove.
1365         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
1366         crc32cb, crc32ch and crc32cw.
1367         (arm_init_crc32_builtins): Remove.
1368         (arm_init_builtins): Use arm_init_acle_builtins rather
1369         than arm_init_crc32_builtins.
1370         (arm_expand_acle_builtin): New.
1371         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
1372         * config/arm/arm_acle_builtins.def: New.
1374 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1376         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
1377         (arm_builtin_datum): ... this.
1378         (arm_init_neon_builtin): Rename to ...
1379         (arm_init_builtin): ... this. Add a new parameters PREFIX
1380         and USE_SIG_IN_NAME.
1381         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
1382         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
1383         'arm_builtin_datum'.
1384         (arm_init_vfp_builtins): Likewise.
1385         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
1386         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
1387         (arm_expand_neon_args): Rename to ...
1388         (arm_expand_builtin_args): ... this. Rename builtin_arg
1389         enum values and differentiate between ARG_BUILTIN_MEMORY
1390         and ARG_BUILTIN_NEON_MEMORY.
1391         (arm_expand_neon_builtin_1): Rename to ...
1392         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
1393         values, arm_expand_builtin_args and add bool parameter NEON.
1394         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
1395         (arm_expand_vfp_builtin): Likewise.
1396         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
1398 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
1400         PR middle-end/77484
1401         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
1402         * predict.c (tree_estimate_probability_bb): Reverse direction of
1403         polymorphic call predictor.
1405 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
1407         * passes.c (execute_one_pass): Split out pass-skipping logic into...
1408         (determine_pass_name_match): ...this new function and...
1409         (should_skip_pass_p): ...this new function.
1411 2017-01-06  Nathan Sidwell  <nathan@acm.org>
1413         * ipa-visibility.c (function_and_variable_visibility): Reformat
1414         comments and long lines.  Remove extrneous if.
1415         * symtab.c (symtab_node::make_decl_local): Fix code format.
1416         (symtab_node::set_section_for_node): Fix comment typo.
1418 2017-01-06  Martin Liska  <mliska@suse.cz>
1420         PR bootstrap/79003
1421         * lra-constraints.c: Rename invariant to lra_invariant.
1422         * predict.c (set_even_probabilities): Initialize e to NULL.
1424 2017-01-05  Martin Sebor  <msebor@redhat.com>
1426         PR tree-optimization/78910
1427         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
1428         (format_integer): Correct off-by-one error in the handling
1429         of precision with negative numbers in signed conversions..
1431 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
1433         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
1435 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
1437         PR tree-optimization/71016
1438         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
1439         factor_out_conditional_conversion.  Formatting fix.
1440         (factor_out_conditional_conversion): Add cond_stmt argument.
1441         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
1442         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
1443         Formatting fix.
1445 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
1447         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
1448         read-rtl-function.o, and selftest-rtl.o.
1449         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
1450         (selftest::aarch64_test_loading_full_dump): New function.
1451         (selftest::aarch64_run_selftests): New function.
1452         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
1453         selftest::aarch64_run_selftests.
1454         * config/i386/i386.c
1455         (selftest::ix86_test_loading_dump_fragment_1): New function.
1456         (selftest::ix86_test_loading_call_insn): New function.
1457         (selftest::ix86_test_loading_full_dump): New function.
1458         (selftest::ix86_test_loading_unspec): New function.
1459         (selftest::ix86_run_selftests): Call the new functions.
1460         * emit-rtl.c (maybe_set_max_label_num): New function.
1461         * emit-rtl.h (maybe_set_max_label_num): New decl.
1462         * function.c (instantiate_decls): Guard call to
1463         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
1464         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
1465         "static".
1466         * gensupport.c (gen_reader::gen_reader): Pass "false"
1467         for new "compact" param of rtx_reader.
1468         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
1469         rather than an empty string for NULL strings.
1470         * read-md.c: Potentially include config.h rather than bconfig.h.
1471         Wrap include of errors.h with #ifdef GENERATOR_FILE.
1472         (have_error): New global, copied from errors.c.
1473         (md_reader::read_name): Rename to...
1474         (md_reader::read_name_1): ...this, adding "out_loc" param,
1475         and converting "missing name or number" to returning false, rather
1476         than failing.
1477         (md_reader::read_name): Reimplement in terms of read_name_1.
1478         (md_reader::read_name_or_nil): New function.
1479         (md_reader::read_string): Handle "(nil)" by returning NULL.
1480         (md_reader::md_reader): Add new param "compact".
1481         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
1482         (md_reader::read_file): New method.
1483         * read-md.h (md_reader::md_reader): Add new param "compact".
1484         (md_reader::read_file): New method.
1485         (md_reader::is_compact): New accessor.
1486         (md_reader::read_name): Convert return type from void to file_location.
1487         (md_reader::read_name_or_nil): New decl.
1488         (md_reader::read_name_1): New decl.
1489         (md_reader::m_compact): New field.
1490         (noop_reader::noop_reader): Pass "false" for new "compact" param
1491         of rtx_reader.
1492         (rtx_reader::rtx_reader): Add new "compact" param.
1493         (rtx_reader::read_rtx_operand): Make virtual and convert return
1494         type from void to rtx.
1495         (rtx_reader::read_until): New decl.
1496         (rtx_reader::handle_any_trailing_information): New virtual function.
1497         (rtx_reader::postprocess): New virtual function.
1498         (rtx_reader::finalize_string): New virtual function.
1499         (rtx_reader::m_in_call_function_usage): New field.
1500         (rtx_reader::m_reuse_rtx_by_id): New field.
1501         * read-rtl-function.c: New file.
1502         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
1503         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
1504         (selftest::verify_three_block_rtl_cfg): New decl.
1505         * read-rtl-function.h: New file.
1506         * read-rtl.c: Potentially include config.h rather than bconfig.h.
1507         For host, include function.h, memmodel.h, and emit-rtl.h.
1508         (one_time_initialization): New function.
1509         (struct compact_insn_name): New struct.
1510         (compact_insn_names): New array.
1511         (find_code): Handle insn codes in compact dumps.
1512         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
1513         (bind_subst_iter_and_attr): Likewise.
1514         (add_condition_to_string): Likewise.
1515         (add_condition_to_rtx): Likewise.
1516         (apply_attribute_uses): Likewise.
1517         (add_current_iterators): Likewise.
1518         (apply_iterators): Likewise.
1519         (initialize_iterators): Guard usage of apply_subst_iterator with
1520         #ifdef GENERATOR_FILE.
1521         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
1522         (md_reader::read_mapping): Likewise.
1523         (add_define_attr_for_define_subst): Likewise.
1524         (add_define_subst_attr): Likewise.
1525         (read_subst_mapping): Likewise.
1526         (check_code_iterator): Likewise.
1527         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
1528         logic to...
1529         (one_time_initialization): New function.
1530         (rtx_reader::read_until): New method.
1531         (read_flags): New function.
1532         (parse_reg_note_name): New function.
1533         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
1534         Handle reuse_rtx ids.
1535         Wrap iterator lookup within #ifdef GENERATOR_FILE.
1536         Add parsing support for RTL dumps, mirroring the special-cases in
1537         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
1538         values, and calling handle_any_trailing_information.
1539         (rtx_reader::read_rtx_operand): Convert return type from void
1540         to rtx, returning return_rtx.  Handle case 'e'.  Call
1541         finalize_string on XSTR and XTMPL fields.
1542         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
1543          "(nil)" values were omitted.  Call the postprocess vfunc on the
1544         return_rtx.
1545         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
1546         class ctor.  Initialize m_in_call_function_usage.  Call
1547         one_time_initialization.
1548         * rtl-tests.c (selftest::test_uncond_jump): Call
1549         set_new_first_and_last_insn.
1550         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
1551         * selftest-rtl.c: New file.
1552         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
1553         (selftest::get_insn_by_uid): New decl.
1554         * selftest-run-tests.c (selftest::run_tests): Call
1555         read_rtl_function_c_tests.
1556         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
1557         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
1558         dumps.
1560 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
1562         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
1563         operands in a special way.  Assert that pos+len <= mode precision.
1565 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
1567         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
1568         3 argument Alias with unlimited for the negative form.
1569         (fno-vect-cost-model): Removed.
1571 2017-01-05  Martin Liska  <mliska@suse.cz>
1573         * hsa-gen.c (gen_hsa_divmod): New function.
1574         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
1576 2017-01-05  Martin Liska  <mliska@suse.cz>
1578         PR pch/78970
1579         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
1580         header.
1582 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1584         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
1585         small constant length operands.
1587 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1589         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
1590         between loop iterations.
1592 2017-01-05  Martin Liska  <mliska@suse.cz>
1594         PR sanitizer/78815
1595         * gimplify.c (gimplify_decl_expr): Compare to
1596         asan_poisoned_variables instread of checking flags.
1597         (gimplify_target_expr): Likewise.
1598         (gimplify_expr): Likewise.
1599         (gimplify_function_tree): Conditionally initialize
1600         asan_poisoned_variables.
1602 2017-01-04  Jeff Law  <law@redhat.com>
1604         PR tree-optimizatin/78812
1605         * rtl.h (contains_mem_rtx_p): Prototype.
1606         * ifcvt.c (containts_mem_rtx_p): Move from here to...
1607         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
1608         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
1609         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
1610         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
1612 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1614         * input.c (assert_char_at_range): Default-initialize actual_range.
1616 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1618         * df-scan.c (df_ref_create_structure): Make regno unsigned,
1619         to match the caller.
1621 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1623         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
1624         insns after final jump in test to emit dummy move.
1626 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1628         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
1629         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
1631 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
1633         * multiple_target.c (create_dispatcher_calls): Init e_next.
1634         * tree-ssa-loop-split.c (split_loop): Init border.
1635         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
1636         scalar_type.
1638 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
1640         PR target/71977
1641         PR target/70568
1642         PR target/78823
1643         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
1644         (altivec_register_operand): Do not return true if the operand
1645         contains a SUBREG mixing SImode and SFmode.
1646         (vsx_register_operand): Likewise.
1647         (vsx_reg_sfsubreg_ok): New predicate.
1648         (vfloat_operand): Do not return true if the operand contains a
1649         SUBREG mixing SImode and SFmode.
1650         (vint_operand): Likewise.
1651         (vlogical_operand): Likewise.
1652         (gpc_reg_operand): Likewise.
1653         (int_reg_operand): Likewise.
1654         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
1655         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
1656         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
1657         SImode and SFmode.
1658         (rs6000_emit_move_si_sf_subreg): New helper function.
1659         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
1660         fixup SUBREGs involving SImode and SFmode.
1661         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
1662         numbers for the new peephole2 optimization.
1663         (peephole2 for SFmode unions): New peephole2 to optimize cases in
1664         the GLIBC math library that do AND/IOR/XOR operations on single
1665         precision floating point.
1666         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
1667         target macros to say whether we need to avoid SUBREGs mixing
1668         SImode and SFmode.
1669         (TARGET_ALLOW_SF_SUBREG): Likewise.
1670         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
1671         (UNSPEC_SI_FROM_SF): Likewise.
1672         (iorxor): Change spacing.
1673         (and_ior_xor): New iterator for AND, IOR, and XOR.
1674         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
1675         (movdi_from_sf_zero_ext): Likewise.
1676         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
1677         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
1678         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
1679         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
1680         (fms<mode>4): Likewise.
1681         (fnma<mode>4): Likewise.
1682         (fnms<mode>4): Likewise.
1683         (nfma<mode>4): Likewise.
1684         (nfms<mode>4): Likewise.
1686 2017-01-04  Marek Polacek  <polacek@redhat.com>
1688         PR c++/64767
1689         * doc/invoke.texi: Document -Wpointer-compare.
1691 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
1693         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
1694         RejectNegative.
1696         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
1697         descriptions for -gdwarf-5 and emit them as uleb128 instead of
1698         2-byte data.
1700 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1702         PR target/78056
1703         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
1704         documentation of the powerpc_popcntb_ok attribute.
1705         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
1706         code to issue warning messages if a requested CPU configuration is
1707         not supported by the binary (assembler and loader) toolchain.
1708         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
1709         made to define a built-in function that has been disabled.
1710         (paired_init_builtins): Add assertion to prevent ICE if attempt is
1711         made to define a built-in function that has been disabled.
1712         (altivec_init_builtins): Add comment explaining why definition
1713         of the DST built-in functions is not preceded by an assertion
1714         check.  Add assertions to prevent ICE if attempts are made to
1715         define an altivec predicate or an abs* built-in function that has
1716         been disabled.
1717         (htm_init_builtins): Add comment explaining why definition of the
1718         htm built-in functions is not preceded by an assertion check.
1720 2017-01-04  Jeff Law  <law@redhat.com>
1722         PR tree-optimizatin/67955
1723         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
1724         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
1725         the points-to solution does not include pt_null.  Use DECL_PT_UID
1726         unconditionally.
1728 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
1730         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
1731         Use gen_int_mode instead of gen_lopwart for const_int operands.
1733 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
1735         PR tree-optimization/71563
1736         * match.pd: Simplify X << Y into X if Y is known to be 0 or
1737         out of range value - has low bits known to be zero.
1739 2017-01-04  Alan Modra  <amodra@gmail.com>
1741         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
1742         * configure: Regenerate.
1743         * config.in: Regenerate.
1745 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
1747         PR bootstrap/77569
1748         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
1749         a substring of the message, but strcmp with the whole message.  Ifdef
1750         ENABLE_NLS, translate the message first using dgettext.
1752 2017-01-03  Jeff Law  <law@redhat.com>
1754         PR tree-optimizatin/78856
1755         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
1756         (mark_threaded_blocks): Remove code to truncate thread paths that
1757         cross multiple loop headers.  Instead invalidate the cached loop
1758         iteration information and handle case of a thread path walking
1759         into an irreducible region.
1761 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1763         PR target/78900
1764         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
1765         assertions.  Add support for doing the signbit if the IEEE 128-bit
1766         floating point value is in a GPR.
1767         * config/rs6000/rs6000.md (Fsignbit): Delete.
1768         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
1769         Update the length attribute if the value is in a GPR.
1770         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
1771         the sign or zero extension instruction, since the value is always 0/1.
1772         (signbit<mode>2_dm2): Delete using <Fsignbit>.
1774         PR target/78953
1775         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
1776         extracting SImode to a GPR register so that we can generate a
1777         store, limit the vector to be in a traditional Altivec register
1778         for the vextuwrx instruction.
1780 2017-01-03  Ian Lance Taylor  <iant@google.com>
1782         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
1784 2017-01-03  Martin Sebor  <msebor@redhat.com>
1786         PR tree-optimization/78696
1787         * gimple-ssa-sprintf.c (format_floating): Correct handling of
1788         precision.  Use MPFR for %f for greater fidelity.  Correct handling
1789         of %g.
1790         (pass_sprintf_length::compute_format_length): Set width and precision
1791         specified by asrerisk to void_node for vararg functions.
1792         (try_substitute_return_value): Adjust dump output.
1794 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
1796         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
1798 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
1800         * doc/invoke.texi (SPARC options): Document -mlra as the default.
1801         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
1802         -mlra/-mno-lra was passed to the compiler.
1804 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
1806         PR rtl-optimization/65618
1807         * emit-rtl.c (try_split): Move initialization of "before" and
1808         "after" to just before the call to emit_insn_after_setloc.
1810 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
1812         * doc/md.texi (Standard Names): Remove reference to Java frontend.
1814 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
1816         * dwarf2out.c (gen_enumeration_type_die): When
1817         -gno-strict-dwarf, add a DW_AT_encoding attribute.
1819 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
1821         PR tree-optimization/78965
1822         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
1823         Change first argument from const call_info & to call_info &.  For %n
1824         set info.nowrite to false.
1826         PR middle-end/78901
1827         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
1828         possibly throwing calls.
1830         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
1831         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
1832         and fns handling, rather than in a separate case SSA_NAME.
1834 2017-01-02  Jeff Law  <law@redhat.com>
1836         * config/darwin-driver.c (darwin_driver_init): Const-correctness
1837         fixes for first_period and second_period variables.
1839 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
1841         PR target/78967
1842         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
1843         (*insvqi_1): New insn pattern.
1844         (*insvqi_1_mem_rex64): Ditto.
1845         (*insvqi_2): Ditto.
1846         (*insvqi_3): Rename from *insvqi.
1848         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
1850 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
1852         * doc/cfg.texi (Edges): Remove reference to Java.
1853         (Maintaining the CFG): Ditto.
1855 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
1857         PR middle-end/77674
1858         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
1859         transparent aliases.
1861 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
1863         PR middle-end/77484
1864         * predict.def (PRED_CALL): Update hitrate.
1865         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
1866         * predict.c (tree_estimate_probability_bb): Split CALL predictor
1867         into direct/indirect/polymorphic variants.
1869 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
1871         Update copyright years.
1873         * gcc.c (process_command): Update copyright notice dates.
1874         * gcov-dump.c (print_version): Ditto.
1875         * gcov.c (print_version): Ditto.
1876         * gcov-tool.c (print_version): Ditto.
1877         * gengtype.c (create_file): Ditto.
1878         * doc/cpp.texi: Bump @copying's copyright year.
1879         * doc/cppinternals.texi: Ditto.
1880         * doc/gcc.texi: Ditto.
1881         * doc/gccint.texi: Ditto.
1882         * doc/gcov.texi: Ditto.
1883         * doc/install.texi: Ditto.
1884         * doc/invoke.texi: Ditto.
1886 Copyright (C) 2017 Free Software Foundation, Inc.
1888 Copying and distribution of this file, with or without modification,
1889 are permitted in any medium without royalty provided the copyright
1890 notice and this notice are preserved.