1 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
3 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
5 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
7 2017-01-18 Maxim Ostapenko <m.ostapenko@samsung.com>
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
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
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>
68 * doc/invoke.texi (fabi-version): Mention mangling fix for
71 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
74 * doc/invoke.texi (fabi-version): Document discriminator mangling.
76 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
79 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
80 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
82 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
84 (stack_protect_test): Ditto.
85 * config/rs6000/rs6000.opt (mstack-protector-guard=,
86 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
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):
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
129 (RLNM): New polymorphic function entry.
130 (VRLWMI): New monomorphic function entry.
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
138 2017-01-17 Jakub Jelinek <jakub@redhat.com>
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
147 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
150 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
152 2017-01-17 Jakub Jelinek <jakub@redhat.com>
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>
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>
323 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
326 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
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>
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>
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>
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
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>
380 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
383 2017-01-17 Alan Modra <amodra@gmail.com>
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>
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>
422 * gimplify.c (gimplify_init_constructor): If want_value and
423 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
427 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
428 sequence. Formatting fixes.
429 (doloop_optimize): Formatting fixes.
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
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
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
465 2017-01-16 Martin Sebor <msebor@redhat.com>
467 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
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>
478 * system.h: Poison strndup.
480 2017-01-16 Alan Modra <amodra@gmail.com>
483 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
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>
498 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
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,
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
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>
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
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
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>
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
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
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
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
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>
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>
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
666 (is_feasible_trace): Implement a cost model based on joiner
669 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
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.
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.
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>
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.
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>
750 * fold-const.c (maybe_nonzero_address): Return 1 for function
752 (tree_single_nonzero_warnv_p): Don't handle function local objects
756 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
759 2017-01-11 David Malcolm <dmalcolm@redhat.com>
762 * opts.c: Include "spellcheck.h"
763 (struct string_fragment): New struct.
764 (struct edit_distance_traits<const string_fragment &>): New
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
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
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
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>
802 * config/arm/arm.c (legitimize_pic_address): Handle reference to
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
814 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
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>
833 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
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
848 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
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>
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>
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
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
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>
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>
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>
991 * params.def (PARAM_INLINE_MIN_SPEEDUP,
992 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
993 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
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):
1006 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
1007 * common/config/msp430/msp430-common.c (msp430_handle_option):
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):
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
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>
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):
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>
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>
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
1107 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1109 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
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>
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>
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>
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>
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.
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>
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>
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
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
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
1219 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
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):
1242 * config/microblaze/microblaze.c (microblaze_must_save_register)
1243 (microblaze_expand_epilogue, microblaze_return_addr): Handle
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.
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
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,
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.
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,
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,
1297 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
1299 * config/arm/arm.md (*ldc): 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.
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.
1341 * config/arm/arm_acle_builtins.def (cdp): New.
1343 * config/arm/iterators.md (CDPI,CDP,cdp): New.
1344 * config/arm/neon.md: Rename all 'neon_const_bounds' to
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.
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>
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>
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.
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
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
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
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
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
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
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>
1579 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
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>
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
1638 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
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
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
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>
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
1696 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
1697 descriptions for -gdwarf-5 and emit them as uleb128 instead of
1700 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
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
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
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>
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>
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>.
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
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.
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>
1842 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
1843 (*insvqi_1): New insn pattern.
1844 (*insvqi_1_mem_rex64): 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>
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>
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.