]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
rs6000.c (altivec_expand_builtin): Fix typos in error messages.
[gcc.git] / gcc / ChangeLog
1 2016-12-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2
3 * config/rs6000/rs6000.c (altivec_expand_builtin): Fix typos in
4 error messages.
5
6 2016-12-29 Gerald Pfeifer <gerald@pfeifer.com>
7
8 * doc/extend.texi (Cilk Plus Builtins): cilkplus.org now uses
9 https by default.
10 * doc/passes.texi (Cilk Plus Transformation): Ditto.
11 * doc/generic.texi (Statements for C++): Ditto, and use @uref.
12
13 2016-12-28 Uros Bizjak <ubizjak@gmail.com>
14
15 PR target/78904
16 * config/i386/constraints.md (Bn): New special memory constraint.
17 * config/i386/predicates.md (norex_memory_operand): New predicate.
18 * config/i386/i386.md (*extzvqi_mem_rex64): New insn pattern and
19 corresponding peephole2 pattern.
20
21 2016-12-27 Sandra Loosemore <sandra@codesourcery.com>
22
23 * doc/cppdiropts.texi, doc/cppwarnopts.texi: New files, split from...
24 * doc/cppopts.texi: .... here.
25 * doc/cpp.texi (Invocation): Adjust includes.
26 * doc/invoke.texi (Option Summary): Add missing preprocesor-related
27 options. Adjust sorting and formatting.
28 (Warning Options): Include cppwarnopts.texi.
29 (Preprocessor Options): Add pointers and list the specific
30 preprocessor options from cppopts.texi first instead of last.
31 (Directory Options): Move/merge documentation of -I, -iquote, and
32 -I- to cppdiropts.texi. Include that file here.
33
34 2016-12-27 Michael Meissner <meissner@linux.vnet.ibm.com>
35
36 * config/rs6000/predicates.md (const_0_to_12_operand): Rename
37 predicate and change test from 0..11 to 0..12 to match the
38 semantics of the word extract/insert instructions. Change all
39 callers.
40 (const_0_to_11_operand): Likewise.
41 * config/rs6000/rs6000.c (altivec_expand_builtin): Likewise.
42 * config/rs6000/vsx.md (vextract4b): Likewise.
43 (vextract4b_internal): Likewise.
44 (vinsert4b): Likewise.
45 (vinsert4b_internal): Likewise.
46 (vinsert4b_di): Likewise.
47 (vinsert4b_di_internal): Likewise.
48 * config/rs6000/rs6000.md (zero_extendsi<mode>2): Fix offset used
49 in xxextractuw to zero extend the word in the vector registers.
50 (lfiwzx): Likewise.
51
52 2016-12-27 Uros Bizjak <ubizjak@gmail.com>
53
54 * config/i386/i386.c (ix86_secondary_reload): Require QImode
55 intermediate for QImode mask register spill only for !TARGET_AVX512DQ.
56 Always use true_regnum to determine operand regno.
57
58 2016-12-27 Sandra Loosemore <sandra@codesourcery.com>
59
60 * doc/cppopts.texi: Delete redundant documentation for -x. Move
61 -fno-show-column documentation to...
62 * doc/invoke.texi (Diagnostic Message Formatting Options): ...here.
63 Update the option summary.
64
65 2016-12-27 Uros Bizjak <ubizjak@gmail.com>
66
67 * config/i386/i386.md (VI_512): Remove.
68 (vcond<V_512:mode><VI_AVX512BW:mode>): Use VI_AVX512BW
69 mode iterator instead of VI_512.
70 (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto.
71
72 2016-12-27 Jakub Jelinek <jakub@redhat.com>
73
74 PR translation/78922
75 * config/i386/stringop.opt: Remove.
76
77 2016-12-27 Uros Bizjak <ubizjak@gmail.com>
78
79 PR target/78904
80 * config/i386/constraints.md (Bc): New special memory constraint.
81 * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use Bc
82 constraint with nonimmediate_operand to allow constant memory operands.
83 (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1)
84 (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use Bc constraint
85 with general_operand to allow constant memory operands.
86
87 2016-12-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
88
89 * c-family/c.opt (flag_chkp_flexible_struct_trailing_arrays):
90 Add new option.
91 (fchkp-narrow-to-innermost-array): Fix typo.
92 * doc/cpp.texi (flag_chkp_flexible_struct_trailing_arrays): Ditto.
93 * tree-chkp.c (chkp_may_narrow_to_field ): Forbid
94 narrowing when flag_chkp_flexible_struct_trailing_arrays is used
95 and the field is the last array field in the structure.
96
97 2016-12-27 Uros Bizjak <ubizjak@gmail.com>
98
99 * config/i386/i386.md (andqi_ext_1): Use general_operand
100 predicate for operand 2.
101
102 2016-12-27 Uros Bizjak <ubizjak@gmail.com>
103
104 PR target/78904
105 * config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use
106 nonimmediate_operand instead of nonimmediate_x64nomem_operand.
107 (*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1)
108 (*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use general_operand
109 instead of general_x64nomem_operand.
110 * config/i386/predicates.md (nonimmediate_x64nomem_operand): Remove.
111 (general_x64nomem_operand): Ditto.
112
113 2016-12-26 Uros Bizjak <ubizjak@gmail.com>
114
115 PR target/78904
116 * config/i386/i386.md (addqi_ext_1): Canonicalize insn pattern w.r.t.
117 zero_extract RTXes.
118 (*addqi_ext_2): Ditto.
119 (testqi_ext_ccno_0): Canonicalize expander w.r.t. zero_extract RTXes.
120 (testqi_ext_1_ccno): Rename from testqi_ext_ccno_0.
121 (*testqi_ext_0): Merge with *testqi_ext_1.
122 (*testqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
123 Update corresponding splitter.
124 (*testqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes.
125 (*andqi_ext_0): Merge with *andqi_ext_1.
126 (andqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
127 Rename from *andqi_ext_1. Update corresponding splitter and
128 peephole2 patterns.
129 (*andqi_ext_1_cc): Rename from *andqi_ext_0_cc.
130 (*andqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes.
131 (*<any_or:code>qi_ext_0): Merge with *andqi_ext_1.
132 (*<any_or:code>qi_ext_1): Canonicalize insn pattern w.r.t.
133 zero_extract RTXes. Update corresponding splitter.
134 (*<any_or:code>qi_ext_2): Canonicalize insn pattern w.r.t.
135 zero_extract RTXes.
136 (xorqi_cc_ext_1): Canonicalize expander w.r.t. zero_extract RTXes.
137 (xorqi_ext_1_cc): Rename from xorqi_cc_ext_1.
138 (*xorqi_cc_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
139 Update corresponding splitter.
140 (*xorqi_ext_1_cc): Rename from *xorqi_cc_ext_1.
141 (isinfxf2): Update calls to renamed expanders.
142 (isinf<mode>2): Ditto.
143 * config/i386/i386.c (ix86_expand_fp_compare): Ditto.
144 (ix86_emit_fp_unordered_jump): Ditto.
145 (ix86_emit_i387_round): Ditto.
146
147 2016-12-26 Eric Botcazou <ebotcazou@adacore.com>
148
149 * doc/invoke.texi (SPARC options): Add missing documentation for -mlra.
150
151 * doc/cpp.texi (Invocation): Remove space in command.
152
153 2016-12-25 Sandra Loosemore <sandra@codesourcery.com>
154
155 * doc/cpp.texi (Invocation): Revise to indicate that GCC driver
156 options are only documented in the GCC manual.
157 * doc/cppopts.texi: Delete documentation of GCC driver options
158 -o, -Wall, -Wtraditional, -Werror, -Wsystem-headers, -w,
159 -pedantic, -pedantic-errors, -std=, -ansi, --help, --target-help,
160 -v, -version. Update -Wcomment, -Wtrigraphs, -Wundef,
161 -Wexpansion-to-defined, -Wno-endif-labels, -traditional,
162 -traditional-cpp, -trigraphs to merge text previously in GCC manual.
163 * doc/invoke.texi (Option Summary): Move -trigraphs, -traditional,
164 and -traditional-cpp from C dialect options to preprocessor options.
165 (C Dialect Options): Likewise.
166 (Warning Options): Delete documentation of -Wcomment, -Wtrigraphs,
167 -Wexpansion-to-defined, -Wundef, and -Wno-endif-labels.
168
169 2016-12-24 Richard Sandiford <richard.sandiford@arm.com>
170
171 * tree-core.h (tree_base): Document the meaning of public_flag
172 for SSA names.
173 * tree.h (SSA_NAME_IS_VIRTUAL_OPERAND): New macro.
174 (SET_SSA_NAME_VAR_OR_IDENTIFIER): Record whether the variable
175 is a virtual operand.
176 * gimple-expr.h (virtual_operand_p): Use SSA_NAME_IS_VIRTUAL_OPERAND.
177
178 2016-12-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
179
180 * tree-pretty-print.c (dump_generic_node): Change dump format for
181 REALPART_EXPR and IMAGPART_EXPR with TDF_GIMPLE.
182
183 2016-12-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
184
185 * varasm.c (build_constant_desc): Use the alignment of the var
186 decl instead of the original expression.
187
188 2016-12-22 Dominik Vogt <vogt@linux.vnet.ibm.com>
189
190 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
191 __S390_ARCH_LEVEL__.
192
193 2016-12-22 Martin Liska <mliska@suse.cz>
194
195 PR tree-optimization/78886
196 * tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
197 is equal to NULL.
198
199 2016-12-22 Jakub Jelinek <jakub@redhat.com>
200
201 PR bootstrap/78817
202 * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Revert
203 2016-12-15 change.
204
205 2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
206
207 PR rtl-optimization/78580
208 * ira-costs.c (find_costs_and_classes): Make regno_aclass
209 translated into an allocno class.
210
211 2016-12-21 Jakub Jelinek <jakub@redhat.com>
212
213 PR bootstrap/78817
214 * tree-pass.h (make_pass_post_ipa_warn): Declare.
215 * builtins.c (validate_arglist): Adjust get_nonnull_args call.
216 Check for NULL pointer argument to nonnull arg here.
217 (validate_arg): Revert 2016-12-14 changes.
218 * calls.h (get_nonnull_args): Remove declaration.
219 * tree-ssa-ccp.c: Include diagnostic-core.h.
220 (pass_data_post_ipa_warn): New variable.
221 (pass_post_ipa_warn): New class.
222 (pass_post_ipa_warn::execute): New method.
223 (make_pass_post_ipa_warn): New function.
224 * tree.h (get_nonnull_args): Declare.
225 * tree.c (get_nonnull_args): New function.
226 * calls.c (maybe_warn_null_arg): Removed.
227 (maybe_warn_null_arg): Removed.
228 (initialize_argument_information): Revert 2016-12-14 changes.
229 * passes.def: Add pass_post_ipa_warn after first ccp after IPA.
230
231 2016-12-21 Pat Haugen <pthaugen@us.ibm.com>
232
233 PR rtl-optimization/11488
234 * common/config/rs6000/rs6000-common.c
235 (rs6000_option_optimization_table): Enable -fsched-pressure.
236 * config/rs6000/rs6000.c (TARGET_COMPUTE_PRESSURE_CLASSES): Define
237 target hook.
238 (rs6000_option_override_internal): Set default -fsched-pressure
239 algorithm.
240 (rs6000_compute_pressure_classes): Implement target hook.
241
242 2016-12-21 Bill Seurer <seurer@linux.vnet.ibm.com>
243
244 PR sanitizer/65479
245 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
246 -fasynchronous-unwind-tables option when -fsanitize=address is
247 specified.
248
249 2016-12-21 Bernd Schmidt <bschmidt@redhat.com>
250
251 PR target/71321
252 * config/i386/i386.md (lea<mode>_general_2b, lea<mode>_general_3b): New
253 patterns.
254 * config/i386/predicates.md (const123_operand): New.
255
256 2016-12-21 Jakub Jelinek <jakub@redhat.com>
257 Martin Liska <mliska@suse.cz>
258
259 PR driver/78863
260 * gcc.c (driver::build_option_suggestions): Do not add
261 -fsanitize=all as a suggestion candidate.
262
263 2016-12-21 Alexander Monakov <amonakov@ispras.ru>
264
265 PR target/78831
266 * config/nvptx/nvptx.c (init_softstack_frame): Remove assert. Compute
267 crtl->is_leaf only if unset. Adjust comment.
268
269 2016-12-21 Andrew Pinski <apinski@cavium.com>
270
271 * match.pd (max:c @0 (plus@2 @0 INTEGER_CST@1)): New Pattern.
272 (min:c @0 (plus@2 @0 INTEGER_CST@1)) : New Pattern.
273
274 2016-12-20 James Greenhalgh <james.greenhalghj@arm.com>
275
276 * common.opt (excess_precision): Tag as SetByCombined.
277 * opts.c (set_fast_math_flags): Also set
278 flag_excess_precision_cmdline.
279 (fast_math_flags_set_p): Also check flag_excess_precision_cmdline.
280 * doc/invoke.texi (-fexcess-precision): Drop text saying the
281 option has no effect under -ffast-math, make it clear that
282 -ffast-math will cause -fexcess-precision=fast by default even for
283 standards compliant modes.
284 (-ffast-math): Document that this sets -fexcess-precision=fast.
285
286 2016-12-20 Richard Biener <rguenther@suse.de>
287
288 * passes.c (execute_one_pass): Handle going out of SSA w/o
289 hitting pass_startwith. Handle skipping property providers.
290
291 2016-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
292
293 PR target/78694
294 * config/arm/arm.c (dump_minipool): Copy mp->value before emitting it
295 in the minipool to avoid invalid RTL sharing.
296
297 2016-12-19 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
298
299 * config/rs6000/rs6000-protos.h (expand_strn_compare): Declare.
300 * config/rs6000/rs6000.md (UNSPEC_CMPB): New unspec.
301 (cmpb<mode>3): pattern for generating cmpb.
302 (cmpstrnsi): pattern to expand strncmp ().
303 * config/rs6000/rs6000.opt (mstring-compare-inline-limit): Add a new
304 target option for controlling how much code inline expansion of
305 strncmp() will be allowed to generate.
306 * config/rs6000/rs6000.c (expand_strncmp_align_check): generate code
307 for runtime page crossing check of strncmp () args.
308 (expand_strn_compare): Function to do builtin expansion of strncmp ().
309
310 2016-12-19 David Malcolm <dmalcolm@redhat.com>
311
312 * print-rtl-function.c (print_rtx_function): Update
313 example in comment to reflect current format.
314
315 2016-12-19 Uros Bizjak <ubizjak@gmail.com>
316
317 * config/i386/i386.md (*popcounthi2_1): New insn_and_split pattern.
318
319 2016-12-19 Sandra Loosemore <sandra@codesourcery.com>
320
321 * doc/cpp.texi: Clean up anachronistic C99 references and remove
322 discussion of very old GCC versions.
323 (Differences from previous versions): Delete entire section.
324
325 2016-12-19 Will Schmidt <will_schmidt@vnet.ibm.com>
326
327 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
328 early expansion of vector multiply and subtract builtins.
329
330 2016-12-19 David Malcolm <dmalcolm@redhat.com>
331
332 * print-rtl.c (rtx_writer::print_rtx_operand_code_r): For
333 non-virtual pseudos in compact mode, wrap the regno in '<' and '>'
334 rather than using a '%' prefix.
335 * rtl-tests.c (selftest::test_dumping_regs): Update for above change.
336
337 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
338
339 PR target/78748
340 * config/s390/s390.md ("*andc_split_<mode>"): Allow memory destination
341 only if it coincides with operand 2.
342
343 2016-12-19 Dominik Vogt <vogt@linux.vnet.ibm.com>
344
345 * combine.c (change_zero_ext): Skip generation of redundant AND.
346
347 2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com>
348
349 * config/netbsd.h (LINK_EH_SPEC): Define.
350
351 2016-12-18 Eric Botcazou <ebotcazou@adacore.com>
352
353 * lra-constraints.c (process_address): Add forward declaration.
354 (simplify_operand_subreg): In the MEM case, if the adjusted memory
355 reference is not sufficient aligned and the address was invalid,
356 reload the address before reloading the original memory reference.
357 Fix long lines and add a final return for the sake of clarity.
358
359 2016-12-17 Jakub Jelinek <jakub@redhat.com>
360
361 PR sanitizer/78832
362 * sanopt.c (sanitize_asan_mark_unpoison): Remove next variable, use
363 continue if gsi_next should be skipped.
364 (sanitize_asan_mark_poison): Remove prev variable, use continue if
365 gsi_prev should be skipped. When removing ASAN_MARK, do gsi_prev
366 first and gsi_remove on a previously made copy of the iterator.
367
368 2016-12-17 Andrew Senkevich <andrew.senkevich@intel.com>
369
370 * config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
371 * config/i386/avx512dqintrin.h: Ditto.
372 * config/i386/avx512fintrin.h: Ditto.
373 * config/i386/i386-builtin.def (__builtin_ia32_kaddqi,
374 __builtin_ia32_kaddhi, __builtin_ia32_kaddsi,
375 __builtin_ia32_kadddi): New.
376 * config/i386/sse.md (kadd<mode>): New.
377
378 2016-12-17 Uros Bizjak <ubizjak@gmail.com>
379
380 * config/i386/i386.md (*tzcnt<mode>_1): Merge *tzcnt<mode>_1_falsedep_1
381 and *tzcnt<mode>_1 to define_insn_and_split pattern. Adjust split
382 condition to split after epilogue_completed.
383 (ctz<mode>2): Remove expander.
384 (ctz<mode>2): Merge *ctz<mode>2_falsedep_1 and *ctz<mode>2 to
385 define_insn_and_split pattern. Adjust split condition to split
386 after epilogue_completed.
387 (clz<mode>2_lznct): Remove expander.
388 (clz<mode>2_lzcnt): Merge *clz<mode>2_lzcnt_falsedep_1 and
389 *clz<mode>2 to define_insn_and_split pattern. Adjust split
390 condition to split after epilogue_completed.
391 (<lt_zcnt>_<mode>): Remove expander.
392 (<lt_zcnt>_<mode>): Merge *<lt_zcnt>_<mode>_falsedep_1 and
393 *<lt_zcnt>_<mode> to define_insn_and_split pattern. Adjust split
394 condition to split after epilogue_completed.
395 (<lt_zcnt>_hi): New insn pattern.
396 (popcount<mode>2): Remove expander.
397 (popcount<mode>2): Merge *popcount<mode>2_falsedep_1 and
398 *popcount<mode>2 to define_insn_and_split pattern. Adjust split
399 condition to split after epilogue_completed.
400 (popcounthi2): New insn pattern.
401
402 2016-12-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
403
404 * config/rs6000/altivec.md (UNSPEC_CMPRB): New unspec value.
405 (UNSPEC_CMPRB2): New unspec value.
406 (UNSPEC_CMPEQB): New unspec value.
407 (cmprb): New expansion.
408 (*cmprb_internal): New insn.
409 (*setb_internal): New insn.
410 (cmprb2): New expansion.
411 (*cmprb2_internal): New insn.
412 (cmpeqb): New expansion.
413 (*cmpeqb_internal): New insn.
414 * config/rs6000/rs6000-builtin.def (BU_P9_2): New macro.
415 (BU_P9_64BIT_2): Likewise.
416 (BU_P9_OVERLOAD_2): Likewise.
417 (CMPRB): Add byte-in-range built-in function.
418 (CMBRB2): Add byte-in-either-range built-in function.
419 (CMPEQB): Add byte-in-set built-in function.
420 (CMPRB): Add overload support for byte-in-range function.
421 (CMPRB2): Add overload support for byte-in-either-range function.
422 (CMPEQB): Add overload support for byte-in-set built-in function.
423 * config/rs6000/rs6000-c.c (P9_BUILTIN_CMPRB): Macro expansion to
424 define argument types for new builtin.
425 (P9_BUILTIN_CMPRB2): Likewise.
426 (P9_BUILTIN_CMPEQB): Likewise.
427 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rearrange
428 the order of presentation for certain built-in functions
429 (scalar_extract_exp, scalar_extract_sig, scalar_insert_exp)
430 (scalar_cmp_exp_gt, scalar_cmp_exp_lt, scalar_cmp_exp_eq)
431 (scalar_cmp_exp_unordered, scalar_test_data_class)
432 (scalar_test_neg) to improve locality and flow. Document
433 the new __builtin_scalar_byte_in_set,
434 __builtin_scalar_byte_in_range, and
435 __builtin_scalar_byte_in_either_range functions.
436
437 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
438
439 * config/aarch64/aarch64.md: New define_split above bswap<mode>2.
440
441 2016-12-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
442
443 * config/aarch64/aarch64.md: New define_split above insv<mode>.
444
445 2016-12-16 Jakub Jelinek <jakub@redhat.com>
446
447 PR c/78408
448 * tree-ssa-ccp.c: Include tree-dfa.h.
449 (optimize_memcpy): New function.
450 (pass_fold_builtins::execute): Use it. Remove useless conditional
451 break after BUILT_IN_VA_*.
452
453 2016-12-16 Marek Polacek <polacek@redhat.com>
454
455 PR tree-optimization/78819
456 * tree-vrp.c (find_switch_asserts): Return if the insertion limit is 0.
457 Don't register an assertion if the default case shares a label with
458 another case.
459
460 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com>
461
462 * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0.
463 (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2.
464 * config/arm/thumb2.md (thumb2_negdi2): Remove pattern.
465
466 2016-12-16 Wilco Dijkstra <wdijkstr@arm.com>
467
468 * config/arm/arm.c (thumb_core_reg_alloc_order): Swap R12 and R14.
469
470 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com>
471
472 * config/arc/arc.md (call_prof): Remove.
473 (call_value_prof): Likewise.
474 (sibcall_prof): Likewise.
475 (sibcall_value_prof): Likewise.
476
477 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com>
478
479 * config/arc/arc.h (LINK_SPEC): Tidy up.
480 (ENDFILE_SPEC): Likewise.
481 (LIB_SPEC): Likewise.
482 (STARTFILE_SPEC): Include gcrt0 when profiling.
483 (FUNCTION_PROFILER): Use __mcount.
484 * config/arc/arc.opt (mucb-mcount): Remove.
485 * doc/invoke.texi (ARC): Remove mucb-mcount doc.
486 * arc/arc-protos.h (arc_profile_call): Remove.
487 * config/arc/arc.c (write_profile_sections): Likewise.
488 (arc_profile_call): Likewise.
489 (unspec_prof_hash): Likewise.
490 (unspec_prof_htab_eq): Likewise.
491 (arc_legitimate_constant_p): Remove UNSPEC_PROF.
492 (arc_reorg): Remove call to write_profile_sections.
493 * config/arc/arc.md (call): Remove call to arc_profile_call.
494 (call_value): Likewise.
495 (sibcall): Likewise.
496 (sibcall_value): Likewise.
497 (define_constants): Remove UNSPEC_PROF.
498
499 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com>
500
501 * config/arc/arc.md (mulsidi_600): Change to insn_and_split,
502 generate new mul64 insn for core multiplication work.
503 (umulsidi_600): Likewise, but use mulu64 insn.
504 (mul64): New pattern, content taken from old mulsidi_600 insn pattern.
505 (mulu64): Likewise, but using umulsidi_600.
506 (mulsidi3): Remove move to destination, this is now handled by
507 mulsidi_600 insn_and_split.
508 (umulsidi3): Likewise, but using umulsidi_600.
509
510 2016-12-16 Richard Biener <rguenther@suse.de>
511
512 PR c++/71694
513 * langhooks-def.h (lhd_unit_size_without_reusable_padding): Declare.
514 (LANG_HOOKS_UNIT_SIZE_WITHOUT_REUSABLE_PADDING): Define.
515 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Adjust.
516 * langhooks.h (struct lang_hooks_for_types): Add
517 unit_size_without_reusable_padding.
518 * langhooks.c (lhd_unit_size_without_reusable_padding): New.
519 * stor-layout.c (finish_bitfield_representative): Use
520 unit_size_without_reusable_padding langhook to decide on the
521 last representatives size.
522
523 2016-12-16 Richard Biener <rguenther@suse.de>
524
525 PR middle-end/71632
526 * expr.c (expand_cond_expr_using_cmove): Bail out early if
527 we end up recursing via TER.
528
529 2016-12-15 Martin Sebor <msebor@redhat.com>
530
531 PR bootstrap/78817
532 * vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Assert
533 a pointer is non-null.
534
535 2016-12-15 Andrew Senkevich <andrew.senkevich@intel.com>
536
537 * config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
538 * config/i386/avx512dqintrin.h: Ditto.
539 * config/i386/avx512fintrin.h: Ditto.
540 * config/i386/i386-builtin.def (__builtin_ia32_kmovb,
541 __builtin_ia32_kmovd, __builtin_ia32_kmovq): New.
542 (__builtin_ia32_kmov16): Rename to __builtin_ia32_kmovw.
543 * config/i386/sse.md (kmov<mskmodesuffix>): New.
544
545 2016-12-15 Uros Bizjak <ubizjak@gmail.com>
546
547 * config/i386/i386.md (ffs<mode>2): Generate CCCmode flags register
548 for TARGET_BMI.
549 (ffssi2_no_cmove): Ditto.
550 (*tzcnt<mode>_1_falsedep_1): New insn_and_split pattern.
551 (*tzcnt<mode>_1_falsedep): New insn pattern.
552
553 (LT_ZCNT): New mode iterator.
554 (lt_zcnt): New mode attribute.
555 (lt_zcnt_type): New mode attribute.
556 (<lt_zcnt>_<mode>): Macroize expander from bmi_tzcnt_<mode> and
557 lzcnt_<mode> using LT_ZCNT mode iterator.
558 (*<lt_zcnt>_<mode>_falsedep_1): Macroize insn from
559 *bmi_tzcnt_<mode>_falsedep_1 and *lzcnt_<mode>_falsedep_1
560 using LT_ZCNT mode iterator.
561 (*<lt_zcnt>_<mode>_falsedep): Macroize insn from
562 *bmi_tzcnt_<mode>_falsedep and *lzcnt_<mode>_falsedep
563 using LT_ZCNT mode iterator.
564 (*<lt_zcnt>_<mode>): Macroize insn from *bmi_tzcnt_<mode>
565 and *lzcnt_<mode> using LT_ZCNT mode iterator.
566 * config/i386/i386-builtin.def (__builtin_ia32_tzcnt_u16)
567 (__builtin_ia32_tzcnt_u32, __builtin_ia32_tzcnt_u64, __builtin_ctzs):
568 Update for rename.
569
570 2016-12-15 Jakub Jelinek <jakub@redhat.com>
571
572 * ipa-cp.c (class ipcp_bits_lattice): Formatting fixes.
573 (print_ipcp_constant_value): Likewise.
574 (ipcp_cloning_candidate_p): Likewise.
575 (ipcp_bits_lattice::get_value_and_mask): Likewise.
576 (ipcp_bits_lattice::meet_with_1): Likewise.
577 (ipcp_bits_lattice::meet_with): Likewise.
578 (initialize_node_lattices): Likewise.
579 (ipcp_lattice::add_value): Likewise.
580 (propagate_vals_accross_pass_through): Renamed to ...
581 (propagate_vals_across_pass_through): ... this function.
582 (propagate_vals_accross_ancestor): Renamed to ...
583 (propagate_vals_across_ancestor): ... this.
584 (propagate_scalar_accross_jump_function): Renamed to ...
585 (propagate_scalar_across_jump_function): ... this.
586 Adjust calls to above functions.
587 (propagate_context_accross_jump_function): Renamed to ...
588 (propagate_context_across_jump_function): ... this.
589 (propagate_bits_accross_jump_function): Renamed to ...
590 (propagate_bits_accross_jump_function): ... this. Formatting fixes.
591 (propagate_vr_accross_jump_function): Renamed to ...
592 (propagate_vr_across_jump_function): ... this.
593 (merge_agg_lats_step): Formatting fixes.
594 (propagate_constants_accross_call): Renamed to ...
595 (propagate_constants_across_call): ... this. Adjust calls to above
596 functions.
597 (ipa_get_indirect_edge_target_1): Formatting fixes.
598 (gather_context_independent_values): Likewise.
599 (estimate_local_effects): Likewise.
600 (add_all_node_vals_to_toposort): Likewise.
601 (propagate_constants_topo): Adjust calls to above functions.
602 (get_replacement_map): Formatting fixes.
603 (dump_profile_updates): Likewise.
604 (update_profiling_info): Likewise.
605 (update_specialized_profile): Likewise.
606 (create_specialized_node): Likewise.
607 (find_more_contexts_for_caller_subset): Likewise.
608 (decide_whether_version_node): Likewise.
609 (identify_dead_nodes): Likewise.
610 (ipcp_decision_stage): Likewise.
611 (ipcp_store_bits_results): Likewise.
612 (ipcp_store_vr_results): Likewise.
613 (ipcp_driver): Likewise.
614
615 2016-12-15 David Malcolm <dmalcolm@redhat.com>
616
617 PR preprocessor/78680
618 PR preprocessor/78811
619 * input.c (struct selftest::lexer_test): Add field
620 m_implicitly_expect_EOF.
621 (selftest::lexer_error_sink): New class.
622 (selftest::lexer_error_sink::s_singleton): New global.
623 (selftest::lexer_test::lexer_test): Initialize new field
624 "m_implicitly_expect_EOF".
625 (selftest::lexer_test::~lexer_test): Conditionalize the
626 check for the EOF token on the new field.
627 (selftest::test_lexer_string_locations_raw_string_unterminated):
628 New function.
629 (selftest::input_c_tests): Call the new test.
630
631 2016-12-15 Wilco Dijkstra <wdijkstr@arm.com>
632
633 * config/arm/arm.h (TARGET_BACKTRACE): Use crtl->is_leaf.
634 * config/arm/arm.c (arm_option_check_internal): Improve comment.
635 (thumb_force_lr_save): Use crtl->is_leaf.
636 (arm_get_frame_offsets): Remove comment. Use crtl->is_leaf.
637 (thumb_far_jump_used_p): Remove comment.
638 (arm_frame_pointer_required): Use crtl->is_leaf.
639
640 2016-12-15 Jakub Jelinek <jakub@redhat.com>
641
642 * doc/extend.texi: Clean up @xref{...} uses.
643 * doc/invoke.texi: Likewise.
644
645 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
646
647 * arm-fpus.def: Add CNAME field to all FPU definitions.
648 * genopt.sh: Use explicit enumeration tags for FPU entries.
649 * arm-tables.opt: Regenerated.
650 * arm.opt (mfpu): Provide initial value.
651 * arm-opts.h (enum fpu_type): Build the enumeration from the list of
652 available FPUs. Add 'auto' entry on the end.
653 * arm.c (arm_configure_build_target): Only do explicit configuration
654 of the FPU features if the selected FPU is not 'auto'.
655 (arm_option_override): Adjust initialization of arm_fpu_index.
656 Emit an error if we have a hard float ABI request, but the processor
657 does not support floating-point.
658 (arm_option_print): Handle -mfpu=auto.
659 (arm_valid_target_attribute_rec): Don't permit fpu=auto in pragmas
660 or function attributes.
661 (arm_identify_fpu_from_isa): Handle effective soft-float when
662 the FPU is automatically detected.
663 * arm-cores.def (arm1136jf-s): Add feature ISA_FP_DBL.
664 (arm1176jzf-s): Likewise.
665 (mpcore): Likewise.
666 (arm1156t2f-s): Likewise.
667
668 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
669
670 * arm-fpus.def (ARM_FPU): Remove features field from all definitions.
671 * arm.h (arm_fpu_feature_set): Delete typedef.
672 (FPU_FL_NONE): Delete.
673 (FPU_FL_NEON): Delete.
674 (FPU_FL_FP16): Delete.
675 (FPU_FL_CRYPTO): Delete.
676 (FPU_FL_DBL): Delete.
677 (FPU_FL_D32): Delete.
678 (FPU_FL_VFPv2): Delete.
679 (FPU_FL_VFPv3): Delete.
680 (FPU_FL_VFPv4): Delete.
681 (FPU_FL_VFPv5): Delete.
682 (FPU_FL_AMRv8): Delete.
683 (FPU_VFPv2): Delete.
684 (FPU_VFPv3): Delete.
685 (FPU_VFPv4): Delete.
686 (FPU_VFPv5): Delete.
687 (FPU_ARMv8): Delete.
688 (FPU_DBL): Delete.
689 (FPU_D32): Delete.
690 (FPU_NEON): Delete.
691 (FPU_CRYPTO): Delete.
692 (FPU_FP16): Delete.
693 (arm_fpu_desc): Delete features field.
694 * arm.c (all_fpus): Don't initialize feature field.
695
696 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
697
698 * arm.c (arm_can_inline_p): Use ISA features for determining
699 inlinability.
700
701 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
702
703 * arm-protos.h (arm_configure_build_target): Change second argument
704 to cl_target_options.
705 * arm.c (arm_configure_build_target): Likewise.
706 (arm_option_restore): Update accordingly.
707 (arm_option_override): Create the target_option_default_node before
708 calling arm_configure_build_target. Use it in call of latter.
709 Resynchronize after all other overrides have been calculated.
710 (arm_valid_target_attribute_tree): Use the target options for
711 reconfiguration. Resynchronize after performing override checks.
712 * arm-c.c (arm_pragma_target_parse): Use target optiosn from cur_tree
713 to reconfigure the build target.
714
715 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
716
717 * arm.h (TARGET_VFPD32): Use arm_active_target.
718 (TARGET_VFP3): Likewise.
719 (TARGET_VFP5): Likewise.
720 (TARGET_VFP_SINGLE): Likewise.
721 (TARGET_VFP_DOUBLE): Likewise.
722 (TARGET_NEON_FP16): Likewise.
723 (TARGET_FP16): Likewise.
724 (TARGET_FMA): Likewise.
725 (TARGET_FPU_ARMV8): Likewise.
726 (TARGET_CRYPTO): Likewise.
727 (TARGET_NEON): Likewise.
728 (TARGET_FPU_FEATURES): Delete.
729 * arm.c (arm_option_check_internal): Check for iwmmxt conflict with
730 Neon using arm_active_target.
731
732 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
733
734 * arm.h (TARGET_FPU_NAME): Delete.
735 * arm.c (arm_identify_fpu_from_isa): New function.
736 (arm_declare_function_name): Use it to get the name for the FPU.
737
738 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
739
740 * arm-protos.h: Include sbitmap.h
741 (arm_configure_build_target): Make public.
742 * arm.c (arm_configure_build_target): Now not static.
743 (arm_valid_target_attribute_rec): Move internal option check to...
744 (arm_valid_target_attribute_tree0: ... here. Also reconfingure the
745 active target.
746 (arm_override_options_after_change): Call arm_configure_build_target.
747 (isa_all_fpubits): Renamed from isa_fpubits.
748 (arm_option_restore): New function.
749 (TARGET_OPTION_RESTORE): Register it.
750 (arm_configure_build_target): Initialize the FPU capability bits in
751 the isa.
752 (arm_option_override): Move the code that forces the setting of the
753 FPU option before the call to arm_configure_build_target.
754 * arm.opt (march): Mark as Save.
755 (mcpu, mtune): Likewise.
756 * arm-c.c (arm_pragma_target_parse): Reconfigure the build target
757 after pragmas change the target options.
758
759 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
760
761 * arm-isa.h (isa_feature): Add bits for VFPv4, FPv5, fp16conv,
762 fP_dbl, fp_d32 and fp_crypto.
763 (ISA_ALL_FPU): Add all the new bits.
764 (ISA_VFPv2, ISA_VFPv3, ISA_VFPv4, ISA_FPv5): New macros.
765 (ISA_FP_ARMv8, ISA_FP_DBL, ISA_FP_D32, ISA_NEON, ISA_CRYPTO): Likewise.
766 * arm-fpus.def: Add ISA features to all FPUs.
767 * arm.h: (arm_fpu_desc): Add new field for ISA bits.
768 * arm.c (all_fpus): Initialize it.
769 * arm-tables.opt: Regenerated.
770
771 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
772
773 * arm.h (FPU_FL_VFPv2) New feature bit.
774 (FPU_FL_VFPv3, FPU_FL_VFPv4, FPU_FL_VFPv5, FPU_FL_ARMv8): Likewise.
775 (FPU_VFPv2, FPU_VFPv3, FPU_VFPv4, FPU_VFPv5, FPU_ARMv8): New helper
776 macros.
777 (FPU_DBL, FPU_D32, FPU_NEON, FPU_CRYPTO, FPU_FP16): Likewise.
778 (TARGET_FPU_REV): Delete.
779 (TARGET_VFP3): Use feature bits.
780 (TARGET_VFP5): Likewise.
781 (TARGET_FMA): Likewise.
782 (TARGET_FPU_ARMV8): Likewise.
783 (struct arm_fpu_desc): Delete rev field.
784 * arm-fpus.def: Delete REV entry, use new feature bits and macros.
785 * arm.c (all_fpus): Delete rev field.
786
787 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
788
789 * arm.h (vfp_reg_type): Delete.
790 (TARGET_FPU_REGS): Delete.
791 (arm_fpu_desc): Delete regs field.
792 (FPU_FL_NONE, FPU_FL_NEON, FPU_FL_FP16, FPU_FL_CRYPTO): Use unsigned
793 values.
794 (FPU_FL_DBL, FPU_FL_D32): Define.
795 (TARGET_VFPD32): Use feature test.
796 (TARGET_VFP_SINGLE): Likewise.
797 (TARGET_VFP_DOUBLE): Likewise.
798 * arm-fpus.def: Update all entries for new feature bits.
799 * arm.c (all_fpus): Update initializer macro.
800 (arm_can_inline_p): Remove test on fpu regs.
801
802 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
803
804 * arm.h (arm_fp_model): Delete.
805
806 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
807
808 * arm-cores.def: Remove FLAGS field from all core definitions.
809 * arm-arches.def: Likewise.
810 * arm-opts.h (enum processor_type): Remove FLAGS parameter from
811 ARM_CORES macro.
812 (arm_arch_core_flags): Likewise, plus ARM_ARCH macro.
813 * arm-protos.h (FL_*): Delete.
814 (arm_feature_set): Delete.
815 (ARM_FSET_*): Delete.
816 * arm.c (struct processors): Delete flags field.
817 (all_cores): Delete FLAGS parameter from macro, don't initialize flags.
818 (all architectures): Likewise.
819
820 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
821
822 * arm-opts.h (struct arm_arch_core_flag): Add new field ISA.
823 Initialize it.
824 (arm_arch_core_flag): Delete flags field.
825 (arm_arch_core_flags): Don't initialize flags field.
826 * common/config/arm/arm-common.c (check_isa_bits_for): New function.
827 (arm_target_thumb_only): Use new isa bits arrays.
828
829 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
830
831 * arm-protos.h (insn_flags): Delete declaration.
832 (arm_arch7ve): Declare.
833 * arm.c (insn_flags): Delete.
834 (arm_arch7ve): New variable.
835 (arm_selected_cpu): Delete.
836 (arm_option_check_internal): Use new ISA bitmap.
837 (arm_option_override_internal): Likewise.
838 (arm_configure_build_target): Declare arm_selected_cpu locally.
839 (arm_option_override): Use new ISA bitmap. Initialize arm_arch7ve.
840 Rearrange variable intialization by general function.
841 * arm.h (TARGET_HAVE_LPAE): Use arm_arch7ve.
842
843 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
844
845 * arm-builtins.c: Include sbitmap.h.
846 (def_mbuiltin): Change first parameter to a flag bit. Use it to test
847 available features in the current target.
848 (struct builtin_description): Change type of feature field.
849 (IWMMXT_BUILTIN): Use the isa_features types.
850 (IWMMXT2_BUILTIN): Likewise.
851 (IWMMXT_BUILTIN2): Likewise.
852 (IWMMXT2_BUILTIN2): Likewise.
853 (CRC32_BUILTIN): Likewise.
854 (CRYPTO_BUILTIN): Likewise.
855 (iwmmx_builtin): Likewise.
856 (iwmmx2_builtin): Likewise.
857 (arm_iwmmxt_builtin): Check for specific feature bits.
858
859 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
860
861 * arm-isa.h (enum isa_feature): Add isa_quirk_cm3_ldrd.
862 (ISA_ALL_QUIRKS): New macro.
863 * arm-cores.def (cortex-m3): Add isa_quirk_cm3_ldrd to isa feature list.
864 * arm.c (isa_quirkbits): New feature-list bitmap.
865 (arm_configure_build_target): Ignore quirk bits when comparing an
866 architecture feature list with a CPU feature list.
867 (arm_option_override): Initialize_isa_quirkbits. If the user has
868 not specified -m[no-]fix-cortex-m3-ldrd, automatically enable the
869 feature if isa_quirk_cm3_ldrd appears in the isa feature list.
870
871 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
872
873 * arm.c (arm_option_override): Use arm_active_target as source of
874 information for arm_base_arch and arm_arch_name.
875 * (arm_file_start): Use arm_active_target for core name.
876
877 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
878
879 * arm.c (arm_selected_tune): Delete static variable.
880 (arm_selected_arch): Likewise.
881 (arm_configure_build_target): Declare local versions of arm_selected
882 target and arm_selected_arch. Initialize more fields in target
883 data structure.
884 (arm_option_override): Use arm_active_target instead of
885 arm_selected_tune and arm_selected_arch.
886 (asm_file_start): Use arm_active_target.
887
888 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
889
890 * arm-protos.h (arm_build_target): New structure.
891 (arm_active_target): Declare it.
892 * arm.c (arm_active_target): New variable.
893 (bitmap_popcount): New function.
894 (feature_count): Delete.
895 (arm_initialize_isa): New function.
896 isa_fpubits): New variable.
897 (arm_configure_build_target): New function.
898 (arm_option_override): Initialize isa_fpubits and arm_active_target.isa.
899 Use arm_configure_build_target.
900
901 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
902
903 * arm-isa.h: New file.
904 * arm-protos.h: Include it.
905 * arm-arches.def: Add new ISA field to all entries. Drop bogus
906 armv8.1-a+crc architecture.
907 * arm-cores.def: Similarly. Group ARMv8 cores by profile.
908 * arm-opts.h (enum processor_type): Adjust for new field.
909 * arm.c (struct processors): New field 'isa_bits'.
910 (all_cores, all_architectures): Initialize new field.
911 * arm-tables.opt: Regenerated.
912 * arm-tune.md: Regenerated.
913
914 2016-12-15 Richard Earnshaw <rearnsha@arm.com>
915
916 * arm-arches.def (ARM_ARCH): Add extra field TUNE_FLAGS, move
917 tuning properties from architectural FLAGS field.
918 * arm-cores.def (ARM_CORE): Likewise.
919 * arm-protos.h (TF_LDSCHED, TF_WBUF, TF_CO_PROC): New macros.
920 (TF_SMALLMUL, TF_STRONG, TF_SCALE, TF_NOMODE32): New macros.
921 (FL_LDSCHED, FL_STRONG, FL_WBUF, FL_SMALLMUL): Delete.
922 (FL_TUNE): Remove deleted elements.
923 (tune_flags): Convert type to unsigned int.
924 * arm.c (struct processors): Add new field tune_flags.
925 (all_cores, all_arches): Initialize it.
926 (arm_option_override): Adapt uses of tune_flags. Use tune_flags
927 for deciding when we should have slow multiply operations.
928
929 2016-12-14 Martin Sebor <msebor@redhat.com>
930
931 PR middle-end/78519
932 * gimple-ssa-sprintf.c (format_string): Handle null pointers.
933 (format_directive): Diagnose null pointer arguments.
934 (pass_sprintf_length::handle_gimple_call): Diagnose null destination
935 pointers. Correct location of null format string in diagnostics.
936
937 2016-12-14 David Malcolm <dmalcolm@redhat.com>
938
939 * Makefile.in (SELFTEST_FLAGS): Add path argument to -fself-test.
940 (s-selftest): Add dependency on the selftests data directory.
941 * common.opt (fself-test): Rename to...
942 (fself-test=): ...this, documenting the meaning of the argument.
943 * selftest-run-tests.c (along): Likewise.
944 * selftest-run-tests.c: Include "options.h".
945 (selftest::run_tests): Initialize selftest::path_to_selftest_files
946 from flag_self_test.
947 * selftest.c (selftest::path_to_selftest_files): New global.
948 (selftest::locate_file): New function.
949 (selftest::test_locate_file): New function.
950 (selftest_c_tests): Likewise.
951 (selftest::selftest_c_tests): Call test_locate_file.
952 * selftest.h (selftest::locate_file): New decl.
953 (selftest::path_to_selftest_files): New decl.
954
955 2016-12-14 Andrew Pinski <apinski@cavium.com>
956
957 * config/aarch64/aarch64-cores.def: Add -1 as the variant to all
958 of the cores.
959 (thunderx): Update to include LSE by default.
960 (thunderxt88p1): New core.
961 (thunderxt88): New core.
962 (thunderxt81): New core.
963 (thunderxt83): New core.
964 * config/aarch64/driver-aarch64.c (struct aarch64_core_data):
965 Add variant field.
966 (ALL_VARIANTS): New define.
967 (AARCH64_CORE): Support VARIANT operand.
968 (cpu_data): Likewise.
969 (host_detect_local_cpu): Parse variant field of /proc/cpuinfo.
970 Combine the arch and single core case and support variant searching.
971 * common/config/aarch64/aarch64-common.c (AARCH64_CORE):
972 Add VARIANT operand.
973 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Likewise.
974 * config/aarch64/aarch64.c (AARCH64_CORE): Likewise.
975 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
976 * config/aarch64/aarch64-tune.md: Regenerate.
977 * doc/invoke.texi (AARCH64/mtune): Document thunderxt88,
978 thunderxt88p1, thunderxt81, thunderxt83 as available options.
979
980 2016-12-14 Martin Jambor <mjambor@suse.cz>
981
982 * omp-offload.c: Fix coding style.
983 * omp-expand.c: Likewise.
984 * omp-general.c: Likewise.
985 * omp-grid.c: Likewise.
986 * omp-low.c: Fix coding style of parts touched by the
987 previous splitting patch.
988
989 2016-12-14 Martin Jambor <mjambor@suse.cz>
990
991 * omp-general.h: New file.
992 * omp-general.c: New file.
993 * omp-expand.h: Likewise.
994 * omp-expand.c: Likewise.
995 * omp-offload.h: Likewise.
996 * omp-offload.c: Likewise.
997 * omp-grid.c: Likewise.
998 * omp-grid.c: Likewise.
999 * omp-low.h: Include omp-general.h and omp-grid.h. Removed includes
1000 of params.h, symbol-summary.h, lto-section-names.h, cilk.h, tree-eh.h,
1001 ipa-prop.h, tree-cfgcleanup.h, cfgloop.h, except.h, expr.h, stmt.h,
1002 varasm.h, calls.h, explow.h, dojump.h, flags.h, tree-into-ssa.h,
1003 tree-cfg.h, cfganal.h, alias.h, emit-rtl.h, optabs.h, expmed.h,
1004 alloc-pool.h, cfghooks.h, rtl.h and memmodel.h.
1005 (omp_find_combined_for): Declare.
1006 (find_omp_clause): Renamed to omp_find_clause and moved to
1007 omp-general.h.
1008 (free_omp_regions): Renamed to omp_free_regions and moved to
1009 omp-expand.h.
1010 (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved
1011 to omp-general.h.
1012 (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to
1013 omp-general.h.
1014 (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and
1015 moved to omp-general.h.
1016 (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to
1017 omp-general.h.
1018 (oacc_fn_attrib_kernels_p): Moved to omp-general.h.
1019 (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to
1020 omp-general.c.
1021 (omp_expand_local): Moved to omp-expand.h.
1022 (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to
1023 omp-expand.h.
1024 (omp_finish_file): Moved to omp-offload.h.
1025 (default_goacc_validate_dims): Renamed to
1026 oacc_default_goacc_validate_dims and moved to omp-offload.h.
1027 (offload_funcs, offload_vars): Moved to omp-offload.h.
1028 * omp-low.c: Include omp-general.h, omp-offload.h and omp-grid.h.
1029 (omp_region): Moved to omp-expand.c.
1030 (omp_for_data_loop): Moved to omp-general.h.
1031 (omp_for_data): Likewise.
1032 (oacc_loop): Moved to omp-offload.c.
1033 (oacc_loop_flags): Moved to omp-general.h.
1034 (offload_funcs, offload_vars): Moved to omp-offload.c.
1035 (root_omp_region): Moved to omp-expand.c.
1036 (omp_any_child_fn_dumped): Likewise.
1037 (find_omp_clause): Renamed to omp_find_clause and moved to
1038 omp-general.c.
1039 (is_combined_parallel): Moved to omp-expand.c.
1040 (is_reference): Renamed to omp_is_reference and and moved to
1041 omp-general.c.
1042 (adjust_for_condition): Renamed to omp_adjust_for_condition and moved
1043 to omp-general.c.
1044 (get_omp_for_step_from_incr): Renamed to omp_get_for_step_from_incr
1045 and moved to omp-general.c.
1046 (extract_omp_for_data): Renamed to omp_extract_for_data and moved to
1047 omp-general.c.
1048 (workshare_safe_to_combine_p): Moved to omp-expand.c.
1049 (omp_adjust_chunk_size): Likewise.
1050 (get_ws_args_for): Likewise.
1051 (get_base_type): Removed.
1052 (dump_omp_region): Moved to omp-expand.c.
1053 (debug_omp_region): Likewise.
1054 (debug_all_omp_regions): Likewise.
1055 (new_omp_region): Likewise.
1056 (free_omp_region_1): Likewise.
1057 (free_omp_regions): Renamed to omp_free_regions and moved to
1058 omp-expand.c.
1059 (find_combined_for): Renamed to omp_find_combined_for, made global.
1060 (build_omp_barrier): Renamed to omp_build_barrier and moved to
1061 omp-general.c.
1062 (omp_max_vf): Moved to omp-general.c.
1063 (omp_max_simt_vf): Likewise.
1064 (gimple_build_cond_empty): Moved to omp-expand.c.
1065 (parallel_needs_hsa_kernel_p): Likewise.
1066 (expand_omp_build_assign): Moved declaration to omp-expand.c.
1067 (expand_parallel_call): Moved to omp-expand.c.
1068 (expand_cilk_for_call): Likewise.
1069 (expand_task_call): Likewise.
1070 (vec2chain): Likewise.
1071 (remove_exit_barrier): Likewise.
1072 (remove_exit_barriers): Likewise.
1073 (optimize_omp_library_calls): Likewise.
1074 (expand_omp_regimplify_p): Likewise.
1075 (expand_omp_build_assign): Likewise.
1076 (expand_omp_taskreg): Likewise.
1077 (oacc_collapse): Likewise.
1078 (expand_oacc_collapse_init): Likewise.
1079 (expand_oacc_collapse_vars): Likewise.
1080 (expand_omp_for_init_counts): Likewise.
1081 (expand_omp_for_init_vars): Likewise.
1082 (extract_omp_for_update_vars): Likewise.
1083 (expand_omp_ordered_source): Likewise.
1084 (expand_omp_ordered_sink): Likewise.
1085 (expand_omp_ordered_source_sink): Likewise.
1086 (expand_omp_for_ordered_loops): Likewise.
1087 (expand_omp_for_generic): Likewise.
1088 (expand_omp_for_static_nochunk): Likewise.
1089 (find_phi_with_arg_on_edge): Likewise.
1090 (expand_omp_for_static_chunk): Likewise.
1091 (expand_cilk_for): Likewise.
1092 (expand_omp_simd): Likewise.
1093 (expand_omp_taskloop_for_outer): Likewise.
1094 (expand_omp_taskloop_for_inner): Likewise.
1095 (expand_oacc_for): Likewise.
1096 (expand_omp_for): Likewise.
1097 (expand_omp_sections): Likewise.
1098 (expand_omp_single): Likewise.
1099 (expand_omp_synch): Likewise.
1100 (expand_omp_atomic_load): Likewise.
1101 (expand_omp_atomic_store): Likewise.
1102 (expand_omp_atomic_fetch_op): Likewise.
1103 (expand_omp_atomic_pipeline): Likewise.
1104 (expand_omp_atomic_mutex): Likewise.
1105 (expand_omp_atomic): Likewise.
1106 (oacc_launch_pack): and moved to omp-general.c, made public.
1107 (OACC_FN_ATTRIB): Likewise.
1108 (replace_oacc_fn_attrib): Renamed to oacc_replace_fn_attrib and moved
1109 to omp-general.c.
1110 (set_oacc_fn_attrib): Renamed to oacc_set_fn_attrib and moved to
1111 omp-general.c.
1112 (build_oacc_routine_dims): Renamed to oacc_build_routine_dims and
1113 moved to omp-general.c.
1114 (get_oacc_fn_attrib): Renamed to oacc_get_fn_attrib and moved to
1115 omp-general.c.
1116 (oacc_fn_attrib_kernels_p): Moved to omp-general.c.
1117 (oacc_fn_attrib_level): Moved to omp-offload.c.
1118 (get_oacc_fn_dim_size): Renamed to oacc_get_fn_dim_size and moved to
1119 omp-general.c.
1120 (get_oacc_ifn_dim_arg): Renamed to oacc_get_ifn_dim_arg and moved to
1121 omp-general.c.
1122 (mark_loops_in_oacc_kernels_region): Moved to omp-expand.c.
1123 (grid_launch_attributes_trees): Likewise.
1124 (grid_attr_trees): Likewise.
1125 (grid_create_kernel_launch_attr_types): Likewise.
1126 (grid_insert_store_range_dim): Likewise.
1127 (grid_get_kernel_launch_attributes): Likewise.
1128 (get_target_argument_identifier_1): Likewise.
1129 (get_target_argument_identifier): Likewise.
1130 (get_target_argument_value): Likewise.
1131 (push_target_argument_according_to_value): Likewise.
1132 (get_target_arguments): Likewise.
1133 (expand_omp_target): Likewise.
1134 (grid_expand_omp_for_loop): Moved to omp-grid.c.
1135 (grid_arg_decl_map): Likewise.
1136 (grid_remap_kernel_arg_accesses): Likewise.
1137 (grid_expand_target_grid_body): Likewise.
1138 (expand_omp): Renamed to omp_expand and moved to omp-expand.c.
1139 (build_omp_regions_1): Moved to omp-expand.c.
1140 (build_omp_regions_root): Likewise.
1141 (omp_expand_local): Likewise.
1142 (build_omp_regions): Likewise.
1143 (execute_expand_omp): Likewise.
1144 (pass_data_expand_omp): Likewise.
1145 (pass_expand_omp): Likewise.
1146 (make_pass_expand_omp): Likewise.
1147 (pass_data_expand_omp_ssa): Likewise.
1148 (pass_expand_omp_ssa): Likewise.
1149 (make_pass_expand_omp_ssa): Likewise.
1150 (grid_lastprivate_predicate): Renamed to
1151 omp_grid_lastprivate_predicate and moved to omp-grid.c, made public.
1152 (grid_prop): Moved to omp-grid.c.
1153 (GRID_MISSED_MSG_PREFIX): Likewise.
1154 (grid_safe_assignment_p): Likewise.
1155 (grid_seq_only_contains_local_assignments): Likewise.
1156 (grid_find_single_omp_among_assignments_1): Likewise.
1157 (grid_find_single_omp_among_assignments): Likewise.
1158 (grid_find_ungridifiable_statement): Likewise.
1159 (grid_parallel_clauses_gridifiable): Likewise.
1160 (grid_inner_loop_gridifiable_p): Likewise.
1161 (grid_dist_follows_simple_pattern): Likewise.
1162 (grid_gfor_follows_tiling_pattern): Likewise.
1163 (grid_call_permissible_in_distribute_p): Likewise.
1164 (grid_handle_call_in_distribute): Likewise.
1165 (grid_dist_follows_tiling_pattern): Likewise.
1166 (grid_target_follows_gridifiable_pattern): Likewise.
1167 (grid_remap_prebody_decls): Likewise.
1168 (grid_var_segment): Likewise.
1169 (grid_mark_variable_segment): Likewise.
1170 (grid_copy_leading_local_assignments): Likewise.
1171 (grid_process_grid_body): Likewise.
1172 (grid_eliminate_combined_simd_part): Likewise.
1173 (grid_mark_tiling_loops): Likewise.
1174 (grid_mark_tiling_parallels_and_loops): Likewise.
1175 (grid_process_kernel_body_copy): Likewise.
1176 (grid_attempt_target_gridification): Likewise.
1177 (grid_gridify_all_targets_stmt): Likewise.
1178 (grid_gridify_all_targets): Renamed to omp_grid_gridify_all_targets
1179 and moved to omp-grid.c, made public.
1180 (make_gimple_omp_edges): Renamed to omp_make_gimple_edges and moved to
1181 omp-expand.c.
1182 (add_decls_addresses_to_decl_constructor): Moved to omp-offload.c.
1183 (omp_finish_file): Likewise.
1184 (oacc_thread_numbers): Likewise.
1185 (oacc_xform_loop): Likewise.
1186 (oacc_default_dims, oacc_min_dims): Likewise.
1187 (oacc_parse_default_dims): Likewise.
1188 (oacc_validate_dims): Likewise.
1189 (new_oacc_loop_raw): Likewise.
1190 (new_oacc_loop_outer): Likewise.
1191 (new_oacc_loop): Likewise.
1192 (new_oacc_loop_routine): Likewise.
1193 (finish_oacc_loop): Likewise.
1194 (free_oacc_loop): Likewise.
1195 (dump_oacc_loop_part): Likewise.
1196 (dump_oacc_loop): Likewise.
1197 (debug_oacc_loop): Likewise.
1198 (oacc_loop_discover_walk): Likewise.
1199 (oacc_loop_sibling_nreverse): Likewise.
1200 (oacc_loop_discovery): Likewise.
1201 (oacc_loop_xform_head_tail): Likewise.
1202 (oacc_loop_xform_loop): Likewise.
1203 (oacc_loop_process): Likewise.
1204 (oacc_loop_fixed_partitions): Likewise.
1205 (oacc_loop_auto_partitions): Likewise.
1206 (oacc_loop_partition): Likewise.
1207 (default_goacc_fork_join): Likewise.
1208 (default_goacc_reduction): Likewise.
1209 (execute_oacc_device_lower): Likewise.
1210 (default_goacc_validate_dims): Likewise.
1211 (default_goacc_dim_limit): Likewise.
1212 (pass_data_oacc_device_lower): Likewise.
1213 (pass_oacc_device_lower): Likewise.
1214 (make_pass_oacc_device_lower): Likewise.
1215 (execute_omp_device_lower): Likewise.
1216 (pass_data_omp_device_lower): Likewise.
1217 (pass_omp_device_lower): Likewise.
1218 (make_pass_omp_device_lower): Likewise.
1219 (pass_data_omp_target_link): Likewise.
1220 (pass_omp_target_link): Likewise.
1221 (find_link_var_op): Likewise.
1222 (pass_omp_target_link::execute): Likewise.
1223 (make_pass_omp_target_link): Likewise.
1224 * Makefile.in (OBJS): Added omp-offload.o, omp-expand.o, omp-general.o
1225 and omp-grid.o.
1226 (GTFILES): Added omp-offload.h, omp-offload.c and omp-expand.c, removed
1227 omp-low.h.
1228 * gimple-fold.c: Include omp-general.h instead of omp-low.h.
1229 (fold_internal_goacc_dim): Adjusted calls to
1230 get_oacc_ifn_dim_arg and get_oacc_fn_dim_size to use their new names.
1231 * gimplify.c: Include omp-low.h.
1232 (omp_notice_variable): Adjust the call to get_oacc_fn_attrib to use
1233 its new name.
1234 (gimplify_omp_task): Adjusted calls to find_omp_clause to use its new
1235 name.
1236 (gimplify_omp_for): Likewise.
1237 * lto-cgraph.c: Include omp-offload.h instead of omp-low.h.
1238 * toplev.c: Include omp-offload.h instead of omp-low.h.
1239 * tree-cfg.c: Include omp-general.h instead of omp-low.h. Also
1240 include omp-expand.h.
1241 (make_edges_bb): Adjusted the call to make_gimple_omp_edges to use its
1242 new name.
1243 (make_edges): Adjust the call to free_omp_regions to use its new name.
1244 * tree-parloops.c: Include omp-general.h.
1245 (create_parallel_loop): Adjusted the call to set_oacc_fn_attrib to use
1246 its new name.
1247 (parallelize_loops): Adjusted the call to get_oacc_fn_attrib to use
1248 its new name.
1249 * tree-ssa-loop.c: Include omp-general.h instead of omp-low.h.
1250 (gate_oacc_kernels): Adjusted the call to get_oacc_fn_attrib to use
1251 its new name.
1252 * tree-vrp.c: Include omp-general.h instead of omp-low.h.
1253 (extract_range_basic): Adjusted calls to get_oacc_ifn_dim_arg and
1254 get_oacc_fn_dim_size to use their new names.
1255 * varpool.c: Include omp-offload.h instead of omp-low.h.
1256 * gengtype.c (open_base_files): Replace omp-low.h with omp-offload.h in
1257 ifiles.
1258 * config/nvptx/nvptx.c: Include omp-general.c.
1259 (nvptx_expand_call): Adjusted the call to get_oacc_fn_attrib to use
1260 its new name.
1261 (nvptx_reorg): Likewise.
1262 (nvptx_record_offload_symbol): Likewise.
1263
1264 2016-12-14 Martin Sebor <msebor@redhat.com>
1265
1266 PR middle-end/78786
1267 * gimple-ssa-sprintf.c (target_dir_max): New macro.
1268 (get_mpfr_format_length): New function.
1269 (format_integer): Use HOST_WIDE_INT instead of int.
1270 (format_floating_max): Same.
1271 (format_floating): Call get_mpfr_format_length.
1272 (format_directive): Use target_dir_max.
1273
1274 2016-12-14 Jakub Jelinek <jakub@redhat.com>
1275
1276 PR target/78791
1277 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_STV_TEMP.
1278 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies,
1279 dimode_scalar_chain::convert_reg): Use SLOT_STV_TEMP instead of
1280 SLOT_TEMP.
1281
1282 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
1283
1284 PR target/59874
1285 * config/i386/i386-builtin.def: Add __builtin_clzs and __builtin_ctzs.
1286 (ix86_fold_builtin): Handle IX86_BUILTIN_CTZS and IX86_BUILTIN_CLZS.
1287 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
1288 (*clzhi2): Ditto.
1289
1290 2016-12-14 Jakub Jelinek <jakub@redhat.com>
1291
1292 PR debug/77844
1293 * valtrack.c: Include rtl-iter.h.
1294 (struct rtx_subst_pair): Add insn field.
1295 (propagate_for_debug_subst): If pair->to contains at least 2
1296 regs, create a DEBUG_INSN with a debug temp before pair->insn
1297 and replace from with the debug temp instead of pair->to.
1298 (propagate_for_debug): Initialize p.insn.
1299 * combine.c (insn_uid_check): New inline function.
1300 (INSN_COST, LOG_LINKS): Use it instead of INSN_UID.
1301 (find_single_use, combine_instructions,
1302 cant_combine_insn_p, try_combine): Use NONDEBUG_INSN_P instead of
1303 INSN_P.
1304
1305 2016-12-14 Martin Sebor <msebor@redhat.com>
1306
1307 PR c/17308
1308 * builtin-attrs.def (ATTR_NONNULL_1_1, ATTR_NONNULL_1_2): Defined.
1309 (ATTR_NONNULL_1_3, ATTR_NONNULL_1_4, ATTR_NONNULL_1_5): Same.
1310 (ATTR_NOTHROW_NONNULL_1_1, ATTR_NOTHROW_NONNULL_1_2): Same.
1311 (ATTR_NOTHROW_NONNULL_1_3, ATTR_NOTHROW_NONNULL_1_4): Same.
1312 (ATTR_NOTHROW_NONNULL_1_5): Same.
1313 (ATTR_NONNULL_1_FORMAT_PRINTF_1_2): Same.
1314 (ATTR_NONNULL_1_FORMAT_PRINTF_2_0): Same.
1315 (ATTR_NONNULL_1_FORMAT_PRINTF_2_3): Same.
1316 (ATTR_NONNULL_1_FORMAT_PRINTF_3_0): Same.
1317 (ATTR_NONNULL_1_FORMAT_PRINTF_3_4): Same.
1318 (ATTR_NONNULL_1_FORMAT_PRINTF_4_0): Same.
1319 (ATTR_NONNULL_1_FORMAT_PRINTF_4_5): Same.
1320 * builtins.c (validate_arg): Add argument. Treat null pointers
1321 passed to nonnull arguments as invalid.
1322 (validate_arglist): Same.
1323 * builtins.def (fprintf, fprintf_unlocked): Add nonnull attribute.
1324 (printf, printf_unlocked, sprintf. vfprintf, vsprintf): Same.
1325 (__sprintf_chk, __vsprintf_chk, __fprintf_chk, __vfprintf_chk): Same.
1326 * calls.c (get_nonnull_ags, maybe_warn_null_arg): New functions.
1327 (initialize_argument_information): Diagnose null pointers passed to
1328 arguments declared nonnull.
1329 * calls.h (get_nonnull_args): Declared.
1330
1331 2016-12-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1332
1333 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): On ISA
1334 3.0/power9, add support to use the VEXTU{B,H,W}{L,R}X extract
1335 instructions.
1336 * config/rs6000/vsx.md (VSr2): Add IEEE 128-bit floating point
1337 type constraint registers.
1338 (VSr3): Likewise.
1339 (FL_CONV): New mode iterator for binary floating types that have a
1340 direct conversion from 64-bit integer to floating point.
1341 (vsx_extract_<mode>_p9): Add support for the ISA 3.0/power9
1342 VEXTU{B,H,W}{L,R}X extract instructions.
1343 (vsx_extract_<mode>_p9 splitter): Add splitter to load up the
1344 extract byte position into the GPR if we are using the
1345 VEXTU{B,H,W}{L,R}X extract instructions.
1346 (vsx_extract_<mode>_di_p9): Support extracts to GPRs.
1347 (vsx_extract_<mode>_store_p9): Support extracting to GPRs so that
1348 we can use reg+offset address instructions.
1349 (vsx_extract_<mode>_var): Support extracts to GPRs.
1350 (vsx_extract_<VSX_EXTRACT_I:mode>_<SDI:mode>_var): New combiner
1351 insn to combine vector extracts with zero_extend.
1352 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Optimize
1353 extracting a small integer vector element and converting it to a
1354 floating point type.
1355 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
1356 (UNSPEC_XXEXTRACTUW): New unspec.
1357 (UNSPEC_XXINSERTW): Likewise.
1358 (vextract4b): Add support for the vec_vextract4b built-in
1359 function.
1360 (vextract4b_internal): Likewise.
1361 (vinsert4b): Add support for the vec_insert4b built-in function.
1362 Include both a version that inserts element 1 from a V4SI object
1363 and one that inserts a DI object.
1364 (vinsert4b_internal): Likewise.
1365 (vinsert4b_di): Likewise.
1366 (vinsert4b_di_internal): Likewise.
1367 * config/rs6000/predicates.md (const_0_to_11_operand): New
1368 predicate, match 0..11.
1369 * config/rs6000/rs6000-builtin.def (BU_P9V_VSX_3): Set built-in
1370 type to ternary, not binary.
1371 (BU_P9V_64BIT_VSX_3): Likewise.
1372 (P9V_BUILTIN_VEXTRACT4B): Add support for vec_vinsert4b and
1373 vec_extract4b non-overloaded built-in functions.
1374 (P9V_BUILTIN_VINSERT4B): Likewise.
1375 (P9V_BUILTIN_VINSERT4B_DI): Likewise.
1376 (P9V_BUILTIN_VEC_VEXTULX): Move to section that adds 2 operand ISA
1377 3.0 built-in functions.
1378 (P9V_BUILTIN_VEC_VEXTURX): Likewise.
1379 (P9V_BUILTIN_VEC_VEXTRACT4B): Add support for overloaded
1380 vec_insert4b and vec_extract4 built-in functions.
1381 (P9V_BUILTIN_VEC_VINSERT4B): Likewise.
1382 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1383 overloaded support for vec_vinsert4b and vec_extract4b.
1384 * config/rs6000/rs6000.c (altivec_expand_builtin): Add checks for
1385 the vec_insert4b and vec_extract4b byte number being a constant in
1386 the range 0..11.
1387 * config/rs6000/altivec.h (vec_vinsert4b): Support vec_vinsert4b
1388 and vec_extract4b built-in functions.
1389 * doc/extend.doc (PowerPC VSX built-in functions): Document
1390 vec_insert4b and vec_extract4b.
1391
1392 2016-12-14 Martin Liska <mliska@suse.cz>
1393
1394 * gimple-pretty-print.c (dump_probability): New function.
1395 (dump_edge_probability): Use the function.
1396 (dump_gimple_label): Likewise.
1397 (dump_gimple_bb_header): Likewise.
1398
1399 2016-12-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1400 Jakub Jelinek <jakub@redhat.com>
1401
1402 * tree-ssa-strlen.c (fold_strstr_to_memcmp): New function.
1403 (strlen_optimize_stmt): Call fold_strstr_to_memcmp.
1404
1405 2016-12-14 Eric Botcazou <ebotcazou@adacore.com>
1406
1407 * lra-constraints.c (process_address_1): Do not attempt to decompose
1408 addresses for MEMs that satisfy fixed-form constraints.
1409
1410 2016-12-14 Richard Biener <rguenther@suse.de>
1411
1412 PR tree-optimization/78788
1413 * tree-vrp.c (set_value_range): Allow [-INF(OVF), +INF(OVF)].
1414 (set_and_canonicalize_value_range): Do not drop the above to
1415 VARYING.
1416
1417 2016-12-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1418
1419 * config/rs6000/rs600.c (rs6000_builtin_vectorization_cost):
1420 Adjust unaligned load cost.
1421
1422 2016-12-13 Uros Bizjak <ubizjak@gmail.com>
1423
1424 PR target/78794
1425 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
1426 Calculate additional gain for andnot for targets without BMI.
1427
1428 2016-12-13 Carl Love <cel@us.ibm.com>
1429
1430 * config/rs6000/rs6000-c.c: Add built-in support for
1431 vector float vec_pack (vector double, vector double)
1432 vector double vec_sld (vector double, vector double)
1433 * config/rs6000/rs6000.c: Add icode check for vsldoi_v2df to allow
1434 4-bit unsigned literal.
1435 * config/rs6000/rs6000-builtin.def: Add definition for VSLDOI_2DF
1436 * doc/extend.texi: Update the built-in documentation file for the
1437 new powerpc vec_pack and vec_sld built-ins.
1438
1439 2016-12-13 Martin Liska <mliska@suse.cz>
1440
1441 * sanopt.c (sanopt_optimize_walker): Set contains_asan_mark.
1442 (sanopt_optimize): Add new argument.
1443 (sanitize_asan_mark_unpoison): New function.
1444 (maybe_contains_asan_check): Likewise.
1445 (sanitize_asan_mark_poison): Likewise.
1446 (pass_sanopt::execute): Call the new functions.
1447
1448 2016-12-13 Martin Liska <mliska@suse.cz>
1449
1450 PR tree-optimization/78428
1451 * expr.c (store_constructor_field): Add new arguments to the function.
1452 (store_constructor): Set up bitregion_end and add gcc_unreachable to
1453 fields that have either non-constant size or (and) offset.
1454
1455 2016-12-13 Marek Polacek <polacek@redhat.com>
1456
1457 * tree-data-ref.c (compute_overlap_steps_for_affine_univar): Change
1458 parameters' type from int to HOST_WIDE_INT.
1459 (compute_overlap_steps_for_affine_1_2): Change parameters' type from
1460 int to HOST_WIDE_INT.
1461 (build_classic_dist_vector_1): Likewise.
1462 (add_multivariate_self_dist): Likewise.
1463
1464 2016-12-13 Michael Matz <matz@suse.de>
1465
1466 PR tree-optimization/78725
1467 * tree-ssa-loop-split.c (split_at_bb_p): Check for overflow and
1468 at correct use point.
1469
1470 2016-12-13 Martin Liska <mliska@suse.cz>
1471
1472 * asan.c (asan_expand_mark_ifn): Use renamed
1473 BUILT_IN_ASAN_{UN}CLOBBER_N to BUILT_IN_ASAN_{UN}POISON_STACK_MEMORY.
1474 * sanitizer.def: Likewise.
1475
1476 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com>
1477
1478 * doc/extend.texi (Half-Precision): Update to document current
1479 compiler behaviour.
1480
1481 2016-12-13 James Greenhalgh <james.greenhalgh@arm.com>
1482
1483 * doc/extend.texi (Floating Types): Document availability of
1484 _Float16 on ARM/AArch64.
1485
1486 2016-12-13 Richard Biener <rguenther@suse.de>
1487
1488 PR tree-optimization/78699
1489 * tree-vect-data-refs.c (vect_analyze_group_access_1): Limit
1490 group size.
1491
1492 2016-12-13 Richard Biener <rguenther@suse.de>
1493
1494 PR middle-end/78742
1495 * tree.c (cst_and_fits_in_hwi): Look if the actual value fits.
1496 * tree-object-size.c (compute_builtin_object_size): Use
1497 tree_fits_shwi_p.
1498 * tree-data-ref.c (initialize_matrix_A): Remove excess assert.
1499
1500 2016-12-13 Martin Liska <mliska@suse.cz>
1501
1502 * asan.c (asan_mark_poison_p): Remove.
1503 (asan_mark_p): New function.
1504 (transform_statements): Use the function.
1505 (asan_expand_mark_ifn): Do not use masked enum.
1506 * asan.h (enum asan_mark_flags): Declare it via a macro.
1507 * gimple-pretty-print.c (dump_gimple_call_args): Dump first
1508 argument of ASAN_MARK.
1509 * gimplify.c (build_asan_poison_call_expr): Use new enum values.
1510 (asan_poison_variable): Likewise.
1511
1512 2016-12-13 Jakub Jelinek <jakub@redhat.com>
1513
1514 PR ipa/77905
1515 * ipa-pure-const.c (cdtor_p): Return true for
1516 DECL_STATIC_{CON,DE}STRUCTOR even when it is
1517 DECL_LOOPING_CONST_OR_PURE_P.
1518
1519 2016-12-12 Jakub Jelinek <jakub@redhat.com>
1520
1521 PR tree-optimization/78777
1522 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1523 insert_initializers): Use stmt_ends_bb_p instead of is_ctrl_stmt.
1524
1525 PR other/78766
1526 * opt-functions.awk (opt_args): Use [{] instead of { in regexps.
1527 Formatting fix.
1528
1529 2016-12-12 Martin Sebor <msebor@redhat.com>
1530
1531 PR middle-end/78622
1532 PR middle-end78606
1533 * gimple-ssa-sprintf.c (min_bytes_remaining): Use res.knownrange
1534 rather than res.bounded.
1535 (get_width_and_precision): Set precision to -1 when negative.
1536 (adjust_range_for_overflow): New function.
1537 (format_integer): Correct the handling of the space, plus, and pound
1538 flags, and the special case of zero precision.
1539 Always set res.bounded to true unless either precision or width
1540 is specified and unknown.
1541 Call adjust_range_for_overflow.
1542 Avoid use zero as the shortest value when precision is specified
1543 but unknown.
1544 (format_directive): Remove vestigial quoting. Always inform of
1545 argument value or range when it's available.
1546 (add_bytes): Correct the computation of boundrange used to
1547 decide whether a warning is of a "maybe" or "defnitely" kind.
1548
1549 2016-12-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
1550
1551 * combine.c (change_zero_ext): Handle mode expanding zero_extracts.
1552
1553 2016-12-12 Uros Bizjak <ubizjak@gmail.com>
1554
1555 PR target/78738
1556 * config/i386/i386.h (X87_ENABLE_ARITH): Also enable for
1557 flag_unsafe_math_optimizations.
1558 (X87_ENABLE_FLOAT): Ditto.
1559
1560 2016-12-12 Marek Polacek <polacek@redhat.com>
1561
1562 PR middle-end/78716
1563 * gimplify.c (gimplify_va_arg_expr): Don't require ADDR_EXPR for
1564 Case 1; check POINTER_TYPE_P instead.
1565
1566 2016-12-12 Bernd Schmidt <bschmidt@redhat.com>
1567
1568 PR rtl-optimization/78669
1569 * ira.c (combine_and_move_insns): When deleting an insn, clear the
1570 replace flag for all used regs in that insn.
1571
1572 2016-12-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
1573
1574 * config/arm/arm-opts.h: Move struct arm_arch_core_flag and
1575 arm_arch_core_flags to ...
1576 * common/config/arm/arm-common.c: There.
1577
1578 2016-12-12 Eric Botcazou <ebotcazou@adacore.com>
1579
1580 * config/sparc/constraints.md (T): Use special memory constraint.
1581 (U): Minor tweak.
1582 (W): Add TARGET_ARCH64 test.
1583 * config/sparc/sparc.md (*movdi_insn_sp32): Replace 'W' with 'T'.
1584 (*movdf_insn_sp32): Likewise.
1585 (*mov<VM64:mode>_insn_sp32): Likewise. Replace 'e' with 'f' in
1586 conjunction with offsettable memory references.
1587
1588 2016-12-11 Sandra Loosemore <sandra@codesourcery.com>
1589
1590 * config/nios2/nios2.c (nios2_emit_move_sequence): Call copy_rtx
1591 to avoid shared structure error.
1592
1593 2016-12-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1594
1595 PR target/78695
1596 * config/rs6000/rs6000.c (find_alignment_op): Discard from
1597 consideration any artificial definition.
1598
1599 2016-12-11 Iain Sandoe <iain@codesourcery.com>
1600
1601 * configure.ac (CROSS directory tests): Remove the assumption that
1602 Darwin hosts contain suitable target sysroots in "/".
1603 * configure: Regenerate.
1604
1605 2016-12-11 Iain Sandoe <iain@codesourcery.com>
1606
1607 PR rtl-optimization/71496
1608 * config/rs6000/darwin.md (load_macho_picbase_si): Mark as non-
1609 copyable. (load_macho_picbase_di, reload_macho_picbase_si,
1610 reload_macho_picbase_di): Likewise.
1611
1612 2012-12-11 John David Anglin <danglin@gcc.gnu.org>
1613
1614 * config/pa/pa.c (pa_callee_copies): New function.
1615 * config/pa/pa.opt (mcaller-copies): New option.
1616 * doc/invoke.texi (mcaller-copies): Document option.
1617
1618 2016-12-11 Uros Bizjak <ubizjak@gmail.com>
1619
1620 PR target/70799
1621 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
1622 <case ASHIFT, case LSHIFTRT>: Consider all constant shifts.
1623 Add FIXME comment.
1624 (dimode_scalar_chain::compute_convert_gain): Reduce gain for
1625 constant shifts larger or equal than 32.
1626
1627 2016-12-11 Roger Pau Monné <roger.pau@citrix.com>
1628
1629 * config/i386/x86-64.h: Append --32 to the assembler options when
1630 -m16 is used on non-glibc systems as well.
1631
1632 2016-12-10 Allan Sandfeld Jensen <allan.jensen@qt.io>
1633
1634 PR target/70118
1635 * config/i386/mmintrin.h (__m64_u): New type
1636 * config/i386/emmintrin.h (_mm_loadl_epi64, _mm_storel_epi64):
1637 Make the allowed unaligned memory access explicit.
1638
1639 2016-12-10 Krister Walfridsson <krister.walfridsson@gmail.com>
1640
1641 * config.gcc (i386-*-netbsd*): Make i486 the default arch on NetBSD.
1642 Generally use cpu generic.
1643
1644 2016-12-10 Jakub Jelinek <jakub@redhat.com>
1645 Marc Glisse <marc.glisse@inria.fr>
1646
1647 PR tree-optimization/78720
1648 * match.pd (A < 0 ? C : 0): Only optimize for signed A. If shift
1649 is negative, sign extend to @1's type and than AND with C.
1650
1651 2016-12-10 Jakub Jelinek <jakub@redhat.com>
1652
1653 PR fortran/78758
1654 * tree-object-size.c (compute_object_offset) <case ARRAY_REF>: Handle
1655 non-zero low bound or non-standard element sizes.
1656
1657 PR sanitizer/78708
1658 * lto-streamer-in.c (input_function): In addition to debug stmts
1659 without -g, remove IFN_*SAN_* calls if corresponding flag_sanitize
1660 bit is not enabled.
1661
1662 2016-12-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1663
1664 * config/rs6000/rs6000-passes.def: New file.
1665 * config/rs6000/rs6000-protos.h: Declare make_pass_analyze_swaps.
1666 * config/rs6000/rs6000.c (rs6000_option_override): Remove
1667 registration of machine-specific passes.
1668 (pass_analyze_swaps::clone): New function.
1669 * config/rs6000/t-rs6000: Define PASSES_EXTRA.
1670
1671 2016-12-09 Kugan Vivekanandarajah <kuganv@linaro.org>
1672
1673 PR ipa/78721
1674 * ipa-cp.c (propagate_vr_accross_jump_function): Call
1675 drop_tree_overflow after fold_convert.
1676
1677 2016-12-09 Jakub Jelinek <jakub@redhat.com>
1678
1679 PR target/72742
1680 * config/rs6000/rs6000.md (*and<mode>3_imm_mask_dot,
1681 *and<mode>3_imm_mask_dot2): Add rs6000_is_valid_and_mask to insn
1682 condition.
1683
1684 2016-12-09 Segher Boessenkool <segher@kernel.crashing.org>
1685
1686 PR target/78683
1687 * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Use
1688 GET_MODE_BITSIZE. Return 2.
1689 (CTZ_DEFINED_VALUE_AT_ZERO): Use GET_MODE_BITSIZE. Return 2. Handle
1690 TARGET_POPCNTD the same as TARGET_CTZ.
1691 * config/rs6000/rs6000.md (ctz<mode>2): Reimplement.
1692 (ffs<mode>2): Reimplement.
1693
1694 2016-12-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
1695
1696 PR rtl-optimization/78255
1697 * gcc/postreload.c (reload_cse_simplify): Do not CSE a function if
1698 NO_FUNCTION_CSE is true.
1699
1700 2016-12-09 Cesar Philippidis <cesar@codesourcery.com>
1701
1702 PR ipa/78027
1703 * ipa-icf.c (sem_function::parse): Don't process functions with
1704 oacc decl attributes, as they may be OpenACC routines.
1705
1706 2016-12-09 David Malcolm <dmalcolm@redhat.com>
1707
1708 * rtl.h (get_mem_attrs): Add "const" qualifier to returned
1709 pointer.
1710
1711 2016-12-09 Nathan Sidwell <nathan@acm.org>
1712
1713 PR C++/78550
1714 * convert.c (convert_to_integer_1): Maybe fold conversions to
1715 integral types with fewer bits than its mode.
1716
1717 2016-12-09 Martin Liska <mliska@suse.cz>
1718
1719 * tree-pretty-print.c (pretty_print_string): Escape non-printable
1720 chars in strings.
1721
1722 2016-12-09 Jakub Jelinek <jakub@redhat.com>
1723
1724 PR tree-optimization/78726
1725 * tree-ssa-reassoc.c (make_new_ssa_for_def): Add OPCODE and OP
1726 argument. For lhs uses in debug stmts, don't replace lhs with
1727 new_lhs, but with a debug temp set to new_lhs opcode op.
1728 (make_new_ssa_for_all_defs): Add OPCODE argument, pass OPCODE and
1729 OP down to make_new_ssa_for_def.
1730 (zero_one_operation): Call make_new_ssa_for_all_defs even when
1731 stmts_to_fix is empty, if *def has not changed yet. Pass
1732 OPCODE to make_new_ssa_for_all_defs.
1733
1734 2016-12-08 Martin Sebor <msebor@redhat.com>
1735
1736 PR c/78284
1737 * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
1738 identifier tree nodes.
1739 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
1740 (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
1741 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
1742 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
1743 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
1744 * builtins.c (expand_builtin_alloca): Call
1745 maybe_warn_alloc_args_overflow.
1746 * builtins.def (aligned_alloc, calloc, malloc, realloc):
1747 Add attribute alloc_size.
1748 (alloca): Add attribute alloc_size and returns_nonnull.
1749 * calls.h (maybe_warn_alloc_args_overflow): Declare.
1750 * calls.c (alloc_max_size, operand_signed_p): New functions.
1751 (maybe_warn_alloc_args_overflow): Define.
1752 (initialize_argument_information): Diagnose overflow in functions
1753 declared with attaribute alloc_size.
1754 * doc/invoke.texi (Warning Options): Document -Walloc-zero and
1755 -Walloc-size-larger-than.
1756
1757 2016-12-08 Vladimir Makarov <vmakarov@redhat.com>
1758
1759 PR rtl-optimization/78671
1760 * lra-assign.c (find_hard_regno_for_1): Check prohibited regs for an
1761 allocno class.
1762
1763 2016-12-08 Uros Bizjak <ubizjak@gmail.com>
1764
1765 * config/i386/i386.h (HARD_REGNO_NREGS): Use GENERAL_REGNO_P.
1766 (HARD_REGNO_NREGS_HAS_PADDING): Ditto. Simplify macro.
1767
1768 2015-12-08 Wilco Dijkstra <wdijkstr@arm.com>
1769
1770 PR target/78733
1771 * config/aarch64/aarch64.c (aarch64_classify_address):
1772 Set load_store_pair_p for TImode and TFmode.
1773
1774 2016-12-08 David Malcolm <dmalcolm@redhat.com>
1775
1776 * emit-rtl.c (gen_reg_rtx): Move regno_pointer_align and
1777 regno_reg_rtx resizing logic to...
1778 (emit_status::ensure_regno_capacity): ...this new method,
1779 and ensure that the buffers are large enough.
1780 (init_emit): Allocate regno_reg_rtx using ggc_cleared_vec_alloc
1781 rather than ggc_vec_alloc.
1782 * function.h (emit_status::ensure_regno_capacity): New method.
1783
1784 2016-12-08 Dmitry Vyukov <dvyukov@google.com>
1785
1786 * opts.c (finish_options): Enable -fsanitize-address-use-after-scope
1787 only if -fsanitize=address is enabled (not -fsanitize=kernel-address).
1788 * doc/invoke.texi (-fsanitize=kernel-address):
1789 Don't say that it enables -fsanitize-address-use-after-scope.
1790
1791 2016-12-08 Bin Cheng <bin.cheng@arm.com>
1792
1793 PR middle-end/78684
1794 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Check
1795 sign bit for index step of data reference.
1796
1797 2016-12-08 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1798
1799 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1800 Handle SYMBOL_SMALL_TLSGD for ILP32.
1801 * config/aarch64/aarch64.md : tlsgd_small modified into
1802 tlsgd_small_<mode> to support SImode and DImode.
1803 *tlsgd_small modified into *tlsgd_small_<mode> to support SImode and
1804 DImode.
1805
1806 2016-12-08 Andrew Pinski <apinski@cavium.com>
1807
1808 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1809 Access the lower part of RTX appropriately.
1810
1811 2016-12-07 David Malcolm <dmalcolm@redhat.com>
1812
1813 * genpreds.c (write_tm_constrs_h): Update for renaming of
1814 rtx_reader_ptr to md_reader_ptr.
1815 (write_tm_preds_h): Likewise.
1816 (write_insn_preds_c): Likewise.
1817 * read-md.c (rtx_reader_ptr): Rename to...
1818 (md_reader_ptr): ...this, and convert from an
1819 rtx_reader * to a md_reader *.
1820 (rtx_reader::set_md_ptr_loc): Rename to...
1821 (md_reader::set_md_ptr_loc): ...this.
1822 (rtx_reader::get_md_ptr_loc): Rename to...
1823 (md_reader::get_md_ptr_loc): ...this.
1824 (rtx_reader::copy_md_ptr_loc): Rename to...
1825 (md_reader::copy_md_ptr_loc): ...this.
1826 (rtx_reader::fprint_md_ptr_loc): Rename to...
1827 (md_reader::fprint_md_ptr_loc): ...this.
1828 (rtx_reader::print_md_ptr_loc): Rename to...
1829 (md_reader::print_md_ptr_loc): ...this.
1830 (rtx_reader::join_c_conditions): Rename to...
1831 (md_reader::join_c_conditions): ...this.
1832 (rtx_reader::fprint_c_condition): ...this.
1833 (rtx_reader::print_c_condition): Rename to...
1834 (md_reader::print_c_condition): ...this.
1835 (fatal_with_file_and_line): Update for renaming of
1836 rtx_reader_ptr to md_reader_ptr.
1837 (rtx_reader::require_char): Rename to...
1838 (md_reader::require_char): ...this.
1839 (rtx_reader::require_char_ws): Rename to...
1840 (md_reader::require_char_ws): ...this.
1841 (rtx_reader::require_word_ws): Rename to...
1842 (md_reader::require_word_ws): ...this.
1843 (rtx_reader::read_char): Rename to...
1844 (md_reader::read_char): ...this.
1845 (rtx_reader::unread_char): Rename to...
1846 (md_reader::unread_char): ...this.
1847 (rtx_reader::peek_char): Rename to...
1848 (md_reader::peek_char): ...this.
1849 (rtx_reader::read_name): Rename to...
1850 (md_reader::read_name): ...this.
1851 (rtx_reader::read_escape): Rename to...
1852 (md_reader::read_escape): ...this.
1853 (rtx_reader::read_quoted_string): Rename to...
1854 (md_reader::read_quoted_string): ...this.
1855 (rtx_reader::read_braced_string): Rename to...
1856 (md_reader::read_braced_string): ...this.
1857 (rtx_reader::read_string): Rename to...
1858 (md_reader::read_string): ...this.
1859 (rtx_reader::read_skip_construct): Rename to...
1860 (md_reader::read_skip_construct): ...this.
1861 (rtx_reader::handle_constants): Rename to...
1862 (md_reader::handle_constants): ...this.
1863 (rtx_reader::traverse_md_constants): Rename to...
1864 (md_reader::traverse_md_constants): ...this.
1865 (rtx_reader::handle_enum): Rename to...
1866 (md_reader::handle_enum): ...this.
1867 (rtx_reader::lookup_enum_type): Rename to...
1868 (md_reader::lookup_enum_type): ...this.
1869 (rtx_reader::traverse_enum_types): Rename to...
1870 (md_reader::traverse_enum_types): ...this.
1871 (rtx_reader::rtx_reader): Rename to...
1872 (md_reader::md_reader): ...this, and update for renaming of
1873 rtx_reader_ptr to md_reader_ptr.
1874 (rtx_reader::~rtx_reader): Rename to...
1875 (md_reader::~md_reader): ...this, and update for renaming of
1876 rtx_reader_ptr to md_reader_ptr.
1877 (rtx_reader::handle_include): Rename to...
1878 (md_reader::handle_include): ...this.
1879 (rtx_reader::handle_file): Rename to...
1880 (md_reader::handle_file): ...this.
1881 (rtx_reader::handle_toplevel_file): Rename to...
1882 (md_reader::handle_toplevel_file): ...this.
1883 (rtx_reader::get_current_location): Rename to...
1884 (md_reader::get_current_location): ...this.
1885 (rtx_reader::add_include_path): Rename to...
1886 (md_reader::add_include_path): ...this.
1887 (rtx_reader::read_md_files): Rename to...
1888 (md_reader::read_md_files): ...this.
1889 * read-md.h (class rtx_reader): Split into...
1890 (class md_reader): ...new class.
1891 (rtx_reader_ptr): Rename to...
1892 (md_reader_ptr): ...this, and convert to a md_reader *.
1893 (class noop_reader): Update base class to be md_reader.
1894 (class rtx_reader): Reintroduce as a subclass of md_reader.
1895 (rtx_reader_ptr): Reintroduce as a rtx_reader *.
1896 (read_char): Update for renaming of rtx_reader_ptr to
1897 md_reader_ptr.
1898 (unread_char): Likewise.
1899 * read-rtl.c (rtx_reader_ptr): New global.
1900 (rtx_reader::apply_iterator_to_string): Rename to...
1901 (md_reader::apply_iterator_to_string): ...this.
1902 (rtx_reader::copy_rtx_for_iterators): Rename to...
1903 (md_reader::copy_rtx_for_iterators): ...this.
1904 (rtx_reader::read_conditions): Rename to...
1905 (md_reader::read_conditions): ...this.
1906 (rtx_reader::record_potential_iterator_use): Rename to...
1907 (md_reader::record_potential_iterator_use): ...this.
1908 (rtx_reader::read_mapping): Rename to...
1909 (md_reader::read_mapping): ...this.
1910 (rtx_reader::read_rtx): Use rtx_reader_ptr when calling
1911 read_rtx_code.
1912 (rtx_reader::read_rtx_operand): Use get_string_obstack rather
1913 than directly accessing m_string_obstack.
1914 (rtx_reader::rtx_reader): New ctor.
1915 (rtx_reader::~rtx_reader): New dtor.
1916
1917 2016-12-07 Martin Sebor <msebor@redhat.com>
1918
1919 PR middle-end/77784
1920 PR middle-end/78149
1921 PR middle-end/78138
1922
1923 * builtins.c (expand_builtin_strcat, expand_builtin_strncat): New
1924 functions.
1925 (compute_dest_size, get_size_range, check_sizes, check_strncat_sizes)
1926 (check_memop_sizes): Same.
1927 (expand_builtin_memcpy): Call check memop_sizes.
1928 (expand_builtin_mempcpy): Same.
1929 (expand_builtin_memset): Same,
1930 (expand_builtin_bzero): Same.
1931 (expand_builtin_memory_chk): Call check_sizes.
1932 (expand_builtin_strcpy): Same.
1933 (expand_builtin_strncpy): Same.
1934 (maybe_emit_sprintf_chk_warning): Same.
1935 (expand_builtin): Handle strcat and strncat.
1936 (fini_object_sizes): Reset pointers.
1937 (compute_object_size): New function.
1938 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
1939 Avoid issuing warnings also issued during built-in expansion.
1940 * doc/invoke.texi (Warning Options): Document -Wstringop-overflow.
1941
1942 2016-12-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1943
1944 PR target/72717
1945 * config/rs6000/rs6000.c (rs6000_expand_vector_init): If the
1946 V2DImode elements are SUBREG's convert the result into DImode
1947 rather than failing in emit_move_insn.
1948
1949 2016-12-07 Jakub Jelinek <jakub@redhat.com>
1950
1951 * builtins.c (fold_builtin_strstr): Removed.
1952 (fold_builtin_2): Don't call fold_builtin_strstr.
1953 * gimple-fold.c (gimple_fold_builtin_strchr): Check is_strrchr
1954 earlier in the strrchr (x, 0) -> strchr (x, 0) optimization.
1955 (gimple_fold_builtin_strstr): New function.
1956 (gimple_fold_builtin): Call it.
1957 * fold-const-call.c (fold_const_call): Handle CFN_BUILT_IN_STRSTR.
1958
1959 PR c++/78692
1960 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Set lhs
1961 var to lhs of new_stmt right before noreturn handling rather than to
1962 lhs of e->call_stmt early.
1963
1964 2016-12-07 David Malcolm <dmalcolm@redhat.com>
1965
1966 * read-md.c (rtx_reader::require_char): New method.
1967 (require_char_ws): Convert from function to...
1968 (rtx_reader::require_char_ws): ...method.
1969 (rtx_reader::require_word_ws): New method.
1970 * read-md.h (rtx_reader::require_char): New method decl.
1971 (require_char_ws): Remove global decl in favor of...
1972 (rtx_reader::require_char_ws): ...new method decl.
1973 (rtx_reader::require_word_ws): New method decl.
1974 (rtx_reader::peek_char): New method decl.
1975
1976 2016-12-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
1977
1978 PR rtl-optimization/78617
1979 * lra-remat.c (do_remat): Initialize live_hard_regs from live in
1980 registers, also setting hard registers mapped to pseudo registers.
1981
1982 2016-12-07 David Malcolm <dmalcolm@redhat.com>
1983
1984 * cfgexpand.c (pass_expand::execute): Move stack initializations
1985 to rtl_data::init_stack_alignment and call it.
1986 * emit-rtl.c (rtl_data::init_stack_alignment): New method.
1987 * emit-rtl.h (rtl_data::init_stack_alignment): New method.
1988
1989 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com>
1990
1991 * gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf.
1992 (ira): Move initialization of crtl->is_leaf earlier.
1993
1994 2016-12-07 Wilco Dijkstra <wdijkstr@arm.com>
1995
1996 * config/aarch64/aarch64.md (movti_aarch64): Change Ump to m.
1997 (movtf_aarch64): Likewise.
1998 * config/aarch64/aarch64.c (aarch64_classify_address):
1999 Use correct intersection of offsets.
2000 (aarch64_legitimize_address_displacement): Use 9-bit signed offsets.
2001 (aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode.
2002 Use 7-bit signed scaled mode for modes > 16 bytes.
2003
2004 2016-12-07 James Greenhalgh <james.greenhalgh@arm.com>
2005
2006 PR rtl-optimization/78561
2007 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use
2008 constant_pool_empty_p in place of get_pool_size_upper_bound.
2009 (rs6000_stack_info): Likewise.
2010 (rs6000_emit_prologue): Likewise.
2011 (rs6000_elf_declare_function_name): Likewise.
2012 (rs6000_set_up_by_prologue): Likewise.
2013 (rs6000_can_eliminate): Likewise.
2014 * output.h (get_pool_size_upper_bound): Delete.
2015 (constant_pool_empty_p): New.
2016 * varasm.c (get_pool_size_upper_bound): Delete
2017 (constant_pool_empty_p): New.
2018
2019 2016-12-07 Bin Cheng <bin.cheng@arm.com>
2020
2021 PR tree-optimization/78691
2022 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
2023 Require integral type for the outer expression.
2024
2025 2016-12-07 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
2026
2027 * config/aarch64/aarch64.c
2028 (aarch64_builtin_support_vector_misalignment): New.
2029 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define.
2030
2031 2016-12-06 David Malcolm <dmalcolm@redhat.com>
2032
2033 PR bootstrap/78705
2034 * config/i386/i386.c (ix86_test_dumping_memory_blockage):
2035 Conditionalize the string comparison on Pmode == DImode.
2036
2037 2016-12-06 Tom de Vries <tom@codesourcery.com>
2038
2039 PR tree-optimization/67955
2040 * tree-ssa-alias.c (same_addr_size_stores_p): New function.
2041 (stmt_kills_ref_p): Use it.
2042
2043 2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
2044
2045 PR middle-end/78700
2046 * calls.c (expand_call): Move back call to prepare_call_address.
2047
2048 2016-12-06 Michael Meissner <meissner@linux.vnet.ibm.com>
2049
2050 PR target/78658
2051 * config/rs6000/rs6000.md (zero_extendqi<mode>2): Use ^ instead of
2052 ?* constraints for the ISA 3.0 patterns, so the register allocator
2053 is more likely to allocate QImode/HImode to vector registers for
2054 conversion to floating point unless a reload is needed.
2055 (zero_extendhi<mode>2): Likewise.
2056 (float<QHI:mode><FP_ISA3:mode>2_internal): Properly deal with the
2057 first alternative which is converting QImode/HImode to floating
2058 point and the QImode/HImode value is in a vector register, and
2059 does not allocate the second pseudo register. Remove zero
2060 extending into traditional floating point registers, since the
2061 instruction used only works on traditional altivec registers.
2062 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
2063
2064 2016-12-06 David Malcolm <dmalcolm@redhat.com>
2065
2066 * config/i386/i386.c: Include print-rtl.h.
2067 (selftest::ix86_test_dumping_memory_blockage): New function.
2068 (selftest::ix86_run_selftests): Call it.
2069 * print-rtl-function.c (print_rtx_function): Create an
2070 rtx_reuse_manager and use it.
2071 * print-rtl.c: Include "rtl-iter.h".
2072 (rtx_writer::rtx_writer): Add reuse_manager param.
2073 (rtx_reuse_manager::rtx_reuse_manager): New ctor.
2074 (uses_rtx_reuse_p): New function.
2075 (rtx_reuse_manager::preprocess): New function.
2076 (rtx_reuse_manager::has_reuse_id): New function.
2077 (rtx_reuse_manager::seen_def_p): New function.
2078 (rtx_reuse_manager::set_seen_def): New function.
2079 (rtx_writer::print_rtx): If "in_rtx" has a reuse ID, print it as a
2080 prefix the first time in_rtx is seen, and print reuse_rtx
2081 subsequently.
2082 (print_inline_rtx): Supply NULL for new reuse_manager param.
2083 (debug_rtx): Likewise.
2084 (print_rtl): Likewise.
2085 (print_rtl_single): Likewise.
2086 (rtx_writer::print_rtl_single_with_indent): Likewise.
2087 * print-rtl.h: Include bitmap.h when building for host.
2088 (rtx_writer::rtx_writer): Add reuse_manager param.
2089 (rtx_writer::m_rtx_reuse_manager): New field.
2090 (class rtx_reuse_manager): New class.
2091 * rtl-tests.c (selftest::assert_rtl_dump_eq): Add reuse_manager
2092 param and use it when constructing rtx_writer.
2093 (selftest::test_dumping_rtx_reuse): New function.
2094 (selftest::rtl_tests_c_tests): Call it.
2095 * selftest-rtl.h (class rtx_reuse_manager): New forward decl.
2096 (selftest::assert_rtl_dump_eq): Add reuse_manager param.
2097 (ASSERT_RTL_DUMP_EQ): Supply NULL for reuse_manager param.
2098 (ASSERT_RTL_DUMP_EQ_WITH_REUSE): New macro.
2099
2100 2016-12-06 Vladimir Makarov <vmakarov@redhat.com>
2101
2102 PR target/77761
2103 * lra-lives.c (process_bb_lives): Update biggest mode for
2104 implicitly used hard reg.
2105
2106 2016-12-06 Uros Bizjak <ubizjak@gmail.com>
2107
2108 * config/i386/predicates.md (general_gr_operand): New predicate.
2109 * config/i386/i386.md (TImode and DImode push_operand splitter):
2110 Use general_gr_operand. Macroize using DWI mode macro.
2111 (TImode and DImode nonimmediate_operand splitter): Use
2112 nonimmediate_gr_operand and general_gr_operand. Macroize using
2113 DWI mode macro.
2114 (TF/XF/DFmode push_operand splitter): Use general_gr_operand.
2115 (TFmode nonimmediate_operand splitter): Use nonimmediate_gr_operand
2116 and general_gr_operand.
2117 (XFmode nonimmediate_operand splitter): Ditto.
2118 (DFmode nonimmediate_operand splitter): Ditto.
2119 * config/i386/mmx.md (MMXMODE nonimmediate_operand splitter): Ditto.
2120
2121 2016-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2122
2123 * config/arm/arm-cores.def (cortex-m23, cortex-m33): Move into
2124 alphabetical order with respect to other ARMv8 processors.
2125 * config/arm/arm-tables.opt: Regenerate.
2126 * config/arm/arm-tune.md: Likewise.
2127
2128 2016-12-06 Robert Suchanek <robert.suchanek@imgtec.com>
2129
2130 * config/mips/mips.c (mips_expand_builtin_insn): Check input
2131 ranges of literal integer arguments.
2132
2133 2016-12-06 Aldy Hernandez <aldyh@redhat.com>
2134
2135 PR middle-end/78548
2136 * tree-ssa-uninit.c (simplify_preds_4): Call release() instead of
2137 destroy_predicate_vecs.
2138 (uninit_uses_cannot_happen): Make uninit_preds a scalar.
2139
2140 2016-12-06 Aldy Hernandez <aldyh@redhat.com>
2141
2142 PR middle-end/78566
2143 * tree-ssa-uninit.c (can_one_predicate_be_invalidated_p): Change
2144 argument type to a pred_chain.
2145 (can_chain_union_be_invalidated_p): Use pred_chain instead of a
2146 worklist.
2147 (flatten_out_predicate_chains): Remove.
2148 (uninit_uses_cannot_happen): Rename from
2149 uninit_ops_invalidate_phi_use.
2150 Change logic so that we are checking that the PHI use will
2151 invalidate _ALL_ possibly uninitialized operands.
2152 (is_use_properly_guarded): Rename call to
2153 uninit_ops_invalidate_phi_use into uninit_uses_cannot_happen.
2154
2155 2016-12-06 Tamar Christina <tamar.christina@arm.com>
2156
2157 * gcc/config/aarch64/arm_neon.h
2158 (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added.
2159 (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise.
2160 (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise.
2161 (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise.
2162 (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise.
2163 (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise.
2164 (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise.
2165 (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise.
2166 (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise.
2167 (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise.
2168 (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise.
2169 (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise.
2170 (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise.
2171 (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise.
2172
2173 2016-12-06 Jakub Jelinek <jakub@redhat.com>
2174
2175 PR c++/71537
2176 * fold-const.c (fold_comparison): Assume CONSTANT_CLASS_P (base0)
2177 plus offset is non-zero. For maybe_nonzero_address decl base0,
2178 require indirect_base0.
2179
2180 PR c++/71537
2181 * fold-const-call.c (fold_const_call_1): Remove memchr handling here.
2182 (fold_const_call) <case CFN_BUILT_IN_STRNCMP,
2183 case CFN_BUILT_IN_STRNCASECMP>: Formatting improvements.
2184 (fold_const_call) <case CFN_BUILT_IN_MEMCMP>: Likewise. If s2 is 0
2185 and arguments have no side-effects, return 0.
2186 (fold_const_call): Handle CFN_BUILT_IN_MEMCHR.
2187
2188 PR c++/71537
2189 * fold-const-call.c (fold_const_call): Handle
2190 CFN_BUILT_IN_{INDEX,STRCHR,RINDEX,STRRCHR}.
2191
2192 PR tree-optimization/78675
2193 * tree-vect-loop.c (vectorizable_live_operation): For
2194 VECTOR_BOOLEAN_TYPE_P vectype use integral type with bitsize precision
2195 instead of TREE_TYPE (vectype) for the BIT_FIELD_REF.
2196
2197 2016-12-06 Eric Botcazou <ebotcazou@adacore.com>
2198
2199 PR middle-end/78642
2200 * emit-rtl.c (verify_rtx_sharing) <CLOBBER>: Relax condition.
2201 (copy_rtx_if_shared_1) <CLOBBER>: Likewise.
2202 (copy_insn_1) <CLOBBER>: Likewise.
2203
2204 2016-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
2205
2206 PR target/78688
2207 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Use IN_RANGE
2208 instead of ((N) >= (X) && (N) <= (Y-X)) to silence warnings about
2209 comparing signed to unsigned values.
2210 (FUNCTION_ARG_REGNO_P): Likewise.
2211
2212 2016-12-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2213 Stefan Freudenberger <stefan@reservoir.com>
2214
2215 PR tree-optimization/78646
2216 * gimple-ssa-strength-reduction.c (replace_ref): The pointer
2217 addition used for the memory base expression should have the type
2218 of the candidate.
2219
2220 2016-12-05 Waldemar Brodkorb <wbx@openadk.org>
2221
2222 PR target/71721
2223 * config.gcc (*-*-uclinux*): Enable posix threads.
2224
2225 2016-12-05 Andrew Senkevich <andrew.senkevich@intel.com>
2226
2227 * config/i386/avx512bwintrin.h: Add new k-mask intrinsics.
2228 * config/i386/avx512dqintrin.h: Ditto.
2229 * config/i386/avx512fintrin.h: Ditto.
2230 * config/i386/i386-builtin-types.def (UCHAR_FTYPE_UQI_UQI_PUCHAR,
2231 UCHAR_FTYPE_UHI_UHI_PUCHAR, UCHAR_FTYPE_USI_USI_PUCHAR,
2232 UCHAR_FTYPE_UDI_UDI_PUCHAR, UCHAR_FTYPE_UQI_UQI, UCHAR_FTYPE_UHI_UHI,
2233 UCHAR_FTYPE_USI_USI, UCHAR_FTYPE_UDI_UDI, UQI_FTYPE_UQI_INT,
2234 UHI_FTYPE_UHI_INT, USI_FTYPE_USI_INT, UDI_FTYPE_UDI_INT,
2235 UQI_FTYPE_UQI, USI_FTYPE_USI, UDI_FTYPE_UDI, UQI_FTYPE_UQI_UQI): New
2236 function types.
2237 * config/i386/i386-builtin.def (__builtin_ia32_knotqi,
2238 __builtin_ia32_knotsi, __builtin_ia32_knotdi,
2239 __builtin_ia32_korqi, __builtin_ia32_korsi, __builtin_ia32_kordi,
2240 __builtin_ia32_kxnorqi, __builtin_ia32_kxnorsi,
2241 __builtin_ia32_kxnordi, __builtin_ia32_kxorqi, __builtin_ia32_kxorsi,
2242 __builtin_ia32_kxordi, __builtin_ia32_kandqi,
2243 __builtin_ia32_kandsi, __builtin_ia32_kanddi, __builtin_ia32_kandnqi,
2244 __builtin_ia32_kandnsi, __builtin_ia32_kandndi): New.
2245 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
2246
2247 2016-12-05 Segher Boessenkool <segher@kernel.crashing.org>
2248
2249 * combine.c: Revert r243162.
2250
2251 2016-12-05 Paolo Bonzini <bonzini@gnu.org>
2252
2253 * match.pd: Simplify X ? C : 0 where C is a power of 2 and
2254 X tests a single bit.
2255
2256 2016-12-05 Nathan Sidwell <nathan@acm.org>
2257
2258 * diagnostic.c (diagnostic_check_max_errors): New, broken out of ...
2259 (diagnostic_action_after_output): ... here.
2260 (diagnostic_report_diagnostic): Call it for non-notes.
2261 * diagnostic.h (struct diagnostic_context): Make max_errors signed int.
2262 (diagnostic_check_max_errors): Declare.
2263
2264 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com>
2265
2266 * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs.
2267 (ENDFILE_SPEC): Likewise.
2268
2269 2016-12-05 Claudiu Zissulescu <claziss@synopsys.com>
2270
2271 * config/arc/arc-protos.h (insn_is_tls_gd_dispatch): Remove.
2272 * config/arc/arc.c (arc_unspec_offset): New function.
2273 (arc_finalize_pic): Change.
2274 (arc_emit_call_tls_get_addr): Likewise.
2275 (arc_legitimize_tls_address): Likewise.
2276 (arc_legitimize_pic_address): Likewise.
2277 (insn_is_tls_gd_dispatch): Remove.
2278 * config/arc/arc.h (INSN_REFERENCES_ARE_DELAYED): Change.
2279 * config/arc/arc.md (ls_gd_load): Remove unused pattern.
2280 (tls_gd_dispatch): Likewise.
2281
2282 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
2283
2284 * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef
2285 location.
2286
2287 2016-12-05 Eric Botcazou <ebotcazou@adacore.com>
2288
2289 * config/sparc/sparc-protos.h (sparc_splitdi_legitimate): Rename to...
2290 (sparc_split_reg_mem_legitimate): ...this.
2291 (sparc_split_reg_mem): Declare.
2292 (sparc_split_mem_reg): Likewise.
2293 (sparc_split_regreg_legitimate): Rename to...
2294 (sparc_split_reg_reg_legitimate): ...this.
2295 * config/sparc/sparc.c (sparc_splitdi_legitimate): Rename to...
2296 (sparc_split_reg_mem_legitimate): ...this.
2297 (sparc_split_reg_mem): New function.
2298 (sparc_split_mem_reg): Likewise.
2299 (sparc_split_regreg_legitimate): Rename to...
2300 (sparc_split_reg_reg_legitimate): ...this.
2301 (sparc_split_reg_reg): New function.
2302 * config/sparc/sparc.md (lra): Remove "none" value.
2303 (enabled): Adjust to above change.
2304 (*movdi_insn_sp32): Remove new (r,T) alternative and reorder others.
2305 (DImode splitters): Adjust to above renamings and use new functions.
2306 (*movdf_insn_sp32): Remove new (r,T) alternative and reorder others.
2307 (DFmode splitters): Adjust to above renamings and use new functions.
2308 (*mov<VM64:mode>_insn_sp64): Replace C with Z constraint and use W
2309 constraint in conjunction with e.
2310 (*mov<VM64:mode>_insn_sp32): Remove new (r,T) alternative, add (o,Y)
2311 alternative and reorder others.
2312 (VM64:mode splitters): Adjust to above renamings and use new functions.
2313
2314 2016-12-04 Martin Sebor <msebor@redhat.com>
2315
2316 PR c/78668
2317 * builtin-attrs.def (ATTR_ALLOC_SIZE, ATTR_RETURNS_NONNULL): New
2318 identifier tree nodes.
2319 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): New attribute list.
2320 (ATTR_MALLOC_SIZE_1_NOTHROW_LIST): Same.
2321 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Same.
2322 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Same.
2323 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Same.
2324 * builtins.def (aligned_alloc, calloc, malloc, realloc):
2325 Add attribute alloc_size.
2326 (alloca): Add attribute alloc_size and returns_nonnull.
2327
2328 2016-12-04 Uros Bizjak <ubizjak@gmail.com>
2329
2330 PR target/70322
2331 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NEG.
2332 (dimode_scalar_chain::compute_convert_gain): Ditto.
2333 (dimode_scalar_chain::convert_insn): Ditto.
2334
2335 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
2336
2337 * lra-constraints.c (emit_spill_move): Use gen_lowpart_SUBREG in all
2338 cases to build a lowpart SUBREG.
2339
2340 2016-12-03 Eric Botcazou <ebotcazou@adacore.com>
2341 David S. Miller <davem@davemloft.net>
2342
2343 * config/sparc/constraints.md (U): Adjust comment.
2344 * config/sparc/sparc.md (lra): New attribute.
2345 (enabled): For base instructions, if the lra attribute is set,
2346 return 1 if it is in keeping with TARGET_LRA.
2347 (*movdi_insn_sp32): Add lra attribute for alternatives mentioning U
2348 constraint and duplicate them with U replaced by r.
2349 (*movdf_insn_sp32): Likewise.
2350 (*mov<VM64:mode>_insn_sp32): Likewise.
2351 (*movtf_insn_sp32): Remove alternatives mentioning U constraint.
2352
2353 2016-12-02 Jeff Law <law@redhat.com>
2354
2355 * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused
2356 variable main_variant.
2357
2358 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2359
2360 * config.gcc (powerpc*-*-linux*): Set gnu-indirect-function by
2361 default on PowerPC linux systems.
2362
2363 2016-12-02 Segher Boessenkool <segher@kernel.crashing.org>
2364
2365 PR rtl-optimization/78638
2366 * simplify-rtx.c (simplify_truncation): M2 is not mode, it is
2367 GET_MODE (op). Fix this.
2368
2369 2016-12-02 David Malcolm <dmalcolm@redhat.com>
2370
2371 PR bootstrap/78616
2372 * selftest.c (selftest::assert_strndup_eq): Rename to...
2373 (selftest::assert_xstrndup_eq): ...this, and remove call to
2374 strndup.
2375 (selftest::test_strndup): Rename to...
2376 (selftest::test_xstrndup): ...this, updating for above renaming.
2377 (selftest::test_libiberty): Update for renaming.
2378
2379 2016-12-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2380
2381 PR target/78639
2382 * config/rs6000/rs6000.md (movdi_internal64): Fix typo in
2383 subversion id 242679 that causes the wrong store instruction to be
2384 generated if a DImode is in an Altivec register using REG+REG
2385 addressing.
2386
2387 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
2388
2389 PR target/70322
2390 * config/i386/i386.md (*andndi3_doubleword): Add non-BMI alternative
2391 and corresponding post-reload splitter.
2392
2393 2016-12-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2394
2395 * config/aarch64/aarch64.h (machine_function): Add
2396 reg_is_wrapped_separately field.
2397 * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Define new constant.
2398 * config/aarch64/aarch64.c (emit_set_insn): Change return type to
2399 rtx_insn *.
2400 (aarch64_save_callee_saves): Don't save registers that are wrapped
2401 separately.
2402 (aarch64_restore_callee_saves): Don't restore registers that are
2403 wrapped separately.
2404 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p,
2405 aarch64_offset_7bit_signed_scaled_p): Move earlier in the file.
2406 (aarch64_get_separate_components): New function.
2407 (aarch64_get_next_set_bit): Likewise.
2408 (aarch64_components_for_bb): Likewise.
2409 (aarch64_disqualify_components): Likewise.
2410 (aarch64_emit_prologue_components): Likewise.
2411 (aarch64_emit_epilogue_components): Likewise.
2412 (aarch64_set_handled_components): Likewise.
2413 (aarch64_process_components): Likewise.
2414 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
2415 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
2416 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
2417 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
2418 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
2419 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
2420
2421 2016-12-02 Martin Jambor <mjambor@suse.cz>
2422
2423 * passes.def: Move pass_rebuild_cgraph_edges to the end of
2424 pass_build_ssa_passes.
2425
2426 2016-12-02 Uros Bizjak <ubizjak@gmail.com>
2427
2428 * config/alpha/alpha.md (exception_receiver): Copy
2429 alpha_gp_ave_rtx return value.
2430
2431 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
2432
2433 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
2434 for several include directories that may be relative to sysroot.
2435 * config/i386/x-mingw32 (gplus_includedir): Define.
2436 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
2437 (native_system_includedir): Likewise.
2438 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
2439 override if TARGET_SYSTEM_ROOT is defined.
2440 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
2441
2442 2016-12-02 Jakub Jelinek <jakub@redhat.com>
2443
2444 PR target/70322
2445 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Handle NOT.
2446 (dimode_scalar_chain::compute_convert_gain): Likewise.
2447 (dimode_scalar_chain::convert_insn): Likewise.
2448 * config/i386/i386.md (*one_cmpldi2_doubleword): New
2449 define_insn_and_split.
2450 (one_cmpl<mode>2): Use SWIM1248x iterator instead of SWIM.
2451
2452 PR target/78614
2453 * rtl.c (copy_rtx): Don't clear used flag here.
2454 (shallow_copy_rtx_stat): Clear used flag here unless code the rtx
2455 is shareable.
2456 * simplify-rtx.c (simplify_replace_fn_rtx): When copying rtx with
2457 'E' in format, copy all vectors.
2458 * emit-rtl.c (copy_insn_1): Don't clear used flag here.
2459 * valtrack.c (cleanup_auto_inc_dec): Likewise.
2460 * config/rs6000/rs6000.c (rs6000_frame_related): Likewise.
2461
2462 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2463 Thomas Preud'homme <thomas.preudhomme@arm.com>
2464
2465 * config/arm/arm-builtins.c (arm_builtins): Define
2466 ARM_BUILTIN_CMSE_NONSECURE_CALLER.
2467 (bdesc_2arg): Add line for cmse_nonsecure_caller.
2468 (arm_init_builtins): Handle cmse_nonsecure_caller.
2469 (arm_expand_builtin): Likewise.
2470 * config/arm/arm_cmse.h (cmse_nonsecure_caller): New.
2471
2472 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2473 Thomas Preud'homme <thomas.preudhomme@arm.com>
2474
2475 * config/arm/arm.c (detect_cmse_nonsecure_call): New.
2476 (cmse_nonsecure_call_clear_caller_saved): New.
2477 (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved.
2478 (arm_function_ok_for_sibcall): Disable sibcalls for
2479 cmse_nonsecure_call.
2480 * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New.
2481 * config/arm/arm.md (call): Handle cmse_nonsecure_entry.
2482 (call_value): Likewise.
2483 (nonsecure_call_internal): New.
2484 (nonsecure_call_value_internal): New.
2485 * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New.
2486 (*nonsecure_call_value_reg_thumb1_v5): New.
2487 * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New.
2488 (*nonsecure_call_value_reg_thumb2): New.
2489 * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New.
2490
2491 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2492 Thomas Preud'homme <thomas.preudhomme@arm.com>
2493
2494 * config/arm/arm.c (gimplify.h): New include.
2495 (arm_handle_cmse_nonsecure_call): New.
2496 (arm_attribute_table): Added cmse_nonsecure_call.
2497 (arm_comp_type_attributes): Deny compatibility of function types
2498 with without the cmse_nonsecure_call attribute.
2499 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
2500
2501 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2502 Thomas Preud'homme <thomas.preudhomme@arm.com>
2503
2504 * config/arm/arm.c (output_return_instruction): Clear
2505 registers.
2506 (thumb2_expand_return): Likewise.
2507 (thumb1_expand_epilogue): Likewise.
2508 (thumb_exit): Likewise.
2509 (arm_expand_epilogue): Likewise.
2510 (cmse_nonsecure_entry_clear_before_return): New.
2511 (comp_not_to_clear_mask_str_un): New.
2512 (compute_not_to_clear_mask): New.
2513 * config/arm/thumb1.md (*epilogue_insns): Change length attribute.
2514 * config/arm/thumb2.md (*thumb2_return): Disable for
2515 cmse_nonsecure_entry functions.
2516 (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for
2517 cmse_nonsecure_entry functions.
2518
2519 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2520 Thomas Preud'homme <thomas.preudhomme@arm.com>
2521
2522 * config/arm/arm.c (use_return_insn): Change to return with bxns
2523 when cmse_nonsecure_entry.
2524 (output_return_instruction): Likewise.
2525 (arm_output_function_prologue): Likewise.
2526 (thumb_pop): Likewise.
2527 (thumb_exit): Likewise.
2528 (thumb2_expand_return): Assert that entry functions always have simple
2529 returns.
2530 (arm_expand_epilogue): Handle entry functions.
2531 (arm_function_ok_for_sibcall): Disable sibcall for entry functions.
2532 (arm_asm_declare_function_name): New.
2533 * config/arm/arm-protos.h (arm_asm_declare_function_name): New.
2534 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to
2535 use arm_asm_declare_function_name.
2536
2537 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2538 Thomas Preud'homme <thomas.preudhomme@arm.com>
2539
2540 * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
2541 (arm_attribute_table): Added cmse_nonsecure_entry
2542 (arm_compute_func_type): Handle cmse_nonsecure_entry.
2543 (cmse_func_args_or_return_in_stack): New.
2544 (arm_handle_cmse_nonsecure_entry): New.
2545 * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
2546 (IS_CMSE_ENTRY): Likewise.
2547 * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute.
2548
2549 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2550 Thomas Preud'homme <thomas.preudhomme@arm.com>
2551
2552 * config.gcc (extra_headers): Added arm_cmse.h.
2553 * config/arm/arm-arches.def (ARM_ARCH):
2554 (armv8-m): Add FL2_CMSE.
2555 (armv8-m.main): Likewise.
2556 (armv8-m.main+dsp): Likewise.
2557 * config/arm/arm-c.c
2558 (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
2559 * config/arm/arm-flags.h: Define FL2_CMSE.
2560 * config/arm.c (arm_arch_cmse): New.
2561 (arm_option_override): New error for unsupported cmse target.
2562 * config/arm/arm.h (arm_arch_cmse): New.
2563 * config/arm/arm.opt (mcmse): New.
2564 * config/arm/arm_cmse.h: New file.
2565 * doc/invoke.texi (ARM Options): Add -mcmse.
2566 * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target.
2567 * doc/extend.texi: Add ARMv8-M Security Extensions entry.
2568
2569 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
2570
2571 * config/avr/avr.c: Fix coding rule glitches.
2572
2573 2016-12-02 Martin Jambor <mjambor@suse.cz>
2574
2575 * hsa.c (hsa_callable_function_p): Return false for artificial
2576 functions.
2577
2578 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
2579
2580 PR rtl-optimization/78561
2581 * varasm.c (recompute_pool_offsets): New.
2582 (output_constant_pool): Call it.
2583
2584 2016-12-02 James Greenhalgh <james.greenhalgh@arm.com>
2585
2586 PR rtl-optimization/78561
2587 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Rename
2588 get_pool_size to get_pool_size_upper_bound.
2589 (rs6000_stack_info): Likewise.
2590 (rs6000_emit_prologue): Likewise.
2591 (rs6000_elf_declare_function_name): Likewise.
2592 (rs6000_set_up_by_prologue): Likewise.
2593 (rs6000_can_eliminate): Likewise, reformat spaces to tabs.
2594 * output.h (get_pool_size): Rename to...
2595 (get_pool_size_upper_bound): ...This.
2596 * varasm.c (get_pool_size): Rename to...
2597 (get_pool_size_upper_bound): ...This.
2598
2599 2016-12-02 Bin Cheng <bin.cheng@arm.com>
2600
2601 * match.pd: Add new pattern:
2602 (cond (cmp (convert? x) c1) (op x c2) c3) -> (op (minmax x c1) c2).
2603
2604 2016-12-02 Nathan Sidwell <nathan@acm.org>
2605
2606 * diagnostic.c (diagnostic_report_diagnostic): Remove extraneous
2607 braces.
2608
2609 2016-12-02 Aldy Hernandez <aldyh@redhat.com>
2610
2611 PR middle-end/78328
2612 * gimple-ssa-warn-alloca.c (alloca_call_type): Handle
2613 VR_ANTI_RANGE.
2614
2615 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2616
2617 * config/s390/s390.c (s390_save_gprs_to_fprs): Fix RTL sharing
2618 problem.
2619
2620 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
2621
2622 * config/avr/avr-arch.h (avr_mcu_t) [n_flash]: Remove field.
2623 * config/avr/avr-devices.c (AVR_MCU): Remove N_FLASH macro argument.
2624 * config/avr/avr-mcus.def (AVR_MCU): Remove initializer for n_flash.
2625 * config/avr/avr.c (avr_set_core_architecture) [avr_n_flash]: Use
2626 avr_mcu_types.flash_size to compute default value.
2627 * config/avr/gen-avr-mmcu-specs.c (print_mcu) [cc1_n_flash]: Use
2628 mcu->flash_size to compute value for spec.
2629
2630 2016-12-02 Georg-Johann Lay <avr@gjlay.de>
2631
2632 * doc/invoke.texi (AVR Options) [-mabsdata]: Point to absdata.
2633 * doc/extend.texi (AVR Variable Attributes) [progmem]: Hint
2634 about linker description to avoid progmem altogether.
2635 [absdata]: Point to -mabsdata option.
2636
2637 2016-12-02 Jakub Jelinek <jakub@redhat.com>
2638
2639 PR rtl-optimization/78547
2640 * emit-rtl.c (unshare_all_rtl): Make sure DECL_RTL and
2641 DECL_INCOMING_RTL is not shared.
2642 * config/i386/i386.c (convert_scalars_to_vectors): If any
2643 insns have been converted, adjust all parameter's DEC_RTL and
2644 DECL_INCOMING_RTL back from V1TImode to TImode if the parameters have
2645 TImode.
2646
2647 PR rtl-optimization/78575
2648 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses): Use
2649 DF infrastructure to wrap all V1TImode reg uses into TImode subreg
2650 if not already wrapped in a subreg. Make sure df_insn_rescan does not
2651 affect further iterations.
2652
2653 2016-12-02 Martin Liska <mliska@suse.cz>
2654
2655 PR ipa/78555
2656 * sreal.c (sreal::to_int): Make absolute value before shifting.
2657 (sreal::operator/): Likewise.
2658 (sreal_verify_negative_division): New test.
2659 (void sreal_c_tests): Call the new test.
2660 * sreal.h (sreal::normalize_up): Use new SREAL_ABS and
2661 SREAL_SIGN macros.
2662 (sreal::normalize_down): Likewise.
2663
2664 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
2665
2666 * combine.c (combine_simplify_rtx): Suppress replacement of
2667 "(and (reg) (const_int bit))" with "if_then_else".
2668
2669 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
2670
2671 PR target/77822
2672 * config/s390/s390.md ("extzv")
2673 ("*extzv<mode><clobbercc_or_nocc>")
2674 ("*extzvdi<clobbercc_or_nocc>_lshiftrt")
2675 ("*<risbg_n>_ior_and_sr_ze")
2676 ("*extract1bitdi<clobbercc_or_nocc>")
2677 ("*insv<mode><clobbercc_or_nocc>", "*insv_rnsbg_noshift")
2678 ("*insv_rnsbg_srl", "*insv<mode>_mem_reg")
2679 ("*insvdi_mem_reghigh", "*insvdi_reg_imm"): Use EXTRACT_ARGS_IN_RANGE
2680 to validate the arguments of zero_extract and sign_extract.
2681
2682 2016-12-02 Dominik Vogt <vogt@linux.vnet.ibm.com>
2683
2684 PR target/77822
2685 * rtl.h (EXTRACT_ARGS_IN_RANGE): New.
2686
2687 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2688
2689 * gcc/config/s390/s390.c (s390_builtin_vectorization_cost): New
2690 function.
2691 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Define target
2692 macro.
2693
2694 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2695
2696 * config/s390/vector.md (vec_halfhalf): New mode iterator.
2697 ("vec_pack_trunc_<mode>", "vec_pack_ssat_<mode>")
2698 ("vec_pack_usat_<mode>", "vec_unpacks_hi_v16qi")
2699 ("vec_unpacks_low_v16qi", "vec_unpacku_hi_v16qi")
2700 ("vec_unpacku_low_v16qi", "vec_unpacks_hi_v8hi")
2701 ("vec_unpacks_lo_v8hi", "vec_unpacku_hi_v8hi")
2702 ("vec_unpacku_lo_v8hi", "vec_unpacks_hi_v4si")
2703 ("vec_unpacks_lo_v4si", "vec_unpacku_hi_v4si")
2704 ("vec_unpacku_lo_v4si"): New pattern definitions.
2705 * config/s390/vx-builtins.md: Move VI_HW_HSD mode iterator to
2706 vector.md.
2707
2708 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2709
2710 * config/s390/s390-protos.h (s390_reverse_condition): New
2711 prototype.
2712 * config/s390/s390.c (s390_canonicalize_comparison): Fold compares
2713 of CC mode values.
2714 (s390_reverse_condition): New function.
2715 * config/s390/s390.h (REVERSE_CC_MODE, REVERSE_CONDITION): Define
2716 target macros.
2717
2718 2016-12-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2719
2720 * config/s390/s390-modes.def (CCVEQANY, CCVH, CCVHANY, CCVHU)
2721 (CCVHUANY): Remove modes.
2722 (CCVIH, CCVIHU, CCVIALL, CCVIANY, CCVFALL, CCVFANY): Add modes and
2723 documentation.
2724 * config/s390/s390.c (s390_match_ccmode_set): Rename cc modes.
2725 (s390_expand_vec_compare_scalar): Pick one of the cc consumer
2726 modes.
2727 (s390_branch_condition_mask): Adjust to use the new cc consumer
2728 modes. The new modes allow for proper reversal in the middle-end.
2729 (s390_expand_vec_compare_cc): Determine the proper cc producer and
2730 consumer modes for a comparison.
2731 * config/s390/s390.md: Rename CCVH to CCVIH and CCVHU to CCVIHU
2732 throughout the file.
2733 * config/s390/vx-builtins.md: Likewise.
2734
2735 2016-12-02 Maxim Ostapenko <m.ostapenko@samsung.com>
2736
2737 * asan.c (asan_global_struct): Refactor.
2738 (create_odr_indicator): New function.
2739 (asan_needs_odr_indicator_p): Likewise.
2740 (is_odr_indicator): Likewise.
2741 (asan_add_global): Introduce odr_indicator_ptr. Pass it into global's
2742 constructor.
2743 (asan_protect_global): Do not protect odr indicators.
2744
2745 2016-12-01 Jeff Law <law@redhat.com>
2746
2747 * tree-ssa-threadedge.c
2748 (record_temporary_equivalences_from_stmts_at_dest): Avoid temporary
2749 propagation of operands if there are no operands.
2750
2751 2016-12-02 Jakub Jelinek <jakub@redhat.com>
2752
2753 PR tree-optimization/78586
2754 * gimple-ssa-sprintf.c (format_integer): Don't handle NOP_EXPR,
2755 CONVERT_EXPR or COMPONENT_REF here. Formatting fix. For
2756 SSA_NAME_DEF_STMT with NOP_EXPR only change argtype if the rhs1's
2757 type is INTEGER_TYPE or POINTER_TYPE.
2758
2759 2016-12-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
2760
2761 PR target/78577
2762 * config/rs6000/vsx.md (vextuhlx): Revise mode of operand 2.
2763 (vextuhrx): Likewise.
2764 (vextuwlx): Likewise.
2765 (vextuwrx): Likewise.
2766
2767 2016-12-01 David Malcolm <dmalcolm@redhat.com>
2768
2769 * dwarf2out.c (dwarf2out_c_finalize): Reset early_dwarf and
2770 early_dwarf_finished.
2771
2772 2016-12-01 Eric Botcazou <ebotcazou@adacore.com>
2773 David S. Miller <davem@davemloft.net>
2774
2775 * config/sparc/sparc.opt (mlra): New target option.
2776 * config/sparc/sparc.c (TARGET_LRA_P): Define to...
2777 (sparc_lra_p): ...this. New function.
2778 (D_MODES, DF_MODES): Add missing cast.
2779 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
2780 provide these insns when flag_pic.
2781 (sethi_di_medlow, losum_di_medlow, seth44, setm44, setl44, sethh,
2782 setlm, sethm, setlo, embmedany_sethi, embmedany_losum,
2783 embmedany_brsum, embmedany_textuhi, embmedany_texthi,
2784 embmedany_textulo, embmedany_textlo): Likewise.
2785 (sethi_di_medlow_embmedany_pic): Provide it only with flag_pic.
2786
2787 2016-12-01 David Edelsohn <dje.gcc@gmail.com>
2788
2789 PR debug/66419
2790 PR c++/78235
2791 * dbxout.c (dbxout_type_fields): Skip TEMPLATE_DECLs.
2792
2793 2016-12-01 Richard Biener <rguenther@suse.de>
2794 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2795
2796 * vec.h (vec<T, A, vl_embed>::quick_grow_cleared): Guard call to
2797 memset if len-oldlen != 0.
2798 (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Likewise.
2799
2800 2016-12-01 Uros Bizjak <ubizjak@gmail.com>
2801
2802 * config/i386/i386.md (*andndi3_doubleword): Depend on TARGET_SSE2.
2803
2804 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
2805
2806 * config/avr/avr.c: Fix coding rule glitches.
2807
2808 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
2809
2810 PR tree-optimization/78598
2811 * tree-ssa-loop-prefetch.c (ddown): Cast to signed to avoid
2812 overflows.
2813
2814 2016-12-01 Markus Trippelsdorf <markus@trippelsdorf.de>
2815
2816 PR rtl-optimization/78596
2817 * combine.c (simplify_comparison): Cast to unsigned to avoid
2818 left shifting of negative value.
2819
2820 2016-12-01 Matthias Klose <doko@ubuntu.com>
2821
2822 * doc/install.texi: Don't use pkg-config to check for bdw-gc.
2823
2824 2016-12-01 Richard Biener <rguenther@suse.de>
2825
2826 * tree-ssa-alias.c (indirect_refs_may_alias_p): Do not
2827 treat arrays with same type as objects that cannot overlap.
2828
2829 2016-12-01 Georg-Johann Lay <avr@gjlay.de>
2830
2831 * config/avr/avr.c (avr_print_operand): Use SYMBOL_REF_P if possible.
2832 (avr_handle_addr_attribute, avr_asm_output_aligned_decl_common)
2833 (avr_asm_asm_output_aligned_bss, avr_addr_space_convert): Dito.
2834
2835 2016-12-01 Jakub Jelinek <jakub@redhat.com>
2836
2837 PR debug/78587
2838 * dwarf2out.c (loc_descr_plus_const): For negative offset use
2839 uint_loc_descriptor instead of int_loc_descriptor and perform negation
2840 in unsigned HOST_WIDE_INT type.
2841 (scompare_loc_descriptor): Shift UINTVAL left instead of INTVAL.
2842
2843 PR target/78614
2844 * config/rs6000/rs6000.c (rs6000_frame_related): Call
2845 set_used_flags (pat) before any simplifications. Clear used flag on
2846 PARALLEL copy. Don't guard add_reg_note call. Call
2847 copy_rtx_if_shared on pat before storing it into
2848 REG_FRAME_RELATED_EXPR.
2849
2850 2016-12-01 Alan Modra <amodra@gmail.com>
2851
2852 * gcc/config/rs6000/rs6000.c (insn_is_swappable_p): Properly
2853 look inside UNSPEC_VSX_XXSPLTW vec.
2854
2855 2016-12-01 Segher Boessenkool <segher@kernel.crashing.org>
2856
2857 PR rtl-optimization/78607
2858 * combine.c (try_combine): Emit a barrier after a unconditional trap.
2859
2860 2016-11-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2861
2862 PR target/78602
2863 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): If the
2864 element is not a constant or in a register, force it to a
2865 register.
2866
2867 PR target/78560
2868 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Force value
2869 that will be set to a vector element to be in a register.
2870 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Fix thinko that used
2871 the wrong multiplier to convert the element number to a byte
2872 offset.
2873
2874 2016-11-30 Vladimir Makarov <vmakarov@redhat.com>
2875
2876 PR tree-optimization/77856
2877 * lra-constraints.c (inherit_in_ebb): Check original regno for
2878 invalid invariant regs too. Set only clobbered hard regs for the
2879 invalid invariant regs.
2880
2881 2016-11-30 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
2882
2883 Commit files forgotten in r242966.
2884
2885 * config/avr/avr-arch.h (avr_mcu_t) [flash_size]: New member.
2886 * config/avr/avr-devices.c (avr_mcu_types): Add flash size info.
2887 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Remove hard-coded
2888 prefix check to find wrap-around value, instead use MCU flash size.
2889 For 8k flash devices, update link_pmem_wrap spec string to
2890 add --pmem-wrap-around=8k.
2891 * config/avr/specs.h (LINK_RELAX_SPEC): Move link_pmem_wrap from
2892 here...
2893 (LINK_SPEC): ...to here.
2894
2895 2016-11-30 David Malcolm <dmalcolm@redhat.com>
2896
2897 PR c/78498
2898 * selftest.c (selftest::assert_strndup_eq): New function.
2899 (selftest::test_strndup): New function.
2900 (selftest::test_libiberty): New function.
2901 (selftest::selftest_c_tests): Call test_libiberty.
2902
2903 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
2904
2905 PR rtl-optimization/78610
2906 * ira.c (combine_and_move_insns): Don't substitute into TRAP_IF
2907 instructions.
2908
2909 2016-11-30 Bin Cheng <bin.cheng@arm.com>
2910
2911 PR tree-optimization/78574
2912 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Skip loop
2913 header PHI that doesn't define biv.
2914
2915 2016-11-30 Jakub Jelinek <jakub@redhat.com>
2916
2917 * emit-rtl.c (verify_insn_sharing): Call verify_rtx_sharing instead of
2918 reset_used_flags.
2919
2920 * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
2921 sharing the SUBREG rtx between move and following insn.
2922
2923 * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
2924 for REG_EQUIV argument.
2925
2926 2016-11-30 Thomas Preud'homme <thomas.preudhomme@arm.com>
2927
2928 * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33.
2929
2930 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
2931
2932 PR ipa/78555
2933 * real.c (real_hash): Add cast to avoid left
2934 shifting of negative values.
2935
2936 2016-11-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2937
2938 PR target/78362
2939 * config/aarch64/aarch64.md (add<mode>3): Extract inner expression
2940 from a subreg in operands[1] and don't call REGNO on a non-reg
2941 expression when deciding to force operands[2] into a reg.
2942
2943 2016-11-30 Claudiu Zissulescu <claziss@synopsys.com>
2944 Andrew Burgess <andrew.burgess@embecosm.com>
2945
2946 * config/arc/arc-protos.h (arc_store_addr_hazard_p): Declare.
2947 * config/arc/arc.c (arc_store_addr_hazard_p): New function.
2948 (workaround_arc_anomaly): Call arc_store_addr_hazard_p for ARC700.
2949 * config/arc/arc700.md: Add define_bypass for store/load.
2950
2951 2016-11-30 Martin Liska <mliska@suse.cz>
2952
2953 * cgraph.c (symbol_table::initialize): Initialize
2954 ipa_clones_dump_file.
2955 (cgraph_node::remove): Report to ipa_clones_dump_file.
2956 * cgraph.h: Add new argument (suffix) to cloning methods.
2957 * cgraphclones.c (dump_callgraph_transformation): New function.
2958 (cgraph_node::create_clone): New argument.
2959 (cgraph_node::create_virtual_clone): Likewise.
2960 (cgraph_node::create_version_clone): Likewise.
2961 * dumpfile.c: Add .ipa-clones dump file.
2962 * dumpfile.h (enum tree_dump_index): Add TDI_clones
2963 * ipa-inline-transform.c (clone_inlined_nodes): Report operation
2964 to dump_callgraph_transformation.
2965
2966 2016-11-30 Martin Liska <mliska@suse.cz>
2967
2968 PR sanitizer/78541
2969 * asan.c (asan_expand_mark_ifn): Properly
2970 select a VAR_DECL from FRAME.* component reference.
2971
2972 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
2973
2974 PR rtl-optimization/78583
2975 * simplify-rtx.c (simplify_truncation): Add check missing from the
2976 previous commit.
2977
2978 2016-11-30 Segher Boessenkool <segher@kernel.crashing.org>
2979
2980 PR rtl-optimization/78590
2981 * combine.c (change_zero_ext): Transform zero_extend of subregs only
2982 if the subreg_reg is a scalar integer mode.
2983
2984 2016-11-30 Jakub Jelinek <jakub@redhat.com>
2985
2986 PR tree-optimization/78586
2987 * gimple-ssa-sprintf.c (format_integer): Use TYPE_MAX_VALUE or
2988 TYPE_MIN_VALUE or build_all_ones_cst instead of folding LSHIFT_EXPR.
2989 Don't build_int_cst min/max twice. Formatting fix.
2990
2991 2016-11-30 Markus Trippelsdorf <markus@trippelsdorf.de>
2992
2993 PR rtl-optimization/78588
2994 * combine.c (if_then_else_cond): Also guard against BLKmode.
2995 * rtlanal.c (num_sign_bit_copies1): Add assert.
2996
2997 2016-11-29 Jeff Law <law@redhat.com>
2998
2999 * common/config/arc/arc-common.c (arc_handle_option): Remove unused
3000 variables.
3001
3002 * lra-constraints.c (check_and_process_move): Constrain the
3003 range of DCLASS and SCLASS to avoid false positive out of bounds
3004 array index warning.
3005
3006 2016-11-29 David Malcolm <dmalcolm@redhat.com>
3007
3008 * doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
3009
3010 2016-11-29 David Malcolm <dmalcolm@redhat.com>
3011
3012 PR preprocessor/78569
3013 * input.c (get_substring_ranges_for_loc): Fail gracefully if
3014 line directives were present.
3015
3016 2016-11-30 Matthias Klose <doko@ubuntu.com>
3017
3018 * doc/install.texi: Document configure options --enable-objc-gc
3019 and --with-target-bdw-gc.
3020
3021 2016-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
3022
3023 PR target/78594
3024 * config/rs6000/rs6000.md (mov<mode>_internal, QHI iterator): Add
3025 'x' to stxsi<wd>x print pattern, so that QImode and HImode values
3026 residing in traditional altivec registers can be stored
3027 correctly.
3028
3029 2016-11-29 Max Filippov <jcmvbkbc@gmail.com>
3030
3031 PR target/78603
3032 * config/xtensa/xtensa.c (hwloop_optimize): Don't emit zero
3033 overhead loop start between a call and its CALL_ARG_LOCATION
3034 note.
3035
3036 2016-11-29 Waldemar Brodkorb <wbx@openadk.org>
3037
3038 * config/bfin/linux.h (CPP_SPEC): Define.
3039
3040 2016-11-29 Martin Sebor <msebor@redhat.com>
3041
3042 PR tree-optimization/78512
3043 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Remove.
3044 * config/rs6000/linux.h: Same.
3045 * config/rs6000/linux64.h: Same.
3046 * config/sol2.h: Same.
3047 * config/sol2.c (solaris_printf_pointer_format): Remove.
3048 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Remove.
3049 * doc/tm.texi: Regenerate.
3050 * gimple-ssa-sprintf.c (format_pointer): Rempove.
3051 (pass_sprintf_length::compute_format_length): Return bool.
3052 (pass_sprintf_length::handle_gimple_call): Adjust.
3053 * target.def (printf_pointer_format): Remove.
3054 * targhooks.c (default_printf_pointer_format): Remove.
3055 (linux_printf_pointer_format): Same.
3056 * targhooks.h (default_printf_pointer_format): Remove.
3057 (linux_printf_pointer_format, solaris_printf_pointer_format): Same.
3058
3059 2016-11-29 Uros Bizjak <ubizjak@gmail.com>
3060
3061 * config/i386/sse.md (UNSPEC_MASKOP): Move from i386.md.
3062 (mshift): Ditto.
3063 (SWI1248_AVX512BWDQ): Ditto.
3064 (SWI1248_AVX512BW): Ditto.
3065 (k<any_logic:code><mode>): Ditto.
3066 (kandn<mode>): Ditto.
3067 (kxnor<mode>): Ditto.
3068 (knot<mode>): Ditto.
3069 (*k<any_lshift:code><mode>): Ditto.
3070 (kortestzhi, kortestchi): Ditto.
3071 (kunpckhi, kunpcksi, kunpckdi): Ditto.
3072
3073 2016-11-29 Andrew Pinski <apinski@cavium.com>
3074
3075 * tree-vrp.c (simplify_stmt_using_ranges): Use boolean_type_node
3076 for the EQ_EXPR.
3077
3078 2016-11-29 Chen Gang <gang.chen.5i5j@gmail.com>
3079
3080 PR target/71331
3081 * config/tilegx/tilegx.c (tilegx_function_profiler): Save r10
3082 to stack before call mcount.
3083 (tilegx_can_use_return_insn_p): Clean up code.
3084
3085 2016-11-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
3086
3087 * config/avr/avr-mcu.def: (avr_mcu_types): Add flash size info.
3088
3089 2016-11-29 David Malcolm <dmalcolm@redhat.com>
3090
3091 PR c++/72774
3092 PR c++/72786
3093 PR c++/77922
3094 PR c++/78313
3095 * spellcheck.c (selftest::test_find_closest_string): Verify that
3096 we don't offer the goal string as a suggestion.
3097 * spellcheck.h (best_match::get_best_meaningful_candidate): Don't
3098 offer the goal string as a suggestion.
3099
3100
3101 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
3102
3103 * config/arc/arc.c (arc_override_options): Avoid selection of
3104 compact casesi for ARCv2.
3105
3106 2016-11-29 Richard Biener <rguenther@suse.de>
3107
3108 * tree-cfg.c (lower_phi_internal_fn): Do not look for further
3109 PHIs after a regular stmt.
3110 (stmt_starts_bb_p): PHIs not preceeded by a PHI or a label
3111 start a new BB.
3112
3113 2016-11-29 Martin Liska <mliska@suse.cz>
3114
3115 PR gcov-profile/78582
3116 * tree-profile.c (gimple_gen_time_profiler): Make one extra BB
3117 to prevent PHI argument clash.
3118
3119 2016-11-29 Claudiu Zissulescu <claziss@synopsys.com>
3120
3121 * config/arc/arc.opt (marclinux): Fix typo.
3122 (marclinux_prof): Likewise.
3123
3124 2016-11-29 Jiong Wang <jiong.wang@arm.com>
3125
3126 * target.def (stack_protect_runtime_enabled_p): New.
3127 * function.c (expand_function_end): Guard stack_protect_epilogue with
3128 targetm.stack_protect_runtime_enabled_p.
3129 * cfgexpand.c (pass_expand::execute): Likewise.
3130 * calls.c (expand_call): Likewise.
3131 * doc/tm.texi.in (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): Add it.
3132 * doc/tm.texi: Regenerate.
3133
3134 2016-11-29 Richard Biener <rguenther@suse.de>
3135
3136 PR middle-end/78546
3137 * match.pd: Add CST1 - (CST2 - A) -> CST3 + A missing case.
3138
3139 2016-11-29 Janus Weil <janus@gcc.gnu.org>
3140
3141 * doc/contrib.texi: Add a few missing gfortran contributors.
3142
3143 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
3144
3145 * combine.c (change_zero_ext): Also handle extends from a subreg
3146 to a mode bigger than that of the operand of the subreg.
3147
3148 2016-11-29 Segher Boessenkool <segher@kernel.crashing.org>
3149
3150 PR target/77687
3151 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Emit the
3152 stack_restore_tie insn instead of stack_tie, for the SVR4 and
3153 SPE ABIs.
3154 * config/rs6000/rs6000.md (stack_restore_tie): New define_insn.
3155
3156 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
3157
3158 * shrink-wrap.c (init_separate_shrink_wrap): Do not clear
3159 head_components and tail_components.
3160 (spread_components): New algorithm.
3161 (emit_common_tails_for_components): Clear head_components and
3162 tail_components.
3163 (insert_prologue_epilogue_for_components): Write extra output to the
3164 dump file for sibcalls and abnormal exits.
3165
3166 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
3167
3168 PR rtl-optimization/78342
3169 * combine.c: Include "cfghooks.h".
3170 (try_combine): If we create an unconditional trap, break the basic
3171 block in two just after it, and remove the edge between; also, set
3172 the *new_direct_jump_p flag so that cleanup_cfg is run.
3173
3174 2016-11-28 Segher Boessenkool <segher@kernel.crashing.org>
3175
3176 * simplify-rtx.c (simplify_truncation): Handle truncate of zero_extract
3177 and sign_extract.
3178
3179 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
3180
3181 * config/i386/i386.md (*and<mode>_1): Merge insn pattern from
3182 *andsi_1 and *andhi_1 using SWI24 mode iterator. Use multi-line
3183 output template string.
3184 (*anddi_1): Use multi-line output template string.
3185 (*andqi_1): Ditto.
3186
3187 2016-11-28 Jakub Jelinek <jakub@redhat.com>
3188
3189 PR middle-end/78540
3190 * rtl.h (remove_reg_equal_equiv_notes): Return bool instead of void.
3191 * rtlanal.c (remove_reg_equal_equiv_notes): Return true if any
3192 note has been removed.
3193 * postreload.c (reload_combine_recognize_pattern): If
3194 remove_reg_equal_equiv_notes returns true, call df_notes_rescan.
3195
3196 2016-11-28 Martin Sebor <msebor@redhat.com>
3197
3198 PR middle-end/78520
3199 * gimple-ssa-sprintf.c (target_max_value): Remove.
3200 (target_int_max, target_size_max): Use TYPE_MAX_VALUE.
3201 (get_width_and_precision): New function.
3202 (format_integer, format_floating, get_string_length, format_string):
3203 Correct handling of width and precision with unknown value.
3204 (format_directive): Add warning.
3205 (pass_sprintf_length::compute_format_length): Allow for precision
3206 to consist of a sole period with no asterisk or digits after it.
3207
3208 2016-11-28 Jakub Jelinek <jakub@redhat.com>
3209
3210 PR rtl-optimization/78546
3211 * simplify-rtx.c (neg_const_int): When negating most negative
3212 number in mode wider than HOST_BITS_PER_WIDE_INT, use
3213 simplify_const_unary_operation to produce CONST_DOUBLE or
3214 CONST_WIDE_INT.
3215 (simplify_plus_minus): Handle the case where neg_const_int
3216 doesn't return a CONST_INT.
3217
3218 2016-11-28 Markus Trippelsdorf <markus@trippelsdorf.de>
3219
3220 PR target/78556
3221 * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid
3222 left shifting of negative values.
3223
3224 2016-11-28 Jakub Jelinek <jakub@redhat.com>
3225
3226 PR fortran/78298
3227 * tree-nested.c (convert_local_reference_stmt): After adding
3228 shared (FRAME.NN) clause to omp parallel, task or target,
3229 add it also to all outer omp parallel, task or target constructs.
3230
3231 2016-11-28 Uros Bizjak <ubizjak@gmail.com>
3232
3233 * config/i386/i386.md (UNSPEC_KMASKOP): New.
3234 (UNSPEC_KMOV): Remove.
3235 (kmovw): Expand to plain HImode move.
3236 (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use
3237 register_operand predicates. Tag pattern with UNSPEC_KMASKOP.
3238 Remove corresponding clobber-removing splitter.
3239 (*anddi_1): Remove mask register alternatives.
3240 (*andsi_1): Ditto.
3241 (*andhi_1): Ditto.
3242 (*andqi_1): Ditto.
3243 (*<any_or:code><mode>_1): Ditto.
3244 (*<any_or:code>qi_1): Ditto.
3245 (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove
3246 general register alternatives. Tag pattern with UNSPEC_KMASKOP.
3247 Remove corresponding splitter to operation with general registers.
3248 (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>.
3249 (*andn<SWI12:mode>): New pattern.
3250 (*kxnor<mode>): Remove general register alternatives. Tag pattern
3251 with UNSPEC_KMASKOP. Remove corresponding splitter to operation
3252 with general registers.
3253 (knot<mode>): New insn pattern.
3254 (*one_cmpl<mode>2_1): Remove mask register alternatives.
3255 (one_cmplqi2_1): Ditto.
3256 (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3.
3257 Tag pattern with UNSPEC_KMASKOP. Add mode attribute.
3258 * config/i386/predicates.md (mask_reg_operand): Remove predicate.
3259 * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern
3260 to generate kmaskop shift.
3261 (vec_unpacks_hi_<mode>): Ditto.
3262 * config/i386/i386-builtin.def (__builtin_ia32_kandhi):
3263 Use CODE_FOR_kandhi.
3264 (__builtin_ia32_knothi): Use CODE_FOR_knothi.
3265 (__builtin_ia32_korhi): Use CODE_FOR_kiorhi.
3266 (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi.
3267
3268 2016-11-28 Richard Biener <rguenther@suse.de>
3269
3270 * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications
3271 to SSA names via extract_range_from_ssa_name if allowed.
3272
3273 2016-11-28 Richard Biener <rguenther@suse.de>
3274
3275 PR tree-optimization/78542
3276 * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification
3277 if allowed.
3278
3279 2016-11-28 Paolo Bonzini <bonzini@gnu.org>
3280
3281 * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that
3282 isolates a single bit, even if the condition involves subregs.
3283
3284 2016-11-28 Tamar Christina <tamar.christina@arm.com>
3285
3286 * config/aarch64/aarch64-simd-builtins.def
3287 (BSL_P): Added di and v2di mode.
3288 * config/aarch64/arm_neon.h
3289 (vsriq_n_p64, vsri_n_p64): Added poly type.
3290 (vextq_p64, vext_p64): Likewise.
3291 (vceq_p64, vbslq_p64, vbsl_p64): Likewise.
3292
3293 2016-11-28 Tamar Christina <tamar.christina@arm.com>
3294
3295 * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type.
3296 (TYPES_GETREGP): Likewise.
3297 (TYPES_SHIFTINSERTP): Likewise.
3298 (TYPES_COMBINEP): Likewise.
3299 (TYPES_STORE1P): Likewise.
3300 * config/aarch64/aarch64-simd-builtins.def
3301 (combine): Added poly generator.
3302 (get_dregoi): Likewise.
3303 (get_dregci): Likewise.
3304 (get_dregxi): Likewise.
3305 (ssli_n): Likewise.
3306 (ld1): Likewise.
3307 (st1): Likewise.
3308 * config/aarch64/arm_neon.h
3309 (poly64x1x2_t, poly64x1x3_t): New.
3310 (poly64x1x4_t, poly64x2x2_t): Likewise.
3311 (poly64x2x3_t, poly64x2x4_t): Likewise.
3312 (poly64x1_t): Likewise.
3313 (vcreate_p64, vcombine_p64): Likewise.
3314 (vdup_n_p64, vdupq_n_p64): Likewise.
3315 (vld2_p64, vld2q_p64): Likewise.
3316 (vld3_p64, vld3q_p64): Likewise.
3317 (vld4_p64, vld4q_p64): Likewise.
3318 (vld2_dup_p64, vld3_dup_p64): Likewise.
3319 (vld4_dup_p64, vsli_n_p64): Likewise.
3320 (vsliq_n_p64, vst1_p64): Likewise.
3321 (vst1q_p64, vst2_p64): Likewise.
3322 (vst3_p64, vst4_p64): Likewise.
3323 (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise.
3324 (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise.
3325 (vget_lane_p64, vgetq_lane_p64): Likewise.
3326 (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise.
3327 (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise.
3328 (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise.
3329 (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise.
3330 (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise.
3331 (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise.
3332 (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise.
3333 (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise.
3334 (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise.
3335 (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise.
3336 (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise.
3337 (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise.
3338 (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise.
3339 (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise.
3340 (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise.
3341 (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise.
3342 (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise.
3343 (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise.
3344 (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise.
3345 (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise.
3346 (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise.
3347 (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise.
3348 (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise.
3349 (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise.
3350 (vset_lane_p64, vsetq_lane_p64): Likewise.
3351 (vget_low_p64, vget_high_p64): Likewise.
3352 (vcombine_p64, vst2_lane_p64): Likewise.
3353 (vst3_lane_p64, vst4_lane_p64): Likewise.
3354 (vst2q_lane_p64, vst3q_lane_p64): Likewise.
3355 (vst4q_lane_p64, vget_lane_p64): Likewise.
3356 (vget_laneq_p64, vset_lane_p64): Likewise.
3357 (vset_laneq_p64, vcopy_lane_p64): Likewise.
3358 (vcopy_laneq_p64, vdup_n_p64): Likewise.
3359 (vdupq_n_p64, vdup_lane_p64): Likewise.
3360 (vdup_laneq_p64, vld1_p64): Likewise.
3361 (vld1q_p64, vld1_dup_p64): Likewise.
3362 (vld1q_dup_p64, vld1q_dup_p64): Likewise.
3363 (vmov_n_p64, vmovq_n_p64): Likewise.
3364 (vst3q_p64, vst4q_p64): Likewise.
3365 (vld1_lane_p64, vld1q_lane_p64): Likewise.
3366 (vst1_lane_p64, vst1q_lane_p64): Likewise.
3367 (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise.
3368 (vdupq_laneq_p64): Likewise.
3369
3370 2016-11-28 Tamar Christina <tamar.christina@arm.com>
3371
3372 * config/arm/arm_neon.h (vget_lane_p64): New.
3373
3374 2016-11-28 Iain Sandoe <iain@codesourcery.com>
3375
3376 PR target/71767
3377 * configure.ac (with_ld64): Use portable method to extract the
3378 major part of the version number.
3379 * configure: Regenerated.
3380
3381 2016-11-28 Jakub Jelinek <jakub@redhat.com>
3382
3383 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at
3384 UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if
3385 intmax_t couldn't be determined.
3386 (format_integer): Make {,u}intmax_type_node no longer static,
3387 initialize them only when needed. For z and t use
3388 signed_or_unsigned_type_for instead of assuming size_t and
3389 ptrdiff_t have the same precision.
3390
3391 PR lto/78211
3392 * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member.
3393 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it.
3394 (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec
3395 vector instead of traversing m_classes hash table. Release
3396 m_classes_vec.
3397 (sem_item_optimizer::read_section, sem_item_optimizer::add_class):
3398 Formatting fixes.
3399 (sem_item_optimizer::get_group_by_hash): When inserting a new group,
3400 add it also to m_classes_vec vector.
3401 (sem_item_optimizer::remove_symtab_node,
3402 sem_item_optimizer::build_hash_based_classes,
3403 sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes.
3404 (sem_item_optimizer::subdivide_classes_by_equality,
3405 sem_item_optimizer::subdivide_classes_by_sensitive_refs,
3406 sem_item_optimizer::verify_classes): Traverse m_classes_vec vector
3407 instead of traversing m_classes hash table. Formatting fixes.
3408 (sem_item_optimizer::traverse_congruence_split,
3409 sem_item_optimizer::do_congruence_step_for_index,
3410 sem_item_optimizer::do_congruence_step): Formatting fixes.
3411 (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec
3412 vector instead of traversing m_classes hash table.
3413 (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes.
3414 (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector
3415 instead of traversing m_classes hash table.
3416
3417 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
3418
3419 * config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if
3420 X is not unused after.
3421
3422 2016-11-28 Bernd Schmidt <bschmidt@redhat.com>
3423
3424 PR rtl-optimization/78120
3425 * rtlanal.c (insn_rtx_cost): Revert previous change.
3426
3427 2016-11-28 Georg-Johann Lay <avr@gjlay.de>
3428
3429 PR 41076
3430 * config/avr/avr.md (SPLIT34): New mode iterator.
3431 (bitop): New code iterator.
3432 (*iorhi3.ashift8-*). New insn-and-split patterns.
3433 (*movhi): Post-reload split reg = 0.
3434 [!MOVW]: Post-reload split reg = reg.
3435 (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg.
3436 (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations.
3437 (iorhi3, iorpsi3, iorsi3): Same.
3438 (xorhi3, xorpsi3, xorsi3): Same.
3439 * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx
3440 costs to *iorhi3.ashift8-* patterns.
3441
3442 2016-11-27 Iain Sandoe <iain@codesourcery.com>
3443 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3444
3445 PR target/67710
3446 * config.in: Regenerate
3447 * config/darwin-driver.c (darwin_driver_init): Emit a version string
3448 for the assembler.
3449 * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests.
3450 * config/darwin.opt(asm_macosx_version_min): New.
3451 * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC.
3452 * configure: Regenerate
3453 * configure.ac: Check for mmacosx-version-min handling.
3454
3455 2016-11-27 Iain Sandoe <iain@codesourcery.com>
3456
3457 PR target/57438
3458 * config/i386/i386.c (ix86_code_end): Note that we emitted code
3459 where the function might otherwise appear empty for picbase thunks.
3460 (ix86_output_function_epilogue): If we find a zero-sized function
3461 assume that reaching it is UB and trap. If we find a trailing label
3462 append a nop.
3463 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we
3464 find a zero-sized function assume that reaching it is UB and trap.
3465 If we find a trailing label, append a nop.
3466
3467 2016-11-27 Iain Sandoe <iain@codesourcery.com>
3468
3469 PR target/71767
3470 * config/darwin-sections.def (picbase_thunk_section): New.
3471 * config/darwin.c (darwin_init_sections): Set up picbase thunk
3472 section. (darwin_rodata_section, darwin_objc2_section,
3473 machopic_select_section, darwin_asm_declare_constant_name,
3474 darwin_emit_weak_or_comdat, darwin_function_section): Don’t use
3475 coalesced with newer linkers.
3476 (darwin_override_options): Decide on usage of coalesed sections
3477 on the basis of the target linker version.
3478 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New.
3479 * config/darwin.opt (mtarget-linker): New.
3480 * config/i386/i386.c (ix86_code_end): Do not force the thunks into
3481 a coalesced section, instead use a thunks section.
3482
3483 2016-11-27 Iain Sandoe <iain@codesourcery.com>
3484
3485 PR target/71767
3486 * configure.ac (with-ld64): New var, set for Darwin, set on
3487 detection of ld64, gcc_cv_ld64_export_dynamic: New, New test.
3488 * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define.
3489 * config/darwin10.h(DEF_LD64): Update for this target version.
3490 * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test.
3491 (DEF_LD64): Update for this target version.
3492 * configure: Regenerated.
3493 * config.in: Regenerated.
3494
3495 2016-11-27 Iain Sandoe <iain@codesourcery.com>
3496
3497 PR target/71767
3498 * config/darwin.c (imachopic_indirection_name): Make data
3499 section indirections linker-visible.
3500 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local
3501 constant labels linker-visible.
3502
3503 2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3504
3505 * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node.
3506 (free_lang_data): Remove assignment to ptrdiff_type_node.
3507
3508 2016-11-25 Jakub Jelinek <jakub@redhat.com>
3509
3510 PR rtl-optimization/78526
3511 * simplify-rtx.c (simplify_immed_subreg): Don't use wi::extract_uhwi
3512 beyond val's precision.
3513
3514 PR rtl-optimization/78527
3515 * combine.c (make_compound_operation_int): Ignore LSHIFTRT with
3516 out of bounds shift count.
3517
3518 2016-11-25 Martin Liska <mliska@suse.cz>
3519
3520 PR web/71666
3521 * doc/invoke.texi (-fprofile-use): Fix reference to a section
3522 where -fprofile-generate is documented.
3523
3524 2016-11-25 Martin Liska <mliska@suse.cz>
3525
3526 PR gcov-profile/78086
3527 * coverage.c (build_init_ctor): Don't use priority {cd}tors if
3528 not supported by a target. Set priority to 100 if possible.
3529 (build_gcov_exit_decl): Likewise.
3530
3531 2016-11-25 Richard Biener <rguenther@suse.de>
3532
3533 PR ipa/78515
3534 * ipa-prop.c (compute_complex_assign_jump_func): Properly identify
3535 unary, binary and single RHSs.
3536 * tree.def (BIT_INSERT_EXPR): Adjust tree code name.
3537
3538 2016-11-25 Bin Cheng <bin.cheng@arm.com>
3539
3540 PR middle-end/78507
3541 PR middle-end/78510
3542 PR middle-end/78517
3543 * match.pd ((cond (cmp (convert1? @1) @3) (convert2? @1) @2)): Use
3544 cmp directly, rather than cmp_code. Initialize code to ERROR_MARK
3545 and set it to result code if transformation is valid. Use code EQ
3546 directly in last simplification case.
3547
3548 2016-11-25 Richard Biener <rguenther@suse.de>
3549
3550 * gimple-fold.c (fold_stmt_1): Check may_propagate_copy
3551 before valueizing return stmts.
3552
3553 2016-11-24 Richard Biener <rguenther@suse.de>
3554
3555 PR tree-optimization/78343
3556 * passes.def: Add CD-DCE pass after loop splitting.
3557 * tree-ssa-dce.c (find_obviously_necessary_stmts): Move
3558 SCEV init/finalize ...
3559 (perform_tree_ssa_dce): ... here. Deal with being
3560 executed inside the loop pipeline in aggressive mode.
3561
3562 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
3563
3564 * tree-ssa-math-opts.c (struct symbolic_number): Improve comment.
3565
3566 2016-11-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
3567
3568 PR tree-optimization/77673
3569 * tree-ssa-math-opts.c (struct symbolic_number): Add new src field.
3570 (init_symbolic_number): Initialize src field from src parameter.
3571 (perform_symbolic_merge): Select most dominated statement as the
3572 source statement. Set src field of resulting n structure from the
3573 input src with the lowest address.
3574 (find_bswap_or_nop): Rename source_stmt into ins_stmt.
3575 (bswap_replace): Rename src_stmt into ins_stmt. Initially get source
3576 of load from src field rather than insertion statement. Cancel
3577 optimization if statement analyzed is not dominated by the insertion
3578 statement.
3579 (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute
3580 dominance information.
3581
3582 2016-11-25 Eric Botcazou <ebotcazou@adacore.com>
3583
3584 PR ada/67205
3585 * config/mips/mips.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
3586
3587 2016-11-25 Martin Jambor <mjambor@suse.cz>
3588
3589 PR tree-optimization/70965
3590 * passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges.
3591
3592 2016-11-24 James Greenahlgh <james.greenhalgh@arm.com>
3593
3594 PR target/78509
3595 * config/i386/i386.c (i386_excess_precision): Do not return
3596 FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
3597 EXCESS_PRECISION_TYPE_STANDARD.
3598 * target.def (excess_precision): Document that targets should
3599 not return FLT_EVAL_METHOD_UNPREDICTABLE when "type" is
3600 EXCESS_PRECISION_TYPE_STANDARD or EXCESS_PRECISION_TYPE_FAST.
3601 Fix typo in first sentence.
3602 * doc/tm.texi: Regenerate.
3603
3604 2016-11-25 Richard Biener <rguenther@suse.de>
3605
3606 PR tree-optimization/78396
3607 * tree-vectorizer.c (vectorize_loops): When the if-converted
3608 body contains masked loads or stores do not attempt to
3609 basic-block-vectorize it.
3610
3611 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
3612 Alan Hayward <alan.hayward@arm.com>
3613 David Sherwood <david.sherwood@arm.com>
3614
3615 * function.h (spill_slot_alignment): Declare.
3616 * function.c (spill_slot_alignment): New function.
3617 * lra-spills.c (slot): Add align and size fields.
3618 (assign_mem_slot): Use them in the call to assign_stack_local.
3619 (add_pseudo_to_slot): Update the fields.
3620 (assign_stack_slot_num_and_sort_pseudos): Initialise the fields.
3621
3622 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
3623 Alan Hayward <alan.hayward@arm.com>
3624 David Sherwood <david.sherwood@arm.com>
3625
3626 * stor-layout.c (layout_type): Allow the caller to set the mode of
3627 a float type. Only choose one here if the mode is still VOIDmode.
3628 * tree.c (build_common_tree_nodes): Set the type mode of decimal
3629 floats before calling layout_type.
3630 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3631
3632 2016-11-25 Richard Sandiford <richard.sandiford@arm.com>
3633
3634 * tree-tailcall.c (find_tail_calls): Allow calls to reference
3635 local variables if all references are known to be direct.
3636
3637 2016-11-25 Jakub Jelinek <jakub@redhat.com>
3638 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3639
3640 PR middle-end/78501
3641 * tree-vrp.c (extract_range_basic): Check for ptrdiff_type_node to be
3642 non null and it's precision matches precision of lhs's type.
3643
3644 2016-11-24 Martin Sebor <msebor@redhat.com>
3645
3646 PR tree-optimization/78476
3647 * gimple-ssa-sprintf.c (struct pass_sprintf_length::call_info):
3648 Add a member.
3649 (handle_gimple_call): Adjust signature.
3650 (try_substitute_return_value): Remove calls to bounded functions
3651 with zero buffer size whose result is known.
3652 (pass_sprintf_length::execute): Adjust call to handle_gimple_call.
3653
3654 2016-11-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3655
3656 * varasm.c (assemble_start_function): Wrap align_log definition in
3657 ASM_OUTPUT_MAX_SKIP_ALIGN.
3658
3659 2016-11-24 Uros Bizjak <ubizjak@gmail.com>
3660
3661 * config/i386/i386.md (wide AND insn to QImode splitter): Use
3662 explicit mode macros.
3663 (wide OR insn to QImode splitter): Ditto.
3664
3665 2016-11-24 Vladimir Makarov <vmakarov@redhat.com>
3666
3667 PR rtl-optimization/77541
3668 * lra-constraints.c (struct input_reload): Add field match_p.
3669 (get_reload_reg): Check modes of input reloads to generate unique
3670 value reload pseudo.
3671 (match_reload): Add input reload pseudo for the current insn.
3672
3673 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
3674
3675 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Update
3676 __FLT_EVAL_METHOD__ and __FLT_EVAL_METHOD_C99__ when we switch
3677 architecture levels.
3678 * config/aarch64/aarch64.c (aarch64_promoted_type): Only promote
3679 the aarch64_fp16_type_node, not all HFmode types.
3680 (aarch64_libgcc_floating_mode_supported_p): Support HFmode.
3681 (aarch64_scalar_mode_supported_p): Likewise.
3682 (aarch64_excess_precision): New.
3683 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
3684 (TARGET_SCALAR_MODE_SUPPORTED_P): Likewise.
3685 (TARGET_C_EXCESS_PRECISION): Likewise.
3686
3687 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
3688
3689 * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New.
3690 (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3691
3692 2016-11-24 James Greenhalgh <james.greenhalgh@arm.com>
3693
3694 * config/aarch64/aarch64.md (<optab>sihf2): Convert to expand.
3695 (<optab>dihf2): Likewise.
3696 (aarch64_fp16_<optab><mode>hf2): New.
3697
3698 2016-11-24 Alexander Monakov <amonakov@ispras.ru>
3699
3700 PR target/67822
3701 * config/nvptx/mkoffload.c (main): Allow -fopenmp.
3702
3703 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
3704
3705 * common/config/sparc/sparc-common.c (sparc_option_optimization_table):
3706 Enable REE at -O2 and higher.
3707 * config/sparc/sparc.c (sparc_option_override): Disable it by default
3708 in 32-bit mode.
3709
3710 2016-11-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3711
3712 PR target/48863
3713 PR inline-asm/70184
3714 * tree-ssa-ter.c (temp_expr_table): Add reg_vars_cnt field.
3715 (new_temp_expr_table): Initialise reg_vars_cnt.
3716 (free_temp_expr_table): Release reg_vars_cnt.
3717 (process_replaceable): Add reg_vars_cnt argument, set reg_vars_cnt
3718 field of TAB.
3719 (find_replaceable_in_bb): Use the above to record register variable
3720 write occurrences and cancel replacement across them.
3721
3722 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
3723
3724 PR rtl-optimization/78437
3725 * ree.c (get_uses): New function.
3726 (combine_reaching_defs): When a copy is needed, return false if any
3727 reaching use of the source register reads it in a mode larger than
3728 the mode it is set in and WORD_REGISTER_OPERATIONS is true.
3729
3730 2016-11-24 Martin Liska <mliska@suse.cz>
3731
3732 * gimple-pretty-print.c (dump_edge_probability): New function.
3733 (dump_gimple_switch): Dump label edge probabilities.
3734 (dump_gimple_cond): Likewise.
3735 (dump_gimple_label): Dump
3736 (dump_gimple_bb_header): Dump basic block frequency.
3737 (pp_cfg_jump): Replace e->dest argument with e.
3738 (dump_implicit_edges): Likewise.
3739 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at):
3740 Use gimple_bb (at) instead of at->bb.
3741
3742 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
3743
3744 * common.opt (flimit-function-alignment): New.
3745 * doc/invoke.texi (-flimit-function-alignment): Document.
3746 * emit-rtl.h (struct rtl_data): Add max_insn_address field.
3747 * final.c (shorten_branches): Set it.
3748 * varasm.c (assemble_start_function): Limit alignment if
3749 requested.
3750
3751 2016-11-24 Richard Biener <rguenther@suse.de>
3752
3753 PR tree-optimization/71595
3754 * cfgloopmanip.h (remove_path): Add irred_invalidated and
3755 loop_closed_ssa_invalidated parameters, defaulted to NULL.
3756 * cfgloopmanip.c (remove_path): Likewise, pass them along to
3757 called functions. Only fix irred flags if the caller didn't
3758 request state.
3759 * tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop.
3760 (unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated
3761 to remove_path.
3762
3763 2016-11-24 Bernd Schmidt <bschmidt@redhat.com>
3764
3765 PR rtl-optimization/78120
3766 * ifcvt.c (noce_conversion_profitable_p): Check original cost in all
3767 cases, and additionally test against max_seq_cost for speed
3768 optimization.
3769 (noce_process_if_block): Compute an estimate for the original cost when
3770 optimizing for speed, using the minimum of then and else block costs.
3771
3772 PR rtl-optimization/78120
3773 * rtlanal.c (insn_rtx_cost): Use set_rtx_cost.
3774
3775 PR rtl-optimization/78120
3776 * config/i386/i386.c (ix86_rtx_costs): Fully handle SETs.
3777
3778 2016-11-24 Bin Cheng <bin.cheng@arm.com>
3779
3780 * match.pd: Refine type conversion in result expr for below pattern:
3781 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
3782
3783 2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
3784
3785 PR middle-end/78429
3786 * tree.h (wi::fits_to_boolean_p): New predicate.
3787 (wi::fits_to_tree_p): Use it for boolean types.
3788 * tree.c (int_fits_type_p): Likewise.
3789
3790 2016-11-24 Martin Liska <mliska@suse.cz>
3791
3792 * print-tree.c (struct bucket): Remove.
3793 (print_node): Add new argument which drives whether a tree node
3794 is printed briefly or not.
3795 (debug_tree): Replace a custom hash table with hash_set<T>.
3796 * print-tree.h (print_node): Add the argument.
3797
3798 2016-11-24 Chung-Lin Tang <cltang@codesourcery.com>
3799
3800 * config/nios2/nios2.c (nios2_init_libfuncs): Add ATTRIBUTE_UNUSED.
3801
3802 2016-11-23 Peter Bergner <bergner@vnet.ibm.com>
3803
3804 PR target/78458
3805 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE
3806 if it is at least NREGS wide.
3807
3808 2016-11-23 Joseph Myers <joseph@codesourcery.com>
3809
3810 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): For
3811 TARGET_E500_DOUBLE. handle TDmode, TImode and PTImode the same as
3812 TFmode, IFmode and KFmode.
3813
3814 2016-11-23 Joseph Myers <joseph@codesourcery.com>
3815
3816 * config/rs6000/spe.md (*frob_<SPE64:mode>_ti_8): New insn
3817 pattern.
3818
3819 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
3820
3821 * combine.c (change_zero_ext): Only change the mode of a hard register
3822 destination if can_change_dest_mode holds for that.
3823
3824 2016-11-23 Jeff Law <law@redhat.com>
3825
3826 * varasm.c (assemble_name): Increase buffer size for name.
3827
3828 * config/spu/spu.md (floatunsdidf2): Remove unused local variable.
3829
3830 2016-11-23 Jakub Kicinski <jakub.kicinski@netronome.com>
3831
3832 * doc/extend.texi: Constify first argument to __builtin_object_size.
3833
3834 2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
3835
3836 * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits
3837 to be used. Add brackets around macro argument.
3838
3839 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
3840
3841 * config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
3842
3843 2016-11-23 Jakub Jelinek <jakub@redhat.com>
3844
3845 PR sanitizer/69278
3846 * opts.c (parse_sanitizer_options): For -fsanitize=undefined,
3847 restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN.
3848
3849 2016-11-23 Jakub Jelinek <jakub@redhat.com>
3850
3851 PR middle-end/69183
3852 * omp-low.c (build_outer_var_ref): Change lastprivate argument
3853 to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE
3854 on worksharing constructs, treat it like clauses on simd construct.
3855 Formatting fix.
3856 (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass
3857 OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref.
3858 (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead
3859 of true as last argument to build_outer_var_ref.
3860
3861 2016-11-23 Uros Bizjak <ubizjak@gmail.com>
3862
3863 * config/i386/i386.md (*movqi_internal): Calculate mode
3864 attribute of alternatives 7,8,9 depending on TARGET_AVX512DQ.
3865 <TYPE_MSKMOV>: Emit kmovw for MODE_HI insn mode attribute.
3866 (*k<logic><mode>): Calculate mode attribute depending on
3867 TARGET_AVX512DQ. Emit k<logic>w for MODE_HI insn mode attribute.
3868 (*andqi_1): Calculate mode attribute of alternative 3 depending
3869 on TARGET_AVX512DQ. Emit kandw for MODE_HI insn mode attribute.
3870 (kandn<mode>): Calculate mode attribute of alternative 2 depending
3871 on TARGET_AVX512DQ. Emit kandnw for MODE_HI insn mode attribute.
3872 (kxnor<mode>): Merge insn patterns using SWI1248_AVX512BW mode
3873 iterator. Calculate mode attribute of alternative 1 depending
3874 on TARGET_AVX512DQ. Emit kxnorw for MODE_HI insn mode attribute.
3875 (*one_cmplqi2_1): Calculate mode attribute of alternative 2 depending
3876 on TARGET_AVX512DQ. Emit knotw for MODE_HI insn mode attribute.
3877
3878 2016-11-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3879
3880 PR middle-end/78153
3881 * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN.
3882 * tree-vrp.c (extract_range_basic): Handle case for
3883 CFN_BUILT_IN_STRLEN.
3884
3885 2016-11-23 Jeff Law <law@redhat.com>
3886
3887 * config/mcore/mcore.c (emit_new_cond_insn): Fix prototype.
3888
3889 * config/iq2000/iq2000.c (iq2000_rtx_costs): Avoid multiplication
3890 in boolean context warning.
3891
3892 * config/ia64/ia64.c (ia64_emit_insn_before): Fix prototype.
3893
3894 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3895
3896 PR target/63250
3897 * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to...
3898 (arm_fp16_type_node): ...This, make visibile.
3899 (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to
3900 arm_fp16_type_node.
3901 (arm_init_simd_builtin_types): Likewise.
3902 (arm_init_fp16_builtins): Likewise.
3903 * config/arm/arm.c (arm_excess_precision): New.
3904 (arm_floatn_mode): Likewise.
3905 (TARGET_C_EXCESS_PRECISION): Likewise.
3906 (TARGET_FLOATN_MODE): Likewise.
3907 (arm_promoted_type): Only promote arm_fp16_type_node.
3908 * config/arm/arm.h (arm_fp16_type_node): Declare.
3909
3910 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3911
3912 * config/arm/arm.c (arm_convert_to_type): Delete.
3913 (TARGET_CONVERT_TO_TYPE): Delete.
3914 (arm_init_libfuncs): Enable trunc_optab from DFmode to HFmode.
3915 (arm_libcall_uses_aapcs_base): Add trunc_optab from DF- to HFmode.
3916 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): New.
3917 * config/arm/arm.md (truncdfhf2): Only convert through SFmode if we
3918 are in fast math mode, and have no single step hardware instruction.
3919 (extendhfdf2): Only expand through SFmode if we don't have a
3920 single-step hardware instruction.
3921 * config/arm/vfp.md (*truncdfhf2): New.
3922 (extendhfdf2): Likewise.
3923
3924 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3925
3926 * targhooks.c (default_floatn_mode): Enable _Float16 if a target
3927 provides HFmode.
3928
3929 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3930
3931 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Delete.
3932 * config/m68k/m68k.h (TARGET_FLT_EVAL_METHOD): Delete.
3933 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Delete.
3934 * defaults.h (TARGET_FLT_EVAL_METHOD): Delete.
3935 * doc/tm.texi.in (TARGET_FLT_EVAL_METHOD): Delete.
3936 * doc/tm.texi: Regenerate.
3937 * system.h (TARGET_FLT_EVAL_METHOD): Poison.
3938
3939 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3940
3941 * toplev.c (init_excess_precision): Delete most logic.
3942 * tree.c (excess_precision_type): Rewrite to use
3943 TARGET_EXCESS_PRECISION.
3944 * doc/invoke.texi (-fexcess-precision): Document behaviour in a
3945 more generic fashion.
3946 * ginclude/float.h: Wrap definition of FLT_EVAL_METHOD in
3947 __STDC_WANT_IEC_60559_TYPES_EXT__.
3948
3949 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3950
3951 * common.opt (fpermitted-flt-eval-methods): New.
3952 * doc/invoke.texi (-fpermitted-flt-eval-methods): Document it.
3953 * flag_types.h (permitted_flt_eval_methods): New.
3954
3955 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3956
3957 * config/m68k/m68k.c (m68k_excess_precision): New.
3958 (TARGET_C_EXCESS_PRECISION): Define.
3959
3960 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3961
3962 * config/s390/s390.c (s390_excess_precision): New.
3963 (TARGET_C_EXCESS_PRECISION): Define.
3964
3965 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3966
3967 * config/i386/i386.c (ix86_excess_precision): New.
3968 (TARGET_C_EXCESS_PRECISION): Define.
3969
3970 2016-11-23 James Greenhalgh <james.greenhalgh@arm.com>
3971
3972 * target.def (excess_precision): New hook.
3973 * target.h (flt_eval_method): New.
3974 (excess_precision_type): Likewise.
3975 * targhooks.c (default_excess_precision): New.
3976 * targhooks.h (default_excess_precision): New.
3977 * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): New.
3978 * doc/tm.texi: Regenerate.
3979
3980 2016-11-23 Martin Sebor <msebor@redhat.com>
3981
3982 PR middle-end/78461
3983 * gimple-ssa-sprintf.c (format_string): Correct the maxima and
3984 set the minimum number of bytes for an unknown string to zero.
3985
3986 2016-11-23 Martin Jambor <mjambor@suse.cz>
3987 Martin Liska <mliska@suse.cz>
3988
3989 * hsa-builtins.def: New file.
3990 * Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
3991 * builtins.def: Include hsa-builtins.def.
3992 (DEF_HSA_BUILTIN): New macro.
3993 * dumpfile.h (OPTGROUP_OPENMP): Define.
3994 * dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
3995 * gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
3996 GF_OMP_FOR_GRID_GROUP_ITER.
3997 (gimple_omp_for_grid_phony): Added checking assert.
3998 (gimple_omp_for_set_grid_phony): Likewise.
3999 (gimple_omp_for_grid_intra_group): New function.
4000 (gimple_omp_for_set_grid_intra_group): Likewise.
4001 (gimple_omp_for_grid_group_iter): Likewise.
4002 (gimple_omp_for_set_grid_group_iter): Likewise.
4003 * omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
4004 previosuly only distribute loop was permitted.
4005 (lower_lastprivate_clauses): Allow non tcc_comparison predicates.
4006 (grid_get_kernel_launch_attributes): Support multiple HSA grid
4007 dimensions.
4008 (grid_expand_omp_for_loop): Likewise and also support standalone
4009 distribute constructs. New parameter INTRA_GROUP, updated both users.
4010 (grid_expand_target_grid_body): Support standalone distribute
4011 constructs.
4012 (pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
4013 (pass_data_expand_omp_ssa): Likewise.
4014 (pass_data_omp_device_lower): Likewsie.
4015 (pass_data_lower_omp): Likewise.
4016 (pass_data_diagnose_omp_blocks): Likewise.
4017 (pass_data_oacc_device_lower): Likewise.
4018 (pass_data_omp_target_link): Likewise.
4019 (grid_lastprivate_predicate): New function.
4020 (lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
4021 gridified loops.
4022 (lower_omp_for): Support standalone distribute constructs.
4023 (grid_prop): New type.
4024 (grid_safe_assignment_p): Check for assignments to group_sizes, new
4025 parameter GRID.
4026 (grid_seq_only_contains_local_assignments): New parameter GRID, pass
4027 it to callee.
4028 (grid_find_single_omp_among_assignments_1): Likewise, improve missed
4029 optimization info messages.
4030 (grid_find_single_omp_among_assignments): Likewise.
4031 (grid_find_ungridifiable_statement): Do not bail out for SIMDs.
4032 (grid_parallel_clauses_gridifiable): New function.
4033 (grid_inner_loop_gridifiable_p): Likewise.
4034 (grid_dist_follows_simple_pattern): Likewise.
4035 (grid_gfor_follows_tiling_pattern): Likewise.
4036 (grid_call_permissible_in_distribute_p): Likewise.
4037 (grid_handle_call_in_distribute): Likewise.
4038 (grid_dist_follows_tiling_pattern): Likewise.
4039 (grid_target_follows_gridifiable_pattern): Support standalone
4040 distribute constructs.
4041 (grid_var_segment): New enum.
4042 (grid_mark_variable_segment): New function.
4043 (grid_copy_leading_local_assignments): Call grid_mark_variable_segment
4044 if a new argument says so.
4045 (grid_process_grid_body): New function.
4046 (grid_eliminate_combined_simd_part): Likewise.
4047 (grid_mark_tiling_loops): Likewise.
4048 (grid_mark_tiling_parallels_and_loops): Likewise.
4049 (grid_process_kernel_body_copy): Support standalone distribute
4050 constructs.
4051 (grid_attempt_target_gridification): New grid variable holding overall
4052 gridification state. Support standalone distribute constructs and
4053 collapse clauses.
4054 * doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
4055 * hsa.h (hsa_bb): Add method method append_phi.
4056 (hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
4057 occurences in all files too.
4058 (hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
4059 (is_a_helper <hsa_insn_br *>::test): New function.
4060 (is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
4061 branch instructions.
4062 (hsa_insn_signal): Make a direct descendant of
4063 hsa_insn_basic. Add memorder constructor parameter and
4064 m_memory_order and m_signalop member variables.
4065 (hsa_insn_queue): Changed constructor parameters to common form.
4066 Added m_segment and m_memory_order member variables.
4067 (hsa_summary_t): Add private member function
4068 process_gpu_implementation_attributes.
4069 (hsa_function_summary): Rename m_binded_function to
4070 m_bound_function.
4071 (hsa_insn_basic_p): Remove typedef.
4072 (hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
4073 (hsa_op_reg_p): Remove typedef.
4074 (hsa_function_representation): Change hsa_op_reg_p into plain
4075 pointers.
4076 (hsa_insn_phi): Removed new and delete operators.
4077 (hsa_insn_br): Likewise.
4078 (hsa_insn_cbr): Likewise.
4079 (hsa_insn_sbr): Likewise.
4080 (hsa_insn_cmp): Likewise.
4081 (hsa_insn_mem): Likewise.
4082 (hsa_insn_atomic): Likewise.
4083 (hsa_insn_signal): Likewise.
4084 (hsa_insn_seg): Likewise.
4085 (hsa_insn_call): Likewise.
4086 (hsa_insn_arg_block): Likewise.
4087 (hsa_insn_comment): Likewise.
4088 (hsa_insn_srctype): Likewise.
4089 (hsa_insn_packed): Likewise.
4090 (hsa_insn_cvt): Likewise.
4091 (hsa_insn_alloca): Likewise.
4092 * hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
4093 (process_gpu_implementation_attributes): New function.
4094 (link_functions): Move some functionality into it. Adjust after
4095 renaming m_binded_functions to m_bound_functions.
4096 (hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
4097 to the list of instructions with no output registers.
4098 (get_in_type): Return this if it is a register of
4099 matching size.
4100 (hsa_get_declaration_name): Moved to...
4101 * hsa-gen.c (hsa_get_declaration_name): ...here. Allocate
4102 temporary string on an obstack instead from ggc.
4103 (query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
4104 down to two overloads.
4105 (hsa_allocp_operand_address): Removed.
4106 (hsa_allocp_operand_immed): Likewise.
4107 (hsa_allocp_operand_reg): Likewise.
4108 (hsa_allocp_operand_code_list): Likewise.
4109 (hsa_allocp_operand_operand_list): Likewise.
4110 (hsa_allocp_inst_basic): Likewise.
4111 (hsa_allocp_inst_phi): Likewise.
4112 (hsa_allocp_inst_mem): Likewise.
4113 (hsa_allocp_inst_atomic): Likewise.
4114 (hsa_allocp_inst_signal): Likewise.
4115 (hsa_allocp_inst_seg): Likewise.
4116 (hsa_allocp_inst_cmp): Likewise.
4117 (hsa_allocp_inst_br): Likewise.
4118 (hsa_allocp_inst_sbr): Likewise.
4119 (hsa_allocp_inst_call): Likewise.
4120 (hsa_allocp_inst_arg_block): Likewise.
4121 (hsa_allocp_inst_comment): Likewise.
4122 (hsa_allocp_inst_queue): Likewise.
4123 (hsa_allocp_inst_srctype): Likewise.
4124 (hsa_allocp_inst_packed): Likewise.
4125 (hsa_allocp_inst_cvt): Likewise.
4126 (hsa_allocp_inst_alloca): Likewise.
4127 (hsa_allocp_bb): Likewise.
4128 (hsa_obstack): New.
4129 (hsa_init_data_for_cfun): Initialize obstack.
4130 (hsa_deinit_data_for_cfun): Release memory of the obstack.
4131 (hsa_op_immed::operator new): Use obstack instead of object_allocator.
4132 (hsa_op_reg::operator new): Likewise.
4133 (hsa_op_address::operator new): Likewise.
4134 (hsa_op_code_list::operator new): Likewise.
4135 (hsa_op_operand_list::operator new): Likewise.
4136 (hsa_insn_basic::operator new): Likewise.
4137 (hsa_insn_phi::operator new): Likewise.
4138 (hsa_insn_br::operator new): Likewise.
4139 (hsa_insn_sbr::operator new): Likewise.
4140 (hsa_insn_cmp::operator new): Likewise.
4141 (hsa_insn_mem::operator new): Likewise.
4142 (hsa_insn_atomic::operator new): Likewise.
4143 (hsa_insn_signal::operator new): Likewise.
4144 (hsa_insn_seg::operator new): Likewise.
4145 (hsa_insn_call::operator new): Likewise.
4146 (hsa_insn_arg_block::operator new): Likewise.
4147 (hsa_insn_comment::operator new): Likewise.
4148 (hsa_insn_srctype::operator new): Likewise.
4149 (hsa_insn_packed::operator new): Likewise.
4150 (hsa_insn_cvt::operator new): Likewise.
4151 (hsa_insn_alloca::operator new): Likewise.
4152 (hsa_init_new_bb): Likewise.
4153 (hsa_bb::append_phi): New function.
4154 (gen_hsa_phi_from_gimple_phi): Use it.
4155 (get_symbol_for_decl): Fix dinstinguishing between
4156 global and local functions. Put local variables into a segment
4157 according to their attribute or static flag, if there is one.
4158 (hsa_insn_br::hsa_insn_br): New.
4159 (hsa_insn_br::operator new): Likewise.
4160 (hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
4161 (query_hsa_grid_nodim): New function.
4162 (multiply_grid_dim_characteristics): Likewise.
4163 (gen_get_num_threads): Likewise.
4164 (gen_get_num_teams): Reimplemented.
4165 (gen_get_team_num): Likewise.
4166 (gen_hsa_insns_for_known_library_call): Updated calls to the above
4167 helper functions.
4168 (get_memory_order_name): Removed.
4169 (get_memory_order): Likewise.
4170 (hsa_memorder_from_tree): New function.
4171 (gen_hsa_ternary_atomic_for_builtin): Renamed to
4172 gen_hsa_atomic_for_builtin, can also create signals.
4173 (gen_hsa_insns_for_call): Handle many new builtins. Adjust to use
4174 hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
4175 (hsa_insn_atomic): Fix function comment.
4176 (hsa_insn_signal::hsa_insn_signal): Fix comment. Update call to
4177 ancestor constructor and initialization of new member variables.
4178 (hsa_insn_queue::hsa_insn_queue): Added initialization of new
4179 member variables.
4180 (hsa_get_host_function): Handle functions with no bound CPU
4181 implementation. Fix binded to bound.
4182 (get_brig_function_name): Likewise.
4183 (HSA_SORRY_ATV): Remove semicolon after macro.
4184 (HSA_SORRY_AT): Likewise.
4185 (omp_simple_builtin::generate): Add missing semicolons.
4186 (hsa_insn_phi::operator new): Removed.
4187 (hsa_insn_br::operator new): Likewise.
4188 (hsa_insn_cbr::operator new): Likewise.
4189 (hsa_insn_sbr::operator new): Likewise.
4190 (hsa_insn_cmp::operator new): Likewise.
4191 (hsa_insn_mem::operator new): Likewise.
4192 (hsa_insn_atomic::operator new): Likewise.
4193 (hsa_insn_signal::operator new): Likewise.
4194 (hsa_insn_seg::operator new): Likewise.
4195 (hsa_insn_call::operator new): Likewise.
4196 (hsa_insn_arg_block::operator new): Likewise.
4197 (hsa_insn_comment::operator new): Likewise.
4198 (hsa_insn_srctype::operator new): Likewise.
4199 (hsa_insn_packed::operator new): Likewise.
4200 (hsa_insn_cvt::operator new): Likewise.
4201 (hsa_insn_alloca::operator new): Likewise.
4202 (get_symbol_for_decl): Accept CONST_DECLs, put them to
4203 readonly segment.
4204 (gen_hsa_addr): Also process CONST_DECLs.
4205 (gen_hsa_addr_insns): Process CONST_DECLs by creating private
4206 copies.
4207 (gen_hsa_unary_operation): Make sure the function does
4208 not use bittype source type for firstbit and lastbit operations.
4209 (gen_hsa_popcount_to_dest): Make sure the function uses a bittype
4210 source type.
4211 * hsa-brig.c (emit_insn_operands): Cope with zero operands in an
4212 instruction.
4213 (emit_branch_insn): Renamed to emit_cond_branch_insn.
4214 Emit the width stored in the class.
4215 (emit_generic_branch_insn): New function.
4216 (emit_insn): Call emit_generic_branch_insn.
4217 (emit_signal_insn): Remove obsolete comment. Update
4218 member variable name, pick a type according to profile.
4219 (emit_alloca_insn): Remove obsolete comment.
4220 (emit_atomic_insn): Likewise.
4221 (emit_queue_insn): Get segment and memory order from the IR object.
4222 (hsa_brig_section): Make allocate_new_chunk, chunks
4223 and cur_chunk provate, add a default NULL parameter to add method.
4224 (hsa_brig_section::add): Added a new parameter, store pointer to
4225 output data there if it is non-NULL.
4226 (emit_function_directives): Use this new parameter instead of
4227 calculating the pointer itself, fix function comment.
4228 (hsa_brig_emit_function): Add forgotten endian conversion.
4229 (hsa_output_kernels): Remove unnecessary building of
4230 kernel_dependencies_vector_type.
4231 (emit_immediate_operand): Declare.
4232 (emit_directive_variable): Also emit initializers of CONST_DECLs.
4233 (gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
4234 (verify_function_arguments): Properly detect variadic
4235 arguments.
4236 * hsa-dump.c (hsa_width_specifier_name): New function.
4237 (dump_hsa_insn_1): Dump generic branch instructions, update signal
4238 member variable name. Special dumping for queue objects.
4239 * ipa-hsa.c (process_hsa_functions): Adjust after renaming
4240 m_binded_functions to m_bound_functions. Copy externally visible flag
4241 to the node.
4242 (ipa_hsa_write_summary): Likewise.
4243 (ipa_hsa_read_section): Likewise.
4244
4245 2016-11-23 Richard Biener <rguenther@suse.de>
4246
4247 PR tree-optimization/78396
4248 * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't
4249 vectorize try vectorizing an if-converted body using BB vectorization.
4250
4251 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
4252 Alan Hayward <alan.hayward@arm.com>
4253 David Sherwood <david.sherwood@arm.com>
4254
4255 * rtlanal.c (subreg_get_info): Use more local variables.
4256 Remark that for HARD_REGNO_NREGS_HAS_PADDING, each scalar unit
4257 occupies at least one register. Assume that full hard registers
4258 have consistent endianness. Share previously-duplicated if block.
4259 Rework the main handling so that it operates on independently-
4260 addressable YMODE-sized blocks. Use subreg_size_lowpart_offset
4261 to check lowpart offsets, without trying to find an equivalent
4262 integer mode first. Handle WORDS_BIG_ENDIAN != REG_WORDS_BIG_ENDIAN
4263 as a final register-endianness correction.
4264
4265 2016-11-23 Segher Boessenkool <segher@kernel.crashing.org>
4266
4267 PR target/77881
4268 PR bootstrap/78390
4269 PR target/78438
4270 PR bootstrap/78477
4271 * combine.c (make_compound_operation_int): Do not convert a subreg of
4272 a non-constant logical shift right to a zero_extract. Handle the case
4273 where some zero bits have been shifted into the range covered by that
4274 subreg.
4275
4276 2016-11-23 Richard Sandiford <richard.sandiford@arm.com>
4277 Alan Hayward <alan.hayward@arm.com>
4278 David Sherwood <david.sherwood@arm.com>
4279
4280 * rtl.h (subreg_size_offset_from_lsb): Declare.
4281 (subreg_offset_from_lsb): New function.
4282 (subreg_size_lowpart_offset): Declare.
4283 (subreg_lowpart_offset): Turn into an inline function.
4284 (subreg_size_highpart_offset): Declare.
4285 (subreg_highpart_offset): Turn into an inline function.
4286 * emit-rtl.c (subreg_size_lowpart_offset): New function.
4287 (subreg_size_highpart_offset): Likewise
4288 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
4289
4290 2016-11-23 Richard Biener <rguenther@suse.de>
4291
4292 PR tree-optimization/78482
4293 * tree-cfgcleanup.c: Include tree-ssa-loop-niter.h.
4294 (remove_forwarder_block_with_phi): When merging with a loop
4295 header creates a new latch reset number of iteration information
4296 of the loop.
4297
4298 2016-11-23 Eric Botcazou <ebotcazou@adacore.com>
4299
4300 * config/sparc/sparc.md (*ashrsi3_extend): Rename to...
4301 (*ashrsi3_extend0): ...this. Accept constant integers.
4302 (*ashrsi3_extend2): Rename to...
4303 (*ashrsi3_extend1): ...this.
4304 (*ashrsi3_extend2): New pattern.
4305 (*lshrsi3_extend1): Accept constant integers.
4306 (*lshrsi3_extend2): Fix condition on operand 2.
4307
4308 2016-11-23 Martin Liska <mliska@suse.cz>
4309
4310 * config/i386/i386.c: Initialize function pointer to NULL.
4311
4312 2016-11-23 Bin Cheng <bin.cheng@arm.com>
4313
4314 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
4315 for A == C1 ? A : C2 to below.
4316 * match.pd: Move from above to here:
4317 (cond (eq (convert1? x) c1) (convert2? x) c2)
4318 -> (cond (eq x c1) c1 c2).
4319
4320 2016-11-23 Bin Cheng <bin.cheng@arm.com>
4321
4322 * fold-const.c (fold_cond_expr_with_comparison): Move simplification
4323 for A cmp C1 ? A : C2 to below, also simplify remaining code.
4324 * match.pd: Move and extend simplification from above to here:
4325 (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
4326 * tree-if-conv.c (ifcvt_follow_ssa_use_edges): New func.
4327 (predicate_scalar_phi): Call fold_stmt using the new valueize func.
4328
4329 2016-11-23 Martin Liska <mliska@suse.cz>
4330 Martin Jambor <mjambor@suse.cz>
4331
4332 * doc/install.texi: Remove entry about --with-hsa-kmt-lib.
4333
4334 2016-11-23 Aldy Hernandez <aldyh@redhat.com>
4335
4336 PR target/78213
4337 * opts.c (finish_options): Set -fsyntax-only if running self tests.
4338
4339 2016-11-23 Richard Biener <rguenther@suse.de>
4340
4341 PR middle-end/71762
4342 * match.pd ((~X & Y) -> X < Y, (X & ~Y) -> Y < X,
4343 (~X | Y) -> X <= Y, (X | ~Y) -> Y <= X): Remove.
4344
4345 2016-11-23 Richard Biener <rguenther@suse.de>
4346
4347 PR lto/78472
4348 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized
4349 fields.
4350
4351 2016-11-23 Richard Biener <rguenther@suse.de>
4352 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.rog>
4353
4354 PR tree-optimization/78154
4355 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Return true if function
4356 returns it's argument and the argument is nonnull.
4357 * builtin-attrs.def: Define ATTR_RETURNS_NONNULL,
4358 ATT_RETNONNULL_NOTHROW_LEAF.
4359 * builtins.def (BUILT_IN_MEMPCPY): Change attribute to
4360 ATTR_RETNONNULL_NOTHROW_LEAF.
4361 (BUILT_IN_STPCPY): Likewise.
4362 (BUILT_IN_STPNCPY): Likewise.
4363 (BUILT_IN_MEMPCPY_CHK): Likewise.
4364 (BUILT_IN_STPCPY_CHK): Likewise.
4365 (BUILT_IN_STPNCPY_CHK): Likewise.
4366 (BUILT_IN_STRCAT): Change attribute to ATTR_RET1_NOTHROW_NONNULL_LEAF.
4367 (BUILT_IN_STRNCAT): Likewise.
4368 (BUILT_IN_STRNCPY): Likewise.
4369 (BUILT_IN_MEMSET_CHK): Likewise.
4370 (BUILT_IN_STRCAT_CHK): Likewise.
4371 (BUILT_IN_STRCPY_CHK): Likewise.
4372 (BUILT_IN_STRNCAT_CHK): Likewise.
4373 (BUILT_IN_STRNCPY_CHK): Likewise.
4374
4375 2016-11-23 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
4376
4377 * fold-const.c (tree_expr_nonzero_p) : Make non-static.
4378 * fold-const.h (tree_expr_nonzero_p) : Declare.
4379 * match.pd (cmp (mult:c @0 @1) (mult:c @2 @1) : New Pattern.
4380
4381 2016-11-23 Paolo Bonzini <bonzini@gnu.org>
4382
4383 * system.h (HAVE_DESIGNATED_INITIALIZERS,
4384 HAVE_DESIGNATED_UNION_INITIALIZERS): Do not use
4385 "defined" in macros.
4386 * doc/cpp.texi (Defined): Mention -Wexpansion-to-defined.
4387 * doc/cppopts.texi (Invocation): Document -Wexpansion-to-defined.
4388 * doc/invoke.texi (Warning Options): Document -Wexpansion-to-defined.
4389
4390 2016-11-23 Georg-Johann Lay <avr@gjlay.de>
4391
4392 PR target/60300
4393 * config/avr/constraints.md (Csp): Widen range to [-11..6].
4394 * config/avr/avr.c (avr_prologue_setup_frame): Limit number
4395 of RCALLs in prologue to 3.
4396
4397 2016-11-22 Michael Collison <michael.collison@arm.com>
4398
4399 * config/aarch64/aarch64-protos.h
4400 (aarch64_and_split_imm1, aarch64_and_split_imm2)
4401 (aarch64_and_bitmask_imm): New prototypes
4402 * config/aarch64/aarch64.c (aarch64_and_split_imm1):
4403 New overloaded function to create bit mask covering the
4404 lowest to highest bits set.
4405 (aarch64_and_split_imm2): New overloaded functions to create bit
4406 mask of zeros between first and last bit set.
4407 (aarch64_and_bitmask_imm): New function to determine if a integer
4408 is a valid two instruction "and" operation.
4409 * config/aarch64/aarch64.md:(and<mode>3): New define_insn and _split
4410 allowing wider range of constants with "and" operations.
4411 * (ior<mode>3, xor<mode>3): Use new LOGICAL2 iterator to prevent
4412 "and" operator from matching restricted constant range used for
4413 ior and xor operators.
4414 * config/aarch64/constraints.md (UsO constraint): New SImode constraint
4415 for constants in "and" operantions.
4416 (UsP constraint): New DImode constraint for constants
4417 in "and" operations.
4418 * config/aarch64/iterators.md (lconst2): New mode iterator.
4419 (LOGICAL2): New code iterator.
4420 * config/aarch64/predicates.md (aarch64_logical_and_immediate): New
4421 predicate.
4422 (aarch64_logical_and_operand): New predicate allowing extended
4423 constants for "and" operations.
4424
4425 2016-11-22 Walter Lee <walt@tilera.com>
4426
4427 * config/tilegx/tilegx.md (trap): New pattern.
4428 * config/tilepro/tilepro.md (trap): Likewise.
4429
4430 2016-11-22 Walter Lee <walt@tilera.com>
4431
4432 * config/tilegx/tilegx.md (*zero_extract): Use
4433 define_insn_and_split instead of define_insn; Handle pos + size >
4434 64.
4435 (*sign_extract): Likewise.
4436
4437 2016-11-22 Marek Polacek <polacek@redhat.com>
4438
4439 PR tree-optimization/78455
4440 * tree-ssa-uninit.c (can_chain_union_be_invalidated_p): Fix typo.
4441
4442 2016-11-22 Ian Lance Taylor <iant@golang.org>
4443
4444 PR go/78431
4445 PR go/78432
4446 * godump.c (go_format_type): Always pass alignment as 1 when
4447 calling go_append_padding at end of struct/union.
4448
4449 2016-11-22 Jakub Jelinek <jakub@redhat.com>
4450
4451 PR target/78451
4452 * config/i386/avx512bwintrin.h (_mm512_setzero_qi,
4453 _mm512_setzero_hi): Removed.
4454 (_mm512_maskz_mov_epi16, _mm512_maskz_loadu_epi16,
4455 _mm512_maskz_mov_epi8, _mm512_maskz_loadu_epi8,
4456 _mm512_maskz_broadcastb_epi8, _mm512_maskz_set1_epi8,
4457 _mm512_maskz_broadcastw_epi16, _mm512_maskz_set1_epi16,
4458 _mm512_mulhrs_epi16, _mm512_maskz_mulhrs_epi16, _mm512_mulhi_epi16,
4459 _mm512_maskz_mulhi_epi16, _mm512_mulhi_epu16,
4460 _mm512_maskz_mulhi_epu16, _mm512_maskz_mullo_epi16,
4461 _mm512_cvtepi8_epi16, _mm512_maskz_cvtepi8_epi16, _mm512_cvtepu8_epi16,
4462 _mm512_maskz_cvtepu8_epi16, _mm512_permutexvar_epi16,
4463 _mm512_maskz_permutexvar_epi16, _mm512_avg_epu8, _mm512_maskz_avg_epu8,
4464 _mm512_maskz_add_epi8, _mm512_maskz_sub_epi8, _mm512_avg_epu16,
4465 _mm512_maskz_avg_epu16, _mm512_subs_epi8, _mm512_maskz_subs_epi8,
4466 _mm512_subs_epu8, _mm512_maskz_subs_epu8, _mm512_adds_epi8,
4467 _mm512_maskz_adds_epi8, _mm512_adds_epu8, _mm512_maskz_adds_epu8,
4468 _mm512_maskz_sub_epi16, _mm512_subs_epi16, _mm512_maskz_subs_epi16,
4469 _mm512_subs_epu16, _mm512_maskz_subs_epu16, _mm512_maskz_add_epi16,
4470 _mm512_adds_epi16, _mm512_maskz_adds_epi16, _mm512_adds_epu16,
4471 _mm512_maskz_adds_epu16, _mm512_srl_epi16, _mm512_maskz_srl_epi16,
4472 _mm512_packs_epi16, _mm512_sll_epi16, _mm512_maskz_sll_epi16,
4473 _mm512_maddubs_epi16, _mm512_maskz_maddubs_epi16, _mm512_unpackhi_epi8,
4474 _mm512_maskz_unpackhi_epi8, _mm512_unpackhi_epi16,
4475 _mm512_maskz_unpackhi_epi16, _mm512_unpacklo_epi8,
4476 _mm512_maskz_unpacklo_epi8, _mm512_unpacklo_epi16,
4477 _mm512_maskz_unpacklo_epi16, _mm512_shuffle_epi8,
4478 _mm512_maskz_shuffle_epi8, _mm512_min_epu16, _mm512_maskz_min_epu16,
4479 _mm512_min_epi16, _mm512_maskz_min_epi16, _mm512_max_epu8,
4480 _mm512_maskz_max_epu8, _mm512_max_epi8, _mm512_maskz_max_epi8,
4481 _mm512_min_epu8, _mm512_maskz_min_epu8, _mm512_min_epi8,
4482 _mm512_maskz_min_epi8, _mm512_max_epi16, _mm512_maskz_max_epi16,
4483 _mm512_max_epu16, _mm512_maskz_max_epu16, _mm512_sra_epi16,
4484 _mm512_maskz_sra_epi16, _mm512_srav_epi16, _mm512_maskz_srav_epi16,
4485 _mm512_srlv_epi16, _mm512_maskz_srlv_epi16, _mm512_sllv_epi16,
4486 _mm512_maskz_sllv_epi16, _mm512_maskz_packs_epi16, _mm512_packus_epi16,
4487 _mm512_maskz_packus_epi16, _mm512_abs_epi8, _mm512_maskz_abs_epi8,
4488 _mm512_abs_epi16, _mm512_maskz_abs_epi16, _mm512_dbsad_epu8,
4489 _mm512_maskz_dbsad_epu8, _mm512_srli_epi16, _mm512_maskz_srli_epi16,
4490 _mm512_slli_epi16, _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
4491 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
4492 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
4493 _mm512_maskz_srai_epi16, _mm512_packs_epi32,
4494 _mm512_maskz_packs_epi32, _mm512_packus_epi32,
4495 _mm512_maskz_packus_epi32): Use _mm512_setzero_si512 instead of
4496 _mm512_setzero_qi or _mm512_setzero_hi.
4497 (_mm512_maskz_alignr_epi8, _mm512_dbsad_epu8,
4498 _mm512_maskz_dbsad_epu8): Formatting fixes.
4499 (_mm512_srli_epi16, _mm512_maskz_srli_epi16, _mm512_slli_epi16,
4500 _mm512_maskz_slli_epi16, _mm512_shufflehi_epi16,
4501 _mm512_maskz_shufflehi_epi16, _mm512_shufflelo_epi16,
4502 _mm512_maskz_shufflelo_epi16, _mm512_srai_epi16,
4503 _mm512_maskz_srai_epi16): Use _mm512_setzero_si512 instead of
4504 _mm512_setzero_qi or _mm512_setzero_hi.
4505
4506 2016-11-22 Nathan Sidwell <nathan@acm.org>
4507
4508 * gcc-ar.c (main): Fix indentation.
4509 * gcov-io.c (gcov_write_summary): Remove extraneous {...}
4510 * ggc-page.c (move_ptes_to_front): Fix formatting.
4511 * hsa-dump.c (dump_has_cfun): Fix indentation.
4512 * sel-sched-ir.h: Remove trailing blank lines.
4513
4514 2016-11-22 Jakub Jelinek <jakub@redhat.com>
4515 Alexander Monakov <amonakov@ispras.ru>
4516
4517 * internal-fn.c (expand_GOMP_USE_SIMT): New function.
4518 * tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands.
4519 (omp_clause_code_name): Add _simt_ name.
4520 (walk_tree_1): Handle OMP_CLAUSE__SIMT_.
4521 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_.
4522 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_.
4523 (scan_omp_simd): New function.
4524 (scan_omp_1_stmt): Use it in target regions if needed.
4525 (omp_max_vf): Don't max with omp_max_simt_vf.
4526 (lower_rec_simd_input_clauses): Use omp_max_simt_vf if
4527 OMP_CLAUSE__SIMT_ is present.
4528 (lower_rec_input_clauses): Compute maybe_simt from presence of
4529 OMP_CLAUSE__SIMT_.
4530 (lower_lastprivate_clauses): Likewise.
4531 (expand_omp_simd): Likewise. Remove explicit offloaded region check.
4532 (execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT.
4533 * internal-fn.def (GOMP_USE_SIMT): New internal function.
4534 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_.
4535
4536 2016-11-22 Alexander Monakov <amonakov@ispras.ru>
4537
4538 * internal-fn.c (expand_GOMP_SIMT_LANE): New.
4539 (expand_GOMP_SIMT_VF): New.
4540 (expand_GOMP_SIMT_LAST_LANE): New.
4541 (expand_GOMP_SIMT_ORDERED_PRED): New.
4542 (expand_GOMP_SIMT_VOTE_ANY): New.
4543 (expand_GOMP_SIMT_XCHG_BFLY): New.
4544 (expand_GOMP_SIMT_XCHG_IDX): New.
4545 * internal-fn.def (GOMP_SIMT_LANE): New.
4546 (GOMP_SIMT_VF): New.
4547 (GOMP_SIMT_LAST_LANE): New.
4548 (GOMP_SIMT_ORDERED_PRED): New.
4549 (GOMP_SIMT_VOTE_ANY): New.
4550 (GOMP_SIMT_XCHG_BFLY): New.
4551 (GOMP_SIMT_XCHG_IDX): New.
4552 * omp-low.c (omp_maybe_offloaded_ctx): New, outlined from...
4553 (create_omp_child_function): ...here. Set "omp target entrypoint"
4554 or "omp declare target" attribute based on is_gimple_omp_offloaded.
4555 (omp_max_simt_vf): New. Use it...
4556 (omp_max_vf): ...here.
4557 (lower_rec_input_clauses): Add reduction lowering for SIMT execution.
4558 (lower_lastprivate_clauses): Likewise, for "lastprivate" lowering.
4559 (lower_omp_ordered): Likewise, for "ordered" lowering.
4560 (expand_omp_simd): Add SIMT transforms.
4561 (pass_data_lower_omp): Add PROP_gimple_lomp_dev.
4562 (execute_omp_device_lower): New.
4563 (pass_data_omp_device_lower): New.
4564 (pass_omp_device_lower): New pass.
4565 (make_pass_omp_device_lower): New.
4566 * passes.def (pass_omp_device_lower): Position new pass.
4567 * tree-pass.h (PROP_gimple_lomp_dev): Define.
4568 (make_pass_omp_device_lower): Declare.
4569
4570 2016-11-22 Jakub Jelinek <jakub@redhat.com>
4571
4572 PR target/78451
4573 * config/i386/avx512vlintrin.h (_mm_setzero_di): Removed.
4574 (_mm_maskz_mov_epi64): Use _mm_setzero_si128 instead of
4575 _mm_setzero_di.
4576 (_mm_maskz_load_epi64): Likewise.
4577 (_mm_setzero_hi): Removed.
4578 (_mm_maskz_loadu_epi64): Use _mm_setzero_si128 instead of
4579 _mm_setzero_di.
4580 (_mm_abs_epi64, _mm_maskz_abs_epi64, _mm_maskz_srl_epi64,
4581 _mm_maskz_unpackhi_epi64, _mm_maskz_unpacklo_epi64,
4582 _mm_maskz_compress_epi64, _mm_srav_epi64, _mm_maskz_srav_epi64,
4583 _mm_maskz_sllv_epi64, _mm_maskz_srlv_epi64, _mm_rolv_epi64,
4584 _mm_maskz_rolv_epi64, _mm_rorv_epi64, _mm_maskz_rorv_epi64,
4585 _mm_min_epi64, _mm_max_epi64, _mm_max_epu64, _mm_min_epu64,
4586 _mm_lzcnt_epi64, _mm_maskz_lzcnt_epi64, _mm_conflict_epi64,
4587 _mm_maskz_conflict_epi64, _mm_sra_epi64, _mm_maskz_sra_epi64,
4588 _mm_maskz_sll_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
4589 _mm_ror_epi64, _mm_maskz_ror_epi64, _mm_alignr_epi64,
4590 _mm_maskz_alignr_epi64, _mm_srai_epi64, _mm_maskz_slli_epi64):
4591 Likewise.
4592 (_mm_cvtepi32_epi8, _mm256_cvtepi32_epi8, _mm_cvtsepi32_epi8,
4593 _mm256_cvtsepi32_epi8, _mm_cvtusepi32_epi8, _mm256_cvtusepi32_epi8,
4594 _mm_cvtepi32_epi16, _mm256_cvtepi32_epi16, _mm_cvtsepi32_epi16,
4595 _mm256_cvtsepi32_epi16, _mm_cvtusepi32_epi16, _mm256_cvtusepi32_epi16,
4596 _mm_cvtepi64_epi8, _mm256_cvtepi64_epi8, _mm_cvtsepi64_epi8,
4597 _mm256_cvtsepi64_epi8, _mm_cvtusepi64_epi8, _mm256_cvtusepi64_epi8,
4598 _mm_cvtepi64_epi16, _mm256_cvtepi64_epi16, _mm_cvtsepi64_epi16,
4599 _mm256_cvtsepi64_epi16, _mm_cvtusepi64_epi16, _mm256_cvtusepi64_epi16,
4600 _mm_cvtepi64_epi32, _mm256_cvtepi64_epi32, _mm_cvtsepi64_epi32,
4601 _mm256_cvtsepi64_epi32, _mm_cvtusepi64_epi32, _mm256_cvtusepi64_epi32,
4602 _mm_maskz_set1_epi32, _mm_maskz_set1_epi64): Formatting fixes.
4603 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
4604 instead of _mm_setzero_hi.
4605 (_mm256_permutex_pd, _mm256_maskz_permutex_epi64, _mm256_insertf32x4,
4606 _mm256_maskz_insertf32x4, _mm256_inserti32x4, _mm256_maskz_inserti32x4,
4607 _mm256_extractf32x4_ps, _mm256_maskz_extractf32x4_ps,
4608 _mm256_shuffle_i32x4, _mm256_maskz_shuffle_i32x4, _mm256_shuffle_f64x2,
4609 _mm256_maskz_shuffle_f64x2, _mm256_shuffle_f32x4,
4610 _mm256_maskz_shuffle_f32x4, _mm256_maskz_shuffle_pd,
4611 _mm_maskz_shuffle_pd, _mm256_maskz_shuffle_ps, _mm_maskz_shuffle_ps,
4612 _mm256_maskz_srli_epi32, _mm_maskz_srli_epi32, _mm_maskz_srli_epi64,
4613 _mm256_mask_slli_epi32, _mm256_maskz_slli_epi32, _mm256_mask_slli_epi64,
4614 _mm256_maskz_slli_epi64, _mm256_roundscale_ps,
4615 _mm256_maskz_roundscale_ps, _mm256_roundscale_pd,
4616 _mm256_maskz_roundscale_pd, _mm_roundscale_ps, _mm_maskz_roundscale_ps,
4617 _mm_roundscale_pd, _mm_maskz_roundscale_pd, _mm256_getmant_ps,
4618 _mm256_maskz_getmant_ps, _mm_getmant_ps, _mm_maskz_getmant_ps,
4619 _mm256_getmant_pd, _mm256_maskz_getmant_pd, _mm_getmant_pd,
4620 _mm_maskz_getmant_pd, _mm256_maskz_shuffle_epi32,
4621 _mm_maskz_shuffle_epi32, _mm256_rol_epi32, _mm256_maskz_rol_epi32,
4622 _mm_rol_epi32, _mm_maskz_rol_epi32, _mm256_ror_epi32,
4623 _mm256_maskz_ror_epi32, _mm_ror_epi32, _mm_maskz_ror_epi32,
4624 _mm_maskz_alignr_epi32, _mm_maskz_alignr_epi64,
4625 _mm256_maskz_srai_epi32, _mm_maskz_srai_epi32, _mm_srai_epi64,
4626 _mm_maskz_srai_epi64, _mm256_maskz_permutex_pd,
4627 _mm256_maskz_permute_pd, _mm256_maskz_permute_ps, _mm_maskz_permute_pd,
4628 _mm_maskz_permute_ps, _mm256_permutexvar_ps): Formatting fixes.
4629 (_mm_maskz_slli_epi64, _mm_rol_epi64, _mm_maskz_rol_epi64,
4630 _mm_ror_epi64, _mm_maskz_ror_epi64): Use _mm_setzero_si128 instead of
4631 _mm_setzero_di.
4632 (_mm_maskz_cvtps_ph, _mm256_maskz_cvtps_ph): Use _mm_setzero_si128
4633 instead of _mm_setzero_hi.
4634 * config/i386/avx512dqintrin.h (_mm512_broadcast_f64x2,
4635 _mm512_broadcast_i64x2, _mm512_broadcast_f32x2, _mm512_broadcast_i32x2,
4636 _mm512_broadcast_f32x8, _mm512_broadcast_i32x8): Formatting fixes.
4637 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
4638 _mm_setzero_si128 instead of _mm_setzero_di.
4639 (_mm512_cvtt_roundpd_epi64, _mm512_mask_cvtt_roundpd_epi64,
4640 _mm512_maskz_cvtt_roundpd_epi64, _mm512_cvtt_roundpd_epu64,
4641 _mm512_mask_cvtt_roundpd_epu64, _mm512_maskz_cvtt_roundpd_epu64,
4642 _mm512_cvtt_roundps_epi64, _mm512_mask_cvtt_roundps_epi64,
4643 _mm512_maskz_cvtt_roundps_epi64, _mm512_cvtt_roundps_epu64,
4644 _mm512_mask_cvtt_roundps_epu64, _mm512_maskz_cvtt_roundps_epu64,
4645 _mm512_cvt_roundpd_epi64, _mm512_mask_cvt_roundpd_epi64,
4646 _mm512_maskz_cvt_roundpd_epi64, _mm512_cvt_roundpd_epu64,
4647 _mm512_mask_cvt_roundpd_epu64, _mm512_maskz_cvt_roundpd_epu64,
4648 _mm512_cvt_roundps_epi64, _mm512_mask_cvt_roundps_epi64,
4649 _mm512_maskz_cvt_roundps_epi64, _mm512_cvt_roundps_epu64,
4650 _mm512_mask_cvt_roundps_epu64, _mm512_maskz_cvt_roundps_epu64,
4651 _mm512_cvt_roundepi64_ps, _mm512_mask_cvt_roundepi64_ps,
4652 _mm512_maskz_cvt_roundepi64_ps, _mm512_cvt_roundepu64_ps,
4653 _mm512_mask_cvt_roundepu64_ps, _mm512_maskz_cvt_roundepu64_ps,
4654 _mm512_cvt_roundepi64_pd, _mm512_mask_cvt_roundepi64_pd,
4655 _mm512_maskz_cvt_roundepi64_pd, _mm512_cvt_roundepu64_pd,
4656 _mm512_mask_cvt_roundepu64_pd, _mm512_maskz_cvt_roundepu64_pd,
4657 _mm512_reduce_pd, _mm512_maskz_reduce_pd, _mm512_reduce_ps,
4658 _mm512_maskz_reduce_ps, _mm512_extractf32x8_ps,
4659 _mm512_maskz_extractf32x8_ps, _mm512_extractf64x2_pd,
4660 _mm512_maskz_extractf64x2_pd, _mm512_extracti32x8_epi32,
4661 _mm512_maskz_extracti32x8_epi32, _mm512_range_pd,
4662 _mm512_maskz_range_pd, _mm512_range_ps, _mm512_maskz_range_ps,
4663 _mm512_range_round_pd, _mm512_maskz_range_round_pd,
4664 _mm512_range_round_ps, _mm512_maskz_range_round_ps,
4665 _mm512_maskz_insertf64x2, _mm512_insertf32x8,
4666 _mm512_maskz_insertf32x8): Formatting fixes.
4667 (_mm512_extracti64x2_epi64, _mm512_maskz_extracti64x2_epi64): Use
4668 _mm_setzero_si128 instead of _mm_setzero_di.
4669 * config/i386/avx512vldqintrin.h (_mm_cvttpd_epi64,
4670 _mm_cvttpd_epu64, _mm_cvtpd_epi64, _mm_cvtpd_epu64,
4671 _mm_cvttps_epi64, _mm_maskz_cvttps_epi64, _mm_cvttps_epu64,
4672 _mm_maskz_cvttps_epu64, _mm_maskz_mullo_epi64, _mm_cvtps_epi64,
4673 _mm_maskz_cvtps_epi64, _mm_cvtps_epu64, _mm_maskz_cvtps_epu64,
4674 _mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64): Use
4675 _mm_setzero_si128 instead of _mm_setzero_di.
4676 (_mm256_extracti64x2_epi64, _mm256_maskz_extracti64x2_epi64):
4677 Likewise in macros.
4678 * config/i386/avx512vlbwintrin.h (_mm_maskz_mov_epi8,
4679 _mm_maskz_loadu_epi16, _mm_maskz_mov_epi16, _mm_maskz_loadu_epi8,
4680 _mm_permutexvar_epi16, _mm_maskz_maddubs_epi16): Use
4681 _mm_setzero_si128 instead of _mm_setzero_hi.
4682 (_mm_maskz_min_epu16, _mm_maskz_max_epu8, _mm_maskz_max_epi8,
4683 _mm_maskz_min_epu8, _mm_maskz_min_epi8, _mm_maskz_max_epi16,
4684 _mm_maskz_max_epu16, _mm_maskz_min_epi16): Use _mm_setzero_si128
4685 instead of _mm_setzero_di.
4686 (_mm_dbsad_epu8, _mm_maskz_shufflehi_epi16,
4687 _mm_maskz_shufflelo_epi16): Use _mm_setzero_si128 instead of
4688 _mm_setzero_hi.
4689 (_mm_maskz_shufflehi_epi16, _mm_maskz_shufflelo_epi16,
4690 _mm_maskz_slli_epi16): Use _mm_setzero_si128 instead of
4691 _mm_setzero_hi.
4692 (_mm_maskz_alignr_epi8): Use _mm_setzero_si128 instead of
4693 _mm_setzero_di.
4694 (_mm_maskz_mulhi_epi16, _mm_maskz_mulhi_epu16, _mm_maskz_mulhrs_epi16,
4695 _mm_maskz_mullo_epi16, _mm_srav_epi16, _mm_srlv_epi16,
4696 _mm_sllv_epi16): Use _mm_setzero_si128 instead of _mm_setzero_hi.
4697
4698 2016-11-22 Carl Love <cel@us.ibm.com>
4699
4700 * config/rs6000/rs6000-c.c: Add built-in support for vector compare
4701 equal and vector compare not equal. The vector compares take two
4702 arguments of type vector bool char, vector bool short, vector bool int,
4703 vector bool long long with the same return type.
4704 * doc/extend.texi: Update built-in documentation file for the new
4705 powerpc built-ins.
4706
4707 2016-11-22 Uros Bizjak <ubizjak@gmail.com>
4708
4709 * Makefile.in ($(lang_checks_parallelized)): Fix detection
4710 of -j argument.
4711
4712 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
4713
4714 * config.gcc: Allow new rmprofile value for configure option
4715 --with-multilib-list.
4716 * config/arm/t-rmprofile: New file.
4717 * doc/install.texi (--with-multilib-list): Document new rmprofile value
4718 for ARM.
4719
4720 2016-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4721
4722 PR target/78439
4723 * config/arm/vfp.md (*movdi_vfp_cortexa8): Use 'q' constraints for the
4724 register operand in alternatives 4,5,6.
4725
4726 2016-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
4727
4728 PR target/77904
4729 * config/arm/arm.c (thumb1_compute_save_reg_mask): Mark frame pointer
4730 in save register mask if it is needed.
4731
4732 2016-11-22 Jakub Jelinek <jakub@redhat.com>
4733
4734 PR tree-optimization/78436
4735 * gimple-ssa-store-merging.c (zero_char_buf): Removed.
4736 (shift_bytes_in_array, shift_bytes_in_array_right,
4737 merged_store_group::apply_stores): Formatting fixes.
4738 (clear_bit_region): Likewise. Use memset.
4739 (encode_tree_to_bitpos): Formatting fixes. Fix comment typos - EPXR
4740 instead of EXPR and inerted instead of inserted. Use memset instead
4741 of zero_char_buf. For !BYTES_BIG_ENDIAN decrease byte_size by 1
4742 if shift_amnt is 0.
4743
4744 PR middle-end/78416
4745 * expmed.c (expand_divmod): Use wide_int for computation of
4746 op1_is_pow2. Don't set it if op1 is 0. Formatting fixes.
4747 Use size <= HOST_BITS_PER_WIDE_INT instead of
4748 HOST_BITS_PER_WIDE_INT >= size.
4749
4750 PR tree-optimization/78445
4751 * tree-if-conv.c (tree_if_conversion): If any_pred_load_store or
4752 any_complicated_phi, version loop even if flag_tree_loop_if_convert
4753 is 1. Formatting fix.
4754
4755 2016-11-22 Martin Liska <mliska@suse.cz>
4756
4757 PR ipa/78309
4758 * ipa-icf.c (void sem_item::set_hash): Update m_hash_set.
4759 (sem_function::get_hash): Use the new field.
4760 (sem_function::parse): Remove an argument from ctor.
4761 (sem_variable::parse): Likewise.
4762 (sem_variable::get_hash): Use the new field.
4763 (sem_item_optimizer::read_section): Use new ctor and set hash.
4764 * ipa-icf.h: _hash is removed from sem_item::sem_item,
4765 sem_variable::sem_variable, sem_function::sem_function.
4766
4767 2016-11-21 Jeff Law <law@redhat.com>
4768
4769 PR target/68538
4770 * config/cris/cris.md: Don't call copy_to_mode_reg unless
4771 can_create_pseudo_p is true.
4772
4773 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
4774
4775 PR target/68803
4776 * config/rs6000/rs6000.md (*rotlsi3_insert_5, *rotldi3_insert_6,
4777 *rotldi3_insert_7): New define_insns.
4778
4779 2016-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
4780
4781 * config/rs6000/rs6000.md (movdi_internal32): Change constraints
4782 so that DImode can be allocated to FP/vector registers in more
4783 cases, and we can avoid direct move operations. If the register
4784 needs reloading, prefer GPRs over FP/vector registers. In the
4785 case of FPR vs. Altivec registers, prefer FPR registers unless we
4786 have the ISA 3.0 reg+offset scalar instructions.
4787 (movdi_internal64): Likewise.
4788
4789 2016-11-21 Jakub Jelinek <jakub@redhat.com>
4790
4791 PR middle-end/67335
4792 * omp-simd-clone.c (simd_clone_adjust_argument_types): Use NULL prefix
4793 for tmp simd array if DECL_NAME (parm) is NULL.
4794
4795 2016-11-20 Jeff Law <law@redhat.com>
4796
4797 PR target/25128
4798 * config/m68k/predicates.md (swap_peephole_relational_operator): New
4799 predicate.
4800 * config/m68k/m68k.md (relational tests against 65535/65536): New
4801 peephole2.
4802
4803 2016-11-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4804
4805 * tree-ssa-loop-prefetch.c: Delete FIXME after the includes.
4806
4807 2016-11-21 Martin Sebor <msebor@redhat.com>
4808
4809 * doc/invoke.texi (-fprintf-return-value): Document that option
4810 is enabled by default.
4811
4812 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
4813
4814 * config/avr/avr-c.c (avr_register_target_pragmas): Use C++
4815 for-loop declaration of loop variable.
4816 (avr_register_target_pragmas, avr_cpu_cpp_builtins): Same.
4817 * config/avr/avr.c (avr_popcount_each_byte)
4818 (avr_init_expanders, avr_regs_to_save, sequent_regs_live)
4819 (get_sequence_length, avr_prologue_setup_frame, avr_map_metric)
4820 (avr_expand_epilogue, avr_function_arg_advance)
4821 (avr_out_compare, avr_out_plus_1, avr_out_bitop, avr_out_fract)
4822 (avr_rotate_bytes, _reg_unused_after, avr_assemble_integer)
4823 (avr_adjust_reg_alloc_order, output_reload_in_const)
4824 (avr_conditional_register_usage, avr_find_unused_d_reg)
4825 (avr_map_decompose, avr_fold_builtin): Same.
4826
4827 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
4828
4829 * config/avr/avr.c (avr_popcount): Remove static function.
4830 (avr_popcount_each_byte, avr_out_bitop): Use popcount_hwi instead.
4831
4832 2016-11-21 Richard Earnshaw <rearnsha@arm.com>
4833
4834 * arm.opt (mapcs-float): Delete option.
4835 * arm.c (arm_option_override): Remove hunk relating to
4836 TARGET_APCS_FLOAT.
4837 * doc/invoke.texi (arm options): Remove documentation for -mapcs-float.
4838
4839 2016-11-21 Richard Sandiford <richard.sandiford@arm.com>
4840
4841 * tree-tailcall.c (process_assignment): Simplify the check for
4842 a valid copy, allowing the source to be a local variable as
4843 well as an SSA name.
4844 (find_tail_calls): Allow copies between local variables to follow
4845 the call. Allow the result to be stored in any local variable,
4846 even if it's an aggregate.
4847 (eliminate_tail_call): Check whether the result is an SSA name
4848 before updating its SSA_NAME_DEF_STMT.
4849
4850 2016-11-21 David Malcolm <dmalcolm@redhat.com>
4851
4852 PR preprocessor/78324
4853 * input.c (get_substring_ranges_for_loc): Fail gracefully if
4854 -ftrack-macro-expansion has a value other than 2.
4855
4856 2016-11-21 Segher Boessenkool <segher@kernel.crashing.org>
4857
4858 PR rtl-optimization/78400
4859 * shrink-wrap.c (try_shrink_wrapping_separate): Call
4860 df_update_entry_exit_and_calls instead of df_update_entry_block_defs
4861 and df_update_exit_block_uses.
4862
4863 2016-11-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4864
4865 PR c++/71973
4866 * doc/invoke.texi (-Wno-builtin-declaration-mismatch): Document the
4867 new default-enabled warning..
4868 * builtin-types.def (BT_CONST_TM_PTR): New primitive type.
4869 (BT_PTR_CONST_STRING): Updated.
4870 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR): Removed.
4871 (BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_TM_PTR): New function type.
4872 * builtins.def (DEF_TM_BUILTIN): Disable BOTH_P for TM builtins.
4873 (strftime): Update builtin function.
4874 * tree-core.h (TI_CONST_TM_PTR_TYPE): New enum value.
4875 * tree.h (const_tm_ptr_type_node): New type node.
4876 * tree.c (free_lang_data, build_common_tree_nodes): Initialize
4877 const_tm_ptr_type_node.
4878
4879 2016-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4880
4881 PR tree-optimization/78413
4882 * tree-if-conv.c (versionable_outer_loop_p): Require that both
4883 inner and outer loop latches have single predecessors.
4884
4885 2016-11-21 Georg-Johann Lay <avr@gjlay.de>
4886
4887 PR target/78093
4888 * config/avr/avr.c (avr_decl_maybe_lds_p): New static function.
4889 (avr_encode_section_info) [TARGET_ABSDATA && AVR_TINY]: Use it.
4890
4891 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4892
4893 * rtl.h: Adjust prototype.
4894 * rtlanal.c (dead_or_set_p): Change argument type to rtx_insn *.
4895 (dead_or_set_regno_p): Likewise.
4896
4897 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4898
4899 * rtl.h: Adjust prototype.
4900 * rtlanal.c (add_int_reg_note): Change argument type to rtx_insn *.
4901
4902 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4903
4904 * function.c (contains): Change argument type to rtx_insn *.
4905 (prologue_contains): Likewise.
4906 (epilogue_contains): Likewise.
4907 (prologue_epilogue_contains): Likewise.
4908 * function.h: Adjust prototype.
4909
4910 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4911
4912 * optabs.c (emit_libcall_block): Change argument type to
4913 rtx_insn *.
4914 * optabs.h: Adjust prototype.
4915
4916 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4917
4918 * cfgrtl.c (delete_insn): Change argument type to rtx_insn *.
4919 (fixup_reorder_chain): Adjust.
4920 * cfgrtl.h: Adjust prototype.
4921
4922 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4923
4924 * rtl.h: Adjust prototype.
4925 * rtlanal.c (replace_label_in_insn): Change argument type to
4926 rtx_insn *.
4927
4928 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4929
4930 * config/v850/v850.c (expand_prologue): Adjust.
4931 (expand_epilogue): Likewise.
4932 * expr.c (init_expr_target): Likewise.
4933 * genrecog.c (print_subroutine): Always make the argument type
4934 rtx_insn *.
4935 * recog.h: Adjust prototype.
4936
4937 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4938
4939 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): split
4940 up variables to make some rtx_insn *.
4941 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
4942 * config/arc/arc.c: Likewise.
4943 * config/arm/arm.c: Likewise.
4944 * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Likewise.
4945 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue):
4946 Likewise.
4947 * config/spu/spu.c (spu_emit_branch_hint): Likewise.
4948
4949 2016-11-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4950
4951 * config/arm/arm.c (legitimize_pic_address): Change to use
4952 rtx_insn * as the type of variables.
4953 (arm_pic_static_addr): Likewise.
4954 (arm_emit_movpair): Likewise.
4955 * config/c6x/c6x.c (reorg_split_calls): Likewise.
4956 * config/darwin.c (machopic_legitimize_pic_address): Likewise.
4957 * config/frv/frv.c (frv_optimize_membar_local): Likewise.
4958 * config/frv/frv.md: Likewise.
4959 * config/i386/i386-protos.h: Likewise.
4960 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
4961 (ix86_split_fp_branch): Likewise.
4962 (predict_jump): Likewise.
4963 * config/ia64/ia64.c: Likewise.
4964 * config/mcore/mcore.c: Likewise.
4965 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
4966 * config/s390/s390.c: Likewise.
4967 * config/s390/s390.md: Likewise.
4968 * config/spu/spu.md: Likewise.
4969 * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise.
4970 * lower-subreg.c (resolve_simple_move): Likewise.
4971
4972 2016-11-20 Jeff Law <law@redhat.com>
4973
4974 PR target/48551
4975 * reload.h (struct target_reload): Make x_double_reg_address_ok
4976 be per-mode rather.
4977 * reload.c (find_reloads_address): Check if double_reg_address_ok
4978 is true for the mode of the memory reference.
4979 * reload1.c (init_reload): Initialize double_reg_address_ok for
4980 each mode.
4981
4982 2016-11-20 Aldy Hernandez <aldyh@redhat.com>
4983
4984 PR middle-end/61409
4985 * tree-ssa-uninit.c: Define new global max_phi_args.
4986 (compute_uninit_opnds_pos): Use max_phi_args.
4987 (prune_uninit_phi_opnds): Same.
4988 (use_pred_not_overlap_with_undef_path_pred): Remove reference to
4989 missing NUM_PREDS in function comment.
4990 (can_one_predicate_be_invalidated_p): New.
4991 (can_chain_union_be_invalidated_p): New.
4992 (flatten_out_predicate_chains): New.
4993 (uninit_ops_invalidate_phi_use): New.
4994 (is_use_properly_guarded): Call uninit_ops_invalidate_phi_use.
4995
4996 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
4997
4998 * fold-const.c (fold_comparison): Ignore EXACT_DIV_EXPR.
4999 * match.pd (A /[ex] B CMP C): New simplifications.
5000
5001 2016-11-20 Marc Glisse <marc.glisse@inria.fr>
5002
5003 * match.pd (0 / X, X / X, X % X): New simplifications.
5004
5005 2016-11-19 Jakub Jelinek <jakub@redhat.com>
5006
5007 * config/i386/i386.c (ix86_can_inline_p): Use || instead of &
5008 when checking if callee's isa flags are subset of caller's isa flags.
5009 Fix comment wording.
5010
5011 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
5012 clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2
5013 instead and using = 0 instead of &= 0.
5014
5015 * config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2,
5016 ix86_add_new_builtins): Formatting fixes.
5017 (ix86_expand_builtin): Use || instead of && for isa vs. isa2.
5018 (ix86_get_builtin): Likewise.
5019
5020 * config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable,
5021 don't initialize it, don't use it for the case where it isn't
5022 provable %{z} nor using the same argument, instead move merge
5023 argument into a new pseudo and use that as target. Formatting fixes.
5024
5025 2016-11-19 Jeff Law <law@redhat.com>
5026
5027 PR target/25111
5028 * config/m68k/m68k.md (bsetdreg): New pattern.
5029 (bchgdreg, bclrdreg): Likewise.
5030
5031 2016-11-19 Kaz Kojima <kkojima@gcc.gnu.org>
5032
5033 PR target/78426
5034 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
5035 instead of force_reg.
5036 (sh_expand_setmem): Likewise.
5037
5038 2016-11-19 Krister Walfridsson <krister.walfridsson@gmail.com>
5039
5040 * config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.
5041
5042 2016-11-18 Walter Lee <walt@tilera.com>
5043
5044 * config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
5045 end-of-bundle marker for consecutive barriers.
5046
5047 2016-11-18 Walter Lee <walt@tilera.com>
5048
5049 * config/tilegx/tilegx.md (clzsi2): Fix for big-endian.
5050
5051 2016-11-18 Jakub Jelinek <jakub@redhat.com>
5052
5053 PR middle-end/78419
5054 * multiple_target.c (get_attr_len): Start with argnum and increment
5055 argnum on every arg. Use strchr in a loop instead of counting commas
5056 manually.
5057 (get_attr_str): Increment argnum for every comma in the string.
5058 (separate_attrs): Use for instead of while loop, simplify.
5059 (expand_target_clones): Rename defenition argument to definition.
5060 Free attrs and attr_str even when diagnosing errors. Temporarily
5061 change input_location around targetm.target_option.valid_attribute_p
5062 calls. Don't emit warning or errors if that function fails.
5063
5064 * dwarf2out.c (size_of_discr_list): Fix typo in function comment.
5065
5066 PR debug/78191
5067 * dwarf2out.c (abbrev_opt_base_type_end): New variable.
5068 (die_abbrev_cmp): Sort dies with die_abbrev smaller than
5069 abbrev_opt_base_type_end only by increasing die_abbrev, before
5070 any other dies.
5071 (optimize_abbrev_table): Don't change abbrev numbers of
5072 base types and CU or optimize implicit consts in them if
5073 calc_base_type_die_sizes has been called during build_abbrev_table.
5074 (calc_base_type_die_sizes): If abbrev_opt_start, set
5075 abbrev_opt_base_type_end to one plus largest base type's die_abbrev.
5076
5077 2016-11-18 Jeff Law <law@redhat.com>
5078
5079 PR target/25112
5080 * config/m68k/m68k.c (moveq feeding equality comparison): New
5081 peepholes.
5082 * config/m68k/predicates.md (addq_subq_operand): New predicate.
5083 (equality_comparison_operator): Likewise.
5084
5085 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
5086
5087 * rtlanal.c (load_extend_op): Move to...
5088 * rtl.h: ...here and make inline.
5089
5090 2016-11-18 Terry Guo <terry.guo@arm.com>
5091 Thomas Preud'homme <thomas.preudhomme@arm.com>
5092
5093 * common/config/arm/arm-common.c (arm_target_thumb_only): New function.
5094 * config/arm/arm-opts.h: Include arm-flags.h.
5095 (struct arm_arch_core_flag): Define.
5096 (arm_arch_core_flags): Define.
5097 * config/arm/arm-protos.h: Include arm-flags.h
5098 (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32,
5099 FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E,
5100 FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM,
5101 FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV,
5102 FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT,
5103 FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST,
5104 FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4,
5105 FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E,
5106 FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J,
5107 FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ,
5108 FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A,
5109 FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM,
5110 FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE,
5111 FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE,
5112 ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2,
5113 ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2,
5114 ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2,
5115 ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER,
5116 ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY,
5117 ARM_FSET_CPU_SUBSET): Move to ...
5118 * config/arm/arm-flags.h: This new file.
5119 * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define.
5120 (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value.
5121 (TARGET_MODE_SPECS): Define.
5122 (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value.
5123
5124 2016-11-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
5125
5126 * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M,
5127 FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED,
5128 FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF,
5129 FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON,
5130 FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL,
5131 FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1,
5132 FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when
5133 missing and make value unsigned.
5134 (arm_feature_set): Use unsigned entries instead of unsigned long.
5135
5136 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
5137
5138 Re-apply after PR bootstrap/77359 is fixed:
5139 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5140
5141 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5142 pointer + STACK_DYNAMIC_OFFSET into account when calculating the
5143 size needed.
5144
5145 2016-11-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
5146
5147 PR bootstrap/77359
5148 * config/rs6000/rs6000.c (rs6000_stack_info): Properly align local
5149 variables in functions calling alloca. Also update the ASCII
5150 drawings.
5151 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET)
5152 (STACK_DYNAMIC_OFFSET): Likewise.
5153 * config/rs6000/aix.h (STARTING_FRAME_OFFSET)
5154 (STACK_DYNAMIC_OFFSET): Copy AIX specific versions of the rs6000.h
5155 macros to aix.h.
5156
5157 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
5158 Alan Hayward <alan.hayward@arm.com>
5159 David Sherwood <david.sherwood@arm.com>
5160
5161 * combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
5162 * dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
5163 (add_const_value_attribute): Likewise.
5164 * explow.c (plus_constant): Likewise.
5165 * expmed.c (expand_mult, make_tree): Likewise.
5166 * expr.c (convert_modes): Likewise.
5167 * loop-doloop.c (doloop_optimize): Likewise.
5168 * postreload.c (reload_cse_simplify_set): Likewise.
5169 * simplify-rtx.c (simplify_const_unary_operation): Likewise
5170 (simplify_binary_operation_1, simplify_const_binary_operation):
5171 Likewise.
5172 (simplify_const_relational_operation, simplify_immed_subreg): Likewise.
5173 * wide-int.h: Update documentation to recommend rtx_mode_t
5174 instead of std::make_pair.
5175
5176 2016-11-18 Richard Sandiford <richard.sandiford@arm.com>
5177 Alan Hayward <alan.hayward@arm.com>
5178 David Sherwood <david.sherwood@arm.com>
5179
5180 * tree.h (SET_DECL_MODE): New macro.
5181 * cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE.
5182 (expand_gimple_basic_block): Likewise.
5183 * function.c (split_complex_args): Likeise.
5184 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
5185 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise.
5186 * stor-layout.c (layout_decl, relayout_decl): Likewise.
5187 (finish_bitfield_representative): Likewise.
5188 * tree.c (make_node_stat): Likewise.
5189 * tree-inline.c (remap_ssa_name): Likewise.
5190 (tree_function_versioning): Likewise.
5191 * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise.
5192 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
5193 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
5194 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
5195 * tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
5196 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
5197 * varasm.c (make_debug_expr_from_rtl): Likewise.
5198
5199 2016-11-18 Segher Boessenkool <segher@kernel.crashing.org>
5200
5201 PR rtl-optimization/71785
5202 * bb-reorder.c (maybe_duplicate_computed_goto): New function.
5203 (duplicate_computed_gotos): New function.
5204 (pass_duplicate_computed_gotos::execute): Rewrite.
5205
5206 2016-11-17 Jeff Law <law@redhat.com>
5207
5208 PR target/47192
5209 * config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling
5210 barrier prior to deallocating the stack.
5211
5212 2016-11-17 Andrew Burgess <andrew.burgess@embecosm.com>
5213
5214 * config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole
5215 to make better use of cmem loads in the case where a single bit is
5216 being accessed.
5217 * config/arc/predicates.md (ge_lt_comparison_operator): New predicate.
5218
5219 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com>
5220
5221 * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW,
5222 F_AVX5124FMAPS.
5223 (isa_names_table): Handle new features.
5224
5225 2016-11-17 Kirill Yukhin <kirill.yukhin@gmail.com>
5226 Andrew Senkevich <andrew.senkevich@intel.com>
5227
5228 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX5124FMAPS_SET,
5229 OPTION_MASK_ISA_AVX5124FMAPS_UNSET, OPTION_MASK_ISA_AVX5124VNNIW_SET,
5230 OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
5231 (ix86_handle_option): Handle OPT_mavx5124fmaps, OPT_mavx5124vnniw.
5232 * config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
5233 * config/i386/avx5124fmapsintrin.h: New file.
5234 * config/i386/avx5124vnniwintrin.h: Ditto.
5235 * config/i386/constraints.md (h): New constraint.
5236 * config/i386/cpuid.h (bit_AVX5124VNNIW, bit_AVX5124FMAPS): New.
5237 * config/i386/driver-i386.c (host_detect_local_cpu):
5238 Detect avx5124fmaps, avx5124vnniw.
5239 * config/i386/i386-builtin-types.def: Add types
5240 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
5241 V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
5242 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
5243 V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
5244 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
5245 V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
5246 * config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
5247 __builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
5248 __builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
5249 __builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
5250 __builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
5251 __builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
5252 __builtin_ia32_vp4dpwssds_mask): New.
5253 * config/i386/i386-c.c (ix86_target_macros_internal):
5254 Define __AVX5124FMAPS__, __AVX5124VNNIW__.
5255 * config/i386/i386-modes.def: Fixed comment typos, added new
5256 modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
5257 * config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
5258 -mavx5124vnniw.
5259 (PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
5260 (ix86_option_override_internal): Handle new options.
5261 (ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
5262 avx5124vnniw.
5263 (ix86_expand_builtin): Handle new builtins.
5264 (ix86_additional_allocno_class_p): New.
5265 * config/i386/i386.h (TARGET_AVX5124FMAPS, TARGET_AVX5124FMAPS_P,
5266 TARGET_AVX5124VNNIW, TARGET_AVX5124VNNIW_P): Define.
5267 (reg_class): Add MOD4_SSE_REGS.
5268 (MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
5269 * config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
5270 * config/i386/immintrin.h: Include avx5124fmapsintrin.h,
5271 avx5124vnniwintrin.h.
5272 * config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD, UNSPEC_VP4FNMADD,
5273 UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
5274 (define_mode_iterator IMOD4): New.
5275 (define_mode_attr imod4_narrow): Ditto.
5276 (define_insn "mov<mode>"): Ditto.
5277 (define_insn "avx5124fmaddps_4fmaddps"): Ditto.
5278 (define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
5279 (define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
5280 (define_insn "avx5124fmaddps_4fmaddss"): Ditto.
5281 (define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
5282 (define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
5283 (define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
5284 (define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
5285 (define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
5286 (define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
5287 (define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
5288 (define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
5289 (define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
5290 (define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
5291 (define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
5292 (define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
5293 (define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
5294 (define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
5295 * init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
5296 * genmodes.c (mode_size_inline): Extend return type.
5297 * machmode.h (mode_size, mode_base_align): Extend type.
5298
5299 2016-11-17 Michael Meissner <meissner@linux.vnet.ibm.com>
5300
5301 PR target/78101
5302 * config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
5303 the appropriate checks for SFmode/DFmode load/stores in GPR
5304 registers.
5305 (fusion_addis_mem_combo_store): Likewise.
5306 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
5307 fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
5308 d-form instructions for traditional Altivec registers.
5309 (emit_fusion_p9_load): Likewise.
5310 (emit_fusion_p9_store): Likewise.
5311 * config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
5312 early clobber from scratch register. Do not match if the register
5313 being stored is the scratch register.
5314 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
5315 to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
5316 instructions for traditional Altivec registers.
5317 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
5318 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
5319 (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
5320
5321 2016-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5322
5323 PR target/77933
5324 * config/arm/arm.c (thumb1_expand_prologue): Distinguish between lr
5325 being live in the function and lr needing to be saved. Distinguish
5326 between already saved pushable registers and registers to push.
5327 Check for LR being an available pushable register.
5328
5329 2016-11-17 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5330
5331 * config/i386/i386.md (cmpstrnsi): New test to bail out if neither
5332 string input is a string constant.
5333 * builtins.c (expand_builtin_strncmp): Attempt expansion of strncmp
5334 via cmpstrnsi even if neither string is constant.
5335
5336 2016-11-17 Jakub Jelinek <jakub@redhat.com>
5337
5338 PR middle-end/78201
5339 * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo.
5340 Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT
5341 instead, return false if it is NULL, or doesn't fit into uhwi, or
5342 is larger or equal to targetm.max_anchor_offset.
5343
5344 2016-11-17 Pip Cet <pipcet@gmail.com>
5345 Eric Botcazou <ebotcazou@adacore.com>
5346
5347 PR rtl-optimization/78355
5348 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Document that the macro only
5349 needs to deal with unaligned accesses.
5350 * doc/tm.texi: Regenerate.
5351 * lra-constraints.c (simplify_operand_subreg): Only invoke
5352 SLOW_UNALIGNED_ACCESS on innermode if the MEM is not aligned enough.
5353
5354 2016-11-17 David Malcolm <dmalcolm@redhat.com>
5355
5356 * input.c (selftest::test_lexer_string_locations_long_line): New
5357 function.
5358 (selftest::test_lexer_string_locations_raw_string_multiline): New
5359 function.
5360 (selftest::input_c_tests): Call the new functions, via
5361 for_each_line_table_case.
5362
5363 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5364
5365 * config/aarch64/aarch64.md (mov<mode>): Call
5366 aarch64_split_dimode_const_store on DImode constant stores.
5367 * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store):
5368 New prototype.
5369 * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New
5370 function.
5371
5372 2016-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5373 Richard Biener <rguenther@suse.de>
5374
5375 PR tree-optimization/77848
5376 * tree-if-conv.c (tree_if_conversion): Always version loops unless
5377 the user specified -ftree-loop-if-convert.
5378
5379 2016-11-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
5380
5381 PR target/77308
5382 * config/arm/arm.md (*thumb2_ldrd, *thumb2_ldrd_base,
5383 *thumb2_ldrd_base_neg, *thumb2_strd, *thumb2_strd_base,
5384 *thumb2_strd_base_neg): Recognize insn regardless of
5385 current_tune->prefer_ldrd_strd.
5386 * config/arm/ldrdstrd.md: Enable all ldrd/strd peephole rules
5387 whenever possible.
5388
5389 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
5390
5391 * config/arc/arc.c (arc_ccfsm_post_advance): Handle return
5392 instruction type.
5393
5394 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com>
5395
5396 * config/arc/arc-arches.def: Add FPX quarkse instruction as valid
5397 for arcem.
5398 * config/arc/arc-c.def (__ARC_FPX_QUARK__): Define.
5399 * config/arc/arc-cpus.def (quarkse_em): Add.
5400 * config/arc/arc-options.def (FL_FPX_QUARK, FL_QUARK): Likewise.
5401 * config/arc/arc-opts.h (FPX_QK): Define.
5402 * config/arc/arc-tables.opt: Regenerate.
5403 * config/arc/arc.c (gen_compare_reg): Change.
5404 (arc_register_move_cost): Avoid Dy,Dx moves.
5405 * config/arc/arc.h (TARGET_HARD_FLOAT): Change.
5406 (TARGET_FPX_QUARK, TARGET_FP_ASSIST): Define.
5407 * config/arc/arc.md (divsf3, sqrtsf2, fix_truncsfsi2, floatsisf2):
5408 New expands.
5409 * config/arc/fpu.md (divsf3_fpu, sqrtsf2_fpu, floatsisf2_fpu)
5410 (fix_truncsfsi2_fpu): Rename.
5411 * config/arc/fpx.md (cmp_quark, cmpsf_quark_, cmpsf_quark_ord)
5412 (cmpsf_quark_uneq, cmpsf_quark_eq, divsf3_quark, sqrtsf2_quark)
5413 (fix_truncsfsi2_quark, floatsisf2_quark): New patterns.
5414 * config/arc/t-multilib: Regenerate.
5415
5416 2016-11-17 Georg-Johann Lay <avr@gjlay.de>
5417
5418 * config/avr/avr.c (avr_print_operand_address): Use CONST_INT_P if
5419 appropriate.
5420 (ashlqi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out): Same.
5421 (ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Same.
5422 (avr_rtx_costs_1, extra_constraint_Q): Same.
5423 (avr_address_cost): Use SUBREG_P if possible.
5424
5425 2016-11-17 Richard Biener <rguenther@suse.de>
5426
5427 PR middle-end/78383
5428 * tree-cfgcleanup.c (cleanup_control_flow_bb): Do not turn
5429 non-local goto into CFG.
5430
5431 2016-11-17 Richard Biener <rguenther@suse.de>
5432
5433 * common.opt (ftree-loop-if-convert-stores): Mark as preserved for
5434 backward compatibility.
5435 * doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
5436 * tree-if-conv.c (pass_if_conversion::gate): Do not test
5437 flag_tree_loop_if_convert_stores.
5438 (pass_if_conversion::execute): Likewise.
5439
5440 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5441
5442 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
5443 const_double code before calling aarch64_float_const_zero_rtx_p.
5444
5445 2016-11-17 Richard Biener <rguenther@suse.de>
5446
5447 PR tree-optimization/78306
5448 * ipa-inline-analysis.c (initialize_inline_failed): Do not
5449 inhibit inlining if function calls cilk_spawn.
5450 (can_inline_edge_p): Likewise.
5451
5452 2016-11-17 Richard Biener <rguenther@suse.de>
5453
5454 PR middle-end/78305
5455 * fold-const.c (negate_expr_p): Fix multiplication case.
5456
5457 2016-11-17 Chung-Lin Tang <cltang@codesourcery.com>
5458
5459 PR target/78357
5460 * config/nios2/nios2.c (nios2_init_libfuncs): Remove TARGET_LINUX_ABI
5461 condition.
5462 (TARGET_INIT_LIBFUNCS): Delete definition and...
5463 * config/nios2/linux.h (TARGET_INIT_LIBFUNCS): ...move to here, add
5464 comments.
5465
5466 2016-11-17 Krister Walfridsson <krister.walfridsson@gmail.com>
5467
5468 * config/netbsd-stdint.h: New.
5469 * config.gcc (i[34567]86-*-netbsd): Add netbsd-stdint.h to tm_file.
5470 (x86_64-*-netbsd*): Likewise.
5471
5472 2016-11-16 Andrew PInski <apinski@cavium.com>
5473
5474 * config/aarch64/aarch64.opt (mverbose-cost-dump): New option.
5475 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
5476 flag_aarch64_verbose_cost instead of checking for details dump.
5477 (aarch64_rtx_costs_wrapper): Likewise.
5478
5479 2016-11-16 Jakub Jelinek <jakub@redhat.com>
5480
5481 PR rtl-optimization/78378
5482 * combine.c (make_extraction): Use force_to_mode for non-{REG,MEM}
5483 inner only if pos is 0. Fix up formatting.
5484
5485 2016-11-17 Alan Modra <amodra@gmail.com>
5486
5487 PR rtl-optimization/78325
5488 PR rtl-optimization/70890
5489 * ira.c (combine_and_move_insns): Only remove REG_EQUIV notes
5490 for dead regno.
5491
5492 2016-11-16 Jason Merrill <jason@redhat.com>
5493
5494 * rtl.h: Declare gt_ggc_mx and gt_pch_nx.
5495
5496 2016-11-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5497 Richard Biener <rguenther@suse.de>
5498
5499 PR tree-optimization/77848
5500 * tree-if-conv.c (version_loop_for_if_conversion): When versioning
5501 an outer loop, only save basic block aux information for the inner
5502 loop.
5503 (versionable_outer_loop_p): New function.
5504 (tree_if_conversion): Version the outer loop instead of the inner
5505 one if the pattern will be recognized for outer-loop
5506 vectorization.
5507
5508 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
5509
5510 * gcc/bb-reorder.c: Remove 'toplev.h' include.
5511 (pass_partition_blocks::gate): No longer check
5512 user_defined_section_attribute, instead check the function decl
5513 for a section attribute.
5514 * gcc/c-family/c-attribs.c (handle_section_attribute): No longer
5515 set user_defined_section_attribute.
5516 * gcc/final.c (rest_of_handle_final): Likewise.
5517 * gcc/toplev.c: Remove definition of user_defined_section_attribute.
5518 * gcc/toplev.h: Remove declaration of
5519 user_defined_section_attribute.
5520
5521 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5522
5523 * config/mips/mips.md (casesi_internal_mips16_<mode>):
5524 Explicitly switch between JR and JRC for the table jump. Adjust
5525 instruction count.
5526
5527 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5528
5529 * config/mips/mips.md (casesi_internal_mips16_<mode>): Set
5530 `insn_count' to 11 rather than 16.
5531
5532 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5533
5534 * config/mips/mips.md (casesi_internal_mips16_<mode>): Use the
5535 `ltu' rather than `leu' operation in the RTL pattern
5536
5537 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5538
5539 * config/mips/mips.md (casesi_internal_mips16_<mode>): Add
5540 missing <d> instruction prefixes throughout. Correct
5541 formatting.
5542
5543 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5544
5545 * config/mips/mips.c (mips_output_jump): Output R_MICROMIPS_JALR
5546 rather than R_MIPS_JALR relocation in microMIPS code. Do not
5547 cancel short delay slots in PIC call relaxation.
5548
5549 2016-11-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
5550
5551 * config/arm/arm.md (arm_addsi3): Add alternative for addition of
5552 general register with general register or ARM constant into SP
5553 register.
5554
5555 2016-11-16 Jakub Jelinek <jakub@redhat.com>
5556
5557 PR fortran/78299
5558 * omp-low.c (expand_omp_for_static_nochunk): Don't assert
5559 that loop->header == body_bb if broken_loop.
5560
5561 2015-11-16 Wilco Dijkstra <wdijkstr@arm.com>
5562
5563 * tree-ssa-math-opts.c (bswap_replace): Remove test
5564 of SLOW_UNALIGNED_ACCESS.
5565
5566 2016-11-16 Alexander Monakov <amonakov@ispras.ru>
5567
5568 * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP
5569 is selected. Pass -mgomp to offload compiler in OpenMP case.
5570 * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum
5571 declaration from nvptx.c.
5572 (nvptx_gen_shuffle): Declare.
5573 (nvptx_output_set_softstack): Declare.
5574 * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h.
5575 (need_softstack_decl): New variable.
5576 (need_unisimt_decl): New variable.
5577 (diagnose_openacc_conflict): New. Use it...
5578 (nvptx_option_override): ...here. Handle TARGET_GOMP.
5579 (nvptx_encode_section_info): Handle "shared" attribute.
5580 (write_as_kernel): Restrict to OpenACC target regions.
5581 (init_softstack_frame): New.
5582 (nvptx_init_unisimt_predicate): New.
5583 (write_omp_entry): New. Use it...
5584 (nvptx_declare_function_name): ...here to emit OpenMP target region
5585 entrypoints. Handle TARGET_SOFT_STACK. Call
5586 nvptx_init_unisimt_predicate.
5587 (nvptx_output_set_softstack): New.
5588 (nvptx_get_drap_rtx): Return %argp as the DRAP if needed.
5589 (nvptx_gen_shuffle): Export.
5590 (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction
5591 predicate.
5592 (nvptx_print_operand): Fix handling of instruction predicates.
5593 (nvptx_get_unisimt_master): New helper function.
5594 (nvptx_get_unisimt_predicate): Ditto.
5595 (nvptx_call_insn_is_syscall_p): Ditto.
5596 (nvptx_unisimt_handle_set): Ditto.
5597 (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt.
5598 (nvptx_reorg): Call nvptx_reorg_uniform_simt.
5599 (nvptx_handle_shared_attribute): New. Use it...
5600 (nvptx_attribute_table): ... here (new entry).
5601 (nvptx_record_offload_symbol): Handle NULL attributes.
5602 (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl.
5603 (nvptx_simt_vf): New.
5604 (TARGET_SIMT_VF): Define.
5605 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define
5606 __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp.
5607 -muniform-simt option is active.
5608 (STACK_SIZE_MODE): Define.
5609 (FIXED_REGISTERS): Adjust.
5610 (SOFTSTACK_SLOT_REGNUM): New.
5611 (SOFTSTACK_PREV_REGNUM): New.
5612 (REGISTER_NAMES): Adjust.
5613 (struct machine_function): New fields.
5614 * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New.
5615 (UNSPEC_VOTE_BALLOT): Ditto.
5616 (UNSPEC_LANEID): Ditto.
5617 (UNSPECV_NOUNROLL): Ditto.
5618 (atomic): New attribute.
5619 (predicable): New attribute. Generate predicated forms via
5620 define_cond_exec.
5621 (br_true): Mark as not predicable.
5622 (br_false): Ditto.
5623 (br_true_uni): Ditto.
5624 (br_false_uni): Ditto.
5625 (return): Ditto.
5626 (trap_if_true): Ditto.
5627 (trap_if_false): Ditto.
5628 (nvptx_fork): Ditto.
5629 (nvptx_forked): Ditto.
5630 (nvptx_joining): Ditto.
5631 (nvptx_join): Ditto.
5632 (nvptx_barsync): Ditto.
5633 (epilogue): Emit stack restore if TARGET_SOFT_STACK.
5634 (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code.
5635 (allocate_stack_<mode>): Remove unused pattern.
5636 (set_softstack_insn): New pattern.
5637 (restore_stack_block): Handle for TARGET_SOFT_STACK.
5638 (nvptx_vote_ballot): New pattern.
5639 (omp_simt_lane): Ditto.
5640 (omp_simt_last_lane): Ditto.
5641 (omp_simt_ordered): Ditto.
5642 (omp_simt_vote_any): Ditto.
5643 (omp_simt_xchg_bfly): Ditto.
5644 (omp_simt_xchg_idx): Ditto.
5645 (nvptx_nounroll): Ditto.
5646 (atomic_compare_and_swap<mode>_1): Mark with atomic attribute.
5647 (atomic_exchange<mode>): Ditto.
5648 (atomic_fetch_add<mode>): Ditto.
5649 (atomic_fetch_addsf): Ditto.
5650 (atomic_fetch_<logic><mode>): Ditto.
5651 * config/nvptx/nvptx.opt (msoft-stack): New option.
5652 (muniform-simt): Ditto.
5653 (mgomp): Ditto.
5654 * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New.
5655 * doc/extend.texi (Nvidia PTX Variable Attributes): New section.
5656 * doc/invoke.texi (msoft-stack): Document.
5657 (muniform-simt): Document
5658 (mgomp): Document.
5659 * doc/tm.texi: Regenerate.
5660 * doc/tm.texi.in (TARGET_SIMT_VF): New hook.
5661 * target.def: Define it.
5662 * target-insns.def (omp_simt_lane): New.
5663 (omp_simt_last_lane): New.
5664 (omp_simt_ordered): New.
5665 (omp_simt_vote_any): New.
5666 (omp_simt_xchg_bfly): New.
5667 (omp_simt_xchg_idx): New.
5668
5669 2016-11-16 Maciej W. Rozycki <macro@imgtec.com>
5670
5671 * config/mips/mips-protos.h (mips_set_text_contents_type): New
5672 prototype.
5673 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): New macro.
5674 (ASM_OUTPUT_CASE_END): Likewise.
5675 * config/mips/mips.c (mips_set_text_contents_type): New function.
5676 (mips16_emit_constants): Record the pool's initial label number
5677 with the `consttable' insn. Emit a `consttable_end' insn at the end.
5678 (mips_final_prescan_insn): Call `mips_set_text_contents_type'
5679 for `consttable' insns.
5680 (mips_final_postscan_insn): Call `mips_set_text_contents_type'
5681 for `consttable_end' insns.
5682 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE_END enum value.
5683 (consttable): Add operand.
5684 (consttable_end): New insn.
5685
5686 2016-11-16 Yuri Rumyantsev <ysrumyan@gmail.com>
5687
5688 * params.def (PARAM_VECT_EPILOGUES_NOMASK): New.
5689 * tree-if-conv.c (tree_if_conversion): Make public.
5690 * * tree-if-conv.h: New file.
5691 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences) Avoid
5692 dynamic alias checks for epilogues.
5693 * tree-vect-loop-manip.c (vect_do_peeling): Return created epilog.
5694 * tree-vect-loop.c: include tree-if-conv.h.
5695 (new_loop_vec_info): Add zeroing orig_loop_info field.
5696 (vect_analyze_loop_2): Don't try to enhance alignment for epilogues.
5697 (vect_analyze_loop): Add argument ORIG_LOOP_INFO which is not NULL
5698 if epilogue is vectorized, set up orig_loop_info field of loop_vinfo
5699 using passed argument.
5700 (vect_transform_loop): Check if created epilogue should be returned
5701 for further vectorization with less vf. If-convert epilogue if
5702 required. Print vectorization success for epilogue.
5703 * tree-vectorizer.c (vectorize_loops): Add epilogue vectorization
5704 if it is required, pass loop_vinfo produced during vectorization of
5705 loop body to vect_analyze_loop.
5706 * tree-vectorizer.h (struct _loop_vec_info): Add new field
5707 orig_loop_info.
5708 (LOOP_VINFO_ORIG_LOOP_INFO): New.
5709 (LOOP_VINFO_EPILOGUE_P): New.
5710 (LOOP_VINFO_ORIG_VECT_FACTOR): New.
5711 (vect_do_peeling): Change prototype to return epilogue.
5712 (vect_analyze_loop): Add argument of loop_vec_info type.
5713 (vect_transform_loop): Return created loop.
5714
5715 2016-11-16 Segher Boessenkool <segher@kernel.crashing.org>
5716
5717 * config/rs6000/rs6000.c (rs6000_components_for_bb): Mark the LR
5718 component as used also if LR_REGNO is a live input to the bb.
5719 * df-scan.c (df_get_entry_block_def_set): Return immediately after
5720 clearing the set if DF_SCAN_EMPTY_ENTRY_EXIT is set.
5721 (df_get_exit_block_use_set): Ditto.
5722 * df.h (df_scan_flags): New enum.
5723 * shrink-wrap.c (try_shrink_wrapping_separate): Set
5724 DF_SCAN_EMPTY_ENTRY_EXIT in df_scan->local_flags, and call
5725 df_update_entry_block_defs and df_update_exit_block_uses
5726 at the start; clear the flag and call those functions at the end.
5727
5728 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5729 Alan Hayward <alan.hayward@arm.com>
5730 David Sherwood <david.sherwood@arm.com>
5731
5732 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set
5733 nb_iterations to the number of latch iterations rather than the
5734 number of loop iterations.
5735
5736 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5737 Alan Hayward <alan.hayward@arm.com>
5738 David Sherwood <david.sherwood@arm.com>
5739
5740 * combine.c (maybe_swap_commutative_operands): New function.
5741 (combine_simplify_rtx): Use it.
5742 (change_zero_ext): Likewise.
5743 (make_compound_operation_int): New function, split out of...
5744 (make_compound_operation): ...here. Use
5745 maybe_swap_commutative_operands for both.
5746
5747 2016-11-16 Richard Earnshaw <rearnsha@arm.com>
5748
5749 * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'.
5750 (neon-vfpv3): New FPU, currently an alias for 'neon'.
5751 * arm/arm-tables.opt: Regenerated.
5752 * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and
5753 neon-vfpv3.
5754 * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp'
5755 and 'neon' are aliases for specific implementations.
5756
5757 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5758 Alan Hayward <alan.hayward@arm.com>
5759 David Sherwood <david.sherwood@arm.com>
5760
5761 * optabs.c (vector_compare_rtx): Add a cmp_mode parameter
5762 and use it in the final call to gen_rtx_fmt_ee.
5763 (expand_vec_cond_expr): Update accordingly.
5764 (expand_vec_cmp_expr): Likewise.
5765
5766 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5767 Alan Hayward <alan.hayward@arm.com>
5768 David Sherwood <david.sherwood@arm.com>
5769
5770 * cprop.c (local_cprop_find_used_regs): Use df_read_modify_subreg_p.
5771
5772 2016-11-16 Richard Biener <rguenther@suse.de>
5773
5774 PR middle-end/78333
5775 * gimplify.c (gimplify_function_tree): Do not instrument
5776 GNU extern inline functions.
5777
5778 2016-11-16 Martin Liska <mliska@suse.cz>
5779
5780 PR sanitizer/78270
5781 * gimplify.c (gimplify_switch_expr): Always save previous
5782 gimplify_ctxp->live_switch_vars.
5783
5784 2016-11-16 Andrew Burgess <andrew.burgess@embecosm.com>
5785
5786 * config/arc/arc.md (movb peephole2): New peephole2 to merge two
5787 zero_extract operations to allow a movb to occur.
5788 * testsuite/gcc.target/arc/movb-1.c: Update little endian arc results.
5789 * testsuite/gcc.target/arc/movb-2.c: Likewise.
5790 * testsuite/gcc.target/arc/movb-5.c: Likewise.
5791 * testsuite/gcc.target/arc/movh_cl-1.c: Extend test to cover
5792 little endian arc.
5793
5794 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5795 Alan Hayward <alan.hayward@arm.com>
5796 David Sherwood <david.sherwood@arm.com>
5797
5798 * expr.c (emit_group_load_1): Tighten check for whether an
5799 access involves only one operand of a CONCAT. Use extract_bit_field
5800 for constants if the bit range does span the whole operand.
5801
5802 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5803 Alan Hayward <alan.hayward@arm.com>
5804 David Sherwood <david.sherwood@arm.com>
5805
5806 * rtlanal.c (rtx_addr_can_trap_p_1): Handle unknown sizes.
5807
5808 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5809 Alan Hayward <alan.hayward@arm.com>
5810 David Sherwood <david.sherwood@arm.com>
5811
5812 * tree-vect-loop.c (vect_transform_loop): Protect the updates of
5813 all three iteration counts with an any_* test. Use a single update
5814 for each count. Fix the calculation of nb_iterations_estimate.
5815
5816 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5817
5818 * config/pdp11/pdp11.c: Include dbxout.h.
5819
5820 2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
5821
5822 * config/arc/arc.c (arc_loop_hazard): Add missing brackets.
5823
5824 2016-11-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5825
5826 PR target/78364
5827 * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the
5828 proper ranges for an SBFX instruction.
5829 (extzv_t2): Likewise for UBFX.
5830
5831 2016-11-16 Richard Biener <rguenther@suse.de>
5832
5833 PR tree-optimization/78348
5834 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMMOVE.
5835 (generate_memcpy_builtin): Honor PKIND_MEMCPY on the partition.
5836 (classify_partition): Set PKIND_MEMCPY if dependence analysis
5837 revealed no dependency, PKIND_MEMMOVE otherwise.
5838
5839 2016-11-16 Jakub Jelinek <jakub@redhat.com>
5840
5841 PR sanitizer/77823
5842 * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
5843 it points to non-NULL tree, use it instead of ubsan_create_data.
5844 (instrument_si_overflow): Handle vector signed integer overflow
5845 checking.
5846 * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
5847 * tree-vrp.c (simplify_internal_call_using_ranges): Punt for
5848 vector IFN_UBSAN_CHECK_*.
5849 * internal-fn.c (expand_addsub_overflow): Add DATAP argument,
5850 pass it through to ubsan_build_overflow_builtin.
5851 (expand_neg_overflow, expand_mul_overflow): Likewise.
5852 (expand_vector_ubsan_overflow): New function.
5853 (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
5854 expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
5855 (expand_arith_overflow): Adjust expand_*_overflow callers.
5856
5857 2016-11-16 Matthias Klose <doko@ubuntu.com>
5858
5859 * doc/install.texi: Remove references to java/libjava.
5860
5861 2016-11-16 Kugan Vivekanandarajah <kuganv@linaro.org>
5862
5863 * tree-ssa-coalesce.c (register_default_def): Remove
5864 register_ssa_partition.
5865 (create_outofssa_var_map): Likewise.
5866 * tree-ssa-live.c (register_ssa_partition_check): Remove.
5867 * tree-ssa-live.h (register_ssa_partition): Likewise.
5868
5869 2016-11-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
5870
5871 * genattrtab.c (attr_rtx_1): Avoid allocating new rtx objects.
5872 Clear ATTR_CURR_SIMPLIFIED_P for re-used binary rtx objects.
5873 Use DEF_ATTR_STRING for string arguments. Use RTL_HASH for
5874 integer arguments. Only set ATTR_PERMANENT_P on newly hashed
5875 rtx when all sub-rtx are also permanent.
5876 (attr_eq): Simplify.
5877 (attr_copy_rtx): Remove.
5878 (make_canonical, get_attr_value): Use attr_equal_p.
5879 (copy_boolean): Rehash NOT.
5880 (simplify_test_exp_in_temp,
5881 optimize_attrs): Remove call to attr_copy_rtx.
5882 (attr_alt_intersection, attr_alt_union,
5883 attr_alt_complement, mk_attr_alt): Rehash EQ_ATTR_ALT.
5884 (make_automaton_attrs): Use attr_eq.
5885
5886 2016-11-15 Matthias Klose <doko@ubuntu.com>
5887
5888 * doc/install.texi: Remove references to java/libjava.
5889 * doc/sourcebuild.texi: Likewise.
5890 * doc/invoke.texi: Likewise.
5891 * doc/standards.texi: Likewise.
5892
5893 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5894 Alan Hayward <alan.hayward@arm.com>
5895 David Sherwood <david.sherwood@arm.com>
5896
5897 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use Pmode instead
5898 of VOIDmode.
5899 * config/ia64/ia64.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5900 * config/iq2000/iq2000.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5901 * config/m68k/m68k.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5902 * config/microblaze/microblaze.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5903 * config/mips/mips.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5904 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5905 * config/nios2/nios2.h (INCOMING_RETURN_ADDR_RTX): Likewise.
5906
5907 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5908 Alan Hayward <alan.hayward@arm.com>
5909 David Sherwood <david.sherwood@arm.com>
5910
5911 * dce.c (check_argument_store): Pass the size instead of
5912 the memory reference.
5913 (find_call_stack_args): Pass MEM_SIZE to check_argument_store.
5914
5915 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5916 Alan Hayward <alan.hayward@arm.com>
5917 David Sherwood <david.sherwood@arm.com>
5918
5919 * alias.c (canon_rtx): Use simplify_gen_binary.
5920
5921 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5922 Alan Hayward <alan.hayward@arm.com>
5923 David Sherwood <david.sherwood@arm.com>
5924
5925 * rtl.h (load_extend_op): Declare.
5926 * rtlanal.c (load_extend_op): New function.
5927 (nonzero_bits1): Use it.
5928 (num_sign_bit_copies1): Likewise.
5929 * cse.c (cse_insn): Likewise.
5930 * fold-const.c (fold_single_bit_test): Likewise.
5931 (fold_unary_loc): Likewise.
5932 * fwprop.c (free_load_extend): Likewise.
5933 * postreload.c (reload_cse_simplify_set): Likewise.
5934 (reload_cse_simplify_operands): Likewise.
5935 * combine.c (try_combine): Likewise.
5936 (simplify_set): Likewise. Remove redundant SUBREG_BYTE and
5937 subreg_lowpart_p checks.
5938
5939 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5940 Alan Hayward <alan.hayward@arm.com>
5941 David Sherwood <david.sherwood@arm.com>
5942
5943 * combine.c (simplify_shift_const_1): Use the number of bits
5944 in the inner mode to determine the range of the shift.
5945 When handling shifts of vectors, skip any rules that apply
5946 only to scalars.
5947
5948 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
5949 Alan Hayward <alan.hayward@arm.com>
5950 David Sherwood <david.sherwood@arm.com>
5951
5952 * rtlanal.c (num_sign_bit_copies1): Calculate bitwidth after
5953 handling VOIDmode.
5954
5955 2016-11-15 Matthias Klose <doko@ubuntu.com>
5956
5957 * doc/install.texi: Remove references to gcj/libjava.
5958 * doc/invoke.texi: Likewise.
5959
5960 2016-11-15 Jeff Law <law@redhat.com>
5961
5962 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove unneeded
5963 parameter. Callers changed.
5964 (check-subpath_and_update_thread_path): Extracted from
5965 fsm_find_control_statement_thread_paths.
5966 (handle_phi, handle_assignment, handle_assignment_p): Likewise.
5967 (handle_phi, handle_assignment): Allow any constant node, not
5968 just INTEGER_CST.
5969
5970 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com>
5971
5972 * config/arc/arc-arch.h: New file.
5973 * config/arc/arc-arches.def: Likewise.
5974 * config/arc/arc-cpus.def: Likewise.
5975 * config/arc/arc-options.def: Likewise.
5976 * config/arc/t-multilib: Likewise.
5977 * config/arc/genmultilib.awk: Likewise.
5978 * config/arc/genoptions.awk: Likewise.
5979 * config/arc/arc-tables.opt: Likewise.
5980 * config/arc/driver-arc.c: Likewise.
5981 * testsuite/gcc.target/arc/nps400-cpu-flag.c: Likewise.
5982 * common/config/arc/arc-common.c (arc_handle_option): Trace
5983 toggled options.
5984 * config.gcc (arc*-*-*): Add arc-tables.opt to arc's extra
5985 options; check for supported cpu against arc-cpus.def file.
5986 (arc*-*-elf*, arc*-*-linux-uclibc*): Use new make fragment; define
5987 TARGET_CPU_BUILD macro; add driver-arc.o as an extra object.
5988 * config/arc/arc-c.def: Add emacs local variables.
5989 * config/arc/arc-opts.h (processor_type): Use arc-cpus.def file.
5990 (FPU_FPUS, FPU_FPUD, FPU_FPUDA, FPU_FPUDA_DIV, FPU_FPUDA_FMA)
5991 (FPU_FPUDA_ALL, FPU_FPUS_DIV, FPU_FPUS_FMA, FPU_FPUS_ALL)
5992 (FPU_FPUD_DIV, FPU_FPUD_FMA, FPU_FPUD_ALL): New defines.
5993 (DEFAULT_arc_fpu_build): Define.
5994 (DEFAULT_arc_mpy_option): Define.
5995 * config/arc/arc-protos.h (arc_init): Delete.
5996 * config/arc/arc.c (arc_cpu_name): New variable.
5997 (arc_selected_cpu, arc_selected_arch, arc_arcem, arc_archs)
5998 (arc_arc700, arc_arc600, arc_arc601): New variable.
5999 (arc_init): Add static; remove selection of default tune value,
6000 cleanup obsolete error messages.
6001 (arc_override_options): Make use of .def files for selecting the
6002 right cpu and option configurations.
6003 * config/arc/arc.h (stdbool.h): Include.
6004 (TARGET_CPU_DEFAULT): Define.
6005 (CPP_SPEC): Remove mcpu=NPS400 handling.
6006 (arc_cpu_to_as): Declare.
6007 (EXTRA_SPEC_FUNCTIONS): Define.
6008 (OPTION_DEFAULT_SPECS): Likewise.
6009 (ASM_DEFAULT): Remove.
6010 (ASM_SPEC): Use arc_cpu_to_as.
6011 (DRIVER_SELF_SPECS): Remove deprecated options.
6012 (arc_base_cpu): Declare.
6013 (TARGET_ARC600, TARGET_ARC601, TARGET_ARC700, TARGET_EM)
6014 (TARGET_HS, TARGET_V2, TARGET_ARC600): Make them use arc_base_cpu
6015 variable.
6016 (MULTILIB_DEFAULTS): Use ARC_MULTILIB_CPU_DEFAULT.
6017 * config/arc/arc.md (attr_cpu): Remove.
6018 * config/arc/arc.opt (mno-mpy): Deprecate.
6019 (mcpu=ARC600, mcpu=ARC601, mcpu=ARC700, mcpu=NPS400, mcpu=ARCEM)
6020 (mcpu=ARCHS): Remove.
6021 (mcrc, mdsp-packa, mdvbf, mmac-d16, mmac-24, mtelephony, mrtsc):
6022 Deprecate.
6023 (mbarrel_shifte, mspfp_, mdpfp_, mdsp_pack, mmac_): Remove.
6024 (arc_fpu): Use new defines.
6025 (mpy-option): Change to use numeric or string like inputs.
6026 * config/arc/t-arc (driver-arc.o): New target.
6027 (arc-cpus, t-multilib, arc-tables.opt): Likewise.
6028 * config/arc/t-arc-newlib: Delete.
6029 * config/arc/t-arc-uClibc: Renamed to t-uClibc.
6030 * doc/invoke.texi (ARC): Update arc options.
6031
6032 2016-11-15 Maciej W. Rozycki <macro@imgtec.com>
6033
6034 * config/mips/mips.c (mips16_emit_constants): Emit `consttable'
6035 insn at the beginning of the constant pool.
6036 (mips_insert_insn_pseudos): New function.
6037 (mips_machine_reorg2): Call it.
6038 * config/mips/mips.md (unspec): Add UNSPEC_CONSTTABLE and
6039 UNSPEC_INSN_PSEUDO enum values.
6040 (insn_pseudo, consttable): New insns.
6041
6042 2016-11-15 Michael Matz <matz@suse.de>
6043
6044 PR missed-optimization/77881
6045 * combine.c (simplify_comparison): Remove useless subregs
6046 also inside the loop, not just after it.
6047 (make_compound_operation): Recognize some subregs as being
6048 masking as well.
6049
6050 2016-11-15 Richard Sandiford <richard.sandiford@arm.com>
6051 Alan Hayward <alan.hayward@arm.com>
6052 David Sherwood <david.sherwood@arm.com>
6053
6054 * dwarf2out.c (mem_loc_descriptor): Fix GET_MODE_CLASS/
6055 GET_MODE_SIZE typo.
6056
6057 2016-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6058
6059 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Add support
6060 for using xxinsertw and vinsert{b,h} on ISA 3.0.
6061
6062 * config/rs6000/vsx.md (vsx_extract_<mode>): Update comment.
6063 (vsx_set_<mode>_p9): New insn to generate xxinsertw and
6064 vinsert{b,h} on ISA 3.0.
6065
6066 2016-11-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
6067
6068 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
6069 and cmpnop in two steps: first the ones not accessed in original gimple
6070 expression in a endian independent way and then the ones not accessed
6071 in the final result in an endian-specific way.
6072 (bswap_replace): Stop doing big endian adjustment.
6073
6074 2016-11-14 Uros Bizjak <ubizjak@gmail.com>
6075
6076 * config/i386/i386.md (*andndi3_doubleword): Merge operand constraints.
6077 (*ashl<mode>3_doubleword): Ditto.
6078
6079 2016-11-14 Martin Liska <mliska@suse.cz>
6080
6081 * tree-ssa-dse.c (dse_optimize_stmt): Remove quotes and extra new line.
6082
6083 2016-11-14 Prasad Ghangal <prasad.ghangal@gmail.com>
6084 Richard Biener <rguenther@suse.de>
6085
6086 * doc/invoke.texi (fgimple): Document.
6087 * dumpfile.h (TDF_GIMPLE): Add.
6088 * dumpfile.c (dump_options): Add gimple.
6089 * gimple-pretty-print.c (dump_gimple_switch): Adjust dump
6090 for TDF_GIMPLE.
6091 (dump_gimple_label): Likewise.
6092 (dump_gimple_phi): Likewise.
6093 (dump_gimple_bb_header): Likewise.
6094 (dump_phi_nodes): Likewise.
6095 (pp_cfg_jump): Likewise. Pass in dump flags.
6096 (dump_implicit_edges): Adjust.
6097 * passes.c (pass_init_dump_file): Do not dump function header
6098 for TDF_GIMPLE.
6099 * tree-cfg.c (dump_function_to_file): Dump function return type
6100 and __GIMPLE keyword for TDF_GIMPLE. Change guard for dumping
6101 GIMPLE stmts.
6102 * tree-pretty-print.c (dump_decl_name): Adjust dump for TDF_GIMPLE.
6103 (dump_generic_node): Likewise.
6104 * function.h (struct function): Add pass_startwith member.
6105 * passes.c (execute_one_pass): Implement startwith.
6106 * tree-ssanames.c (make_ssa_name_fn): New argument, check for version
6107 and assign proper version for parsed ssa names.
6108 * tree-ssanames.h (make_ssa_name_fn): Add new argument to the function.
6109 * internal-fn.c (expand_PHI): New function.
6110 * internal-fn.h (expand_PHI): Declared here.
6111 * internal-fn.def: New defination for PHI.
6112 * tree-cfg.c (lower_phi_internal_fn): New function.
6113 (build_gimple_cfg): Call it.
6114 (verify_gimple_call): Condition for passing label as arg in internal
6115 function PHI.
6116 * tree-into-ssa.c (rewrite_add_phi_arguments): Handle already
6117 present PHIs with arguments.
6118
6119 2016-11-14 Martin Liska <mliska@suse.cz>
6120
6121 PR bootstrap/78069
6122 * common.opt: Add prefer-atomic as a new enum value for
6123 -fprofile-update.
6124 * coretypes.h: Likewise.
6125 * doc/invoke.texi: Document the new option value.
6126 * gcc.c: Replace atomic with prefer-atomic. Remove warning.
6127 * tree-profile.c (tree_profiling): Select default value
6128 of -fprofile-update when 'prefer-atomic' is selected.
6129
6130 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
6131
6132 * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm...
6133 (cortex_a57_alu_shift): ...here.
6134
6135 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
6136
6137 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3)
6138 Use bfx attribute.
6139 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
6140 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
6141 (<optab>si3_insn_uxtw): Likewise.
6142 (<optab><mode>3_insn): Likewise.
6143 (<ANY_EXTEND:optab><GPI:mode>_ashl<SHORT:mode>): Likewise.
6144 (zero_extend<GPI:mode>_lshr<SHORT:mode>): Likewise.
6145 (extend<GPI:mode>_ashr<SHORT:mode>): Likewise.
6146 (<optab><mode>): Likewise.
6147 (insv<mode>): Likewise.
6148 (andim_ashift<mode>_bfiz): Likewise.
6149 * config/aarch64/thunderx.md (thunderx_shift): Add bfx.
6150 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
6151 * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx.
6152 * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx.
6153 (exynos_m1_alu_p): Likewise.
6154 * config/arm/types.md: Add bfx.
6155 * config/arm/xgene1.md (xgene1_bfm): Add bfx.
6156
6157 2016-11-14 Wilco Dijkstra <wdijkstr@arm.com>
6158
6159 * config/aarch64/aarch64.c (cortexa57_vector_cost):
6160 Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost.
6161
6162 2016-11-14 Richard Biener <rguenther@suse.de>
6163
6164 PR tree-optimization/78312
6165 * gimple-ssa-backprop.c (backprop::prepare_change): Reset
6166 flow-sensitive info.
6167
6168 2016-11-14 Georg-Johann Lay <avr@gjlay.de>
6169
6170 PR target/78093
6171 * doc/invoke.texi (AVR Options) [-mabsdata]: Document new option.
6172 * config/avr/avr.opt (-mabsdata): New option.
6173 * config/avr/avr-arch.h (avr_device_specific_features): Add AVR_ISA_LDS.
6174 * config/avr/avr.c (avr_encode_section_info) [AVR_TINY]: If
6175 -mabsdata & symbol is not progmem, tag as AVR_SYMBOL_FLAG_TINY_ABSDATA.
6176 * config/avr/avr-mcus.def (attiny4/5/9/10/20): Use AVR_ISA_LDS.
6177 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Print cc1_absdata
6178 spec depending on AVR_ISA_LDS.
6179 * config/avr/specs.h (CC1_SPEC): Enhanced by cc1_absdata spec.
6180
6181 2016-11-13 Jakub Jelinek <jakub@redhat.com>
6182
6183 * match.pd: Don't try to compare addresses of variables with
6184 DECL_VALUE_EXPR.
6185
6186 2016-11-13 Kugan Vivekanandarajah <kuganv@linaro.org>
6187
6188 * ipa-cp.c (ipa_get_jf_pass_through_result): Skip unary expressions.
6189 (propagate_vr_accross_jump_function): Handle unary expressions.
6190 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
6191 (load_from_param_1): New.
6192 (load_from_unmodified_param): Factor common part into load_from_param_1.
6193 (load_from_param): New.
6194 (compute_complex_assign_jump_func): Handle unary expressions.
6195 (update_jump_functions_after_inlining): Likewise.
6196 (ipa_write_jump_function): Likewise.
6197 (ipa_read_jump_function): Likewise.
6198
6199 2016-11-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6200
6201 PR c/35503
6202 * doc/invoke.texi: Document Wrestrict.
6203 * pretty-print.c (pp_format): Add case for "Z" specifier.
6204 (test_pp_format): Test "Z" specifier.
6205
6206 2016-11-13 Eric Botcazou <ebotcazou@adacore.com>
6207
6208 * ipa-icf.c (sem_function::merge): Do not create a wrapper also if the
6209 original function needs a static chain.
6210
6211 2016-11-13 David Edelsohn <dje.gcc@gmail.com>
6212
6213 PR target/78336
6214 * config/rs6000/rs6000.c (rs6000_asm_weaken_decl): Protect
6215 ASM_OUTPUT_DEF.
6216
6217 2016-11-12 Segher Boessenkool <segher@kernel.crashing.org>
6218
6219 PR target/77957
6220 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
6221 return early if !optional_tbtab.
6222
6223 2016-11-11 Eric Botcazou <ebotcazou@adacore.com>
6224
6225 PR rtl-optimization/59461
6226 * doc/rtl.texi (paradoxical subregs): Add missing word.
6227 * combine.c (reg_nonzero_bits_for_combine): Do not discard results
6228 in modes with precision larger than that of last_set_mode.
6229 * rtlanal.c (nonzero_bits1) <SUBREG>: If WORD_REGISTER_OPERATIONS is
6230 set and LOAD_EXTEND_OP is appropriate, propagate results from inner
6231 REGs to paradoxical SUBREGs.
6232 (num_sign_bit_copies1) <SUBREG>: Likewise. Check that the mode is not
6233 larger than a word before invoking LOAD_EXTEND_OP on it.
6234
6235 2016-11-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6236
6237 PR target/78243
6238 * config/rs6000/vsx.md (vsx_extract_<mode>_p9): Correct the
6239 element order for little endian ordering.
6240
6241 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Use
6242 VECTOR_ELT_ORDER_BIG and not BYTES_BIG_ENDIAN to adjust element
6243 number.
6244
6245 2016-11-11 Uros Bizjak <ubizjak@gmail.com>
6246
6247 PR target/78310
6248 * config/i386/i386.md (rotate to rotatex splitter): Avoid overflow
6249 when calculating operand 2.
6250 (rotate to rotatex zext splitter): Ditto.
6251
6252 2016-11-11 Jeff Law <law@redhat.com>
6253
6254 * gimple-ssa-isolate-paths.c (is_divmod_with_given_divisor): New
6255 function.
6256 (stmt_uses_name_in_undefined_way): New function, extracted from
6257 find_implicit_erroneous_behavior and extended for div/mod case.
6258 (stmt_uses_0_or_null_in_undefined_way): New function, extracted from
6259 find_explicit_erroneous_behavior and extended for div/mod case.
6260 (find_implicit_erroneous_behavior): Use new helper function.
6261 (find_explicit_erroneous_behavior): Use new helper function.
6262
6263 2016-11-11 Richard Biener <rguenther@suse.de>
6264
6265 PR tree-optimization/71575
6266 * graphite-isl-ast-to-gimple.c (copy_cond_phi_nodes): Remove
6267 bogus assert.
6268
6269 2016-11-11 Richard Biener <rguenther@suse.de>
6270
6271 PR middle-end/78295
6272 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
6273 about uninitialized destination arg of BIT_INSERT_EXPR.
6274
6275 2016-11-10 Sandra Loosemore <sandra@codesourcery.com>
6276
6277 PR c/37998
6278 * doc/invoke.texi (Code Gen Options) [-fno-common]: Use correct
6279 terminology. Expand to remove ambiguity.
6280
6281 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
6282
6283 PR rtl-optimization/78232
6284 * combine.c (try_combine): Add a big comment about why reusing i2dest
6285 is undesirable.
6286 (change_zero_ext): Do not call simplify_gen_binary, do the
6287 simplifications manually.
6288
6289 2016-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6290
6291 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If ISA 3.0,
6292 enable HImode and QImode to go in vector registers by default if
6293 the -mvsx-small-integer option is enabled.
6294 (rs6000_secondary_reload_simple_move): Likewise.
6295 (rs6000_preferred_reload_class): Don't force integer constants to
6296 be loaded into vector registers that we can easily make into
6297 memory (or being created in the GPRs and moved over with direct move).
6298 * config/rs6000/vsx.md (UNSPEC_P9_MEMORY): Delete, no longer used.
6299 (vsx_extract_<mode>): Rework V4SImode, V8HImode, and V16QImode
6300 vector extraction on ISA 3.0 when the scalar integer can be
6301 allocated in vector registers. Generate the VEC_SELECT directy,
6302 and don't use UNSPEC's to avoid having the scalar type in a vector
6303 register. Make the expander target registers, and let the
6304 combiner fold in results storing to memory, if the machine
6305 supports stores.
6306 (vsx_extract_<mode>_di): Likewise.
6307 (vsx_extract_<mode>_p9): Likewise.
6308 (vsx_extract_<mode>_di_p9): Likewise.
6309 (vsx_extract_<mode>_store_p9): Likewise.
6310 (vsx_extract_si): Likewise.
6311 (vsx_extract_<mode>_p8): Likewise.
6312 (p9_lxsi<wd>zx): Delete, no longer used.
6313 (p9_stxsi<wd>x): Likewise.
6314 * config/rs6000/rs6000.md (INT_ISA3): New mode iterator for
6315 integers in vector registers for ISA 3.0.
6316 (QHI): Update comment.
6317 (zero_extendqi<mode>2): Add support for ISA 3.0 scalar load or
6318 vector extract instructions in sign/zero extend.
6319 (zero_extendhi<mode>): Likewise.
6320 (extendqi<mode>): Likewise.
6321 (extendhi<mode>2): Likewise.
6322 (HImode splitter for load/sign extend in vector register): Likewise.
6323 (float<QHI:mode><FP_ISA3:mode>2): Eliminate old method of
6324 optimizing floating point conversions to/from small data types and
6325 rewrite it to support QImode/HImode being allowed in vector
6326 registers on ISA 3.0.
6327 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
6328 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
6329 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
6330 (fix_trunc<SFDF:mode><QHI:mode>2): Likewise.
6331 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
6332 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
6333 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
6334 VSPLITISW on ISA 2.07.
6335 (movhi_internal): Combine movhi_internal and movqi_internal into
6336 one mov<mode>_internal with an iterator. Add support for QImode
6337 and HImode being allowed in vector registers. Make large number
6338 of attributes and constraints easier to read.
6339 (movqi_internal): Likewise.
6340 (mov<mode>_internal): Likewise.
6341 (movdi_internal64): Fix constraint to allow loading -16..15 with
6342 VSPLITISW on ISA 2.07.
6343 (integer XXSPLTIB splitter): Add support for QI, HI, and SImode as
6344 well as DImode.
6345
6346 2016-11-10 Pat Haugen <pthaugen@us.ibm.com>
6347
6348 PR rtl-optimization/78241
6349 * loop-unroll.c (unroll_loop_runtime_iterations): Don't adjust 'niter',
6350 but emit initial peel copy if niter expr is not reliable.
6351
6352 2016-11-10 Segher Boessenkool <segher@kernel.crashing.org>
6353
6354 * dwarf2cfi.c (dump_cfi_row): Add forward declaration.
6355 (maybe_record_trace_start): If the CFI is different on the new and
6356 old paths, print out both to the dump file before ICEing.
6357
6358 2016-11-10 Vladimir Makarov <vmakarov@redhat.com>
6359
6360 * target.def (additional_allocno_class_p): New.
6361 * hooks.h (hook_bool_reg_class_t_false): New prototype.
6362 * hooks.c (hook_bool_reg_class_t_false): New.
6363 * ira.c (setup_allocno_and_important_classes): Use the new hook.
6364 * doc/tm.texi.in (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Add it.
6365 * doc/tm.texi: Update.
6366
6367 2016-11-10 Jason Merrill <jason@redhat.com>
6368
6369 * gengtype.c (new_structure): Append to structures list.
6370 (find_structure): Likewise.
6371
6372 2016-11-10 Jim Wilson <jim.wilson@linaro.org>
6373
6374 * tree-loop-distribution.c (pg_add_dependence_edges): Return 2 if
6375 this_dir is 2. Check for this_dir non-zero before dir != this_dir
6376 check.
6377
6378 2016-11-10 Jakub Jelinek <jakub@redhat.com>
6379
6380 * omp-low.c (lower_omp_target): Fix up argument to is_reference.
6381 (expand_omp_ordered_sink): Handle TREE_PURPOSE of deps being
6382 TRUNC_DIV_EXPR.
6383 * gimplify.c (gimplify_scan_omp_clauses): Likewise. Set
6384 ctx->target_map_scalars_firstprivate on OMP_TARGET even for Fortran.
6385 Remove omp_no_lastprivate callers. Propagate lastprivate on combined
6386 teams distribute parallel for simd even to distribute and teams
6387 construct. For OMP_CLAUSE_DEPEND add missing break at the end of
6388 OMP_CLAUSE_DEPEND_SINK case.
6389 (omp_notice_variable): Use lang_hooks.decls.omp_scalar_p.
6390 (omp_no_lastprivate): Removed.
6391 (gimplify_adjust_omp_clauses): Remove omp_no_lastprivate callers.
6392 (gimplify_omp_for): Likewise.
6393 (computable_teams_clause): Fail for automatic vars from current
6394 function not yet seen in bind expr.
6395 * langhooks.c (lhd_omp_scalar_p): New function.
6396 * langhooks.h (struct lang_hooks_for_decls): Add omp_scalar_p.
6397 * varpool.c (varpool_node::get_create): Set node->offloading
6398 even for DECL_EXTERNAL decls.
6399 * langhooks-def.h (lhd_omp_scalar_p): New prototype.
6400 (LANG_HOOKS_OMP_SCALAR_P): Define.
6401 (LANG_HOOKS_DECLS): Use it.
6402
6403 2016-11-10 Martin Liska <mliska@suse.cz>
6404
6405 PR sanitizer/78270
6406 * gimplify.c (gimplify_switch_expr): Create live_switch_vars
6407 only when SWITCH_BODY is a BIND_EXPR.
6408
6409 2016-11-10 Pierre-Marie de Rodat <derodat@adacore.com>
6410
6411 PR debug/78112
6412 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
6413 on the context only when it has no DIE yet.
6414
6415 2016-11-10 Richard Earnshaw <rearnsha@arm.com>
6416
6417 * arm.h (target_cpus): Delete.
6418 * arm-opts.h (enum processor_type): Prefix entires with TARGET_CPU_.
6419 * arm.c (all_cores): Prefix IDENT with TARGET_CPU_.
6420 (all_architectures): Likewise.
6421 (arm_option_override): Adjust use of CPU enums.
6422 (arm_sched_reorder): Likewise.
6423 * vfp.md (movdi_vfp, movdi_vfp_cortexa8): Likewise.
6424 * arm.opt (mcpu, mtune): Adjust use of CPU enums.
6425 * arm/genopt.sh (processor_type): Prefix enumeration entries with
6426 TARGET_CPU_.
6427 * arm-tables.opt: Regenerated.
6428
6429 2016-11-10 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org>
6430
6431 * config/aarch64/aarch64-cores.def (qdf24xx): Update part number.
6432 (falkor): New core.
6433 * config/aarch64/aarch64-tune.md: Regenerated.
6434 * config/arm/arm-cores.def (falkor): New core.
6435 * config/arm/arm-tables.opt: Regenerated.
6436 * config/arm/arm-tune.md: Regenerated.
6437 * config/arm/bpabi.h (BE8_LINK_SPEC): Add falkor support.
6438 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
6439 * doc/invoke.texi (AArch64 Options/-mtune): Document it.
6440 (ARM Options/-mtune): Likewise.
6441
6442 2016-11-10 Kugan Vivekanandarajah <kuganv@linaro.org>
6443
6444 Revert
6445 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
6446
6447 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
6448 (propagate_vr_accross_jump_function): Likewise.
6449 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
6450 (load_from_param_1): New.
6451 (load_from_unmodified_param): Factor common part into load_from_param_1.
6452 (load_from_param): New.
6453 (compute_complex_assign_jump_func): Handle unary expressions.
6454 (ipa_write_jump_function): Likewise.
6455 (ipa_read_jump_function): Likewise.
6456
6457 2016-11-09 Segher Boessenkool <segher@kernel.crashing.org>
6458
6459 * simplify-rtx.c (simplify_binary_operation_1): Simplify
6460 (xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and
6461 (xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C
6462 is a const_int.
6463
6464 2016-11-09 David Malcolm <dmalcolm@redhat.com>
6465
6466 * print-rtl-function.c: Include varasm.h.
6467 (print_any_param_name): New function.
6468 (print_param): New function.
6469 (print_rtx_function): Call print_param for each argument.
6470 * print-rtl.c (rtx_writer::finish_directive): New function.
6471 * print-rtl.h (rtx_writer::finish_directive): New decl.
6472
6473 2016-11-09 Uros Bizjak <ubizjak@gmail.com>
6474
6475 PR target/78262
6476 * config/i386/i386.md (*<shift_insn><mode>3_doubleword): Mark
6477 operand 0 as earlyclobber.
6478 (*ashl<mode>3_doubleword): Ditto for all operand 0 alternatives.
6479
6480 2016-11-09 Martin Liska <mliska@suse.cz>
6481
6482 * fold-const-call.c (fold_const_call): Fix up type of s0 and s1.
6483
6484 2016-11-09 Jakub Jelinek <jakub@redhat.com>
6485
6486 PR target/77718
6487 * builtins.c (expand_builtin_memcmp): Formatting fix.
6488
6489 * flag-types.h (enum sanitize_code): Add SANITIZE_SHIFT_BASE
6490 and SANITIZE_SHIFT_EXPONENT, change SANITIZE_SHIFT to bitwise
6491 or of them, renumber other enumerators.
6492 * opts.c (sanitizer_opts): Add shift-base and shift-exponent.
6493 * doc/invoke.texi: Document -fsanitize=shift-base and
6494 -fsanitize-shift-exponent, document -fsanitize=shift as
6495 having those 2 suboptions.
6496
6497 2016-11-09 Richard Biener <rguenther@suse.de>
6498
6499 * fold-const.c (tree_swap_operands_p): Remove unused arg.
6500 * fold-const.c (tree_swap_operands_p): Likewise.
6501 (fold_binary_loc): Adjust.
6502 (fold_ternary_loc): Likewise.
6503 * genmatch.c (dt_operand::gen_gimple_exp): Likewise.
6504 * gimple-fold.c (fold_stmt_1): Likewise.
6505 * gimple-match-head.c (gimple_resimplify2): Likewise.
6506 (gimple_resimplify3): Likewise.
6507 (gimple_simplify): Likewise.
6508 * tree-ssa-dom.c (record_equality): Likewise.
6509 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Likewise.
6510 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
6511 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): Likewise.
6512
6513 2016-11-09 Richard Biener <rguenther@suse.de>
6514
6515 * tree-ssa-dom.c (canonicalize_comparison): Remove.
6516 (optimize_stmt): Remove redundant pre-propagation canonicalization
6517 of comparison operand order.
6518
6519 2016-11-09 Martin Liska <mliska@suse.cz>
6520
6521 * fold-const-call.c (fold_const_call): Fix the folding.
6522
6523 2016-11-09 Richard Biener <rguenther@suse.de>
6524
6525 * common.opt (flag_evaluation_order): Remove.
6526 * expr.c (expand_operands): Remove code guarded by
6527 flag_evaluation_order.
6528 * fold-const.c (reorder_operands_p): Remove, it always returns
6529 true.
6530 (negate_expr_p): Remove calls to reorder_operands_p.
6531 (fold_negate_expr): Likewise.
6532 (tree_swap_operands_p): Likewise.
6533 (fold_binary_loc): Likewise.
6534
6535 2016-11-09 Andreas Schwab <schwab@suse.de>
6536
6537 PR target/78254
6538 * config/m68k/m68k.md: Reject out-of-range bit pos in bit-fields
6539 insns operating on a register.
6540
6541 2016-11-09 Richard Biener <rguenther@suse.de>
6542
6543 PR tree-optimization/78007
6544 * tree-vect-stmts.c (vectorizable_bswap): New function.
6545 (vectorizable_call): Call vectorizable_bswap for
6546 BUILT_IN_BSWAP{16,32,64} if arguments are not promoted.
6547
6548 2016-11-09 Richard Biener <rguenther@suse.de>
6549
6550 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
6551 Look at the DR_BASE_ADDRESS object for forcing alignment.
6552
6553 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
6554
6555 * ipa-cp.c (ipa_get_jf_pass_through_result): Handle unary expressions.
6556 (propagate_vr_accross_jump_function): Likewise.
6557 * ipa-prop.c (ipa_set_jf_unary_pass_through): New.
6558 (load_from_param_1): New.
6559 (load_from_unmodified_param): Factor common part into load_from_param_1.
6560 (load_from_param): New.
6561 (compute_complex_assign_jump_func): Handle unary expressions.
6562 (ipa_write_jump_function): Likewise.
6563 (ipa_read_jump_function): Likewise.
6564
6565 2016-11-09 Kugan Vivekanandarajah <kuganv@linaro.org>
6566
6567 PR ipa/78121
6568 * ipa-cp.c (propagate_vr_accross_jump_function): Pass param type.
6569 Also fold constant passed as argument while computing value range.
6570 (propagate_constants_accross_call): Pass param type.
6571 * ipa-prop.c: export ipa_get_callee_param_type.
6572 * ipa-prop.h: export ipa_get_callee_param_type.
6573
6574 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
6575
6576 * asan.h (asan_intercepted_p): Handle BUILT_IN_STRCSPN,
6577 BUILT_IN_STRPBRK, BUILT_IN_STRSPN and BUILT_IN_STRSTR.
6578
6579 2016-11-09 Maxim Ostapenko <m.ostapenko@samsung.com>
6580
6581 * asan.h (ASAN_STACK_MAGIC_PARTIAL): Remove.
6582 * asan.c (ASAN_STACK_MAGIC_PARTIAL): Replace with
6583 ASAN_STACK_MAGIC_MIDDLE.
6584 (asan_global_struct): Increase the size of fields.
6585 (asan_add_global): Add new field constructor.
6586 * sanitizer.def (__asan_version_mismatch_check_v6): Replace with
6587 __asan_version_mismatch_check_v8.
6588
6589 2016-11-08 David Edelsohn <dje.gcc@gmail.com>
6590
6591 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO
6592 at runtime.
6593
6594 2016-11-08 Uros Bizjak <ubizjak@gmail.com>
6595
6596 PR target/70799
6597 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
6598 Handle ASHIFT and LSHIFTRT.
6599 (dimode_scalar_chain::compute_convert_gain): Ditto.
6600 (dimode_scalar_chain::convert_insn): Ditto.
6601
6602 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6603
6604 * gimple-ssa-store-merging.c: Include selftest.h
6605 (verify_array_eq): New function.
6606 (verify_shift_bytes_in_array): Likewise.
6607 (verify_shift_bytes_in_array_right): Likewise.
6608 (verify_clear_bit_region): Likewise.
6609 (verify_clear_bit_region_be): Likewise.
6610 (store_merging_c_tests): Likewise.
6611 * selftest.h (store_merging_c_tests): Declare prototype.
6612 * selftest-run-tests.c (selftest::run_tests): Run
6613 store_merging_c_tests.
6614
6615 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6616
6617 * config/arm/arm.opt (mold-rtx-costs): Delete.
6618 (mnew-generic-costs): Delete.
6619 * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field.
6620 * config/arm/arm.c (arm_rtx_costs_1): Delete.
6621 (arm_size_rtx_costs): Likewise.
6622 (arm_slowmul_rtx_costs): Likewise.
6623 (arm_fastmul_rtx_costs): Likewise.
6624 (arm_xscale_rtx_costs): Likewise.
6625 (arm_9e_rtx_costs): Likewise.
6626 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
6627 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
6628 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
6629 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
6630 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
6631 arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune,
6632 arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune,
6633 arm_cortex_m7_tune):
6634 Delete rtx_costs field.
6635 (arm_new_rtx_costs): Rename to...
6636 (arm_rtx_costs_internal): ... This.
6637 (arm_rtx_costs): Remove old way of doing rtx costs.
6638
6639 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6640
6641 * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs.
6642 (arm_fastmul_tune): Likewise.
6643 (arm_strongarm_tune): Likewise.
6644 (arm_xscale_tune): Likewise.
6645 (arm_9e_tune): Likewise.
6646 (arm_marvell_pj4_tune): Likewise.
6647 (arm_v6t2_tune): Likewise.
6648 (arm_v6m_tune): Likewise.
6649 (arm_fa726te_tune): Likewise.
6650
6651 2016-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6652
6653 PR tree-optimization/78234
6654 * gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
6655 in start != 0 case.
6656
6657 2016-11-08 Martin Liska <mliska@suse.cz>
6658
6659 PR testsuite/78242
6660 * dbgcnt.def: Add new debug counter asan_use_after_scope.
6661 * gimplify.c (gimplify_decl_expr): Do not sanitize vars
6662 with a value expr. Do not add artificial variables to
6663 live_switch_vars. Use the debug counter.
6664 (gimplify_target_expr): Use the debug counter.
6665 * internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
6666 * sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
6667 BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.
6668
6669 2016-11-08 Richard Biener <rguenther@suse.de>
6670
6671 * tree-vect-stmts.c (get_group_load_store_type): If the
6672 access is aligned do not trigger peeling for gaps.
6673 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
6674 force alignment of vars with DECL_USER_ALIGN.
6675
6676 2016-11-08 James Greenhalgh <james.greenhalgh@arm.com>
6677
6678 * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.
6679
6680 2016-11-08 Richard Biener <rguenther@suse.de>
6681
6682 PR tree-optimization/78205
6683 * tree-vect-stmts.c (vectorizable_load): Move check whether
6684 we may run into gaps when BB vectorizing SLP permutations ...
6685 * tree-vect-slp.c (vect_supported_load_permutation_p): ...
6686 here where we can do a more precise check.
6687
6688 2016-11-08 Richard Biener <rguenther@suse.de>
6689
6690 PR tree-optimization/78224
6691 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
6692 Split the fallthru edge in case its successor may have PHIs.
6693 Do not free dominance info.
6694
6695 2016-11-07 Jakub Jelinek <jakub@redhat.com>
6696
6697 PR target/78229
6698 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
6699 EH info even for bzhi and pdep/pext.
6700
6701 2016-11-07 Peter Bergner <bergner@vnet.ibm.com>
6702
6703 * config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
6704 INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
6705
6706 2016-11-07 Segher Boessenkool <segher@kernel.crashing.org>
6707
6708 * config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
6709 if appropriate.
6710 * config/rs6000/vector.md (div<mode>3): Ditto.
6711
6712 2016-11-07 David Edelsohn <dje.gcc@gmail.com>
6713
6714 * configure.ac (.hidden): Change to conftest_s string. Provide string
6715 for AIX assembler.
6716 (gcc_cv_ld_hidden): Yes for AIX.
6717 * configure: Regenerate.
6718
6719 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).
6720
6721 * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
6722 (rs6000_xcoff_asm_output_aligned_decl_common): Declare.
6723 * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
6724 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
6725 (ASM_OUTPUT_ALIGNED_COMMON): Delete.
6726 * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
6727 from #if to if.
6728 (rs6000_xcoff_visibility): New.
6729 (rs6000_xcoff_declare_function_name): Add visibility support.
6730 (rs6000_xcoff_asm_globalize_decl_name): New.
6731 (rs6000_xcoff_asm_output_aligned_decl_common): New.
6732 (rs6000_asm_weaken_decl): New.
6733 (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
6734 config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
6735 reference function.
6736
6737 2016-11-07 Jack Howarth <howarth.at.gcc@gmail.com>
6738
6739 PR driver/78206
6740 * incpath.c (remove_dup): Also silently ignore EPERM.
6741
6742 2016-11-07 Martin Jambor <mjambor@suse.cz>
6743
6744 * tree.c (verify_type_variant): Use pointer comparison to check that
6745 TYPE_SIZE_UNIT match.
6746
6747 2016-11-07 Jakub Jelinek <jakub@redhat.com>
6748
6749 PR target/77834
6750 * dse.c (dse_step5): Call scan_reads even if just
6751 insn_info->frame_read. Improve and fix dump file messages.
6752
6753 PR target/78227
6754 * config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
6755 cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
6756
6757 2016-11-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6758
6759 PR middle-end/35691
6760 * match.pd: Add following two patterns:
6761 (x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
6762 (x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.
6763
6764 2016-11-07 Bernd Schmidt <bschmidt@redhat.com>
6765
6766 * emit-rtl.c (emit_copy_of_insn_after): Duplicate notes in order.
6767 * sel-sched-ir.c (create_copy_of_insn_rtx): Likewise.
6768 * rtl.h (duplicate_reg_notes): Declare.
6769 * rtlanal.c (duplicate_reg_note): New function.
6770
6771 PR rtl-optimization/77309
6772 * combine.c (make_compound_operation): Allow EQ for IN_CODE, and
6773 don't assume an equality comparison for plain COMPARE.
6774 (simplify_comparison): Pass a more accurate code to
6775 make_compound_operation.
6776
6777 2016-11-07 Pat Haugen <pthaugen@us.ibm.com>
6778
6779 * target.def (compute_pressure_classes): New target hook.
6780 * doc/tm.texi.in: Document it.
6781 * doc/tm.texi: Regenerate.
6782 * ira.c (setup_pressure_classes): Call target hook if defined.
6783
6784 2016-11-07 David Malcolm <dmalcolm@redhat.com>
6785
6786 * print-rtl.c (rtx_writer::operand_has_default_value_p): New
6787 method.
6788 (rtx_writer::print_rtx): In compact mode, omit trailing operands
6789 that have the default values.
6790 * print-rtl.h (rtx_writer::operand_has_default_value_p): New
6791 method.
6792 * rtl-tests.c (selftest::test_dumping_insns): Remove empty
6793 label string from expected dump.
6794 (seltest::test_uncond_jump): Remove trailing "(nil)" for REG_NOTES
6795 from expected dump.
6796
6797 2016-11-07 Jakub Jelinek <jakub@redhat.com>
6798
6799 PR target/77834
6800 * alias.c (nonoverlapping_memrefs_p): If one decl is
6801 FUNCTION_DECL or LABEL_DECL and the other is not, return 1.
6802
6803 2016-11-07 Richard Biener <rguenther@suse.de>
6804
6805 PR target/78229
6806 * config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust
6807 EH info.
6808
6809 2016-11-07 Richard Biener <rguenther@suse.de>
6810
6811 PR tree-optimization/78218
6812 * gimple-ssa-store-merging.c
6813 (pass_store_merging::terminate_all_aliasing_chains):
6814 Drop unused argument, fix alias check to also consider uses.
6815 (pass_store_merging::execute): Adjust.
6816
6817 2016-11-07 Richard Biener <rguenther@suse.de>
6818
6819 PR tree-optimization/78228
6820 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing
6821 undefined behavior.
6822
6823 2016-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6824
6825 PR target/77822
6826 * config/aarch64/aarch64.md (*tb<optab><mode>1): Use
6827 aarch64_simd_shift_imm_<mode> predicate for operand 1.
6828 (<optab>, ANY_EXTRACT): Use tighter predicates on operands 2 and 3
6829 to restrict them to an appropriate range and add FAIL check if the
6830 region they specify is out of range. Delete useless constraint
6831 strings.
6832 (*<optab><mode>, ANY_EXTRACT): Add appropriate predicates on operands
6833 2 and 3 to restrict their range and add pattern predicate.
6834
6835 2016-11-07 Martin Liska <mliska@suse.cz>
6836
6837 * asan.c (enum asan_check_flags): Move the enum to header file.
6838 (asan_init_shadow_ptr_types): Make type creation more generic.
6839 (shadow_mem_size): New function.
6840 (asan_emit_stack_protection): Use newly added ASAN_SHADOW_GRANULARITY.
6841 Rewritten stack unpoisoning code.
6842 (build_shadow_mem_access): Add new argument return_address.
6843 (instrument_derefs): Instrument local variables if use after scope
6844 sanitization is enabled.
6845 (asan_store_shadow_bytes): New function.
6846 (asan_expand_mark_ifn): Likewise.
6847 (asan_sanitize_stack_p): Moved from asan_sanitize_stack_p.
6848 * asan.h (enum asan_mark_flags): Moved here from asan.c
6849 (asan_protect_stack_decl): Protect all declaration that need
6850 to live in memory.
6851 (asan_sanitize_use_after_scope): New function.
6852 (asan_no_sanitize_address_p): Likewise.
6853 * cfgexpand.c (partition_stack_vars): Consider
6854 asan_sanitize_use_after_scope in condition.
6855 (expand_stack_vars): Likewise.
6856 * common.opt (-fsanitize-address-use-after-scope): New option.
6857 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
6858 Explain the parameter.
6859 * flag-types.h (enum sanitize_code): Define SANITIZE_USE_AFTER_SCOPE.
6860 * gimplify.c (build_asan_poison_call_expr): New function.
6861 (asan_poison_variable): Likewise.
6862 (gimplify_bind_expr): Generate poisoning/unpoisoning for local
6863 variables that have address taken.
6864 (gimplify_decl_expr): Likewise.
6865 (gimplify_target_expr): Likewise for C++ temporaries.
6866 (sort_by_decl_uid): New function.
6867 (gimplify_expr): Unpoison all variables for a label we can jump
6868 from outside of a scope.
6869 (gimplify_switch_expr): Unpoison variables defined in the switch
6870 context.
6871 (gimplify_function_tree): Clear asan_poisoned_variables.
6872 (asan_poison_variables): New function.
6873 (warn_switch_unreachable_r): Handle IFN_ASAN_MARK.
6874 * internal-fn.c (expand_ASAN_MARK): New function.
6875 * internal-fn.def (ASAN_MARK): Declare.
6876 * opts.c (finish_options): Handle -fstack-reuse if
6877 -fsanitize-address-use-after-scope is enabled.
6878 (common_handle_option): Enable address sanitization if
6879 -fsanitize-address-use-after-scope is enabled.
6880 * params.def (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD):
6881 New parameter.
6882 * params.h: Likewise.
6883 * sancov.c (pass_sanopt::execute): Handle IFN_ASAN_MARK.
6884 * sanitizer.def: Define __asan_poison_stack_memory and
6885 __asan_unpoison_stack_memory functions.
6886 * asan.c (asan_mark_poison_p): New function.
6887 (transform_statements): Handle asan_mark_poison_p calls.
6888 * gimple.c (nonfreeing_call_p): Handle IFN_ASAN_MARK.
6889
6890 2016-11-07 Tamar Christina <tamar.christina@arm.com>
6891
6892 PR driver/78196
6893 * Makefile.in (SELFTEST_FLAGS): Added -o /dev/null.
6894
6895 2016-11-07 Martin Liska <mliska@suse.cz>
6896
6897 * tree-profile.c (gimple_gen_time_profiler): Set proper type
6898 to time_profiler_counter_ptr.
6899
6900 2016-11-07 Richard Biener <rguenther@suse.de>
6901
6902 PR tree-optimization/37150
6903 * tree-vectorizer.h (vect_transform_slp_perm_load): Add n_perms
6904 parameter.
6905 * tree-vect-slp.c (vect_supported_load_permutation_p): Adjust.
6906 (vect_analyze_slp_cost_1): Account for the real number of
6907 permutations emitted and for dead loads.
6908 (vect_transform_slp_perm_load): Add n_perms parameter counting
6909 the number of emitted permutations.
6910 * tree-vect-stmts.c (vectorizable_load): Adjust.
6911
6912 2016-11-07 Richard Biener <rguenther@suse.de>
6913
6914 PR tree-optimization/78189
6915 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Fix
6916 alignment computation.
6917
6918 2016-11-06 Kugan Vivekanandarajah <kuganv@linaro.org>
6919
6920 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove unreachable code.
6921
6922 2016-11-05 Martin Sebor <msebor@redhat.com>
6923
6924 * doc/invoke.texi (Warning Options): Correct typos in -Walloca
6925 documentation.
6926
6927 2016-11-05 David Edelsohn <dje.gcc@gmail.com>
6928
6929 PR bootstrap/78188
6930 PR c++/71848
6931 * ipa-comdats.c (pass_ipa_comdats::gate): Require HAVE_COMDAT_GROUP.
6932
6933 2016-11-04 Jakub Jelinek <jakub@redhat.com>
6934
6935 PR target/77834
6936 * alias.c (nonoverlapping_memrefs_p): Return 0 if exprx or expry
6937 doesn't have rtl set.
6938
6939 2016-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6940
6941 * config/rs6000/rs6000.c (gimple-ssa.h): New #include.
6942 (TARGET_GIMPLE_FOLD_BUILTIN): Define as
6943 rs6000_gimple_fold_builtin.
6944 (rs6000_gimple_fold_builtin): New function. Add handling for
6945 early expansion of vector addition builtins.
6946
6947 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
6948
6949 * expr.h (copy_blkmode_from_reg): Delete.
6950 * expr.c (copy_blkmode_from_reg): Make static.
6951
6952 2016-11-04 Eric Botcazou <ebotcazou@adacore.com>
6953
6954 * defaults.h (LOAD_EXTEND_OP): Define if not already defined.
6955 * combine.c (LOAD_EXTEND_OP): Delete.
6956 (simplify_comparison): Fix comment about LOAD_EXTEND_OP.
6957 * cse.c (LOAD_EXTEND_OP): Delete.
6958 * fold-const.c (LOAD_EXTEND_OP): Likewise.
6959 * fwprop.c (free_load_extend): Remove #ifdef LOAD_EXTEND_OP/#endif.
6960 * postreload.c (LOAD_EXTEND_OP): Delete.
6961 * reload.c (push_reload): Remove #ifdef LOAD_EXTEND_OP/#endif.
6962 Convert conditional compilation based on WORD_REGISTER_OPERATIONS.
6963 (find_reloads): Likewise.
6964 * reload1.c (eliminate_regs_1): Likewise.
6965 * rtlanal.c (nonzero_bits1): Remove #ifdef LOAD_EXTEND_OP/#endif.
6966 (num_sign_bit_copies1): Likewise.
6967
6968 2016-11-04 David Malcolm <dmalcolm@redhat.com>
6969
6970 * config/i386/i386.c: Include "selftest.h" and "selftest-rtl.h".
6971 (selftest::ix86_test_dumping_hard_regs): New function.
6972 (selftest::ix86_run_selftests): New function.
6973 (TARGET_RUN_TARGET_SELFTESTS): When CHECKING_P, wire this up to
6974 selftest::ix86_run_selftests.
6975 * doc/tm.texi.in (TARGET_RUN_TARGET_SELFTESTS): New.
6976 * doc/tm.texi: Regenerate
6977 * selftest-rtl.h: New file.
6978 * rtl-tests.c: Include "selftest-rtl.h".
6979 (selftest::assert_rtl_dump_eq): Make non-static.
6980 (ASSERT_RTL_DUMP_EQ): Move to selftest-rtl.h.
6981 (selftest::test_dumping_regs): Update comment.
6982 * selftest-run-tests.c: Include "target.h".
6983 (selftest::run_tests): If non-NULL, call
6984 targetm.run_target_selftests.
6985 * target.def (run_target_selftests): New hook.
6986
6987 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
6988
6989 * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as
6990 representative core for this architecture.
6991 * config/arm/arm-cores.def (cortex-m33): Define new processor.
6992 * config/arm/arm-tables.opt: Regenerate.
6993 * config/arm/arm-tune.md: Likewise.
6994 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of
6995 valid -mcpu options.
6996 * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor.
6997
6998 2016-11-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
6999
7000 * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as
7001 representative core for this architecture.
7002 * config/arm/arm-cores.def (cortex-m23): Define new processor.
7003 * config/arm/arm-tables.opt: Regenerate.
7004 * config/arm/arm-tune.md: Likewise.
7005 * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores
7006 this tuning parameters apply to in the comment.
7007 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of
7008 valid -mcpu options.
7009 * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor.
7010
7011 2016-11-04 Bin Cheng <bin.cheng@arm.com>
7012
7013 * fold-const.c (fold_cond_expr_with_comparison): Remove call
7014 to pedantic_non_lvalue_loc. Remove useless code for lvalue
7015 where cond_expr can't be a lvalue.
7016
7017 2016-11-04 Claudiu Zissulescu <claziss@synopsys.com>
7018
7019 * config/arc/arc.c (arc_process_double_reg_moves): Use
7020 gen_dexcl_2op call.
7021 * config/arc/arc.md (movsi_insn): Disable unsupported move
7022 instructions for ARCv2 cores.
7023 (movdi): Use prepare_move_operands.
7024 (movsf, movdf): Use move_dest_operand predicate.
7025 * config/arc/constraints.md (Chs): Enable when barrel shifter is
7026 present.
7027 * config/arc/fpu.md (divsf3): Change to divsf3_fpu.
7028 * config/arc/fpx.md (dexcl_3op_peep2_insn): Dx data register is
7029 also a destination.
7030 (dexcl_3op_peep2_insn_nores): Likewise.
7031 * config/arc/arc.h (SHIFT_COUNT_TRUNCATED): Define to one.
7032 (LINK_COMMAND_SPEC): Remove.
7033
7034 2016-11-04 Richard Biener <rguenther@suse.de>
7035
7036 PR middle-end/78185
7037 * loop-invariant.c (find_exits): Record entering inner
7038 loops as possibly exiting to handle infinite sub-loops.
7039 * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h.
7040 (fill_always_executed_in_1): Honor infinite child loops.
7041
7042 2016-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
7043
7044 PR target/78192
7045 * config/rs6000/vsx.md (vsx_extract_<mode>_di): The element number
7046 has already been adjusted for endianness, so don't adjust it any
7047 further.
7048
7049 PR target/77993
7050 * config/rs6000/rs6000.h (FLOAT128_IBM_P): Do not allow IFmode or
7051 ICmode unless we have standard PowerPC floating point.
7052 * config/rs6000/rs6000.md (FP iterator): Likewise.
7053 (FMOVE128 iterator): Likewise.
7054
7055 2016-11-03 Jakub Jelinek <jakub@redhat.com>
7056 Alexandre Oliva <aoliva@redhat.com>
7057 Jason Merrill <jason@redhat.com>
7058
7059 PR debug/28767
7060 PR debug/56974
7061 * langhooks.h (struct lang_hooks_for_types): Add type_dwarf_attribute
7062 langhook.
7063 * langhooks.c (lhd_type_dwarf_attribute): New function.
7064 * langhooks-def.h (lhd_type_dwarf_attribute): Declare.
7065 (LANG_HOOKS_TYPE_DWARF_ATTRIBUTE): Define.
7066 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add
7067 LANG_HOOKS_TYPE_DWARF_ATTRIBUTE.
7068 (check_qualified_type, check_aligned_type): Call it.
7069 * dwarf2out.c (modified_type_die): Don't use type_main_variant
7070 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
7071 check_base_type and check_lang_type.
7072 (gen_ptr_to_mbr_type_die): If lookup_type_die is already non-NULL,
7073 return early. For pointer-to-data-member add DW_AT_use_location
7074 attribute.
7075 (gen_subroutine_type_die): Add DW_AT_{,rvalue_}reference attribute
7076 if needed.
7077 (gen_type_die_with_usage): Don't use type_main_variant
7078 for FUNCTION_TYPE or METHOD_TYPE, instead walk over variants with
7079 check_base_type and check_lang_type. Formatting fixes. Call
7080 get_debug_type langhook.
7081
7082 2016-11-03 Jason Merrill <jason@redhat.com>
7083
7084 * tree.c (check_lang_type): New.
7085 (check_qualified_type): Use it.
7086 (check_aligned_type): Use it.
7087 * tree.h: Declare it.
7088
7089 2016-11-03 Richard Earnshaw <rearnsha@arm.com>
7090
7091 * config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
7092 (arm*-freebsd*): Likewise.
7093 (arm*-*-netbsdelf*): Likewise.
7094 (arm*-*-linux*): Likewise.
7095 (arm*-*-uclinux*eabi*): Likewise.
7096 (arm*-*-phoenix*): Likewise.
7097 (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
7098 (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
7099 specified. Default to arm6 if target_cpu_cname is not set.
7100 * arm/arm.c (arm_option_override): Simplify logic. Assert that the
7101 default cpu has been correctly configured.
7102 * arm/arm.h (TARGET_CPU_DEFAULT): Delete.
7103 (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
7104 * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
7105 * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
7106 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
7107 * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
7108 * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
7109
7110 2016-11-03 Jiong Wang <jiong.wang@arm.com>
7111
7112 * reg-notes.def (CFA_VAL_EXPRESSION): New entry.
7113 * dwarf2cfi.c (dwarf2out_frame_debug_cfa_val_expression): New function.
7114 (dwarf2out_frame_debug): Support REG_CFA_VAL_EXPRESSION.
7115 (output_cfa_loc): Support DW_CFA_val_expression.
7116 (output_cfa_loc_raw): Likewise.
7117 (output_cfi): Likewise.
7118 (output_cfi_directive): Likewise.
7119 * dwarf2out.c (dw_cfi_oprnd1_desc): Support DW_CFA_val_expression.
7120 (dw_cfi_oprnd2_desc): Likewise.
7121 (mem_loc_descriptor): Recognize new pattern generated for value
7122 expression.
7123
7124 2016-11-03 Segher Boessenkool <segher@kernel.crashing.org>
7125
7126 PR rtl-optimization/78186
7127 * combine.c (change_zero_ext): Mask the RHS of a zero_extract as
7128 well, when converting to IOR.
7129
7130 2016-11-03 Eric Botcazou <ebotcazou@adacore.com>
7131
7132 * config/sparc/sparc.md (vec_interleave_lowv8qi): Delete.
7133 (vec_interleave_highv8qi): Likewise.
7134
7135 2016-11-03 Martin Liska <mliska@suse.cz>
7136
7137 * profile.c (instrument_values): Fix coding style.
7138 (branch_prob): Use renamed function.
7139 * tree-profile.c (init_ic_make_global_vars): Likewise.
7140 (gimple_init_edge_profiler): Rename to
7141 gimple_init_gcov_profiler.
7142 tree_time_profiler_counter variable declaration.
7143 (gimple_gen_time_profiler): Rewrite to do a direct gimple code
7144 emission.
7145 * value-prof.h: Remove an argument.
7146
7147 2016-11-03 Richard Biener <rguenther@suse.de>
7148
7149 * config/rs6000/rs6000.c (rs6000_xcoff_declare_object_name): Use
7150 symtab_node::get_create.
7151
7152 2016-11-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7153
7154 * rtlanal.c (nonzero_bits1): Fix WORD_REGISTER_OPERATIONS condition.
7155 Move comments into more natural position.
7156
7157 2016-11-03 Vineet Gupta <vgupta@synopsys.com>
7158
7159 * config/arc/arc.h (SIZE_TYPE): Define as unsigned int.
7160 (PTRDIFF_TYPE): Define as int.
7161
7162 2016-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7163
7164 * ccmp.c (expand_ccmp_expr_1): Adjust.
7165 (expand_ccmp_expr): Likewise.
7166 (expand_ccmp_next): Likewise.
7167 * config/aarch64/aarch64.c (aarch64_gen_ccmp_next): Likewise.
7168 (aarch64_gen_ccmp_first): Likewise.
7169 * doc/tm.texi: Regenerate.
7170 * target.def (gen_ccmp_first): Change argument types to rtx_insn *.
7171 (gen_ccmp_next): Likewise.
7172
7173 2016-11-03 Bin Cheng <bin.cheng@arm.com>
7174
7175 * tree-vect-loop.c (destroy_loop_vec_info): Handle cond_expr.
7176 (vect_is_simple_reduction): Swap cond_reduction by inversion.
7177
7178 2016-11-02 Uros Bizjak <ubizjak@gmail.com>
7179
7180 * config/i386/i386.c (ix86_init_libfuncs): New. Call
7181 darwin_rename_builtins here.
7182 (ix86_expand_divmod_libfunc): New.
7183 (TARGET_INIT_LIBFUNCS): Unconditionally define to ix86_init_libfuncs.
7184 (TARGET_EXPAND_DIVMOD_LIBFUNC): Define.
7185
7186 2016-11-02 Cesar Philippidis <cesar@codesourcery.com>
7187 Nathan Sidwell <nathan@acm.org>
7188
7189 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Set to zero.
7190
7191 2016-11-02 Max Filippov <jcmvbkbc@gmail.com>
7192
7193 * config/xtensa/xtensa.c (xtensa_output_integer_literal_parts):
7194 New function.
7195 (xtensa_output_literal): Use xtensa_output_integer_literal_parts
7196 to format MODE_INT and MODE_PARTIAL_INT literals.
7197
7198 2016-11-02 Segher Boessenkool <segher@kernel.crashing.org>
7199
7200 PR target/78168
7201 * config/r6000/rs6000.c (rs6000_get_separate_components): Return
7202 NULL if TARGET_SPE_ABI.
7203
7204 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7205
7206 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Don't forget to
7207 clear padding bits even when they're less than a byte.
7208
7209 2016-11-02 Richard Biener <rguenther@suse.de>
7210
7211 * gimple-ssa-store-merging.c: Include gimplify-me.h.
7212 (imm_store_chain_info::output_merged_stores): Force base_addr
7213 to be proper GIMPLE for a MEM_REF address.
7214 (pass_store_merging::execute): Restrict negative bitpos
7215 handling to non-MEM_REF bases. Remove TREE_THIS_VOLATILE
7216 check. Take into account non-NULL_TREE offset if the base
7217 is already addressable.
7218
7219 2016-11-26 Wilco Dijkstra <wdijkstr@arm.com>
7220
7221 * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si):
7222 New pattern.
7223 (aarch64_be_crypto_sha1hv4si): New pattern.
7224
7225 2016-11-02 Wilco Dijkstra <wdijkstr@arm.com>
7226
7227 * config/aarch64/aarch64.md (add<mode>3): Remove
7228 redundant code. Don't split frame based additions.
7229
7230 2016-11-02 Richard Biener <rguenther@suse.de>
7231
7232 * gimple-ssa-store-merging.c (struct store_immediate_info): Remove
7233 redundant val and dest members.
7234 (store_immediate_info::store_immediate_info): Adjust.
7235 (merged_store_group::merged_store_group): Adjust.
7236 (merged_store_group::apply_stores): Likewise.
7237 (struct imm_store_chain_info): Add base_addr field.
7238 (imm_store_chain_info::imm_store_chain_info): New constructor.
7239 (imm_store_chain_info::terminate_and_process_chain): Do not pass base.
7240 (imm_store_chain_info::output_merged_store): Likewise. Use
7241 addr_base which is already the address.
7242 (imm_store_chain_info::output_merged_stores): Likewise.
7243 (pass_tree_store_merging::terminate_all_aliasing_chains): Take
7244 imm_store_chain_info instead of base. Fix alias check.
7245 (pass_tree_store_merging::terminate_and_release_chain): Likewise.
7246 (imm_store_chain_info::coalesce_immediate_stores): Adjust.
7247 (pass_store_merging::execute): Refuse to operate on TARGET_MEM_REF.
7248 use the address of the base and adjust for other changes.
7249
7250 2016-11-02 Martin Liska <mliska@suse.cz>
7251
7252 * fold-const-call.c (host_size_t_cst_p): Test whether
7253 t is convertible to size_t.
7254
7255 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7256
7257 PR tree-optimization/78170
7258 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Truncate padding
7259 introduced by native_encode_expr on little-endian as well.
7260
7261 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7262
7263 PR tree-optimization/78162
7264 * gimple-ssa-store-merging.c (execute): Mark stores with bitpos < 0
7265 as invalid.
7266
7267 2016-11-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7268
7269 * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add
7270 function comment.
7271 (aarch64_next_callee_save): Likewise.
7272 (aarch64_pushwb_single_reg): Likewise.
7273 (aarch64_gen_storewb_pair): Likewise.
7274 (aarch64_push_regs): Likewise.
7275 (aarch64_gen_loadwb_pair): Likewise.
7276 (aarch64_pop_regs): Likewise.
7277 (aarch64_gen_store_pair): Likewise.
7278 (aarch64_gen_load_pair): Likewise.
7279 (aarch64_save_callee_saves): Likewise.
7280 (aarch64_restore_callee_saves): Likewise.
7281
7282 2016-11-02 Richard Biener <rguenther@suse.de>
7283
7284 PR tree-optimization/78035
7285 PR tree-optimization/77964
7286 * gimple-pretty-print.c (pp_points_to_solution): Print
7287 vars_contains_interposable.
7288 * tree-ssa-alias.c: Include varasm.h.
7289 (ptrs_compare_unequal): Check vars_contains_interposable and
7290 decl_binds_to_current_def_p.
7291 (dump_points_to_solution): Dump vars_contains_interposable.
7292 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_interposable
7293 flag.
7294 * tree-ssa-structalias.c: Include varasm.h.
7295 (set_uids_in_ptset): Record whether vars contains a
7296 not decl_binds_to_current_def_p variable in vars_contains_interposable.
7297 (ipa_escaped_pt): Update initializer.
7298
7299 2016-11-02 Richard Biener <rguenther@suse.de>
7300
7301 PR tree-optimization/78047
7302 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Initialize
7303 fake field at offset zero conservatively regarding to may_have_pointers.
7304
7305 2016-11-02 Richard Biener <rguenther@suse.de>
7306
7307 * tree-vrp.c (evrp_dom_walker::before_dom_children): Call
7308 infer_value_range on stmt ops and update value-ranges.
7309 Dump visited stmts and blocks.
7310 (evrp_dom_walker::push_value_range): Dump changes.
7311 (evrp_dom_walker::pop_value_range): Likewise.
7312 (evrp_dom_walker::try_find_new_range): Avoid noop changes.
7313
7314 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7315
7316 * emit-rtl.c (prev_nonnote_insn_bb): Change argument type to
7317 rtx_insn *.
7318 * rtl.h (prev_nonnote_insn_bb): Adjust prototype.
7319
7320 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7321
7322 * cfgrtl.c (delete_insn_chain): Change argument type to rtx_insn *
7323 and adjust for that.
7324 * cfgrtl.h (delete_insn_chain): Adjust prototype.
7325
7326 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7327
7328 * config/rl78/rl78.c (gen-and_emit_move): Change argument type
7329 to rtx_insn *.
7330 (transcode_memory_rtx): Likewise.
7331 (move_to_acc): Likewise.
7332 (move_from_acc): Likewise.
7333 (move_acc_to_reg): Likewise.
7334 (move_to_x): Likewise.
7335 (move_to_hl): Likewise.
7336 (move_to_de): Likewise.
7337 * config/rs6000/rs6000.c (emit_frame_save): Likewise.
7338 (rs6000_emit_savres_rtx): Likewise.
7339 (rs6000_emit_prologue): Likewise.
7340 * reorg.c (update_reg_unused_notes): Likewise.
7341 * rtl.h (remove_note): Adjust prototype.
7342 * rtlanal.c (remove_note): Make argument type rtx_insn *.
7343
7344 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7345
7346 * config/alpha/alpha.c (alpha_legitimize_address_1): Split up
7347 variables so some can be rtx_insn *.
7348 (alpha_emit_xfloating_libcall): Likewise.
7349 * config/mips/mips.c (mips_call_tls_get_addr): Likewise.
7350 (mips_legitimize_tls_address): Likewise.
7351 * optabs.c (expand_binop): Likewise.
7352 * reload1.c (gen_reload): Likewise.
7353
7354 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7355
7356 * reorg.c (relax_delay_slots): Split up the trial variable.
7357
7358 2016-11-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7359
7360 * config/arc/arc.c (arc_emit_call_tls_get_addr): Make the type
7361 of variables rtx_insn *.
7362 * config/arm/arm.c (arm_call_tls_get_addr): Likewise.
7363 (legitimize_tls_address): Likewise.
7364 * config/bfin/bfin.c (hwloop_optimize): Likewise.
7365 (bfin_gen_bundles): Likewise.
7366 * config/c6x/c6x.c (reorg_split_calls): Likewise.
7367 (c6x_reorg): Likewise.
7368 * config/frv/frv.c (frv_reorder_packet): Likewise.
7369 * config/i386/i386.c (ix86_split_idivmod): Likewise.
7370 * config/ia64/ia64.c (ia64_expand_compare): Likewise.
7371 * config/m32c/m32c.c (m32c_prepare_shift): Likewise.
7372 * config/mn10300/mn10300.c: Likewise.
7373 * config/rl78/rl78.c: Likewise.
7374 * config/s390/s390.c (s390_fix_long_loop_prediction): Likewise.
7375 * config/sh/sh-mem.cc (sh_expand_cmpstr): Likewise.
7376 (sh_expand_cmpnstr): Likewise.
7377 (sh_expand_strlen): Likewise.
7378 (sh_expand_setmem): Likewise.
7379 * config/sh/sh.md: Likewise.
7380 * emit-rtl.c (emit_pattern_before): Likewise.
7381 * except.c: Likewise.
7382 * final.c: Likewise.
7383 * jump.c: Likewise.
7384
7385 2016-11-01 Jason Merrill <jason@redhat.com>
7386
7387 * tree-inline.c (copy_tree_body_r): Only copy the taken branch of
7388 a COND_EXPR with constant condition.
7389
7390 2016-11-01 Jakub Jelinek <jakub@redhat.com>
7391
7392 * dwarf2out.c (gen_variable_die): Remove again origin_die variable
7393 and its initialization.
7394
7395 2016-11-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7396
7397 * dwarf2out.c (output_rnglists): Wrap basebuf, len in
7398 HAVE_AS_LEB128.
7399
7400 2016-11-01 Jakub Jelinek <jakub@redhat.com>
7401
7402 * dwarf2out.c (add_name_and_src_coords_attributes): Add NO_LINKAGE_NAME
7403 argument, don't call add_linkage_name if it is true.
7404 (gen_variable_die): For C++ inline static data members, consider the
7405 initial call when old_die is NULL to be declaration and call
7406 add_name_and_src_coords_attributes in that case with true as
7407 NO_LINKAGE_NAME. Add DW_AT_inline attribute if needed.
7408 (gen_member_die): For C++ inline static data members, emit a
7409 definition DIE right away in DW_TAG_compile_unit context.
7410
7411 2016-11-01 John David Anglin <danglin@gcc.gnu.org>
7412
7413 PR target/78166
7414 * config/pa/pa.md: Add new shift/add patterns to handle
7415 (plus (mult (reg) (mem_shadd_operand)) (reg)) source operand.
7416
7417 2016-11-01 Max Filippov <jcmvbkbc@gmail.com>
7418
7419 * config/xtensa/xtensa-protos.h
7420 (xtensa_use_return_instruction_p): New prototype.
7421 * config/xtensa/xtensa.c (xtensa_current_frame_size,
7422 xtensa_callee_save_size): Remove.
7423 (struct machine_function): Add new fields: current_frame_size,
7424 callee_save_size, frame_laid_out and epilogue_done.
7425 (compute_frame_size, xtensa_expand_prologue,
7426 xtensa_expand_epilogue): Replace xtensa_callee_save_size with
7427 cfun->machine->callee_save_size and xtensa_current_frame_size
7428 with cfun->machine->current_frame_size.
7429 (compute_frame_size): Update cfun->machine->frame_laid_out and
7430 don't update frame layout after reload completion.
7431 (xtensa_expand_epilogue): Set cfun->machine->epilogue_done
7432 instead of zeroing xtensa_current_frame_size.
7433 (xtensa_use_return_instruction_p): New function.
7434 * config/xtensa/xtensa.h (xtensa_current_frame_size): Remove
7435 declaration.
7436 (INITIAL_ELIMINATION_OFFSET): Use return value of
7437 compute_frame_size instead of xtensa_current_frame_size value.
7438 * config/xtensa/xtensa.md ("return" pattern): Use new predicate
7439 function xtensa_use_return_instruction_p instead of inline code.
7440
7441 2016-11-01 Jakub Jelinek <jakub@redhat.com>
7442
7443 * tree.h (BLOCK_IN_COLD_SECTION_P): Define.
7444 * final.c (final_scan_insn): Set BLOCK_IN_COLD_SECTION_P.
7445 * dwarf2out.c (rnglist_idx): New variable.
7446 (struct dw_ranges): Add label, idx and maybe_new_sec fields.
7447 (DEBUG_RNGLISTS_SECTION): Define.
7448 (ranges_base_label): New variable.
7449 (size_of_die) <case dw_val_class_range_list>: If using
7450 DW_FORM_rnglistx, count size of uleb128 of range list index.
7451 (value_format) <case dw_val_class_range_list>: For
7452 -gdwarf-5 -gsplit-dwarf return DW_FORM_rnglistx.
7453 (output_range_list_offset): Handle -gdwarf-5 .debug_rnglists
7454 offsets. Multiply dwarf < 5 offsets by 2 * DWARF_ADDR_SIZE.
7455 (add_ranges_num): Remove useless prototype. Don't multiply
7456 by 2 * DWARF2_ADDR_SIZE. Add maybe_new_sec argument, adjust
7457 for new fields added to dw_ranges struct.
7458 (add_ranges): Add maybe_new_sec argument and pass it
7459 through to add_ranges_num.
7460 (note_rnglist_head): New function.
7461 (add_ranges_by_labels): Pass true as maybe_new_sec to
7462 add_ranges_num, call note_rnglist_head on the head of the list.
7463 (output_ranges): Add function comment. Switch to
7464 .debug_ranges section here and emit .Ldebug_ranges0 label.
7465 (index_rnglists, output_rnglists): New functions.
7466 (gen_subprogram_die): Formatting fixes.
7467 (add_high_low_attributes): Don't divide offsets
7468 by 2 * DWARF2_ADDR_SIZE. Call note_rnglist_head on the
7469 first list element or when pointing into the middle of
7470 a list. Pass true as second argument to add_ranges on the
7471 first block fragment after cold/hot section switch.
7472 (init_sections_and_labels): For -gdwarf-5 use .debug_rnglists
7473 section instead of .debug_ranges. Initialize
7474 ranges_base_label if -gdwarf-5 -gsplit-dwarf.
7475 (dwarf2out_finish): For -gdwarf-5 -gsplit-dwarf call
7476 index_rnglists and add DW_AT_rnglists_base attr. Don't switch
7477 to dwarf_ranges_section here or emit .Ldebug_ranges0 label.
7478 Call output_rnglists for -gdwarf-5.
7479 (dwarf2out_c_finalize): Clear rnglist_idx.
7480
7481 2016-11-01 Fritz Reese <fritzoreese@gmail.com>
7482
7483 * combine.c (simplify_compare_const): Add gcc_fallthrough.
7484
7485 2016-11-01 Bilyan Borisov <bilyan.borisov@arm.com>
7486 Tamar Christina <tamar.christina@arm.com>
7487
7488 * config/arm/arm-c.c (arm_cpu_builtins): New macro definition.
7489 * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc.
7490 (vmaxnmq_f32): Likewise.
7491 (vminnm_f32): Likewise.
7492 (vminnmq_f32): Likewise.
7493 * config/arm/arm_neon_builtins.def (vmaxnm): New builtin.
7494 (vminnm): Likewise.
7495 * config/arm/neon.md (neon_<fmaxmin_op><mode>, VCVTF): New
7496 expander.
7497
7498 2016-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
7499
7500 * config/rs6000/vsx.md (VSX_EXTRACT_FL): New iterator for all
7501 binary floating point types supported by the hardware except for
7502 double.
7503 (vsx_xvcvsxwdp_df): Provide scalar result alternative to the
7504 vector instruction for optimizing extracting a SImode from a
7505 V4SImode vector and converting it to floating point.
7506 (vsx_xvcvuxwdp_df): Likewise.
7507 (vsx_extract_si): On ISA 3.0, allow extract target and temporary
7508 registers to be any VSX register. Move stores to the end of the
7509 constraints.
7510 (vsx_extract_si_<uns>float_df): New combiner pattern and splitter
7511 to optimize extracting a SImode from a V4SImode vector and
7512 converting it to a binary floating point type supported by the
7513 hardware. Use the vector converts instead of extracting the
7514 element, sign extending it, and then converting it to double.
7515 Other floating point types than double first convert to double,
7516 then the double is converted to that type.
7517 (vsx_extract_si_<uns>float_<mode>): Likewise.
7518
7519 2016-10-31 Andrew Pinski <apinski@cavium.com>
7520
7521 * config/aarch64/driver-aarch64.c (host_detect_local_cpu):
7522 Rewrite handling of part num to handle the case where
7523 multiple implementers share the same part num.
7524
7525 2016-10-31 Jan Kratochvil <jan.kratochvil@redhat.com>
7526 Jakub Jelinek <jakub@redhat.com>
7527
7528 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): Adjust for -gdwarf-5.
7529 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Likewise.
7530
7531 2016-10-31 Jakub Jelinek <jakub@redhat.com>
7532
7533 * dwarf2out.c (dwarf_AT): Handle DW_AT_dwo_name.
7534 (use_debug_types): Adjust comment for DWARF5 DW_UT_type units.
7535 (new_die): Handle DW_TAG_skeleton_unit like DW_TAG_compile_unit.
7536 (is_cu_die, is_unit_die): Likewise.
7537 (should_move_die_to_comdat, break_out_comdat_types): Adjust
7538 comments for DWARF5 DW_UT_type units.
7539 (output_compilation_unit_header): Add UT argument, output
7540 start of DWARF5 .debug_info section header.
7541 (output_comp_unit): Add dwo_id argument. Adjust
7542 output_compilation_unit_header caller, for DW_UT_split_compile
7543 emit dwo_id field, otherwise padding1. Emit padding2 field.
7544 (add_top_level_skeleton_die_attrs): Add DW_AT_dwo_name
7545 rather than DW_AT_GNU_dwo_name attr for -gdwarf-5.
7546 (output_skeleton_debug_sections): Add dwo_id argument, for
7547 -gdwarf-5 emit DWARF 5 DW_UT_skeleton header.
7548 (output_comdat_type_unit): For -gdwarf-5 emit .debug_info
7549 DW_UT_type or DW_UT_split_type units rather than .debug_types.
7550 (dwarf2out_finish): Use DW_TAG_skeleton_unit rather than
7551 DW_TAG_compile_unit for skeleton unit die. Don't add
7552 DW_AT_GNU_dwo_id attributes for -gdwarf-5, instead pass checksum
7553 address to output_comp_unit and output_skeleton_debug_sections.
7554
7555 * dwarf2out.c (debug_line_str_section): New variable.
7556 (debug_line_str_hash): Likewise.
7557 (DEBUG_LINE_STR_SECTION): Define.
7558 (set_indirect_string): Handle DW_FORM_line_strp like
7559 DW_FORM_strp.
7560 (find_string_form): Fix up formatting.
7561 (size_of_die): Handle DW_FORM_line_strp like DW_FORM_strp.
7562 Fix up indentation.
7563 (output_die): Handle DW_FORM_line_strp.
7564 (DWARF5_USE_DEBUG_LINE_STR): Define.
7565 (output_line_string): New function.
7566 (output_file_names): Add -gdwarf-5 support.
7567 (output_line_info): Likewise.
7568 (init_sections_and_labels): Initialize debug_line_str_section.
7569 (output_indirect_string): Change 2nd argument from void *
7570 to enum dwarf_form form, compare with form rather than
7571 DW_FORM_strp.
7572 (output_indirect_strings): Pass DW_FORM_strp to
7573 output_indirect_string traversion.
7574 (dwarf2out_finish): Output .debug_line_str strings.
7575 (dwarf2out_c_finalize): Clear debug_line_str_section and
7576 debug_line_str_hash.
7577
7578 2016-10-31 Tom Tromey <tom@tromey.com>
7579
7580 PR debug/77315
7581 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_form_tls_address.
7582 (resolve_args_picking_1): Move DW_OP_form_tls_address case next to
7583 DW_OP_GNU_push_tls_address case.
7584 (loc_list_from_tree_1): Use DW_OP_form_tls_address.
7585
7586 2016-10-31 Jakub Jelinek <jakub@redhat.com>
7587
7588 * dwarf2out.h (struct dw_loc_descr_node): Adjust comment
7589 for frame_offset_rel bit.
7590 (struct array_descr_info): Add rank field.
7591 * dwarf2out.c (struct loc_descr_context): Add placeholder_arg
7592 and placeholder_seen fields.
7593 (resolve_args_picking_1): Handle also frame_offset_rel DW_OP_dup
7594 and DW_OP_over. Optimize DW_OP_pick 0 into DW_OP_dup and
7595 DW_OP_pick 1 into DW_OP_over.
7596 (function_to_dwarf_procedure, type_byte_size, field_byte_offset,
7597 gen_variant_part): Clear placeholder_{arg,seen}.
7598 (loc_list_from_tree_1): Drop const from context argument.
7599 Handle integral PLACEHOLDER_EXPR if context->placeholder_arg.
7600 (loc_list_for_address_of_addr_expr_of_indirect_ref,
7601 loc_list_from_tree, loc_descriptor_from_tree): Drop const from
7602 context argument.
7603 (add_scalar_info): Drop const from context argument. Handle
7604 context->placeholder_arg.
7605 (add_bound_info): Drop const from context argument.
7606 (gen_descr_array_type_die): Drop const from ctx variable.
7607 Initialize placeholder_arg and placeholder_seen. Add DW_AT_rank
7608 attribute and use a single DW_TAG_generic_subrange instead of
7609 7 DW_TAG_subrange_type for assumed rank arrays.
7610
7611 * dwarf2out.h (enum dw_val_class): Add dw_val_class_loclistsptr.
7612 * dwarf2out.c (struct dw_loc_list_struct): Change emitted field
7613 from bool to 1-bit uchar bitfield. Add num_assigned and
7614 offset_emitted bitfields.
7615 (dw_val_equal_p): Compare v.val_lbl_id rather than v.val_unsigned
7616 for dw_val_class_lineptr and dw_val_class_macptr. Handle
7617 dw_val_class_loclistsptr.
7618 (new_addr_loc_descr): Fix up formatting.
7619 (DEBUG_LOCLISTS_SECTION, DEBUG_DWO_LOCLISTS_SECTION): Define.
7620 (add_AT_low_high_pc): Fix up formatting.
7621 (add_AT_loclistsptr): New function.
7622 (AT_lbl): Allow dw_val_class_loclistsptr.
7623 (print_dw_val, attr_checksum, attr_checksum_ordered, same_dw_val_p):
7624 Handle dw_val_class_loclistsptr.
7625 (loc_list_idx): New variable.
7626 (output_loclists_offsets, assign_location_list_indexes): New
7627 functions.
7628 (size_of_die): For dw_val_class_loc_list -gsplit-dwarf -gdwarf-5
7629 add size_of_uleb128 of the index. Drop never used
7630 dwarf_split_debug_info AT_index handling. Handle
7631 dw_val_class_loclistsptr.
7632 (value_format): Return DW_FORM_loclistsx for dw_val_class_loc_list
7633 if -gsplit-dwarf -gdwarf-5. Handle dw_val_class_loclistsptr.
7634 (output_loc_list): Handle DWARF 5 .debug_loclists* format.
7635 (output_loc_list_offset): Handle -gsplit-dwarf -gdwarf-5
7636 DW_FORM_loclistx indexes.
7637 (output_attr_index_or_value): Fix up formatting. Don't handle
7638 dw_val_class_loc_list here.
7639 (output_die): Formatting fixes. Handle dw_val_class_loclistsptr.
7640 For dw_val_class_loc_list call output_loc_list_offset rather than
7641 output_attr_index_or_value.
7642 (init_sections_and_labels): For -gdwarf-5 use .debug_loclists
7643 or .debug_loclists.dwo section name for debug_loc_section.
7644 (resolve_addr_in_expr): Formatting fix.
7645 (index_location_lists): Likewise.
7646 (dwarf2out_finish): If there are any location lists, for
7647 -gsplit-dwarf -gdwarf-5 add DW_AT_loclists_base attribute. Call
7648 index_location_lists only if have_location_lists. Call
7649 assign_location_list_indexes for -gsplit-dwarf -gdwarf-5. Emit
7650 .debug_loclists{,.dwo} section header for -gdwarf-5, for -gdwarf-5
7651 -gsplit-dwarf also emit offset table.
7652
7653 * dwarf2out.c (DWARF_LARGEST_DATA_FORM_BITS): Define.
7654 (size_of_die, value_format, output_die): Use
7655 DW_FORM_data16 for 128-bit dw_val_class_const_double or
7656 dw_val_class_wide_int.
7657
7658 * dwarf2out.c (dwarf_op): Renamed to ...
7659 (dwarf_OP): ... this.
7660 (convert_descriptor_to_mode, scompare_loc_descriptor,
7661 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
7662 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr): Adjust
7663 callers.
7664 (dwarf_AT, dwarf_TAG): New functions.
7665 (check_die): Disallow DW_AT_call_all_calls next to
7666 DW_AT_GNU_all_call_sites.
7667 (gen_call_site_die): Use dwarf_TAG and dwarf_AT with DWARF 5 tag
7668 and attributes instead of the corresponding GNU tag and attributes.
7669 (gen_subprogram_die): Likewise. Emit call site information even
7670 for -gdwarf-5 -gstrict-dwarf. Replace DW_AT_GNU_defaulted with
7671 DW_AT_defaulted in comment.
7672 (resolve_addr): Handle DW_AT_call_origin attribute on
7673 DW_TAG_call_site DIE like DW_AT_abstract_origin on
7674 DW_TAG_GNU_call_site DIE.
7675
7676 * dwarf2out.c (dwarf_op): New function.
7677 (size_of_loc_descr): Handle DW_OP_{implicit_pointer,entry_value},
7678 DW_OP_{const,regval,deref}_type and DW_OP_{convert,reinterpret}.
7679 (output_loc_operands, output_loc_operands_raw): Likewise.
7680 (resolve_args_picking_1, prune_unused_types_walk_loc_descr,
7681 mark_base_types, hash_loc_operands, compare_loc_operands): Likewise.
7682 (resolve_addr_in_expr): Likewise. Only punt for !dwarf_strict
7683 if dwarf_version < 5.
7684 (convert_descriptor_to_mode): Use dwarf_op (DW_OP_xxx) instead of
7685 DW_OP_GNU_xxx.
7686 (scompare_loc_descriptor, ucompare_loc_descriptor,
7687 minmax_loc_descriptor, typed_binop, mem_loc_descriptor,
7688 implicit_ptr_descriptor, optimize_one_addr_into_implicit_ptr,
7689 optimize_location_into_implicit_ptr): Likewise. Only punt for
7690 !dwarf_strict if dwarf_version < 5.
7691 (string_cst_pool_decl): Adjust comment.
7692 (non_dwarf_expression): Handle DW_OP_implicit_pointer.
7693
7694 * dwarf2out.h (enum dw_val_class): Add dw_val_class_const_implicit,
7695 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
7696 (struct dw_val_node): Add val_file_implicit field.
7697 * dwarf2out.c (dw_val_equal_p, print_dw_val, attr_checksum,
7698 attr_checksum_ordered, same_dw_val_p, size_of_die, value_format,
7699 output_die): Handle dw_val_class_const_implicit,
7700 dw_val_class_unsigned_const_implicit and dw_val_class_file_implicit.
7701 (abbrev_die_table): Change into va_gc vec.
7702 (abbrev_die_table_allocated, abbrev_die_table_in_use,
7703 ABBREV_DIE_TABLE_INCREMENT): Remove.
7704 (AT_int, AT_unsigned, AT_file): Allow dw_val_class_*_implicit.
7705 (abbrev_opt_start, abbrev_usage_count, sorted_abbrev_dies): New
7706 variables.
7707 (build_abbrev_table): Adjust for abbrev_die_table being a va_gc vec.
7708 If abbrev_opt_start, fill in abbrev_usage_count and abbrev_dies
7709 vectors.
7710 (die_abbrev_cmp, optimize_implicit_const, optimize_abbrev_table): New
7711 functions.
7712 (output_die_abbrevs): For DW_FORM_implicit_const emit sleb128 with
7713 the implicit value.
7714 (output_abbrev_section): Adjust for abbrev_die_table being a va_gc
7715 vec.
7716 (output_comp_unit): Initialize abbrev_opt_start if emitting the main
7717 unit. Call optimize_abbrev_table.
7718 (dwarf2out_init, dwarf2out_finish, dwarf2out_c_finalize): Adjust for
7719 abbrev_die_table being a va_gc vec.
7720
7721 PR tree-optimization/77860
7722 * tree-ssa-reassoc.c (eliminate_using_constants): Handle
7723 also integral complex and vector constants.
7724
7725 * dwarf2out.c (dwarf2out_define, dwarf2out_undef, output_macinfo_op,
7726 optimize_macinfo_range, save_macinfo_strings): Replace
7727 DW_MACRO_GNU_* constants with corresponding DW_MACRO_* constants.
7728 (output_macinfo): Likewise. Emit .debug_macro* rather than
7729 .debug_macinfo* even for -gstrict-dwarf -gdwarf-5.
7730 (init_sections_and_labels): Use .debug_macro* labels rather than
7731 .debug_macinfo* labels even for -gstrict-dwarf -gdwarf-5.
7732 (dwarf2out_finish): Use DW_AT_macros instead of DW_AT_macro_info
7733 or DW_AT_GNU_macros for -gdwarf-5.
7734
7735 2016-10-31 Waldemar Brodkorb <wbx@openadk.org>
7736
7737 * config/microblaze/linux.h (UCLIBC_DYNAMIC_LINKER): Define.
7738
7739 2016-09-11 Le-Chun Wu <lcwu@google.com>
7740 Mark Wielaard <mjw@redhat.com>
7741
7742 * common.opt (Wshadow=global): New option. Default for -Wshadow.
7743 (Wshadow=local): New option.
7744 (Wshadow-local): Hidden alias for -Wshadow=local.
7745 (Wshadow=compatible-local): New option.
7746 (Wshadow-compatible-local): Hidden alias for
7747 -Wshadow=compatible-local.
7748 * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
7749 Wshadow=compatible-local.
7750
7751 2016-10-31 Bin Cheng <bin.cheng@arm.com>
7752
7753 * tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
7754 Check slp defs for COND_EXPR by swapping/inverting operands if the
7755 new parameter SWAP indicates so.
7756 (vect_build_slp_tree_1): New parameter SWAP. Check COND_EXPR stmt
7757 is isomorphic to the first stmt via swapping/inverting. Store swap
7758 information in the new parameter SWAP.
7759 (vect_build_slp_tree): New local array SWAP and pass it to function
7760 vect_build_slp_tree_1. Cleanup result handling code for function
7761 call to vect_get_and_check_slp_defs. Skip operand swapping if the
7762 order of operands has been fixed as indicated by SWAP[i].
7763
7764 2016-10-31 Bin Cheng <bin.cheng@arm.com>
7765
7766 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
7767 unnecessary data dependence check after visited store stmt.
7768
7769 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7770
7771 PR tree-optimization/71915
7772 PR tree-optimization/71490
7773 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
7774 stride_type field.
7775 (find_basis_for_base_expr): Require stride types to match when
7776 seeking a basis.
7777 (alloc_cand_and_find_basis): Record the stride type.
7778 (slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
7779 (backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
7780 the expressions having those types.
7781 (slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
7782 (create_mul_ssa_cand): Likewise.
7783 (create_mul_imm_cand): Likewise.
7784 (create_add_ssa_cand): Likewise.
7785 (create_add_imm_cand): Likewise.
7786 (legal_cast_p_1): Change interface to accept types rather than the
7787 expressions having those types.
7788 (legal_cast_p): Pass types to legal_cast_p_1.
7789 (slsr_process_cast): Pass stride type to
7790 alloc_cand_and_find_basis.
7791 (slsr_process_copy): Likewise.
7792 (dump_candidate): Display stride type when a cast exists.
7793 (create_add_on_incoming_edge): Introduce a cast when necessary for
7794 the stride type.
7795 (analyze_increments): Change the code checking for invalid casts
7796 to rely on the stride type, and update the documentation and
7797 example. Change the code checking for pointer multiplies to rely
7798 on the stride type.
7799 (insert_initializers): Introduce a cast when necessary for the
7800 stride type. Use the stride type for the type of the initializer.
7801
7802 2016-10-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7803
7804 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
7805
7806 2016-10-29 Jakub Jelinek <jakub@redhat.com>
7807
7808 PR rtl-optimization/77919
7809 * expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
7810 into memory if both modes are complex and their inner modes have the
7811 same precision. If the two modes are different complex modes, convert
7812 each part separately and generate a new CONCAT.
7813
7814 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
7815
7816 * config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
7817
7818 2016-10-29 Jakub Jelinek <jakub@redhat.com>
7819
7820 PR target/78148
7821 * gimple-ssa-store-merging.c
7822 (imm_store_chain_info::output_merged_store): Use build_aligned_type
7823 instead of SET_TYPE_ALIGN on shared integral type.
7824
7825 2016-10-29 John David Anglin <danglin@gcc.gnu.org>
7826
7827 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
7828 (MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
7829 Adjust comment.
7830
7831 2016-10-28 Jeff Law <law@redhat.com>
7832
7833 * config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
7834 * config/spu/spu.h (REGNO_REG_CLASS): Likewise.
7835
7836 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
7837
7838 * doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
7839
7840 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
7841
7842 * target.def (min_arithmetic_precision): New hook.
7843 * doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
7844 * doc/tm.texi: Regenerate.
7845 * internal-fn.c (expand_arith_overflow): Adjust handling of target
7846 dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
7847 * targhooks.c (default_min_arithmetic_precision): New function.
7848 * targhooks.h (default_min_arithmetic_precision): Declare.
7849 * config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
7850 (sparc_min_arithmetic_precision): New function.
7851
7852 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
7853
7854 PR target/71847
7855 * combine.c (change_zero_ext): Handle zero_ext of hard registers.
7856 Swap commutative operands in new RTL if needed. Handle zero_ext
7857 in the set_dest.
7858 (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
7859 PATTERN (insn).
7860
7861 2016-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7862 Kugan Vivekanandarajah <kuganv@linaro.org>
7863 Jim Wilson <jim.wilson@linaro.org>
7864
7865 PR tree-optimization/43721
7866 * target.def: New hook expand_divmod_libfunc.
7867 * doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC.
7868 * doc/tm.texi: Regenerate.
7869 * internal-fn.def: Add new entry for DIVMOD ifn.
7870 * internal-fn.c (expand_DIVMOD): New.
7871 * tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
7872 targhooks.h.
7873 (widen_mul_stats): Add new field divmod_calls_inserted.
7874 (target_supports_divmod_p): New.
7875 (divmod_candidate_p): Likewise.
7876 (convert_to_divmod): Likewise.
7877 (pass_optimize_widening_mul::execute): Call calculate_dominance_info,
7878 renumber_gimple_stmt_uids at beginning of function. Call
7879 convert_to_divmod and record stats for divmod.
7880 * config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
7881 TARGET_EXPAND_DIVMOD_LIBFUNC.
7882 * doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
7883 divmod_simode.
7884
7885 2016-10-28 Eric Botcazou <ebotcazou@adacore.com>
7886 Segher Boessenkool <segher@kernel.crashing.org>
7887
7888 * dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
7889 swapping the arms of the branch.
7890 * internal-fn.c (expand_addsub_overflow): Use a straight-line code
7891 sequence for the generic signed-signed-signed case.
7892
7893 2016-10-28 Jeff Law <law@redhat.com>
7894
7895 * config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
7896 fallthru comment.
7897 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
7898
7899 2016-10-28 Segher Boessenkool <segher@kernel.crashing.org>
7900
7901 PR rtl-optimization/78029
7902 * function.c (prologue_contains, epilogue_contains): New functions.
7903 (record_prologue_seq, record_epilogue_seq): New functions.
7904 * function.h (prologue_contains, epilogue_contains,
7905 record_prologue_seq, record_epilogue_seq): New declarations.
7906 * sched-deps.c (sched_analyze_insn): Make dependencies to prevent
7907 mixing prologue and epilogue insns.
7908 (init_deps): Initialize the new fields in struct deps_desc.
7909 * sched-int.h (struct deps_desc): New fields last_prologue,
7910 last_epilogue, and last_logue_was_epilogue.
7911 * shrink-wrap.c (emit_common_heads_for_components): Record all
7912 emitted prologue and epilogue insns.
7913 (emit_common_tails_for_components): Ditto.
7914 (insert_prologue_epilogue_for_components): Ditto.
7915
7916 2016-10-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7917
7918 PR middle-end/22141
7919 * Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
7920 * common.opt (fstore-merging): New Optimization option.
7921 * opts.c (default_options_table): Add entry for
7922 OPT_ftree_store_merging.
7923 * fold-const.h (can_native_encode_type_p): Declare prototype.
7924 * fold-const.c (can_native_encode_type_p): Define.
7925 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
7926 (PARAM_MAX_STORES_TO_MERGE): Likewise.
7927 * timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
7928 * passes.def: Insert pass_tree_store_merging.
7929 * tree-pass.h (make_pass_store_merging): Declare extern
7930 prototype.
7931 * gimple-ssa-store-merging.c: New file.
7932 * doc/invoke.texi (Optimization Options): Document
7933 -fstore-merging.
7934 (--param documentation): Document store-merging-allow-unaligned
7935 and max-stores-to-merge.
7936
7937 2016-10-28 Will Schmidt <will_schmidt@vnet.ibm.com>
7938
7939 PR middle-end/72747
7940 * gimplify.c (gimplify_init_constructor): Move emit of constructor
7941 assignment to earlier in the if/else logic.
7942
7943 2016-10-28 Richard Biener <rguenther@suse.de>
7944
7945 PR middle-end/78128
7946 PR middle-end/71002
7947 * fold-const.c (make_bit_field_ref): Only adjust alias set
7948 when the original alias set was zero.
7949
7950 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7951
7952 * config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
7953 (s390_adjust_loops): New function.
7954 (s390_reorg): Invoke s390_adjust_loops.
7955 * config/s390/s390.md (UNSPEC_OSC_BREAK): New constant.
7956 ("osc_break"): New insn definition.
7957
7958 2016-10-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7959
7960 * config/s390/s390.opt: Support alternate cpu level naming (archXX).
7961 * config.gcc: Support alternate archXX cpu levels with
7962 --with-arch= and --with-tune=.
7963 * config/s390/linux.h: Translate new archXX cpu levels to the
7964 original names when calling GAS.
7965 * config/s390/tpf.h: Likewise.
7966 * doc/invoke.texi: Document the alternate cpu level names.
7967
7968 2016-10-28 Jakub Jelinek <jakub@redhat.com>
7969
7970 PR rtl-optimization/77919
7971 * expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
7972 MEM if mode1 is not a complex mode.
7973
7974 PR rtl-optimization/78132
7975 * ree.c (combine_reaching_defs): Give up if copy_needed and
7976 !HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).
7977
7978 2016-10-27 Eric Botcazou <ebotcazou@adacore.com>
7979
7980 * config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
7981
7982 2016-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
7983
7984 * config/rs6000/constraints.md (wH constraint): Add new
7985 constraints for allowing 32-bit integers (and eventually 8/16-bit
7986 integers) into the vector registers.
7987 (wI constraint): Likewise.
7988 (wJ constraint): Likewise.
7989 (wK constraint): Likewise.
7990 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
7991 -mvsx-small-integer as a default option for ISA 2.07
7992 (i.e. power8).
7993 (POWERPC_MASKS): Likewise.
7994 * config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
7995 switch to turn off small integer support in vector registers.
7996 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
7997 test for -mupper-regs-di, since it is already done with the
7998 reg_add[mode].scalar_in_vsx_p. Add support for the switch
7999 -mvsx-small-integer.
8000 (rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
8001 constraints.
8002 (rs6000_setup_reg_addr_masks): Likewise.
8003 (rs6000_init_hard_regno_mode_ok): Likewise.
8004 (rs6000_option_override_internal): Add consistency checks for
8005 -mvsx-small-integer.
8006 (rs6000_secondary_reload_simple_move): SImode is a simple move if
8007 -mvsx-small-integer.
8008 (rs6000_secondary_reload): Use std::swap.
8009 (rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
8010 VSX_REGS for small integers in vector registers, since there is no
8011 D-FORM address mode for such types.
8012 (rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
8013 (rs6000_opt_masks): Add -mvsx-small-integer.
8014 * config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
8015 support.
8016 (VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
8017 extracts can be done on ISA 2.07.
8018 (vsx_extract_<mode>): Add support for small integers in vsx
8019 registers.
8020 (vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
8021 longer support V4SImode in this pattern.
8022 (vsx_extract_si): New insn to support extraction of SImode in ISA
8023 2.07 using either xxextractuw or vspltw.
8024 (vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
8025 longer support V4SImode in this pattern.
8026 * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
8027 wJ, and wK constraints.
8028 * config/rs6000/rs6000.md (f32_sv): Use correct instruction for
8029 storing SDmode with VSX instructions.
8030 (zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
8031 GPR load and before the FPR and VSX loads. Remove ??, ! from the
8032 constraints. Add MFVSRWZ and XXEXTRACTUW instructions to support
8033 small integers in vector registers.
8034 (extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
8035 load and before the FPR and VSX loads. Remove ??, ! from the
8036 constraints. Add VEXTSW2D support for small integers in vector
8037 registers.
8038 (lfiwax): Remove ! constraint. Add VEXTSW2D support for small
8039 integers in vector registers.
8040 (floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
8041 move instead of using an UNSPEC.
8042 (lfiwzx): Remove ! constraint. Add XXEXTRACTUW support for small
8043 integers in vector registers.
8044 (floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
8045 move instead of using an UNSPEC.
8046 (movsi_internal1): Add support for -mvsx-small-integer. Align
8047 columns so that it is more readable.
8048 (SImode splitter for ISA 3.0 constants): Add splitter for
8049 -128..127 constants that can easily be constructed on ISA 3.0.
8050 * doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
8051 constraints.
8052
8053 2016-10-27 Jakub Jelinek <jakub@redhat.com>
8054
8055 PR middle-end/78025
8056 * omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
8057 functions.
8058
8059 2016-10-27 Aldy Hernandez <aldyh@redhat.com>
8060
8061 * builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
8062 PIC_OFFSET_TABLE_REGNUM twice.
8063
8064 2016-10-27 Bin Cheng <bin.cheng@arm.com>
8065
8066 * match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
8067 support for constant operand for OP.
8068
8069 2016-10-27 Jakub Jelinek <jakub@redhat.com>
8070
8071 * dwarf2out.c (gen_member_die): Only reparent_child instead of
8072 splice_child_die if child doesn't have DW_AT_specification attribute.
8073
8074 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
8075
8076 * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
8077 (TARGET_HAVE_LDREXBH): Likewise.
8078 (TARGET_HAVE_LDACQ): Likewise.
8079
8080 2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
8081
8082 * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
8083 logic to to decide whether to copy over old value to register for new
8084 value.
8085 * config/arm/sync.md: Add comments explaning why mode and code
8086 attribute are not defined in iterators.md
8087 (thumb1_atomic_op_str): New code attribute.
8088 (thumb1_atomic_newop_str): Likewise.
8089 (thumb1_atomic_fetch_op_str): Likewise.
8090 (thumb1_atomic_fetch_newop_str): Likewise.
8091 (thumb1_atomic_fetch_oldop_str): Likewise.
8092 (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
8093 mirror the more restrictive constraints of the Thumb-1 insns after
8094 split compared to Thumb-2 counterpart insns.
8095 (atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
8096 in sync with non atomic version.
8097 (atomic_nand<mode>): Likewise.
8098 (atomic_fetch_<sync_optab><mode>): Likewise.
8099 (atomic_fetch_nand<mode>): Likewise.
8100 (atomic_<sync_optab>_fetch<mode>): Likewise.
8101 (atomic_nand_fetch<mode>): Likewise.
8102 * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
8103 in sync with atomic version.
8104 (thumb1_subsi3_insn): Likewise.
8105 (thumb1_andsi3_insn): Likewise.
8106 (thumb1_iorsi3_insn): Likewise.
8107 (thumb1_xorsi3_insn): Likewise.
8108
8109 2016-10-27 Nick Clifton <nickc@redhat.com>
8110
8111 * plugin.c (register_plugin_info): Produce an error message if the
8112 plugin is not found in the hash table.
8113
8114 2016-10-27 Bin Cheng <bin.cheng@arm.com>
8115
8116 * match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
8117 New pattern.
8118
8119 2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
8120
8121 PR target/78056
8122 * config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
8123 define builtin functions from the bdesc_spe_predicates or
8124 bdesc_spe_evsel arrays if the builtin mask is not compatible with
8125 the current compiler configuration.
8126 (paired_init_builtins): Modify loop to not define define builtin
8127 functions from the bdesc_paried_preds array if the builtin mask is
8128 not compatible with the current compiler configuration.
8129 (altivec_init_builtins): Modify loops to not define the
8130 __builtin_altivec_stxvl function nor the builtin functions from
8131 the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
8132 builtin mask is not compatible with the current compiler
8133 configuration.
8134
8135 2016-10-26 Jeff Law <law@redhat.com>
8136
8137 * config/sh/sh.c (output_branch): Add missing fallthru comments.
8138 (gen_shl_and): Likewise.
8139 * config/sh/sh.md (movsicc): Add missing fallthru comments.
8140
8141 * config/mips/mips.c (mips16_constant_cost): Add missing
8142 fallthru comments.
8143 (mips16_build_call_stub): Increase buffer size. Adjust
8144 fallthru comment.
8145
8146 2016-10-26 David Malcolm <dmalcolm@redhat.com>
8147
8148 * print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
8149 INSN_UIDs for all insns in compact mode.
8150 (rtx_writer::print_rtx): Likewise.
8151 * print-rtl.h (rtx_writer::flag_compact): Update comment.
8152 * rtl-tests.c (selftest::test_dumping_insns): Update expected
8153 output to include INSN_UID.
8154 (selftest::test_uncond_jump): Likewise.
8155
8156 2016-10-26 Pat Haugen <pthaugen@us.ibm.com>
8157
8158 * haifa-sched.c (call_used_regs_num): Rename to...
8159 (call_saved_regs_num): ...this.
8160 (fixed_regs_num): New variable.
8161 (sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
8162 regs not call_used.
8163 (alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
8164
8165 2016-10-26 David Malcolm <dmalcolm@redhat.com>
8166
8167 * print-rtl-function.c (print_rtx_function): Rewrite in terms of
8168 class rtx_writer.
8169 * print-rtl.c (outfile): Delete global.
8170 (sawclose): Likewise.
8171 (indent): Likewise.
8172 (in_call_function_usage): Likewise.
8173 (flag_compact): Likewise.
8174 (flag_simple): Likewise.
8175 (rtx_writer::rtx_writer): New ctor.
8176 (print_rtx_operand_code_0): Convert to...
8177 (rtx_writer::print_rtx_operand_code_0): ...this.
8178 (print_rtx_operand_code_e): Convert to...
8179 (rtx_writer::print_rtx_operand_code_e): ...this.
8180 (print_rtx_operand_codes_E_and_V): Convert to...
8181 (rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
8182 (print_rtx_operand_code_i): Convert to...
8183 (rtx_writer::print_rtx_operand_code_i): ...this.
8184 (print_rtx_operand_code_r): Convert to...
8185 (rtx_writer::print_rtx_operand_code_r): ...this.
8186 (print_rtx_operand_code_u): Convert to...
8187 (rtx_writer::print_rtx_operand_code_u): ...this.
8188 (print_rtx_operand): Convert to...
8189 (rtx_writer::print_rtx_operand): ...this.
8190 (print_rtx): Convert to...
8191 (rtx_writer::print_rtx): ...this.
8192 (print_inline_rtx): Rewrite in terms of class rtx_writer.
8193 (debug_rtx): Likewise.
8194 (print_rtl): Convert to...
8195 (rtx_writer::print_rtl): ...this.
8196 (print_rtl): Reimplement in terms of class rtx_writer.
8197 (print_rtl_single): Rewrite in terms of class rtx_writer.
8198 (print_rtl_single_with_indent): Convert to..
8199 (rtx_writer::print_rtl_single_with_indent): ...this.
8200 (print_simple_rtl): Rewrite in terms of class rtx_writer.
8201 * print-rtl.h (flag_compact): Delete decl.
8202 (class rtx_writer): New class.
8203 * rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
8204 class rtx_writer.
8205
8206 2016-10-26 Jeff Law <law@redhat.com>
8207
8208 * config/microblaze/microblaze.c (tls_mentioned_p): Avoid
8209 fallthru.
8210
8211 * config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
8212 (check_if_valid_sleep_operand): Add missing fallthru comment.
8213 (arc_register_move_cost): Increase buffer size.
8214 * config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
8215 comment.
8216 * config/arc/predicates.md (move_str_operand): Avoid fallthru.
8217
8218 * config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
8219 comment. Add gcc_unreachable for path that should never happen.
8220
8221 * config/epiphany/epiphany.c (epiphany_print_operand): Adjust
8222 fallthru comment.
8223
8224 2016-10-26 Jakub Jelinek <jakub@redhat.com>
8225 Martin Liska <mliska@suse.cz>
8226
8227 PR fortran/77973
8228 * gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
8229 clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
8230 on outer context if any.
8231
8232 2016-10-26 Jakub Jelinek <jakub@redhat.com>
8233
8234 * gen-pass-instances.awk (adjust_linenos): Increment pass_lines[p]
8235 by increment rather than double it.
8236 (insert_remove_pass): Strip leading whitespace from args[3]. Don't
8237 emit a space before args[4].
8238 (END): Don't emit a space before with_arg.
8239
8240 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
8241
8242 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
8243 Baseline only alternatives to (i) hold store atomic success value in a
8244 return register rather than a scratch register, (ii) use a low register
8245 for it and to (iii) ensure the cbranchsi insn generated by the split
8246 respect the constraints of Thumb-1 cbranchsi4_insn and
8247 cbranchsi4_scratch.
8248 * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
8249 constraints must match those in atomic_compare_and_swap.
8250 (cbranchsi4_scratch): Likewise.
8251
8252 2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
8253
8254 * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
8255 variable. Add the new parameter to the insn generator. Set that
8256 parameter to be CC flag for 32-bit targets, bval otherwise. Set the
8257 return value from the negation of that parameter for Thumb-1, keeping
8258 the logic unchanged otherwise except for using bdst as the destination
8259 register of the compare_and_swap insn.
8260 (arm_split_compare_and_swap): Add explanation about how is the value
8261 returned to the function comment. Rename scratch variable to
8262 neg_bval. Adapt initialization of variables holding operands to the
8263 new operand numbers. Use return register to hold result of store
8264 exclusive for Thumb-1, scratch register otherwise. Construct the
8265 appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
8266 for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
8267 Use gen_cbranchsi4 rather than hand-written conditional branch to loop
8268 for strongly ordered compare_and_swap.
8269 * config/arm/predicates.md (cc_register_operand): New predicate.
8270 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
8271 match_operand with the new predicate to accept either the CC flag or a
8272 destination register for the boolean return value, restricting it to
8273 CC flag only via constraint. Adapt operand numbers accordingly.
8274
8275 2016-10-26 Jeff Law <law@redhat.com>
8276
8277 * config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
8278
8279 * config/frv/frv.c (comparison_string): Do not fall through after
8280 an error.
8281
8282 * config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
8283 comment.
8284 (expand_one_builtin): Add missing break.
8285
8286 * config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
8287 (m32c_legitimate_address_p): Likewise.
8288
8289 * config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
8290
8291 * config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
8292
8293 * config/microblaze/microblaze.c (microblaze_function_arg): Adjust
8294 fallthru comment.
8295
8296 * config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
8297 fallthru comment.
8298
8299 * config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
8300
8301 * config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
8302 comment.
8303 (rl78_asm_ctor_dtor): Increase buffer size.
8304
8305 * config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
8306 buffer size.
8307 (xstormy16_asm_output_constructor): Likewise.
8308
8309 * config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
8310 size.
8311
8312 * config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
8313 comment to silence warning.
8314
8315 * config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
8316 (spu_legitimate_address_p): Fix logic error and add missing fallthru
8317 comment.
8318
8319 2016-10-26 Michael Matz <matz@suse.de>
8320
8321 PR tree-optimization/78060
8322 PR tree-optimization/78061
8323 PR tree-optimization/78088
8324 * tree-ssa-loop-split.c (easy_exit_values): New function.
8325 (tree_ssa_split_loops): Use it.
8326 (compute_new_first_bound): Change order of operations,
8327 fix invalid use of types.
8328
8329 2016-10-26 Georg-Johann Lay <avr@gjlay.de>
8330
8331 gen-pass-instances.awk is sensitive to the order in which
8332 passes are added; passes that appear later have to be added first.
8333
8334 PR target/71676
8335 PR target/71678
8336 * config/avr/avr-passes.def: Swap order of directives for
8337 gen-pass-instances.awk.
8338
8339 2016-10-25 Jeff Law <law@redhat.com>
8340
8341 * config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
8342 (vax_notice_update_cc): Likewise.
8343
8344 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
8345
8346 * config.gcc (sparc*-*-solaris2*): Adjust.
8347 (sparc64-*-linux*): Likewise.
8348 * config/sparc/default-64.h: Rename to...
8349 * config/sparc/default64.h: ...this.
8350 * config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
8351 with TARGET_ARCH64.
8352 (sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
8353 * config/sparc/sparc.h: Minor tweaks.
8354 * config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
8355 TARGET_ARCH32 throughout. Minor various tweaks throughout.
8356
8357 2016-10-25 David Malcolm <dmalcolm@redhat.com>
8358
8359 * input.c (fcache::file_patch): Add comment about lifetime.
8360 (selftest::cpp_reader_ptr): New class.
8361 (selftest::lexer_test): Convert m_parser from cpp_reader *
8362 to a cpp_reader_ptr, and move m_tempfile to after it.
8363 (selftest::lexer_test::lexer_test): Update for above reordering.
8364 (lexer_test::~lexer_test): Move cleanup of m_parser to
8365 cpp_reader_ptr's dtor.
8366
8367 2016-10-25 David Malcolm <dmalcolm@redhat.com>
8368
8369 * toplev.c (toplev::main): Remove call to
8370 location_adhoc_data_fini.
8371
8372 2016-10-25 Eric Botcazou <ebotcazou@adacore.com>
8373
8374 * tree.h (wi::fits_to_tree_p): Accept only 0 and 1 for boolean types.
8375 * tree.c (int_fits_type_p): Likewise. Adjust head comment.
8376
8377 2016-10-25 David Malcolm <dmalcolm@redhat.com>
8378
8379 * ggc-tests.c (forcibly_ggc_collect): Rename to...
8380 (selftest::forcibly_ggc_collect): ...this, and remove "static".
8381 (test_basic_struct): Update for above renaming.
8382 (test_length): Likewise.
8383 (test_union): Likewise.
8384 (test_finalization): Likewise.
8385 (test_deletable_global): Likewise.
8386 (test_inheritance): Likewise.
8387 (test_chain_next): Likewise.
8388 (test_user_struct): Likewise.
8389 (test_tree_marking): Likewise.
8390 * selftest-run-tests.c (selftest::run_tests): Call
8391 selftest::forcibly_ggc_collect at the end of the selftests.
8392 * selftest.h (selftest::forcibly_ggc_collect): New decl.
8393
8394 2016-10-25 Jakub Jelinek <jakub@redhat.com>
8395
8396 PR target/78102
8397 * optabs.def (vcondeq_optab, vec_cmpeq_optab): New optabs.
8398 * optabs.c (expand_vec_cond_expr): For comparison codes
8399 EQ_EXPR and NE_EXPR, attempt vcondeq_optab as fallback.
8400 (expand_vec_cmp_expr): For comparison codes
8401 EQ_EXPR and NE_EXPR, attempt vec_cmpeq_optab as fallback.
8402 * optabs-tree.h (expand_vec_cmp_expr_p, expand_vec_cond_expr_p):
8403 Add enum tree_code argument.
8404 * optabs-query.h (get_vec_cmp_eq_icode, get_vcond_eq_icode): New
8405 inline functions.
8406 * optabs-tree.c (expand_vec_cmp_expr_p): Add CODE argument. For
8407 CODE EQ_EXPR or NE_EXPR, attempt to use vec_cmpeq_optab as
8408 fallback.
8409 (expand_vec_cond_expr_p): Add CODE argument. For CODE EQ_EXPR or
8410 NE_EXPR, attempt to use vcondeq_optab as fallback.
8411 * tree-vect-generic.c (expand_vector_comparison,
8412 expand_vector_divmod, expand_vector_condition): Adjust
8413 expand_vec_cmp_expr_p and expand_vec_cond_expr_p callers.
8414 * tree-vect-stmts.c (vectorizable_condition,
8415 vectorizable_comparison): Likewise.
8416 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern,
8417 check_bool_pattern, search_type_for_mask_1): Likewise.
8418 * expr.c (do_store_flag): Likewise.
8419 * doc/md.texi (@code{vec_cmpeq@var{m}@var{n}},
8420 @code{vcondeq@var{m}@var{n}}): Document.
8421 * config/i386/sse.md (vec_cmpeqv2div2di, vcondeq<VI8F_128:mode>v2di):
8422 New expanders.
8423
8424 2016-10-25 Jeff Law <law@redhat.com>
8425
8426 * config/v850/v850.c (v850_handle_data_area_attribute): Fix fallthru
8427 comment.
8428 (v850_output_aligned_bss): Add missing break.
8429
8430 * config/m68k/m68k.c (m68k_get_reloc_decoration): Add gcc_unreachable.
8431
8432 2016-10-25 Martin Liska <mliska@suse.cz>
8433
8434 PR sanitizer/78106
8435 * sanopt.c (imm_dom_path_with_freeing_call): Handle gasm
8436 statements as they can also contain possibly a freeing call.
8437
8438 2016-10-25 H.J. Lu <hongjiu.lu@intel.com>
8439 Martin Liska <mliska@suse.cz>
8440
8441 PR ipa/78099
8442 * common.opt: Mark flag_ipa_icf_variables as Optimization flag.
8443 * ipa-icf.c (sem_function::get_hash): Add target optimization
8444 node to hash.
8445
8446 2016-10-25 Wilco Dijkstra <wdijkstr@arm.com>
8447
8448 PR target/78041
8449 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants.
8450 Remove partial overlap check for shift by 1.
8451 (ashldi3_neon): Likewise.
8452
8453 2016-10-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
8454
8455 * config/arm/constraints.md (Q constraint): Document its use for
8456 Thumb-1.
8457 (Pf constraint): New constraint for relaxed, consume or relaxed memory
8458 models.
8459 * config/arm/sync.md (atomic_load<mode>): Add new ARMv8-M Baseline only
8460 alternatives to allow any register when memory model matches Pf and
8461 thus lda is used, but only low registers otherwise. Use unpredicated
8462 output template for Thumb-1 targets.
8463 (atomic_store<mode>): Likewise for stl.
8464 (arm_load_exclusive<mode>): Add new ARMv8-M Baseline only alternative
8465 whose output template does not have predication.
8466 (arm_load_acquire_exclusive<mode>): Likewise.
8467 (arm_load_exclusivesi): Likewise.
8468 (arm_load_acquire_exclusivesi): Likewise.
8469 (arm_store_release_exclusive<mode>): Likewise.
8470 (arm_store_exclusive<mode>): Use unpredicated output template for
8471 Thumb-1 targets.
8472
8473 2016-10-25 Jakub Jelinek <jakub@redhat.com>
8474
8475 * internal-fn.def (LAUNDER): New internal function.
8476 * internal-fn.c (expand_LAUNDER): New function.
8477
8478 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
8479 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
8480
8481 New avr target pass to work around performance loss by PR fix.
8482
8483 PR target/71676
8484 PR target/71678
8485 * config/avr/avr.md (casesi_<mode>_sequence) [qi,hi]: New insn.
8486 (*cmp<mode>) [qi,qq,uqq,hi,hq,uhq,ha,uha]: Rename to cmp<mode>3.
8487 * config/avr/predicates.md (extend_operator): New.
8488 * config/avr/avr-passes.def (avr_pass_casesi): Register new pass.
8489 * config/avr/avr-protos.h (avr_casei_sequence_check_operands)
8490 (make_avr_pass_casesi): New prototypes.
8491 * config/avr/avr.c (print-rtl.h): Include it.
8492 (pass_data avr_pass_data_casesi): Data for new pass.
8493 (avr_pass_casesi): New class implementing rtl_opt_pass .avr-casesi.
8494 (make_avr_pass_casesi, avr_parallel_insn_from_insns)
8495 (avr_is_casesi_sequence, avr_casei_sequence_check_operands)
8496 (avr_optimize_casesi): New functions.
8497
8498 2016-10-25 Georg-Johann Lay <avr@gjlay.de>
8499 Pitchumani Sivanupandi <pitchumani.sivanupandi@microchip.com>
8500
8501 PR target/71676
8502 PR target/71678
8503 * config/avr/avr.md (casesi): Rewrite avoiding subregs of SI.
8504
8505 2016-10-24 Jakub Jelinek <jakub@redhat.com>
8506
8507 * dwarf2out.c (gen_subprogram_die): Add DW_AT_reference or
8508 DW_AT_rvalue_reference attributes.
8509
8510 2016-10-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
8511
8512 * doc/invoke.text (Wint-in-bool-context): Update documentation.
8513 * value-prof.c (stringop_block_profile): Fix a warning.
8514
8515 2016-10-24 Martin Sebor <msebor@redhat.com>
8516
8517 PR middle-end/77735
8518 * builtins.c (string_length): New function.
8519 (c_strlen): Use string_length. Correctly handle wide strings.
8520 * gimple-ssa-sprintf.c (target_max_value, target_size_max): New
8521 functions.
8522 (target_int_max): Call target_max_value.
8523 (format_result::knownrange): New data member.
8524 (fmtresult::fmtresult): Define default constructor.
8525 (format_integer): Use it and set format_result::knownrange.
8526 Handle global constants.
8527 (format_floating_max): Add third argument.
8528 (format_floating): Recompute maximum value for %a for each argument.
8529 (get_string_length): Use fmtresult default ctor.
8530 (format_string): Set format_result::knownrange.
8531 (format_directive): Check format_result::knownrange.
8532 (add_bytes): Same. Correct caret placement in diagnostics.
8533 (pass_sprintf_length::compute_format_length): Set
8534 format_result::knownrange.
8535 (pass_sprintf_length::handle_gimple_call): Use target_size_max.
8536
8537 2016-10-24 Jakub Jelinek <jakub@redhat.com>
8538
8539 * config/i386/i386.c (ix86_in_large_data_p, ix86_expand_builtin): Use
8540 VAR_P (x) instead of TREE_CODE (x) == VAR_DECL.
8541
8542 2016-10-24 Ximin Luo <infinity0@pwned.gg>
8543
8544 PR debug/77985
8545 * dwarf2out.c (file_table_relative_p): Remove.
8546 (gen_compile_unit_die, dwarf2out_early_finish): Emit DW_AT_comp_dir
8547 also for absolute paths.
8548 * doc/tm.texi: Update.
8549 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Remove.
8550 * target.def (force_at_comp_dir): Remove hook.
8551 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Remove define.
8552
8553 2016-10-24 Richard Biener <rguenther@suse.de>
8554
8555 * tree-vrp.c (evrp_dom_walker::before_dom_children): Ignore
8556 backedges when identifying the single predecessor to take
8557 conditional info from. Use SCEV to get at ranges for loop IVs.
8558 * lto-streamer-out.c (lto_write_mode_table): CSE inner mode to
8559 avoid false warning.
8560
8561 2016-10-24 Georg-Johann Lay <avr@gjlay.de>
8562
8563 PR target/78093
8564 * doc/extend.texi (AVR Variable Attributes) [absdata]: Document it.
8565 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_ABSDATA): New macro.
8566 (avr_address_tiny_absdata_p): New static function.
8567 (avr_legitimate_address_p, avr_legitimize_address) [AVR_TINY]: Use
8568 it to determine validity of constant addresses.
8569 (avr_attribute_table) [absdata]: New variable attribute...
8570 (avr_handle_absdata_attribute): ...and handler.
8571 (avr_decl_absdata_p): New static function.
8572 (avr_encode_section_info) [AVR_TINY]: Use it to add flag
8573 AVR_SYMBOL_FLAG_TINY_ABSDATA to respective symbols_refs.
8574 (avr_address_cost) [AVR_TINY]: absdata addresses cost 2.
8575
8576 2016-10-24 Richard Biener <rguenther@suse.de>
8577
8578 PR tree-optimization/78076
8579 * tree-ssa-loop-split.c (tree_ssa_split_loops): Reset aux
8580 also on the loop tree root.
8581
8582 2016-10-24 Jakub Jelinek <jakub@redhat.com>
8583
8584 * config/i386/i386.c (ix86_fold_builtin): Handle
8585 IX86_BUILTIN_BEXTR{,I}{32,64}, IX86_BUILTIN_BZHI{32,64},
8586 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
8587 (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_BZHI{32,64},
8588 IX86_BUILTIN_PDEP{32,64} and IX86_BUILTIN_PEXT{32,64}.
8589
8590 2016-10-24 Martin Liska <mliska@suse.cz>
8591
8592 PR sanitizer/77966
8593 * opts.c (finish_options): Skip conditionally.
8594
8595 2016-10-23 Martin Sebor <msebor@redhat.com>
8596
8597 PR target/77837
8598 * config/rs6000/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define.
8599 * config/rs6000/linux64.h (TARGET_PRINTF_POINTER_FORMAT): Likewise.
8600
8601 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
8602
8603 * config/sparc/sparc.md (cpu_feature): Minor tweak.
8604 (enabled): Likewise.
8605 (movsi_insn, movdi_insn_sp32, movdi_insn_sp64, movsf_insn,
8606 movdf_insn_sp32, movdf_insn_sp64, zero_extendsidi2_insn_sp64,
8607 sign_extendsidi2_insn, mov<VM32:mode>_insn, mov<VM64:mode>_insn_sp64,
8608 mov<VM64:mode>_insn_sp32, not_<code><mode>, nand<mode>_vis,
8609 <code>_not1<mode>_vi, <code>_not2<mode>_vis, one_cmpl<mode>2,
8610 fcmp<code><GCM:gcm_name>, pdistn<mode>_vis): Likewise.
8611
8612 2016-10-23 Eric Botcazou <ebotcazou@adacore.com>
8613
8614 * config/sparc/sparc-c.c (sparc_target_macros): Replace TARGET_64BIT
8615 with TARGET_ARCH64. Define __VIS to 0x400 if TARGET_VIS4.
8616
8617 2016-10-21 Andrew Pinski <apinski@cavium.com>
8618
8619 * config/aarch64/aarch64-cores.def: Rewrite so IMP and PART are
8620 integer constants.
8621 * config/aarch64/driver-aarch64.c (struct aarch64_core_data): Change
8622 implementer_id to unsigned char.
8623 Change part_no to unsigned int.
8624 (AARCH64_BIG_LITTLE): New define.
8625 (INVALID_IMP): New define.
8626 (INVALID_CORE): New define.
8627 (cpu_data): Change the last element's implementer_id and part_no to
8628 integers.
8629 (valid_bL_string_p): Rewrite to ..
8630 (valid_bL_core_p): this for integers instead of strings.
8631 (parse_field): New function.
8632 (contains_string_p): Rewrite to ...
8633 (contains_core_p): this for integers and only for the part_no.
8634 (host_detect_local_cpu): Rewrite handling of implementation and
8635 par num to be integers; simplifying the code.
8636
8637 2016-10-21 Kugan Vivekanandarajah <kuganv@linaro.org>
8638
8639 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Create nonzero
8640 value range for pointers in more cases.
8641
8642 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
8643
8644 * config/aarch64/aarch64.c (aarch64_add_constant_internal):
8645 Add extra argument to allow emitting the move immediate.
8646 Use add/sub with positive immediate.
8647 (aarch64_add_constant): Add inline function.
8648 (aarch64_add_sp): Likewise.
8649 (aarch64_sub_sp): Likewise.
8650 (aarch64_expand_prologue): Call aarch64_sub_sp.
8651 (aarch64_expand_epilogue): Call aarch64_add_sp.
8652 Decide when to leave out move.
8653 (aarch64_output_mi_thunk): Call aarch64_add_constant.
8654
8655 2016-10-21 Wilco Dijkstra <wdijkstr@arm.com>
8656
8657 * config/aarch64/aarch64.c (aarch64_layout_frame):
8658 Align FP callee-saves.
8659
8660 2016-10-21 Jakub Jelinek <jakub@redhat.com>
8661
8662 * config/i386/adxintrin.h (_subborrow_u32, _addcarry_u32,
8663 _addcarryx_u32, _subborrow_u64, _addcarry_u64, _addcarryx_u64):
8664 Formatting fixes.
8665 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
8666 _rdseed64_step): Likewise.
8667 * config/i386/tbmintrin.h (__bextri_u32): Likewise.
8668
8669 PR target/78057
8670 * config/i386/i386.c: Include fold-const-call.h, tree-vrp.h
8671 and tree-ssanames.h.
8672 (ix86_fold_builtin): Fold IX86_BUILTIN_[LT]ZCNT{16,32,64}
8673 with INTEGER_CST argument.
8674 (ix86_gimple_fold_builtin): New function.
8675 (TARGET_GIMPLE_FOLD_BUILTIN): Define.
8676
8677 * dwarf2out.c (ranges_table): Change into vec<dw_ranges, va_gc> *.
8678 (ranges_by_label): Change into vec<dw_ranges_by_label, va_gc> *.
8679 (ranges_table_allocated, ranges_table_in_use,
8680 ranges_by_label_allocated, ranges_by_label_in_use,
8681 RANGES_TABLE_INCREMENT): Removed.
8682 (add_ranges_num): Use vec_safe_push into ranges_table.
8683 (add_ranges_by_labels): Use vec_safe_push into ranges_by_label.
8684 (output_ranges): Adjust for ranges_table and ranges_by_label
8685 conversion from arrays to vec.
8686 (add_high_low_attributes, dwarf2out_finish): Adjust for range_table
8687 conversion from arrays to vec.
8688 (dwarf2out_c_finalize): Don't clear ranges_table_allocated,
8689 ranges_table_in_use, ranges_by_label_allocated and
8690 ranges_by_label_in_use. Set ranges_by_label to NULL instead of 0.
8691
8692 * dwarf2out.c (gen_variable_die): Emit DW_AT_const_expr attribute
8693 if needed. Re-add origin_die variable and its initialization.
8694
8695 * gimplify.c (gimplify_bind_expr): Handle oacc_declare_returns
8696 even for -fstack-reuse=none, or for volatile vars etc.
8697
8698 2016-10-21 David Malcolm <dmalcolm@redhat.com>
8699
8700 * print-rtl-function.c (flag_compact): Move extern decl to...
8701 * print-rtl.h (flag_compact): ...here.
8702 * rtl-tests.c (selftests::assert_rtl_dump_eq): New function.
8703 (ASSERT_RTL_DUMP_EQ): New macro.
8704 (selftest::test_dumping_regs): New function.
8705 (selftest::test_dumping_insns): New function.
8706 (selftest::test_uncond_jump): Add uses of ASSERT_RTL_DUMP_EQ on
8707 the insns.
8708 (selftest::rtl_tests_c_tests): Call the new test functions.
8709
8710 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8711
8712 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
8713 (outgoing_edges_match): Likewise.
8714 (try_crossjump_to_edge): Likewise.
8715 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
8716 (rtl_tidy_fallthru_edge): Likewise.
8717 * rtl.h (tablejump_p): Adjust prototype.
8718 * rtlanal.c (tablejump_p): Return the label as a rtx_insn *.
8719
8720 2016-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8721
8722 * rtl.h (label_ref_label): New function.
8723 (set_label_ref_label): New function.
8724 (LABEL_REF_LABEL): Delete.
8725 * alias.c (rtx_equal_for_memref_p): Adjust.
8726 * cfgbuild.c (make_edges): Likewise.
8727 (purge_dead_tablejump_edges): Likewise.
8728 * cfgexpand.c (convert_debug_memory_address): Likewise.
8729 * cfgrtl.c (patch_jump_insn): Likewise.
8730 * combine.c (distribute_notes): Likewise.
8731 * cse.c (hash_rtx_cb): Likewise.
8732 (exp_equiv_p): Likewise.
8733 (fold_rtx): Likewise.
8734 (check_for_label_ref): Likewise.
8735 * cselib.c (rtx_equal_for_cselib_1): Likewise.
8736 (cselib_hash_rtx): Likewise.
8737 * emit-rtl.c (mark_label_nuses): Likewise.
8738 * explow.c (convert_memory_address_addr_space_1): Likewise.
8739 * final.c (output_asm_label): Likewise.
8740 (output_addr_const): Likewise.
8741 * gcse.c (add_label_notes): Likewise.
8742 * genconfig.c (walk_insn_part): Likewise.
8743 * genrecog.c (validate_pattern): Likewise.
8744 * ifcvt.c (cond_exec_get_condition): Likewise.
8745 (noce_emit_store_flag): Likewise.
8746 (noce_get_alt_condition): Likewise.
8747 (noce_get_condition): Likewise.
8748 * jump.c (maybe_propagate_label_ref): Likewise.
8749 (mark_jump_label_1): Likewise.
8750 (redirect_exp_1): Likewise.
8751 (rtx_renumbered_equal_p): Likewise.
8752 * lra-constraints.c (operands_match_p): Likewise.
8753 * print-rtl.c (print_value): Likewise.
8754 * reload.c (find_reloads): Likewise.
8755 * reload1.c (set_label_offsets): Likewise.
8756 * reorg.c (get_branch_condition): Likewise.
8757 * rtl-tests.c (test_uncond_jump): Likewise.
8758 * rtl.c (rtx_equal_p_cb): Likewise.
8759 (rtx_equal_p): Likewise.
8760 * rtlanal.c (reg_mentioned_p): Likewise.
8761 (rtx_referenced_p): Likewise.
8762 (get_condition): Likewise.
8763 * varasm.c (const_hash_1): Likewise.
8764 (compare_constant): Likewise.
8765 (const_rtx_hash_1): Likewise.
8766 (output_constant_pool_1): Likewise.
8767
8768 2016-10-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8769
8770 PR target/71627
8771 * reload.c (find_valid_class_1): Allow regclass if atleast one
8772 regno in regclass is ok. Compute and use rclass size based on
8773 actually available regnos for mode in rclass.
8774
8775 2016-10-21 Eric Botcazou <ebotcazou@adacore.com>
8776
8777 * config/sparc/sparc-modes.def (CCV): New.
8778 (CCXV): Likewise.
8779 * config/sparc/predicates.md (v_comparison_operator): New.
8780 (icc_comparison_operator): Add support for CCV/CCXV.
8781 (xcc_comparison_operator): Likewise.
8782 * config/sparc/sparc.c (output_cbranch): Likewise.
8783 (sparc_print_operand): Likewise.
8784 * config/sparc/sparc.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
8785 (uaddvdi4): New expander.
8786 (addvdi4): Likewise.
8787 (uaddvdi4_sp32): New instruction.
8788 (addvdi4_sp32): Likewise.
8789 (uaddvsi4): New expander.
8790 (addvsi4): Likewise.
8791 (cmp_ccc_plus_sltu_set): New instruction.
8792 (cmp_ccv_plus): Likewise.
8793 (cmp_ccxv_plus): Likewise.
8794 (cmp_ccv_plus_set): Likewise.
8795 (cmp_ccxv_plus_set): Likewise.
8796 (cmp_ccv_plus_sltu_set): Likewise.
8797 (uaddvdi4): New expander.
8798 (subvdi4): Likewise.
8799 (usubdi4_sp32): New instruction.
8800 (subvdi4_sp32): Likewise.
8801 (usubvsi4): New expander.
8802 (subvsi4): Likewise.
8803 (cmpsi_minus_sltu_set): New instruction.
8804 (cmp_ccv_minus): Likewise.
8805 (cmp_ccxv_minus): Likewise.
8806 (cmp_ccv_minus_set): Likewise.
8807 (cmp_ccxv_minus_set): Likewise.
8808 (cmp_ccv_minus_sltu_set): Likewise.
8809 (unegvdi3): New expander.
8810 (negvdi3): Likewise.
8811 (unegdi3_sp32): New instruction.
8812 (negvdi3_sp32): Likewise.
8813 (unegvsi3): New expander.
8814 (negvsi3): Likewise.
8815 (cmp_ccc_neg_sltu_set): New instruction.
8816 (cmp_ccv_neg): Likewise.
8817 (cmp_ccxv_neg): Likewise.
8818 (cmp_ccv_neg_set): Likewise.
8819 (cmp_ccxv_neg_set): Likewise.
8820 (cmp_ccv_neg_sltu_set): Likewise.
8821
8822 * tree-ssa-loop-split.c: Remove trailing spaces.
8823 * match.pd: Likewise.
8824
8825 2016-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8826
8827 PR rtl-optimization/78038
8828 * ree.c (get_defs): Return NULL if a defining insn for REG cannot
8829 be deduced to set REG through the RTL structure.
8830 (make_defs_and_copies_lists): Return false on a failing get_defs call.
8831
8832 2016-10-21 Richard Biener <rguenther@suse.de>
8833
8834 PR tree-optimization/78051
8835 * tree-vrp.c (evrp_dom_walker::before_dom_children): Update stmt
8836 and mark replaced if folding did something.
8837
8838 2016-10-21 David Edelsohn <dje.gcc@gmail.com>
8839
8840 * config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
8841 and "protected" in visibility types.
8842 (rs6000_xcoff_declare_function_name): Fix formatting.
8843 (rs6000_xcoff_declare_object_name): Fix formatting.
8844
8845 2016-10-21 Uros Bizjak <ubizjak@gmail.com>
8846
8847 * config/i386/i386.c (ix86_fold_builtin): Handle IX86_BUILTIN_INFQ
8848 and IX86_BUILTIN_HUGE_VALQ here ...
8849 (ix86_expand_builtin): ... not here.
8850
8851 2016-10-20 Jakub Jelinek <jakub@redhat.com>
8852
8853 * doc/gty.texi (for_user): Use @item next to @findex.
8854
8855 2016-10-20 Uros Bizjak <ubizjak@gmail.com>
8856
8857 PR target/78037
8858 * config/i386/bmiintrin.h (__tzcnt_u16): Call __builtin_ia32_tzcnt_u16.
8859 (__tzcnt_u32, _tzcnt_u32): Call __builtin_ia32_tzcnt_u32.
8860 (__tzcnt_u64, _tzcnt_u64): Call __builtin_ia32_tzcnt_u64.
8861 * config/i386/lzcntintrin.h (__lzcnt_u16): Call
8862 __builtin_ia32_lzcnt_u16.
8863 (__lzcnt_u32, _lzcnt_u32): Call __builtin_ia32_lzcnt_u32.
8864 (__lzcnt_u64, _lzcnt_u64): Call __builtin_ia32_lzcnt_u64.
8865 * config/i386/i386.md (UNSPEC_LZCNT, UNSPEC_TZCNT): New unspecs.
8866 (ctz<mode>2, *ctz<mode>2): Use SWI48 mode iterator.
8867 (bmi_tzcnt_<mode>): New expander.
8868 (*bmi_tzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
8869 (*bmi_tzcnt_<mode>_falsedep, *bmi_tzcnt_<mode>): New insn patterns.
8870 (clz<mode>2_lzcnt, *clz<mode>2_lzcnt): Use SWI48 mode iterator.
8871 (lzcnt_<mode>): New expander.
8872 (*lzcnt_<mode>_falsedep_1): New define_insn_and_split pattern.
8873 (*lzcnt_<mode>_falsedep, *lzcnt_<mode>): New insn patterns.
8874 * config/i386/i386-builtin-types.def (UINT_FTYPE_UINT): New.
8875 (UINT64_FTYPE_UINT64): New.
8876 * config/i386/i386-builtin.def (__builtin_clzs): Remove description.
8877 (__builtin_ia32_lzcnt_u16): New description.
8878 (__builtin_ia32_lzcnt_u32): Ditto.
8879 (__builtin_ia32_lzcnt_u64): Ditto.
8880 (__builtin_ctzs): Remove description.
8881 (__builtin_ia32_tzcnt_u16): New description.
8882 (__builtin_ia32_tzcnt_u32): Ditto.
8883 (__builtin_ia32_tzcnt_u64): Ditto.
8884 * config/i386/i386.c (ix86_expand_args_builtin): Handle
8885 UINT_FTYPE_UINT and UINT64_FTYPE_UINT64.
8886
8887 2016-10-20 Martin Liska <mliska@suse.cz>
8888
8889 PR lto/78049
8890 * lto-streamer-in.c (fixup_call_stmt_edges_1): Replace value
8891 comparison with STMT_UID_NOT_IN_RANGE.
8892 (fixup_call_stmt_edges): Do not fixup edges of a thunk in
8893 LTRANS.
8894
8895 2016-10-20 Eric Botcazou <ebotcazou@adacore.com>
8896
8897 * compare-elim.c (conforming_compare): Accept UNSPECs.
8898 (find_comparison_dom_walker::before_dom_children): Deal with
8899 instructions both using and killing the flags register.
8900 (equivalent_reg_at_start): New function extracted from...
8901 (try_eliminate_compare): ...here. Use it and add support for
8902 registers and UNSPECs as second operand of the compare.
8903 * config/visium/visium-modes.def (CCV): New.
8904 * config/visium/predicates.md (visium_v_comparison_operator): New.
8905 (visium_branch_operator): Deal with CCV mode.
8906 * config/visium/visium.c (visium_select_cc_mode): Likewise.
8907 (output_cbranch): Likewise.
8908 * config/visium/visium.md (UNSPEC_{ADD,SUB,NEG}V): New constants.
8909 (uaddv<mode>4): New expander.
8910 (addv<mode>4): Likewise.
8911 (add<mode>3_insn_set_carry): New instruction.
8912 (add<mode>3_insn_set_overflow): Likewise.
8913 (addsi3_insn_set_overflow): Likewise.
8914 (usubv<mode>4): New expander.
8915 (subv<mode>4): Likewise.
8916 (sub<mode>3_insn_set_carry): New instruction.
8917 (sub<mode>3_insn_set_overflow): Likewise.
8918 (subsi3_insn_set_overflow): Likewise.
8919 (unegv<mode>3): New expander.
8920 (negv<mode>3): Likewise.
8921 (neg<mode>2_insn_set_overflow): New instruction.
8922 (addv_tst<mode>): Likewise.
8923 (subv_tst<mode>): Likewise.
8924 (negv_tst<mode>): Likewise.
8925 (cbranch<mode>4_addv_insn): New splitter and instruction.
8926 (cbranch<mode>4_subv_insn): Likewise.
8927 (cbranch<mode>4_negv_insn): Likewise.
8928
8929 2016-10-20 Richard Biener <rguenther@suse.de>
8930
8931 * tree-ssa-alias.c (ptrs_compare_unequal): Remove code duplication.
8932 Handle decls possibly not bound.
8933 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Add
8934 nothing_id for decls that might not be bound if we are interested
8935 for the address.
8936 (get_constraint_for_component_ref): Deal with that.
8937
8938 2016-10-20 Michael Matz <matz@suse.de>
8939
8940 Loop splitting.
8941 * common.opt (-fsplit-loops): New flag.
8942 * passes.def (pass_loop_split): Add.
8943 * opts.c (default_options_table): Add OPT_fsplit_loops entry at -O3.
8944 (enable_fdo_optimizations): Add loop splitting.
8945 * timevar.def (TV_LOOP_SPLIT): Add.
8946 * tree-pass.h (make_pass_loop_split): Declare.
8947 * tree-ssa-loop-manip.h (rewrite_into_loop_closed_ssa_1): Declare.
8948 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h,
8949 * tree-ssa-loop-split.c: New file.
8950 * Makefile.in (OBJS): Add tree-ssa-loop-split.o.
8951 * doc/invoke.texi (fsplit-loops): Document.
8952 * doc/passes.texi (Loop optimization): Add paragraph about loop
8953 splitting.
8954
8955 2016-10-20 Richard Biener <rguenther@suse.de>
8956
8957 * cgraphunit.c (analyze_functions): Set node->definition to
8958 false to signal symbol removal to debug_hooks->late_global_decl.
8959 * ipa.c (symbol_table::remove_unreachable_nodes): When not in
8960 WPA signal symbol removal to the debuginfo machinery.
8961 * dwarf2out.c (dwarf2out_late_global_decl): Instead of
8962 using early_finised to guard the we're called for symbol
8963 removal case look at the symtabs definition flag.
8964 (gen_variable_die): Remove redundant check.
8965
8966 2016-10-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8967
8968 * config/s390/s390.md ("prefetch"): Add fallthrough comment.
8969
8970 2016-10-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8971
8972 PR tree-optimization/53979
8973 * match.pd ((a ^ b) | a -> a | b): New pattern.
8974
8975 2016-10-19 John David Anglin <danglin@gcc.gnu.org>
8976
8977 * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to
8978 config/pa/pa64-hpux-lib.h.
8979 (PA_CRTBEGIN_HACK): Likewise.
8980 (DTOR_LIST_BEGIN): Likewise.
8981
8982 2016-10-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
8983
8984 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
8985 register only if "in" and "out" are different registers.
8986
8987 2016-10-19 Eric Botcazou <ebotcazou@adacore.com>
8988
8989 * omp-low.c (pass_oacc_device_lower::gate): New method.
8990 (execute): Always call execute_oacc_device_lower.
8991
8992 2016-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8993
8994 PR tree-optimization/77916
8995 PR tree-optimization/77937
8996 * gimple-ssa-strength-reduction.c (analyze_increments): Remove
8997 stopgap fix.
8998 (insert_initializers): Requirement of initializer for -1 should be
8999 based on pointer-typedness of the candidate basis.
9000
9001 2016-10-19 Bin Cheng <bin.cheng@arm.com>
9002
9003 PR tree-optimization/78005
9004 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Compute
9005 upper (included) bound for niters of prolog loop.
9006 (vect_gen_scalar_loop_niters): Change parameter VF to VFM1.
9007 Compute niters of scalar loop above which vectorized loop is
9008 preferred, as well as the upper (included) bound for the niters.
9009 (vect_do_peeling): Record niter bound for loops accordingly.
9010
9011 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
9012
9013 PR lto/77458
9014 * tree-core.h (enum tree_index): Put the complex types after their
9015 component types.
9016 * tree-streamer.c (verify_common_node_recorded): New function.
9017 (preload_common_nodes) <TREE_CODE (node) == COMPLEX_TYPE>: Use it.
9018
9019 2016-10-19 Martin Liska <mliska@suse.cz>
9020
9021 * cgraph.h (cgraph_edge::binds_to_current_def_p):
9022 Replace NULL with false as a return value.
9023
9024 2016-10-19 Thomas Schwinge <thomas@codesourcery.com>
9025
9026 PR tree-optimization/78024
9027 * omp-low.c (oacc_loop_discovery): Call clear_bb_flags before, and
9028 don't clear BB_VISITED after processing.
9029
9030 2016-10-19 Richard Biener <rguenther@suse.de>
9031
9032 * domwalk.c (dom_walker::walk): Use RPO order.
9033
9034 2016-10-19 Richard Biener <rguenther@suse.de>
9035
9036 * tree-vrp.c (evrp_dom_walker::evrp_dom_walker): Initialize
9037 stmts_to_remove.
9038 (evrp_dom_walker::~evrp_dom_walker): Free it.
9039 (evrp_dom_walker::stmts_to_remove): Add.
9040 (evrp_dom_walker::before_dom_children): Mark PHIs and stmts
9041 whose output we fully propagate for removal. Propagate
9042 into BB destination PHI arguments.
9043 (execute_early_vrp): Remove queued stmts. Dump value ranges
9044 before stmt removal.
9045
9046 2016-10-18 Aldy Hernandez <aldyh@redhat.com>
9047
9048 * Makefile.in (OBJS): Add gimple-ssa-warn-alloca.o.
9049 * passes.def: Add two instances of pass_walloca.
9050 * tree-pass.h (make_pass_walloca): New.
9051 * gimple-ssa-warn-alloca.c: New file.
9052 * doc/invoke.texi: Document -Walloca, -Walloca-larger-than=, and
9053 -Wvla-larger-than= options.
9054
9055 2016-10-18 Thomas Schwinge <thomas@codesourcery.com>
9056
9057 * cfg.c (clear_bb_flags): Use FOR_ALL_BB_FN.
9058 * config/nvptx/nvptx.c (nvptx_find_sese): Likewise.
9059
9060 2016-10-18 Kelvin Nilsen <kelvin@gcc.gnu.org>
9061
9062 * config/rs6000/altivec.h (vec_xl_len): New macro.
9063 (vec_xst_len): New macro.
9064 (vec_cmpnez): New macro.
9065 (vec_cntlz_lsbb): New macro.
9066 (vec_cnttz_lsbb): New macro.
9067 (vec_xlx): New macro.
9068 (vec_xrx): New macro.
9069 (vec_all_nez): New C++ predicate template.
9070 (vec_any_eqz): New C++ predicate template.
9071 (vec_all_ne): Revised C++ predicate template under _ARCH_PWR9
9072 conditional compilation.
9073 (vec_any_eq): Revised C++ predicate template under _ARCH_PWR9
9074 conditional compilation.
9075 (vec_all_nez): New macro.
9076 (vec_any_eqz): New macro.
9077 (vec_all_ne): Revised macro under _ARCH_PWR9 conditional
9078 compilation.
9079 (vec_any_eq): Revised macro under _ARCH_PWR9 conditional
9080 compilation.
9081 * config/rs6000/vector.md (VI): Moved this mode iterator
9082 definition from altivec.md to vector.md.
9083 (UNSPEC_NEZ_P): New value.
9084 (vector_ne_<mode>_p): New expansion for implementation of
9085 vec_all_ne and vec_any_eq built-in functions.
9086 (vector_nez_<mode>_p): New expansion for implementation of
9087 vec_all_nez and vec_any_eqz built-in functions.
9088 (vector_ne_v2di_p): New expansion for implementation of vec_all_ne
9089 and vec_any_eq built-in function.
9090 (cr6_test_for_zero): New commentary to explain this expansion.
9091 (cr6_test_for_zero_reverse): New commentary to explain this expansion.
9092 (cr6_test_for_lt): New commentary to explain this expansion.
9093 (cr6_test_for_lt_reverse): New commentary to explain this
9094 expansion.
9095 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9096 overloaded function prototypes for vec_all_ne, vec_all_nez,
9097 vec_any_eq, vec_any_eqz, vec_cmpnez, vec_cntlz_lsbb,
9098 vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx, and vec_xrx
9099 built-in functions.
9100 (altivec_resolve_overloaded_builtin): Modify the handling of
9101 ALTIVEC_BUILTIN_VEC_CMPNE to use the Power9 instructions when
9102 the compiler is configured to support TARGET_P9_VECTOR.
9103 * config/rs6000/rs6000-builtin.def (BU_ALTIVEC_P): Add commentary
9104 to explain the special processing that is given to predicate
9105 built-ins introduced using this macro.
9106 (BU_ALTIVEC_OVERLOAD_P): Add commentary to alert maintainers to
9107 the special processing given to predicate built-ins introduced
9108 using this macro.
9109 (BU_VSX_P): Likewise.
9110 (BU_P8V_AV_P): Likewise.
9111 (BU_P9V_AV_P): Likewise.
9112 (BU_P9V_AV_X): New macro.
9113 (BU_P9V_64BIT_AV_X): New macro.
9114 (BU_P9V_VSX_3): New macro.
9115 (BU_P9V_OVERLOAD_P): New macro.
9116 (LXVL): New BU_P9V_64BIT_VSX_2.
9117 (VEXTUBLX): New BU_P9V_AV_2.
9118 (VEXTUBRX): Likewise.
9119 (VEXTUHLX): Likewise.
9120 (VEXTUHRX): Likewise.
9121 (VEXTUWLX): Likewise.
9122 (VEXTUWRX): Likewise.
9123 (STXVL): New BU_P9V_64BIT_AV_X.
9124 (VCLZLSBB): New BU_P9V_AV_1.
9125 (VCTZLSBB): Likewise.
9126 (CMPNEB): New BU_P9V_AV_2.
9127 (CMPNEH): Likewise.
9128 (CMPNEW): Likewise.
9129 (CMPNEF): Likewise.
9130 (CMPNED): Likewise.
9131 (VCMPNEB_P): New BU_P9V_AV_P.
9132 (VCMPNEH_P): Likewise.
9133 (VCMPNEW_P): Likewise.
9134 (VCMPNED_P): Likewise.
9135 (VCMPNEFP_P): Likewise.
9136 (VCMPNEDP_P): Likewise.
9137 (CMPNEZB): New BU_P9V_AV_2.
9138 (CMPNEZH): Likewise.
9139 (CMPNEZW): Likewise.
9140 (VCMPNEZB_P): New BU_P9V_AV_P.
9141 (VCMPNEZH_P): Likewise.
9142 (VCMPNEZW_P): Likewise.
9143 (LXVL): New BU_P9V_OVERLOAD_2.
9144 (STXVL): New BU_P9V_OVERLOAD_3.
9145 (VEXTULX): New BU_P9V_OVERLOAD_2.
9146 (VEXTURX): Likewise.
9147 (CMPNEZ): Likewise.
9148 (VCMPNEZ_P): New BU_P9V_OVERLOAD_P.
9149 (VCMPNE_P): Likewise.
9150 (VCLZLSBB): New BU_P9V_OVERLOAD_1.
9151 (VCTZLSBB): Likewise.
9152 * config/rs6000/rs6000.c (altivec_expand_predicate_builtin): Add
9153 comment to explain mode used for scratch register.
9154 (altivec_expand_stxvl_builtin): New function.
9155 (altivec_expand_builtin): Add case for new constant P9V_BUILTIN_STXVL.
9156 (altivec_init_builtins): Add initialized variable
9157 void_ftype_v16qi_pvoid_long and use this type to define the
9158 built-in function __builtin_altivec_stxvl.
9159 * config/rs6000/vsx.md (UNSPEC_LXVL): New value.
9160 (UNSPEC_STXVL): New value.
9161 (UNSPEC_VCLZLSBB): New value.
9162 (UNSPEC_VCTZLSBB): New value.
9163 (UNSPEC_VEXTUBLX): New value.
9164 (UNSPEC_VEXTUHLX): New value.
9165 (UNSPEC_VEXTUWLX): New value.
9166 (UNSPEC_VEXTUBRX): New value.
9167 (UNSPEC_VEXTUHRX): New value.
9168 (UNSPEC_VEXTUWRX): New value.
9169 (UNSPEC_VCMPNEB): New value.
9170 (UNSPEC_VCMPNEZB): New value.
9171 (UNSPEC_VCMPNEH): New value.
9172 (UNSPEC_VCMPNEZH): New value.
9173 (UNSPEC_VCMPNEW): New value.
9174 (UNSPEC_VCMPNEZW): New value.
9175 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
9176 vector of integer modes.
9177 (*vsx_ne_<mode>_p): New insn for vector test all not equal with
9178 vector of float or double modes.
9179 (*vector_nez_<mode>_p): New insn for vector test all not equal or
9180 zero.
9181 (lxvl): New expand for load VSX vector with length.
9182 (*lxvl): New insn for load VSX vector with length.
9183 (stxvl): New expand for store VSX vector with length.
9184 (*stxvl): New insn for store VSX vector with length.
9185 (vcmpneb): New insn for vector of byte compare not equal.
9186 (vcmpnezb): New insn for vector of byte compare not equal or zero.
9187 (vcmpneh): New insn for vector of half word compare not equal.
9188 (vcmpnezh): New insn for vector of half word compare not equal or
9189 zero.
9190 (vcmpnew): New insn for vector of word compare not equal.
9191 (vcmpne<VSs>): New insn for vector of float or double compare not
9192 equal.
9193 (vcmpnezw): New insn for vector of word compare not equal or zero.
9194 (vclzlsbb): New insn for vector count leading zero
9195 least-significant bits byte.
9196 (vctzlsbb): New insn for vector count trailing zero least
9197 signficant bits byte.
9198 (vextublx): New insn for vector extract unsigned byte left
9199 indexed.
9200 (vextubrx): New insn for vector extract unsigned byte right
9201 indexed.
9202 (vextuhlx): New insn for vector extract unsigned half word left
9203 indexed.
9204 (vextuhrx): New insn for vector extract unsigned half word right
9205 indexed.
9206 (vextuwlx): New insn for vector extract unsigned word left
9207 indexed.
9208 (vextuwrx): New insn for vector extract unsigned word right
9209 indexed.
9210 * config/rs6000/rs6000.h (RS6000_BTC_CONST): Enhance comment to
9211 clarify intent of this constant.
9212 * config/rs6000/altivec.md (VI): Move this mode iterator to vsx.md.
9213 * doc/extend.texi (PowerPC Altivec Built-in Functions): Add
9214 documentation for vec_all_nez, vec_any_eqz, vec_cmpnez,
9215 vec_cntlz_lsbb, vec_cnttz_lsbb, vec_xl_len, vec_xst_len, vec_xlx,
9216 and vec_xrx functions.
9217
9218 2016-10-18 Andrew Pinski <apinski@cavium.com>
9219
9220 PR tree-opt/65950
9221 * predict.c (is_exit_with_zero_arg): New function.
9222 (tree_bb_level_predictions): Don't consider paths leading to exit(0)
9223 as nottaken.
9224
9225 2016-10-18 Uros Bizjak <ubizjak@gmail.com>
9226
9227 PR target/77991
9228 * config/i386/i386.c (legitimize_tls_address)
9229 <case TLS_MODEL_INITIAL_EXEC>: For TARGET_64BIT || TARGET_ANY_GNU_TLS
9230 convert dest to Pmode if different than Pmode.
9231
9232 2016-10-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9233
9234 PR tree-optimization/77916
9235 * gimple-ssa-strength-reduction.c (analyze_increments): Reinstate
9236 stopgap fix, as pointers with -1 increment are still broken.
9237
9238 2016-10-18 David Edelsohn <dje.gcc@gmail.com>
9239
9240 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Move storage
9241 mapping class decoration from here...
9242 (rs6000_xcoff_encode_section): ...to here.
9243
9244 (rs6000_savres_strategy) [AIX,ELFv2]: Inline FPR save and restore
9245 if shrink-wrapping and optimizing for speed.
9246
9247 2016-10-18 Richard Biener <rguenther@suse.de>
9248
9249 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
9250 not visited but non-executable predecessors. Return taken edge.
9251 Simplify conditions and refactor propagation vs. folding step.
9252
9253 2016-10-18 Segher Boessenkool <segher@kernel.crashing.org>
9254
9255 * config/rs6000/rs6000.c (rs6000_savres_strategy): Do not select
9256 {SAVE,REST}_MULTIPLE if shrink-wrapping separate components.
9257 (rs6000_get_separate_components): Assert we do not have those
9258 strategies selected.
9259
9260 2016-10-18 Richard Biener <rguenther@suse.de>
9261
9262 * tree-ssa-propagate.h (substitute_and_fold): Adjust prototype.
9263 * tree-ssa-propagate.c (ssa_prop_fini): Remove final BB_VISITED
9264 clearing.
9265 (substitute_and_fold_dom_walker): Adjust constructor.
9266 (substitute_and_fold_dom_walker::before_dom_children): Remove
9267 do_dce flag and handling (always true).
9268 (substitute_and_fold): Likewise.
9269 * tree-vrp.c (vrp_finalize): Adjust.
9270 (execute_early_vrp): Remove final BB_VISITED clearing.
9271 * tree-ssa-ccp.c (ccp_finalize): Adjust.
9272 * tree-ssa-copy.c (fini_copy_prop): Likewise.
9273 * ira.c (ira): Call clear_bb_flags.
9274
9275 2016-10-18 Richard Biener <rguenther@suse.de>
9276
9277 * genmatch.c (dt_operand::gen_gimple_expr): Use get_name to
9278 get at the operand to look at with TREE_OPERAND for generic
9279 sub-nodes.
9280
9281 2016-10-18 David Malcolm <dmalcolm@redhat.com>
9282
9283 * genattrtab.c (attr_string): Use rtx_reader_ptr for call to
9284 copy_md_ptr_loc.
9285 (gen_attr): Use rtx_reader_ptr for lookup_enum_type call.
9286 (write_test_expr): Use rtx_reader_ptr for calls to
9287 fprint_c_condition.
9288 (write_attr_value): Likewise.
9289 * genconditions.c (write_one_condition): Use rtx_reader_ptr for
9290 call to print_md_ptr_loc.
9291 (write_one_condition): Likewise for calls to print_c_condition.
9292 * genconstants.c: Include "statistics.h" and "vec.h".
9293 (main): Update for conversion to member functions.
9294 * genemit.c (emit_c_code): Use rtx_reader_ptr for
9295 call to print_md_ptr_loc.
9296 * genenums.c: Include "statistics.h" and "vec.h".
9297 (main): Update for conversion of traverse_enum_types to a method.
9298 * genmddeps.c: Include "statistics.h" and "vec.h".
9299 * genoutput.c (process_template): Use rtx_reader_ptr for call to
9300 print_md_ptr_loc.
9301 * genpreds.c (write_predicate_subfunction): Likewise.
9302 (write_predicate_expr): Likewise for calls to print_c_condition.
9303 * genrecog.c (print_test): Likewise.
9304 * gensupport.c (process_rtx): Likewise for calls to
9305 copy_md_ptr_loc and join_c_conditions.
9306 (alter_test_for_insn): Likewise for call to join_c_conditions.
9307 (process_substs_on_one_elem): Likewise.
9308 (gen_mnemonic_setattr): Update for move of string_obstack to a
9309 field of rtx_reader.
9310 (mnemonic_htab_callback): Likewise. Fix formatting.
9311 (gen_mnemonic_attr): Likewise.
9312 * gentarget-def.c (def_target_insn): Use rtx_reader_ptr for calls
9313 to print_c_condition.
9314 * read-md.c: Include "statistics.h" and "vec.h".
9315 (string_obstack): Convert this global to field "m_string_obstack"
9316 of class rtx_reader.
9317 (ptr_locs): Likewise, as "m_ptr_locs".
9318 (ptr_loc_obstack): Likewise, as "m_ptr_loc_obstack".
9319 (joined_conditions): Likewise, as "m_joined_conditions".
9320 (joined_conditions_obstack): Likewise, as "m_joined_conditions_obstack".
9321 (md_constants): Likewise, as "m_md_constants".
9322 (enum_types): Likewise, as "m_enum_types".
9323 (set_md_ptr_loc): Convert to...
9324 (rtx_reader::set_md_ptr_loc): ...member function.
9325 (get_md_ptr_loc): Convert to...
9326 (rtx_reader::get_md_ptr_loc): ...member function.
9327 (copy_md_ptr_loc): Convert to...
9328 (rtx_reader::copy_md_ptr_loc): ...member function.
9329 (fprint_md_ptr_loc): Convert to...
9330 (rtx_reader::fprint_md_ptr_loc): ...member function.
9331 (print_md_ptr_loc): Convert to...
9332 (rtx_reader::print_md_ptr_loc): ...member function.
9333 (join_c_conditions): Convert to...
9334 (rtx_reader::join_c_conditions): ...member function.
9335 (fprint_c_condition): Convert to...
9336 (rtx_reader::fprint_c_condition): ...member function.
9337 (print_c_condition): Convert to...
9338 (rtx_reader::print_c_condition): ...member function.
9339 (read_name): Convert to...
9340 (rtx_reader::read_name): ...member function.
9341 (read_escape): Convert to...
9342 (rtx_reader::read_escape): ...member function.
9343 (read_quoted_string): Convert to...
9344 (rtx_reader::read_quoted_string): ...member function.
9345 (read_braced_string): Convert to...
9346 (rtx_reader::read_braced_string): ...member function.
9347 (read_string): Convert to...
9348 (rtx_reader::read_string): ...member function.
9349 (read_skip_construct): Convert to...
9350 (rtx_reader::read_skip_construct): ...member function.
9351 (handle_constants): Convert to...
9352 (rtx_reader::handle_constants): ...member function.
9353 (traverse_md_constants): Convert to...
9354 (rtx_reader::traverse_md_constants): ...member function.
9355 (handle_enum): Convert to...
9356 (rtx_reader::handle_enum): ...member function.
9357 (lookup_enum_type): Convert to...
9358 (rtx_reader::lookup_enum_type): ...member function.
9359 (traverse_enum_types): Convert to...
9360 (rtx_reader::traverse_enum_types): ...member function.
9361 (rtx_reader::rtx_reader): Move initializations
9362 of various former global data from rtx_reader::read_md_files to
9363 here, as fields, along with the call to unlock_std_streams.
9364 (rtx_reader::~rtx_reader): Clean up m_base_dir, and clean up
9365 the new fields.
9366 (rtx_reader::read_md_files): Move initializations of various
9367 global data from here to the ctor.
9368 * read-md.h (read_name): Convert to...
9369 (rtx_reader::read_name): ...member function.
9370 (rtx_reader::read_escape): New method decl.
9371 (read_quoted_string): Convert to...
9372 (rtx_reader::read_quoted_string): ...member function.
9373 (rtx_reader::read_braced_string): New method decl.
9374 (read_string): Convert to...
9375 (rtx_reader::read_string): ...member function.
9376 (rtx_reader::read_skip_construct): New method decl.
9377 (rtx_reader::set_md_ptr_loc): New method decl.
9378 (rtx_reader::get_md_ptr_loc): New method decl.
9379 (copy_md_ptr_loc): Convert to...
9380 (rtx_reader::copy_md_ptr_loc): ...member function.
9381 (fprint_md_ptr_loc): Convert to...
9382 (rtx_reader::fprint_md_ptr_loc): ...member function.
9383 (print_md_ptr_loc): Convert to...
9384 (rtx_reader::print_md_ptr_loc): ...member function.
9385 (rtx_reader::lookup_enum_type): New method decl.
9386 (rtx_reader::traverse_enum_types): New method decl.
9387 (rtx_reader::handle_constants): New method decl.
9388 (traverse_md_constants): Convert to...
9389 (rtx_reader::traverse_md_constants): ...member function.
9390 (rtx_reader::handle_enum): New method decl.
9391 (rtx_reader::join_c_conditions): New method decl.
9392 (fprint_c_condition): Convert to...
9393 (rtx_reader::fprint_c_condition): ...member function.
9394 (print_c_condition): Convert to...
9395 (rtx_reader::print_c_condition): ...member function.
9396 (rtx_reader::apply_iterator_to_string): New method decl.
9397 (rtx_reader::copy_rtx_for_iterators): New method decl.
9398 (rtx_reader::read_conditions): New method decl.
9399 (rtx_reader::record_potential_iterator_use): New method decl.
9400 (rtx_reader::read_mapping): New method decl.
9401 (rtx_reader::read_rtx): New method decl.
9402 (rtx_reader::read_rtx_code): New method decl.
9403 (rtx_reader::read_rtx_operand): New method decl.
9404 (rtx_reader::read_nested_rtx): New method decl.
9405 (rtx_reader::read_rtx_variadic): New method decl.
9406 (rtx_reader::get_string_obstack): New method.
9407 (rtx_reader::get_md_constants): New method.
9408 (string_obstack): Convert global variable decl to...
9409 (rtx_reader::m_string_obstack): ...this new field.
9410 (rtx_reader::m_ptr_locs): New field.
9411 (rtx_reader::m_ptr_loc_obstack): New field.
9412 (rtx_reader::m_joined_conditions): New field.
9413 (rtx_reader::m_joined_conditions_obstack): New field.
9414 (rtx_reader::m_md_constants): New field.
9415 (rtx_reader::m_enum_types): New field.
9416 * read-rtl.c (apply_iterator_to_string): Convert to...
9417 (rtx_reader::apply_iterator_to_string): ...member function.
9418 (copy_rtx_for_iterators): Convert to...
9419 (rtx_reader::copy_rtx_for_iterators): ...member function.
9420 (add_condition_to_string): Use rtx_reader_ptr for
9421 calls join_c_conditions.
9422 (apply_iterators): Use rtx_reader_ptr for calls to
9423 join_c_conditions and copy_rtx_for_iterators.
9424 (read_conditions): Convert to...
9425 (rtx_reader::read_conditions): ...member function.
9426 (record_potential_iterator_use): Convert to...
9427 (rtx_reader::record_potential_iterator_use): ...member function.
9428 (read_mapping): Convert to...
9429 (rtx_reader::read_mapping): ...member function.
9430 (read_subst_mapping): Use rtx_reader_ptr for read_string call.
9431 (read_rtx): Convert to...
9432 (rtx_reader::read_rtx): ...member function.
9433 (read_rtx_code): Convert to...
9434 (rtx_reader::read_rtx_code): ...member function.
9435 (read_rtx_operand): Convert to...
9436 (rtx_reader::read_rtx_operand): ...member function. Update for move
9437 of string_obstack to a field.
9438 (read_nested_rtx): Convert to..
9439 (rtx_reader::read_nested_rtx): ...member function.
9440 (read_rtx_variadic): Convert to..
9441 (rtx_reader::read_rtx_variadic): ...member function.
9442
9443 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
9444
9445 * tree-vrp.c (get_value_range): Check get_ptr_nonnull.
9446
9447 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
9448
9449 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Set value range
9450 for pointer type too.
9451 (ipcp_update_vr): set_ptr_nonnull for pointer.
9452
9453 2016-10-18 Kugan Vivekanandarajah <kuganv@linaro.org>
9454
9455 * tree-ssa-alias.h (pt_solution_singleton_or_null_p): Renamed from
9456 pt_solution_singleton_p.
9457 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use renamed
9458 pt_solution_singleton_or_null_p from pt_solution_singleton_p.
9459 * tree-ssa-structalias.c (find_what_p_points_to): Preserve
9460 pointer nonnull computed by VRP.
9461 Also Conservatively set pt.null to 1.
9462 (pt_solution_reset): Conservatively set pt.null to 1.
9463 (pt_solution_singleton_or_null_p): Renamed from
9464 pt_solution_singleton_p.
9465 * tree-ssanames.h (set_ptr_nonnull): Declare.
9466 (get_ptr_nonnull): Likewise.
9467 * tree-ssanames.c (set_ptr_nonnull): New.
9468 (get_ptr_nonnull): Likewise.
9469 * tree-vrp.c (vrp_finalize): Set ptr that are nonnull.
9470 (evrp_dom_walker::before_dom_children): Likewise.
9471
9472 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
9473
9474 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
9475 * config/i386/i386.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
9476 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
9477 * config/ia64/ia64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
9478 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to.
9479 * config/rs6000/rs6000.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ...here.
9480 (rs6000_option_override_internal): Clear it if ABI_AIX.
9481 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Move to...
9482 * config/sparc/sparc.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): ... here.
9483
9484 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9485
9486 * gimple-ssa-strength-reduction.c (record_increment): Remove
9487 garbage comment.
9488
9489 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
9490
9491 * expmed.c (expand_shift_1): Add MAY_FAIL parameter and do not assert
9492 that the result is non-zero if it is true.
9493 (maybe_expand_shift): New wrapper around expand_shift_1.
9494 (emit_store_flag): Call maybe_expand_shift in lieu of expand_shift.
9495
9496 2016-10-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9497
9498 PR tree-optimization/77916
9499 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
9500 Don't allow a MINUS_EXPR for pointer arithmetic for either known
9501 or unknown strides.
9502 (record_increment): Increments of -1 for unknown strides just use
9503 a multiply initializer like other negative values.
9504 (analyze_increments): Remove stopgap solution for -1 increment
9505 applied to pointer arithmetic.
9506
9507 2016-10-17 Yuri Rumyantsev <ysrumyan@gmail.com>
9508
9509 * dominance.c (dom_info::dom_info): Add new constructor for region
9510 which is vector of basic blocks.
9511 (dom_init): New method to initialize members common for both
9512 constructors.
9513 (dom_info::dom_info): Invoke dom_init for partial initialization.
9514 (dom_info::get_idom): Add check to corner cases on basic blocks which
9515 are not in region.
9516 (dom_info::calc_dfs_tree): Check M_FAKE_EXIT_EDGE instead of M_REVERSE
9517 to detect unreachable bbs.
9518 (dom_info::calc_idoms): Likewise.
9519 (compute_dom_fast_query_in_region): New function.
9520 (calculate_dominance_info_for_region): Likewise.
9521 (free_dominance_info_for_region): Likewise.
9522 * dominance.h: Add prototypes for introduced region-based functions
9523 * tree-if-conv.c (build_region): New function.
9524 (if_convertible_loop_p_1): Invoke local version of post-dominators
9525 calculation before basic block predication with subsequent freeing
9526 post-dominator info.
9527 (tree_if_conversion): Remove free of post-dominator info
9528 (pass_if_conversion::execute): Delete detection of infinite loops
9529 and fake edges to exit block since post-dominator calculation is
9530 performed per if-converted loop only.
9531
9532 2016-10-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
9533
9534 PR target/77308
9535 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): Clear the result
9536 register explicitly.
9537 * config/arm/arm.md (ashldi3, ashrdi3, lshrdi3): Don't FAIL if
9538 optimizing for size.
9539
9540 2016-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9541
9542 * config/aarch64/aarch64.c: Delete inclusion of
9543 cortex-a57-fma-steering.h.
9544 (aarch64_override_options): Delete call
9545 to aarch64_register_fma_steering.
9546 * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare.
9547 * config/aarch64/cortex-a57-fma-steering.h: Delete.
9548 * config/aarch64/aarch64-passes.def: New file.
9549 * config/aarch64/cortex-a57-fma-steering.c
9550 (aarch64_register_fma_steering): Delete definition.
9551 (make_pass_fma_steering): Remove static qualifier.
9552 * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive.
9553 (cortex-a57-fma-steering.o): Remove dependency on
9554 cortex-a57-fma-steering.h.
9555
9556 2016-10-17 Eric Botcazou <ebotcazou@adacore.com>
9557
9558 * explow.c (validize_mem): Do not modify the argument in-place.
9559
9560 2016-10-17 Thomas Schwinge <thomas@codesourcery.com>
9561
9562 * tree-streamer.c (record_common_node): Explicitly list expected
9563 tree codes.
9564
9565 2016-10-17 Richard Biener <rguenther@suse.de>
9566
9567 PR tree-optimization/77988
9568 * tree-vrp.c (remove_range_assertions): Use replace_uses_by.
9569
9570 2016-10-17 Marek Polacek <polacek@redhat.com>
9571
9572 * Makefile.in (C_COMMON_OBJS): Add c-family/c-attribs.o.
9573
9574 2016-10-17 Richard Biener <rguenther@suse.de>
9575
9576 * bb-reorder.c (reorder_basic_blocks_simple): Clear BB_VISITED
9577 before using it.
9578
9579 2016-10-17 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9580
9581 PR tree-optimization/71636
9582 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern.
9583
9584 2016-10-17 Richard Biener <rguenther@suse.de>
9585
9586 * gimplify.c (gimplify_function_tree): Do not move the outer
9587 binds block.
9588
9589 2016-10-17 Jakub Jelinek <jakub@redhat.com>
9590
9591 * langhooks.h (struct lang_hooks_for_decls): Remove
9592 function_decl_explicit_p, function_decl_deleted_p and
9593 function_decl_defaulted hooks. Add decl_dwarf_attribute hook.
9594 * langhooks-def.h (lhd_decl_dwarf_attribute): Declare.
9595 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
9596 LANG_HOOKS_FUNCTION_DECL_DELETED_P,
9597 LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Remove.
9598 (LANG_HOOKS_DECL_DWARF_ATTRIBUTE): Define.
9599 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P,
9600 LANG_HOOKS_FUNCTION_DECL_DELETED_P and
9601 LANG_HOOKS_FUNCTION_DECL_DEFAULTED. Add
9602 LANG_HOOKS_DECL_DWARF_ATTRIBUTE.
9603 * langhooks.c (lhd_decl_dwarf_attribute): New function.
9604 * dwarf2out.c (gen_subprogram_die): Use
9605 lang_hooks.decls.decl_dwarf_attribute instead of
9606 lang_hooks.decls.function_decl_*.
9607
9608 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
9609
9610 PR ada/37139
9611 PR ada/67205
9612 * common.opt (-ftrampolines): New option.
9613 * doc/invoke.texi (Code Gen Options): Document it.
9614 * doc/tm.texi.in (Trampolines): Add TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
9615 * doc/tm.texi: Regenerate.
9616 * builtins.def: Add init_descriptor and adjust_descriptor.
9617 * builtins.c (expand_builtin_init_trampoline): Do not issue a warning
9618 on platforms with descriptors.
9619 (expand_builtin_init_descriptor): New function.
9620 (expand_builtin_adjust_descriptor): Likewise.
9621 (expand_builtin) <BUILT_IN_INIT_DESCRIPTOR>: New case.
9622 <BUILT_IN_ADJUST_DESCRIPTOR>: Likewise.
9623 * calls.c (prepare_call_address): Remove SIBCALLP parameter and add
9624 FLAGS parameter. Deal with indirect calls by descriptor and adjust.
9625 Set STATIC_CHAIN_REG_P on the static chain register, if any.
9626 (call_expr_flags): Set ECF_BY_DESCRIPTOR for calls by descriptor.
9627 (expand_call): Likewise. Move around call to prepare_call_address
9628 and pass all flags to it.
9629 * cfgexpand.c (expand_call_stmt): Reinstate CALL_EXPR_BY_DESCRIPTOR.
9630 * gimple.h (enum gf_mask): New GF_CALL_BY_DESCRIPTOR value.
9631 (gimple_call_set_by_descriptor): New setter.
9632 (gimple_call_by_descriptor_p): New getter.
9633 * gimple.c (gimple_build_call_from_tree): SetCALL_EXPR_BY_DESCRIPTOR.
9634 (gimple_call_flags): Deal with GF_CALL_BY_DESCRIPTOR.
9635 * langhooks.h (struct lang_hooks): Add custom_function_descriptors.
9636 * langhooks-def.h (LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS): Define.
9637 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_CUSTOM_FUNCTION_DESCRIPTORS.
9638 * rtl.h (STATIC_CHAIN_REG_P): New macro.
9639 * rtlanal.c (find_first_parameter_load): Skip static chain registers.
9640 * target.def (custom_function_descriptors): New POD hook.
9641 * tree.h (FUNC_ADDR_BY_DESCRIPTOR): New flag on ADDR_EXPR.
9642 (CALL_EXPR_BY_DESCRIPTOR): New flag on CALL_EXPR.
9643 * tree-core.h (ECF_BY_DESCRIPTOR): New mask.
9644 Document FUNC_ADDR_BY_DESCRIPTOR and CALL_EXPR_BY_DESCRIPTOR.
9645 * tree.c (make_node_stat) <tcc_declaration>: Use FUNCTION_ALIGNMENT.
9646 (build_common_builtin_nodes): Initialize init_descriptor and
9647 adjust_descriptor.
9648 * tree-nested.c: Include target.h.
9649 (struct nesting_info): Add 'any_descr_created' field.
9650 (get_descriptor_type): New function.
9651 (lookup_element_for_decl): New function extracted from...
9652 (create_field_for_decl): Likewise.
9653 (lookup_tramp_for_decl): ...here. Adjust.
9654 (lookup_descr_for_decl): New function.
9655 (convert_tramp_reference_op): Deal with descriptors.
9656 (build_init_call_stmt): New function extracted from...
9657 (finalize_nesting_tree_1): ...here. Adjust and deal with descriptors.
9658 * defaults.h (FUNCTION_ALIGNMENT): Define.
9659 (TRAMPOLINE_ALIGNMENT): Set to above instead of FUNCTION_BOUNDARY.
9660 * config/i386/i386.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
9661 * config/ia64/ia64.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
9662 * config/rs6000/rs6000.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS):Likewise.
9663 * config/sparc/sparc.h (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Likewise.
9664
9665 2016-10-16 Eric Botcazou <ebotcazou@adacore.com>
9666
9667 * config/sparc/sparc.c (sparc_expand_vector_init): Only accept literal
9668 constants in CONST_VECTORs.
9669
9670 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
9671
9672 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use a scratch
9673 register as destination of bmask.
9674 (vector_init_bshuffle): Likewise.
9675 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
9676 (bmaskdi_vis): Enable only in 64-bit mode.
9677
9678 2016-10-15 Segher Boessenkool <segher@kernel.crashing.org>
9679
9680 * config/rs6000/rs6000.c (rs6000_get_separate_components): Do not
9681 make LR a separately shrink-wrapped component unless savres_strategy
9682 contains all of {SAVE,REST}_INLINE_{GPRS,FPRS,VRS}. Do not wrap
9683 GPRs unless both {SAVE,REST}_INLINE_GPRS. Do not disallow all
9684 wrapping when not both {SAVE,REST}_INLINE_GPRS.
9685
9686 2016-10-15 Eric Botcazou <ebotcazou@adacore.com>
9687
9688 * optabs.c (expand_parity): Fix mode mismatch, add final conversion
9689 and keep looping on failure.
9690
9691 2016-10-14 David Malcolm <dmalcolm@redhat.com>
9692
9693 * print-rtl-function.c (print_edge): Omit "(flags)" when none are
9694 set.
9695 (print_rtx_function): Update example in comment for...
9696 * print-rtl.c (print_rtx_operand_code_r): In compact mode, print
9697 non-virtual pseudos with a '%' sigil followed by the regno, offset
9698 by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual
9699 pseudo is dumped as "%0".
9700
9701 2016-10-14 Jakub Jelinek <jakub@redhat.com>
9702
9703 PR middle-end/77959
9704 * expr.c (expand_expr_real_1) <case CONST_DECL>: For EXPAND_WRITE
9705 return a MEM.
9706
9707 2016-10-14 Eric Botcazou <ebotcazou@adacore.com>
9708
9709 * config/sparc/sparc-passes.def: New file.
9710 * config/sparc/t-sparc (PASSES_EXTRA): Add sparc-passes.def.
9711 * config/sparc/sparc-protos.h (make_pass_work_around_errata): New.
9712 * config/sparc/sparc.c (sparc_option_override): Don't register passes.
9713
9714 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
9715
9716 * loop-unroll.c (unroll_loop_runtime_iterations): Condition initial
9717 loop peel to loops with exit test at the beginning.
9718
9719 2016-10-14 Pat Haugen <pthaugen@us.ibm.com>
9720
9721 PR rtl-optimization/68212
9722 * cfgloopmanip.c (duplicate_loop_to_header_edge): Use preheader edge
9723 frequency when computing scale factor for peeled copies.
9724 * loop-unroll.c (unroll_loop_runtime_iterations): Fix freq/count
9725 values for switch/peel blocks/edges.
9726
9727 2016-10-14 Pedro Alves <palves@redhat.com>
9728
9729 * coretypes.h (OVERRIDE, FINAL): Delete, moved to include/ansidecl.h.
9730
9731 2016-10-14 Catherine Moore <clm@codesourcery.com>
9732
9733 * config/mips/mips.c (mips_prepare_pch_save): Initialize
9734 micromips_globals to zero.
9735
9736 2016-10-14 Richard Biener <rguenther@suse.de>
9737
9738 PR tree-optimization/77979
9739 * tree-vrp.c (compare_name_with_value): Handle released SSA names
9740 in the equivalency sets.
9741 (compare_names): Likewise.
9742
9743 2016-10-14 Martin Liska <mliska@suse.cz>
9744
9745 * builtins.h(target_char_cst_p): Declare the function.
9746 * builtins.c (fold_builtin_memchr): Remove.
9747 (target_char_cst_p): Move the function from gimple-fold.c.
9748 (fold_builtin_3): Do not call the function.
9749 * gimple-fold.c (gimple_fold_builtin_memchr): New function.
9750 (gimple_fold_builtin): Call the function.
9751 * fold-const-call.c (fold_const_call_1): Handle CFN_BUILT_IN_MEMCHR.
9752
9753 2016-10-14 Martin Liska <mliska@suse.cz>
9754
9755 * builtins.c (fold_builtin_strcmp): Remove function.
9756 (fold_builtin_strncmp): Likewise.
9757 (fold_builtin_2): Remove call of the function.
9758 (fold_builtin_3): Likewise.
9759 * fold-const-call.c (fold_const_call): Add constant folding
9760 for CFN_BUILT_IN_STRCASECMP and CFN_BUILT_IN_STRNCASECMP.
9761 * fold-const-call.h (build_cmp_result): Declare the function.
9762 * gimple-fold.c (gimple_load_first_char): New function.
9763 (gimple_fold_builtin_string_compare): Likewise.
9764 (gimple_fold_builtin): Call the function.
9765
9766 2016-10-14 Nathan Sidwell <nathan@acm.org>
9767
9768 * gcov-io.c (gcov_open): Deconstify 'mode'.
9769
9770 2016-10-14 Martin Liska <mliska@suse.cz>
9771
9772 * fold-const.c (c_getstr): Support of properly \0-terminated
9773 string constants. New argument is added.
9774 * fold-const.h: New argument is added.
9775
9776 2016-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9777
9778 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch):
9779 New function.
9780 (aarch64_print_hint_for_core): Likewise.
9781 (aarch64_print_hint_for_arch): Likewise.
9782 (aarch64_validate_march): Use it. Fix indentation in type signature.
9783 (aarch64_validate_mcpu): Use aarch64_print_hint_for_core_or_arch.
9784 (aarch64_validate_mtune): Likewise.
9785 (aarch64_handle_attr_arch): Likewise.
9786 (aarch64_handle_attr_cpu): Likewise.
9787 (aarch64_handle_attr_tune): Likewise.
9788
9789 2016-10-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9790
9791 * optabs.def: Remove optab function gen_int_libfunc for sdivmod_optab
9792 and udivmod_optab.
9793
9794 2016-10-13 Andreas Schwab <schwab@linux-m68k.org>
9795
9796 * config/m68k/m68k.c (m68k_option_override): Check
9797 opt_fstack_limit_symbol_arg and opt_fstack_limit_register_no
9798 instead of stack_limit_rtx.
9799
9800 2016-10-13 Jakub Jelinek <jakub@redhat.com>
9801
9802 * dwarf2out.c (gen_member_die): Handle inline static data member
9803 definitions.
9804
9805 2016-10-13 Nathan Sidwell <nathan@acm.org>
9806
9807 * gcov-io.c (gcov_open): Fix documentation. Simplify setting
9808 gcov_var.mode. Remove unnecessary fstat.
9809
9810 2016-10-13 Segher Boessenkool <segher@kernel.crashing.org>
9811
9812 PR bootstrap/77962
9813 * function.c (thread_prologue_and_epilogue_insns): Call all
9814 make_*logue_seq in the same order as traditional. Call them
9815 all a second time if shrink_wrapped_separate.
9816
9817 2016-10-13 Marek Polacek <polacek@redhat.com>
9818
9819 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
9820 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Don't
9821 use -Wno-error.
9822
9823 2016-10-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9824
9825 PR tree-optimization/77937
9826 * gimple-ssa-strength-reduction.c (analyze_increments): Set cost
9827 to infinite when we have a pointer with an increment of -1.
9828
9829 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
9830
9831 * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
9832 into ...
9833 * memmodel.h: This file.
9834 * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
9835 caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
9836 cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
9837 combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
9838 common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
9839 common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
9840 common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
9841 compare-elim.c, config/aarch64/aarch64-builtins.c,
9842 config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
9843 config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
9844 config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
9845 config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
9846 config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
9847 config/darwin.c, config/epiphany/epiphany.c,
9848 config/epiphany/mode-switch-use.c,
9849 config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
9850 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
9851 config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
9852 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
9853 config/m68k/m68k.c, config/mcore/mcore.c,
9854 config/microblaze/microblaze.c, config/mmix/mmix.c,
9855 config/mn10300/mn10300.c, config/moxie/moxie.c,
9856 config/msp430/msp430.c, config/nds32/nds32-cost.c,
9857 config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9858 config/nds32/nds32-memory-manipulation.c,
9859 config/nds32/nds32-predicates.c, config/nds32/nds32.c,
9860 config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
9861 config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
9862 config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
9863 config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
9864 config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
9865 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
9866 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
9867 config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
9868 coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
9869 df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
9870 dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
9871 expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
9872 ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
9873 ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
9874 ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
9875 loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
9876 lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
9877 lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
9878 lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
9879 postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
9880 recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
9881 reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
9882 rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
9883 sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
9884 stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
9885 targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
9886 tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
9887 tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
9888 tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
9889 var-tracking.c, varasm.c: Include memmodel.h.
9890 * genattrtab.c (write_header): Include memmodel.h in generated file.
9891 * genautomata.c (main): Likewise.
9892 * gengtype.c (open_base_files): Likewise.
9893 * genopinit.c (main): Likewise.
9894 * genconditions.c (write_header): Include memmodel.h earlier in
9895 generated file.
9896 * genemit.c (main): Likewise.
9897 * genoutput.c (output_prologue): Likewise.
9898 * genpeep.c (main): Likewise.
9899 * genpreds.c (write_insn_preds_c): Likewise.
9900 * genrecog.c (write_header): Likewise.
9901 * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
9902
9903 2016-10-13 David Malcolm <dmalcolm@redhat.com>
9904
9905 * function-tests.c (selftest::test_expansion_to_rtl): Add "true"
9906 for new "compact" param of print_rtx_function. Check for "cinsn"
9907 rather than "insn".
9908 * print-rtl-function.c (flag_compact): New decl.
9909 (print_rtx_function): Add param "compact" and use it to set
9910 flag_compact, adding a description of the effect to the leading
9911 comment, and updating the example output.
9912 * print-rtl.c (flag_compact): New variable.
9913 (print_rtx_operand_code_0): Omit the JUMP_LABEL reference in compact
9914 mode.
9915 (print_rtx_operand_code_i): When printing source locations, wrap
9916 xloc.file in quotes. Don't print INSN_CODEs in compact mode.
9917 (print_rtx_operand_code_r): Don't print regnos for hard regs and
9918 virtuals in compact mode.
9919 (print_rtx_operand_code_u): Don't print insn UIDs in compact mode,
9920 apart from in LABEL_REFs.
9921 (print_rtx_operand): In case 'w', don't print in hex in compact mode.
9922 Don't print basic block ids in compact mode.
9923 (print_rtx): In compact mode, prefix the code of insns with "c",
9924 only print the INSN_UID of CODE_LABELs, and omit their LABEL_NUSES.
9925 * print-rtl.h (print_rtx_function): Add "compact" param.
9926
9927 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
9928
9929 * arm.h (TARGET_VFP): Delete.
9930 (TARGET_VFPD32): Remove references to TARGET_VFP.
9931 (TARGET_VFP3, TARGET_VFP5): Likewise.
9932 (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise.
9933 (TARGET_NEON_FP16): Likewise.
9934 (TARGET_FMA): Likewise.
9935 (TARGET_CRYPTO): Likewise.
9936 (TARGET_NEON): Likewise.
9937 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
9938 (FUNCTION_ARG_REGNO_P): Likewise.
9939 * arm.c (arm_option_check_internal): Likewise.
9940 (arm_option_override): Likewise.
9941 (use_return_insn): Likewise.
9942 (arm_function_value_regno_p): Likewise.
9943 (arm_apply_result_size): Likewise.
9944 (use_vfp_abi): Likewise.
9945 (arm_legitimate_address_outer_p): Likewise.
9946 (thumb2_legitimate_address_p): Likewise.
9947 (arm_legitimate_index_p): Likewise.
9948 (thumb2_legitimate_index_p): Likewise.
9949 (arm_legitimate_address): Likewise.
9950 (arm_get_vfp_saved_size): Likewise.
9951 (arm_emit_vfp_multi_reg_pop): Likewise.
9952 (arm_get_frame_offsets): Likewise.
9953 (arm_save_coproc_regs): Likewise.
9954 (arm_hard_regno_mode_ok): Likewise.
9955 (arm_expand_epilogue_apcs_frame): Likewise.
9956 (arm_expand_epilogue): Likewise.
9957 (arm_file_start): Likewise.
9958 (arm_conditional_register_usage): Likewise.
9959 (arm_validize_comparison): Use vfp_compare_operand directly.
9960 * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP.
9961 (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting
9962 unsupported usage.
9963 (arm_atomic_assign_expand_fenv): Likewise.
9964 * arm.md (divsf3): Likewise.
9965 (arm_negsi2): Likewise.
9966 (absdf2): Likewise.
9967 (arm_movdi): Likewise.
9968 (arm_movt): Likewise.
9969 (cbranchsf4): Change predicate to vfp_compare_operand.
9970 (cbranchdf4): Change predicate to vfp_compare_operand.
9971 (cstorehf4): Change predicate to vfp_compare_operand.
9972 (cstoresf4): Change predicate to vfp_compare_operand.
9973 (cstoredf4): Change predicate to vfp_compare_operand.
9974 (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP.
9975 (movhi_insn_arch4, movhi_bytes): Likewise.
9976 * constraints.md (Dt): Likewise.
9977 (Dp): Likewise.
9978 * iterators.md (SDF): Likewise.
9979 * predicates.md (arm_float_compare_operand): Delete.
9980 (const_double_vcvt_power_of_two_reciprocal): Remove references to
9981 TARGET_VFP.
9982 (const_double_vcvt_power_of_two): Likewise.
9983 * thumb2.md thumb2_movsi_insn): Likewise.
9984 * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise.
9985 (movhf_vfp): Likewise.
9986 (arm_movsi_vfp, thumb2_movsi_vfp): Likewise.
9987 (movdi_vfp, movdi_vfp_cortexa8): Likewise.
9988 (movsf_vfp, thumb2_movsf_vfp): Likewise.
9989 (movdf_vfp, thumb2_movdf_vfp): Likewise.
9990 (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise.
9991 (subsf3_vfp, divsf3_vfp): Likewise.
9992 (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise.
9993 (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise.
9994 (mulsf3negsfsubsf_vfp): Likewise.
9995 (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise.
9996 (floatunssisf2, sqrtsf2_vfp): Likewise.
9997 (movcc_vfp): Likewise.
9998 (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise.
9999 (cmpsf_vfp, cmpsf_trap_vfp): Likewise.
10000 (push_multi_vfp): Likewise.
10001 (set_fpscr, get_fpscr): Likewise.
10002 * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__.
10003
10004 2016-10-13 Richard Earnshaw <rearnsha@arm.com>
10005
10006 * arm.h (TARGET_VFP): Unconditionally define to 1.
10007 (arm_fpu_desc): Remove 'model' field.
10008 (TARGET_FPU_MODEL): Delete.
10009 * arm.c (all_fpus): Don't initialize the model field.
10010 (arm_can_inline_p): Don't check the FPU model.
10011 * arm-fpus.def: Remove redundant model field from all FPU
10012 descriptions.
10013
10014 2016-10-13 Richard Biener <rguenther@suse.de>
10015
10016 PR middle-end/77826
10017 * genmatch.c (struct capture): Add value_match member.
10018 (commutate): Preserve value_match.
10019 (lower_opt_convert): Likewise.
10020 (lower_cond): Likewise.
10021 (replace_id): Likewise.
10022 (struct dt_operand): Add value_match member.
10023 (decision_tree::cmp_node): Compare it.
10024 (decision_tree::insert_operand): Honor it when finding and
10025 when appending a DT_MATCH.
10026 (dt_operand::gen_match_op): Generate a type check after
10027 operand_equal_p if ! value_match for both GENERIC and GIMPLE.
10028 (parser::get_internal_capture_id): New helper.
10029 (parser::finish_match_operand): New function lowering @@<id>.
10030 (parser::parse_capture): Parse @@<id> as value-match.
10031 (parser::parse_expr): Use get_internal_capture_id.
10032 (parser::parse_simplify): Call finish_match_operand.
10033 (walk_captures): New helper.
10034 * match.pd (X - (X / Y) * Y -> X % Y): Use value-matching instead
10035 of operand_equal_p.
10036 ((X /[ex] A) * A -> X): Likewise.
10037 ((X | Y) ^ X -> Y & ~ X): Handle constants properly by using
10038 convert[12] and value-matching.
10039 ((A | B) & (A | C) -> A | (B & C)): Likewise.
10040 ((X | Y) | Y -> X | Y): Likewise.
10041 ((X ^ Y) ^ Y -> X): Likewise.
10042 (A - (A & B) -> ~B & A): Likewise.
10043 ((T)(P + A) - (T)P -> (T) A): Likewise.
10044 ((T)P - (T)(P + A) -> -(T) A): Likewise.
10045 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Likewise.
10046 * doc/match-and-simplify.texi: Amend capture section.
10047
10048 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
10049
10050 * config/arc/arc.md (umul_600): Remove predicated variant.
10051 (umul64_600): Likewise.
10052
10053 2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
10054
10055 * config/arc/arc.h (INSN_LENGTH_ALIGNMENT): Change.
10056
10057 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10058
10059 * tree-vect-loop.c (loop_niters_no_overflow): New func.
10060 (vect_transform_loop): Call loop_niters_no_overflow. Pass the
10061 no-overflow information to vect_do_peeling_for_loop_bound and
10062 vect_gen_vector_loop_niters.
10063
10064 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10065
10066 * tree-predcom.c (tree_predictive_commoning_loop): Skip loop that only
10067 iterates 1 time.
10068
10069 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10070
10071 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Don't release
10072 adjust_vec automatically.
10073 (slpeel_add_loop_guard): Remove param cond_expr_stmt_list. Rename
10074 param exit_bb to guard_to.
10075 (slpeel_checking_verify_cfg_after_peeling):
10076 (set_prologue_iterations):
10077 (create_lcssa_for_virtual_phi): New func which is factored out from
10078 slpeel_tree_peel_loop_to_edge.
10079 (slpeel_tree_peel_loop_to_edge):
10080 (iv_phi_p): New func.
10081 (vect_can_advance_ivs_p): Call iv_phi_p.
10082 (vect_update_ivs_after_vectorizer): Call iv_phi_p. Directly insert
10083 new gimple stmts in basic block.
10084 (vect_gen_niters_for_prolog_loop): Rename to...
10085 (vect_gen_prolog_loop_niters): ...Rename from. Change parameters and
10086 adjust implementation.
10087 (vect_update_inits_of_drs): Fix code style issue. Convert niters to
10088 sizetype if necessary.
10089 (vect_build_loop_niters): Move to here from tree-vect-loop.c. Change
10090 it to external function.
10091 (vect_gen_scalar_loop_niters, vect_gen_vector_loop_niters): New.
10092 (vect_gen_vector_loop_niters_mult_vf): New.
10093 (slpeel_update_phi_nodes_for_loops): New.
10094 (slpeel_update_phi_nodes_for_guard1): Reimplement.
10095 (find_guard_arg, slpeel_update_phi_nodes_for_guard2): Reimplement.
10096 (slpeel_update_phi_nodes_for_lcssa, vect_do_peeling): New.
10097 * tree-vect-loop.c (vect_build_loop_niters): Move to file
10098 tree-vect-loop-manip.c
10099 (vect_generate_tmps_on_preheader): Delete.
10100 (vect_transform_loop): Rename vectorization_factor to vf. Call
10101 vect_do_peeling instead of vect_do_peeling-* functions.
10102 * tree-vectorizer.h (vect_do_peeling): New decl.
10103 (vect_build_loop_niters, vect_gen_vector_loop_niters): New decls.
10104 (vect_do_peeling_for_loop_bound): Delete.
10105 (vect_do_peeling_for_alignment): Delete.
10106
10107 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10108
10109 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Put
10110 duplicated loop after its preheader and after the original loop.
10111
10112 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10113
10114 * tree-vect-loop.c (vect_analyze_loop_2): Check and skip loop if it
10115 has no enough iterations for LOOP_VINFO_PEELING_FOR_GAPS.
10116
10117 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10118
10119 * tree-vect-loop.c (vectorizable_live_operation): Support handling
10120 for live variable outside loop but not in lcssa form.
10121
10122 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10123
10124 * cfg.c (reset_original_copy_tables): New func.
10125 * cfg.h (reset_original_copy_tables): New decl.
10126
10127 2016-10-13 Jakub Jelinek <jakub@redhat.com>
10128
10129 PR c/77946
10130 * tree.h (FALLTHROUGH_LABEL_P): Use private_flag instead of
10131 public_flag.
10132 * varasm.c (default_binds_local_p_3): Formatting fix.
10133
10134 2016-10-13 Bin Cheng <bin.cheng@arm.com>
10135
10136 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Fix code
10137 style issue.
10138 (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
10139 Remove useless code.
10140
10141 2016-10-13 Martin Liska <mliska@suse.cz>
10142
10143 PR tree-optimization/77943
10144 * tree-ssa-tail-merge.c (merge_stmts_p): Do not merge BBs with
10145 a different EH landing pads.
10146
10147 2016-10-13 Jakub Jelinek <jakub@redhat.com>
10148
10149 PR target/77957
10150 * hooks.h (hook_tree_void_null): Declare.
10151 * hooks.c (hook_tree_void_null): New function.
10152 * langhooks.c (lhd_return_null_tree_v): Remove.
10153 * langhooks-def.h (lhd_return_null_tree_v): Remove.
10154 * cfgexpand.c (stack_protect_prologue): If guard_decl is NULL,
10155 set y to const0_rtx.
10156 * function.c (stack_protect_epilogue): Likewise.
10157 * config/tilepro/tilepro.c (TARGET_STACK_PROTECT_GUARD): Redefine
10158 if TARGET_THREAD_SSP_OFFSET is defined.
10159 * config/s390/s390.c (TARGET_STACK_PROTECT_GUARD): Likewise.
10160 * config/sparc/sparc.c (TARGET_STACK_PROTECT_GUARD): Likewise.
10161 * config/tilegx/tilegx.c (TARGET_STACK_PROTECT_GUARD): Likewise.
10162 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Likewise.
10163 * config/i386/i386.c (TARGET_STACK_PROTECT_GUARD): Likewise.
10164 (ix86_stack_protect_guard): New function.
10165
10166 2016-10-13 Richard Biener <rguenther@suse.de>
10167
10168 * dwarf2out.c (tree_add_const_value_attribute): Do not try
10169 rtl_for_decl_init during early phase.
10170 (gen_variable_die): Do not create locations during early phase.
10171 (gen_label_die): Likewise.
10172 (decls_for_scope): Do not waste time handling BLOCK_NONLOCALIZED_VARs
10173 twice.
10174
10175 2016-10-12 Richard Biener <rguenther@suse.de>
10176
10177 * tree-vrp.c (evrp_dom_walker::try_find_new_range): Renamed from
10178 try_add_new_range and made to eturn new range.
10179 (evrp_dom_walker::before_dom_children): Push op1 value range before
10180 pushing op0 value range.
10181
10182 2016-10-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10183
10184 PR tree-optimization/77937
10185 * gimple-ssa-strength-reduction.c (analyze_increments): Use
10186 POINTER_TYPE_P on the candidate type to determine whether
10187 candidates in this chain require pointer arithmetic.
10188
10189 2016-10-12 Eric Botcazou <ebotcazou@adacore.com>
10190
10191 * config/visium/visium.c (visium_gimplify_va_arg): Emit a big-endian
10192 correction if the type is smaller than a word.
10193 (visium_select_cc_mode): Add ... fall through ... comment.
10194
10195 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10196
10197 * config/rs6000/rs6000.c (machine_function): Add new fields
10198 gpr_is_wrapped_separately and lr_is_wrapped_separately.
10199 (TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS,
10200 TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB,
10201 TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS,
10202 TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS,
10203 TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS,
10204 TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Define.
10205 (rs6000_get_separate_components): New function.
10206 (rs6000_components_for_bb): New function.
10207 (rs6000_disqualify_components): New function.
10208 (rs6000_emit_prologue_components): New function.
10209 (rs6000_emit_epilogue_components): New function.
10210 (rs6000_set_handled_components): New function.
10211 (rs6000_emit_prologue): Don't emit LR save if lr_is_wrapped_separately.
10212 Don't emit GPR saves if gpr_is_wrapped_separately for that register.
10213 (restore_saved_lr): Don't restore LR if lr_is_wrapped_separately.
10214 (rs6000_emit_epilogue): Don't emit GPR restores if
10215 gpr_is_wrapped_separately for that register. Don't make a
10216 REG_CFA_RESTORE note for registers we did not restore, either.
10217
10218 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10219
10220 * function.c (thread_prologue_and_epilogue_insns): Call
10221 try_shrink_wrapping_separate. Compute the prologue_seq afterwards,
10222 if it has possibly changed. Compute the split_prologue_seq and
10223 epilogue_seq later, too.
10224 * shrink-wrap.c: #include cfgbuild.h and insn-config.h.
10225 (dump_components): New function.
10226 (struct sw): New struct.
10227 (SW): New function.
10228 (init_separate_shrink_wrap): New function.
10229 (fini_separate_shrink_wrap): New function.
10230 (place_prologue_for_one_component): New function.
10231 (spread_components): New function.
10232 (disqualify_problematic_components): New function.
10233 (emit_common_heads_for_components): New function.
10234 (emit_common_tails_for_components): New function.
10235 (insert_prologue_epilogue_for_components): New function.
10236 (try_shrink_wrapping_separate): New function.
10237 * shrink-wrap.h: Declare try_shrink_wrapping_separate.
10238
10239 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10240
10241 * regrename.c (build_def_use): Invalidate chains that have a
10242 REG_CFA_RESTORE on some instruction.
10243
10244 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10245
10246 * dce.c (delete_unmarked_insns): Don't delete instructions with
10247 a REG_CFA_RESTORE note.
10248
10249 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10250
10251 * common.opt (-fshrink-wrap-separate): New flag.
10252 * doc/invoke.texi: Document it.
10253 * doc/tm.texi.in (Shrink-wrapping separate components): New subsection.
10254 * doc/tm.texi: Regenerate.
10255 * emit-rtl.h (struct rtl_data): New field shrink_wrapped_separate.
10256 * target.def (shrink_wrap): New hook vector.
10257 (get_separate_components, components_for_bb, disqualify_components,
10258 emit_prologue_components, emit_epilogue_components,
10259 set_handled_components): New hooks.
10260
10261 2016-10-12 Segher Boessenkool <segher@kernel.crashing.org>
10262
10263 * config/rs6000/rs6000.c (rs6000_return_in_memory): Warn for
10264 vector return by reference only if -Wpsabi.
10265 (rs6000_pass_by_reference): Similarly, for argument passing.
10266
10267 2016-10-12 David Malcolm <dmalcolm@redhat.com>
10268
10269 * function-tests.c: Include "print-rtl.h".
10270 (selftest::test_expansion_to_rtl): Call print_rtx_function on the
10271 function, and verify what is dumped.
10272 * print-rtl-function.c (print_edge): New function.
10273 (begin_any_block): New function.
10274 (end_any_block): New function.
10275 (can_have_basic_block_p): New function.
10276 (print_rtx_function): Track the basic blocks of insns in the
10277 chain, wrapping those that are within blocks within "(block)"
10278 directives. Remove the "(cfg)" directive.
10279
10280 2016-10-12 David Malcolm <dmalcolm@redhat.com>
10281
10282 * selftest.c (selftest::read_file): New function.
10283 (selftest::test_read_file): New function.
10284 (selftest::selftest_c_tests): Call test_read_file.
10285 * selftest.h (selftest::read_file): New decl.
10286
10287 2016-10-12 Richard Biener <rguenther@suse.de>
10288
10289 PR debug/77947
10290 * cgraphunit.c (analyze_functions): Preserve cgraph nodes
10291 function context.
10292
10293 2016-10-12 Thomas Schwinge <thomas@codesourcery.com>
10294
10295 * lto-streamer.c: Fix LTO_STREAMER_DEBUG build.
10296
10297 * dwarf2out.c (dwarf2_lineno_debug_hooks): Use
10298 dwarf2out_assembly_start.
10299
10300 * Makefile.in (SELFTEST_FLAGS): Add -nostdinc.
10301
10302 * Makefile.in (SELFTEST_FLAGS): New variable.
10303 (s-selftest, selftest-gdb, selftest-valgrind): Use it.
10304
10305 * vmsdbgout.c (vmsdbg_debug_hooks): Add filename parameter to
10306 early_finish hook.
10307
10308 2016-10-12 Georg-Johann Lay <avr@gjlay.de>
10309
10310 * rtl.h (struct rtx_def): Comment how RTX_FLAGS will be
10311 dumped in RTL dumps.
10312
10313 2016-10-12 Martin Liska <mliska@suse.cz>
10314
10315 * gimple-fold.c (create_tmp_reg_or_ssa_name): New function.
10316 (gimple_fold_builtin_memory_op): Use the function.
10317 (gimple_fold_builtin_strchr): Likewise.
10318 (gimple_fold_builtin_strcat): Likewise.
10319 (gimple_build): Likewise.
10320
10321 2016-10-12 Nathan Sidwell <nathan@acm.org>
10322
10323 * diagnostic.c (diagnostc_report_diagnostic): Fix formatting.
10324
10325 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
10326
10327 * dwarf2out.c (int_loc_descriptor): Generate opcodes for another
10328 equivalent 32-bit constant (modulo 2**32) when that yields
10329 smaller instructions.
10330 (size_of_int_loc_descriptor): Update accordingly.
10331
10332 2016-10-12 Pierre-Marie de Rodat <derodat@adacore.com>
10333
10334 * dwarf2out.c (dwarf2out_early_global_decl): For nested
10335 functions, call dwarf2out_decl on the parent function first.
10336
10337 2016-10-12 Richard Biener <rguenther@suse.de>
10338
10339 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary constraint
10340 on the conversion.
10341
10342 2016-10-12 Richard Biener <rguenther@suse.de>
10343
10344 * tree-ssa-propagate.c
10345 (substitute_and_fold_dom_walker::before_dom_children): Do not
10346 ignore ASSERT_EXPRs but only preserve them.
10347 * tree-vrp.c (remove_range_assertions): Deal with ASSERT_EXPRs
10348 that have been propagated into.
10349 (vrp_finalize): Enable DCE for substitute_and_fold.
10350
10351 2016-10-12 Richard Biener <rguenther@suse.de>
10352
10353 PR tree-optimization/77920
10354 * tree-vrp.c (simplify_div_or_mod_using_ranges): Simplify.
10355 (simplify_min_or_max_using_ranges): Pass in gsi and use it.
10356 (simplify_abs_using_ranges): Likewise.
10357 (simplify_conversion_using_ranges): Likewise.
10358 (simplify_stmt_using_ranges): Adjust.
10359
10360 2016-10-12 Jakub Jelinek <jakub@redhat.com>
10361
10362 PR tree-optimization/77929
10363 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle
10364 (*ops)[ranges[i].idx]->op != ranges[i].exp case.
10365
10366 2016-10-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10367
10368 PR target/77934
10369 * config/rs6000/vmx.md (vsx_concat_<mode>): The mtvsrdd instruction
10370 needs a base register for arg 1.
10371
10372 2016-10-12 Jakub Jelinek <jakub@redhat.com>
10373
10374 * common.opt (Wimplicit-fallthrough) Turn into alias to
10375 -Wimplicit-fallthrough=3. Remove EnabledBy.
10376 (Wimplicit-fallthrough=): New option.
10377 * gimplify.c (warn_implicit_fallthrough_r): Use
10378 OPT_Wimplicit_fallthrough_ instead of OPT_Wimplicit_fallthrough.
10379 * doc/invoke.texi (-Wimplicit-fallthrough): Document as alias
10380 to -Wimplicit-fallthrough=3.
10381 (-Wimplicit-fallthrough=): Document.
10382
10383 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
10384
10385 * config/sparc/sparc.c (emit_scc_insn): Remove direct support for EQ
10386 and GEU in DImode if TARGET_SUBXC.
10387 * config/sparc/sparc.md (seqdi<W:mode>_zero): Remove TARGET_SUBXC.
10388 (seqdi<W:mode>_zero_subxc): Delete.
10389 (neg_seqdi<W:mode>_zero): Remove TARGET_VIS3.
10390 (neg_seqdi<W:mode>_zero_vis3): Delete.
10391 (plus_seqdi<W:mode>_zero): Likewise.
10392 (minus_seqdi<W:mode>_zero): Likewise.
10393 (plus_plus_sltu<W:mode>): Accept only register.
10394 (addx<W:mode>): Likewise.
10395 (plus_sltu<W:mode>_vis3): Likewise.
10396 (plus_plus_sltu<W:mode>_vis3): Likewise.
10397 (neg_sgeu<W:mode>_vis3): Delete.
10398 (minus_sgeu<W:mode>_vis3): Likewise.
10399 (addxc<W:mode>): Accept only registers.
10400 (neg_sltu<W:mode>_subxc): Write %%g0 instead of 0.
10401 (minus_neg_sltu<W:mode>_subxc): Accept only register.
10402 (neg_plus_sltu<W:mode>_subxc): Likewise.
10403 (minus_sltu<W:mode>_subxc): Write %%g0 instead of 0.
10404 (minus_minus_sltu<W:mode>_subxc): Accept only register.
10405 (sgeu<W:mode>_insn_subxc): Delete.
10406 (plus_sgeu<W:mode>_subxc): Likewise.
10407 (subxc<W:mode>): Accept only register.
10408 (scc splitter): Split always GEU again.
10409
10410 2016-10-11 Jeff Law <law@redhat.com>
10411
10412 PR tree-optimization/77424
10413 * tree-ssa-threadupdate.c (thread_through_all_blocks): Remove
10414 dead conditionals. Assert that all e->aux fields are NULL.
10415
10416 2016-10-11 David Malcolm <dmalcolm@redhat.com>
10417
10418 * print-rtl.c (print_rtx): Rename "i" to "idx". Split out the
10419 operand-printing "switch" statement into...
10420 (print_rtx_operand_code_0): ...this new function, ...
10421 (print_rtx_operand_code_e): ...this new function, ...
10422 (print_rtx_operand_codes_E_and_V): ...this new function, ...
10423 (print_rtx_operand_code_i): ...this new function, ...
10424 (print_rtx_operand_code_r): ...this new function, ...
10425 (print_rtx_operand_code_u): ...this new function, ...
10426 (print_rtx_operand): ...and this new function.
10427
10428 2016-10-11 Uros Bizjak <ubizjak@gmail.com>
10429
10430 * config/alpha/alpha-passes.def: New file.
10431 * config/alpha/t-alpha: New file.
10432 * config/alpha/alpha-protos.h (gcc::context, rtl_opt_pass): Declare.
10433 (make_pass_handle_trap_shadows): New prototype.
10434 (make_pass_align_insns): Ditto.
10435 * config/alpha/alpha.c (alpha_option_override): Don't register
10436 passes here.
10437 * config.gcc (alpha*-*-*) Add alpha/t-alpha to tmake_file.
10438
10439 2016-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10440
10441 PR target/77924
10442 * config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
10443 distinct __ibm128 IBM extended double type if long doubles are
10444 128-bits and the default format for long double is IEEE 128-bit.
10445
10446 2016-10-11 Richard Biener <rguenther@suse.de>
10447
10448 * dwarf2out.c (DEBUG_STR_OFFSETS_SECTION): Remove conditional.
10449 (init_sections_and_labels): Use DEBUG_DWO_STR_OFFSETS_SECTION.
10450 (verify_die): New function.
10451 (dwarf2out_finish): Call it.
10452 (output_line_info): Handle case of -gsplit-dwarf without
10453 DWARF2_ASM_LINE_DEBUG_INFO.
10454
10455 2016-10-11 Richard Biener <rguenther@suse.de>
10456
10457 PR debug/77931
10458 * gimple-low.c (lower_gimple_bind): Handle arbitrary common
10459 sub-chains of BLOCK_VARS and gimple_bind_vars.
10460
10461 2016-10-11 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
10462
10463 * config/i386/znver1.md : Fix imov/imovx load type reservations.
10464
10465 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
10466
10467 * config/sparc/sparc.opt (msubxc): New option.
10468 * doc/invoke.texi (SPARC options): Document it and tidy up.
10469 * doc/tm.texi.in (Condition Codes): Adjust SPARC example.
10470 * doc/tm.texi: Regenerate.
10471 * config/sparc/sparc-modes.def (CC_NOOV): Rename into...
10472 (CCNZ): ...this.
10473 (CCX_NOOV): Rename into...
10474 (CCXNZ): ...this.
10475 (CCC): New.
10476 (CCXC): Likewise.
10477 * config/sparc/predicates.m (fcc_register_operand): Simplify.
10478 (fcc0_register_operand): Likewise.
10479 (icc_register_operand): New.
10480 (icc_or_fcc_register_operand): Simplify.
10481 (nz_comparison_operator): New.
10482 (c_comparison_operator): Likewise.
10483 (noov_compare_operator): Rename into...
10484 (icc_comparison_operator): ...this. Use above predicates.
10485 (noov_compare64_operator): Rename into...
10486 (v9_comparison_operator): ...this and tidy up.
10487 (fcc_comparison_operator): New.
10488 (icc_or_fcc_comparison_operator): Likewise.
10489 (v9_register_compare_operator): Rename info...
10490 (v9_register_comparison_operator): ...this.
10491 * config/sparc/sparc.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10492 (sparc_option_override): Remove redundant VIS masks and add MASK_SUBXC
10493 for Niagara-7.
10494 (sparc_fixed_condition_code_regs): New function.
10495 (select_cc_mode): Remove ATTRIBUTE_UNUSED. Adjust for CCNZ/CCXNZ
10496 renaming and add support for CCC/CCXC.
10497 (output_cbranch): Likewise.
10498 (sparc_print_operand): Likewise.
10499 (gen_v9_scc): Remove obsolete assertion.
10500 (emit_scc_insn): Emit RTL directly for EQ and NE. Add direct support
10501 for EQ in DImode if TARGET_SUBXC. Remove test on TARGET_VIS3 for GEU.
10502 (output_cbcond): Remove bogus handling of CC modes.
10503 (sparc_register_move_cost): Return 100 for NO_REGS.
10504 * config/sparc/sparc.md (W): New mode iterator.
10505 (length): Adjust for noov_compare64_operator renaming.
10506 (cmpsi_sne): New instruction.
10507 (cmpdi_sne): Likewise.
10508 (seqdi_special): Delete.
10509 (seqdi_special): Likewise.
10510 (snesi<P:mode>_special): Likewise.
10511 (snedi_special): Likewise.
10512 (snedi_special_vis3): Likewise.
10513 (snesi patterns): Use W iterator.
10514 (snedi patterns): Likewise. Add TARGET_SUBXC patterns.
10515 (sltu patterns): Likewise.
10516 (sgeu patterns): Likewise.
10517 (scc splitter): Do not split GEU in DImode if TARGET_SUBXC.
10518 (normal_branch): Use icc_comparison_operator predicate.
10519 (inverted_branch): Likewise.
10520 (cbcond_sp32): Use comparison_operator predicate.
10521 (cbcond_sp64): Likewise.
10522 (normal_int_branch_sp64): Adjust for renaming
10523 (inverted_int_branch_sp64): Likewise.
10524 (mov<I:mode>_cc_reg_sp64): Likewise.
10525 (movsf_cc_reg_sp6): Likewise.
10526 (movdf_cc_reg_sp64): Likewise.
10527 (movtf_cc_reg_hq_sp64): Likewise.
10528 (movtf_cc_reg_sp64): Likewise.
10529 (mov<I:mode>_cc_v9): Use icc_or_fcc_comparison_operator predicate.
10530 (movsf_cc_v9): Likewise.
10531 (movdf_cc_v9): Likewise.
10532 (movtf_cc_hq_v9): Likewise.
10533 (movtf_cc_v9): Likewise.
10534 (adddi3): Call gen_adddi3_sp32.
10535 (adddi3_insn_sp32): Rename to...
10536 (adddi3_sp32): ...this. Accept only register_operand as operand #1
10537 and use CCCmode for the carry.
10538 (addx_extend_sp32): Use CCCmode for the carry.
10539 (addx_extend_sp64): Delete.
10540 (adddi3_extend_sp32): Use CCCmode for the carry.
10541 (cmp_plus patterns): Use CCNZ/CCXNZ mode and add C variants.
10542 (subdi3): Call gen_subdi3_sp32.
10543 (subdi3_insn_sp32): Rename to...
10544 (subdi3_sp32): ...this and use CCmode for the carry.
10545 (subx_extend_sp32): Use CCCmode for the carry.
10546 (subx_extend_sp64): Delete.
10547 (subdi3_extend_sp32): Use CCmode for the carry.
10548 (cmp_minus patterns): Use CCNZ/CCXNZ mode and add C variants.
10549 (negdi3): Call gen_negdi3_sp32.
10550 (negdi3_sp32): Use CCCmode for the carry.
10551 (cmp_neg patterns): Use CCNZ/CCXNZ mode and add C variants.
10552 (cmp_nz_ashift_1): Use CCNZ mode.
10553 (cmp_nz_set_ashift_1): Likewise.
10554 (ctrapsi4): Use comparison_operator predicate.
10555 (ctrapdi4): Likewise.
10556 (trapsi_insn): Use icc_comparison_operator predicate.
10557 (trapdi_insn): Likewise.
10558 (edge8 patterns): Use CCNZmode.
10559 (edge16 patterns): Likewise.
10560 (edge32 patterns): Likewise.
10561
10562 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
10563
10564 * config/visium/visium-modes.def (CC_NOOV): Rename into...
10565 (CCNZ): ...this.
10566 (CC_BTST): Rename into...
10567 (CCC): ...this.
10568 * config/visium/predicates.md (real_add_operand): New.
10569 (visium_btst_operator): Rename into...
10570 (visium_equality_comparison_operator): ...this.
10571 (visium_noov_operator): Rename into...
10572 (visium_nz_comparison_operator): ...this.
10573 (visium_c_comparison_operator): New.
10574 (visium_branch_operator): Adjust and deal with all CC modes.
10575 * config/visium/visium.c (visium_adjust_cost): Adjust.
10576 (visium_split_double_add): Use the *_set_carry patterns.
10577 (visium_select_cc_mode): Add support for CCC mode and adjust.
10578 (output_cbranch): Adjust and use the carry-based operators for
10579 floating-point comparisons.
10580 * config/visium/visium.md (flags_subst_arith): Adjust.
10581 (addsi3_insn_set_carry): New instruction.
10582 (subsi3_insn_set_carry): Likewise.
10583 (negsi2_insn_set_carry): Likewise.
10584 (btst): Adjust.
10585 (cmp<mode>_sne): Likewise.
10586 (cbranch<mode>4): Use ordered_comparison_operator.
10587 (cbranch<mode>4_insn): Likewise.
10588 (cbranchsi4_btst_insn): Adjust.
10589
10590 2016-10-11 Tom de Vries <tom@codesourcery.com>
10591
10592 PR middle-end/77558
10593 * builtins.c (std_canonical_va_list_type): Remove RECORD_TYPE
10594 special-casing.
10595
10596 2016-10-11 Eric Botcazou <ebotcazou@adacore.com>
10597
10598 * tree.h (build_complex_type): Add second parameter with default.
10599 * tree.c (build_complex_type): Add NAMED second parameter and adjust
10600 recursive call. Create a TYPE_DECL only if NAMED is true.
10601 (build_common_tree_nodes): Pass true in calls to build_complex_type.
10602
10603 2016-10-11 Georg-Johann Lay <avr@gjlay.de>
10604
10605 New avr-passes.def to register AVR specific passes.
10606
10607 * config/avr/avr-passes.def: New file.
10608 * config/avr/t-avr (PASSES_EXTRA): Add avr-passes.def.
10609 * config/avr/avr-protos.h (gcc::context, rtl_opt_pass): Declare.
10610 (make_avr_pass_recompute_note): New proto.
10611 * config/avr/avr.c (make_avr_pass_recompute_notes): New function.
10612 (avr_pass_recompute_notes): Use anonymous namespace.
10613 (avr_register_passes): Remove function...
10614 (avr_option_override): ...and its call.
10615
10616 2016-10-11 Robert Suchanek <robert.suchanek@imgtec.com>
10617
10618 * config/mips/mips-cpus.def: Replace PTF_AVOID_BRANCHLIKELY with
10619 PTF_AVOID_BRANCHLIKELY_ALWAYS for generic architecture and with
10620 PTF_AVOID_BRANCHLIKELY_SPEED for others.
10621 (mips2, mips3, mips4): Add PTF_AVOID_BRANCHLIKELY_SIZE to tune
10622 flags.
10623 * config/mips/mips.c (mips_option_override): Enable the branch
10624 likely depending on the tune flags and optimization level.
10625 * config/mips/mips.h (PTF_AVOID_BRANCHLIKELY): Remove.
10626 (PTF_AVOID_BRANCHLIKELY_SPEED): Define.
10627 (PTF_AVOID_BRANCHLIKELY_SIZE): Likewise.
10628 (PTF_AVOID_BRANCHLIKELY_ALWAYS): Likewise.
10629
10630 2016-10-11 Richard Biener <rguenther@suse.de>
10631
10632 * lto-streamer-out.c (collect_block_tree_leafs): New helper.
10633 (output_function): Properly stream the whole block tree.
10634 * lto-streamer-in.c (input_function): Likewise.
10635
10636 2016-10-11 Marek Polacek <polacek@redhat.com>
10637
10638 * Makefile.in (C_COMMON_OBJS): Add c-family/c-warn.o.
10639
10640 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10641
10642 * tree-vrp.c (evrp_dom_walker::try_add_new_range): New.
10643 (evrp_dom_walker::before_dom_children): Infer and push new value
10644 ranges for x in y < x.
10645
10646 2016-10-10 Joseph Myers <joseph@codesourcery.com>
10647
10648 PR target/77586
10649 * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p)
10650 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
10651 * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise.
10652 * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise.
10653 * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
10654 (IA64_NO_LIBGCC_TFMODE): Likewise.
10655
10656 2016-10-11 Kugan Vivekanandarajah <kuganv@linaro.org>
10657
10658 * tree-vrp.c (vrp_intersect_ranges_1): Allocate bitmap before
10659 copying.
10660
10661 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org>
10662
10663 * config.gcc: Add aarch64-*-freebsd* support.
10664 * config.host: Likewise.
10665 * config/aarch64/aarch64-freebsd.h: New file.
10666 * config/aarch64/t-aarch64-freebsd: Ditto.
10667
10668 2016-10-10 Jeff Law <law@redhat.com>
10669
10670 PR tree-optimization/71947
10671 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then
10672 B with A within a single statement.
10673
10674 2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10675
10676 PR tree-optimization/77824
10677 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return
10678 zero cost for copies.
10679 (find_candidates_dom_walker::before_dom_children): Replace
10680 MODIFY_EXPR with SSA_NAME.
10681 (replace_mult_candidate): Likewise.
10682 (replace_profitable_candidates): Likewise.
10683
10684 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10685
10686 * config/s390/s390.h: Wrap more macros args in brackets and fix
10687
10688 2016-10-10 Georg-Johann Lay <avr@gjlay.de>
10689
10690 * config/avr/gen-avr-mmcu-texi.c (string.h): Include.
10691
10692 2016-10-10 Andreas Schwab <schwab@suse.de>
10693
10694 PR target/77738
10695 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop
10696 pseudo is not DImode.
10697
10698 2016-10-10 Claudiu Zissulescu <claziss@synopsys.com>
10699
10700 * common/config/arc/arc-common.c (arc_option_optimization_table):
10701 Remove compact casesi option.
10702 * config/arc/arc.c (arc_override_options): Use compact casesi
10703 option only for pre-ARCv2 cores.
10704 * doc/invoke.texi (mcompact-casesi): Update text.
10705
10706 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10707
10708 * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED):
10709 Add macro to say we can efficiently handle overlapping unaligned
10710 loads.
10711 * config/rs6000/rs6000.c (expand_block_compare): Avoid generating
10712 poor code for processors older than p8.
10713
10714 2016-10-09 Eric Botcazou <ebotcazou@adacore.com>
10715
10716 * gen-pass-instances.awk: Remove GNUism.
10717
10718 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10719
10720 * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to
10721 NULL of (*ipcp_transformations)][node->uid].
10722
10723 2016-10-09 John David Anglin <danglin@gcc.gnu.org>
10724
10725 * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
10726 (MALLOC_ABI_ALIGNMENT): Define.
10727
10728 2016-10-09 Jakub Jelinek <jakub@redhat.com>
10729
10730 * tree-ssa.c (target_for_debug_bind, verify_phi_args,
10731 ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
10732 VAR_OR_FUNCTION_DECL_P macros.
10733 * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
10734 chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
10735 chkp_find_bounds_1): Likewise.
10736 * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
10737 * hsa-gen.c (get_symbol_for_decl): Likewise.
10738 * cgraphunit.c (check_global_declaration, analyze_functions,
10739 handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
10740 Likewise.
10741 * gimple-fold.c (can_refer_decl_in_current_unit_p,
10742 canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
10743 Likewise.
10744 * tree.c (set_decl_section_name, copy_node_stat,
10745 need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
10746 merge_dllimport_decl_attributes, handle_dll_attribute,
10747 decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
10748 verify_type): Likewise.
10749 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
10750 find_explicit_erroneous_behavior): Likewise.
10751 * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
10752 * ipa.c (process_references): Likewise.
10753 * tree-chkp-opt.c (chkp_get_check_result): Likewise.
10754 * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
10755 notice_global_symbol, assemble_variable, mark_decl_referenced,
10756 build_constant_desc, output_constant_def_contents, do_assemble_alias,
10757 make_decl_one_only, default_section_type_flags,
10758 categorize_decl_for_section, default_encode_section_info): Likewise.
10759 * trans-mem.c (requires_barrier): Likewise.
10760 * gimple-expr.c (mark_addressable): Likewise.
10761 * cfgexpand.c (add_scope_conflicts_1, expand_one_var,
10762 expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
10763 expand_debug_expr): Likewise.
10764 * tree-dump.c (dequeue_and_dump): Likewise.
10765 * ubsan.c (instrument_bool_enum_load): Likewise.
10766 * tree-pretty-print.c (print_declaration): Likewise.
10767 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
10768 * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
10769 * asan.c (asan_protect_global, instrument_derefs): Likewise.
10770 * tree-into-ssa.c (rewrite_stmt, maybe_register_def,
10771 pass_build_ssa::execute): Likewise.
10772 * var-tracking.c (var_debug_decl, track_expr_p): Likewise.
10773 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
10774 Likewise.
10775 * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
10776 Likewise.
10777 * tree-inline.c (insert_debug_decl_map, remap_ssa_name,
10778 can_be_nonlocal, remap_decls, copy_debug_stmt,
10779 initialize_inlined_parameters, add_local_variables,
10780 reset_debug_binding, replace_locals_op): Likewise.
10781 * dse.c (can_escape): Likewise.
10782 * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
10783 Likewise.
10784 * tree-diagnostic.c (default_tree_printer): Likewise.
10785 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
10786 unpack_ts_decl_with_vis_value_fields,
10787 lto_input_ts_decl_common_tree_pointers): Likewise.
10788 * builtins.c (builtin_save_expr, fold_builtin_expect,
10789 readonly_data_expr): Likewise.
10790 * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
10791 create_variable_info_for, set_uids_in_ptset, visit_loadstore):
10792 Likewise.
10793 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
10794 * gimplify.c (force_constant_size, gimplify_bind_expr,
10795 gimplify_decl_expr, gimplify_var_or_parm_decl,
10796 gimplify_compound_lval, gimplify_init_constructor,
10797 gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
10798 gimplify_type_sizes): Likewise.
10799 * cgraphbuild.c (record_reference, record_type_list, mark_address,
10800 mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
10801 * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
10802 remove_unused_locals): Likewise.
10803 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
10804 ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
10805 * function.c (instantiate_expr, instantiate_decls_1,
10806 setjmp_vars_warning, add_local_decl): Likewise.
10807 * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
10808 Likewise.
10809 * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
10810 va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
10811 optimize_va_list_gpr_fpr_size): Likewise.
10812 * tree-nrv.c (pass_nrv::execute): Likewise.
10813 * tsan.c (instrument_expr): Likewise.
10814 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
10815 * vtable-verify.c (verify_bb_vtables): Likewise.
10816 * tree-dfa.c (ssa_default_def, set_ssa_default_def,
10817 get_ref_base_and_extent): Likewise.
10818 * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
10819 Likewise.
10820 * tree-sra.c (static bool constant_decl_p, find_var_candidates,
10821 analyze_all_variable_accesses): Likewise.
10822 * tree-nested.c (get_nonlocal_debug_decl,
10823 convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
10824 note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
10825 get_local_debug_decl, convert_local_omp_clauses,
10826 convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
10827 Likewise.
10828 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
10829 * stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
10830 * dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
10831 dbxout_symbol, dbxout_common_check): Likewise.
10832 * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
10833 string_constant): Likewise.
10834 * hsa.c (hsa_get_declaration_name): Likewise.
10835 * passes.c (rest_of_decl_compilation): Likewise.
10836 * tree-ssanames.c (make_ssa_name_fn): Likewise.
10837 * tree-streamer-out.c (pack_ts_decl_common_value_fields,
10838 pack_ts_decl_with_vis_value_fields,
10839 write_ts_decl_common_tree_pointers): Likewise.
10840 * stor-layout.c (place_field): Likewise.
10841 * symtab.c (symtab_node::maybe_create_reference,
10842 symtab_node::verify_base, symtab_node::make_decl_local,
10843 symtab_node::copy_visibility_from,
10844 symtab_node::can_increase_alignment_p): Likewise.
10845 * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
10846 decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
10847 fortran_common, add_location_or_const_value_attribute,
10848 add_scalar_info, add_linkage_name, set_block_abstract_flags,
10849 local_function_static, gen_variable_die, dwarf2out_late_global_decl,
10850 optimize_one_addr_into_implicit_ptr,
10851 optimize_location_into_implicit_ptr): Likewise.
10852 * gimple-low.c (record_vars_into): Likewise.
10853 * ipa-visibility.c (update_vtable_references): Likewise.
10854 * tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
10855 Likewise.
10856 * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
10857 DFS::DFS_write_tree_body, write_symbol): Likewise.
10858 * langhooks.c (lhd_warn_unused_global_decl,
10859 lhd_set_decl_assembler_name): Likewise.
10860 * attribs.c (decl_attributes): Likewise.
10861 * except.c (output_ttype): Likewise.
10862 * varpool.c (varpool_node::get_create, ctor_for_folding,
10863 varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
10864 * fold-const.c (fold_unary_loc): Likewise.
10865 * ipa-prop.c (ipa_compute_jump_functions_for_edge,
10866 ipa_find_agg_cst_from_init): Likewise.
10867 * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
10868 expand_omp_target, lower_omp_regimplify_p,
10869 grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
10870 find_link_var_op): Likewise.
10871 * tree-chrec.c (chrec_contains_symbols): Likewise.
10872 * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
10873 gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
10874 execute_fixup_cfg): Likewise.
10875
10876 PR tree-optimization/77901
10877 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize
10878 if ranges[i].exp is SSA_NAME when looking for >= and only when
10879 ranges[i].exp is NULL or SSA_NAME when looking for the other
10880 comparison.
10881
10882 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10883
10884 * ipa-cp.c (ipcp_alignment_lattice): Remove.
10885 (ipcp_param_lattices): Remove field alignment.
10886 (print_all_lattices): Remove call to ipcp_alignment_lattice::print.
10887 (set_all_contains_variable): Remove call to
10888 ipcp_alignment_lattice::set_to_bottom.
10889 (initialize_node_lattices): Likewise.
10890 (propagate_alignment_accross_jump_function): Remove.
10891 (propagate_constants_accross_call): Remove call to
10892 propagate_alignment_accross_jump_function.
10893 (ipcp_store_alignment_results): Remove.
10894 (ipcp_driver): Remove call to ipcp_store_alignment_results.
10895 (propagate_bits_accross_jump_function): Handle ancestor jump function.
10896 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove
10897 pretty-printing of alignment jump function.
10898 (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known.
10899 (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for
10900 alignments and remove computing ipa_alignment jump function.
10901 (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments.
10902 (ipa_write_jump_functions): Remove streaming for ipa_alignment.
10903 (ipa_read_jump_function): Remove reading of ipa_alignment.
10904 (write_ipcp_transformation_info): Remove streaming for alignment
10905 propagation summary.
10906 (read_ipcp_transformation_info): Remove reading of alignment
10907 propagation summary.
10908 (ipcp_update_alignments): Remove.
10909 (ipcp_update_bits): Adjust to set alignment for parameters of pointer
10910 type.
10911 (ipcp_transform_function): Remove call to ipcp_update_alignments()
10912 and remove assignment to (*ipcp_transformations)[node->uid].alignments.
10913 * ipa-prop.h (ipa_alignment): Remove.
10914 (ipa_jump_func): Remove field alignment.
10915 (ipcp_transformation_summary): Remove field alignments.
10916 * doc/invoke.texi: Mark fipa-cp-alignment as obsolete.
10917 * opts.c (default_options_table): Remove entry for fipa-cp-alignment.
10918 (enable_fdo_optimizations): Remove checking for fipa-cp-alignment.
10919
10920 2016-10-08 Eric Botcazou <ebotcazou@adacore.com>
10921
10922 * config/sparc/sparc.h (FIXED_REGISTERS): Add %icc.
10923
10924 * config/visium/visium.c (visium_expand_int_cstore): Revert latest
10925 change.
10926 (visium_expand_fp_cstore): Likewise.
10927
10928 2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10929
10930 * diagnostic-core.h (warning_at_rich_loc_n): Declare.
10931 * diagnostic.c (warning_at_rich_loc_n): New function.
10932 (diagnostic_n_impl_richloc): Likewise.
10933 (diagnostic_n_impl): Move most of the function to
10934 diagnostic_n_impl_richloc and call it.
10935
10936 2016-10-08 Jakub Jelinek <jakub@redhat.com>
10937
10938 * gen-pass-instances.awk: Rewritten.
10939 * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass
10940 $(PASSES_EXTRA) after passes.def to the script.
10941 * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def.
10942 * config/i386/i386-passes.def: New file.
10943 * config/i386/i386-protos.h (make_pass_insert_vzeroupper,
10944 make_pass_stv): Declare.
10945 * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to
10946 false.
10947 (pass_stv::gate): Depending on timode_p member require TARGET_64BIT
10948 or !TARGET_64BIT.
10949 (pass_stv::clone, pass_stv::set_pass_param): New methods.
10950 (pass_stv::timode_p): New non-static data member.
10951 (ix86_option_override): Don't register passes here.
10952
10953 * doc/invoke.texi: Document accepting Else, fallthrough.
10954
10955 * doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment
10956 style changes.
10957
10958 * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted
10959 FALLTHRU comment styles.
10960
10961 2016-10-07 Andrew Pinski <apinski@cavium.com>
10962
10963 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end.
10964 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise.
10965 * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR):
10966 Likewise.
10967 * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION):
10968 Likewise.
10969 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
10970 Likewise.
10971 * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here.
10972 (AARCH64_ARCH): Likewise.
10973 * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION):
10974 Likewise.
10975 (AARCH64_CORE): Likewise.
10976 (AARCH64_ARCH): Likewise.
10977 * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise.
10978 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
10979 * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise.
10980 (AARCH64_EXTRA_TUNING_OPTION): Likewise.
10981 (AARCH64_ARCH): Likewise.
10982 (AARCH64_CORE): Likewise.
10983 * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
10984 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise.
10985 (AARCH64_CORE): Likewise.
10986 (AARCH64_ARCH): Likewise.
10987
10988 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com>
10989
10990 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split
10991 -mfloat128 into -mfloat128-type that enables the IEEE 128-bit
10992 floating point type infrastructre, and -mfloat128 that enables the
10993 keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__
10994 if -mfloat128-type. Define __ibm128 to be long double by default.
10995 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether
10996 the IEEE 128-bit floating point type infrastructure should
10997 automatically be enabled.
10998 (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type
10999 instead of -mfloat128 to enable KFmode.
11000 (rs6000_option_override_internal): Split the option -mfloat128
11001 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit
11002 systems, automatically set -mfloat128-type, but don't enable it on
11003 other operating systems. Move setting the long double size and
11004 IEEE quad support before the IEEE 128-bit floating point changes.
11005 (rs6000_init_builtins): Do not create a unique type for __ibm128
11006 if long double is IBM extended double, instead rely on __ibm128
11007 being defined as 'long double'. If -mfloat128-type and not
11008 -mfloat128, create the KFmode type with an undocumented __ieee128
11009 keyword.
11010 (rs6000_init_libfuncs): Use -mfloat128-type instead of
11011 -mfloat128 for tests about the types, but keep tests for
11012 -mfloat128 to enable the keyword support.
11013 (rs6000_complex_function_value): Likewise.
11014 (rs6000_scalar_mode_supported_p): Likewise.
11015 (rs6000_floatn_mode): Likewise.
11016 (rs6000_c_mode_for_suffix): Likewise.
11017 (rs6000_opt_masks): Add -mfloat128-type.
11018 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for
11019 -mfloat128-type being split from -mfloat128. Add
11020 -mfloat128-hardware, which was missing.
11021 * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into
11022 -mfloat128 and -mfloat128-type:
11023 (-mfloat128-type): Likewise.
11024 * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so
11025 that 64-bit Linux systems with enable -mfloat128-type by default
11026 on VSX systems.
11027 * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise.
11028 (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use
11029 -mfloat128-type instead of -mfloat128.
11030 (FLOAT128_2REG_P): Likewise.
11031 (MASK_FLOAT128_TYPE): Likewise.
11032 (ALTIVEC_ARG_MAX_RETURN): Likewise.
11033 (RS6000_BTM_FLOAT128): Likewise.
11034 (TARGET_FLOAT128): Poison old identifiers.
11035 (OPTION_MASK_FLOAT128): Likewise.
11036 (MASK_FLOAT128): Likewise.
11037 * config/rs6000/rs6000.md (FP): Likewise.
11038 (FLOAT128): Likewise.
11039 (fix_trunc<mode>di2): Likewise.
11040 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
11041 (floatdi<mode>2): Likewise.
11042 (floatuns<SDI:mode><IEEE128:mode>2): Likewise.
11043 (neg<mode>2, FLOAT128 iterator): Likewise.
11044 (abs<mode>2, FLOAT128 iterator): Likewise.
11045 (ieee_128bit_negative_zero): Likewise.
11046 (ieee_128bit_vsx_neg<mode>2): Likewise.
11047 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
11048 (ieee_128bit_vsx_abs<mode>2): Likewise.
11049 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
11050 (ieee_128bit_vsx_nabs<mode>2): Likewise.
11051 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
11052 (extendiftf2): Likewise.
11053 (extendifkf2): Likewise.
11054 (extendtfkf2): Likewise.
11055 (trunciftf2): Likewise.
11056 (truncifkf2): Likewise.
11057 (trunckftf2): Likewise.
11058 (trunctfif2): Likewise.
11059 (extendkftf2): Likewise.
11060 (trunctfkf2): Likewise.
11061
11062 2016-10-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11063
11064 * simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array
11065 before merging in bytes to pass down to real_from_target.
11066
11067 2016-10-07 Richard Biener <rguenther@suse.de>
11068
11069 * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer
11070 required hack.
11071 (substitute_and_fold_dom_walker::before_dom_children):
11072 Substitute and fold before pass specific folding to avoid
11073 feeding that with SSA names that will be later released.
11074 * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names
11075 introduced by folding and visited by evaluate_stmt called during
11076 ccp_fold_stmt.
11077 (likely_value): Likewise.
11078 (evaluate_stmt): Likewise.
11079 * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt.
11080 (simplify_div_or_mod_using_ranges): Likewise.
11081 (simplify_min_or_max_using_ranges): Likewise.
11082 (simplify_abs_using_ranges): Likewise.
11083 (simplify_conversion_using_ranges): Likewise.
11084 (simplify_float_conversion_using_ranges): Likewise.
11085 (simplify_stmt_using_ranges): Likewise.
11086
11087 2016-10-07 Marek Polacek <polacek@redhat.com>
11088
11089 * gimplify.c (should_warn_for_implicit_fallthrough): Check for
11090 FALLTHROUGH_LABEL_P here...
11091 (warn_implicit_fallthrough_r): ...not here.
11092
11093 2016-10-07 Bernd Schmidt <bschmidt@redhat.com>
11094
11095 PR tree-optimization/77880
11096 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where
11097 necessary.
11098
11099 2016-10-07 Marek Polacek <polacek@redhat.com>
11100
11101 PR c++/77803
11102 * gimplify.c (last_stmt_in_scope): Add check for FALLTHROUGH ().
11103
11104 2016-10-07 Richard Biener <rguenther@suse.de>
11105
11106 * bitmap.h: Document constraints on bitmap modification while
11107 iterating over it.
11108
11109 2016-10-07 Richard Biener <rguenther@suse.de>
11110
11111 * bitmap.c (bitmap_elem_to_freelist): Set indx to -1.
11112 * bitmap.h (bmp_iter_set): When advancing to the next element
11113 check that we didn't remove the current one.
11114 (bmp_iter_and): Likewise.
11115 (bmp_iter_and_compl): Likewise.
11116 * tree-ssa.c (release_defs_bitset): Do not remove worklist bit
11117 we currently iterate on but keep a one-level queue.
11118 * sched-deps.c (remove_from_deps): Do not clear current bit
11119 but keep a one-level queue.
11120
11121 2016-10-07 Jakub Jelinek <jakub@redhat.com>
11122
11123 PR tree-optimization/77664
11124 * tree-ssa-reassoc.c (update_range_test): Also clear low and high
11125 for the other ranges.
11126 (optimize_range_tests_diff): Fix up formatting.
11127 (optimize_range_tests_var_bound): New function.
11128 (optimize_range_tests): Use it.
11129
11130 2016-10-07 Martin Liska <mliska@suse.cz>
11131
11132 * coverage.c (build_gcov_exit_decl): Fix priority what
11133 should be really 99.
11134
11135 2016-10-07 Richard Biener <rguenther@suse.de>
11136
11137 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
11138 vars in gimple_bind_vars but not in BLOCK_VARS.
11139
11140 2016-10-07 Richard Biener <rguenther@suse.de>
11141
11142 PR tree-optimization/77879
11143 * tree-ssa-structalias.c (handle_const_call): Properly handle
11144 NRV return slots.
11145 (handle_pure_call): Likewise.
11146
11147 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11148
11149 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
11150 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
11151 possible overflow.
11152
11153 2016-10-06 Andrew Pinski <apinski@cavium.com>
11154
11155 * config/aarch64/aarch64-cores.def: Add a comment before each
11156 set of cores.
11157
11158 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
11159
11160 PR tree-optimization/77862
11161 * tree-vrp.c (add_equivalence): Use get_value_range so that
11162 num_vr_values is checked before accessing vr_values.
11163
11164 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
11165
11166 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
11167 POINTER_TYPE_P.
11168
11169 2016-10-05 Jeff Law <law@redhat.com>
11170
11171 PR tree-optimization/71661
11172 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
11173 removal of a forwarder exposes a new natural loop.
11174
11175 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
11176
11177 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
11178 Introduce ssesuffix variable.
11179 (<mask_codefor><code><mode>3<mask_name>): Ditto.
11180 (*<code><mode>3): Ditto.
11181
11182 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
11183
11184 * postreload.c (reload_cse_simplify): Skip also USE when detecting
11185 noop move.
11186
11187 2016-10-06 Richard Biener <rguenther@suse.de>
11188
11189 PR tree-optimization/77855
11190 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
11191 instead of removing the current item while iterating over the set
11192 which is not safe.
11193
11194 2016-10-06 James Clarke <jrtc27@jrtc27.com>
11195 Eric Botcazou <ebotcazou@adacore.com>
11196
11197 PR target/77759
11198 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
11199 (classify_registers): Don't set it
11200 (function_arg_slotno): Don't initialize and test it. Tidy up.
11201
11202 2016-10-06 Richard Biener <rguenther@suse.de>
11203
11204 PR tree-optimization/77839
11205 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
11206 lattice transition.
11207
11208 2016-10-06 Martin Liska <mliska@suse.cz>
11209
11210 * gcc.c: Set -fprofile-update=atomic when profiling is
11211 enabled and -pthread is set. Warn when one combines
11212 -pthread and -fprofile-update=single for an app using
11213 profiling code.
11214
11215 2016-10-06 Martin Liska <mliska@suse.cz>
11216
11217 PR bootstrap/77788
11218 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
11219 * gimple-ssa-strength-reduction.c (slsr_process_cast):
11220 Initialize a pointer to NULL.
11221 (slsr_process_copy): Likewise.
11222 * input.c (location_get_source_line): Likewise.
11223 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
11224
11225 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
11226
11227 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
11228 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
11229 (ix86_handle_option): Deleted handle of OPT_mpcommit.
11230 * config.gcc: Deleted pcommitintrin.h
11231 * config/i386/pcommitintrin.h: Deleted file.
11232 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
11233 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
11234 detection.
11235 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
11236 __PCOMMIT__.
11237 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
11238 (PTA_PCOMMIT): Deleted define.
11239 (ix86_option_override_internal): Deleted handle of option.
11240 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
11241 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
11242 __builtin_ia32_pcommit): Deleted.
11243 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
11244 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
11245 (pcommit): Deleted instruction.
11246 * config/i386/i386.opt: Mention -mpcommit deprecation.
11247 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
11248
11249 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
11250
11251 PR target/77874
11252 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
11253 Remove wrong assert.
11254 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
11255 Use <round_constraint> as operand 1 constraint.
11256
11257 2016-10-05 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR sanitizer/66343
11260 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
11261 (ubsan_instrument_float_cast): And not here.
11262
11263 PR sanitizer/66343
11264 * ubsan.c (ubsan_ids): New GTY(()) array.
11265 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
11266 instead of static local counters.
11267
11268 2016-10-05 Martin Sebor <msebor@redhat.com>
11269
11270 PR bootstrap/77819
11271 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
11272 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
11273 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
11274 (default_printf_pointer_format): Define function.
11275 * targhooks.c (linux_printf_pointer_format): Define new function.
11276 * targhooks.h (linux_printf_pointer_format): Declare.
11277 (gnu_libc_printf_pointer_format): Remove declaration.
11278
11279 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11280
11281 * fold-const.c (native_encode_real): Fix logic for selecting offset
11282 to write to when BYTES_BIG_ENDIAN.
11283
11284 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
11285
11286 * builtins.c (fold_builtin_strchr): Remove function.
11287 (fold_builtin_strrchr): Likewise.
11288 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
11289 * gimple-fold.c (target_char_cst_p): New function.
11290 (gimple_fold_builtin_strchr) Add more foldings.
11291 (gimple_fold_builtin): Add index, strrchr, rindex cases.
11292
11293 2016-10-05 Richard Biener <rguenther@suse.de>
11294
11295 PR middle-end/77863
11296 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
11297 capture ids in c-exprs.
11298
11299 2016-10-05 Richard Biener <rguenther@suse.de>
11300
11301 PR middle-end/77826
11302 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
11303 with types_match for GIMPLE code gen to handle type mismatched
11304 constants properly.
11305 (dt_operand::gen): Adjust.
11306 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
11307 and constant A.
11308
11309 2016-10-05 Richard Biener <rguenther@suse.de>
11310
11311 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
11312
11313 2016-10-05 Richard Biener <rguenther@suse.de>
11314
11315 PR middle-end/77842
11316 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
11317
11318 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
11319
11320 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
11321 version check to protect only DW_TAG_imported_module generation.
11322
11323 2016-10-05 Richard Biener <rguenther@suse.de>
11324
11325 PR middle-end/55152
11326 * match.pd (min(a,-a) -> -abs(a)): New pattern.
11327
11328 2016-10-04 Ian Lance Taylor <iant@golang.org>
11329
11330 * explow.c (allocate_dynamic_stack_space): Call
11331 do_pending_stack_adjust before handling flag_split_stack.
11332
11333 2016-10-04 David Malcolm <dmalcolm@redhat.com>
11334
11335 * genattrtab.c (make_internal_attr): Supply dummy column number to
11336 file_location ctor.
11337 (main): Likewise.
11338 * genoutput.c (init_insn_for_nothing): Likewise.
11339 * gensupport.c (add_define_attr): Likewise.
11340 * read-md.c (message_at_1): Print column number.
11341 (fatal_with_file_and_line): Likewise.
11342 (rtx_reader::read_char): Track column numbers.
11343 (rtx_reader::unread_char): Likewise.
11344 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
11345 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
11346 (rtx_reader::handle_file): Initialize m_read_md_colno.
11347 (rtx_reader::get_current_location): Supply column number to
11348 file_location ctor.
11349 * read-md.h (struct file_location): Add field "colno".
11350 (file_location::file_location): Likewise.
11351 (rtx_reader::get_colno): New accessor.
11352 (rtx_reader::m_read_md_colno): New field.
11353 (rtx_reader::m_last_line_colno): New field.
11354
11355 2016-10-04 Jakub Jelinek <jakub@redhat.com>
11356
11357 * doc/extend.texi (Java Exceptions): Remove.
11358 (java_interface): Remove.
11359
11360 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
11361
11362 PR tree-optimization/77808
11363 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
11364 and addr are different before copying points-to information.
11365
11366 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
11367
11368 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
11369 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
11370 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
11371 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
11372
11373 2016-10-04 Richard Biener <rguenther@suse.de>
11374
11375 PR tree-optimization/77399
11376 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
11377 verify the target can convert.
11378
11379 2016-10-04 Richard Biener <rguenther@suse.de>
11380
11381 PR middle-end/77833
11382 * explow.c (plus_constant): Verify the mode of the constant
11383 pool offset before calling plus_constant.
11384
11385 2016-10-04 Richard Biener <rguenther@suse.de>
11386
11387 PR middle-end/77407
11388 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
11389 type support, mark with :C.
11390 (X / -X -> -1): Mark with :C.
11391
11392 2016-10-04 Jakub Jelinek <jakub@redhat.com>
11393
11394 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
11395 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
11396 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
11397 * doc/tm.texi: Regenerated.
11398 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
11399 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
11400 * config/darwin.h (JCR_SECTION_NAME): Remove.
11401 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
11402 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
11403 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
11404 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
11405 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
11406 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
11407
11408 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11409
11410 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
11411 between "because" and "param" in dump message in call to fprintf.
11412
11413 2016-10-03 Jeff Law <law@redhat.com>
11414
11415 PR tree-optimization/71550
11416 PR tree-optimization/71403
11417 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
11418 (profitable_jump_thread_path): Also return boolean indicating if
11419 the realized path will create an irreducible loop.
11420 Remove loop depth tests from 71403.
11421 (fsm_find_control_statement_thread_paths): Remove loop depth tests
11422 from 71403. If threading will create an irreducible loop, then
11423 throw away loop iteration and related information.
11424
11425 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
11426
11427 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
11428 -Woverloaded-virtual checks for warning options.
11429 * configure: Regenerate.
11430
11431 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
11432
11433 PR preprocessor/77699
11434 * input.c (maybe_grow): Don't allocate one byte extra headroom.
11435 (get_next_line): Return false on error.
11436 (read_next_line): Removed, use get_next_line instead.
11437 (read_line_num): Don't copy the line.
11438 (location_get_source_line): Don't use static data.
11439 (selftest::test_reading_source_line): Add more test cases.
11440
11441 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11442
11443 Revert
11444 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11445
11446 * ifcvt.c (noce_try_avoid_const_materialization): New function.
11447 (noce_process_if_block): Use it.
11448
11449 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
11450
11451 * doc/invoke.texi: Update -Wint-in-bool-context.
11452
11453 2016-10-02 Jakub Jelinek <jakub@redhat.com>
11454
11455 * dwarf2out.c (output_fde, output_call_frame_info,
11456 dwarf2out_do_cfi_startproc, set_indirect_string,
11457 gen_internal_sym, output_die, output_line_info): Use
11458 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
11459 ASM_GENERATE_INTERNAL_LABEL output.
11460
11461 2016-10-01 Richard Biener <rguenther@suse.de>
11462
11463 PR middle-end/77798
11464 * genmatch.c (get_operand_type): Add operand position arg
11465 and handle COND_EXPR comparison operand with fixed boolean_type_node.
11466 (expr::gen_transform): Adjust.
11467 (dt_simplify::gen_1): Likewise.
11468
11469 2016-10-01 Jakub Jelinek <jakub@redhat.com>
11470
11471 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
11472 comments. Simplify asserts, remove unnecessary conditions.
11473 Formatting fixes.
11474 (*<code><mode>3): Likewise.
11475
11476 2016-09-30 Jakub Jelinek <jakub@redhat.com>
11477
11478 * doc/invoke.texi (-Wregister): Document.
11479
11480 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
11481
11482 * configure.ac: Split CHECKING_P into CHECKING_P and
11483 ENABLE_EXTRA_CHECKING.
11484 * configure: Regenerated.
11485 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
11486 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
11487
11488 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
11489
11490 PR other/31566
11491 * gcc.c (process_command): For @filename handling, output
11492 the correct name if the file does not exist.
11493
11494 2016-09-30 Marek Polacek <polacek@redhat.com>
11495
11496 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
11497 * config/alpha/predicates.md: Likewise.
11498
11499 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11500
11501 * ifcvt.c (noce_try_avoid_const_materialization): New function.
11502 (noce_process_if_block): Use it.
11503
11504 2016-09-30 Martin Liska <mliska@suse.cz>
11505
11506 * doc/invoke.texi: Document asan-use-after-return that
11507 it's disabled by default in runtime.
11508
11509 2016-09-30 Richard Biener <rguenther@suse.de>
11510
11511 * tree-vrp.c (intersect_ranges): If we failed to handle
11512 the intersection choose a constant singleton range if available.
11513
11514 2016-09-30 Richard Biener <rguenther@suse.de>
11515
11516 PR tree-optimization/77399
11517 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
11518 float <-> int conversions.
11519
11520 2016-09-30 Alan Modra <amodra@gmail.com>
11521
11522 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
11523
11524 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
11525
11526 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
11527 ext_level before calling CPUID with 0x80000008.
11528 Simplify xgetbv checks.
11529
11530 2016-09-29 David Malcolm <dmalcolm@redhat.com>
11531
11532 * Makefile.in (OBJS): Add print-rtl-function.o.
11533 * print-rtl-function.c: New file.
11534 * print-rtl.h (print_rtx_function): New decl.
11535
11536 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
11537
11538 PR target/77756
11539 * config/i386/cpuid.h (__get_cpuid_count): New.
11540 (__get_cpuid): Rename __level to __leaf.
11541
11542 2016-09-29 Marek Polacek <polacek@redhat.com>
11543
11544 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
11545
11546 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
11547
11548 PR target/77718
11549 * builtins.c (expand_builtin_memcmp): Don't swap args unless
11550 result is only being compared with zero.
11551
11552 2016-09-29 Marek Polacek <polacek@redhat.com>
11553
11554 * dwarf2out.c (loc_descriptor): Add fall through comment.
11555 (add_const_value_attribute): Likewise.
11556
11557 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
11558
11559 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
11560 with "v6t2". Move "arch" attribute above "pool_range".
11561 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
11562 with "v6t2".
11563 (*thumb2_movhi_vfp): Likewise.
11564 (*arm_movhi_fp16): Likewise.
11565 (*thumb2_movhi_fp16): Likewise.
11566 (*arm_movsi_vfp): Remove "arch" attribute.
11567 (*thumb2_movsi_vfp): Likewise.
11568
11569 2016-09-29 Martin Liska <mliska@suse.cz>
11570
11571 * doc/extend.texi: Remove limitation of Objective C for
11572 __attribute__((constructor)) and __attribute__((destructor)).
11573
11574 2016-09-29 Richard Biener <rguenther@suse.de>
11575
11576 PR tree-optimization/77768
11577 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11578 Handle stores to readonly memory when removing redundant stores.
11579
11580 2016-09-29 Richard Biener <rguenther@suse.de>
11581
11582 PR middle-end/77407
11583 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
11584 X / -X -> -1 simplifications.
11585
11586 2016-09-29 Richard Biener <rguenther@suse.de>
11587
11588 PR middle-end/55152
11589 * match.pd: Add max(a,-a) -> abs(a) pattern.
11590 * tree-ssa-phiopt.c (minmax_replacement): Disable for
11591 HONOR_SIGNED_ZEROS types.
11592
11593 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
11594
11595 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
11596 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
11597
11598 2016-09-29 Richard Biener <rguenther@suse.de>
11599
11600 * tree-vrp.c (set_defs_to_varying): New helper avoiding
11601 writing to vr_const_varying.
11602 (vrp_initialize): Call it.
11603 (vrp_visit_stmt): Likewise.
11604 (evrp_dom_walker::before_dom_children): Likewise.
11605
11606 2016-09-29 Richard Biener <rguenther@suse.de>
11607
11608 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
11609 constructors with vector elements.
11610
11611 2016-09-29 Richard Biener <rguenther@suse.de>
11612
11613 PR tree-optimization/77768
11614 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
11615 with stores to a place we know has a constant value.
11616
11617 2016-09-29 Alan Modra <amodra@gmail.com>
11618
11619 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
11620 * doc/invoke.texi: Document it.
11621 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
11622 (rs6000_passes_float): Comment.
11623 (rs6000_passes_long_double): New static var.
11624 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
11625 (init_cumulative_args): Set up to emit fp .gnu_attribute for
11626 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
11627 to include fp values returned in vectors.
11628 Set rs6000_passes_long_double.
11629 (rs6000_function_arg_advance_1): Likewise for function args.
11630 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
11631 and SPE. Emit long double tag value too.
11632 (rs6000_opt_vars): Add gnu-attr.
11633 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
11634 * configure: Regenerate.
11635 * config.in: Regenerate.
11636
11637 2016-09-28 Jakub Jelinek <jakub@redhat.com>
11638
11639 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
11640 of 0 < x.
11641 (format_floating, format_string, format_directive,
11642 get_destination_size, pass_sprintf_length::handle_gimple_call):
11643 Likewise.
11644
11645 2016-09-28 Jakub Jelinek <jakub@redhat.com>
11646
11647 * gimple-ssa-sprintf.c: Fix comment formatting.
11648 (format_integer): Use is_gimple_assign.
11649 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
11650 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
11651 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
11652 (pass_sprintf_length::execute): Use is_gimple_call.
11653
11654 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
11655
11656 * gimple-fold.c (gimple_fold_builtin): After failing to fold
11657 strchr, also try the generic folding.
11658
11659 2016-09-28 Martin Sebor <msebor@redhat.com>
11660
11661 PR c/77762
11662 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
11663 Fix typos.
11664
11665 2016-09-28 Martin Sebor <msebor@redhat.com>
11666
11667 PR middle-end/77683
11668 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
11669 length modifier is not expected.
11670 (format_floating): Ignore l length modifier and fail gracefuly
11671 when it isn't one of the other expected ones.
11672
11673 2016-09-28 Martin Sebor <msebor@redhat.com>
11674
11675 PR bootstrap/77753
11676 * varasm.c (assemble_addr_to_section): Increase local buffer size.
11677
11678 2016-09-27 Richard Biener <rguenther@suse.de>
11679
11680 * dwarf2out.c (cu_die_list): New global.
11681 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
11682 main_comp_unit_die to cu_die_list if we created it.
11683 Move break_out_includes ...
11684 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
11685 the cu_die_list.
11686
11687 2016-09-28 Richard Biener <rguenther@suse.de>
11688
11689 * dwarf2out.c (struct die_struct): Add removed flag.
11690 (lookup_type_die): If the DIE is marked as removed, clear
11691 TYPE_SYMTAB_DIE and return NULL.
11692 (lookup_decl_die): If the DIE is marked as removed, remove it
11693 from the hash and return NULL.
11694 (mark_removed): New helper.
11695 (prune_unused_types_prune): Call it for removed DIEs.
11696 (gen_subprogram_die): Move the premark_used_types call to after
11697 DIEs for the functions scopes are generated.
11698 (process_scope_var): Do not re-create pruned types or type decls.
11699 Make sure to also re-parent type decls.
11700 (dwarf2out_finish): Move unused type pruning and debug_types
11701 handling ...
11702 (dwarf2out_early_finish): ... here.
11703
11704 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
11705
11706 * config/arc/arc-c.c: New file.
11707 * config/arc/arc-c.def: Likewise.
11708 * config/arc/t-arc: Likewise.
11709 * config.gcc: Include arc-c.o as c and cpp object.
11710 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
11711 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
11712 arc_cpu_cpp_builtins.
11713
11714 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
11715
11716 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
11717 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
11718
11719 2016-09-28 Nathan Sidwell <nathan@acm.org>
11720
11721 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
11722 printing.
11723
11724 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
11725
11726 PR tree-optimization/61056
11727 * gimple-fold.c (gimple_fold_builtin_strchr):
11728 New function to optimize strchr (s, 0) to strlen.
11729 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
11730
11731 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
11732
11733 PR tree-optimization/77724
11734 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
11735 Add tree_fits_shwi_p check.
11736
11737 2016-09-27 Jakub Jelinek <jakub@redhat.com>
11738
11739 * auto-inc-dec.c (try_merge): Remove break after return.
11740 * cselib.c (autoinc_split): Likewise.
11741 * explow.c (promote_mode): Likewise.
11742 * fixed-value.c (fixed_arithmetic): Likewise.
11743 * hsa.c (hsa_internal_fn::get_arity): Likewise.
11744 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
11745 * trans-mem.c (get_attrs_for): Likewise.
11746 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
11747 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
11748 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
11749 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
11750 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
11751 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
11752 * config/cris/cris.c (cris_op_str): Likewise.
11753 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
11754 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
11755
11756 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
11757
11758 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
11759 IFN_GOACC_REDUCTION_CODES): New.
11760 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
11761 ifn_goacc_reduction_kind): Use them.
11762 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
11763 of internal functions, when applicable.
11764
11765 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
11766
11767 * config/mips/constraints.md (d): Fix documentation.
11768 * doc/md.texi (Machine Constraints): Update accordingly.
11769
11770 2016-09-27 Richard Biener <rguenther@suse.de>
11771
11772 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
11773 cur_line_info_table initialization ...
11774 (dwarf2out_assembly_start): ... here.
11775
11776 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
11777
11778 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
11779 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
11780 (*thumb2_movhi_vfp): Likewise.
11781 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
11782 template. Expand predicable attribute to mark VMOV.F16 as not
11783 predicable. Add "arch" attribute.
11784 (*thumb2_movhi_fp16): Likewise.
11785 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
11786 (*thumb2_movsi_vfp): Add "arch" attribute.
11787
11788 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
11789
11790 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
11791 VAR_DECL string.
11792
11793 2016-09-27 Marek Polacek <polacek@redhat.com>
11794
11795 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
11796 comment.
11797
11798 * config/c6x/c6x.h: Adjust fall through comment.
11799 * config/sh/sh.c (final_prescan_insn): Likewise.
11800 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
11801 (visium_expand_fp_cstore): Likewise.
11802
11803 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11804
11805 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
11806 expected by -Wimplicit-fallthrough.
11807 (thumb1_size_rtx_costs): Likewise.
11808 (thumb2_reorg): Likewise.
11809 (tls_mentioned_p): Add "Fall through" comment.
11810 (thumb2_reorg): Likewise.
11811 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
11812 comment form expected by -Wimplicit-fallthrough.
11813
11814 2016-09-27 Martin Liska <mliska@suse.cz>
11815
11816 PR gcov-profile/46266
11817 * input.h (RESERVED_LOCATION_P): New macro.
11818 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
11819 instread of comparison with UNKNOWN_LOCATION.
11820
11821 2016-09-27 Richard Biener <rguenther@suse.de>
11822
11823 PR tree-optimization/77745
11824 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11825 When removing redundant stores make sure to check compatibility
11826 of the TBAA state for downstream accesses.
11827 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
11828 value-numbering virtual operands for store matches.
11829
11830 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
11831
11832 PR target/51244
11833 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
11834 movrt patterns. Match them before anything else in the SET case.
11835
11836 2016-09-27 Martin Liska <mliska@suse.cz>
11837
11838 PR gcov-profile/7970
11839 PR gcov-profile/16855
11840 PR gcov-profile/44779
11841 * coverage.c (build_gcov_exit_decl): New function.
11842 (coverage_obj_init): Call the function and generate __gcov_exit
11843 destructor.
11844 * doc/gcov.texi: Document when __gcov_exit function is called.
11845
11846 2016-09-27 Marek Polacek <polacek@redhat.com>
11847
11848 PR bootstrap/77751
11849 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
11850 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
11851 -Wno-error instead of -Wno-implicit-fallthrough.
11852
11853 2016-09-27 Martin Liska <mliska@suse.cz>
11854
11855 PR bootstrap/77749
11856 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
11857
11858 2016-09-27 Jakub Jelinek <jakub@redhat.com>
11859
11860 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
11861 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
11862 comments. Remove break after return.
11863 (ix86_fp_compare_code_to_integer, has_dispatch,
11864 ix86_simd_clone_usable): Remove break after return.
11865
11866 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
11867
11868 PR rlt-optimization/77714
11869 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
11870 REG_EQUAL note.
11871
11872 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
11873
11874 PR ipa/77677
11875 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
11876 extract_range_from_unary_expr to convert value_range.
11877 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
11878 (extract_range_from_unary_expr): This.
11879 * tree-vrp.h (extract_range_from_unary_expr): Declare.
11880
11881 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
11882
11883 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
11884
11885 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11886
11887 * config/i386/i386.c (ix86_print_operand)
11888 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
11889 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
11890 (epilogue_renumber): Likewise.
11891
11892 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
11893
11894 PR middle-end/77719
11895 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
11896 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
11897
11898 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
11899
11900 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
11901 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
11902 is_mm_seq_cst, is_mm_sync): Move to ...
11903 * memmodel.h: This. New file.
11904 * builtins.c: Include memmodel.h.
11905 * optabs.c: Likewise.
11906 * tsan.c: Likewise.
11907 * config/aarch64/aarch64.c: Likewise.
11908 * config/alpha/alpha.c: Likewise.
11909 * config/arm/arm.c: Likewise.
11910 * config/i386/i386.c: Likewise.
11911 * config/ia64/ia64.c: Likewise.
11912 * config/mips/mips.c: Likewise.
11913 * config/rs6000/rs6000.c: Likewise.
11914 * config/sparc/sparc.c: Likewise.
11915 * genconditions.c: Include memmodel.h in generated file.
11916 * genemit.c: Likewise.
11917 * genoutput.c: Likewise.
11918 * genpeep.c: Likewise.
11919 * genpreds.c: Likewise.
11920 * genrecog.c: Likewise.
11921
11922 2016-09-26 David Malcolm <dmalcolm@redhat.com>
11923
11924 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
11925 "c" instead when parsing characters. Move operand parsing into...
11926 (read_rtx_operand): ...this new function, renaming "i" to "idx",
11927 and tightening the scope of various locals.
11928
11929 2016-09-26 Liu Hao <lh_mouse@126.com>
11930
11931 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
11932
11933 2016-09-26 Marek Polacek <polacek@redhat.com>
11934
11935 * system.h: Use __has_attribute to check whether the fallthrough
11936 attribute is supported.
11937
11938 2016-09-26 Marek Polacek <polacek@redhat.com>
11939
11940 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
11941 gimple_call_internal_p.
11942 * ipa-split.c (find_return_bb): Likewise.
11943 (execute_split_functions): Likewise.
11944 * omp-low.c (dump_oacc_loop_part): Likewise.
11945 (oacc_loop_xform_head_tail): Likewise.
11946 * predict.c (predict_loops): Likewise.
11947 * sanopt.c (pass_sanopt::execute): Likewise.
11948 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
11949 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
11950 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
11951 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
11952 (expand_ifn_va_arg): Likewise.
11953 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
11954 (optimize_mask_stores): Likewise.
11955 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
11956 (vect_transform_stmt): Likewise.
11957 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
11958 * tsan.c (instrument_memory_accesses): Likewise.
11959
11960 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11961 Alexander Monakov <amonakov@ispras.ru>
11962
11963 * regrename.c (rename_chains): Check
11964 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
11965 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
11966 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
11967
11968 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11969
11970 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
11971 (s390_sched_score): Likewise.
11972
11973 2016-09-26 Martin Liska <mliska@suse.cz>
11974
11975 * doc/gcov.texi: Update program output of gcov tool.
11976
11977 2016-09-26 Martin Liska <mliska@suse.cz>
11978
11979 PR gcov-profile/23332
11980 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
11981 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
11982 * value-prof.c (dump_histogram_value): Do not handle
11983 HIST_TYPE_CONST_DELTA.
11984 (stream_in_histogram_value): Likewise.
11985 (gimple_find_values_to_profile): Likewise.
11986 * value-prof.h (enum hist_type): Likewise.
11987
11988 2016-09-26 Martin Liska <mliska@suse.cz>
11989
11990 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
11991 from default sanitize recover values.
11992 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
11993 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
11994 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
11995 consistent.
11996 * opts.c (finish_options): Do a generic loop over options
11997 that can be recovered.
11998 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
11999 SANITIZE_RETURN.
12000 (common_handle_option): Likewise.
12001 * opts.h: Declare can_recover to sanitizer_opts_s.
12002
12003 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
12004
12005 * target.def(elf_flags_numeric): Change documentation to present tense.
12006 * doc/tm.texi: Regenerate.
12007
12008 2016-09-26 Marek Polacek <polacek@redhat.com>
12009
12010 PR c/7652
12011 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
12012 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
12013 -Wno-switch-fallthrough.
12014 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
12015 (expand_builtin): Likewise.
12016 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
12017 * convert.c (convert_to_real_1): Likewise.
12018 (convert_to_integer_1): Likewise.
12019 * final.c (output_alternate_entry_point): Likewise.
12020 * genattrtab.c (make_canonical): Likewise.
12021 (write_test_expr): Likewise.
12022 * genpreds.c (validate_exp): Likewise.
12023 * gimple-ssa-strength-reduction.c
12024 (find_candidates_dom_walker::before_dom_children): Likewise.
12025 * godump.c (go_format_type): Likewise.
12026 * reload1.c (elimination_effects): Likewise.
12027 * resource.c (mark_referenced_resources): Likewise.
12028 (mark_set_resources): Likewise.
12029 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
12030 * varasm.c (output_addressed_constants): Likewise.
12031
12032 2016-09-26 Marek Polacek <polacek@redhat.com>
12033
12034 PR c/7652
12035 * common.opt (Wimplicit-fallthrough): New option.
12036 * doc/extend.texi: Document statement attributes and the fallthrough
12037 attribute.
12038 * doc/invoke.texi: Document -Wimplicit-fallthrough.
12039 * gimple.h (gimple_call_internal_p): New function.
12040 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
12041 (struct label_entry): New struct.
12042 (find_label_entry): New function.
12043 (case_label_p): New function.
12044 (collect_fallthrough_labels): New function.
12045 (last_stmt_in_scope): New function.
12046 (should_warn_for_implicit_fallthrough): New function.
12047 (warn_implicit_fallthrough_r): New function.
12048 (maybe_warn_implicit_fallthrough): New function.
12049 (expand_FALLTHROUGH_r): New function.
12050 (expand_FALLTHROUGH): New function.
12051 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
12052 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
12053 (gimplify_label_expr): New function.
12054 (gimplify_case_label_expr): Set location.
12055 (gimplify_expr): Call gimplify_label_expr.
12056 * internal-fn.c (expand_FALLTHROUGH): New function.
12057 * internal-fn.def (FALLTHROUGH): New internal function.
12058 * langhooks.c (lang_GNU_OBJC): New function.
12059 * langhooks.h (lang_GNU_OBJC): Declare.
12060 * system.h (gcc_fallthrough): Define.
12061 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
12062 * tree.h (FALLTHROUGH_LABEL_P): Define.
12063
12064 2016-09-26 Richard Biener <rguenther@suse.de>
12065
12066 * dwarf2out.c (stripattributes): Remove unused function.
12067 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
12068 Push dwarf_split_debug_info handling into init_sections_and_labels.
12069 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
12070 (DEBUG_MACRO_SECTION_FLAGS): Remove.
12071 (debug_macinfo_section_name): New global.
12072 (output_macinfo): Use debug_macinfo_section_name.
12073 (init_sections_and_labels): Split out section and label generation
12074 from dwarf2out_init. Set debug_macinfo_section_name.
12075 (dwarf2out_init): Move text section label generation and emission
12076 to ...
12077 (dwarf2out_assembly_start): ... here.
12078 (dwarf2out_finish): Call init_sections_and_labels before DWARF
12079 output starts.
12080
12081 2016-09-26 Richard Biener <rguenther@suse.de>
12082
12083 PR debug/77692
12084 * cgraphunit.c (analyze_functions): Before early removing
12085 global vars calls the late_global_decl debug handler mark
12086 the variable as readonly.
12087
12088 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
12089
12090 PR target/51244
12091 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
12092 (sh_rtx_costs): Handle SET of movt and movrt patterns.
12093 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
12094 declare new overloads.
12095 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
12096 operand.
12097
12098 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12099
12100 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
12101 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
12102
12103 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
12104
12105 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
12106 * configure: Regenerate.
12107
12108 2016-09-24 Marek Polacek <polacek@redhat.com>
12109
12110 PR c/77490
12111 * doc/invoke.texi: Document -Wbool-operation.
12112
12113 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12114
12115 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
12116 * config/rs6000/rs6000.c (expand_block_compare): New function used by
12117 cmpmemsi pattern to do builtin expansion of memcmp ().
12118 (compute_current_alignment): Add helper function for
12119 expand_block_compare used to compute alignment as the compare proceeds.
12120 (select_block_compare_mode): Used by expand_block_compare to select
12121 the mode used for reading the next chunk of bytes in the compare.
12122 (do_load_for_compare): Used by expand_block_compare to emit the load
12123 insns for the compare.
12124 (rs6000_emit_dot_insn): Moved this function to avoid a forward
12125 reference from expand_block_compare ().
12126 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
12127 prototype for this function.
12128 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
12129 target option for controlling how much code inline expansion of
12130 memcmp() will be allowed to generate.
12131
12132 2016-09-23 Jakub Jelinek <jakub@redhat.com>
12133
12134 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
12135 hook_bool_mode_false, hook_bool_mode_true,
12136 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
12137 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
12138 hook_bool_const_rtx_insn_const_rtx_insn_true,
12139 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
12140 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
12141 hook_bool_const_tree_hwi_hwi_const_tree_false,
12142 hook_bool_const_tree_hwi_hwi_const_tree_true,
12143 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
12144 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
12145 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
12146 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
12147 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
12148 hook_bool_const_tree_true, hook_bool_tree_tree_false,
12149 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
12150 hook_bool_rtx_insn_true, hook_bool_rtx_false,
12151 hook_bool_uintp_uintp_false,
12152 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
12153 hook_rtx_tree_int_null, hook_uint_mode_0,
12154 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
12155 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
12156 hook_constcharptr_const_rtx_insn_null,
12157 hook_constcharptr_const_tree_const_tree_null,
12158 hook_constcharptr_int_const_tree_null,
12159 hook_constcharptr_int_const_tree_const_tree_null,
12160 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
12161 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
12162 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
12163
12164 * vec.h (vNULL): Extend comment to say = vNULL initialization
12165 isn't needed for static vars.
12166
12167 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
12168 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
12169 = vNULL initialization of file scope vec.
12170 * passes.c (pass_tab, enabled_pass_uid_range_tab,
12171 disabled_pass_uid_range_tab): Likewise.
12172 * haifa-sched.c (sched_luids, h_i_d): Likewise.
12173 * tree-chkp-opt.c (check_infos): Likewise.
12174 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
12175
12176 * vec.h (vnull::operator vec): Add constexpr keyword for
12177 C++11 and later.
12178
12179 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
12180
12181 PR tree-optimization/77654
12182 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
12183 to duplicate_ssa_name_ptr_info.
12184
12185 2016-09-23 David Malcolm <dmalcolm@redhat.com>
12186
12187 PR preprocessor/77672
12188 * input.c (selftest::test_lexer_string_locations_simple): Update
12189 test to expect location information of the terminator character
12190 at the location of the final closing quote.
12191 (selftest::test_lexer_string_locations_hex): Likewise.
12192 (selftest::test_lexer_string_locations_oct): Likewise.
12193 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
12194 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
12195 (selftest::test_lexer_string_locations_ucn4): Likewise.
12196 (selftest::test_lexer_string_locations_ucn8): Likewise.
12197 (selftest::test_lexer_string_locations_u8): Likewise.
12198 (selftest::test_lexer_string_locations_utf8_source): Likewise.
12199 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
12200 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
12201 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
12202 (selftest::test_lexer_string_locations_macro): Likewise.
12203 (selftest::test_lexer_string_locations_long_line): Likewise.
12204
12205 2016-09-23 Richard Biener <rguenther@suse.de>
12206
12207 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
12208 virtual definition to virtual use if the call devirtualizes
12209 to a const or pure function.
12210 (visit_use): Also visit calls we can devirtualize to a
12211 const or pure function.
12212
12213 2016-09-23 Richard Biener <rguenther@suse.de>
12214
12215 PR tree-optimization/77697
12216 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
12217 signal error if we have sth ternary or unhandled.
12218
12219 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12220
12221 * config/arm/arm_neon.h (vabd_f16): New.
12222 (vabdq_f16): New.
12223 (vabs_f16): New.
12224 (vabsq_f16): New.
12225 (vadd_f16): New.
12226 (vaddq_f16): New.
12227 (vcage_f16): New.
12228 (vcageq_f16): New.
12229 (vcagt_f16): New.
12230 (vcagtq_f16): New.
12231 (vcale_f16): New.
12232 (vcaleq_f16): New.
12233 (vcalt_f16): New.
12234 (vcaltq_f16): New.
12235 (vceq_f16): New.
12236 (vceqq_f16): New.
12237 (vceqz_f16): New.
12238 (vceqzq_f16): New.
12239 (vcge_f16): New.
12240 (vcgeq_f16): New.
12241 (vcgez_f16): New.
12242 (vcgezq_f16): New.
12243 (vcgt_f16): New.
12244 (vcgtq_f16): New.
12245 (vcgtz_f16): New.
12246 (vcgtzq_f16): New.
12247 (vcle_f16): New.
12248 (vcleq_f16): New.
12249 (vclez_f16): New.
12250 (vclezq_f16): New.
12251 (vclt_f16): New.
12252 (vcltq_f16): New.
12253 (vcltz_f16): New.
12254 (vcltzq_f16): New.
12255 (vcvt_f16_s16): New.
12256 (vcvt_f16_u16): New.
12257 (vcvt_s16_f16): New.
12258 (vcvt_u16_f16): New.
12259 (vcvtq_f16_s16): New.
12260 (vcvtq_f16_u16): New.
12261 (vcvtq_s16_f16): New.
12262 (vcvtq_u16_f16): New.
12263 (vcvta_s16_f16): New.
12264 (vcvta_u16_f16): New.
12265 (vcvtaq_s16_f16): New.
12266 (vcvtaq_u16_f16): New.
12267 (vcvtm_s16_f16): New.
12268 (vcvtm_u16_f16): New.
12269 (vcvtmq_s16_f16): New.
12270 (vcvtmq_u16_f16): New.
12271 (vcvtn_s16_f16): New.
12272 (vcvtn_u16_f16): New.
12273 (vcvtnq_s16_f16): New.
12274 (vcvtnq_u16_f16): New.
12275 (vcvtp_s16_f16): New.
12276 (vcvtp_u16_f16): New.
12277 (vcvtpq_s16_f16): New.
12278 (vcvtpq_u16_f16): New.
12279 (vcvt_n_f16_s16): New.
12280 (vcvt_n_f16_u16): New.
12281 (vcvtq_n_f16_s16): New.
12282 (vcvtq_n_f16_u16): New.
12283 (vcvt_n_s16_f16): New.
12284 (vcvt_n_u16_f16): New.
12285 (vcvtq_n_s16_f16): New.
12286 (vcvtq_n_u16_f16): New.
12287 (vfma_f16): New.
12288 (vfmaq_f16): New.
12289 (vfms_f16): New.
12290 (vfmsq_f16): New.
12291 (vmax_f16): New.
12292 (vmaxq_f16): New.
12293 (vmaxnm_f16): New.
12294 (vmaxnmq_f16): New.
12295 (vmin_f16): New.
12296 (vminq_f16): New.
12297 (vminnm_f16): New.
12298 (vminnmq_f16): New.
12299 (vmul_f16): New.
12300 (vmul_lane_f16): New.
12301 (vmul_n_f16): New.
12302 (vmulq_f16): New.
12303 (vmulq_lane_f16): New.
12304 (vmulq_n_f16): New.
12305 (vneg_f16): New.
12306 (vnegq_f16): New.
12307 (vpadd_f16): New.
12308 (vpmax_f16): New.
12309 (vpmin_f16): New.
12310 (vrecpe_f16): New.
12311 (vrecpeq_f16): New.
12312 (vrnd_f16): New.
12313 (vrndq_f16): New.
12314 (vrnda_f16): New.
12315 (vrndaq_f16): New.
12316 (vrndm_f16): New.
12317 (vrndmq_f16): New.
12318 (vrndn_f16): New.
12319 (vrndnq_f16): New.
12320 (vrndp_f16): New.
12321 (vrndpq_f16): New.
12322 (vrndx_f16): New.
12323 (vrndxq_f16): New.
12324 (vrsqrte_f16): New.
12325 (vrsqrteq_f16): New.
12326 (vrecps_f16): New.
12327 (vrecpsq_f16): New.
12328 (vrsqrts_f16): New.
12329 (vrsqrtsq_f16): New.
12330 (vsub_f16): New.
12331 (vsubq_f16): New.
12332
12333 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12334
12335 * config.gcc (extra_headers): Add arm_fp16.h
12336 * config/arm/arm_fp16.h: New.
12337 * config/arm/arm_neon.h: Include "arm_fp16.h".
12338
12339 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12340
12341 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
12342 variants).
12343 (vmulf): New (v8hf, v4hf variants).
12344 (vfma): New (v8hf, v4hf variants).
12345 (vfms): New (v8hf, v4hf variants).
12346 (vsub): New (v8hf, v4hf variants).
12347 (vcage): New (v8hf, v4hf variants).
12348 (vcagt): New (v8hf, v4hf variants).
12349 (vcale): New (v8hf, v4hf variants).
12350 (vcalt): New (v8hf, v4hf variants).
12351 (vceq): New (v8hf, v4hf variants).
12352 (vcgt): New (v8hf, v4hf variants).
12353 (vcge): New (v8hf, v4hf variants).
12354 (vcle): New (v8hf, v4hf variants).
12355 (vclt): New (v8hf, v4hf variants).
12356 (vceqz): New (v8hf, v4hf variants).
12357 (vcgez): New (v8hf, v4hf variants).
12358 (vcgtz): New (v8hf, v4hf variants).
12359 (vcltz): New (v8hf, v4hf variants).
12360 (vclez): New (v8hf, v4hf variants).
12361 (vabd): New (v8hf, v4hf variants).
12362 (vmaxf): New (v8hf, v4hf variants).
12363 (vmaxnm): New (v8hf, v4hf variants).
12364 (vminf): New (v8hf, v4hf variants).
12365 (vminnm): New (v8hf, v4hf variants).
12366 (vpmaxf): New (v4hf variant).
12367 (vpminf): New (v4hf variant).
12368 (vpadd): New (v4hf variant).
12369 (vrecps): New (v8hf, v4hf variants).
12370 (vrsqrts): New (v8hf, v4hf variants).
12371 (vabs): New (v8hf, v4hf variants).
12372 (vneg): New (v8hf, v4hf variants).
12373 (vrecpe): New (v8hf, v4hf variants).
12374 (vrnd): New (v8hf, v4hf variants).
12375 (vrnda): New (v8hf, v4hf variants).
12376 (vrndm): New (v8hf, v4hf variants).
12377 (vrndn): New (v8hf, v4hf variants).
12378 (vrndp): New (v8hf, v4hf variants).
12379 (vrndx): New (v8hf, v4hf variants).
12380 (vrsqrte): New (v8hf, v4hf variants).
12381 (vmul_lane): Add v4hf and v8hf variants.
12382 (vmul_n): Add v4hf and v8hf variants.
12383 (vext): New (v8hf, v4hf variants).
12384 (vcvts): New (v8hi, v4hi variants).
12385 (vcvts): New (v8hf, v4hf variants).
12386 (vcvtu): New (v8hi, v4hi variants).
12387 (vcvtu): New (v8hf, v4hf variants).
12388 (vcvts_n): New (v8hf, v4hf variants).
12389 (vcvtu_n): New (v8hi, v4hi variants).
12390 (vcvts_n): New (v8hi, v4hi variants).
12391 (vcvtu_n): New (v8hf, v4hf variants).
12392 (vbsl): New (v8hf, v4hf variants).
12393 (vcvtas): New (v8hf, v4hf variants).
12394 (vcvtau): New (v8hf, v4hf variants).
12395 (vcvtms): New (v8hf, v4hf variants).
12396 (vcvtmu): New (v8hf, v4hf variants).
12397 (vcvtns): New (v8hf, v4hf variants).
12398 (vcvtnu): New (v8hf, v4hf variants).
12399 (vcvtps): New (v8hf, v4hf variants).
12400 (vcvtpu): New (v8hf, v4hf variants).
12401
12402 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12403
12404 * config/arm/arm-builtins.c (hf_UP): New.
12405 (si_UP): New.
12406 (vfp_builtin_data): New. Update comment.
12407 (enum arm_builtins): Include "arm_vfp_builtins.def".
12408 (ARM_BUILTIN_VFP_PATTERN_START): New.
12409 (arm_init_vfp_builtins): New.
12410 (arm_init_builtins): Add arm_init_vfp_builtins.
12411 (arm_expand_vfp_builtin): New.
12412 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
12413 long line.
12414 * config/arm/arm_vfp_builtins.def: New file.
12415 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
12416 (arm-builtins.o): Likewise.
12417
12418 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
12419
12420 PR ipa/77677
12421 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
12422 from constant while creating value range.
12423
12424 2016-09-23 Renlin Li <renlin.li@arm.com>
12425
12426 * ira.c (ira): Move ira_use_lra_p initialization code to ...
12427 (ira_init_once): Here.
12428
12429 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
12430 Jakub Jelinek <jakub@redhat.com>
12431
12432 * hooks.h (hook_uint_uintp_false): Rename to...
12433 (hook_bool_uint_uintp_false): ... this.
12434 * hooks.c (hook_uint_uintp_false): Rename to...
12435 (hook_bool_uint_uintp_false): ... this.
12436 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
12437 instead of hook_uint_uintp_false.
12438
12439 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12440
12441 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
12442 (arm_init_builtins): Move body of a loop to the standalone
12443 function arm_init_neon_builtin.
12444 (arm_expand_neon_builtin_1): New. Update comment. Function body
12445 moved from arm_neon_builtin with some white-space fixes.
12446 (arm_expand_neon_builtin): Move code into the standalone function
12447 arm_expand_neon_builtin_1.
12448
12449 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12450
12451 * config/arm/iterators.md (VCVTHI): New.
12452 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
12453 (NEON_VAGLTE): New.
12454 (VFM_LANE_AS): New.
12455 (VH_CVTTO): New.
12456 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
12457 (V_HALF): Add V4HF. Fix white-space.
12458 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
12459 (V_s_elem): Likewise.
12460 (V_sz_elem): Fix white-space.
12461 (V_elem_ch): Likewise.
12462 (VH_elem_ch): New.
12463 (scalar_mul_constraint): Add V8HF and V4HF.
12464 (Is_float_mode): Fix white-space.
12465 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
12466 (q): Add HF. Fix white-space.
12467 (float_sup): New.
12468 (float_SUP): New.
12469 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
12470 (neon_vfm_lane_as): New.
12471 * config/arm/neon.md (add<mode>3_fp16): New.
12472 (sub<mode>3_fp16): New.
12473 (mul<mode>3add<mode>_neon): New.
12474 (fma<VH:mode>4_intrinsic): New.
12475 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
12476 (fmsub<VH:mode>4_intrinsic): New.
12477 (<absneg_str><mode>2): New.
12478 (neon_v<absneg_str><mode>): New.
12479 (neon_v<fp16_rnd_str><mode>): New.
12480 (neon_vrsqrte<mode>): New.
12481 (neon_vpaddv4hf): New.
12482 (neon_vadd<mode>): New.
12483 (neon_vsub<mode>): New.
12484 (neon_vmulf<mode>): New.
12485 (neon_vfma<VH:mode>): New.
12486 (neon_vfms<VH:mode>): New.
12487 (neon_vc<cmp_op><mode>): New.
12488 (neon_vc<cmp_op><mode>_fp16insn): New
12489 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
12490 (neon_vca<cmp_op><mode>): New.
12491 (neon_vca<cmp_op><mode>_fp16insn): New.
12492 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
12493 (neon_vc<cmp_op>z<mode>): New.
12494 (neon_vabd<mode>): New.
12495 (neon_v<maxmin>f<mode>): New.
12496 (neon_vp<maxmin>fv4hf: New.
12497 (neon_<fmaxmin_op><mode>): New.
12498 (neon_vrecps<mode>): New.
12499 (neon_vrsqrts<mode>): New.
12500 (neon_vrecpe<mode>): New (VH variant).
12501 (neon_vdup_lane<mode>_internal): New.
12502 (neon_vdup_lane<mode>): New.
12503 (neon_vcvt<sup><mode>): New (VCVTHI variant).
12504 (neon_vcvt<sup><mode>): New (VH variant).
12505 (neon_vcvt<sup>_n<mode>): New (VH variant).
12506 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
12507 (neon_vcvt<vcvth_op><sup><mode>): New.
12508 (neon_vmul_lane<mode>): New.
12509 (neon_vmul_n<mode>): New.
12510 * config/arm/unspecs.md (UNSPEC_VCALE): New
12511 (UNSPEC_VCALT): New.
12512 (UNSPEC_VFMA_LANE): New.
12513 (UNSPECS_VFMS_LANE): New.
12514
12515 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12516
12517 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
12518 ("*extzv<mode><clobbercc_or_nocc>"):
12519 Correct a typo in a comment.
12520 Merged patterns.
12521 ("*insv<mode>_zEC12", "*insv<mode>_z10")
12522 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
12523 ("*insv<mode>_zEC12_appendbitsleft")
12524 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
12525 ("*insv<mode>_z10_appendbitsleft"): Ditto.
12526 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
12527 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
12528 Provide pattern with operands switched.
12529 ("*pre_z10_extv<mode>"):
12530 Use new subst patterns.
12531 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
12532 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
12533 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
12534 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
12535 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
12536 ("*<risbg_n>_sidi_ior_and_lshiftrt")
12537 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
12538 New patterns.
12539 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
12540 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
12541 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
12542 on zEC12.
12543 ("SINT"): New mode_iterator with SI, HI, QI.
12544 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
12545 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
12546 duplication.
12547
12548 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12549
12550 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
12551 new interface of s390_contiguous_bitmask_p.
12552 ("contiguous_bitmask_nowrap_operand"): New predicate.
12553 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
12554 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
12555 of s390_contiguous_bitmask_p.
12556 ("NxxDw"): Rename NxxDq constraint to NxxDw.
12557 ("NxxSw"): New constraint.
12558 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
12559 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
12560 interface.
12561 (s390_contiguous_bitmask_nowrap_p): Export.
12562 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
12563 former s390_contiguous_bitmask_p.
12564 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
12565 detect contiguous bit ranges with wraparound. Change signature to
12566 return START and END position instead of POS and LENGTH.
12567 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
12568 ranges with wraparound.
12569 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
12570 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
12571 Adapt to new signature of s390_contiguous_bitmask_p.
12572
12573 2016-09-23 Bin Cheng <bin.cheng@arm.com>
12574
12575 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
12576 (create_intersect_range_checks): New.
12577 (vect_create_cond_for_alias_checks): Call above function.
12578
12579 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12580
12581 * config/arm/iterators.md (Code iterators): Fix some white-space
12582 in the comments.
12583 (GLTE): New.
12584 (ABSNEG): New
12585 (FCVT): Moved from vfp.md.
12586 (VCVT_HF_US_N): New.
12587 (VCVT_SI_US_N): New.
12588 (VCVT_HF_US): New.
12589 (VCVTH_US): New.
12590 (FP16_RND): New.
12591 (absneg_str): New.
12592 (FCVTI32typename): Moved from vfp.md.
12593 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
12594 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
12595 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
12596 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
12597 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
12598 (vcvth_op): New.
12599 (fp16_rnd_str): New.
12600 (fp16_rnd_insn): New.
12601 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
12602 (UNSPEC_VCVT_HF_U_N): New.
12603 (UNSPEC_VCVT_SI_S_N): New.
12604 (UNSPEC_VCVT_SI_U_N): New.
12605 (UNSPEC_VCVTH_S): New.
12606 (UNSPEC_VCVTH_U): New.
12607 (UNSPEC_VCVTA_S): New.
12608 (UNSPEC_VCVTA_U): New.
12609 (UNSPEC_VCVTM_S): New.
12610 (UNSPEC_VCVTM_U): New.
12611 (UNSPEC_VCVTN_S): New.
12612 (UNSPEC_VCVTN_U): New.
12613 (UNSPEC_VCVTP_S): New.
12614 (UNSPEC_VCVTP_U): New.
12615 (UNSPEC_VCVTP_S): New.
12616 (UNSPEC_VCVTP_U): New.
12617 (UNSPEC_VRND): New.
12618 (UNSPEC_VRNDA): New.
12619 (UNSPEC_VRNDI): New.
12620 (UNSPEC_VRNDM): New.
12621 (UNSPEC_VRNDN): New.
12622 (UNSPEC_VRNDP): New.
12623 (UNSPEC_VRNDX): New.
12624 * config/arm/vfp.md (<absneg_str>hf2): New.
12625 (neon_vabshf): New.
12626 (neon_v<fp16_rnd_str>hf): New.
12627 (neon_vrndihf): New.
12628 (addhf3): New.
12629 (subhf3): New.
12630 (divhf3): New.
12631 (mulhf3): New.
12632 (*mulsf3neghf_vfp): New.
12633 (*negmulhf3_vfp): New.
12634 (*mulsf3addhf_vfp): New.
12635 (*mulhf3subhf_vfp): New.
12636 (*mulhf3neghfaddhf_vfp): New.
12637 (*mulhf3neghfsubhf_vfp): New.
12638 (fmahf4): New.
12639 (neon_vfmahf): New.
12640 (fmsubhf4_fp16): New.
12641 (neon_vfmshf): New.
12642 (*fnmsubhf4): New.
12643 (*fnmaddhf4): New.
12644 (neon_vsqrthf): New.
12645 (neon_vrsqrtshf): New.
12646 (FCVT): Move to iterators.md.
12647 (FCVTI32typename): Likewise.
12648 (neon_vcvth<sup>hf): New.
12649 (neon_vcvth<sup>si): New.
12650 (neon_vcvth<sup>_nhf_unspec): New.
12651 (neon_vcvth<sup>_nhf): New.
12652 (neon_vcvth<sup>_nsi_unspec): New.
12653 (neon_vcvth<sup>_nsi): New.
12654 (neon_vcvt<vcvth_op>h<sup>si): New.
12655 (neon_<fmaxmin_op>hf): New.
12656
12657 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
12658
12659 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
12660 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
12661 ("*insv<mode>_zEC12_appendbitsleft")
12662 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
12663 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
12664
12665 2016-09-23 Jakub Jelinek <jakub@redhat.com>
12666
12667 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
12668 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
12669 construct values without normalization.
12670 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
12671 static local lhs_ops to vNULL.
12672
12673 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12674 Jiong Wang <jiong.wang@arm.com>
12675
12676 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
12677 available when FP16 instructions are available.
12678 (output_move_vfp): Add support for 16-bit data moves.
12679 (arm_validize_comparison): Fix some white-space. Support HFmode
12680 by conversion to SFmode.
12681 * config/arm/arm.md (truncdfhf2): Fix a comment.
12682 (extendhfdf2): Likewise.
12683 (cstorehf4): New.
12684 (movsicc): Fix some white-space.
12685 (movhfcc): New.
12686 (movsfcc): Fix some white-space.
12687 (*cmovhf): New.
12688 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
12689 instructions are available.
12690 (*thumb2_movhi_vfp): Likewise.
12691 (*arm_movhi_fp16): New.
12692 (*thumb2_movhi_fp16): New.
12693 (*movhf_vfp_fp16): New.
12694 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
12695 (*movhf_vfp): Likewise.
12696 (extendhfsf2): Enable when VFP FP16 instructions are available.
12697 (truncsfhf2): Enable when VFP FP16 instructions are available.
12698
12699 2016-09-23 Martin Liska <mliska@suse.cz>
12700
12701 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
12702
12703 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12704
12705 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
12706 V4HF modes.
12707 (arm_evpc_neon_vtrn): Likewise.
12708 (arm_evpc_neon_vrev): Likewise.
12709 (arm_evpc_neon_vext): Likewise.
12710 * config/arm/arm_neon.h (vbsl_f16): New.
12711 (vbslq_f16): New.
12712 (vdup_n_f16): New.
12713 (vdupq_n_f16): New.
12714 (vdup_lane_f16): New.
12715 (vdupq_lane_f16): New.
12716 (vext_f16): New.
12717 (vextq_f16): New.
12718 (vmov_n_f16): New.
12719 (vmovq_n_f16): New.
12720 (vrev64_f16): New.
12721 (vrev64q_f16): New.
12722 (vtrn_f16): New.
12723 (vtrnq_f16): New.
12724 (vuzp_f16): New.
12725 (vuzpq_f16): New.
12726 (vzip_f16): New.
12727 (vzipq_f16): New.
12728 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
12729 (vdup_lane): New (v8hf, v4hf variants).
12730 (vext): New (v8hf, v4hf variants).
12731 (vbsl): New (v8hf, v4hf variants).
12732 * config/arm/iterators.md (VDQWH): New.
12733 (VH): New.
12734 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
12735 (Scalar_mul_8_16): Fix white-space.
12736 (Is_d_reg): Add V4HF and V8HF.
12737 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
12738 (neon_vdup_lane<mode>): New.
12739 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
12740 (*neon_vtrn<mode>_insn): Likewise.
12741 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
12742 (*neon_vzip<mode>_insn): Likewise
12743 (neon_vuzp<mode>_internal): Likewise.
12744 (*neon_vuzp<mode>_insn): Likewise
12745 * config/arm/vec-common.md (vec_perm_const<mode>): New.
12746
12747 2016-09-23 Jiong Wang <jiong.wang@arm.com>
12748 Matthew Wahab <matthew.wahab@arm.com>
12749
12750 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
12751 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
12752 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
12753 available. Also fix some white-space.
12754 * config/arm/vfp.md (*arm_movhi_vfp): New.
12755 (*thumb2_movhi_vfp): New.
12756
12757 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12758
12759 * config/arm/arm-c.c (arm_cpu_builtins): Define
12760 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
12761 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
12762
12763 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12764
12765 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
12766 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
12767 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
12768 arm_v8_2a_fp16_neon_hw.
12769 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
12770 arm_v8_2a_neon.
12771
12772 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12773
12774 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
12775 arm_fp16_alternative_ok and arm_fp16_none_ok.
12776
12777 2016-09-23 Martin Liska <mliska@suse.cz>
12778
12779 * ipa-icf.c (sem_variable::merge): Replace adress with address.
12780
12781 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
12782
12783 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
12784 ("armv8.2-a"): New.
12785 ("armv8.2-a+fp16"): New.
12786 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
12787 (FL2_FP16INST): New.
12788 (FL2_FOR_ARCH8_2A): New.
12789 * config/arm/arm-tables.opt: Regenerate.
12790 * config/arm/arm.c (arm_arch8_2): New.
12791 (arm_fp16_inst): New.
12792 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
12793 for incompatible fp16-format settings.
12794 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
12795 (TARGET_NEON_FP16INST): New.
12796 (arm_arch8_2): Declare.
12797 (arm_fp16_inst): Declare.
12798 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
12799 march=armv8.2-a and march=armv8.2-a+fp16.
12800 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
12801 and armv8.2-a+fp16.
12802 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
12803 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
12804
12805 2016-09-23 Martin Liska <mliska@suse.cz>
12806
12807 * doc/extend.texi: Remove fused-madd from i386 target options.
12808
12809 2016-09-23 Martin Liska <mliska@suse.cz>
12810
12811 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
12812 Handle movbe.
12813
12814 2016-09-23 Martin Liska <mliska@suse.cz>
12815
12816 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
12817 Handle crc32.
12818
12819 2016-09-23 Martin Liska <mliska@suse.cz>
12820
12821 PR target/71652
12822 * config/i386/i386.c (ix86_option_override_internal): Change
12823 signature and return false when there's an error related to
12824 arch string.
12825 (release_options_strings): New function.
12826 (ix86_valid_target_attribute_tree): Call the function.
12827
12828 2016-09-23 Jakub Jelinek <jakub@redhat.com>
12829
12830 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
12831 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
12832 (gen_hsa_ctor_assignment): Likewise.
12833 * print-tree.c (print_node): Likewise.
12834 * tree-dump.c (dequeue_and_dump): Likewise.
12835 * tree-sra.c (sra_modify_constructor_assign): Likewise.
12836 * expr.c (store_constructor): Likewise.
12837 * fold-const.c (operand_equal_p): Likewise.
12838 * tree-pretty-print.c (dump_generic_node): Likewise.
12839 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
12840 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
12841
12842 2016-09-23 Richard Biener <rguenther@suse.de>
12843
12844 * hooks.h (hook_uint_uintp_false): Declare.
12845
12846 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12847
12848 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
12849 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
12850
12851 2016-09-22 Martin Sebor <msebor@redhat.com>
12852
12853 PR target/77676
12854 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
12855 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
12856 (target_int_min): Correct computation.
12857 (format_integer): Use long long as the argument for the ll length
12858 modifier.
12859 (format_floating): Use target_int_max().
12860 (get_string_length): Same.
12861 (format_string): Avoid setting the bounded flag for strings
12862 of unknown length.
12863 (try_substitute_return_value): Avoid setting range info when
12864 the result isn't bounded.
12865 * varasm.c (assemble_name): Increase buffer size.
12866
12867 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
12868 Terry Guo <terry.guo@arm.com>
12869
12870 * target.def (elf_flags_numeric): New target hook.
12871 * targhooks.h (default_asm_elf_flags_numeric): New.
12872 * varasm.c (default_asm_elf_flags_numeric): New.
12873 (default_elf_asm_named_section): Use new target hook.
12874 * config/arm/arm.opt (mpure-code): New.
12875 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
12876 * config/arm/arm.c (arm_asm_init_sections): Add section
12877 attribute to default text section if -mpure-code.
12878 (arm_option_check_internal): Diagnose use of option with
12879 non supported targets and/or options.
12880 (arm_asm_elf_flags_numeric): New.
12881 (arm_function_section): New.
12882 (arm_elf_section_type_flags): New.
12883 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
12884 for -mpure-code.
12885 * doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
12886 * doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
12887
12888 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
12889
12890 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
12891
12892 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12893
12894 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
12895 * rtl.h: Adjust prototype.
12896
12897 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12898
12899 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
12900 (prev_active_insn): Likewise.
12901 (active_insn_p): Likewise.
12902 * rtl.h: Adjust prototypes.
12903 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
12904 * config/arc/arc.md: Likewise.
12905 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
12906 (branch_needs_nop_p): Likewise.
12907 (use_skip_p): Likewise.
12908 * config/sh/sh.c (gen_block_redirect): Likewise.
12909 (split_branches): Likewise.
12910 * reorg.c (optimize_skip): Likewise.
12911 (fill_simple_delay_slots): Likewise.
12912 (fill_slots_from_thread): Likewise.
12913 (relax_delay_slots): Likewise.
12914 * resource.c (mark_target_live_regs): Likewise.
12915
12916 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12917
12918 * config/cris/cris.c (cris_asm_output_case_end): Change argument
12919 type to rtx_insn *.
12920 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
12921 (prev_nonnote_nondebug_insn): Likewise.
12922 * config/cris/cris-protos.h: Adjust prototype.
12923 * rtl.h: Likewise.
12924 * jump.c (rtx_renumbered_equal_p): Adjust.
12925
12926 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12927
12928 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
12929 * rtl.h: Adjust prototype.
12930 * config/sh/sh.md: Adjust.
12931 * dwarf2out.c (add_var_loc_to_decl): Likewise.
12932
12933 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12934
12935 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
12936 (prev_nondebug_insn): Likewise.
12937 * loop-doloop.c (doloop_condition_get): Likewise.
12938 * rtl.h: Adjust prototype.
12939 * cfgloop.h: Likewise.
12940
12941 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12942
12943 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
12944 (prev_nonnote_insn): Likewise.
12945 * jump.c (reversed_comparison_code_parts): Likewise.
12946 (reversed_comparison): Likewise.
12947 * rtl.h: Adjust prototypes.
12948 * config/arc/arc.md: Adjust.
12949 * cse.c (find_comparison_args): Likewise.
12950 * reorg.c (redundant_insn): Change return type to rtx_insn *.
12951 (fix_reg_dead_note): Change argument type to rtx_insn *.
12952 (delete_prior_computation): Likewise.
12953 (delete_computation): Likewise.
12954 (fill_slots_from_thread): Adjust.
12955 (relax_delay_slots): Likewise.
12956 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12957 (simplify_relational_operation_1): Likewise.
12958 (simplify_ternary_operation): Likewise.
12959
12960 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12961
12962 * config/arc/arc-protos.h (arc_label_align): Change type of
12963 variables from rtx to rtx_insn *.
12964 * config/arc/arc.c (arc_label_align): Likewise.
12965 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
12966 * config/bfin/bfin.c (workaround_speculation): Likewise.
12967 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
12968 (find_last_same_clock): Likewise.
12969 (reorg_split_calls): Likewise.
12970 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
12971 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
12972 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
12973 (same_cmp_following_p): Likewise.
12974 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
12975 (same_cmp_following_p): Likwise.
12976 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
12977 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
12978 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
12979 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
12980 (rl78_alloc_physical_registers_cmp): Likewise.
12981 (rl78_alloc_physical_registers_umul): Likewise.
12982 (rl78_calculate_death_notes): Likewise.
12983 * config/s390/s390-protos.h (s390_label_align): Likewise.
12984 * config/s390/s390.c (s390_label_align): Likewise.
12985 * config/sh/sh.c (barrier_align): Likewise.
12986 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
12987 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
12988 (emit_cbcond_nop): Likewise.
12989
12990 2016-09-22 Martin Liska <mliska@suse.cz>
12991
12992 PR ipa/77653
12993 * ipa-icf.c (sem_variable::merge): Yield merge operation if
12994 alias address matters, not necessarily address of original.
12995
12996 2016-09-22 Richard Biener <rguenther@suse.de>
12997
12998 PR middle-end/77697
12999 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
13000 fold fails.
13001
13002 2016-09-22 Richard Biener <rguenther@suse.de>
13003
13004 PR middle-end/77677
13005 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
13006 from constant folding results.
13007 (gimple_resimplify2): Likewise.
13008 (gimple_resimplify3): Likewise.
13009
13010 2016-09-22 Richard Biener <rguenther@suse.de>
13011
13012 PR middle-end/77678
13013 * expr.c (expand_expr_real_1): Guard array access against negative
13014 offset.
13015
13016 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13017
13018 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
13019 of MPFR_RNDN.
13020 (format_floating): Likewise.
13021
13022 2016-09-22 Jakub Jelinek <jakub@redhat.com>
13023
13024 PR fortran/77665
13025 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
13026 for all IFN_GOMP_SIMD_* internal fns, not just for
13027 IFN_GOMP_SIMD_ORDERED_*.
13028
13029 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
13030
13031 PR target/77670
13032 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
13033 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
13034 instructions when you want to invert the test.
13035 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
13036 correct order for XXSEL.
13037 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
13038 for using XSCMP{EQ,GT,GE}DP.
13039
13040 2016-09-21 David Malcolm <dmalcolm@redhat.com>
13041
13042 * genconstants.c (main): Introduce noop_reader and convert call
13043 to read_md_files to a method call.
13044 * genenums.c (main): Likewise.
13045 * genmddeps.c (main): Likewise.
13046 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
13047 rtx_reader_ptr->get_top_level_filename ().
13048 (write_tm_preds_h): Likewise.
13049 (write_insn_preds_c): Likewise.
13050 * gensupport.c (class gen_reader): New subclass of rtx_reader.
13051 (rtx_handle_directive): Convert to...
13052 (gen_reader::handle_unknown_directive): ...this.
13053 (init_rtx_reader_args_cb): Convert return type from bool to
13054 rtx_reader *. Create a gen_reader instance, using it for the
13055 call to read_md_files. Return it if no errors occur.
13056 (init_rtx_reader_args): Convert return type from bool to
13057 rtx_reader *.
13058 * gensupport.h (init_rtx_reader_args_cb): Likewise.
13059 (init_rtx_reader_args_cb): Likewise.
13060 * read-md.c (struct file_name_list): Move to class rtx_reader.
13061 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
13062 (read_md_filename): Delete in favor of
13063 rtx_reader::m_read_md_filename.
13064 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
13065 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
13066 (base_dir): Delete in favor of rtx_reader::m_base_dir.
13067 (first_dir_md_include): Delete in favor of
13068 rtx_reader::m_first_dir_md_include.
13069 (last_dir_md_include_ptr): Delete in favor of
13070 rtx_reader::m_last_dir_md_include_ptr.
13071 (max_include_len): Delete.
13072 (rtx_reader_ptr): New.
13073 (fatal_with_file_and_line): Use get_filename and get_lineno
13074 accessors of rtx_reader_ptr.
13075 (require_char_ws): Likewise.
13076 (rtx_reader::read_char): New method, based on ::read_char.
13077 (rtx_reader::unread_char): New method, based on ::unread_char.
13078 (read_escape): Use get_filename and get_lineno accessors of
13079 rtx_reader_ptr.
13080 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
13081 (read_string): Use get_filename and get_lineno accessors of
13082 rtx_reader_ptr.
13083 (rtx_reader::rtx_reader): New ctor.
13084 (rtx_reader::~rtx_reader): New dtor.
13085 (handle_include): Convert from a function to...
13086 (rtx_reader::handle_include): ...this method, converting
13087 handle_directive from a callback to a virtual function.
13088 (handle_file): Likewise, converting to...
13089 (rtx_reader::handle_file): ...this method.
13090 (handle_toplevel_file): Likewise, converting to...
13091 (rtx_reader::handle_toplevel_file): ...this method.
13092 (rtx_reader::get_current_location): New method.
13093 (parse_include): Convert from a function to...
13094 (rtx_reader::add_include_path): ...this method, dropping redundant
13095 update to unused max_include_len.
13096 (read_md_files): Convert from a function to...
13097 (rtx_reader::read_md_files): ...this method, converting
13098 handle_directive from a callback to a virtual function.
13099 (noop_reader::handle_unknown_directive): New method.
13100 * read-md.h (directive_handler_t): Delete this typedef.
13101 (in_fname): Delete.
13102 (read_md_file): Delete.
13103 (read_md_lineno): Delete.
13104 (read_md_filename): Delete.
13105 (class rtx_reader): New class.
13106 (rtx_reader_ptr): New decl.
13107 (class noop_reader): New subclass of rtx_reader.
13108 (read_char): Reimplement in terms of rtx_reader::read_char.
13109 (unread_char): Reimplement in terms of rtx_reader::unread_char.
13110 (read_md_files): Delete.
13111 * read-rtl.c (read_rtx_code): Update for deletion of globals
13112 read_md_filename and read_md_lineno.
13113
13114 2016-09-21 Jason Merrill <jason@redhat.com>
13115
13116 * input.h (from_macro_definition_at): New.
13117
13118 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
13119
13120 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
13121
13122 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
13123
13124 PR tree-optimization/77550
13125 * tree-vect-stmts.c (create_array_ref): Change parameters.
13126 (get_group_alias_ptr_type): New function.
13127 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
13128
13129 2016-09-21 Marek Polacek <polacek@redhat.com>
13130
13131 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
13132 Add falls through comment.
13133
13134 2016-09-21 Richard Biener <rguenther@suse.de>
13135
13136 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
13137 (replace_child): Likewise.
13138 (remove_child_TAG): Adjust.
13139 (move_marked_base_types): Likewise.
13140 (prune_unused_types_prune): Clear die_sib of removed children.
13141
13142 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
13143
13144 PR target/77326
13145 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
13146 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
13147
13148 2016-09-21 Richard Biener <rguenther@suse.de>
13149
13150 PR tree-optimization/77648
13151 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
13152 with complex RHS.
13153 (make_transitive_closure_constraints): Adjust comment.
13154 (make_any_offset_constraints): New function.
13155 (handle_rhs_call): Make sure to first expand a pointer to all
13156 subfields before transitively closing it.
13157 (handle_const_call): Likewise. Properly expand returned
13158 pointers as well.
13159 (handle_pure_call): Likewise.
13160
13161 2016-09-21 Richard Biener <rguenther@suse.de>
13162 Jakub Jelinek <jakub@redhat.com>
13163
13164 PR tree-optimization/77621
13165 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
13166 group at non-vectorizable stmts.
13167
13168 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13169
13170 PR tree-optimization/72835
13171 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
13172 (make_new_ssa_for_all_defs): Likewise.
13173 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
13174
13175 2016-09-20 Martin Sebor <msebor@redhat.com>
13176
13177 PR middle-end/49905
13178 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
13179 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
13180 * config/linux.c (gnu_libc_printf_pointer_format): New function.
13181 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
13182 * config/sol2.c (solaris_printf_pointer_format): New function.
13183 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
13184 options.
13185 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
13186 * doc/tm.texi: Regenerate.
13187 * gimple-fold.h (get_range_strlen): New function.
13188 (get_maxval_strlen): Declare existing function.
13189 * gimple-fold.c (get_range_strlen): Add arguments and compute both
13190 maximum and minimum.
13191 (get_range_strlen): Define overload.
13192 (get_maxval_strlen): Adjust.
13193 * gimple-ssa-sprintf.c: New file and pass.
13194 * passes.def (pass_sprintf_length): Add new pass.
13195 * targhooks.h (default_printf_pointer_format): Declare new function.
13196 (gnu_libc_printf_pointer_format): Same.
13197 (solaris_libc_printf_pointer_format): Same.
13198 * targhooks.c (default_printf_pointer_format): Define new function.
13199 * tree-pass.h (make_pass_sprintf_length): Declare new function.
13200 * print-tree.c: Increase buffer size.
13201
13202 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13203
13204 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
13205
13206 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13207
13208 * common.opt: New option -fipa-vrp.
13209 * ipa-cp.c (ipa_get_vr_lat): New.
13210 (ipcp_vr_lattice::print): Likewise.
13211 (print_all_lattices): Call ipcp_vr_lattice::print.
13212 (ipcp_vr_lattice::meet_with): New.
13213 (ipcp_vr_lattice::meet_with_1): Likewise.
13214 (ipcp_vr_lattice::top_p): Likewise.
13215 (ipcp_vr_lattice::bottom_p): Likewsie.
13216 (ipcp_vr_lattice::set_to_bottom): Likewise.
13217 (set_all_contains_variable): Call VR set_to_bottom.
13218 (initialize_node_lattices): Init VR lattices.
13219 (propagate_vr_accross_jump_function): New.
13220 (propagate_constants_accross_call): Call
13221 propagate_vr_accross_jump_function.
13222 (ipcp_store_vr_results): New.
13223 (ipcp_driver): Handle VR.
13224 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
13225 (ipa_set_jf_unknown): Likewise.
13226 (ipa_compute_jump_functions_for_edge): Likewise.
13227 (ipa_node_params_t::duplicate): Likewise.
13228 (ipa_write_jump_function): Likewise.
13229 (ipa_read_jump_function): Likewise.
13230 (write_ipcp_transformation_info): Likewise.
13231 (read_ipcp_transformation_info): Likewise.
13232 (ipcp_update_vr): New.
13233 (ipcp_transform_function): Handle VR.
13234 * ipa-prop.h (struct ipa_vr): New.
13235 * cgraph.c: Include tree-vrp.h.
13236 * cgraphunit.c: Likewise.
13237 * ipa-utils.c: Likewise.
13238 * ipa.c: Likewise.
13239 * opts.c: Likewise.
13240 * toplev.c: Likewise.
13241 * ipa-devirt.c: Likewise.
13242 * ipa-inline-transform.c: Likewise.
13243 * ipa-inline.c: Likewise.
13244 * ipa-profile.c: Likewise.
13245
13246 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
13247
13248 * doc/invoke.texi: Document -fdump-tree-evrp.
13249 * passes.def: Define new pass_early_vrp.
13250 * timevar.def: Define new TV_TREE_EARLY_VRP.
13251 * tree-pass.h (make_pass_early_vrp): New.
13252 * tree-ssa-propagate.c: Make replace_uses_in non static.
13253 * tree-ssa-propagate.h: Export replace_uses_in.
13254 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
13255 (extract_range_from_assert): Factor out
13256 extract_range_for_var_from_comparison_expr.
13257 (vrp_initialize_lattice): New.
13258 (vrp_initialize): Factor out vrp_initialize_lattice.
13259 (vrp_valueize): Fix it to reject complex value ranges.
13260 (vrp_free_lattice): New.
13261 (evrp_dom_walker::before_dom_children): Likewise.
13262 (evrp_dom_walker::after_dom_children): Likewise.
13263 (evrp_dom_walker::push_value_range): Likewise.
13264 (evrp_dom_walker::pop_value_range): Likewise.
13265 (execute_early_vrp): Likewise.
13266 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
13267 (make_pass_early_vrp): New.
13268
13269 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
13270
13271 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
13272 instead of exact_log2.
13273
13274 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
13275
13276 PR target/77621
13277 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
13278 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
13279 (ix86_add_stmt_cost): Penalize DFmode vector operations
13280 for !TARGET_VECTORIZE_DOUBLE.
13281
13282 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
13283
13284 * doc/invoke.texi (Warning Options): Simplify language.
13285 (Optimize Options): Complete sentence.
13286
13287 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
13288
13289 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
13290 early_finish hook.
13291
13292 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
13293
13294 PR target/71395
13295 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
13296 inits on power8 and above, use the VMRGEW instruction instead of a
13297 permute.
13298
13299 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
13300 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
13301 initialization.
13302
13303 2016-09-20 Tamar Christina <tamar.christina@arm.com>
13304
13305 * config/aarch64/arm_neon.h
13306 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
13307 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
13308 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
13309
13310 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
13311
13312 * config/var/vax.h (ELIMINABLE_REGS): Define.
13313 (INITIAL_ELIMINATION_OFFSET): Define.
13314
13315 2016-09-20 Jakub Jelinek <jakub@redhat.com>
13316
13317 PR middle-end/77624
13318 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
13319 cast to void * if the cast is from some other pointer type.
13320
13321 2016-09-20 Richard Biener <rguenther@suse.de>
13322
13323 PR tree-optimization/77646
13324 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
13325 a VDEF.
13326
13327 2016-09-20 Tamar Christina <tamar.christina@arm.com>
13328
13329 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
13330 attributes to all inlined functions and make them extern.
13331
13332 2016-09-20 Richard Biener <rguenther@suse.de>
13333
13334 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
13335 hook.
13336 * debug.c (do_nothing_debug_hooks): Adjust.
13337 * dbxout.c (dbx_debug_hooks): Likewise.
13338 * sdbout.c (sdb_debug_hooks): Likewise.
13339 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
13340 (dwarf2out_finish): Move producer, filename and
13341 path annotation ...
13342 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
13343 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
13344
13345 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
13346
13347 PR c++/77434
13348 * doc/invoke.texi: Document -Wint-in-bool-context.
13349
13350 PR middle-end/77421
13351 * dwarf2out.c (output_loc_operands): Fix an assertion.
13352
13353 2016-09-19 Joseph Myers <joseph@codesourcery.com>
13354
13355 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
13356 (CR_DECIMAL_DIG): New macro.
13357
13358 2016-09-19 Joseph Myers <joseph@codesourcery.com>
13359
13360 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
13361 element.
13362
13363 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
13364
13365 PR rtl-optimization/77416
13366 * lra-remat.c (operand_to_remat): Process hard coded insn
13367 registers.
13368
13369 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13370
13371 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
13372 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
13373
13374 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
13375
13376 * target.def (lra_p): Wordsmithing.
13377 * doc/tm.texi: Regenerate.
13378
13379 2016-09-19 Jakub Jelinek <jakub@redhat.com>
13380 Jan Hubicka <jh@suse.cz>
13381
13382 PR target/77587
13383 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
13384 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
13385 Call ultimate_alias_target just once, not up to 4 times.
13386
13387 2016-09-19 Richard Biener <rguenther@suse.de>
13388
13389 * dwarf2out.c (early_dwarf_finished): New global.
13390 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
13391 is false.
13392 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
13393 if called from LTO exit early.
13394 (dwarf2out_late_global_decl): When being during the early
13395 debug phase do not add locations but only const value attributes.
13396 Adjust the way we generate early DIEs for LTO.
13397
13398 2016-09-19 Richard Biener <rguenther@suse.de>
13399
13400 PR middle-end/77605
13401 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
13402 proper niter to bound the loops.
13403
13404 2016-09-19 Richard Biener <rguenther@suse.de>
13405
13406 PR tree-optimization/77514
13407 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
13408 search for folded stmt.
13409
13410 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
13411
13412 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
13413 * tree-pass.h (make_pass_early_thread_jumps): Declare.
13414 * tree-ssa-threadbackward.c (fsm_find_thread_path,
13415 fsm_find_thread_path, profitable_jump_thread_path,
13416 fsm_find_control_statement_thread_paths,
13417 find_jump_threads_backwards): Add speed_p parameter.
13418 (pass_data_early_thread_jumps): New pass.
13419 (make_pass_early_thread_jumps): New function.
13420
13421 2016-09-17 Andreas Schwab <schwab@suse.de>
13422
13423 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
13424 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
13425
13426 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
13427
13428 * recog.c (rest_of_handle_split_after_reload): Delete.
13429 (pass_split_after_reload::gate): New method.
13430 (pass_split_after_reload::execute): Call split_all_insns directly.
13431
13432 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
13433
13434 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
13435 parameters for functions taking long long arguments.
13436
13437 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13438
13439 PR target/77613
13440 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
13441 splat with truncate.
13442
13443 2016-09-16 Jason Merrill <jason@redhat.com>
13444
13445 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
13446 New.
13447 * hwint.c (exact_log2): Use pow2p_hwi.
13448 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
13449 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
13450 * builtins.c (get_object_alignment_2, get_object_alignment)
13451 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
13452 least_bit_hwi.
13453 * calls.c (compute_argument_addresses, store_one_arg): Use
13454 least_bit_hwi.
13455 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
13456 * combine.c (force_to_mode): Use least_bit_hwi.
13457 (contains_muldiv, find_split_point, combine_simplify_rtx)
13458 (simplify_if_then_else, simplify_set, force_to_mode)
13459 (if_then_else_cond, simplify_and_const_int_1)
13460 (simplify_compare_const): Use pow2p_hwi.
13461 * cse.c (fold_rtx): Use pow2p_hwi.
13462 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
13463 Use least_bit_hwi.
13464 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
13465 (init_expmed_one_conv): Use pow2p_hwi.
13466 * expr.c (is_aligning_offset): Use pow2p_hwi.
13467 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
13468 (fold_binary_loc): Use pow2p_hwi.
13469 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
13470 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
13471 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
13472 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
13473 Use least_bit_hwi.
13474 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
13475 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
13476 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
13477 * omp-low.c (oacc_loop_fixed_partitions)
13478 (oacc_loop_auto_partitions): Use least_bit_hwi.
13479 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
13480 * stor-layout.c (place_field): Use least_bit_hwi.
13481 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
13482 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
13483 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
13484 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
13485 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
13486 * tree-vect-data-refs.c (vect_analyze_group_access_1)
13487 (vect_grouped_store_supported, vect_grouped_load_supported)
13488 (vect_permute_load_chain, vect_shift_permute_load_chain)
13489 (vect_transform_grouped_load): Use pow2p_hwi.
13490 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
13491 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
13492 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
13493 least_bit_hwi.
13494 * tsan.c (instrument_expr): Use least_bit_hwi.
13495 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
13496
13497 2016-09-16 Andreas Schwab <schwab@suse.de>
13498
13499 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
13500 OFFSET, not offset.
13501 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
13502
13503 2016-09-16 Jakub Jelinek <jakub@redhat.com>
13504
13505 PR target/77526
13506 * combine.c (rest_of_handle_combine): If any edges have been purged,
13507 free dominators if available.
13508
13509 2016-09-16 Jakub Jelinek <jakub@redhat.com>
13510 Eric Botcazou <ebotcazou@adacore.com>
13511
13512 PR middle-end/77594
13513 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
13514 through into expand_addsub_overflow after expand_neg_overflow.
13515
13516 2016-09-15 David Malcolm <dmalcolm@redhat.com>
13517
13518 * diagnostic-show-locus.c
13519 (selftest::test_fixit_insert_containing_newline): New function.
13520 (selftest::test_fixit_replace_containing_newline): New function.
13521 (selftest::diagnostic_show_locus_c_tests): Call the above.
13522
13523 2016-09-15 Bin Cheng <bin.cheng@arm.com>
13524
13525 PR tree-optimization/77503
13526 * tree-vect-loop.c (vectorizable_reduction): Record reduction
13527 code for CONST_COND_REDUCTION at analysis stage and use it at
13528 transform stage.
13529 * tree-vectorizer.h (struct _stmt_vec_info): New field.
13530 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
13531 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
13532 field.
13533
13534 2016-09-15 Richard Biener <rguenther@suse.de>
13535
13536 PR middle-end/77544
13537 * fold-const.c (split_tree): Do not split constant ~X.
13538
13539 2016-09-15 Jakub Jelinek <jakub@redhat.com>
13540
13541 PR rtl-optimization/77425
13542 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
13543 is NULL.
13544
13545 PR middle-end/77475
13546 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
13547 use %qs instead of %s where desirable, use argument instead of arg in
13548 the diagnostic wording, add list of supported strategies and
13549 spellcheck hint.
13550 (ix86_option_override_internal): Emit target("m...") instead of
13551 option("m...") in the diagnostic. Use %qs instead of %s in invalid
13552 -march/-mtune option diagnostic. Add list of supported arches/tunings
13553 and spellcheck hint. Remove prefix, suffix and sw variables, use
13554 main_args_p ? "..." : "..." in diagnostics to make translation
13555 possible.
13556
13557 2016-09-15 Richard Biener <rguenther@suse.de>
13558
13559 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
13560 extra offset argument.
13561 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
13562 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
13563 to reflect new offset parameter.
13564 * doc/tm.texi: Regenerate.
13565 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
13566 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
13567 offset argument.
13568 (darwin_asm_output_dwarf_offset): Likewise.
13569 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
13570 argument.
13571 (darwin_asm_output_dwarf_offset): Pass offset argument through.
13572 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
13573 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
13574
13575 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
13576
13577 PR fortran/72743
13578 * ipa-icf.c (set_alias_uids): New function.
13579 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
13580 all the merged variable's referring aliases.
13581
13582 2016-09-15 Richard Biener <rguenther@suse.de>
13583
13584 PR tree-optimization/77514
13585 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
13586 only forced_stmts sequence.
13587
13588 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
13589
13590 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
13591 * cfgexpand.c (update_alias_info_with_stack_vars): Use
13592 FOR_EACH_SSA_NAME to iterate over SSA variables.
13593 (pass_expand::execute): Likewise.
13594 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
13595 * tree-cfg.c (dump_function_to_file): Likewise.
13596 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
13597 (update_ssa): Likewise.
13598 * tree-ssa-alias.c (dump_alias_info): Likewise.
13599 * tree-ssa-ccp.c (ccp_finalize): Likewise.
13600 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
13601 (create_outofssa_var_map): Likewise.
13602 (coalesce_ssa_name): Likewise.
13603 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
13604 * tree-ssa-pre.c (compute_avail): Likewise.
13605 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
13606 (scc_vn_restore_ssa_info): Likewise.
13607 (free_scc_vn): Likwise.
13608 (run_scc_vn): Likewise.
13609 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
13610 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
13611 * tree-ssa-copy.c (fini_copy_prop): Likewise.
13612 * tree-ssa.c (verify_ssa): Likewise.
13613
13614 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
13615
13616 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
13617 and mips64r2 as default 32-bit and 64-bit architectures.
13618 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
13619 as default 32-bit and 64-bit architectures.
13620
13621 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
13622
13623 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
13624 of succ edge.
13625
13626 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
13627
13628 * target.def (lra_p): Change commentary (for the manual) for the
13629 new default.
13630 * doc/tm.texi: Regenerate.
13631
13632 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
13633
13634 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
13635 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
13636 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
13637 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
13638
13639 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
13640
13641 * targhooks.c (default_lra_p): Return true instead of false.
13642
13643 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
13644
13645 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
13646 hook_bool_void_false.
13647 * config/avr/avr.c: Ditto.
13648 * config/bfin/bfin.c: Ditto.
13649 * config/c6x/c6x.c: Ditto.
13650 * config/cr16/cr16.c: Ditto.
13651 * config/cris/cris.c: Ditto.
13652 * config/epiphany/epiphany.c: Ditto.
13653 * config/fr30/fr30.c: Ditto.
13654 * config/frv/frv.c: Ditto.
13655 * config/h8300/h8300.c: Ditto.
13656 * config/ia64/ia64.c: Ditto.
13657 * config/iq2000/iq2000.c: Ditto.
13658 * config/lm32/lm32.c: Ditto.
13659 * config/m32c/m32c.c: Ditto.
13660 * config/m32r/m32r.c: Ditto.
13661 * config/m68k/m68k.c: Ditto.
13662 * config/mcore/mcore.c: Ditto.
13663 * config/microblaze/microblaze.c: Ditto.
13664 * config/mmix/mmix.c: Ditto.
13665 * config/mn10300/mn10300.c: Ditto.
13666 * config/moxie/moxie.c: Ditto.
13667 * config/msp430/msp430.c: Ditto.
13668 * config/nios2/nios2.c: Ditto.
13669 * config/nvptx/nvptx.c: Ditto.
13670 * config/pa/pa.c: Ditto.
13671 * config/pdp11/pdp11.c: Ditto.
13672 * config/rl78/rl78.c: Ditto.
13673 * config/sparc/sparc.c: Ditto.
13674 * config/spu/spu.c: Ditto.
13675 * config/stormy16/stormy16.c: Ditto.
13676 * config/tilegx/tilegx.c: Ditto.
13677 * config/tilepro/tilepro.c: Ditto.
13678 * config/v850/v850.c: Ditto.
13679 * config/vax/vax.c: Ditto.
13680 * config/visium/visium.c: Ditto.
13681 * config/xtensa/xtensa.c: Ditto.
13682
13683 2016-09-14 Jakub Jelinek <jakub@redhat.com>
13684
13685 PR sanitizer/68260
13686 * tsan.c: Include target.h.
13687 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
13688 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
13689 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
13690 BUILT_IN_ATOMIC_TEST_AND_SET entries.
13691 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
13692
13693 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
13694 Martin Liska <mliska@suse.cz>
13695
13696 PR middle-end/77574
13697 * predict.c (force_edge_cold): Add braces to a condition.
13698
13699 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
13700
13701 PR rtl-optimization/77289
13702 * lra-constraints.c (get_final_hard_regno): Removed.
13703 (get_hard_regno): Add new parameter final_p.
13704 (get_reg_class): Directly call lra_get_elimination_hard_regno.
13705 (operands_match_p): Adjust call to get_hard_regno.
13706 (uses_hard_regs_p): Likewise.
13707 (process_alt_operands): Likewise.
13708
13709 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
13710
13711 PR target/70713
13712 * config/msp430/msp430.c (msp430_start_function): Emit an error
13713 if a function is both weak and specifies an interrupt number.
13714
13715 2016-09-13 Jakub Jelinek <jakub@redhat.com>
13716
13717 PR tree-optimization/77454
13718 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
13719 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
13720 Formatting fix.
13721
13722 2016-09-13 Tamar Christina <tamar.christina@arm.com>
13723
13724 * config/aarch64/aarch64-builtins.c
13725 (aarch64_init_simd_builtins): Fix builtin type signature printing.
13726
13727 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
13728
13729 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
13730 SFmode and SCmode arguments by reference.
13731
13732 2016-09-13 David Malcolm <dmalcolm@redhat.com>
13733
13734 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
13735 Rename to...
13736 (selftest::test_one_liner_fixit_insert_before): ...this, and update
13737 for renaming of add_fixit_insert to add_fixit_insert_before.
13738 (selftest::test_one_liner_fixit_insert_after): New function.
13739 (selftest::test_one_liner_fixit_validation_adhoc_locations):
13740 Update for renaming of add_fixit_insert to add_fixit_insert_before.
13741 (selftest::test_one_liner_many_fixits): Likewise.
13742 (selftest::test_diagnostic_show_locus_one_liner): Update for
13743 renaming, call new test function.
13744 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
13745 renaming of add_fixit_insert to add_fixit_insert_before.
13746 (selftest::test_fixit_consolidation): Likewise.
13747 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
13748 Likewise.
13749 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
13750 (selftest::test_applying_fixits_insert_before): ...this.
13751 (selftest::test_applying_fixits_insert): Update for renaming of
13752 add_fixit_insert to add_fixit_insert_before.
13753 (selftest::test_applying_fixits_insert_after): New function.
13754 (selftest::test_applying_fixits_insert_after_at_line_end): New
13755 function.
13756 (selftest::test_applying_fixits_insert_after_failure): New function.
13757 (selftest::test_applying_fixits_multiple): Update for renaming of
13758 add_fixit_insert to add_fixit_insert_before.
13759 (selftest::change_line): Likewise.
13760 (selftest::test_applying_fixits_unreadable_file): Likewise.
13761 (selftest::test_applying_fixits_line_out_of_range): Likewise.
13762 (selftest::test_applying_fixits_column_validation): Likewise.
13763 (selftest::test_applying_fixits_column_validation): Likewise.
13764 (selftest::edit_context_c_tests): Update for renamed test function;
13765 call new test functions.
13766
13767 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
13768
13769 PR tree-optimization/77536
13770 PR rtl-optimization/68212
13771 * config/rs6000/rs6000.md (div->recip splitter): Remove
13772 optimize_insn_for_speed_p condition.
13773
13774 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
13775
13776 * optabs.c (prepare_cmp_insn): Update documentation comment.
13777
13778 2016-09-13 Jakub Jelinek <jakub@redhat.com>
13779 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13780
13781 PR middle-end/77475
13782 * opts.h (candidates_list_and_hint): Declare.
13783 * opts-common.c (candidates_list_and_hint): New function.
13784 (cmdline_handle_error): Use it.
13785
13786 2016-09-12 David Malcolm <dmalcolm@redhat.com>
13787
13788 * edit-context.c (edited_line::get_len): New accessor.
13789 (edited_file::print_diff): Split out hunk-printing into...
13790 (edited_file::print_diff_hunk): New method.
13791 (edited_file::print_diff_line): New method.
13792
13793 2016-09-12 Andrew Pinski <apinski@cavium.com>
13794
13795 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
13796 New tuning option.
13797 * config/aarch64/aarch64.c (thunderx_tunings): Enable
13798 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
13799 (aarch64_operands_ok_for_ldpstp): Return false if
13800 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
13801 was SImode and the alignment is less than 8 byte.
13802 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13803
13804 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
13805
13806 PR target/77570
13807 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
13808
13809 2016-09-12 Marek Polacek <polacek@redhat.com>
13810
13811 * doc/extend.texi: Use lowercase "boolean".
13812 * doc/invoke.texi: Likewise.
13813 * doc/md.texi: Likewise.
13814 * target.def: Likewise.
13815 * doc/tm.texi: Regenerated.
13816
13817 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13818
13819 PR middle-end/77426
13820 * expmed.c (synth_mult): Delete duplicate mode check.
13821
13822 2016-09-10 Tom de Vries <tom@codesourcery.com>
13823
13824 PR C/71602
13825 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
13826 va_list type only.
13827 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
13828 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
13829
13830 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
13831
13832 PR rtl-optimization/77289
13833 * lra-constraints.c (get_final_hard_regno): Add support for non hard
13834 register numbers. Remove support for subregs.
13835 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
13836 (get_reg_class): Delete removed get_final_hard_regno() argument.
13837 (uses_hard_regs_p): Call get_final_hard_regno().
13838
13839 2016-09-09 Martin Sebor <msebor@redhat.com>
13840
13841 PR c/77520
13842 PR c/77521
13843 * pretty-print.c (pp_quoted_string): New function.
13844 (pp_format): Call it for %c and %s directives.
13845
13846 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
13847
13848 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
13849 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
13850 INITIAL_ELIMINATION_OFFSET) : Update documentation.
13851 * target.def (frame_pointer_required, can_eliminate): Likewise.
13852 * doc/tm.texi: Regenerated.
13853 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
13854 ELIMINABLE_REGS.
13855 * df-scan.c (df_hard_reg_init): Likewise.
13856 * ira.c (ira_setup_eliminable_regset): Likewise.
13857 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
13858 init_elim_table): Likewise.
13859 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
13860 set_initial_elim_offsets, update_eliminables,
13861 init_elim_table): Likewise.
13862 * rtlanal.c (get_initial_register_offset): Likewise.
13863 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
13864 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
13865 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
13866 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
13867 * config/fr30/fr30.h: Fix comment.
13868 * config/frv/frv.c: Likewise.
13869 * config/frv/frv.h: Likewise.
13870 * config/ft32/ft32.h: Likewise.
13871 * config/visium/visium.h: Likewise.
13872 * config/pa/pa64-linux.h: Likewise.
13873 * config/v850/v850.h: Likewise.
13874 * config/cris/cris.c: Likewise.
13875 * config/ia64/ia64.h: Likewise.
13876 * config/moxie/moxie.h: Likewise.
13877 * config/m32r/m32r.h: Likewise.
13878
13879 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
13880
13881 PR target/77267
13882 * config.in: Regenerate.
13883 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
13884 New macro.
13885 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
13886 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
13887 static-libmpxwrappers case.
13888 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
13889 MPX_LD_AS_NEEDED_GUARD_POP.
13890 * configure: Regenerate.
13891 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
13892 defined if linker support "--push-state"/"--pop-state".
13893
13894 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
13895
13896 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
13897
13898 2016-09-09 Joseph Myers <joseph@codesourcery.com>
13899
13900 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
13901 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
13902 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
13903 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
13904 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
13905 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
13906 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
13907 Document.
13908 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
13909 width macros from TS 18661-1.
13910 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
13911
13912 2016-09-08 Jakub Jelinek <jakub@redhat.com>
13913
13914 PR fortran/77516
13915 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
13916 OMP_CLAUSE_SAFELEN_EXPR.
13917
13918 2016-09-07 David Malcolm <dmalcolm@redhat.com>
13919
13920 * Makefile.in (OBJS): Add substring-locations.o.
13921 * langhooks-def.h (class substring_loc): New forward decl.
13922 (lhd_get_substring_location): New decl.
13923 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
13924 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
13925 * langhooks.c (lhd_get_substring_location): New function.
13926 * langhooks.h (class substring_loc): New forward decl.
13927 (struct lang_hooks): Add field get_substring_location.
13928 * substring-locations.c: New file, taking definition of
13929 format_warning_va and format_warning_at_substring from
13930 c-family/c-format.c, making them non-static.
13931 * substring-locations.h (class substring_loc): Move class here
13932 from c-family/c-common.h. Add and rewrite comments.
13933 (format_warning_va): New decl.
13934 (format_warning_at_substring): New decl.
13935 (get_source_location_for_substring): Add comment.
13936
13937 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
13938
13939 * config/i386/i386.c: Add 'U' suffix to processor feature bits
13940 to avoid -Wnarrowing warning.
13941 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
13942 * opts.c: Likewise for SANITIZER_OPT bitmasks.
13943
13944 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
13945
13946 * config/aarch64/aarch64.c (aarch64_legitimize_address):
13947 Avoid use of base_offset if offset already in range.
13948
13949 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
13950
13951 * config/sh/sh-protos.h (struct sh_atomic_model,
13952 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
13953 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
13954 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
13955 * config/sh/sh.h (struct sh_atomic_model,
13956 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
13957 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
13958 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
13959 Guard with __cplusplus.
13960
13961 2016-09-06 Jakub Jelinek <jakub@redhat.com>
13962
13963 PR target/69255
13964 * config/i386/i386.c (ix86_expand_builtin): For builtin with
13965 unsupported or unknown ISA, use expand_call.
13966
13967 2016-09-06 Martin Liska <mliska@suse.cz>
13968
13969 PR gcov-profile/77378
13970 PR gcov-profile/77466
13971 * tree-profile.c (tree_profiling): Detect whether target can use
13972 -fprofile-update=atomic.
13973
13974 2016-09-06 Richard Biener <rguenther@suse.de>
13975
13976 PR tree-optimization/77479
13977 * tree-vrp.c (update_value_range): Extend overflow handling to
13978 VARYING.
13979
13980 2016-09-05 Jakub Jelinek <jakub@redhat.com>
13981
13982 PR target/77476
13983 * config/i386/i386.md (isa): Add x64_avx512bw.
13984 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
13985 (kmov_isa): New mode attr.
13986 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
13987 (*zero_extend<mode>si2): Likewise.
13988 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
13989
13990 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
13991
13992 * doc/invoke.texi (SPU Options): nops -> NOPs.
13993 (x86 Options): Ditto.
13994
13995 2016-09-05 Jakub Jelinek <jakub@redhat.com>
13996
13997 PR middle-end/77475
13998 * toplev.c (process_options): Temporarily set input_location
13999 to UNKNOWN_LOCATION around targetm.target_option.override () call.
14000
14001 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
14002
14003 PR rtl-optimization/77452
14004 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
14005 inner-mode reference to a CONST_VECTOR constant in the constant pool.
14006
14007 2016-09-05 Marek Polacek <polacek@redhat.com>
14008
14009 PR c/77423
14010 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
14011
14012 2016-09-05 Jakub Jelinek <jakub@redhat.com>
14013
14014 PR other/77421
14015 * gensupport.c (alter_output_for_subst_insn): Remove redundant
14016 *insn_out == '*' test. Don't copy unnecessary to yet another
14017 memory buffer, and don't leak it.
14018
14019 PR rtl-optimization/77425
14020 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
14021
14022 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
14023
14024 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
14025
14026 2016-09-02 David Malcolm <dmalcolm@redhat.com>
14027
14028 * common.opt (fdiagnostics-generate-patch): New option.
14029 * diagnostic.c: Include "edit-context.h".
14030 (diagnostic_initialize): Initialize context->edit_context_ptr.
14031 (diagnostic_finish): Delete context->edit_context_ptr.
14032 (diagnostic_report_diagnostic): Add fix-it hints from the
14033 diagnostic to context->edit_context_ptr, if any.
14034 * diagnostic.h (class edit_context): Add forward decl.
14035 (struct diagnostic_context): Add field "edit_context_ptr".
14036 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
14037 -fdiagnostics-generate-patch.
14038 (-fdiagnostics-generate-patch): New item.
14039 * toplev.c: Include "edit-context.h".
14040 (process_options): Set global_dc->edit_context_ptr to a new
14041 edit_context if the options need one.
14042 (toplev::main): Handle -fdiagnostics-generate-patch by using
14043 global_dc->edit_context_ptr.
14044
14045 2016-09-02 Jakub Jelinek <jakub@redhat.com>
14046
14047 PR c/65467
14048 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
14049 map and firstprivate clauses on target construct for _Atomic
14050 qualified decls.
14051 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
14052 on target construct for _Atomic qualified decls.
14053 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
14054 decls.
14055 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
14056 _Atomic qualified arguments not mentioned in uniform clause.
14057
14058 2016-09-02 David Malcolm <dmalcolm@redhat.com>
14059
14060 * Makefile.in (OBJS-libcommon): Add edit-context.o.
14061 * diagnostic-color.c (color_dict): Add "diff-filename",
14062 "diff-hunk", "diff-delete", and "diff-insert".
14063 (parse_gcc_colors): Update default value of GCC_COLORS in comment
14064 to reflect above changes.
14065 * doc/invoke.texi (-fdiagnostics-color): Update description of
14066 default GCC_COLORS, and of the supported capabilities.
14067 * edit-context.c: New file.
14068 * edit-context.h: New file.
14069 * input.c (struct fcache): Add field "missing_trailing_newline".
14070 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
14071 true.
14072 (add_file_to_cache_tab): Likewise.
14073 (fcache::fcache): Likewise.
14074 (get_next_line): Update c->missing_trailing_newline.
14075 (location_missing_trailing_newline): New function.
14076 * input.h (location_missing_trailing_newline): New decl.
14077 * selftest-run-tests.c (selftest::run_tests): Call
14078 edit_context_c_tests.
14079 * selftest.h (edit_context_c_tests): New decl.
14080
14081 2016-09-02 Jakub Jelinek <jakub@redhat.com>
14082 Richard Biener <rguenth@suse.de>
14083
14084 PR tree-optimization/77444
14085 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
14086 as steptype, remove redundant initialization.
14087
14088 2016-09-02 Jakub Jelinek <jakub@redhat.com>
14089
14090 PR sanitizer/77396
14091 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
14092 (sanopt_optimize_walker): Optimize away
14093 __asan_before_dynamic_init (...) followed by
14094 __asan_after_dynamic_init () without intervening memory loads/stores.
14095 * ipa-pure-const.c (special_builtin_state): Handle
14096 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
14097 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
14098
14099 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14100
14101 * cfg.c (free_original_copy_tables): Replace second assignment of
14102 bb_copy = NULL by bb_original = NULL.
14103
14104 2016-09-02 Jakub Jelinek <jakub@redhat.com>
14105
14106 PR other/77421
14107 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
14108 assignment added in r216794.
14109
14110 2016-09-02 David Malcolm <dmalcolm@redhat.com>
14111
14112 * Makefile.in (OBJS): Add typed-splay-tree.o.
14113 * selftest-run-tests.c (selftest::run_tests): Call
14114 typed_splay_tree_c_tests.
14115 * selftest.h (typed_splay_tree_c_tests): New decl.
14116 * typed-splay-tree.c: New file.
14117 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
14118 (typed_splay_tree::max): New method.
14119 (typed_splay_tree::min): New method.
14120 (typed_splay_tree::foreach): New method.
14121 (typed_splay_tree::closure): New struct.
14122 (typed_splay_tree::inner_foreach_fn): New function.
14123
14124 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14125
14126 * ipa-cp.c (ipcp_store_bits_results): Change option name from
14127 -fipa-cp-bit to -fipa-bit-cp.
14128
14129 2016-09-01 Martin Sebor <msebor@redhat.com>
14130
14131 PR tree-optimization/71831
14132 * tree-object-size.h: Return bool instead of the size and add
14133 argument for the size.
14134 * tree-object-size.c (compute_object_offset): Update signature.
14135 (addr_object_size): Same.
14136 (compute_builtin_object_size): Return bool instead of the size
14137 and add argument for the size. Handle POINTER_PLUS_EXPR when
14138 optimization is disabled.
14139 (expr_object_size): Adjust.
14140 (plus_stmt_object_size): Adjust.
14141 (pass_object_sizes::execute): Adjust.
14142 * builtins.c (fold_builtin_object_size): Adjust.
14143 * doc/extend.texi (Object Size Checking): Update.
14144 * ubsan.c (instrument_object_size): Adjust.
14145
14146 2016-09-01 Martin Sebor <msebor@redhat.com>
14147
14148 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
14149 it fits the output of the formatted function regardless of its
14150 arguments.
14151 * genmodes.c (parser::parse_expr): Same.
14152 * gimplify.c (gimplify_asm_expr): Same.
14153 * passes.c (pass_manager::register_one_dump_file): Same.
14154 * print-tree.c (print_node): Same.
14155
14156 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14157
14158 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
14159
14160 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14161
14162 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
14163
14164 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14165
14166 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
14167 * config/rs6000/vector.md: Ditto.
14168 * config/rs6000/vsx.md: Ditto.
14169
14170 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
14171
14172 * ipa-inline-analysis.c (param_change_prob): Get to the base object
14173 first in all cases.
14174
14175 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14176
14177 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
14178 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
14179 *return_and_restore_gpregs_<mode>_r11,
14180 *return_and_restore_gpregs_<mode>_r12,
14181 *return_and_restore_gpregs_<mode>_r1,
14182 *return_and_restore_fpregs_<mode>_r11,
14183 *return_and_restore_fpregs_<mode>_r12,
14184 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
14185 directly instead of via the "l" constraint. Renumber operands.
14186 Fix whitespace.
14187
14188 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14189
14190 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
14191 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
14192 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
14193 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
14194 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
14195 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
14196 *call_value_nonlocal_darwin64, reload_macho_picbase,
14197 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
14198 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
14199 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
14200 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
14201 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
14202 *save_fpregs_<mode>_r1): Ditto.
14203 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
14204 *return_and_restore_gpregs_spe): Ditto.
14205
14206 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14207
14208 * config/rs6000/rs6000.md
14209 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
14210 the use of the link register.
14211 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
14212
14213 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14214 Michael Meissner <meissner@linux.vnet.ibm.com>
14215
14216 PR target/72827
14217 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
14218 reg+reg addressing for TImode.
14219 (rs6000_legitimate_address_p): Only allow register indirect
14220 addressing for TImode, even without TARGET_QUAD_MEMORY.
14221
14222 2016-09-01 Richard Biener <rguenther@suse.de>
14223
14224 PR middle-end/77436
14225 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
14226 check whether the result fits the desired result type.
14227
14228 2016-09-01 Nathan Sidwell <nathan@acm.org>
14229
14230 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
14231
14232 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
14233
14234 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
14235 New function.
14236 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
14237
14238 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14239
14240 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
14241 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
14242 for comparisons of integer ZERO_EXTEND against zero.
14243
14244 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
14245
14246 * config/i386/i386.c (ix86_option_override_internal): Also disable the
14247 STV pass if -mstackrealign is enabled.
14248
14249 2016-08-31 Ilya Verbin <iverbin@gmail.com>
14250
14251 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
14252 AVX512IFMA.
14253
14254 2016-08-31 David Malcolm <dmalcolm@redhat.com>
14255
14256 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
14257 (layout_range::intersects_line_p): New method.
14258 (test_range_contains_point_for_single_point): Rename to...
14259 (test_layout_range_for_single_point): ...this, and add testing
14260 for layout_range::intersects_line_p.
14261 (test_range_contains_point_for_single_line): Rename to...
14262 (test_layout_range_for_single_line): ...this, and add testing
14263 for layout_range::intersects_line_p.
14264 (test_range_contains_point_for_multiple_lines): Rename to...
14265 (test_layout_range_for_multiple_lines): ...this, and add testing
14266 for layout_range::intersects_line_p.
14267 (layout::layout): Populate m_fixit_hints.
14268 (layout::get_expanded_location): Handle the case of a line-span
14269 for a fix-it hint.
14270 (layout::validate_fixit_hint_p): New method.
14271 (get_line_span_for_fixit_hint): New function.
14272 (layout::calculate_line_spans): Add spans for fixit-hints.
14273 (layout::should_print_annotation_line_p): New method.
14274 (layout::print_any_fixits): Drop param "richloc", instead using
14275 validated fixits in m_fixit_hints. Add "const" to hint pointers.
14276 (diagnostic_show_locus): Avoid printing blank annotation lines.
14277 (selftest::test_diagnostic_context::test_diagnostic_context):
14278 Initialize show_column and start_span.
14279 (selftest::test_diagnostic_context::start_span_cb): New static
14280 function.
14281 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
14282 (selftest::diagnostic_show_locus_c_tests): Update for function
14283 renamings. Call test_diagnostic_show_locus_fixit_lines.
14284
14285 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
14286
14287 PR tree-optimization/73714
14288 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
14289
14290 2016-08-31 David Malcolm <dmalcolm@redhat.com>
14291
14292 * selftest.c: Move "namespace selftest {" to top of file,
14293 removing explicit "selftest::" qualifiers throughout.
14294
14295 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
14296
14297 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
14298 New types.
14299 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
14300 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
14301 Replace builtin with vector extension.
14302 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
14303 New types.
14304 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
14305 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
14306 Replace builtin with vector extension.
14307 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
14308 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
14309 Replace builtin with vector extension.
14310 * config/i386/xmmintrin.h (__m128_u): New type.
14311 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
14312 (_mm_load_ps, _mm_store_ps): Simplify.
14313
14314 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
14315
14316 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
14317
14318 2016-08-30 David Malcolm <dmalcolm@redhat.com>
14319
14320 * diagnostic-show-locus.c (colorizer::begin_state): Support more
14321 than 3 ranges per diagnostic by alternating between color 1 and
14322 color 2.
14323 (layout::layout): Replace use of rich_location::MAX_RANGES
14324 with richloc->get_num_locations ().
14325 (layout::calculate_line_spans): Replace use of
14326 rich_location::MAX_RANGES with m_layout_ranges.length ().
14327 (layout::print_annotation_line): Handle arbitrary numbers of
14328 ranges in caret-printing by defaulting to '^'.
14329 (selftest::test_one_liner_many_fixits): New function.
14330 (test_diagnostic_show_locus_one_liner): Call it.
14331 * diagnostic.c (diagnostic_initialize): Update for renaming
14332 of rich_location::MAX_RANGES to
14333 rich_location::STATICALLY_ALLOCATED_RANGES.
14334 * diagnostic.h (struct diagnostic_context): Likewise.
14335
14336 2016-08-30 David Malcolm <dmalcolm@redhat.com>
14337
14338 * selftest.c (selftest::named_temp_file::named_temp_file): New
14339 ctor.
14340 (selftest::temp_source_file::~temp_source_file): Move to...
14341 (selftest::named_temp_file::~named_temp_file): ...here.
14342 (selftest::test_named_temp_file): New function.
14343 (selftest::selftest_c_tests): Call test_named_temp_file.
14344 * selftest.h (class named_temp_file): New class.
14345 (class temp_source_file): Convert to a subclass of named_temp_file.
14346
14347 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
14348
14349 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
14350 USEs of LR_REGNO in returns and sibcalls.
14351 (rs6000_output_mi_thunk): Similar.
14352 (rs6000_sibcall_aix): Similar.
14353 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
14354 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
14355 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
14356 Remove the USE of LR_REGNO from the patterns as well. Delete an
14357 obsolete comment.
14358 (return_internal_<mode>): Delete.
14359
14360 2016-08-30 Tamar Christina <tamar.christina@arm.com>
14361
14362 * config/aarch64/aarch64-simd.md
14363 (aarch64_ld2<mode>_dreg_le): New.
14364 (aarch64_ld2<mode>_dreg_be): New.
14365 (aarch64_ld2<mode>_dreg): Removed.
14366 (aarch64_ld3<mode>_dreg_le): New.
14367 (aarch64_ld3<mode>_dreg_be): New.
14368 (aarch64_ld3<mode>_dreg): Removed.
14369 (aarch64_ld4<mode>_dreg_le): New.
14370 (aarch64_ld4<mode>_dreg_be): New.
14371 (aarch64_ld4<mode>_dreg): Removed.
14372 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
14373
14374 2016-08-30 David Malcolm <dmalcolm@redhat.com>
14375
14376 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
14377 redundant location param.
14378 (test_one_liner_fixit_remove): Likewise.
14379 (test_one_liner_fixit_replace): Likewise.
14380 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
14381 * gcc-rich-location.c
14382 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
14383 get_range_from_loc. Drop overload taking a const char *.
14384 * gcc-rich-location.h
14385 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
14386 a const char *.
14387
14388 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
14389
14390 * config/linux.c (linux_libc_has_function): Return true on musl.
14391
14392 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
14393
14394 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
14395
14396 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
14397
14398 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
14399 used for abnormal egdes.
14400
14401 2016-08-30 Jakub Jelinek <jakub@redhat.com>
14402
14403 PR tree-optimization/72866
14404 * tree-vect-patterns.c (search_type_for_mask): Turn into
14405 a small wrapper, move all code to ...
14406 (search_type_for_mask_1): ... this new function. Add caching
14407 and adjust recursive calls.
14408
14409 PR debug/77363
14410 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
14411 instead of lookup_type_die (type_main_variant (type)) even for array
14412 types.
14413
14414 PR middle-end/77377
14415 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
14416 constant pool reference return x instead of c.
14417
14418 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
14419
14420 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
14421 include MQ.
14422
14423 2016-08-29 David Malcolm <dmalcolm@redhat.com>
14424
14425 * input.c
14426 (selftest::test_make_location_nonpure_range_endpoints): Fix
14427 header comment.
14428
14429 2016-08-29 David Malcolm <dmalcolm@redhat.com>
14430
14431 * diagnostic-show-locus.c
14432 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
14433 function.
14434 (selftest::test_diagnostic_show_locus_one_liner): Call it.
14435 * input.c (get_pure_location): Move to libcpp/line-map.c.
14436 * input.h (get_pure_location): Convert decl to an inline function
14437 calling implementation in libcpp.
14438
14439 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
14440
14441 PR target/77403
14442 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
14443 template for intel asm dialect.
14444 (vec_set_hi_<mode><mask_name>): Ditto.
14445
14446 2016-08-29 David Malcolm <dmalcolm@redhat.com>
14447
14448 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
14449 (selftest::fail_formatted): Likewise.
14450
14451 2016-08-29 David Malcolm <dmalcolm@redhat.com>
14452
14453 * input.c (make_location): Call get_start and get_finish
14454 on the endpoints to avoid storing packed ranges or ad-hoc
14455 ranges in them.
14456 (selftest::test_make_location_nonpure_range_endpoints): New function.
14457 (selftest::input_c_tests): Call it.
14458 * input.h (get_start): New inline function.
14459
14460 2016-08-29 Tom de Vries <tom@codesourcery.com>
14461
14462 PR c/77398
14463 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
14464 with assert.
14465
14466 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
14467
14468 * Makefile.in (gcov-iov.h): Add dummy recipe.
14469
14470 2016-08-29 Nathan Sidwell <nathan@acm.org>
14471
14472 * config/nvptx/nvptx.c: #include tree-vrp.h.
14473
14474 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
14475
14476 PR target/77324
14477 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
14478 HIGH+LO construct during reload.
14479
14480 2016-08-28 Tom de Vries <tom@codesourcery.com>
14481
14482 PR lto/70955
14483 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
14484 'sysv_abi va_list' attribute.
14485 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
14486 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
14487 attributes.
14488
14489 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14490
14491 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
14492 * emit-rtl.c (unshare_all_rtl_1): Adjust.
14493 (unshare_all_rtl_again): Likewise.
14494 * function.c (assign_stack_local_1): Likewise.
14495 (assign_stack_temp_for_type): Likewise.
14496
14497 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14498
14499 * cfgbuild.c (make_edges): Adjust.
14500 * cfgrtl.c (can_delete_label_p): Likewise.
14501 * dwarf2cfi.c (create_trace_edges): Likewise.
14502 * except.c (sjlj_emit_dispatch_table): Likewise.
14503 * function.h (struct expr_status): make x_forced_labels a vector.
14504 * jump.c (rebuild_jump_labels_1): Adjust.
14505 * reload1.c (set_initial_label_offsets): Likewise.
14506 * stmt.c (force_label_rtx): Likewise.
14507 (expand_label): Likewise.
14508
14509 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14510
14511 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
14512
14513 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
14514
14515 PR tree-optimization/71077
14516 PR tree-optimization/68542
14517 * fold-const.c (fold_relational_const): Fix folding of
14518 VECTOR_CST comparisons that have a scalar boolean result type.
14519 (selftest::test_vector_folding): New static function.
14520 (selftest::fold_const_c_tests): Call it.
14521
14522 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
14523
14524 * doc/extend.texi (SPU Built-in Functions): Remove stale
14525 references to material formerly at IBM and Sony.
14526
14527 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
14528
14529 PR target/77349
14530 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
14531
14532 2016-08-26 David Malcolm <dmalcolm@redhat.com>
14533
14534 * diagnostic-show-locus.c
14535 (selftest::test_fixit_consolidation): New function.
14536 (selftest::diagnostic_show_locus_c_tests): Call it.
14537 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
14538 constructor based on source_range.
14539
14540 2016-08-26 David Malcolm <dmalcolm@redhat.com>
14541
14542 * diagnostic-color.c (color_dict): Add "fixit-insert" and
14543 "fixit-delete".
14544 (parse_gcc_colors): Update description of default GCC_COLORS.
14545 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
14546 (colorizer::set_fixit_insert): New method.
14547 (colorizer::set_fixit_delete): New method.
14548 (colorizer::get_color_by_name): New method.
14549 (colorizer::STATE_FIXIT_INSERT): New constant.
14550 (colorizer::STATE_FIXIT_DELETE): New constant.
14551 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
14552 fields in favor of new field "m_stop_color". Add fields
14553 "m_fixit_insert" and "m_fixit_delete".
14554 (colorizer::colorizer): Update for above changes. Replace
14555 colorize_start calls with calls to get_color_by_name.
14556 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
14557 STATE_FIXIT_DELETE. Update for field renamings.
14558 (colorizer::finish_state): Simplify by using m_stop_color,
14559 rather than multiple identical "*_ce" fields.
14560 (colorizer::get_color_by_name): New method.
14561 (layout::print_any_fixits): Print insertions and replacements
14562 using the "fixit-insert" color, and deletions using the
14563 "fixit-delete" color.
14564 * doc/invoke.texi (-fdiagnostics-color): Update description of
14565 default GCC_COLORS, and of the supported capabilities.
14566
14567 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
14568
14569 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
14570 current_function_static_stack_size variable with the static
14571 stack frame size of the current function when
14572 flag_stack_usage_info is enabled.
14573
14574 2016-08-26 Nathan Sidwell <nathan@acm.org>
14575
14576 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
14577 assignment inside if condition.
14578
14579 2016-08-26 Richard Biener <rguenther@suse.de>
14580
14581 PR tree-optimization/69047
14582 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
14583 extracts similar to what FRE does.
14584 (non_rewritable_mem_ref_base): Likewise.
14585
14586 2016-08-26 Joseph Myers <joseph@codesourcery.com>
14587
14588 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
14589 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
14590 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14591 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14592 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
14593 Likewise.
14594 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14595 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14596 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14597 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
14598 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
14599
14600 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14601
14602 PR target/70473
14603 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
14604 reservation duration to 15 cycles.
14605 (cortex_a8_vfp_macs): Likewise.
14606 (cortex_a8_vfp_macd): Likewise.
14607 (cortex_a8_vfp_divs): Likewise.
14608 (cortex_a8_vfp_divd): Likewise.
14609
14610 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14611
14612 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
14613 (aarch_macro_fusion_pair_p): Use above to avoid early return.
14614
14615 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14616 Martin Jambhor <mjambor@suse.cz>
14617
14618 * common.opt: New option -fipa-bit-cp.
14619 * doc/invoke.texi: Document -fipa-bit-cp.
14620 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
14621 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
14622 * tree-ssa-ccp.h: New header file.
14623 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
14624 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
14625 Replace all occurences of tree parameter by two new params: signop, int.
14626 (bit_value_unop_1): Change to bit_value_unop and export it.
14627 Replace all occurences of tree parameter by two new params: signop,
14628 int.
14629 (bit_value_binop): Change call from bit_value_binop_1 to
14630 bit_value_binop.
14631 (bit_value_assume_aligned): Likewise.
14632 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
14633 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
14634 to ccp_finalize.
14635 (ccp_finalize): Skip processing if val->mask == 0.
14636 * ipa-cp.c: Include tree-ssa-ccp.h
14637 (ipcp_bits_lattice): New class.
14638 (ipcp_param_lattice (bits_lattice): New member.
14639 (print_all_lattices): Call ipcp_bits_lattice::print.
14640 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
14641 (initialize_node_lattices): Likewise.
14642 (propagate_bits_accross_jump_function): New function.
14643 (propagate_constants_accross_call): Call
14644 propagate_bits_accross_jump_function.
14645 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
14646 (ipcp_store_bits_results): New function.
14647 (ipcp_driver): Call ipcp_store_bits_results.
14648 * ipa-prop.h (ipa_bits): New struct.
14649 (ipa_jump_func): Add new member bits of type ipa_bits.
14650 (ipa_param_descriptor): Change decl to decl_or_type.
14651 (ipa_get_param): Change decl to decl_or_type and assert on
14652 PARM_DECL.
14653 (ipa_get_type): New function.
14654 (ipcp_transformation_summary): New member bits.
14655 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
14656 (ipa_populate_param_decls): Likewise.
14657 (ipa_dump_param): Likewise.
14658 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
14659 function.
14660 (ipa_set_jf_unknown): Set ipa_bits::known to false.
14661 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
14662 propagation.
14663 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
14664 (ipa_write_jump_function): Add streaming for ipa_bits.
14665 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
14666 (write_ipcp_transformation_info): Add streaming for ipa_bits
14667 summary for ltrans.
14668 (read_ipcp_transfomration_info): Add support for reading streamed
14669 ipa_bits.
14670 (ipcp_update_bits): New function.
14671 (ipcp_transform_function): Call ipcp_update_bits.
14672
14673 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
14674
14675 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
14676 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
14677
14678 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
14679
14680 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
14681
14682 2016-08-25 Richard Biener <rguenther@suse.de>
14683
14684 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
14685 Only add locations in late dwarf.
14686 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
14687 (dwarf2out_early_finish): But do it here.
14688
14689 2016-08-24 Michael Collison <michael.collison@linaro.org>
14690 Michael Collison <michael.collison@arm.com>
14691
14692 * config/arm/arm-modes.def: Add new condition code mode CC_V
14693 to represent the overflow bit.
14694 * config/arm/arm.c (maybe_get_arm_condition_code):
14695 Add support for CC_Vmode.
14696 (arm_gen_unlikely_cbranch): New function to generate common
14697 rtl conditional branches for overflow patterns.
14698 * config/arm/arm-protos.h: Add prototype for
14699 arm_gen_unlikely_cbranch.
14700 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
14701 addsi3_compareV_upper): New patterns to support signed
14702 builtin overflow add operations.
14703 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
14704 New patterns to support unsigned builtin add overflow operations.
14705 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
14706 builtin overflow subtract operations,
14707 (usubv<mode>4): New patterns to support unsigned builtin subtract
14708 overflow operations.
14709 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
14710 to support builtin overflow negate operations.
14711
14712 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14713
14714 Revert
14715 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
14716
14717 * explow.c (get_dynamic_stack_size): Take known alignment of stack
14718 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
14719 needed.
14720
14721 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
14722
14723 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
14724 MULTILIB_OPTIONS should be used. Small wording fixes.
14725 * genmultilib: Memorize set of all option combinations in
14726 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
14727 found in MULTILIB_OPTIONS by checking if option set is listed in
14728 combination_space. Output new and existing error message to stderr.
14729
14730 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
14731
14732 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
14733 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
14734 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
14735 (MULTILIB_REUSE): Remove reuse rules for option set including
14736 -mfpu=fp-armv8 and -mfpu=vfpv4
14737
14738 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
14739
14740 * config/arm/t-rtems: Add vfp multilib.
14741
14742 2016-08-23 Ian Lance Taylor <iant@golang.org>
14743
14744 * config/s390/s390.c (s390_asm_file_start): Call
14745 default_file_start.
14746
14747 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
14748
14749 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
14750 initialization of all 0's to the 0 constant, instead of directly
14751 generating XOR. Add support for V4SImode vector initialization on
14752 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
14753 initialization. Change variables used in V4SFmode vector
14754 intialization. For V4SFmode vector splat on ISA 3.0, make sure
14755 any memory addresses are in index form. Add support for using
14756 VSPLTH/VSPLTB to initialize vector short and vector char vectors
14757 with all of the same element.
14758 (regno_or_subregno): New helper function to return a register
14759 number for either REG or SUBREG.
14760 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
14761 Use regno_or_subregno where possible.
14762 (rs6000_split_v4si_init_di_reg): New helper function to build up a
14763 DImode value from two SImode values in order to generate V4SImode
14764 vector initialization on 64-bit systems with direct move.
14765 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
14766 initialization.
14767 (rtx_is_swappable_p): V4SImode vector initialization insn is not
14768 swappable.
14769 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
14770 declaration.
14771 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
14772 attributes to initialize V8HImode and V16QImode vectors with the
14773 same element.
14774 (VSX_SPLAT_COUNT): Likewise.
14775 (VSX_SPLAT_SUFFIX): Likewise.
14776 (UNSPEC_VSX_VEC_INIT): New unspec.
14777 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
14778 Allow SFmode values to come from Altivec registers.
14779 (vsx_init_v4si): New insn/split for V4SImode vector initialization
14780 on 64-bit systems with direct move.
14781 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
14782 vector initializations, to allow V4SImode vector initializations
14783 on 64-bit systems with direct move.
14784 (vsx_splat_v4si): Likewise.
14785 (vsx_splat_v4si_di): Likewise.
14786 (vsx_splat_v4sf): Likewise.
14787 (vsx_splat_v4sf_internal): Likewise.
14788 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
14789 register classes.
14790 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
14791 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
14792 initializing V8HImode and V16QImode vectors with the same
14793 element.
14794 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
14795 optimization if -maltivec=be.
14796
14797 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
14798
14799 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
14800 attribute for alternatives 3 and 4.
14801
14802 2016-08-23 David Malcolm <dmalcolm@redhat.com>
14803
14804 * selftest.c (selftest::assert_str_contains): New function.
14805 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
14806 * selftest.h (selftest::assert_str_contains): New decl.
14807 (ASSERT_STR_CONTAINS): New macro.
14808
14809 2016-08-23 Richard Biener <rguenther@suse.de>
14810
14811 PR tree-optimization/77286
14812 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
14813 the CFG here.
14814 (vect_transform_loop): Split exit edges of loop and scalar
14815 loop if required and at the appropriate time.
14816
14817 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
14818
14819 * explow.c (get_dynamic_stack_size): Take known alignment of stack
14820 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
14821 needed.
14822 Correct a typo in a comment.
14823
14824 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
14825
14826 * config/s390/s390.md ("*andc_split"): New splitter for and with
14827 complement.
14828
14829 2016-08-23 Richard Biener <rguenther@suse.de>
14830
14831 PR tree-optimization/27336
14832 * tree-vrp.c (infer_value_range): Handle stmts that can throw
14833 by looking for a non-EH edge.
14834 (process_assert_insertions_for): Likewise.
14835
14836 2016-08-23 Richard Biener <rguenther@suse.de>
14837
14838 PR middle-end/77305
14839 * statistics.c (statistics_counter_event): Robustify against
14840 NULL current_pass.
14841
14842 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
14843
14844 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
14845 for targets amdfam10 and barcelona.
14846
14847 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
14848
14849 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
14850 (zero_extend<mode>di2): Ditto.
14851 (*zero_extend<mode>si2): Ditto.
14852 (*zero_extendqihi2): Ditto.
14853
14854 2016-08-22 Joseph Myers <joseph@codesourcery.com>
14855
14856 PR middle-end/77269
14857 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
14858 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
14859
14860 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
14861
14862 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
14863 identical consecutive elements.
14864 [SSA_NAME]: Print the name's def stmt on its own line. When printing
14865 the node's def stmt, avoid printing an unwanted trailing newline by
14866 replacing the call to print_gimple_stmt() with its inlined body and
14867 adjusting it to not set pp_needs_newline and to call pp_flush()
14868 instead of pp_newline_and_flush().
14869
14870 2016-08-22 Joseph Myers <joseph@codesourcery.com>
14871
14872 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
14873 (float32_type_node, float64_type_node, float32x_type_node)
14874 (float128x_type_node): New macros.
14875 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
14876 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
14877 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
14878 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
14879 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
14880 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
14881 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
14882 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
14883 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
14884 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
14885 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
14886 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
14887 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
14888 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
14889 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
14890 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
14891 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
14892 (copysign, fabs, huge_val, inf, nan, nans): Use it.
14893 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
14894 and copysign.
14895 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
14896 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
14897 * doc/extend.texi (Other Builtins): Document these built-in
14898 functions.
14899 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
14900 for nan and nans.
14901
14902 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
14903
14904 * doc/install.texi (Binaries): www.opencsw.org now uses https.
14905
14906 2016-08-22 Richard Biener <rguenther@suse.de>
14907
14908 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
14909
14910 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
14911
14912 PR target/77270
14913 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
14914 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
14915 non-SSE2 athlons only, otherwise prefer SSE prefetches.
14916
14917 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
14918
14919 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
14920 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
14921 (vrp_visit_switch_stmt): Likewise.
14922 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
14923 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
14924 (vrp_visit_stmt): Use extract_range_from_stmt.
14925 (vrp_visit_phi_node): Use extract_range_from_phi_node.
14926
14927 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
14928
14929 * Makefile.in: Add tree-vrp.h to GTFILES.
14930 * gengtype.c (open_base_files): Add tree-vrp.h.
14931 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
14932 * builtins.c: Likewise.
14933 * fold-const.c: Likewise.
14934 * gimple-builder.c: Likewise.
14935 * gimple-laddress.c: Likewise.
14936 * hsa-gen.c: Likewise.
14937 * internal-fn.c: Likewise.
14938 * ssa.h: Likewise.
14939 * targhooks.c: Liewise,
14940 * tree-ssa-address.c: Likewise.
14941 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
14942 * tree-vrp.c (struct value_range): Move to tree-vrp.h
14943 * tree-vrp.h: New file.
14944
14945 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
14946
14947 PR tree-optimization/61839
14948 * tree-vrp.c (two_valued_val_range_p): New.
14949 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
14950 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
14951 Also Convert VAR BINOP CST where VAR is two-valued to
14952 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
14953
14954 2016-08-19 David Malcolm <dmalcolm@redhat.com>
14955
14956 * diagnostic-show-locus.c
14957 (layout::annotation_line_showed_range_p): New method.
14958 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
14959 Reimplement case fixit_hint::REPLACE to cover removals, and
14960 replacements where the range of the replacement isn't one
14961 of the ranges in the rich_location.
14962 (test_one_liner_fixit_replace): Likewise.
14963 (selftest::test_one_liner_fixit_replace_non_equal_range): New
14964 function.
14965 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
14966 New function.
14967 (selftest::test_diagnostic_show_locus_one_liner): Call the new
14968 functions.
14969 * diagnostic.c (print_parseable_fixits): Remove case
14970 fixit_hint::REMOVE.
14971
14972 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
14973
14974 PR target/77270
14975 * config/i386/i386.c (ix86_option_override_internal): Remove
14976 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
14977 Enable SSE prefetch also for TARGET_PREFETCHWT1.
14978 Do not try to enable TARGET_PRFCHW ISA flag here.
14979 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
14980 Rewrite expander function body.
14981 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
14982
14983 2016-08-19 Joseph Myers <joseph@codesourcery.com>
14984
14985 PR c/32187
14986 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
14987 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
14988 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
14989 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
14990 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
14991 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
14992 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
14993 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
14994 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
14995 tree_index values.
14996 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
14997 macros.
14998 (struct floatn_type_info): New structure type.
14999 (floatn_nx_types): New variable declaration.
15000 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
15001 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
15002 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
15003 * tree.c (floatn_nx_types): New variable.
15004 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
15005 corresponding complex types.
15006 * target.def (floatn_mode): New hook.
15007 * targhooks.c: Include "real.h".
15008 (default_floatn_mode): New function.
15009 * targhooks.h (default_floatn_mode): New prototype.
15010 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
15011 types.
15012 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
15013 effective-target and dg-add-options keywords.
15014 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
15015 Document new effective-target keywords.
15016 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
15017 * doc/tm.texi: Regenerate.
15018 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
15019 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
15020 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
15021 18661-3.
15022 * real.h (struct real_format): Add field ieee_bits.
15023 * real.c (ieee_single_format, mips_single_format)
15024 (motorola_single_format, spu_single_format, ieee_double_format)
15025 (mips_double_format, motorola_double_format)
15026 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
15027 (ieee_extended_intel_128_format)
15028 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
15029 (mips_extended_format, ieee_quad_format, mips_quad_format)
15030 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
15031 (decimal_double_format, decimal_quad_format, ieee_half_format)
15032 (arm_half_format, real_internal_format: Initialize ieee_bits
15033 field.
15034 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
15035 float128_type_node. Set float80_type_node to float64x_type_node
15036 if appropriate and long_double_type_node not appropriate.
15037 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
15038 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
15039 Initialize ieee_bits field.
15040 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
15041 (rs6000_init_builtins): Set ieee128_float_type_node to
15042 float128_type_node.
15043 (rs6000_floatn_mode): New function.
15044
15045 2016-08-19 Jakub Jelinek <jakub@redhat.com>
15046
15047 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
15048 _rdseed64_step): Uglify argument names and/or local variable names
15049 in inline functions.
15050 * config/i386/rtmintrin.h (_xabort): Likewise.
15051 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
15052 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
15053 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
15054 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
15055 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
15056 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
15057 _mm_maskz_ternarylogic_epi32): Likewise.
15058 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
15059 __lwpins32, __lwpins64): Likewise.
15060 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
15061 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
15062 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
15063 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
15064 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
15065 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
15066 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
15067 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
15068 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
15069 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
15070 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
15071 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
15072 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
15073 _mm256_mask_i64gather_epi32): Likewise.
15074 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
15075 * config/i386/ia32intrin.h (__writeeflags): Likewise.
15076 * config/i386/pkuintrin.h (_wrpkru): Likewise.
15077 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
15078 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
15079 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
15080 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
15081 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
15082 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
15083 _mm512_mask_prefetch_i64scatter_ps): Likewise.
15084 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
15085 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
15086 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
15087 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
15088 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
15089 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
15090 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
15091 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
15092
15093 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
15094 returning void.
15095 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
15096 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
15097 Likewise.
15098 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
15099 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
15100 function name.
15101 (_rdpkru_u32): Add space after function name.
15102
15103 * config/i386/t-i386 (i386-c.o): Don't depend on
15104 i386-builtin-types.inc.
15105 (i386.o): Depend on i386-builtin-types.inc.
15106
15107 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
15108
15109 PR target/77281
15110 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
15111 Use const_vec_duplicate to check for duplicated elements.
15112
15113 2016-08-19 Richard Biener <rguenther@suse.de>
15114
15115 PR tree-optimization/77290
15116 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15117 Fix flag_tree_parallelize_loops check.
15118
15119 2016-08-19 Richard Biener <rguenther@suse.de>
15120
15121 * match.pd (x | 0 -> x): Add.
15122
15123 2016-08-19 Richard Biener <rguenther@suse.de>
15124
15125 PR tree-optimization/77286
15126 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
15127 Deal with virtual PHIs being out-of-order.
15128
15129 2016-08-18 David Malcolm <dmalcolm@redhat.com>
15130
15131 * doc/invoke.texi (fverbose-asm): Note that source code lines
15132 are emitted, and provide an example.
15133 * final.c (asm_show_source): New function.
15134 (final_scan_insn): Call asm_show_source.
15135
15136 2016-08-18 David Malcolm <dmalcolm@redhat.com>
15137
15138 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
15139 param with diagnostic_kind.
15140 (class colorizer): Similarly replace field m_diagnostic with
15141 m_diagnostic_kind.
15142 (colorizer::colorizer): Replace diagnostic
15143 param with diagnostic_kind.
15144 (colorizer::begin_state): Update for above field change.
15145 (layout::layout): Replace diagnostic param with rich_location *
15146 and diagnostic_kind.
15147 (diagnostic_show_locus): Replace diagnostic param with richloc
15148 and diagnostic_kind.
15149 (class selftest::test_diagnostic_context): New class.
15150 (selftest::test_diagnostic_show_locus_unknown_location): New
15151 function.
15152 (selftest::test_one_liner_simple_caret): New function.
15153 (selftest::test_one_liner_caret_and_range): New function.
15154 (selftest::test_one_liner_multiple_carets_and_ranges): New
15155 function.
15156 (selftest::test_one_liner_fixit_remove): New function.
15157 (selftest::test_one_liner_fixit_replace): New function.
15158 (selftest::test_diagnostic_show_locus_one_liner): New function.
15159 (selftest::diagnostic_show_locus_c_tests): Call the new test
15160 functions.
15161 * diagnostic.c (diagnostic_initialize): Initialize
15162 colorize_source_p, show_ruler_p and parseable_fixits_p.
15163 (default_diagnostic_finalizer): Update for change to
15164 diagnostic_show_locus.
15165 (diagnostic_append_note): Likewise.
15166 * diagnostic.h (diagnostic_show_locus): Replace
15167 const diagnostic_info * param with location * and diagnostic_t.
15168
15169 2016-08-18 David Malcolm <dmalcolm@redhat.com>
15170
15171 * input.c (saved_line_table): New global.
15172 (class selftest::temp_line_table): Rename to line_table_test and
15173 move declaration to selftest.h, and drop field m_old_line_table.
15174 (selftest::temp_line_table::temp_line_table): Rename ctor to...
15175 (selftest::line_table_test::line_table_test): ...this. Add a
15176 default ctor. Store current value of line_table within
15177 saved_line_table.
15178 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
15179 (selftest::line_table_test::~line_table_test): ...this, and
15180 restore line_table from the saved_line_table, rather than
15181 m_old_line_table.
15182 (selftest::test_accessing_ordinary_linemaps): Update for above
15183 renaming.
15184 (selftest::test_lexer): Likewise.
15185 (struct selftest::lexer_test): Likewise.
15186 (selftest::lexer_test::lexer_test): Likewise.
15187 (selftest::input_c_tests): Move the looping over test cases from
15188 here into...
15189 (selftest::for_each_line_table_case): New function.
15190 * input.h (saved_line_table): New decl.
15191 * selftest.h (struct selftest::line_table_case): New forward decl.
15192 (class selftest::line_table_test): New class, moved here from
15193 selftest::temp_line_table in input.c, and renamed.
15194 (selftest::for_each_line_table_case): New decl.
15195
15196 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
15197
15198 PR target/72839
15199 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
15200
15201 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
15202
15203 PR middle-end/70895
15204 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
15205 enclosing parallel construct for reduction variables on OpenACC loop
15206 directives.
15207
15208 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
15209
15210 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
15211 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
15212 -gdwarf-3.
15213 (function_to_dwarf_procedure): Update comment.
15214
15215 2016-08-18 David Malcolm <dmalcolm@redhat.com>
15216
15217 * input.c (diagnostics_file_cache_forcibly_evict_file): New
15218 function.
15219 * input.h (diagnostics_file_cache_forcibly_evict_file): New
15220 declaration.
15221 * selftest.c (selftest::temp_source_file::~temp_source_file):
15222 Evict m_filename from the diagnostic file cache.
15223
15224 2016-08-18 Richard Biener <rguenther@suse.de>
15225
15226 * tree-pass.h (make_pass_materialize_all_clones): Declare.
15227 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
15228 make_pass_materialize_all_clones): New simple IPA pass encapsulating
15229 clone materialization.
15230 * passes.def (all_late_ipa_passes): Start with
15231 pass_materialize_all_clones.
15232 * cgraphunit.c (symbol_table::compile): Remove call to
15233 materialize_all_clones.
15234 * tree-into-ssa.c: Include statistics.h.
15235 (update_ssa): Count number of times we do incremental/rewrite
15236 SSA update.
15237
15238 2016-08-18 Richard Biener <rguenther@suse.de>
15239
15240 PR tree-optimization/77282
15241 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15242 When doing auto-parallelizing also prevent use of PHIs that
15243 carry dependences across loop backedges.
15244
15245 2016-08-18 Tamar Christina <tamar.christina@arm.com>
15246 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15247
15248 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
15249
15250 2016-08-18 Richard Biener <rguenther@suse.de>
15251
15252 * ssa-iterators.h (ssa_vuse_operand): New inline.
15253 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
15254 (predicate_all_scalar_phis): Use remove_phi_node to remove
15255 phi nodes predicated. Delay removing virtual PHIs.
15256 (predicate_mem_writes): Update virtual operands.
15257 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
15258 (tree_if_conversion): Do not rewrite virtual SSA form.
15259 * tree-phinodes.c (release_phi_node): Make static.
15260 * tree-phinodes.h (release_phi_node): Remove.
15261
15262 2016-08-18 Jakub Jelinek <jakub@redhat.com>
15263
15264 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
15265 codes that appear in bdesc_* arrays, instead include i386-builtin.def
15266 twice to define those.
15267 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
15268 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
15269 bdesc_multi_arg): Define by including i386-builtin.def the third time.
15270 * config/i386/i386-builtin.def: New file.
15271
15272 2016-08-17 David Malcolm <dmalcolm@redhat.com>
15273
15274 * input.c (get_source_range_for_char): Rename to...
15275 (selftest::get_source_range_for_char): ...this, and move within
15276 the #if CHECKING_P guard.
15277 (get_num_source_ranges_for_substring): Rename to...
15278 (selftest::get_num_source_ranges_for_substring): ...this, move
15279 within the #if CHECKING_P guard, and make static.
15280 (selftest::assert_num_substring_ranges): Initialize
15281 actual_num_ranges.
15282
15283 2016-08-18 Alan Modra <amodra@gmail.com>
15284
15285 PR rtl-optimization/72771
15286 * reload.c (find_reloads): Don't assume that a subreg mem is OK
15287 when find_reloads_toplev returns address_reloaded==-1.
15288 (alternative_allows_const_pool_ref): Update comment.
15289
15290 2015-08-17 Alan Hayward <alan.hayward@arm.com>
15291
15292 PR tree-optimization/71752
15293 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
15294 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
15295
15296 2016-08-17 Jakub Jelinek <jakub@redhat.com>
15297
15298 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
15299 instead of testing ECF_NORETURN bit in gimple_call_flags.
15300 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
15301 * predict.c (tree_bb_level_predictions): Likewise.
15302 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
15303
15304 PR middle-end/77259
15305 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
15306 turning a call into __builtin_unreachable-like noreturn call, adjust
15307 gimple_call_set_fntype.
15308 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
15309 gimple_call_fntype has void return type.
15310
15311 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
15312
15313 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
15314 maybe_lookup_decl, to handle nested acc loop directives.
15315
15316 2016-08-17 Richard Biener <rguenther@suse.de>
15317
15318 PR tree-optimization/76490
15319 * tree-vrp.c (update_value_range): Preserve overflow infinities
15320 when intersecting with ranges from get_range_info.
15321 (operand_less_p): Handle overflow infinities correctly.
15322 (value_range_constant_singleton): Use vrp_operand_equal_p
15323 to handle overflow max/min correctly.
15324 (vrp_valueize): Likewise.
15325 (union_ranges): Likewise.
15326 (intersect_ranges): Likewise.
15327 (vrp_visit_phi_node): Improve iteration limitation to only
15328 apply when we'll possibly re-visit the PHI via a changed argument
15329 on the backedge.
15330
15331 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
15332
15333 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
15334 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
15335 rather than those that should not be built.
15336
15337 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
15338
15339 PR target/66488
15340 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
15341
15342 2016-08-17 Richard Biener <rguenther@suse.de>
15343
15344 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
15345 (verify_vssa): New function verifying virtual SSA form.
15346 (verify_ssa): Call it.
15347 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
15348 Do not apply loop-closed SSA handling to virtuals.
15349 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
15350 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
15351 when rewriting their symbol.
15352 (prepare_def_site_for): Likewise.
15353 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
15354 operands of moved stmts.
15355
15356 2016-08-17 Richard Biener <rguenther@suse.de>
15357
15358 PR tree-optimization/23855
15359 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
15360 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
15361 find guards to hoist. Do not update SSA form but rewrite virtuals
15362 into loop closed SSA.
15363 (find_loop_guard): Adjust to skip already hoisted guards. Do
15364 not mark virtuals for renaming or update SSA form.
15365
15366 2016-08-17 Martin Liska <mliska@suse.cz>
15367
15368 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
15369 a LONG_LONG_TYPE_SIZE comparison.
15370 * gcov-io.h: Remove macro definitions.
15371 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
15372 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
15373 comparison.
15374
15375 2016-08-16 Jakub Jelinek <jakub@redhat.com>
15376
15377 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
15378 that builtins not mentioned in bdesc_* arrays come first, then
15379 the ones mentioned in bdesc_* arrays in the order they appear in
15380 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
15381 IX86_BUILTIN__BDESC_*_LAST enumerator.
15382 (bdesc_mpx): Fix up a comment typo.
15383 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
15384 __builtin_ia32_vpcomneu[bwdq] builtins.
15385 (BDESC_VERIFY, BDESC_VERIFYS): Define.
15386 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
15387 enum ix86_builtins ordering.
15388 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
15389 for direct bdesc_* array member access instead of searching all the
15390 arrays until an fcode match is found.
15391
15392 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
15393
15394 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
15395 pattern as define_insn_and_split. Split insn before reload to
15396 ashl<mode>3_1.
15397 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
15398 <shift_insn><mode>3_1.
15399 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
15400 <rotate_insn><mode>3_1.
15401
15402 2016-08-16 David Malcolm <dmalcolm@redhat.com>
15403
15404 PR c/72857
15405 * input.c (get_source_range_for_substring): Rename to...
15406 (get_source_location_for_substring): ...this, adding param
15407 "caret_idx", and converting output param from source_range * to
15408 location_t *.
15409 (get_source_range_for_char): New function.
15410 (get_num_source_ranges_for_substring): Update comment to reflect
15411 above renaming.
15412 (assert_char_at_range): Update to use get_source_range_for_char
15413 rather than get_source_range_for_substring.
15414 (test_lexer_string_locations_concatenation_2): Likewise.
15415 * substring-locations.h (get_source_range_for_substring): Rename
15416 to...
15417 (get_source_location_for_substring): ...this, and adding param
15418 "caret_idx", and converting output param from source_range * to
15419 location_t *.
15420
15421 2016-08-16 David Malcolm <dmalcolm@redhat.com>
15422
15423 * input.c (class selftest::temp_source_file): Move to
15424 selftest.h.
15425 (selftest::temp_source_file::temp_source_file): Move to
15426 selftest.c.
15427 (selftest::temp_source_file::~temp_source_file): Likewise.
15428 * selftest.c (selftest::temp_source_file::temp_source_file): Move
15429 here from input.c.
15430 (selftest::temp_source_file::~temp_source_file): Likewise.
15431 * selftest.h (class selftest::temp_source_file): Move here from
15432 input.c
15433
15434 2016-08-16 Jakub Jelinek <jakub@redhat.com>
15435
15436 PR target/71910
15437 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
15438 inlining, add cgraph edge for the added __builtin_unreachable call.
15439
15440 PR middle-end/67485
15441 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
15442 only cast it to SHWI for the final comparison.
15443
15444 2016-08-16 Martin Liska <mliska@suse.cz>
15445
15446 PR gcov-profile/36412
15447 * doc/gcov.texi: Document --hash-filenames(-x).
15448 * gcov.c (print_usage): Add the option.
15449 (process_args): Process the option, sort options alphabetically.
15450 (md5sum_to_hex): New function.
15451 (make_gcov_file_name): Do the md5sum and append it to a
15452 filename.
15453
15454 2016-08-16 Bin Cheng <bin.cheng@arm.com>
15455
15456 PR tree-optimization/69848
15457 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
15458 and swtich operands to avoid additional NOT instruction.
15459 (vcond<v_cmp_mixed><mode>): Ditto.
15460 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
15461
15462 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
15463
15464 * doc/install.texi (*-*-solaris2*): Adjust latest change.
15465
15466 2016-08-16 Richard Biener <rguenther@suse.de>
15467
15468 PR tree-optimization/76783
15469 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
15470 BB visited flags at start.
15471
15472 2016-08-16 Bin Cheng <bin.cheng@arm.com>
15473
15474 PR tree-optimization/72817
15475 PR tree-optimization/73450
15476 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
15477 multiple_of_p for adjusted IV.base.
15478
15479 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
15480
15481 PR target/72867
15482 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
15483 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
15484 for !flag_finite_math_only or flag_signed_zeros.
15485 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
15486 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
15487 depend on flag_finite_math_only.
15488 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
15489 New insn pattern.
15490 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
15491 (*ieee_smin<mode>3): Ditto.
15492 (*ieee_smax<mode>3): Ditto.
15493 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
15494 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
15495 flag_signed_zeros.
15496 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
15497 depend on flag_finite_math_only.
15498 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
15499 (*mmx_<code>v2sf3): Remove.
15500 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
15501 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
15502 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
15503
15504 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
15505
15506 PR rtl-optimization/73650
15507 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
15508 it is not a simple move.
15509
15510 2016-08-15 Martin Liska <mliska@suse.cz>
15511
15512 PR driver/72765
15513 * gcc.c (do_spec_1): Call save_string with the right size.
15514 (save_string): Do an assert about string we copy.
15515
15516 2016-08-15 Richard Biener <rguenther@suse.de>
15517
15518 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
15519 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
15520 TV_MACH_DEP.
15521 (pass_data_stv): Likewise.
15522
15523 2016-08-15 Richard Biener <rguenther@suse.de>
15524
15525 PR tree-optimization/73434
15526 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
15527 TBAA info on the base when forwarding a non-invariant address.
15528
15529 2016-08-15 Jakub Jelinek <jakub@redhat.com>
15530
15531 * dwarf2out.c (struct checksum_attributes): Add
15532 at_string_length_bit_size and at_string_length_byte_size fields.
15533 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
15534 and DW_AT_string_length_byte_size.
15535 (die_checksum_ordered): Handle at_string_length_bit_size and
15536 at_string_length_byte_size.
15537 (gen_array_type_die): For dwarf_version >= 5 emit
15538 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
15539 (adjust_string_types): For dwarf_version >= 5 remove
15540 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
15541 (resolve_addr): Likewise.
15542
15543 PR debug/71906
15544 * dwarf2out.c (string_types): New variable.
15545 (gen_array_type_die): Change early_dwarf handling of
15546 DW_AT_string_length, create DW_OP_call4 referencing the
15547 length var temporarily. Handle parameters that are pointers
15548 to string length.
15549 (adjust_string_types): New function.
15550 (gen_subprogram_die): Temporarily set string_types to local var,
15551 call adjust_string_types if needed.
15552 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
15553 New functions.
15554 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
15555
15556 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
15557
15558 * doc/install.texi (*-*-solaris2*): Fix version number and document
15559 requirement on GNU make for building libjava with the Solaris linker.
15560
15561 2016-08-15 Martin Liska <mliska@suse.cz>
15562 Jakub Jelinek <jakub@redhat.com>
15563
15564 PR tree-optimization/72824
15565 * tree-loop-distribution.c (const_with_all_bytes_same)
15566 <case VECTOR_CST>: Fix a typo.
15567
15568 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
15569
15570 PR target/76342
15571 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
15572 Renamed from _mm512_undefined_si512.
15573 (_mm_undefined_si512): New definition.
15574
15575 2016-08-13 Richard Biener <rguenther@suse.de>
15576
15577 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
15578 into PHIs and update the lattice for its def.
15579
15580 2016-08-12 Jakub Jelinek <jakub@redhat.com>
15581
15582 PR c/71512
15583 * ubsan.c (instrument_si_overflow): Pass true instead of false
15584 to gsi_replace.
15585 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
15586 of bbs. Return TODO_cleanup_cfg if any returned true.
15587
15588 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15589
15590 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
15591 ISA 3.0 MTVSRDD instruction.
15592 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
15593 vecperm.
15594
15595 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
15596
15597 PR tree-optimization/71083
15598 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
15599 bitfield access when possible.
15600
15601 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
15602
15603 PR middle-end/71654
15604 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
15605 sign-changing cast from a shorter unsigned type to a wider
15606 signed type.
15607
15608 2016-08-12 Jakub Jelinek <jakub@redhat.com>
15609
15610 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
15611 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
15612 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
15613
15614 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15615
15616 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
15617 Correct costs for vec_construct.
15618
15619 2016-08-12 Bin Cheng <bin.cheng@arm.com>
15620
15621 PR tree-optimization/69848
15622 * tree-vectorizer.h (enum vect_def_type): New condition reduction
15623 type CONST_COND_REDUCTION.
15624 * tree-vect-loop.c (vectorizable_reduction): Support new condition
15625 reudction type CONST_COND_REDUCTION.
15626
15627 2016-08-12 Richard Biener <rguenther@suse.de>
15628
15629 PR tree-optimization/57326
15630 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
15631 returning an SSA name.
15632 (phi_translate_1): When fully_constant_expression returns a NAME
15633 make sure we have a leader for it.
15634
15635 2016-08-12 Martin Liska <mliska@suse.cz>
15636 Adam Fineman <afineman@afineman.com>
15637
15638 * gcov.c (process_file): Create .gcov file when .gcda
15639 file is missing.
15640
15641 2016-08-12 Marek Polacek <polacek@redhat.com>
15642
15643 PR c/7652
15644 * alias.c (find_base_value): Adjust fall through comment.
15645 * cfgexpand.c (expand_debug_expr): Likewise.
15646 * combine.c (find_split_point): Likewise.
15647 (expand_compound_operation): Likewise. Add FALLTHRU.
15648 (make_compound_operation): Adjust fall through comment.
15649 (canon_reg_for_combine): Add FALLTHRU.
15650 (force_to_mode): Adjust fall through comment.
15651 (simplify_shift_const_1): Likewise.
15652 (simplify_comparison): Likewise.
15653 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
15654 FALLTHRU.
15655 * config/aarch64/predicates.md: Likewise.
15656 * config/i386/i386.c (function_arg_advance_32): Likewise.
15657 (ix86_gimplify_va_arg): Likewise.
15658 (print_reg): Likewise.
15659 (ix86_print_operand): Likewise.
15660 (ix86_build_const_vector): Likewise.
15661 (ix86_expand_branch): Likewise.
15662 (ix86_sched_init_global): Adjust fall through comment.
15663 (ix86_expand_args_builtin): Add FALLTHRU.
15664 (ix86_expand_builtin): Likewise.
15665 (ix86_expand_vector_init_one_var): Likewise.
15666 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
15667 (rs6000_adjust_cost): Likewise.
15668 (insn_must_be_first_in_group): Likewise.
15669 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
15670 * dbxout.c (dbxout_symbol): Adjust fall through comment.
15671 * df-scan.c (df_uses_record): Likewise.
15672 * dojump.c (do_jump): Add FALLTHRU.
15673 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
15674 comment.
15675 (resolve_args_picking_1): Adjust fall through comment.
15676 (loc_list_from_tree_1): Likewise.
15677 * expmed.c (make_tree): Likewise.
15678 * expr.c (expand_expr_real_2): Add FALLTHRU.
15679 (expand_expr_real_1): Likewise. Adjust fall through comment.
15680 * fold-const.c (const_binop): Adjust fall through comment.
15681 (fold_truth_not_expr): Likewise.
15682 (fold_cond_expr_with_comparison): Add FALLTHRU.
15683 (fold_binary_loc): Likewise.
15684 (contains_label_1): Adjust fall through comment.
15685 (multiple_of_p): Likewise.
15686 * gcov-tool.c (process_args): Add FALLTHRU.
15687 * genattrtab.c (check_attr_test): Likewise.
15688 (write_test_expr): Likewise.
15689 * genconfig.c (walk_insn_part): Likewise.
15690 * genpreds.c (validate_exp): Adjust fall through comment.
15691 (needs_variable): Likewise.
15692 * gensupport.c (get_alternatives_number): Add FALLTHRU.
15693 (subst_dup): Likewise.
15694 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
15695 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
15696 (gimplify_scan_omp_clauses): Add FALLTHRU.
15697 (goa_stabilize_expr): Likewise.
15698 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
15699 through comment.
15700 * hsa-gen.c (get_address_from_value): Likewise.
15701 * ipa-icf.c (sem_function::hash_stmt): Likewise.
15702 * ira.c (ira_setup_alts): Add FALLTHRU.
15703 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
15704 comment.
15705 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
15706 * opts.c (common_handle_option): Likewise.
15707 * read-rtl.c (read_rtx_code): Likewise.
15708 * real.c (round_for_format): Likewise.
15709 * recog.c (asm_operand_ok): Likewise.
15710 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
15711 * reload1.c (set_label_offsets): Likewise.
15712 (eliminate_regs_1): Likewise.
15713 (reload_reg_reaches_end_p): Likewise.
15714 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
15715 (rtx_cost): Likewise.
15716 * sched-rgn.c (is_exception_free): Likewise.
15717 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
15718 * stor-layout.c (int_mode_for_mode): Likewise.
15719 * toplev.c (print_to_asm_out_file): Likewise.
15720 (print_to_stderr): Likewise.
15721 * tree-cfg.c (gimple_verify_flow_info): Likewise.
15722 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
15723 (chrec_fold_multiply): Likewise.
15724 (evolution_function_is_invariant_rec_p): Likewise.
15725 (for_each_scev_op): Likewise.
15726 * tree-data-ref.c (siv_subscript_p): Likewise.
15727 (get_references_in_stmt): Likewise.
15728 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
15729 (substitute_in_expr): Likewise.
15730 (type_cache_hasher::equal): Likewise.
15731 (walk_type_fields): Likewise.
15732 * var-tracking.c (adjust_mems): Add FALLTHRU.
15733 (set_dv_changed): Adjust fall through comment.
15734 * varasm.c (default_function_section): Add FALLTHRU.
15735
15736 2016-08-12 Marek Polacek <polacek@redhat.com>
15737
15738 PR c/7652
15739 * tree-complex.c (expand_complex_division): Add missing break.
15740
15741 2016-08-12 Richard Biener <rguenther@suse.de>
15742
15743 * passes.c (execute_todo): Do not push/pop TV_TODO.
15744 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
15745 (execute_one_pass): Likewise.
15746 * common.opt (ftime-report-details): New switch.
15747 * doc/invoke.texi (ftime-report-details): Document.
15748 * timevar.h (timer::print_row): Adjust signature.
15749 (timer::all_zero): New static helper.
15750 (timer::child_map_t): New typedef.
15751 (timer::time_var_def): Add children field.
15752 * timevar.c (timer::named_items::print): Adjust.
15753 (timer::~timer): Free timevar recorded children.
15754 (timer::pop_internal): When -ftime-report-details record
15755 time spent in sub-timevars.
15756 (timer::print_row): Adjust.
15757 (timer::print): Print sub-timevar stats, use all_zero.
15758 * timevar.def (TV_TODO): Remove.
15759
15760 2016-08-12 Richard Biener <rguenther@suse.de>
15761
15762 PR tree-optimization/72851
15763 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
15764 worklists to use bitmaps indexed in execution order.
15765 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
15766 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
15767 (cfg_blocks): Make a bitmap.
15768 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
15769 New globals.
15770 (cfg_blocks_empty_p): Adjust.
15771 (cfg_blocks_add): Likewise.
15772 (cfg_blocks_get): Likewise.
15773 (add_ssa_edge): Likewise.
15774 (add_control_edge): Likewise.
15775 (simulate_stmt): Likewise.
15776 (process_ssa_edge_worklist): Likewise.
15777 (simulate_block): Likewise.
15778 (ssa_prop_init): Compute PRE order and stmt UIDs.
15779 (ssa_prop_fini): Adjust.
15780 (ssa_propagate): Adjust.
15781
15782 2016-08-12 Richard Biener <rguenther@suse.de>
15783
15784 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
15785 the currently executable edges have fixed ranges. Always
15786 go through update_value_range.
15787
15788 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
15789
15790 PR debug/63240
15791 * langhooks-def.h
15792 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
15793 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
15794 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
15795 (LANG_HOOKS_DECLS): Add it.
15796 * langhooks.h (struct lang_hooks_for_decls): Add
15797 function_decl_defaulted. Const_tree-ify
15798 function_decl_explicit_p and function_decl_deleted_p.
15799 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
15800 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
15801 also at strict DWARF v5.
15802
15803 PR debug/55641
15804 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
15805 TYPE_QUAL_CONST in reference-typed decls.
15806
15807 PR debug/49366
15808 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
15809 in DW_OP_pieces, just enough to handle pointers to member
15810 functions.
15811 (gen_remaining_tmpl_value_param_die_attribute): Use a location
15812 expression on DWARFv5 if a constant value doesn't work.
15813
15814 2016-08-11 David Malcolm <dmalcolm@redhat.com>
15815
15816 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
15817 * selftest.c (selftest::test_assertions): New function.
15818 (selftest::selftest_c_tests): New function.
15819 * selftest.h (selftest::selftest_c_tests): New declaration.
15820
15821 2016-08-11 Richard Biener <rguenther@suse.de>
15822 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15823
15824 PR rtl-optimization/72855
15825 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
15826
15827 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15828
15829 PR target/72863
15830 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
15831 (vsx_store_<mode>): Likewise.
15832
15833 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
15834
15835 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
15836 TImode CONST_WIDE_INT store.
15837 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
15838
15839 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
15840
15841 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
15842 mode if unaligned SSE load and store are optimal.
15843
15844 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
15845
15846 PR tree-optimization/71083
15847 * tree-predcom.c (ref_at_iteration): Correctly align the
15848 reference type.
15849
15850 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15851
15852 * config/s390/s390-builtin-types.def: Add INT128 types.
15853 * config/s390/s390-builtins.def: Add INT128 variants for the add
15854 sub low-level builtins dealing with TImode.
15855 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
15856 via subreg when expanding a builtin.
15857 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
15858 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
15859 Fix comment.
15860 * config/s390/vecintrin.h: Adjust builtin names accordingly.
15861 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
15862 ("vec_addc<mode>", "vec_addc_u128"): Merge to
15863 "vacc<bhfgq>_<mode>".
15864 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
15865 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
15866 ("vec_subc<mode>", "vec_subc_u128"): Merge to
15867 "vscbi<bhfgq>_<mode>".
15868 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
15869 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
15870
15871 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15872
15873 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
15874
15875 2016-08-11 Bin Cheng <bin.cheng@arm.com>
15876
15877 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
15878 unused declaration.
15879 (vcond<v_cmp_mixed><mode>): Ditto.
15880 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
15881
15882 2016-08-11 Bin Cheng <bin.cheng@arm.com>
15883
15884 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
15885 variable explicitly, also assert on it before use.
15886
15887 2016-08-11 Richard Biener <rguenther@suse.de>
15888
15889 PR tree-optimization/72772
15890 * cfgloopmanip.c (create_preheader): Use split_edge if there
15891 is a single loop entry, avoiding degenerate PHIs.
15892
15893 2016-08-11 Richard Biener <rguenther@suse.de>
15894
15895 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
15896 unconditional TODO_cleanup_cfg.
15897 (pass_thread_jumps::execute): Initialize loops, perform a CFG
15898 cleanup only if we threaded a jump.
15899
15900 2016-08-11 Alan Modra <amodra@gmail.com>
15901
15902 PR target/71680
15903 * lra-constraints.c (simplify_operand_subreg): Allow subreg
15904 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
15905 slow. Emit two reloads for slow mem case, first loading in
15906 fast innermode, then converting to required mode.
15907
15908 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
15909
15910 * config/rs6000/altivec.h (vec_extract_exp): New macro.
15911 (vec_extract_sig): New macro.
15912 (vec_insert_exp): New macro.
15913 (vec_test_data_class): New macro.
15914 (scalar_extract_exp): New macro.
15915 (scalar_extract_sig): New macro.
15916 (scalar_insert_exp): New macro.
15917 (scalar_test_data_class): New macro.
15918 (scalar_test_neg): New macro.
15919 (scalar_cmp_exp_gt): New macro.
15920 (scalar_cmp_exp_lt): New macro.
15921 (scalar_cmp_exp_eq): New macro.
15922 (scalar_cmp_exp_unordered): New macro.
15923 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
15924 to enforce constraint that operand is a 7-bit unsigned literal.
15925 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
15926 for power9 built-ins.
15927 (BU_P9V_VSX_2): Likewise.
15928 (BU_P9V_64BIT_VSX_2): Likewise.
15929 (VSEEDP): Add scalar extract exponent support.
15930 (VSEESP): Add scalar extract signature support.
15931 (VSTDCNDP): Add scalar test negative support.
15932 (VSTDCNSP): Likewise.
15933 (VSIEDP): Add scalar insert exponent support.
15934 (VSCEDPGT): Add scalar compare exponent greater than support.
15935 (VSCEDPLT): Add scalar compare exponent less than support.
15936 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
15937 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
15938 (VSTDCDP): Add scalar test data class support.
15939 (VSTDCSP): Likewise.
15940 (VSEEDP): Add overload support for scalar extract exponent
15941 operation.
15942 (VSESDP): Add overload support for scalar extract signature
15943 operation.
15944 (VSTDCN): Add overload support for scalar test negative
15945 operation.
15946 (VSTDCNDP): Add overload support for scalar test negative
15947 operation.
15948 (VSTDCNSP): Add overload support for scalar test negative
15949 operation.
15950 (VSIEDP): Add overload support for scalar insert exponent
15951 operation.
15952 (VSTDC): Add overload support for scalar test data class
15953 operation.
15954 (VSTDCDP): Add overload support for scalar test data class
15955 operation.
15956 (VSTDCSP): Add overload support for scalar test data class
15957 opreation.
15958 (VSCEDPGT): Add overload support for scalar compare exponent
15959 greater than operation.
15960 (VSCEDPLT): Add overload support for scalar compare exponent
15961 less than operation.
15962 (VSCEDPEQ): Add overload support for scalar compare exponent
15963 test-for-equality operation.
15964 (VSCEDPUO): Add overload support for scalar compare exponent
15965 test-for-unordered operation.
15966 (VEEDP): Add vector extract exponent support.
15967 (VEESP): Likewise.
15968 (VESDP): Add vector extract significand support.
15969 (VESSP): Likewise.
15970 (VIEDP): Add vector insert exponent support.
15971 (VIESP): Likewise.
15972 (VTDCDP): Add vector test data class support.
15973 (VTDCSP): Likewise.
15974 (VES): Add overload support for vector extract significand operation.
15975 (VESDP): Likewise.
15976 (VESSP): Likewise
15977 (VEE): Add overload support for vector extract exponent operation.
15978 (VEEDP): Likewise.
15979 (VEESP): Likewise.
15980 (VTDC): Add overload support for vector test data class operation.
15981 (VTDCDP): Likewise.
15982 (VTDCSP): Likewise.
15983 (VIE): Add overload support for vector insert exponent operation.
15984 (VIEDP): Likewise.
15985 (VIESP): Likewise.
15986 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15987 overloaded binary floating point functions.
15988 (altivec_resolve_overloaded_builtin): Improve error messages to
15989 distinguish between functions not supported in the current
15990 compiler configuration and functions that were invoked with an
15991 invalid parameter combination, and include the built-in function
15992 name in both error messages.
15993 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
15994 New prototype.
15995 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
15996 function.
15997 (rs6000_expand_binop_builtin): Add check to enforce that argument
15998 2 of the test data class operations is a 7-bit unsigned literal.
15999 (rs6000_invalid_builtin): Add code to issue an error message if a
16000 built-in function that requires the power9_vector and -m32
16001 command-line options is compiled without these options.
16002 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
16003 (UNSPEC_VSX_SXSIGDP): New value.
16004 (UNSPEC_VSX_SXSIGPDP): New value.
16005 (UNSPEC_VSX_SIEXPDP): New value.
16006 (UNSPEC_VSX_SCMPEXPDP): New value.
16007 (UNSPEC_VSX_STSTDC): New value.
16008 (UNSPEC_VSX_VXEXP): New value.
16009 (UNSPEC_VSX_VXSIG): New value.
16010 (UNSPEC_VSX_VIEXP): New value.
16011 (UNSPEC_VSX_VTSTDC): New value.
16012 (xsxexpdp): New insn for scalar extract exponent.
16013 (xsxsigdp): New insn for scalar extract significand.
16014 (xsiexpdp): New insn for scalar insert exponent.
16015 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
16016 (*xscmpexpdp): New insn for scalar compare exponents.
16017 (xststdc<Fvsx): New expansion for both single- and
16018 double-precision scalar test data class operations.
16019 (xststdcneg<Fvsx>): New expansion for both single- and
16020 double-precision scalar test for negative value operations.
16021 (*xststdc<Fvsx>): New insn for scalar test data class
16022 operation.
16023 (xvxexp<VSs>): New insn for single- and double-precision
16024 vector extract exponent operation.
16025 (xvxsig<VSs>): New insn for single- and double-precision
16026 vector extract significand operation.
16027 (xviexp<VSs>): New insn for single- and double-precision
16028 vector insert exponent operation.
16029 (xvtstdc<VSs>): New insn for single- and double-precision
16030 vector test data class operation.
16031 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
16032 built-in functions to represent the Power9 binary floating-point
16033 support instructions.
16034
16035 2016-08-10 bin cheng <bin.cheng@arm.com>
16036
16037 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
16038
16039 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
16040 Renlin Li <renlin.li@arm.com>
16041 Bin Cheng <bin.cheng@arm.com>
16042
16043 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
16044 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
16045 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
16046 (aarch64_vcond_internal<mode><mode>): Delete pattern.
16047 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
16048 (vcond<v_cmp_result><mode>): Ditto.
16049 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
16050 (vcondu<mode><mode>): Ditto.
16051 (vcond<v_cmp_mixed><mode>): New pattern.
16052 (vcondu<mode><v_cmp_mixed>): New pattern.
16053 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
16054 of aarch64_vcond_internal.
16055
16056 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
16057 Renlin Li <renlin.li@arm.com>
16058 Bin Cheng <bin.cheng@arm.com>
16059
16060 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
16061 (vec_cmp<mode><v_cmp_result>): New pattern.
16062 (vec_cmpu<mode><mode>): New pattern.
16063 (vcond_mask_<mode><v_cmp_result>): New pattern.
16064
16065 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
16066
16067 PR tree-optimization/71734
16068 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
16069 REF_LOOP, invoke ref_indep_loop_p_1.
16070 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
16071 to ref_indep_loop_p.
16072 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
16073 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
16074 is inside LOOP, do not cache dpendence value for loops with
16075 non-zero SAFELEN.
16076 (ref_indep_loop_p_2): Delete function.
16077 (can_sm_ref_p): Pass LOOP as additional argument to
16078 ref_indep_loop_p.
16079
16080 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
16081
16082 PR target/72853
16083 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
16084 being an offsettable address.
16085
16086 2016-08-10 Martin Liska <mliska@suse.cz>
16087
16088 PR gcov-profile/58306
16089 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
16090 atomic variants of profile update functions.
16091
16092 2016-08-10 Martin Liska <mliska@suse.cz>
16093
16094 Cherry picked (and modified) from google-4_7 branch
16095 2012-12-26 Rong Xu <xur@google.com>
16096 * common.opt (fprofile-update): Add new flag.
16097 * coretypes.h: Define enum profile_update.
16098 * doc/invoke.texi: Document -fprofile-update.
16099 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
16100 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
16101 * tree-profile.c (gimple_init_edge_profiler): Generate
16102 also atomic profiler update.
16103 (gimple_gen_edge_profiler): Likewise.
16104
16105 2016-08-10 David Malcolm <dmalcolm@redhat.com>
16106
16107 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
16108 stack_usage_file to NULL after fclose calls.
16109
16110 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16111
16112 PR target/71873
16113 * reload.c (push_reload): Compute subreg_in_class for
16114 subregs of constants and plus expressions. Remove special
16115 handling of SYMBOL_REFs.
16116
16117 2016-08-10 Alan Modra <amodra@gmail.com>
16118
16119 PR target/71680
16120 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
16121 SImode for TARGET_E500_DOUBLE when given SImode.
16122
16123 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
16124
16125 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
16126 unused variable __O.
16127
16128 2016-08-09 Martin Liska <mliska@suse.cz>
16129
16130 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
16131 _gcov_reset to __gcov_reset.
16132 * doc/gcov-tool.texi: Fix typo.
16133
16134 2016-08-09 Martin Liska <mliska@suse.cz>
16135
16136 * value-prof.c (gimple_divmod_values_to_profile): Do not
16137 instrument MOD histogram if a value is not a SSA name.
16138
16139 2016-08-09 Martin Liska <mliska@suse.cz>
16140
16141 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
16142 values.
16143
16144 2016-08-09 Renlin Li <renlin.li@arm.com>
16145
16146 PR middle-end/64971
16147 * calls.c (prepare_call_address): Convert funexp to Pmode when
16148 necessary.
16149 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
16150 (sibcall_value): Likewise.
16151
16152 2016-08-09 Marek Polacek <polacek@redhat.com>
16153
16154 PR c/7652
16155 * cselib.c (cselib_expand_value_rtx_1): Add return.
16156 * gengtype.c (dbgprint_count_type_at): Likewise.
16157 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
16158 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
16159
16160 2016-08-09 Martin Jambor <mjambor@suse.cz>
16161
16162 PR ipa/71981
16163 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
16164 if instance is a MEM_REF.
16165
16166 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
16167
16168 PR target/72843
16169 * config/i386/i386.md (*movtf_internal): Use
16170 lra_in_progress || reload_completed instead of !can_create_pseudo_p
16171 in the insn constraint.
16172 (*movxf_internal): Ditto.
16173 (*movdf_internal): Ditto.
16174 (*movsf_internal): Ditto.
16175
16176 2016-08-09 Bin Cheng <bin.cheng@arm.com>
16177
16178 PR tree-optimization/72772
16179 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
16180 for expanded base.
16181
16182 2016-08-09 Bin Cheng <bin.cheng@arm.com>
16183
16184 PR tree-optimization/72772
16185 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
16186 parameter STOP.
16187 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
16188 parameter STOP and update calls. Move expand_simple_operations
16189 function call from here...
16190 (simplify_using_initial_conditions): ...to here. Delete parameter
16191 STOP.
16192 (tree_simplify_using_condition): Delete parameter STOP.
16193 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
16194 simplify_using_initial_conditions.
16195
16196 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
16197
16198 PR c/65345
16199 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
16200 Use create_tmp_var_raw instead of create_tmp_var.
16201
16202 2016-08-09 Richard Biener <rguenther@suse.de>
16203
16204 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
16205 Treat same SSA names related.
16206
16207 2016-08-09 Jakub Jelinek <jakub@redhat.com>
16208
16209 PR tree-optimization/72824
16210 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
16211 real_zerop is not negative.
16212
16213 2016-08-09 Richard Biener <rguenther@suse.de>
16214
16215 PR tree-optimization/71802
16216 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
16217 all merge opportunities with the predecessor.
16218
16219 2016-08-09 Richard Biener <rguenther@suse.de>
16220
16221 PR ipa/68273
16222 * ipa-prop.c (ipa_modify_formal_parameters): Build
16223 parameter types with natural alignment also for the
16224 over-aligned case.
16225
16226 2016-08-08 Andi Kleen <ak@linux.intel.com>
16227
16228 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
16229
16230 2016-08-08 David Malcolm <dmalcolm@redhat.com>
16231
16232 PR c/64955
16233 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
16234 do-nothing langhook.
16235 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
16236 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
16237 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
16238 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
16239
16240 2016-08-08 David Malcolm <dmalcolm@redhat.com>
16241
16242 PR bootstrap/72844
16243 * input.c: Ensure that HAVE_ICONV is defined.
16244
16245 2016-08-08 Jakub Jelinek <jakub@redhat.com>
16246
16247 PR middle-end/72781
16248 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
16249 private vars for lastprivate and for linear iterator.
16250
16251 PR middle-end/68762
16252 * omp-simd-clone.c: Include varasm.h.
16253 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
16254 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
16255 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
16256 update function name.
16257
16258 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
16259
16260 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
16261 (avr_diagnose_devicespecs_error): Remove.
16262 (avr_devicespecs_file): Remove composing absolute path for specfile
16263 and its verbose info. Remove conditions to check specs-file,
16264
16265 2016-08-08 Jakub Jelinek <jakub@redhat.com>
16266
16267 PR rtl-optimization/72821
16268 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
16269 just return false for them.
16270
16271 2016-08-08 Alan Modra <amodra@gmail.com>
16272
16273 PR target/72771
16274 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
16275 toc refs created during reload. Update function comment.
16276
16277 2016-08-08 Alan Modra <amodra@gmail.com>
16278
16279 PR target/72802
16280 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
16281 alternatives. Put loads first, then stores, and reg/reg moves
16282 within same class later. Delete attr length.
16283
16284 2016-08-08 Alan Modra <amodra@gmail.com>
16285
16286 PR target/72802
16287 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
16288 (mem_operand_ds_form): New predicate.
16289 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
16290 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
16291 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
16292 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
16293 (extendsfdf2_fpr): Replace o constraint with wY.
16294
16295 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
16296
16297 * tree-ssa-threadbackward.c: Include tree-inline.h
16298 (profitable_jump_thread_path): Use estimate_num_insns to estimate
16299 size of copied block; for cold paths reduce duplication.
16300 (find_jump_threads_backwards): Remove redundant tests.
16301 (pass_thread_jumps::gate): Enable for -Os.
16302
16303 2016-08-07 Jakub Jelinek <jakub@redhat.com>
16304
16305 PR c/72816
16306 * stor-layout.c (layout_decl): Fix up formatting.
16307 (relayout_decl): Allow DECL to be FIELD_DECL.
16308
16309 2016-08-07 Alan Modra <amodra@gmail.com>
16310
16311 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
16312
16313 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
16314
16315 * data-streamer-in.c (streamer_read_wide_int): New.
16316 (streamer_read_widest_int): Renamed function.
16317 * data-streamer-out.c (streamer_write_wide_int): New
16318 (streamer_write_widest_int): Renamed function.
16319 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
16320 data-stream-in.c.
16321 (input_cfg): Call renamed function.
16322 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
16323 data-stream-out.c.
16324 (output_cfg): Call renamed function.
16325 * data-streamer.h: Add declarations.
16326
16327 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16328
16329 * tree-ssa-ccp.c (extend_mask): New param sgn.
16330 Remove ORing with wi::mask.
16331 (get_default_value): Adjust call to extend_mask to pass sign.
16332 (evaluate_stmt): Likewise.
16333
16334 2016-08-06 Jakub Jelinek <jakub@redhat.com>
16335
16336 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
16337 INT64_MAX.
16338
16339 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16340
16341 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
16342 transform if operand's type is pointer to function or method.
16343
16344 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
16345
16346 PR tree-optimization/18046
16347 * tree-ssa-threadedge.c: Include cfganal.h.
16348 (simplify_control_statement_condition): If simplifying a
16349 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
16350 with the dominating ASSERT_EXPR before handing it off to VRP.
16351 Mention that a CASE_LABEL_EXPR may be returned.
16352 (thread_around_empty_blocks): Adjust to handle
16353 simplify_control_statement_condition() returning a
16354 CASE_LABEL_EXPR.
16355 (thread_through_normal_block): Likewise.
16356 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
16357 a switch statement by trying to determine which case label
16358 will be taken.
16359
16360 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
16361
16362 PR rtl-optimization/69847
16363 * lra-constraints.c (process_invariant_for_inheritance): Save
16364 pattern instead of src.
16365 (remove_inheritance_pseudos): Use the pattern. Add assert.
16366
16367 2016-08-05 David Malcolm <dmalcolm@redhat.com>
16368
16369 * input.c (string_concat::string_concat): New constructor.
16370 (string_concat_db::string_concat_db): New constructor.
16371 (string_concat_db::record_string_concatenation): New method.
16372 (string_concat_db::get_string_concatenation): New method.
16373 (string_concat_db::get_key_loc): New method.
16374 (class auto_cpp_string_vec): New class.
16375 (get_substring_ranges_for_loc): New function.
16376 (get_source_range_for_substring): New function.
16377 (get_num_source_ranges_for_substring): New function.
16378 (class selftest::lexer_test_options): New class.
16379 (struct selftest::lexer_test): New struct.
16380 (class selftest::ebcdic_execution_charset): New class.
16381 (selftest::ebcdic_execution_charset::s_singleton): New variable.
16382 (selftest::lexer_test::lexer_test): New constructor.
16383 (selftest::lexer_test::~lexer_test): New destructor.
16384 (selftest::lexer_test::get_token): New method.
16385 (selftest::assert_char_at_range): New function.
16386 (ASSERT_CHAR_AT_RANGE): New macro.
16387 (selftest::assert_num_substring_ranges): New function.
16388 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
16389 (selftest::assert_has_no_substring_ranges): New function.
16390 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
16391 (selftest::test_lexer_string_locations_simple): New function.
16392 (selftest::test_lexer_string_locations_ebcdic): New function.
16393 (selftest::test_lexer_string_locations_hex): New function.
16394 (selftest::test_lexer_string_locations_oct): New function.
16395 (selftest::test_lexer_string_locations_letter_escape_1): New function.
16396 (selftest::test_lexer_string_locations_letter_escape_2): New function.
16397 (selftest::test_lexer_string_locations_ucn4): New function.
16398 (selftest::test_lexer_string_locations_ucn8): New function.
16399 (selftest::uint32_from_big_endian): New function.
16400 (selftest::test_lexer_string_locations_wide_string): New function.
16401 (selftest::uint16_from_big_endian): New function.
16402 (selftest::test_lexer_string_locations_string16): New function.
16403 (selftest::test_lexer_string_locations_string32): New function.
16404 (selftest::test_lexer_string_locations_u8): New function.
16405 (selftest::test_lexer_string_locations_utf8_source): New function.
16406 (selftest::test_lexer_string_locations_concatenation_1): New
16407 function.
16408 (selftest::test_lexer_string_locations_concatenation_2): New
16409 function.
16410 (selftest::test_lexer_string_locations_concatenation_3): New
16411 function.
16412 (selftest::test_lexer_string_locations_macro): New function.
16413 (selftest::test_lexer_string_locations_stringified_macro_argument):
16414 New function.
16415 (selftest::test_lexer_string_locations_non_string): New function.
16416 (selftest::test_lexer_string_locations_long_line): New function.
16417 (selftest::test_lexer_char_constants): New function.
16418 (selftest::input_c_tests): Call the new test functions once per
16419 case within the line_table test matrix.
16420 * input.h (struct string_concat): New struct.
16421 (struct location_hash): New struct.
16422 (class string_concat_db): New class.
16423 * substring-locations.h: New header.
16424
16425 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
16426
16427 PR tree-optimization/72810
16428 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
16429 the type of the case labels when truncating.
16430
16431 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
16432
16433 PR Target/72819
16434 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
16435 (aarch64_fp16_ptr_type_node): Likewise.
16436 * config/aarch64/aarch64-simd-builtins.c
16437 (aarch64_fp16_ptr_type_node): Define.
16438 (aarch64_init_fp16_types): New, refactored out of...
16439 (aarch64_init_builtins): ...here, update to call
16440 aarch64_init_fp16_types.
16441 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
16442 HFmode.
16443 (aapcs_vfp_sub_candidate): Likewise.
16444
16445 2016-08-05 Martin Liska <mliska@suse.cz>
16446 Joshua Cranmer <Pidgeot18@gmail.com>
16447
16448 * gcov.c (line_t::has_block): New function.
16449 (enum loop_type): New enum.
16450 (handle_cycle): New function.
16451 (unblock): Likewise.
16452 (circuit): Likewise.
16453 (get_cycles_count): Likewise.
16454 (accumulate_line_counts): Use new loop detection algorithm.
16455
16456 2016-08-05 Martin Liska <mliska@suse.cz>
16457
16458 * gcov.c (output_intermediate_file): Rename
16459 function_info::line_next to next_file_fn.
16460 (process_file): Likewise.
16461 (read_graph_file): Likewise.
16462 (accumulate_line_counts): Likewise.
16463 (output_lines): Likewise.
16464
16465 2016-08-05 Richard Biener <rguenther@suse.de>
16466
16467 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
16468 restriction on threading to a loop header.
16469
16470 2016-08-05 Richard Biener <rguenther@suse.de>
16471
16472 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
16473 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
16474 adjust loop info accordingly.
16475
16476 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
16477
16478 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
16479 before folding call to __builtin_constant_p with parameters to false.
16480
16481 2016-08-05 Alan Modra <amodra@gmail.com>
16482
16483 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
16484 code accidentally committed 2016-05-02 providing class when given
16485 NO_REGS.
16486
16487 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
16488
16489 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
16490 the case label ranges that partially overlap with OP's value
16491 range.
16492
16493 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
16494
16495 PR target/72805
16496 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
16497 Cast builtin function result to __mmask16 instead of __mmask8.
16498 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
16499 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
16500 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
16501
16502 2016-08-04 David Malcolm <dmalcolm@redhat.com>
16503
16504 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
16505 (ASSERT_TRUE_AT): New macro.
16506 (ASSERT_FALSE): Reimplement in terms of...
16507 (ASSERT_FALSE_AT): New macro.
16508 (ASSERT_STREQ_AT): Fix typo in comment.
16509
16510 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
16511
16512 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
16513 labels are exhaustive, designate the label with the widest
16514 range to be the default label.
16515
16516 2016-08-04 Andrew Pinski <apinski@cavium.com>
16517
16518 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
16519 (thunderx_tunings): Use thunderx_vector_cost instead of
16520 generic_vector_cost.
16521
16522 2016-08-04 Martin Liska <mliska@suse.cz>
16523
16524 * gcov.c (main): Fix GNU coding style.
16525 (output_intermediate_file): Likewise.
16526 (process_file): Likewise.
16527 (generate_results): Likewise.
16528 (release_structures): Likewise.
16529 (create_file_names): Likewise.
16530 (find_source): Likewise.
16531 (read_graph_file): Likewise.
16532 (find_exception_blocks): Likewise.
16533 (canonicalize_name): Likewise.
16534 (make_gcov_file_name): Likewise.
16535 (mangle_name): Likewise.
16536 (accumulate_line_counts): Likewise.
16537 (output_branch_count): Likewise.
16538 (read_line): Likewise.
16539
16540 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
16541
16542 PR rtl-optimization/71779
16543 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
16544 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
16545 or if it was truncated.
16546
16547 PR rtl-optimization/70903
16548 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
16549
16550 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
16551
16552 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
16553 accessing SSA_NAME_PTR_INFO.
16554
16555 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
16556
16557 PR 70677
16558 * common/config/avr/avr-common.c (avr_option_optimization_table)
16559 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
16560
16561 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
16562
16563 PR 55181
16564 * config/avr/avr.md: New pattern to work around do_store_flag
16565 generating shift instructions for bit extractions.
16566
16567 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
16568
16569 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
16570 BITMAP_ALLOC.
16571 (add_equivalence): Likewise.
16572 (get_value_range): Allocate value range with vrp_value_range_pool.
16573 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
16574 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
16575
16576 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
16577
16578 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
16579 the default for the rs6000 port.
16580
16581 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
16582
16583 PR middle-end/71876
16584 * calls.c (special_function_p): Remove special handling of
16585 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
16586 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
16587 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
16588
16589 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
16590
16591 PR middle-end/72778
16592 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
16593 Don't stop on regular insns.
16594
16595 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
16596
16597 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
16598 size to DImode boundary.
16599 (nvptx_propagate): Likewise.
16600
16601 2016-08-03 Alan Modra <amodra@gmail.com>
16602
16603 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
16604 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
16605 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
16606 from -mefficient-unaligned-vector. Note that this affects fp too.
16607
16608 2016-08-03 Alan Modra <amodra@gmail.com>
16609
16610 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
16611 cost more.
16612
16613 2016-08-03 Alan Modra <amodra@gmail.com>
16614
16615 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
16616 to a reg. Localize vars.
16617
16618 2016-08-03 Alan Modra <amodra@gmail.com>
16619
16620 * config/rs6000/rs6000.opt: Remove negatives from help strings
16621 and comments.
16622
16623 2016-08-03 Alan Modra <amodra@gmail.com>
16624
16625 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
16626 Delete duplicated code.
16627
16628 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
16629
16630 PR middle-end/72778
16631 * lra-spills.c (regno_in_use_p): New.
16632 (lra_final_code_change): Use it.
16633
16634 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
16635
16636 PR rtl-optimization/69847
16637 * lra-int.h (struct lra-reg): Use restore_rtx instead of
16638 restore_regno.
16639 (lra_rtx_hash): New.
16640 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
16641 of restore_regno.
16642 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
16643 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
16644 * lra-spills.c (lra_final_code_change): Don't delete insn when the
16645 next insn is USE with the same reg as the current insn source.
16646 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
16647 of restore_regno.
16648 (lra_constraints_init): Call initiate_invariants.
16649 (lra_constraints_finish): Call finish_invariants.
16650 (struct invariant, invariant_t, invariant_ptr_t): New.
16651 (const_invariant_ptr_t, invariants, invariants_pool): New.
16652 (invariant_table, invariant_hash, invariant_eq_p): New.
16653 (insert_invariant, initiate_invariants, finish_invariants): New.
16654 (clear_invariants, invalid_invariant_regs): New.
16655 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
16656 instead of restore_regno.
16657 (invariant_p, process_invariant_for_inheritance): New.
16658 (inherit_in_ebb): Implement invariant inheritance.
16659 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
16660 (remove_inheritance_pseudos): Implement undoing invariant
16661 inheritance.
16662 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
16663 instead of restore_regno.
16664 * lra-assigns.c (regno_live_length): New.
16665 (reload_pseudo_compare_func): Use regno_live_length.
16666 (assign_by_spills): Use restore_rtx instead of restore_regno.
16667 (lra_assign): Ditto. Initiate regno_live_length.
16668
16669 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
16670
16671 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
16672 __builtin_aarch64_fmindf.
16673
16674 2016-08-02 Bin Cheng <bin.cheng@arm.com>
16675
16676 PR tree-optimization/34114
16677 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
16678 information for more control IVs.
16679
16680 2016-08-02 Bin Cheng <bin.cheng@arm.com>
16681
16682 PR tree-optimization/34114
16683 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
16684 PLUS_EXPR case. Handle SSA_NAME case.
16685
16686 2016-08-02 Tamar Christina <tamar.christina@arm.com>
16687
16688 * config/aarch64/aarch64-simd-builtins.def
16689 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
16690 (__builtin_aarch64_fmaxdf): Likewise.
16691 (__builtin_aarch64_smin_nandf): Likewise.
16692 (__builtin_aarch64_smax_nandf): Likewise.
16693 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
16694 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
16695 (<fmaxmin><mode>3): ...this.
16696 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
16697 (vminnm_f64): Likewise.
16698 (vmin_f64): Likewise.
16699 (vmax_f64): Likewise.
16700 * config/aarch64/iterators.md (FMAXMIN): Merge with...
16701 (FMAXMIN_UNS): ...this.
16702 (fmaxmin): Merged with
16703 (fmaxmin_op): ...this...
16704 (maxmin_uns_op): ...in to this.
16705
16706 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
16707
16708 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16709 Add support for vec_extract on vector float, vector int, vector
16710 short, and vector char vector types.
16711 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
16712 vector float, vector int, vector short, and vector char
16713 optimizations on 64-bit ISA 2.07 systems for both constant and
16714 variable element numbers.
16715 (rs6000_split_vec_extract_var): Likewise.
16716 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
16717 Altivec registers on ISA 2.07 and above.
16718 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
16719 which never was matched due to the split occuring before register
16720 allocation (and the code would not have worked on little endian
16721 systems if it did match). Allow extracts to go to the Altivec
16722 registers if ISA 2.07 (power8). Change from using "" around the
16723 C++ code to using {}'s.
16724 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
16725 vec_extracts when the vector is in memory.
16726 (vsx_extract_v4sf_var): New insn to optimize vector float
16727 vec_extracts when the element number is variable on 64-bit ISA
16728 2.07 systems.
16729 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
16730 for 64-bit ISA 2.07 as well as ISA 3.0.
16731 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
16732 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
16733 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
16734 optimize vector int, vector short, and vector char vec_extracts
16735 when the vector is in memory.
16736 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
16737 optimize vector int, vector short, and vector char vec_extracts
16738 when the element number is variable.
16739
16740 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
16741
16742 PR target/71948
16743 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
16744 does not overlap with other symbol flags.
16745
16746 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
16747
16748 * config/aarch64/aarch64.h (aarch64_frame):
16749 Remove padding0 and hardfp_offset. Add locals_offset,
16750 initial_adjust, callee_adjust, callee_offset and final_adjust.
16751 * config/aarch64/aarch64.c (aarch64_layout_frame):
16752 Remove unused padding0 and hardfp_offset initializations.
16753 Choose frame layout and set frame variables accordingly.
16754 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
16755 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
16756 (aarch64_pop_regs): Likewise.
16757 (aarch64_expand_prologue): Remove all decision code, just emit
16758 prolog according to frame variables.
16759 (aarch64_expand_epilogue): Remove all decision code, just emit
16760 epilog according to frame variables.
16761 (aarch64_initial_elimination_offset): Use offset to local/arg area.
16762
16763 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
16764
16765 PR target/72748
16766 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
16767 fix_debug_reg_uses after changing source register mode to
16768 V1TImode if source register is undefined.
16769
16770 2015-08-01 Alan Hayward <alan.hayward@arm.com>
16771
16772 PR tree-optimization/71818
16773 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
16774 with non invariant evolutions
16775
16776 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
16777
16778 PR target/72767
16779 * config/avr/avr.md (length) [branch]: Correct insn length
16780 attribute for forward branches.
16781
16782 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
16783
16784 * doc/extend.texi (AVR Built-in Functions): Document
16785 __builtin_avr_nops.
16786 * config/avr/builtins.def (NOPS): New.
16787 * config/avr/avr.c (avr_expand_nops): New static function.
16788 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
16789
16790 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16791
16792 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
16793 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
16794 addresses.
16795
16796 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
16797
16798 * config/aarch64/aarch64.c (vulcan_tunings): Update
16799 vulcan L1 cache_line_size.
16800
16801 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
16802
16803 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
16804 function that takes a vector memory address, a hard register, an
16805 element number and a temporary base register, and recreates an
16806 address that points to the appropriate element within the vector.
16807 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
16808 (rs6000_split_vec_extract_var): Add support for the target of a
16809 vec_extract with variable element number being a scalar memory
16810 location.
16811 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
16812 swappable.
16813 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
16814 vsx_extract_<mode>_load insn with a new insn that optimizes
16815 storing either element to a memory location, using scratch
16816 registers to pick apart the vector and reconstruct the address.
16817 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
16818 (vsx_extract_<mode>_store): Rework alternatives to more correctly
16819 support Altivec registers. Add support for ISA 3.0 Altivec d-form
16820 store instruction.
16821 (vsx_extract_<mode>_var): Add support for extracting a variable
16822 element number from memory.
16823
16824 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
16825
16826 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
16827 when testing for compares against constants of the form 0xabab.
16828
16829 2016-07-29 Bin Cheng <bin.cheng@arm.com>
16830
16831 PR tree-optimization/57558
16832 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
16833 function.
16834 (vect_loop_versioning): Support versioning with niter assumptions.
16835 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
16836 (vect_get_loop_niters): New parameter. Reimplement to support
16837 assumptions in loop niter info.
16838 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
16839 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
16840 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
16841 Support loop versioning for niters.
16842 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
16843 (vect_free_loop_info_assumptions): New function.
16844 (vectorize_loops): Free loop niter info for loops with flag
16845 LOOP_F_ASSUMPTIONS set if vectorization failed.
16846 * tree-vectorizer.h (struct _loop_vec_info): New field
16847 num_iters_assumptions.
16848 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
16849 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
16850 (LOOP_REQUIRES_VERSIONING): New macro.
16851 (vect_free_loop_info_assumptions): New decl.
16852
16853 2016-07-29 Bin Cheng <bin.cheng@arm.com>
16854
16855 * cfgloop.h (struct loop): New field constraints.
16856 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
16857 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
16858 functions.
16859 * cfgloop.c (alloc_loop): Initialize new field.
16860 * cfgloopmanip.c (copy_loop_info): Copy constraints.
16861 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
16862 Adjust niter analysis wrto loop constraints.
16863 * doc/loop.texi (@node Number of iterations): Add description for loop
16864 constraints.
16865
16866 2016-07-29 Marek Polacek <polacek@redhat.com>
16867
16868 PR c/7652
16869 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
16870 (ix86_expand_round_builtin): Likewise.
16871
16872 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
16873 Georg-Johann Lay <avr@gjlay.de>
16874
16875 PR rtl-optimization/71976
16876 * combine.c (get_last_value): Return 0 if the argument for which
16877 the function is called has a wider mode than the recorded value.
16878
16879 2016-07-29 Marek Polacek <polacek@redhat.com>
16880
16881 PR c/7652
16882 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
16883 (altivec_expand_st_builtin): Likewise.
16884
16885 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
16886
16887 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
16888 introduced in r238381.
16889
16890 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
16891
16892 PR middle-end/68217
16893 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
16894 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
16895
16896 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
16897
16898 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
16899 New declaration.
16900 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16901 Add support for vec_extract of vector double or vector long having
16902 a variable element number on 64-bit ISA 2.07 systems or newer.
16903 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
16904 Likewise.
16905 (rs6000_split_vec_extract_var): New function to split a
16906 vec_extract built-in function with variable element number.
16907 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
16908 swappable.
16909 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
16910 (UNSPEC_VSX_EXTRACT): Likewise.
16911 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
16912 direct move instructions to be generated on 64-bit ISA 2.07
16913 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
16914 instruction.
16915 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
16916 arguments for vec_extract variable element.
16917 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
16918 vec_extract with variable element on V2DFmode and V2DImode
16919 vectors.
16920 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
16921 -mupper-regs-df requirement, since it isn't needed.
16922 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
16923 do direct moves on 64-bit systems, which allows optimization of
16924 vec_extract on 64-bit ISA 2.07 systems and newer.
16925
16926 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
16927 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
16928
16929 * config/aarch64/aarch64.md
16930 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
16931 statement and type.
16932 (<optab>qihi2_aarch64): Likewise, and split into two.
16933 (extendqihi2_aarch64): New.
16934 (zero_extendqihi2_aarch64): New.
16935 * config/aarch64/iterators.md (ldrxt): Remove.
16936 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
16937 uxtb/uxth.
16938
16939 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
16940
16941 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
16942
16943 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
16944
16945 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
16946 (aarch64_push_reg): New function to push 1 or 2 registers.
16947 (aarch64_pop_reg): New function to pop 1 or 2 registers.
16948 (aarch64_expand_prologue): Use aarch64_push_regs.
16949 (aarch64_expand_epilogue): Use aarch64_pop_regs.
16950
16951 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
16952
16953 PR tree-optimization/71734
16954 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
16955 attribute instead of REF_LOOP and use it.
16956 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
16957 set it for Loops having non-zero safelen attribute.
16958 (ref_indep_loop_p): Pass zero as initial value for safelen.
16959
16960 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
16961
16962 PR middle-end/72657
16963 PR target/72683
16964 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
16965 call using chkp_gimple_call_builtin_p.
16966 (chkp_copy_bounds_for_assign): Likewise.
16967
16968 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16969
16970 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
16971 * config/arm/arm-protos.h (struct tune_params): Likewise.
16972 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
16973 (cortex_a9_sched_adjust_cost): Likewise.
16974 (fa726te_sched_adjust_cost): Likewise.
16975 (arm_adjust_cost): Likewise.
16976 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
16977 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
16978 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
16979 * config/i386/i386.c (ix86_adjust_cost): Likewise.
16980 * config/ia64/ia64.c: Likewise.
16981 * config/m68k/m68k.c: Likewise.
16982 * config/mep/mep.c (mep_adjust_cost): Likewise.
16983 * config/microblaze/microblaze.c (microblaze_adjust_cost):
16984 * Likewise.
16985 * config/mips/mips.c (mips_adjust_cost): Likewise.
16986 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
16987 * Likewise.
16988 * config/pa/pa.c (pa_adjust_cost): Likewise.
16989 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
16990 (rs6000_debug_adjust_cost): Likewise.
16991 * config/sh/sh.c (sh_adjust_cost): Likewise.
16992 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
16993 (hypersparc_adjust_cost): Likewise.
16994 (sparc_adjust_cost): Likewise.
16995 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
16996 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
16997 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
16998 * Likewise.
16999 * config/visium/visium.c (visium_adjust_cost): Likewise.
17000 * doc/tm.texi: Regenerate.
17001 * haifa-sched.c (dep_cost_1): Adjust.
17002 * target.def: Merge adjust_cost and adjust_cost_2.
17003
17004 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17005
17006 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
17007
17008 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17009
17010 * store-motion.c (struct st_expr): Make pattern_regs a vector.
17011 (extract_mentioned_regs): Append to a vector instead of
17012 returning a rtx_expr_list.
17013 (st_expr_entry): Adjust.
17014 (free_st_expr_entry): Likewise.
17015 (store_ops_ok): Likewise.
17016 (store_killed_in_insn): Likewise.
17017 (find_moveable_store): Likewise.
17018
17019 2016-07-28 Martin Liska <mliska@suse.cz>
17020
17021 PR gcov-profile/68025
17022 * tree-profile.c (tree_profiling): Respect
17023 no_profile_instrument_function attribute.
17024 * doc/extend.texi: Document no_profile_instrument_function
17025 attribute.
17026
17027 2016-07-28 Martin Liska <mliska@suse.cz>
17028
17029 PR rtl-optimization/70944
17030 * combine.c (make_compound_operation):
17031 Do not allow make_compound_operation for vector mode
17032
17033 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
17034
17035 PR middle-end/71994
17036 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
17037 before calling get_ops.
17038
17039 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
17040
17041 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
17042 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
17043 (BITS_PER_UNIT_LOG): Remove.
17044 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
17045 * expr.c (expand_assignment): Likewise.
17046 * stor-layout.c (initialize_sizetypes): Likewise.
17047
17048 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
17049
17050 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
17051 signature of rs6000_expand_vector_extract so that the element
17052 number is a RTX instead of a constant integer.
17053 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
17054 Likewise.
17055 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
17056 (altivec_expand_vec_ext_builtin): Likewise.
17057 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
17058 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
17059 MFVSRLD instruction.
17060
17061 2016-07-27 David Malcolm <dmalcolm@redhat.com>
17062
17063 * input.c (get_pure_location): Move here from tree.c.
17064 (make_location): Likewise. Add header comment.
17065 (selftest::test_accessing_ordinary_linemaps): Verify
17066 pure_location_p, make_location, get_location_from_adhoc_loc and
17067 get_range_from_loc.
17068 * input.h (get_pure_location): Move declaration here from tree.h.
17069 (get_finish): Likewise for inline function.
17070 (make_location): Likewise for declaration.
17071 * tree.c (get_pure_location): Move to input.c.
17072 (make_location): Likewise.
17073 * tree.h (get_pure_location): Move declaration to tree.h.
17074 (get_finish): Likewise for inline function.
17075 (make_location): Likewise for declaration.
17076
17077 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17078
17079 PR middle-end/71078
17080 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
17081
17082 2016-07-27 David Malcolm <dmalcolm@redhat.com>
17083
17084 * system.h (STATIC_ASSERT): Use static_assert if building
17085 with C++11 onwards.
17086
17087 2016-07-27 Richard Biener <rguenther@suse.de>
17088
17089 PR tree-optimization/72517
17090 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
17091 Revert change to not compute read-read dependences.
17092
17093 2016-07-27 Richard Biener <rguenther@suse.de>
17094
17095 * predict.c (set_even_probabilities): Make nedges unsigned.
17096
17097 2016-07-27 Martin Liska <mliska@suse.cz>
17098
17099 * predict.c (set_even_probabilities): Handle unlikely edges.
17100 (combine_predictions_for_bb): Likewise.
17101
17102 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
17103
17104 PR target/71869
17105 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
17106 __float128 support when we don't have hardware support, so that
17107 the IEEE built-in functions like isgreater, first call __unordkf3
17108 to make sure neither operand is a NaN, and if both operands are
17109 ordered, do the normal comparison.
17110
17111 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
17112
17113 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
17114 name.
17115 (extract_code_and_val_from_cond_with_ops): Verify that name is
17116 either cond_op0 or cond_op1.
17117
17118 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
17119
17120 PR tree-optimization/18046
17121 * genmodes.c (emit_mode_size_inline): Emit an assert that
17122 verifies that mode is a valid array index.
17123 (emit_mode_nuinits_inline): Likewise.
17124 (emit_mode_inner_inline): Likewise.
17125 (emit_mode_unit_size_inline): Likewise.
17126 (emit_mode_unit_precision_inline): Likewise.
17127 * tree-vrp.c: Include params.h.
17128 (find_switch_asserts): Register edge assertions for the default
17129 label which correspond to the anti-ranges of each case label.
17130 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
17131 * doc/invoke.texi: Document it.
17132
17133 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17134
17135 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
17136 and unnecessary call to gimple_bb.
17137
17138 2016-07-26 Richard Biener <rguenther@suse.de>
17139
17140 PR rtl-optimization/71984
17141 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
17142 for VOIDmode.
17143
17144 2016-07-26 Richard Biener <rguenther@suse.de>
17145
17146 PR middle-end/72517
17147 * expmed.c (extract_bit_field_1): Constrain the vector mode
17148 with element size matching the extraction mode size when
17149 choosing a better vector mode to do the extraction from.
17150
17151 2016-07-26 Richard Biener <rguenther@suse.de>
17152 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17153
17154 PR middle-end/70920
17155 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
17156 pattern.
17157
17158 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17159
17160 * tree-ssa-structalias.c (struct scc_info): Change types of
17161 members to auto_sbitmap and auto_vec.
17162 (scc_info::scc_info): New constructor.
17163 (scc_info::~scc_info): New destructor.
17164 (init_scc_info): Remove.
17165 (free_scc_info): Remove.
17166 (find_indirect_cycles): Adjust.
17167 (perform_var_substitution): Likewise.
17168 (free_var_substitution_info): Likewise.
17169
17170 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17171
17172 * tree-outof-ssa.c (struct elim_graph): Change type of members
17173 to auto_vec and auto_sbitmap.
17174 (elim_graph::elim_graph): New constructor.
17175 (delete_elim_graph): Remove.
17176 (expand_phi_nodes): Adjust.
17177
17178 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17179
17180 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
17181 (new_elim_graph): Adjust.
17182 (clear_elim_graph): Likewise.
17183 (delete_elim_graph): Likewise.
17184 (elim_graph_size): Likewise.
17185 (elim_graph_add_node): Likewise.
17186 (elim_graph_add_edge): Likewise.
17187 (elim_graph_remove_succ_edge): Likewise.
17188 (eliminate_name): Likewise.
17189 (eliminate_build): Likewise.
17190 (elim_forward): Likewise.
17191 (elim_unvisited_predecessor): Likewise.
17192 (elim_backward): Likewise.
17193 (elim_create): Likewise.
17194 (eliminate_phi): Likewise.
17195 (expand_phi_nodes): Likewise.
17196
17197 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17198
17199 * bt-load.c (compute_out): Use auto_sbitmap class.
17200 (link_btr_uses): Likewise.
17201 * cfganal.c (mark_dfs_back_edges): Likewise.
17202 (post_order_compute): Likewise.
17203 (inverted_post_order_compute): Likewise.
17204 (pre_and_rev_post_order_compute_fn): Likewise.
17205 (single_pred_before_succ_order): Likewise.
17206 * cfgexpand.c (pass_expand::execute): Likewise.
17207 * cfgloop.c (verify_loop_structure): Likewise.
17208 * cfgloopmanip.c (fix_bb_placements): Likewise.
17209 (remove_path): Likewise.
17210 (update_dominators_in_loop): Likewise.
17211 * cfgrtl.c (break_superblocks): Likewise.
17212 * ddg.c (check_sccs): Likewise.
17213 (create_ddg_all_sccs): Likewise.
17214 * df-core.c (df_worklist_dataflow): Likewise.
17215 * dse.c (dse_step3): Likewise.
17216 * except.c (eh_region_outermost): Likewise.
17217 * function.c (thread_prologue_and_epilogue_insns): Likewise.
17218 * gcse.c (prune_expressions): Likewise.
17219 (prune_insertions_deletions): Likewise.
17220 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
17221 * graph.c (draw_cfg_nodes_no_loops): Likewise.
17222 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
17223 * lcm.c (compute_earliest): Likewise.
17224 (compute_farthest): Likewise.
17225 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
17226 (unroll_loop_runtime_iterations): Likewise.
17227 (unroll_loop_stupid): Likewise.
17228 * lower-subreg.c (decompose_multiword_subregs): Likewise.
17229 * lra-lives.c: Likewise.
17230 * lra.c (lra): Likewise.
17231 * modulo-sched.c (schedule_reg_moves): Likewise.
17232 (optimize_sc): Likewise.
17233 (get_sched_window): Likewise.
17234 (sms_schedule_by_order): Likewise.
17235 (check_nodes_order): Likewise.
17236 (order_nodes_of_sccs): Likewise.
17237 (order_nodes_in_scc): Likewise.
17238 * recog.c (split_all_insns): Likewise.
17239 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
17240 * reload1.c (reload): Likewise.
17241 * sched-rgn.c (haifa_find_rgns): Likewise.
17242 (split_edges): Likewise.
17243 (compute_trg_info): Likewise.
17244 * sel-sched.c (init_seqno): Likewise.
17245 * store-motion.c (remove_reachable_equiv_notes): Likewise.
17246 * tree-into-ssa.c (update_ssa): Likewise.
17247 * tree-ssa-live.c (live_worklist): Likewise.
17248 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
17249 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
17250 * Likewise.
17251 (try_peel_loop): Likewise.
17252 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
17253 * Likewise.
17254 * tree-ssa-pre.c (compute_antic): Likewise.
17255 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
17256 * tree-stdarg.c (reachable_at_most_once): Likewise.
17257 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
17258 * var-tracking.c (vt_find_locations): Likewise.
17259
17260 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
17261
17262 * sbitmap.h (auto_sbitmap): New class.
17263
17264 2016-07-26 Alan Modra <amodra@gmail.com>
17265
17266 PR target/72103
17267 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
17268 sri->t_icode.
17269
17270 2016-07-25 David Malcolm <dmalcolm@redhat.com>
17271
17272 * input.c (selftest::temp_source_file::temp_source_file): Fix
17273 missing "%s" in fprintf.
17274
17275 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
17276
17277 PR middle-end/71732
17278 * cselib.c (cselib_process_insn): Invalidate argument slots for
17279 const/pure calls.
17280
17281 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17282
17283 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
17284 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
17285 vmulxh_lane_f16, vmulxh_laneq_f16): New.
17286
17287 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17288
17289 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17290 * config/aarch64/aarch64.md (fma, fnma): Support HF.
17291 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
17292
17293 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17294
17295 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17296 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
17297 New.
17298 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
17299 (add<mode>3): Likewise.
17300 (sub<mode>3): Likewise.
17301 (mul<mode>3): Likewise.
17302 (div<mode>3): Likewise.
17303 (*div<mode>3): Likewise.
17304 (<fmaxmin><mode>3): Extend to HF.
17305 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
17306 (fabd<mode>3): Likewise.
17307 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
17308 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
17309 (aarch64_fmulx<mode>): Likewise.
17310 (aarch64_fac<optab><mode>): Likewise.
17311 (aarch64_frecps<mode>): Likewise.
17312 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
17313 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
17314 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
17315 (VSDQ_HSDI): Support HI.
17316 (fcvt_target, FCVT_TARGET): Likewise.
17317 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
17318 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
17319 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
17320 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
17321 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
17322 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
17323 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
17324 vrsqrtsh_f16): New.
17325
17326 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17327
17328 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
17329 * config/aarch64/aarch64-builtins.c (hi_UP): New.
17330 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17331 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
17332 mode.
17333 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
17334 (aarch64_cm<optab><mode>): Likewise.
17335 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
17336 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
17337 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
17338 (sqrt<mode>2): Likewise.
17339 (*sqrt<mode>2): Likewise.
17340 (abs<mode>2): Likewise.
17341 (<optab><mode>hf2): New pattern for HF mode.
17342 (<optab>hihf2): Likewise.
17343 * config/aarch64/arm_neon.h: Include arm_fp16.h.
17344 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
17345 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
17346 Support HF mode.
17347 * config/aarch64/arm_fp16.h: New file.
17348 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
17349 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
17350 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
17351 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
17352 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
17353 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
17354 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
17355 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
17356 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
17357 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
17358 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
17359 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
17360 vsqrth_f16): New.
17361
17362 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17363
17364 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
17365 reduc_smin_scal_): Use VDQIF_F16.
17366 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
17367 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
17368 Use VHSDF.
17369 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
17370 * config/aarch64/iterators.md (VDQIF_F16): New.
17371 (vp): Support HF modes.
17372 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
17373 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
17374
17375 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17376
17377 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
17378 "*aarch64_mulx_elt_from_dup<mode>".
17379 (*aarch64_mul3_elt<mode>): Update schedule type.
17380 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
17381 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
17382 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
17383 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
17384 (f, fp): Support HF modes.
17385 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
17386 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
17387 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
17388 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
17389 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
17390 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
17391
17392 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17393
17394 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17395 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
17396 modes.
17397 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
17398 vfmsq_f16): New.
17399
17400 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17401
17402 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17403 * config/aarch64/aarch64-simd.md
17404 (aarch64_rsqrts<mode>): Extend to HF modes.
17405 (fabd<mode>3): Likewise.
17406 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
17407 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
17408 (aarch64_<maxmin_uns>p<mode>): Likewise.
17409 (<su><maxmin><mode>3): Likewise.
17410 (<maxmin_uns><mode>3): Likewise.
17411 (<fmaxmin><mode>3): Likewise.
17412 (aarch64_faddp<mode>): Likewise.
17413 (aarch64_fmulx<mode>): Likewise.
17414 (aarch64_frecps<mode>): Likewise.
17415 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
17416 (add<mode>3): Extend to HF modes.
17417 (sub<mode>3): Likewise.
17418 (mul<mode>3): Likewise.
17419 (div<mode>3): Likewise.
17420 (*div<mode>3): Likewise.
17421 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
17422 HF, V4HF and V8HF.
17423 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
17424 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
17425 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
17426 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
17427 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
17428 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
17429 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
17430 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
17431 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
17432 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
17433 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
17434 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
17435 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
17436 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
17437
17438 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17439
17440 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
17441 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
17442 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
17443 (neg<mode>2): Likewise.
17444 (abs<mode>2): Likewise.
17445 (<frint_pattern><mode>2): Likewise.
17446 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
17447 (<optab><VDQF:mode><fcvt_target>2): Likewise.
17448 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
17449 (ftrunc<VDQF:mode>2): Likewise.
17450 (<optab><fcvt_target><VDQF:mode>2): Likewise.
17451 (sqrt<mode>2): Likewise.
17452 (*sqrt<mode>2): Likewise.
17453 (aarch64_frecpe<mode>): Likewise.
17454 (aarch64_cm<optab><mode>): Likewise.
17455 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
17456 HF, V4HF and V8HF.
17457 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
17458 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
17459 (stype): New.
17460 * config/aarch64/arm_neon.h (vdup_n_f16): New.
17461 (vdupq_n_f16): Likewise.
17462 (vld1_dup_f16): Use vdup_n_f16.
17463 (vld1q_dup_f16): Use vdupq_n_f16.
17464 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
17465 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
17466 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
17467 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
17468 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
17469 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
17470 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
17471 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
17472 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
17473 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
17474 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
17475 vsqrt_f16, vsqrtq_f16): New.
17476
17477 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17478
17479 * config/aarch64/aarch64-simd.md
17480 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
17481 (aarch64_ext<mode>): Likewise.
17482 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
17483 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
17484 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
17485 and V8HFmode.
17486 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
17487 float16x8_t.
17488 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
17489 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
17490 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
17491 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
17492 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
17493 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
17494 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
17495 New.
17496 (vmov_n_f16): Reimplement using vdup_n_f16.
17497 (vmovq_n_f16): Reimplement using vdupq_n_f16..
17498
17499 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17500
17501 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
17502 "frame_related_p". Generate CFA annotation when it's necessary.
17503 (aarch64_expand_prologue): Use aarch64_add_constant.
17504 (aarch64_expand_epilogue): Likewise.
17505 (aarch64_output_mi_thunk): Pass "false" when calling
17506 aarch64_add_constant.
17507
17508 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17509
17510 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
17511 sequences.
17512
17513 2016-07-25 Jiong Wang <jiong.wang@arm.com>
17514
17515 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
17516 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
17517 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
17518 (aarch64_build_constant): Delete.
17519
17520 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
17521
17522 Revert
17523 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
17524
17525 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
17526 flag_toplevel_reorder.
17527
17528 2016-07-25 Richard Biener <rguenther@suse.de>
17529
17530 * cgraph.c (cgraph_node::verify_node): Compare against builtin
17531 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
17532 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
17533 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
17534 (streamer_get_builtin_tree): Likewise.
17535 (streamer_write_builtin): Likewise.
17536 * lto-streamer.h (LTO_builtin_decl): Remove.
17537 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
17538 (lto_input_scc): Remove LTO_builtin_decl handling.
17539 (lto_input_tree_1): Liekwise.
17540 * lto-streamer-out.c (lto_output_tree_1): Remove special
17541 handling of builtins.
17542 (DFS::DFS): Likewise.
17543 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
17544 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
17545 assert.
17546 (streamer_write_builtin): Remove.
17547
17548 2016-07-25 Martin Liska <mliska@suse.cz>
17549
17550 * lto-cgraph.c (input_symtab): Don't call get_working_sets
17551 if flag_auto_profile is set to true.
17552
17553 2016-07-25 Martin Liska <mliska@suse.cz>
17554
17555 PR gcov-profile/71868
17556 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
17557 have a function with multiple latches, count them all.
17558
17559 2016-07-25 Martin Liska <mliska@suse.cz>
17560
17561 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
17562
17563 2016-07-25 Martin Liska <mliska@suse.cz>
17564
17565 PR tree-optimization/71987
17566 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
17567 just for SSA_NAMEs. Fix GNU coding style.
17568
17569 2016-07-25 Martin Liska <mliska@suse.cz>
17570
17571 PR gcov-profile/64874
17572 * gcov-io.h: Update command about file format.
17573 * gcov-iov.c (main): Adapt the numbering scheme.
17574
17575 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
17576
17577 PR middle-end/66726
17578 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
17579 whose result is used in PHI.
17580 (final_range_test_p): Likewise.
17581 (maybe_optimize_range_tests): Likewise.
17582
17583 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
17584
17585 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17586 Reformat two multi-line strings.
17587
17588 2016-07-22 Martin Sebor <msebor@redhat.com>
17589
17590 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
17591
17592 2016-07-22 Martin Sebor <msebor@redhat.com>
17593
17594 PR c/71560
17595 * doc/extend.texi (Compound Literals): Correct and clarify.
17596 (Cast to Union): Same.
17597
17598 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
17599
17600 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
17601 comments to explain why certain error messages make mention of
17602 undocumented options.
17603 (rs6000_invalid_builtin): Change error messages to replace mention
17604 of undocumented options with mention of the -mcpu=power9 option
17605 that enables those undocumented options.
17606 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
17607 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
17608 definition of this macro to correct an existing error.
17609 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
17610 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
17611 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
17612 descriptions of built-in functions so that they depend on
17613 -mcpu=power9 instead of on the corresponding undocumented flags.
17614 * doc/invoke.texi (Option Summary): Remove all mention of newly
17615 undocumented flags.
17616 (IBM RS/6000 and PowerPC Options): Likewise.
17617 * doc/md.texi (Constraints for Particuliar Machines): Remove all
17618 mention of newly undocumented flags.
17619
17620 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
17621
17622 * ipa-cp.c (determine_versionability): Do not create constprop clones,
17623 when target_clones attribute is set.
17624
17625 2016-07-22 Bin Cheng <bin.cheng@arm.com>
17626
17627 * common.opt (funsafe-loop-optimizations): Mark ignore.
17628 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
17629 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
17630 related code.
17631 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
17632 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
17633
17634 2016-07-22 Bin Cheng <bin.cheng@arm.com>
17635
17636 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
17637 Parameter.
17638 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
17639 Parameter.
17640 (number_of_iterations_exit): Warn missed loop optimization for
17641 possible infinite loops.
17642
17643 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
17644
17645 PR target/71216
17646 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
17647 when to emit a ".machine" pseudo-op.
17648
17649 2016-07-22 Martin Liska <mliska@suse.cz>
17650
17651 PR gcov-profile/69028
17652 PR gcov-profile/62047
17653 * coverage.c (coverage_compute_lineno_checksum): Do not
17654 calculate checksum for fns w/o xloc.file.
17655 (coverage_compute_profile_id): Likewise.
17656
17657 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
17658
17659 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
17660 (avr_secondary_reload): ...and implementation.
17661 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
17662 * config/avr/avr.md (reload_in<mode>): Remove insns.
17663 (adjust_len) [lpm]: Remove insn attribute value.
17664 * config/avr/predicates.md (flash_operand): Remove insn predicate.
17665
17666 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
17667
17668 PR middle-end/71876
17669 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
17670 attribute.
17671 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
17672 * calls.c (special_function_p): Remove the special handling of the
17673 "__builtin_" prefix.
17674
17675 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
17676
17677 PR middle-end/71876
17678 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
17679 if STMT may be an alloca call.
17680 (gimple_alloca_call_p, alloca_call_p): Return only true for the
17681 builtin alloca call.
17682 * calls.h (gimple_maybe_alloca_call_p): New function.
17683 * tree-inline.c (inline_forbidden_p_stmt): Use
17684 gimple_maybe_alloca_call_p here.
17685
17686 2016-07-21 David Malcolm <dmalcolm@redhat.com>
17687
17688 * spellcheck-tree.c (best_macro_match::best_macro_match):
17689 Explictly specify the template arguments when invoking the base
17690 class constructor, to help older C++ compilers.
17691
17692 2016-07-21 Jakub Jelinek <jakub@redhat.com>
17693
17694 PR sanitizer/71953
17695 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
17696 before builtin_decl_implicit.
17697
17698 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
17699
17700 * optabs.c (emit_condiitonal_move): Short circuit for identical
17701 sources.
17702
17703 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
17704
17705 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
17706 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
17707 (noce_conversion_profitable_p): New.
17708 (noce_try_store_flag_constants): Use it.
17709 (noce_try_addcc): Likewise.
17710 (noce_try_store_flag_mask): Likewise.
17711 (noce_try_cmove): Likewise.
17712 (noce_try_cmove_arith): Likewise.
17713 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
17714 overwriting it.
17715 (noce_convert_multiple_sets): Move cost model to here, from...
17716 (bb_ok_for_noce_convert_multiple_sets) ...here.
17717 (noce_process_if_block): Update calls for above changes.
17718 (noce_find_if_block): Record new noce_if_info parameters.
17719
17720 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
17721
17722 * target.def (max_noce_ifcvt_seq_cost): New.
17723 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
17724 * doc/tm.texi: Regenerate.
17725 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
17726 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
17727 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
17728 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
17729 * doc/invoke.texi: Document new params.
17730
17731 2016-07-21 Richard Biener <rguenther@suse.de>
17732
17733 PR tree-optimization/71947
17734 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
17735 ranges have useful limit_vr information.
17736
17737 2016-07-21 Richard Biener <rguenther@suse.de>
17738
17739 * function-tests.c (build_trivial_generic_function): Set
17740 BLOCK_SUPERCONTEXT of DECL_INITIAL.
17741 * omp-low.c (create_omp_child_function): Likewise.
17742 (grid_expand_target_grid_body): Likewise.
17743 * cgraphunit.c (init_lowered_empty_function): Likewise.
17744 (cgraph_node::expand_thunk): Likewise.
17745 * tree-parloops.c (create_loop_fn): Likewise.
17746 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
17747
17748 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17749
17750 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
17751 in comment.
17752
17753 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
17754
17755 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
17756 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
17757 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
17758 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
17759 values for insn attribute.
17760 * config/avr/avr.c (avr_out_insert_notbit): New function.
17761 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
17762 ADJUST_LEN_INSV_NOTBIT_0/_7.
17763 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
17764
17765 2016-07-21 Bin Cheng <bin.cheng@arm.com>
17766
17767 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
17768 (chrec_convert_1, chrec_convert): Ditto.
17769 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
17770 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
17771 * tree-vrp.c (adjust_range_with_scev): Ditto.
17772 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
17773 (scev_var_range_cant_overflow): New function.
17774 (scev_probably_wraps_p): New parameter. Call above function.
17775 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
17776
17777 2016-07-21 Bin Cheng <bin.cheng@arm.com>
17778
17779 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
17780 by removing computation of may_be_zero.
17781
17782 2016-07-21 Jakub Jelinek <jakub@redhat.com>
17783
17784 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
17785
17786 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
17787
17788 Improving concepts performance and diagnostics.
17789 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
17790 for constraint satisfaction and subsumption.
17791 * timevar.h (auto_timevar): New constructor that matches the push/pop
17792 pattern of usage in pt.c.
17793
17794 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
17795
17796 * hwint.h (HOST_WIDE_INT_0): New define.
17797 (HOST_WIDE_INT_0U): Ditto.
17798 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
17799 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
17800 * simplify-rtx.c: Ditto.
17801 * tree-object-size.c: Ditto.
17802
17803 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17804
17805 * config/s390/s390.c (s390_encode_section_info): Remove mode size
17806 check.
17807
17808 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
17809
17810 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
17811 * combine.c: Use HOST_WIDE_INT_M1U instead of
17812 ~(unsigned HOST_WIDE_INT) 0.
17813 * double-int.h: Ditto.
17814 * dse.c: Ditto.
17815 * dwarf2asm.c:Ditto.
17816 * expmed.c: Ditto.
17817 * genmodes.c: Ditto.
17818 * match.pd: Ditto.
17819 * read-rtl.c: Ditto.
17820 * tree-ssa-loop-ivopts.c: Ditto.
17821 * tree-ssa-loop-prefetch.c: Ditto.
17822 * tree-vect-generic.c: Ditto.
17823 * tree-vect-patterns.c: Ditto.
17824 * tree.c: Ditto.
17825
17826 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
17827
17828 * config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
17829 constant addresses outside [0,0xc0] into a register.
17830 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
17831 cases where the base address register is unused after.
17832 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
17833 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
17834 (avr_out_store_psi_reg_disp_tiny): Same.
17835
17836 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
17837
17838 Implement attribute progmem on reduced Tiny cores by adding
17839 flash offset 0x4000 to respective symbols.
17840
17841 PR target/71948
17842 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
17843 documentation how it works on reduced Tiny cores.
17844 (AVR Named Address Spaces): No support for reduced Tiny.
17845 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
17846 (avr_address_tiny_pm_p): New static function.
17847 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
17848 if the address is in progmem.
17849 (avr_assemble_integer): Same.
17850 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
17851 for symbol_ref in progmem.
17852 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
17853 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
17854 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
17855
17856 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
17857
17858 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
17859 * configure: Regenerate.
17860 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
17861 (USE_THIN_ARCHIVES): New variable.
17862 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
17863 this archive as a thin archive.
17864
17865 2016-07-20 David Malcolm <dmalcolm@redhat.com>
17866
17867 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
17868 same location as last time, don't skip if we have fix-it hints.
17869 Clarify the skipping logic by converting it from one "if" clause
17870 to repeated "if" clauses.
17871 * spellcheck-tree.c: Include "cpplib.h".
17872 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
17873 (best_macro_match::best_macro_match): New constructor.
17874 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
17875 Move here from c/c-decl.c.
17876 (class best_macro_match): Move here from c/c-decl.c, converting
17877 from a typedef to a subclass, gaining a ctor.
17878
17879 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
17880
17881 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
17882 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
17883 define...
17884 (avr_addr_space_diagnose_usage): ...and implementation.
17885 (avr_addr_space_supported_p): New function.
17886 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
17887 report bad address space usage if that space is supported.
17888 (avr_insert_attributes): Same. No more complain about unsupported
17889 address spaces.
17890 * config/avr/avr-c.c (tm_p.h): Include it.
17891 (avr_cpu_cpp_builtins): Only define addr-space related built-in
17892 macro if avr_addr_space_supported_p.
17893
17894 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
17895
17896 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
17897 flag_toplevel_reorder.
17898
17899 2016-07-20 David Malcolm <dmalcolm@redhat.com>
17900
17901 * gcc-rich-location.c
17902 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
17903 a const char *.
17904 * gcc-rich-location.h
17905 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
17906
17907 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
17908
17909 * target.def (addr_space): Add new diagnose_usage to hook vector.
17910 * targhooks.c (default_addr_space_diagnose_usage): Add default
17911 implementation and...
17912 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
17913 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
17914 is some address space, call targetm.addr_space.diagnose_usage.
17915 * doc/tm.texi.in (Named Address Spaces): Add anchor for
17916 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
17917 * doc/tm.texi: Regenerate.
17918
17919 2016-07-20 Martin Liska <mliska@suse.cz>
17920
17921 PR middle-end/71898
17922 * graphite-isl-ast-to-gimple.c (later_of_the_two):
17923 Properly handly PHI stmts.
17924
17925 2016-07-20 Bin Cheng <bin.cheng@arm.com>
17926
17927 PR tree-optimization/71503
17928 PR tree-optimization/71683
17929 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
17930 and break.
17931
17932 2016-07-20 Martin Liska <mliska@suse.cz>
17933
17934 * doc/invoke.texi (-fipa-ra): Document when the option is
17935 disabled. Fix a typo.
17936
17937 2016-07-20 Martin Liska <mliska@suse.cz>
17938
17939 * Makefile.in: Include fibonacci_heap.c
17940 * fibonacci_heap.c: New file.
17941 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
17942 (fibonacci_heap::union_with): Fix deletion of the second heap.
17943 * selftest-run-tests.c (selftest::run_tests): Incorporate
17944 fibonacci heap tests.
17945 * selftest.h: Declare fibonacci_heap_c_tests.
17946
17947 2016-07-20 Martin Liska <mliska@suse.cz>
17948
17949 * selftest-run-tests.c (selftest::run_tests): New function.
17950 * selftest.h (sreal_c_tests): Declare.
17951 * sreal.c (sreal_verify_basics): New function.
17952 (verify_aritmetics): Likewise.
17953 (sreal_verify_arithmetics): Likewise.
17954 (verify_shifting): Likewise.
17955 (sreal_verify_shifting): Likewise.
17956 (void sreal_c_tests): Likewise.
17957
17958 2016-07-19 Jakub Jelinek <jakub@redhat.com>
17959
17960 PR rtl-optimization/71916
17961 * cfgrtl.c (contains_no_active_insn_p): Return false also for
17962 bb which have a single succ fake edge.
17963
17964 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
17965
17966 PR debug/71855
17967 * dwarf2out.c (gen_subprogram_die): Only call
17968 gen_unspecified_parameters_die while dumping early dwarf.
17969
17970 2016-07-19 Jakub Jelinek <jakub@redhat.com>
17971
17972 PR middle-end/71874
17973 * gimple-fold.c (fold_builtin_memory_op): Use
17974 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
17975
17976 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
17977
17978 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
17979 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
17980 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
17981 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
17982 * combine.c: Ditto.
17983 * cse.c: Ditto.
17984 * dojump.c: Ditto.
17985 * double-int.c: Ditto.
17986 * dse.c: Ditto.
17987 * dwarf2out.c: Ditto.
17988 * expmed.c: Ditto.
17989 * expr.c: Ditto.
17990 * fold-const.c: Ditto.
17991 * function.c: Ditto.
17992 * fwprop.c: Ditto.
17993 * genmodes.c: Ditto.
17994 * hwint.c: Ditto.
17995 * hwint.h: Ditto.
17996 * ifcvt.c: Ditto.
17997 * loop-doloop.c: Ditto.
17998 * loop-invariant.c: Ditto.
17999 * loop-iv.c: Ditto.
18000 * match.pd: Ditto.
18001 * optabs.c: Ditto.
18002 * real.c: Ditto.
18003 * reload.c: Ditto.
18004 * rtlanal.c: Ditto.
18005 * simplify-rtx.c: Ditto.
18006 * stor-layout.c: Ditto.
18007 * toplev.c: Ditto.
18008 * tree-ssa-loop-ivopts.c: Ditto.
18009 * tree-vect-generic.c: Ditto.
18010 * tree-vect-patterns.c: Ditto.
18011 * tree.c: Ditto.
18012 * tree.h: Ditto.
18013 * ubsan.c: Ditto.
18014 * varasm.c: Ditto.
18015 * wide-int-print.cc: Ditto.
18016 * wide-int.cc: Ditto.
18017 * wide-int.h: Ditto.
18018
18019 2016-07-19 David Malcolm <dmalcolm@redhat.com>
18020
18021 * selftest.c (selftest::assert_streq): Handle NULL values of
18022 val_actual and val_expected.
18023
18024 2016-07-19 Martin Jambor <mjambor@suse.cz>
18025
18026 PR fortran/71688
18027 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
18028 rather than cgraph_create_node to get a call graph node.
18029
18030 2016-07-19 Richard Biener <rguenther@suse.de>
18031
18032 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
18033 handle all tcc_constant bases and valueize SSA names.
18034 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
18035 tcc_constant bases.
18036
18037 2016-07-19 David Malcolm <dmalcolm@redhat.com>
18038
18039 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
18040 the flags of the exit block and bb2, not just the entry block.
18041
18042 2016-07-19 Richard Biener <rguenther@suse.de>
18043
18044 PR tree-optimization/71901
18045 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
18046 align member, group stuff with the bitfield.
18047 (vn_ref_op_align_unit): New inline.
18048 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
18049 record element alignment and operand 3 unchanged.
18050 (ao_ref_init_from_vn_reference): Adjust.
18051 (valueize_refs_1): Likewise.
18052 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18053
18054 2016-07-19 Richard Biener <rguenther@suse.de>
18055
18056 PR tree-optimization/71908
18057 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
18058 symbolic constants in a more reliable way.
18059
18060 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
18061
18062 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
18063 comment.
18064 (vect_update_inits_of_drs): Likewise.
18065 (vect_create_cond_for_alias_checks): Likewise.
18066 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
18067
18068 2016-07-19 Richard Biener <rguenther@suse.de>
18069
18070 PR lto/71907
18071 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
18072 with an abstract origin that is not an inlined function outer
18073 scope add a self-reference as abstract origin.
18074 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
18075
18076 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18077
18078 PR target/71493
18079 * config/rs6000/rs6000.c (rs6000_function_value): Fix
18080 unintentional System V.4 structure return breakage for structures
18081 with a single floating point element.
18082
18083 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
18084
18085 PR tree-optimization/71734
18086 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
18087 contains REF, use it to check safelen, assume that safelen value
18088 must be greater 1, fix style.
18089 (ref_indep_loop_p_2): Add REF_LOOP argument.
18090 (ref_indep_loop_p): Pass LOOP as additional argument to
18091 ref_indep_loop_p_2.
18092
18093 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
18094
18095 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
18096 allocation in the prologue.
18097 * explow.c (get_dynamic_stack_base): New function to return an address
18098 expression for the dynamic stack base.
18099 (get_dynamic_stack_size): New function to do the required dynamic stack
18100 space size calculations.
18101 (allocate_dynamic_stack_space): Use new functions.
18102 (align_dynamic_address): Move some code from
18103 allocate_dynamic_stack_space to new function.
18104 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
18105
18106 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18107
18108 * config/s390/s390.c (s390_encode_section_info): Always set
18109 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
18110 found.
18111
18112 2016-07-18 Richard Biener <rguenther@suse.de>
18113
18114 PR tree-optimization/71893
18115 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
18116 for sizetype cast added by array_ref_element_size.
18117 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
18118
18119 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
18120
18121 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
18122 register parameters. Remove code to initialize argument pointer
18123 on TARGET_64BIT. Optimize call to _mcount when it can be reached
18124 using a pc-relative branch. Cleanup conditional code.
18125 * config/pa/pa.md (call_mcount): New expander.
18126 (call_mcount_nonpic): New insn.
18127 (call_mcount_pic): New insn and split.
18128 (call_mcount_pic_post_reload): New insn.
18129 (call_mcount_64bit): New insn and split.
18130 (call_mcount_64bit_post_reload): New insn.
18131
18132 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
18133
18134 * config/avr/predicates.md (const_m255_to_m1_operand): New.
18135 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
18136 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
18137 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
18138 (*usum_widenqihi3, *udiff_widenqihi3)
18139 (*addhi3_zero_extend.const): New combiner insns.
18140 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
18141 just 1 bit is affected.
18142 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
18143 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
18144
18145 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
18146
18147 * omp-low.c (lower_omp_target): Mark data clauses with
18148 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
18149 zero-length subarrays.
18150
18151 2016-07-15 Richard Biener <rguenther@suse.de>
18152
18153 PR tree-optimization/71881
18154 * tree-loop-distribution.c (destroy_loop): Remove blocks in
18155 reverse DOM order to make debug temp generation happy.
18156
18157 2016-07-15 Richard Biener <rguenther@suse.de>
18158
18159 PR tree-optimization/71887
18160 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
18161 verify it is not zero for division / modulo handling.
18162 (value_replacement): Adjust.
18163
18164 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
18165 Julian Brown <julian@codesourcery.com>
18166
18167 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
18168 * config/aarch64/aarch64-cost-tables.h
18169 (vulcan_extra_costs): New variable.
18170 * config/aarch64/aarch64.c
18171 (vulcan_addrcost_table): Likewise.
18172 (vulcan_regmove_cost): Likewise.
18173 (vulcan_vector_cost): Likewise.
18174 (vulcan_branch_cost): Likewise.
18175 (vulcan_tunings): Likewise.
18176
18177 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
18178
18179 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
18180 (output_in_order): Loop over undefined variables too. Output them
18181 via assemble_undefined_decl. Skip variables that correspond to hard
18182 registers or have value-exprs.
18183 * varpool.c (symbol_table::output_variables): Handle undefined
18184 variables together with defined ones.
18185
18186 2016-07-15 Richard Biener <rguenther@suse.de>
18187
18188 * tree-ssa-pre.c (get_representative_for): Make sure to return
18189 the value number of SSA names.
18190 (phi_translate_1): get_representative_for cannot return NULL.
18191 (do_pre_regular_insertion): Remove redundant call to
18192 fully_constant_expression.
18193 (do_pre_partial_partial_insertion): Likewise.
18194
18195 2016-07-15 Bin Cheng <bin.cheng@arm.com>
18196
18197 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
18198 (derive_simple_iv_with_niters): New function.
18199 (simple_iv): Rewrite using simple_iv_with_niters.
18200 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
18201 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
18202 function.
18203 (number_of_iterations_exit): Rewrite using above function.
18204 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
18205 Decl.
18206
18207 2016-07-15 Richard Biener <rguenther@suse.de>
18208
18209 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
18210 vec_construct cost.
18211
18212 2016-07-14 Jakub Jelinek <jakub@redhat.com>
18213
18214 PR tree-optimization/71872
18215 * tree-data-ref.c (get_references_in_stmt): Ignore references
18216 with is_gimple_constant get_base_address.
18217
18218 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
18219
18220 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
18221 (TARGET_HAVE_LDACQD): New macro.
18222 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
18223 than TARGET_HAVE_LDACQ.
18224 (arm_load_acquire_exclusivedi): Likewise.
18225 (arm_store_release_exclusivedi): Likewise.
18226
18227 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
18228
18229 PR rtl-optimization/71878
18230 * lra-constraints.c (match_reload): Pass information about other
18231 output operands. Create new unique register value if matching input
18232 operand shares same register value as output operand being considered.
18233 (curr_insn_transform): Record output operands already processed.
18234
18235 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18236
18237 PR target/65951
18238 PR tree-optimization/70923
18239 * tree-vect-patterns.c: Include mult-synthesis.h.
18240 (target_supports_mult_synth_alg): New function.
18241 (synth_lshift_by_additions): Likewise.
18242 (apply_binop_and_append_stmt): Likewise.
18243 (vect_synth_mult_by_constant): Likewise.
18244 (target_has_vecop_for_code): Likewise.
18245 (vect_recog_mult_pattern): Use above functions to synthesize vector
18246 multiplication by integer constants.
18247
18248 2016-07-14 Alan Modra <amodra@gmail.com>
18249
18250 * config/rs6000/altivec.md (altivec_mov<mode>): Disparage
18251 gpr alternatives. Correct '*' placement on Y,r alternative.
18252 Add '*' on operand 1 of r,r alternative.
18253
18254 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18255
18256 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
18257 * expmed.h: ... Here.
18258
18259 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
18260
18261 * gimple.h (stmt_can_terminate_bb_p): New function.
18262 * tree-cfg.c (need_fake_edge_p): Rename to ...
18263 (stmt_can_terminate_bb_p): ... this; return true if stmt can
18264 throw external; handle const and pure calls.
18265 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
18266
18267 2016-07-14 Richard Biener <rguenther@suse.de>
18268
18269 PR tree-optimization/71866
18270 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
18271 (do_hoist_insertion): Avoid endless recursion when we
18272 didn't insert anything because we managed to simplify
18273 things down to a constant or SSA name.
18274 (fully_constant_expression): Re-write in terms of ...
18275 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
18276 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
18277 vn_nary_build_or_lookup_1.
18278 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
18279 (vn_nary_build_or_lookup): ... this which now wraps it.
18280
18281 2016-07-14 Alan Modra <amodra@gmail.com>
18282
18283 PR target/71733
18284 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
18285 with p9_vector override before power9-dform override.
18286
18287 2016-07-13 Andi Kleen <ak@linux.intel.com>
18288
18289 * value-prof.c (gimple_value_profile_transformations): Don't run
18290 when auto_profile is on.
18291
18292 2016-07-13 Andi Kleen <ak@linux.intel.com>
18293
18294 * auto-profile.c (update_inlined_ind_target,
18295 afdo_indirect_call): Print information to dump file.
18296
18297 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
18298
18299 * genrecog.c (special_predicate_operand_p): New function.
18300 (predicate_name): Move function.
18301 (validate_pattern): Don't warn about missing mode for all
18302 define_special_predicate predicates.
18303
18304 2016-07-13 Bin Cheng <bin.cheng@arm.com>
18305
18306 * tree-vect-data-refs.c (vect_no_alias_p): New function.
18307 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
18308 resolve alias checks which are known at compilation time.
18309 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
18310 alias checks are resolved. Move dump info for too many runtime
18311 alias checks to here...
18312 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
18313
18314 2016-07-13 Richard Biener <rguenther@suse.de>
18315
18316 PR tree-optimization/24574
18317 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
18318 position and add shift, rotate, divison and modulo support
18319 for left zero.
18320 (value_replacement): Pass in argument position to absorbing_element_p.
18321
18322 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
18323
18324 PR ipa/71633
18325 * ipa-inline-transform.c (inline_call): Support
18326 instrumented thunks.
18327
18328 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
18329
18330 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
18331 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
18332 divide feature.
18333 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
18334 Baseline. Make initial alternative TARGET_32BIT only.
18335 (udivsi3): Likewise.
18336 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
18337 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
18338 target.
18339
18340 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
18341
18342 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
18343 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
18344 availability with TARGET_HAVE_MOVT.
18345 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
18346 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
18347 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
18348 UINTVAL.
18349 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
18350 extra instruction if MOVW is available. Use a cost variable
18351 incremented by COSTS_N_INSNS (1) when the condition match rather than
18352 returning an arithmetic expression based on COSTS_N_INSNS. Make
18353 constant with bottom half word zero cost 2 instruction if MOVW is
18354 available.
18355 * config/arm/arm.md (define_attr "arch"): Add v8mb.
18356 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
18357 target is ARMv8-M Baseline.
18358 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
18359 (arm_movtas_ze): Likewise.
18360 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
18361 alternative for constants satisfying j constraint.
18362 (thumb1_movsi_insn): Likewise.
18363 (movsi splitter for K alternative): Tighten condition to not trigger
18364 if movt is available and j constraint is satisfied.
18365 (Pe immediate splitter): Likewise.
18366 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
18367 constant fitting in an halfword to use MOVW.
18368 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
18369 effective target.
18370
18371 2016-07-13 Richard Biener <rguenther@suse.de>
18372
18373 PR middle-end/71104
18374 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
18375 gimplifying the LHS. Make sure to gimplify a returning twice
18376 call LHS without using SSA names.
18377
18378 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18379
18380 * tree-data-ref.c (find_data_references_in_stmt): Remove
18381 unnecessary call to vec::release.
18382 (graphite_find_data_references_in_stmt): Likewise.
18383 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
18384 * tree-vect-stmts.c (vectorizable_condition): Likewise.
18385
18386 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18387
18388 * cfgexpand.c (expand_used_vars): Make the type of a local
18389 variable auto_vec.
18390 * genmatch.c (lower_for): Likewise.
18391 * haifa-sched.c (haifa_sched_init): Likewise.
18392 (add_to_speculative_block): Likewise.
18393 (create_check_block_twin): Likewise.
18394 * predict.c (handle_missing_profiles): Likewise.
18395 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
18396 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
18397 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
18398 Likewise.
18399 (maybe_lower_iteration_bound): Likewise.
18400 * tree-ssa-sccvn.c (DFS): Likewise.
18401 * tree-stdarg.c (reachable_at_most_once): Likewise.
18402 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
18403 (vectorizable_store): Likewise.
18404
18405 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18406
18407 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
18408 (sccvn_dom_walker): make cond_stack an auto_vec.
18409
18410 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18411
18412 * ree.c (struct ext_state): Make type of members auto_vec.
18413 (find_and_remove_re): Adjust.
18414
18415 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18416
18417 * cfgexpand.c (struct stack_vars_data): Make type of fields
18418 auto_vec.
18419 (expand_used_vars): Adjust.
18420
18421 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18422
18423 * ipa.c (record_cdtor_fn): Adjust.
18424 (build_cdtor_fns): Likewise.
18425 (ipa_cdtor_merge): Make static_ctors and static_dtors local
18426 variables.
18427
18428 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18429
18430 * genextract.c (struct accum_extract): Add constructor and make
18431 members auto_vec.
18432 (gen_insn): Adjust.
18433
18434 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18435
18436 * tree.c (struct free_lang_data_d): Add constructor and change
18437 types of members to ones that automatically manage resources.
18438 (fld_worklist_push): Adjust.
18439 (find_decls_types): Likewise.
18440 (find_decls_types_in_eh_region): Likewise.
18441 (free_lang_data_in_cgraph): Stop manually creating and
18442 destroying members of free_lang_data_d.
18443
18444 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
18445
18446 PR rtl-optimization/68961
18447 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
18448 peephole variant. Use sse_reg_operand predicates.
18449
18450 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
18451
18452 * config/i386/predicates.md (x86_64_immediate_operand)
18453 <case CONST_INT>: Remove unneeded truncation to DImode.
18454 <case CONST>: Ditto.
18455 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
18456
18457 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18458
18459 PR target/71805
18460 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
18461 The xxperm and xxpermr instructions require that the 2nd input
18462 operand overlap with the output operand, and not the 1st.
18463 (altivec_vperm_v8hiv16qi): Likewise.
18464 (altivec_vperm_<mode>_uns_internal): Likewise.
18465 (altivec_vpermr_<mode>_internal): Likewise.
18466 (vperm_v8hiv4si): Likewise.
18467 (vperm_v16qiv8hi): Likewise.
18468
18469 2016-07-12 Nathan Sidwell <nathan@acm.org>
18470
18471 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
18472 when -mno-pic-data-is-text-relative is in effect, by default.
18473 * doc/invoke.texi (mpic-data-is-text-relative): Document new
18474 behavior and clarify.
18475
18476 2016-07-12 Martin Liska <mliska@suse.cz>
18477
18478 * params.def: Add avg-loop niter.
18479 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
18480 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
18481 * doc/invoke.texi: Document the new parameter.
18482
18483 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18484
18485 PR middle-end/71700
18486 * expr.c (store_constructor): Mask sign-extended bits when widening
18487 sub-word constructor element at the start of a word.
18488
18489 2016-07-12 Martin Liska <mliska@suse.cz>
18490
18491 * Makefile.in: Append rule for params-options.h.
18492 * params-options.h: New file.
18493
18494 2016-07-12 Martin Liska <mliska@suse.cz>
18495
18496 * ira-build.c (mark_loops_for_removal): Properly iterate
18497 loops.
18498
18499 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
18500 Richard Biener <rguenther@suse.de>
18501
18502 PR tree-optimization/23286
18503 PR tree-optimization/70159
18504 * doc/invoke.texi: Document -fcode-hoisting.
18505 * common.opt (fcode-hoisting): New flag.
18506 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
18507 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
18508 (do_regular_insertion): Rename to ...
18509 (do_pre_regular_insertion): ... this and amend general comments
18510 on insertion strathegy.
18511 (do_partial_partial_insertion): Rename to ...
18512 (do_pre_partial_partial_insertion): ... this.
18513 (do_hoist_insertion): New function.
18514 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
18515 and call do_hoist_insertion properly.
18516 (insert): Adjust.
18517 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
18518 (pass_pre::execute): Register hoist_insert stats.
18519
18520 2016-07-12 Jakub Jelinek <jakub@redhat.com>
18521
18522 PR middle-end/71716
18523 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
18524 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
18525 is different from mode's bitsize. Small cleanup.
18526
18527 2016-07-12 Richard Biener <rguenther@suse.de>
18528
18529 PR rtl-optimization/68961
18530 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
18531 to simplify to a non-constant.
18532
18533 2016-07-11 Jakub Jelinek <jakub@redhat.com>
18534
18535 PR middle-end/71758
18536 * omp-low.c (expand_omp_target): Gimplify device.
18537
18538 PR tree-optimization/71823
18539 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
18540 to get vec_oprnds2 from op2.
18541
18542 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
18543
18544 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
18545 Hoist common subexpressions.
18546 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
18547
18548 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
18549
18550 PR target/71800
18551 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
18552 prevent generation of 'stxsiwx' on pre Power8 hardware.
18553
18554 2016-07-11 David Malcolm <dmalcolm@redhat.com>
18555
18556 * input.c: Include cpplib.h.
18557 (selftest::temp_source_file): New class.
18558 (selftest::temp_source_file::temp_source_file): New ctor.
18559 (selftest::temp_source_file::~temp_source_file): New dtor.
18560 (selftest::should_have_column_data_p): New function.
18561 (selftest::test_should_have_column_data_p): New function.
18562 (selftest::temp_line_table): New class.
18563 (selftest::temp_line_table::temp_line_table): New ctor.
18564 (selftest::temp_line_table::~temp_line_table): New dtor.
18565 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
18566 it to create a temp_line_table.
18567 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
18568 locations that are known to have column data.
18569 (selftest::line_table_case): New struct.
18570 (selftest::test_reading_source_line): Move tempfile handling
18571 to class temp_source_file.
18572 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
18573 (selftest::assert_token_loc_eq): New function.
18574 (ASSERT_TOKEN_LOC_EQ): New macro.
18575 (selftest::test_lexer): New function.
18576 (selftest::boundary_locations): New array.
18577 (selftest::input_c_tests): Call test_should_have_column_data_p.
18578 Loop over a test matrix of interesting values of location and
18579 default_range_bits, calling test_lexer on each case in the matrix.
18580 Move call to test_accessing_ordinary_linemaps into the matrix.
18581 * selftest.h (ASSERT_EQ): Reimplement in terms of...
18582 (ASSERT_EQ_AT): New macro.
18583
18584 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
18585
18586 PR target/71801
18587 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
18588 Don't convert TImode in debug insn.
18589
18590 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
18591
18592 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
18593 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
18594 (tree_type_common::lang_flag_7): New.
18595 (tree_type_common::spare): Reduce size.
18596 * tree.h (TYPE_ALIGN_OK): Remove.
18597 (TYPE_LANG_FLAG_7): New.
18598 (get_inner_reference): Adjust header.
18599 * print-tree.c (print_node): Adjust.
18600 * expr.c (get_inner_reference): Remove parameter keep_aligning.
18601 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
18602 calls to get_inner_reference.
18603 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
18604 handling of TYPE_ALIGN_OK.
18605 * builtins.c (get_object_alignment_2): Adjust call to
18606 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
18607 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
18608 TYPE_ALIGN_OK.
18609 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
18610 * cfgexpand.c (expand_debug_expr): Likewise.
18611 * dbxout.c (dbxout_expand_expr): Likewise.
18612 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
18613 loc_list_from_tree, fortran_common): Likewise.
18614 * fold-const.c (optimize_bit_field_compare,
18615 decode_field_reference, fold_unary_loc, fold_comparison,
18616 split_address_to_core_and_offset): Likewise.
18617 * gimple-laddress.c (execute): Likewise.
18618 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
18619 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
18620 * hsa-gen.c (gen_hsa_addr): Likewise.
18621 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
18622 * tsan.c (instrument_expr): Likewise.
18623 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
18624 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
18625 * tree-affine.c (tree_to_aff_combination,
18626 get_inner_reference_aff): Adjust calls to get_inner_reference.
18627 * tree-data-ref.c (split_constant_offset_1,
18628 dr_analyze_innermost): Likewise.
18629 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
18630 * tree-sra.c (ipa_sra_check_caller): Likewise.
18631 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
18632 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
18633 bswap_replace): Likewise.
18634 * tree-vect-data-refs.c (vect_check_gather,
18635 vect_analyze_data_refs): Likewise.
18636 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
18637 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
18638 TYPE_ALIGN_OK.
18639
18640 2016-07-11 David Malcolm <dmalcolm@redhat.com>
18641
18642 * Makefile.in (selftest-valgrind): New phony target.
18643 * function-tests.c (selftest::build_cfg): Delete pass instances
18644 created by the test.
18645 (selftest::convert_to_ssa): Likewise.
18646 (selftest::test_expansion_to_rtl): Likewise.
18647 * tree-cfg.c (selftest::test_linear_chain): Release dominator
18648 vectors.
18649 (selftest::test_diamond): Likewise.
18650
18651 2016-07-11 Richard Biener <rguenther@suse.de>
18652
18653 PR tree-optimization/71816
18654 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
18655 than replacing all of its operands.
18656
18657 2016-07-11 Alan Modra <amodra@gmail.com>
18658
18659 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
18660 (ctr<mode>): Add unspec.
18661 (ctr<mode>_internal*): Likewise.
18662
18663 2016-07-08 James Bowman <james.bowman@ftdichip.com>
18664
18665 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
18666 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
18667
18668 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
18669
18670 PR rtl-optimization/71621
18671 * lra-constraints.c (process_alt_operands): Check combination of
18672 reg class and mode.
18673
18674 2016-07-08 Jason Merrill <jason@redhat.com>
18675 Richard Biener <rguenther@suse.de>
18676
18677 P0145: Refining Expression Order for C++.
18678 * gimplify.c (initial_rhs_predicate_for): New.
18679 (gimplfy_modify_expr): Gimplify RHS before LHS.
18680
18681 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18682
18683 PR target/71297
18684 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18685 Allow standard error handling to take over when a wrong number
18686 of arguments is presented to __builtin_vec_ld () or
18687 __builtin_vec_st ().
18688
18689 2016-07-08 Jiong Wang <jiong.wang@arm.com>
18690
18691 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
18692 variants.
18693 (smin): Likewise.
18694 (fmax): New entry.
18695 (fmin): Likewise.
18696 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
18697 __builtin_aarch64_fmaxv2sf.
18698 (vmaxnmq_f32): Likewise.
18699 (vmaxnmq_f64): Likewise.
18700 (vminnm_f32): Likewise.
18701 (vminnmq_f32): Likewise.
18702 (vminnmq_f64): Likewise.
18703
18704 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
18705
18706 PR target/71806
18707 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
18708 enable -mfloat128-hardware by default.
18709 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
18710 that IEEE 128-bit hardware support needs.
18711 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
18712 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
18713 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
18714 floating point requires.
18715 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
18716 -mfloat128 and -mfloat128-hardware changes.
18717
18718 2016-07-08 Alan Hayward <alan.hayward@arm.com>
18719
18720 PR tree-optimization/71667
18721 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
18722
18723 2016-07-08 Martin Liska <mliska@suse.cz>
18724
18725 PR middle-end/71606
18726 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
18727 folding produces SAVE_EXPRs, thus return false for the type.
18728
18729 2016-07-07 Martin Liska <mliska@suse.cz>
18730
18731 * file-find.c (remove_prefix): New function.
18732 * file-find.h (remove_prefix): Declare the function.
18733 * gcc-ar.c (main): Skip a folder of the wrapper if
18734 a wrapped binary would point to the same file.
18735
18736 2016-07-07 Jan Hubicka <jh@suse.cz>
18737
18738 * tree-scalar-evolution.c (iv_can_overflow_p): export.
18739 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
18740 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
18741
18742 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
18743
18744 PR ipa/71624
18745 * ipa-inline-analysis.c (compute_inline_parameters): Set
18746 local.can_change_signature to false for intrumentation
18747 thunk callees.
18748
18749 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
18750
18751 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
18752 with TARGET_HAVE_MOVT.
18753 (TARGET_HAVE_MOVT): Define.
18754 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
18755 availability with TARGET_HAVE_MOVT.
18756 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
18757 availability.
18758 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
18759 TARGET_THUMB2.
18760 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
18761 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
18762 * config/arm/constraints.md (define_constraint "j"): Use
18763 TARGET_HAVE_MOVT to check MOVT availability.
18764
18765 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
18766
18767 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
18768
18769 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
18770
18771 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
18772 (armv8-m.main): Likewise.
18773 (armv8-m.main+dsp): Likewise.
18774 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
18775 (FL_FOR_ARCH8M_MAIN): Likewise.
18776 * config/arm/arm-tables.opt: Regenerate.
18777 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
18778 armv8-m.main+dsp to BE8_LINK_SPEC.
18779 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
18780 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
18781 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
18782 Baseline and Mainline.
18783 (arm_option_override_internal): Also disable arm_restrict_it when
18784 !arm_arch_notm. Update comment for -munaligned-access to also cover
18785 ARMv8-M Baseline.
18786 (arm_file_start): Increase buffer size for printing architecture name.
18787 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
18788 and armv8-m.main+dsp.
18789 (mno-unaligned-access): Clarify that this is disabled by default for
18790 ARMv8-M Baseline architectures as well.
18791
18792 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
18793
18794 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
18795 decide whether to prevent some libgcc routines being included for some
18796 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
18797 link between this condition and the one in
18798 libgcc/config/arm/lib1func.S.
18799
18800 2016-07-07 Richard Biener <rguenther@suse.de>
18801
18802 * tree-ssa-pre.c: Include alias.h.
18803 (compute_avail): If we have multiple VN_REFERENCEs with the
18804 same hashtable entry adjust that to make it a valid replacement
18805 for all of them with respect to alignment and aliasing
18806 when doing insertion.
18807 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
18808 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
18809
18810 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
18811
18812 PR target/70098
18813 PR target/71763
18814 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
18815 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
18816 constraint.
18817
18818 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18819
18820 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
18821 (adjust_mems): Adjust.
18822 (adjust_insn): Likewise.
18823 (prepare_call_arguments): Likewise.
18824
18825 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18826
18827 * gcse.c (struct ls_expr): Make stores field a vector.
18828 (ldst_entry): Adjust.
18829 (free_ldst_entry): Likewise.
18830 (print_ldst_list): Likewise.
18831 (compute_ld_motion_mems): Likewise.
18832 (update_ld_motion_stores): Likewise.
18833
18834 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18835
18836 * gcse.c (struct ls_expr): Remove loads field.
18837 (ldst_entry): Adjust.
18838 (free_ldst_entry): Likewise.
18839 (print_ldst_list): Likewise.
18840 (compute_ld_motion_mems): Likewise.
18841
18842 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18843
18844 * store-motion.c (struct st_expr): Make antic_stores a vector.
18845 (st_expr_entry): Adjust.
18846 (free_st_expr_entry): Likewise.
18847 (print_store_motion_mems): Likewise.
18848 (find_moveable_store): Likewise.
18849 (compute_store_table): Likewise.
18850 (remove_reachable_equiv_notes): Likewise.
18851 (replace_store_insn): Likewise.
18852 (build_store_vectors): Likewise.
18853
18854 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18855
18856 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
18857 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
18858
18859 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
18860
18861 PR tree-optimization/71518
18862 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
18863 misalign also for outer loops with negative step.
18864
18865 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
18866
18867 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
18868 (cortex_a53_shift): Add mov_shift.
18869 (cortex_a53_shift_reg): Add new reservation for register shifts.
18870 (cortex_a53_alu): Remove bfm.
18871 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
18872 (cortex_a53_alu_extr): Add new reservation for EXTR.
18873 (bypasses): Improve bypass modelling.
18874
18875 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18876
18877 PR target/50739
18878 * config/avr/avr.c (avr_asm_select_section): Strip off
18879 SECTION_DECLARED from flags when calling get_section.
18880
18881 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18882
18883 * tree-vectorizer.h (vect_memory_access_type): Add
18884 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
18885 * tree-vect-stmts.c (compare_step_with_zero): New function.
18886 (perm_mask_for_reverse): Move further up file.
18887 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
18888 step is negative.
18889 (get_negative_load_store_type): New function.
18890 (get_load_store_type): Call it. Add an ncopies argument.
18891 (vectorizable_mask_load_store): Update call accordingly and
18892 remove tests for negative steps.
18893 (vectorizable_store, vectorizable_load): Likewise. Handle new
18894 memory_access_types.
18895
18896 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18897
18898 * tree-vectorizer.h (vect_memory_access_type): New enum.
18899 (_stmt_vec_info): Add a memory_access_type field.
18900 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
18901 (vect_model_store_cost): Take an access type instead of a boolean.
18902 (vect_model_load_cost): Likewise.
18903 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
18904 vect_model_store_cost and vect_model_load_cost.
18905 * tree-vect-stmts.c (vec_load_store_type): New enum.
18906 (vect_model_store_cost): Take an access type instead of a
18907 store_lanes_p boolean. Simplify tests.
18908 (vect_model_load_cost): Likewise, but for load_lanes_p.
18909 (get_group_load_store_type, get_load_store_type): New functions.
18910 (vectorizable_store): Use get_load_store_type. Record the access
18911 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
18912 (vectorizable_load): Likewise.
18913 (vectorizable_mask_load_store): Likewise. Replace is_store
18914 variable with vls_type.
18915
18916 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18917
18918 * tree-vectorizer.h (vect_grouped_load_supported): Add a
18919 single_element_p parameter.
18920 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
18921 Check the PR65518 case here rather than in vectorizable_load.
18922 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
18923 * tree-vect-stmts.c (vectorizable_load): Likewise.
18924
18925 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18926
18927 * tree-vectorizer.h (gather_scatter_info): New structure.
18928 (vect_check_gather_scatter): Return a bool rather than a decl.
18929 Replace return-by-pointer arguments with a single
18930 gather_scatter_info *.
18931 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
18932 (vect_analyze_data_refs): Update call accordingly.
18933 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
18934 (vectorizable_mask_load_store): Likewise. Also record the
18935 offset dt and vectype in the gather_scatter_info.
18936 (vectorizable_store): Likewise.
18937 (vectorizable_load): Likewise.
18938
18939 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18940
18941 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
18942 strided groups, use the cost of N scalar accesses instead
18943 of ncopies vector accesses.
18944 (vect_model_load_cost): Likewise.
18945
18946 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18947
18948 * tree-vect-stmts.c (vect_cost_group_size): Delete.
18949 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
18950 variable to indicate when once-per-group costs are being used.
18951 (vect_model_load_cost): Likewise. Fix comment and misindented code.
18952
18953 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
18954
18955 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
18956 peeling-for-gaps condition.
18957
18958 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18959
18960 * config/s390/s390.c (s390_expand_vec_init): Force initializer
18961 element to register if it doesn't match general_operand.
18962
18963 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18964 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18965
18966 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
18967 prototype.
18968 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
18969 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
18970 (SIGNBIT): New mode iterator.
18971 (Fsignbit): New mode attribute.
18972 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
18973 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
18974 when direct moves are available.
18975 (signbit<mode>2_dm): New define_insn_and_split).
18976 (signbit<mode>2_dm2): New define_insn.
18977
18978 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18979
18980 PR rtl-optimization/71594
18981 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
18982 into subregs of appropriate mode before trying to emit a conditional
18983 move.
18984
18985 2016-07-05 Jan Hubicka <jh@suse.cz>
18986
18987 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
18988 (simple_iv): Use it.
18989
18990 2016-07-05 Jan Hubicka <jh@suse.cz>
18991
18992 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
18993
18994 2016-07-05 Jiong Wang <jiong.wang@arm.com>
18995
18996 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
18997 "offmemok".
18998
18999 2016-07-05 Jan Hubicka <jh@suse.cz>
19000
19001 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
19002 IV can overflow.
19003
19004 2016-07-05 Richard Biener <rguenther@suse.de>
19005
19006 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
19007 Handle empty else block.
19008 (is_feasible_trace): Likewise.
19009 (split_paths): Likewise.
19010
19011 2016-07-05 Richard Biener <rguenther@suse.de>
19012
19013 * tree-loop-distribution.c (distribute_loop): Fix issue with
19014 the cost model loop.
19015
19016 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
19017
19018 * config/arm/neon-testgen.ml: Delete.
19019 * config/arm/neon.ml: Delete.
19020
19021 2016-07-04 Jakub Jelinek <jakub@redhat.com>
19022
19023 PR c++/71739
19024 * tree.c (attribute_value_equal): Use get_attribute_name instead of
19025 directly using TREE_PURPOSE.
19026
19027 2016-07-04 Jiong Wang <jiong.wang@arm.com>
19028
19029 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
19030 * config/aarch64/aarch64_neon.h: Likewise.
19031 * config/aarch64/arm_neon.h: Likewise.
19032 * config/aarch64/atomics.md: Likewise.
19033 * config/aarch64/aarch64-simd-builtins.def: Likewise.
19034 * doc/invoke.texi: Likewise.
19035
19036 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
19037
19038 * config/s390/s390.md: Add "z13" cpu_facility.
19039 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
19040 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
19041 condition" type instructions.
19042
19043 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
19044 Jeff Law <law@redhat.com>
19045
19046 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
19047 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
19048
19049 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
19050
19051 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
19052 permutation for TARGET_AVX512F.
19053 (ix86_expand_vec_one_operand_perm_avx512): New function.
19054 (expand_vec_perm_1): Invoke introduced function.
19055 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
19056 it may be not valid after vectorization.
19057
19058 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19059
19060 PR target/63874
19061 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
19062 typo in comment. Only force to memory if it is a weak
19063 external reference.
19064
19065 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
19066 Jiong Wang <jiong.wang@arm.com>
19067
19068 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
19069 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
19070 (AARCH64_FL_F16): New.
19071 (AARCH64_FL_FOR_ARCH8_2): New.
19072 (AARCH64_ISA_8_2): New.
19073 (AARCH64_ISA_F16): New.
19074 (TARGET_FP_F16INST): New.
19075 (TARGET_SIMD_F16INST): New.
19076 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
19077 ("fp"): Disabling "fp" also disables "fp16".
19078 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
19079 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
19080 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
19081 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
19082
19083 2016-07-04 Jan Beulich <jbeulich@suse.com>
19084
19085 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
19086
19087 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
19088
19089 PR target/71720
19090 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
19091 the insns, use an insn form that does not adjust the offset on
19092 little endian systems.
19093
19094 2016-07-01 Jan Beulich <jbeulich@suse.com>
19095
19096 * varasm.c (get_variable_section): Validate initializer in
19097 named .bss-like sections.
19098
19099 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
19100
19101 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
19102 Exchange the order of the second and third operands in the vpermr
19103 instruction tmeplate.
19104
19105 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
19106
19107 PR target/71698
19108 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
19109 Disallow TDmode values.
19110
19111 2016-07-01 Alan Modra <amodra@gmail.com>
19112
19113 PR rtl-optimization/71709
19114 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
19115 being set, not referenced.
19116
19117 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
19118
19119 PR tree-optimization/70729
19120 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
19121 of loop since it can be not valid after transformation.
19122
19123 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19124
19125 * config/arm/arm.c (thumb_reload_in_hi): Delete.
19126 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
19127
19128 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
19129
19130 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
19131 for NULL decl.
19132
19133 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
19134
19135 PR target/71677
19136 * config/rs6000/constraints.md (wY constraint): New constraint to
19137 match the requirements for the LXSD and STXSD instructions.
19138 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
19139 predicate to match the requirements for the LXSD and STXSD
19140 instructions.
19141 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
19142 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
19143 to make sure that the bottom 2 bits of offset are 0, the address
19144 form is offsettable, and no updating is done in the address mode.
19145 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
19146 (movdi_internal32): Likewise
19147 (movdi_internal64): Likewise.
19148
19149 2016-06-30 Jakub Jelinek <jakub@redhat.com>
19150
19151 PR tree-optimization/71707
19152 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
19153 strinfo even for ADDR_EXPR ptr.
19154
19155 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
19156
19157 * config/rs6000/altivec.md (darn_32): Change the condition to
19158 TARGET_P9_MISC instead of TARGET_MODULO.
19159 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
19160 condition expression.
19161 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
19162 condition expression.
19163 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
19164 (DFP_TEST): New code iterator.
19165 (dfptstsfi_<code>_mode>): New define_expand.
19166 (*dfp_sgnfcnc_<mode>): New define_insn.
19167 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
19168 definition next to BU_P9_MISC_1 definition and change the MASK
19169 value to RS6000_BTM_P9_MISC.
19170 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
19171 (BU_P9_64BIT_MISC_0): Likewise.
19172 (BU_P9_DFP_MISC_0): New macro definition.
19173 (BU_P9_DFP_MISC_1): New macro definition.
19174 (BU_P9_DFP_MISC_2): New macro definition.
19175 (BU_P9_DFP_OVERLOAD_1): New macro definition.
19176 (BU_P9_DFP_OVERLOAD_2): New macro definition.
19177 (BU_P9_DFP_OVERLOAD_3): New macro definition.
19178 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
19179 (TSTSFI_LT_TD): Likewise.
19180 (TSTSFI_EQ_DD): Likewise.
19181 (TSTSFI_EQ_TD): Likewise.
19182 (TSTSFI_GT_DD): Likewise.
19183 (TSTSFI_GT_TD): Likewise.
19184 (TSTSFI_OV_DD): Likewise.
19185 (TSTSFI_OV_TD): Likewise.
19186 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
19187 (TSTSFI_LT_DD): Likewise.
19188 (TSTSFI_LT_TD): Likewise.
19189 (TSTSFI_EQ): Likewise.
19190 (TSTSFI_EQ_DD): Likewise.
19191 (TSTSFI_EQ_TD): Likewise.
19192 (TSTSFI_GT): Likewise.
19193 (TSTSFI_GT_DD): Likewise.
19194 (TSTSFI_GT_TD): Likewise.
19195 (TSTSFI_OV): Likewise.
19196 (TSTSFI_OV_DD): Likewise.
19197 (TSTSFI_OV_TD): Likewise.
19198 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19199 overloaded test significance functions.
19200 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
19201 OPTION_MASK_P9_MISC into the representation of this mask.
19202 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
19203 of this mask.
19204 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
19205 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
19206 non-zero.
19207 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
19208 argument is a 6-bit unsigned literal value if the icode argument
19209 represents a DFP test significance built-in call.
19210 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
19211 flag used independently and in combination with the
19212 RS6000_BTM_64BIT flag.
19213 (rs6000_opt_masks): Add entry for power9-misc command-line option.
19214 (rs6000_builtin_mask_names): Add entry for power9-misc
19215 command-line option.
19216 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
19217 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
19218 RS6000_BTM_P9_MISC macros.
19219 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
19220 option and change the description of the -mpower9-vector option to
19221 enable only vector instructions, removing its erroneously claimed
19222 support for scalar instructions.
19223 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
19224 the ISA 3.0 digital floating point test significance built-in
19225 functions.
19226
19227 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
19228
19229 * config/aarch64/aarch64.c (cortexa35_tunings):
19230 Enable AES fusion. Use cortexa57_branch_cost.
19231 (cortexa53_tunings): Use cortexa57_branch_cost.
19232 (cortexa72_tunings): Use cortexa57_branch_cost.
19233 Use AUTOPREFETCHER_WEAK.
19234 (cortexa73_tunings): Use cortexa57_branch_cost.
19235
19236 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19237 James Greenhalgh <james.greenhalgh@arm.com>
19238
19239 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
19240 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
19241 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
19242 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
19243 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
19244 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
19245 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
19246 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
19247 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
19248 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
19249 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
19250 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
19251 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
19252 New intrinsics.
19253
19254 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
19255 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19256
19257 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
19258 New define_insn.
19259 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
19260
19261 2016-06-30 David Malcolm <dmalcolm@redhat.com>
19262
19263 PR driver/71651
19264 * gcc.c (driver::build_option_suggestions): Pass "option" to
19265 add_misspelling_candidates.
19266 * opts-common.c (add_misspelling_candidates): Add "option" param;
19267 use it to avoid adding negated forms for options marked with
19268 RejectNegative.
19269 * opts.h (add_misspelling_candidates): Add "option" param.
19270
19271 2016-06-30 Jakub Jelinek <jakub@redhat.com>
19272
19273 PR middle-end/71693
19274 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
19275 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
19276 first when permuting bitwise operation with rotate. Cast
19277 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
19278
19279 2016-06-29 David Malcolm <dmalcolm@redhat.com>
19280
19281 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
19282 for misspelled param names.
19283 * params.c: Include spellcheck.h.
19284 (find_param_fuzzy): New function.
19285 * params.h (find_param_fuzzy): New prototype.
19286 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
19287 * spellcheck.h (struct edit_distance_traits<const char *>):
19288 ...here.
19289
19290 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
19291
19292 * config/rs6000/predicates.md (const_0_to_7_operand): New
19293 predicate, recognize 0..7.
19294 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
19295 support for doing extracts from V16QImode, V8HImode, V4SImode
19296 under ISA 3.0.
19297 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
19298 vector extract support.
19299 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
19300 for ISA 3.0 vector extract.
19301 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
19302 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
19303 extracts of a constant element number from small integer vectors
19304 on 64-bit ISA 3.0 systems.
19305 (vsx_extract_<mode>_di): Likewise.
19306 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
19307 say when we can do ISA 3.0 vector extracts.
19308 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
19309 registers, using the stxsiwx instruction.
19310
19311 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
19312
19313 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
19314 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
19315 qdf24xx_regmove_cost, qdf24xx_tunings): New.
19316 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
19317 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
19318 * config/arm/arm.c (arm_qdf24xx_tune): New.
19319
19320 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
19321
19322 * config/aarch64/aarch64.c (cortexa53_tunings):
19323 Increase loop alignment to 8. Set function alignment to 16.
19324 (cortexa35_tunings): Likewise.
19325 (cortexa57_tunings): Increase loop alignment to 8.
19326 (cortexa72_tunings): Likewise.
19327 (cortexa73_tunings): Likewise.
19328
19329 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
19330
19331 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
19332 for arm_fp16_ok and arm_fp16_hw.
19333 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
19334 arm_fp16_alternative.
19335
19336 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
19337
19338 PR tree-optimization/71655
19339 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
19340 types when swapping operands.
19341
19342 2016-06-29 Martin Liska <mliska@suse.cz>
19343
19344 PR middle-end/71585
19345 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
19346 * ipa-inline-transform.c (inline_call): Remove unnecessary call
19347 of build_optimization_node.
19348
19349 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
19350
19351 PR tree-optimization/70729
19352 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
19353 independent in loops having positive safelen value.
19354 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
19355 it may be not valid after vectorization.
19356
19357 2016-06-29 Jakub Jelinek <jakub@redhat.com>
19358
19359 PR tree-optimization/71625
19360 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
19361 is sorted by ascending list->offset. If PTR is non-NULL and there is
19362 previous strinfo, call get_stridx_plus_constant.
19363 (get_stridx): Pass exp as second argument to get_addr_stridx.
19364 (addr_stridxptr): Add missing list = list->next, so that there can be
19365 more than one entries in the list. Bump limit from 16 to 32. Ensure
19366 the list is sorted by ascending list->offset.
19367 (get_stridx_plus_constant): Adjust so that it can be also called with
19368 ADDR_EXPR instead of SSA_NAME as PTR.
19369 (handle_char_store): Pass NULL_TREE as second argument to
19370 get_addr_stridx.
19371
19372 2016-06-29 Richard Biener <rguenther@suse.de>
19373
19374 PR rtl-optimization/68961
19375 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
19376
19377 2016-06-29 Richard Biener <rguenther@suse.de>
19378
19379 PR middle-end/71002
19380 * alias.c (component_uses_parent_alias_set_from): Handle
19381 type punning through union accesses by using the union alias set.
19382 * gimple.c (gimple_get_alias_set): Remove union type punning case.
19383
19384 2016-07-29 Richard Biener <rguenther@suse.de>
19385
19386 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
19387 precision not matching mode precision.
19388
19389 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
19390
19391 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
19392 pa_output_arg_descriptor.
19393 (call_val_symref_64bit_post_reload): Likewise.
19394 (call_val_powf_64bit_post_reload): Likewise.
19395 (sibcall_internal_symref_64bit): Likewise.
19396 (sibcall_value_internal_symref_64bit): Likewise.
19397
19398 2016-06-28 Jakub Jelinek <jakub@redhat.com>
19399
19400 PR middle-end/71626
19401 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
19402 a constant, force its SUBREG_REG into memory or register instead
19403 of whole op1.
19404
19405 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
19406
19407 PR target/58655
19408 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
19409 * doc/invoke.texi (AVR Options): Document it.
19410
19411 2016-06-28 Walter Lee <walt@tilera.com>
19412
19413 * config/tilegx/linux.h: Do not include arch/icache.h
19414 (CLEAR_INSN_CACHE): Provide inlined definition directly.
19415 * config/tilepro/linux.h: Do not include arch/icache.h
19416 (CLEAR_INSN_CACHE): Provide inlined definition directly.
19417
19418 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
19419
19420 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
19421 for big-endian BIT_FIELD_REF.
19422
19423 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
19424
19425 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
19426 ('size' attribute): Add '128'.
19427 Include power9.md.
19428 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
19429 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
19430 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
19431 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
19432 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
19433 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
19434 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
19435 *trunc<mode>df2_odd): Set size attribute to '128'.
19436 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
19437 * config/rs6000/power6.md (power6-fp): Include dfp type.
19438 * config/rs6000/power7.md (power7-fp): Likewise.
19439 * config/rs6000/power8.md (power8-fp): Likewise.
19440 * config/rs6000/power9.md: New file.
19441 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
19442 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
19443 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
19444 htmsimple.
19445 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
19446 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
19447 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
19448 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
19449 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
19450 dfp_dscri_<mode>): Change type attribute to dfp.
19451 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
19452 attribute to vecsimple.
19453 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
19454 and prefetch streams.
19455 (rs6000_option_override_internal): Remove temporary code setting
19456 tuning to power8. Don't set rs6000_sched_groups for power9.
19457 (last_scheduled_insn): Change to rtx_insn *.
19458 (divide_cnt, vec_load_pendulum): New variables.
19459 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
19460 (rs6000_issue_rate): Set issue rate for Power9.
19461 (is_power9_pairable_vec_type): New.
19462 (power9_sched_reorder2): New.
19463 (rs6000_sched_reorder2): Call new function for Power9 specific
19464 reordering.
19465 (insn_must_be_first_in_group): Remove Power9.
19466 (insn_must_be_last_in_group): Likewise.
19467 (force_new_group): Likewise.
19468 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
19469 Initialize divide_cnt/vec_load_pendulum.
19470 (_rs6000_sched_context, rs6000_init_sched_context,
19471 rs6000_set_sched_context): Handle context save/restore of new
19472 variables.
19473
19474 2016-06-28 Richard Biener <rguenther@suse.de>
19475
19476 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
19477 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
19478 COMPONENT_REF operand.
19479 (nonoverlapping_component_refs_p): Likewise.
19480 * stor-layout.c (start_bitfield_representative): Mark
19481 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
19482
19483 2016-06-28 Jakub Jelinek <jakub@redhat.com>
19484
19485 * Makefile.in: Don't cat ../stage_current if it does not exist.
19486
19487 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
19488 last argument is a bit-field.
19489
19490 PR rtl-optimization/71673
19491 * internal-fn.c (expand_arith_overflow_result_store): Use
19492 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
19493 expand_simple_binop.
19494
19495 PR middle-end/66867
19496 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
19497 expand_ifn_atomic_compare_exchange): New functions.
19498 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
19499 * tree.h (build_call_expr_internal_loc): Rename to ...
19500 (build_call_expr_internal_loc_array): ... this. Fix up type of
19501 last argument.
19502 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
19503 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
19504 ATOMIC_COMPARE_EXCHANGE result.
19505 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
19506 * gimple-fold.h (optimize_atomic_compare_exchange_p,
19507 fold_builtin_atomic_compare_exchange): New prototypes.
19508 * gimple-fold.c (optimize_atomic_compare_exchange_p,
19509 fold_builtin_atomic_compare_exchange): New functions..
19510 * tree-ssa.c (execute_update_addresses_taken): If
19511 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
19512 of call when finding addressable vars, and if such var becomes
19513 non-addressable, call fold_builtin_atomic_compare_exchange.
19514
19515 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
19516
19517 PR target/71670
19518 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
19519 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
19520
19521 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
19522
19523 * config/rs6000/rs6000.md ('type' attribute): Add
19524 veclogical,veccmpfx,vecexts,vecmove insn types.
19525 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
19526 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
19527 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
19528 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
19529 *nabs<mode>2_hw): Change type to vecmove.
19530 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
19531 *boolcc<mode>3_internal, *eqv<mode>3_internal,
19532 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
19533 *ieee_128bit_vsx_abs<mode>2_internal,
19534 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
19535 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
19536 *ieee128_mtvsrd_32bit): Change type to veclogical.
19537 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
19538 *movdi_internal32, *movdi_internal64): Update insn types.
19539 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
19540 vsx_extract_<mode>): Change type to veclogical.
19541 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
19542 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
19543 *vsx_sign_extend_si_v2di): Change type to vecexts.
19544 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
19545 type to veclogical.
19546 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
19547 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
19548 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
19549 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
19550 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
19551 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
19552 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
19553 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
19554 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
19555 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
19556 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
19557 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
19558 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
19559 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
19560 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
19561 (ppc7450-vecsimple): Add veclogical, vecmove.
19562 (ppc7450-veccmp): Add veccmpfx.
19563 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
19564 vecmove.
19565 (ppc8540_vector_compare): Add veccmpfx.
19566 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
19567 * config/rs6000/cell.md (cell-fp): Add fpsimple.
19568 (cell-vecsimple): Add veclogical, vecmove.
19569 (cell-veccmp): Add veccmpfx.
19570 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
19571 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
19572 veccmpfx.
19573 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
19574 * config/rs6000/power4.md (power4-fp): Add fpsimple.
19575 (power4-vecsimple): Add veclogical, vecmove.
19576 (power4-veccmp): Add veccmpfx.
19577 * config/rs6000/power5.md (power5-fp): Add fpsimple.
19578 * config/rs6000/power6.md (power6-fp): Add fpsimple.
19579 (power6-vecsimple): Add veclogical, vecmove.
19580 (power6-veccmp): Add veccmpfx.
19581 * config/rs6000/power7.md (power7-fp): Add fpsimple.
19582 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
19583 * config/rs6000/power8.md (power8-fp): Add fpsimple.
19584 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
19585 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
19586 * config/rs6000/titan.md (titan_fp): Add fpsimple.
19587 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
19588 fpsimple.
19589 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
19590
19591 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
19592
19593 PR target/71656
19594 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
19595 OPTION_MASK_P9_DFORM_VECTOR.
19596 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
19597 disable -mpower9-dform-vector when using reload.
19598 (quad_address_p): Remove 'gpr_p' argument and all associated code.
19599 New 'strict' argument. Update all callers. Add strict addressing
19600 support.
19601 (rs6000_legitimate_offset_address_p): Remove call to
19602 virtual_stack_registers_memory_p.
19603 (rs6000_legitimize_reload_address): Add quad address support.
19604 (rs6000_legitimate_address_p): Move call to quad_address_p above
19605 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
19606 to account for new strict usage.
19607 (rs6000_output_move_128bit): Adjust quad_address_p args to account
19608 for new strict usage.
19609 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
19610
19611 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
19612
19613 PR target/70902
19614 PR target/71453
19615 PR target/71555
19616 PR target/71596
19617 PR target/71657
19618 * config/i386/i386.c (ix86_spill_class): Disable condition to
19619 always return NO_REGS.
19620
19621 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
19622
19623 * predict.c: Include gimple-pretty-print.h
19624 (predicted_by_loop_heuristics_p): Check also
19625 PRED_LOOP_EXIT_WITH_RECURSION
19626 (predict_loops): Find self recursive calls and use special purpose
19627 predictors for them; dump log about decisions.
19628 (pass_profile::execute): Dump info about #of iterations.
19629 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
19630 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
19631
19632 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
19633
19634 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
19635 output_asm_insn calls and shorten long lines. Output .CALL
19636 argument descriptor using pa_output_arg_descriptor. Add various
19637 inline $$dyncall and other optimizations.
19638 (pa_attr_length_indirect_call): Adjust ordering and lengths.
19639
19640 2016-06-25 Jakub Jelinek <jakub@redhat.com>
19641
19642 PR tree-optimization/71643
19643 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
19644 EH preds.
19645
19646 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
19647 leak a bitmap if dep_bb is NULL.
19648
19649 PR tree-optimization/71631
19650 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
19651 to rewrite_expr_tree even if negate_result, move new_lhs var
19652 declaration and initialization earlier, for powi_result set afterwards
19653 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
19654 if new_lhs != lhs, and don't shadow gsi var.
19655
19656 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
19657
19658 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
19659 Add in_loop parameter.
19660 (predict_loops): Add loop guard heuristics.
19661 * predict.def (PRED_LOOP_GUARD): New heuristics.
19662
19663 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
19664
19665 * predict.c: Include ipa-utils.h
19666 (tree_bb_level_prediction): Predict recursive calls.
19667 (tree_estimate_probability_bb): Skip inexpensive calls for call
19668 predictor.
19669 * predict.def (PRED_RECURSIVE_CALL): New.
19670
19671 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19672
19673 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
19674 (BU_FLOAT128_1): Likewise.
19675 (FABSQ): Likewise.
19676 (COPYSIGNQ): Likewise.
19677 (RS6000_BUILTIN_NANQ): Likewise.
19678 (RS6000_BUILTIN_NANSQ): Likewise.
19679 (RS6000_BUILTIN_INFQ): Likewise.
19680 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
19681 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
19682 (TARGET_FOLD_BUILTIN): New #define.
19683 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
19684 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
19685 (rs6000_fold_builtin): New target hook implementation, handling
19686 folding of 128-bit NaNs and infinities.
19687 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
19688 entries are filled in to avoid problems during bootstrap
19689 self-test; define builtins for 128-bit NaNs and infinities.
19690 (rs6000_opt_mask): Add entry for float128.
19691 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
19692 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
19693 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
19694 (const_str_type_node): New #define.
19695 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
19696 to a define_expand that dispatches to either copysign<mode>3_soft
19697 or copysign<mode>3_hard.
19698 (copysign<mode>3_hard): Rename from copysign<mode>3.
19699 (copysign<mode>3_soft): New define_insn.
19700 * doc/extend.texi: Document new builtins.
19701
19702 2016-06-24 Jakub Jelinek <jakub@redhat.com>
19703
19704 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
19705 PRIu64 instead of lu.
19706
19707 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
19708
19709 PR debug/71642
19710 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
19711 copy the type name.
19712
19713 2016-06-24 Jakub Jelinek <jakub@redhat.com>
19714
19715 PR tree-optimization/71647
19716 * omp-low.c (lower_rec_input_clauses): Convert
19717 omp_clause_aligned_alignment (c) to size_type_node for the
19718 last argument of __builtin_assume_aligned.
19719
19720 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
19721
19722 * configure.ac (calling ___tls_get_addr via GOT): New
19723 assembler/linker check.
19724 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
19725 assembler and linker supports calling ___tls_get_addr via GOT.
19726 Otherise, defined to 0.
19727 * config.in: Regenerated.
19728 * configure: Likewise.
19729 * config/i386/constraints.md (Yb): New constraint.
19730 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
19731 (REG_CLASS_NAMES): Likewise.
19732 (REG_CLASS_CONTENTS): Likewise.
19733 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
19734 the b constraint with the Yb constraint. Call ___tls_get_addr
19735 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
19736 is 1.
19737 (*tls_local_dynamic_base_32_gnu): Likewise.
19738 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
19739 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
19740 (*tls_local_dynamic_base_64_<mode>): Likewise.
19741
19742 2016-06-24 Martin Liska <mliska@suse.cz>
19743
19744 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
19745 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
19746 few functions.
19747 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
19748 argument to true if the expected number of iterations is
19749 loop-based.
19750
19751 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
19752
19753 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
19754 assemble for 32bit target.
19755 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
19756 and $ld_ix86_gld_32_opt to link for 32bit target.
19757 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
19758 * configure: Regenerate.
19759
19760 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19761
19762 * config/arm/arm.c (int_log2): Delete definition and prototype.
19763 (shift_op): Use exact_log2 instead of int_log2.
19764 (vfp3_const_double_for_fract_bits): Likewise.
19765
19766 2016-06-24 Jakub Jelinek <jakub@redhat.com>
19767
19768 * internal-fn.c (expand_arith_set_overflow): New function.
19769 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
19770 Use it.
19771 (expand_arith_overflow_result_store): Likewise. Handle precision
19772 smaller than mode precision.
19773 * tree-vrp.c (extract_range_basic): For imag part, handle
19774 properly signed 1-bit precision result.
19775 * doc/extend.texi (__builtin_add_overflow): Document that last
19776 argument can't be pointer to enumerated or boolean type.
19777 (__builtin_add_overflow_p): Document that last argument can't
19778 have enumerated or boolean type.
19779
19780 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19781 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19782
19783 * config/rs6000/predicates.md (splat_input_operand): Rework.
19784 Don't allow constants, since the insns that use this predicate
19785 don't support constants. Constants are handled by other insns
19786 that are created via combine. During and after register
19787 allocation, only allow indexed or indirect addresses, and not
19788 general addresses. Only allow modes supported by the hardware.
19789 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
19790 comment. Move check for using VSPLTIS<x> to a common location,
19791 instead of doing it in two different places.
19792
19793 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
19794
19795 * config/i386/driver-i386.c (host_detect_local_cpu): Set
19796 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
19797 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
19798 signature_CENTAUR_ebx.
19799
19800 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
19801
19802 PR target/66232
19803 PR target/67400
19804 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
19805 (as_ix86_gas_32_opt): This.
19806 (ld_ix86_tls_ldm_opt): Renamed to ...
19807 (ld_ix86_gld_32_opt): This.
19808 (R_386_TLS_LDM reloc): Updated.
19809 (R_386_GOT32X reloc): New assembler/linker check.
19810 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
19811 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
19812 defined to 0.
19813 * config.in: Regenerated.
19814 * configure: Likewise.
19815 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
19816 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
19817 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
19818 if ix86_force_load_from_GOT_p returns true.
19819 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
19820 ix86_force_load_from_GOT_p returns true.
19821 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
19822 the external function address via the GOT slot.
19823 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
19824 HAVE_AS_IX86_GOT32X before returning false.
19825 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
19826 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
19827
19828 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
19829
19830 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
19831
19832 2016-06-23 Andi Kleen <ak@linux.intel.com>
19833
19834 * Makefile.in: Regenerate.
19835 * doc/install.texi: Document autoprofiledbootstrap.
19836
19837 2016-06-23 Andi Kleen <ak@linux.intel.com>
19838
19839 * config/i386/gcc-auto-profile: New file.
19840
19841 2016-06-23 Martin Liska <mliska@suse.cz>
19842
19843 PR middle-end/71619
19844 * predict.c (predict_loops): Revert the hunk that was removed
19845 in r237103.
19846
19847 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
19848
19849 * config.gcc: Add support for arm*-*-phoenix* targets.
19850 * config/arm/t-phoenix: New.
19851 * config/phoenix.h: New.
19852
19853 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
19854 H.J. Lu <hongjiu.lu@intel.com>
19855
19856 PR target/67400
19857 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
19858 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
19859 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
19860 ix86_force_load_from_GOT_p returns true.
19861 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
19862 ix86_force_load_from_GOT_p returns true.
19863 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
19864 ix86_force_load_from_GOT_p returns true.
19865 (ix86_expand_move): Load the external function address via the
19866 GOT slot if ix86_force_load_from_GOT_p returns true.
19867 * config/i386/predicates.md (x86_64_immediate_operand): Return
19868 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
19869 (x86_64_zext_immediate_operand): Ditto.
19870
19871 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
19872
19873 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
19874
19875 2016-06-22 David Malcolm <dmalcolm@redhat.com>
19876
19877 PR c/70339
19878 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
19879 * diagnostic.c (pedwarn_at_rich_loc): New function.
19880 * spellcheck.h (best_match::best_match): Add a
19881 "best_distance_so_far" optional parameter.
19882 (best_match::set_best_so_far): New method.
19883 (best_match::get_best_distance): New accessor.
19884 (best_match::get_best_candidate_length): New accessor.
19885
19886 2016-06-22 Nick Clifton <nickc@redhat.com>
19887
19888 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
19889 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
19890 modes are accepted as well.
19891 (ucompare_loc_descriptor): Likewise.
19892 (minmax_loc_descriptor): Likewise.
19893 (clz_loc_descriptor): Likewise.
19894 (popcount_loc_descriptor): Likewise.
19895 (bswap_loc_descriptor): Likewise.
19896 (rotate_loc_descriptor): Likewise.
19897 (mem_loc_descriptor): Likewise.
19898 (loc_descriptor): Likewise.
19899
19900 2016-06-22 David Malcolm <dmalcolm@redhat.com>
19901
19902 * common.opt (fdiagnostics-parseable-fixits): New option.
19903 * diagnostic.c: Include "selftest.h".
19904 (print_escaped_string): New function.
19905 (print_parseable_fixits): New function.
19906 (diagnostic_report_diagnostic): Call print_parseable_fixits.
19907 (selftest::assert_print_escaped_string): New function.
19908 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
19909 (selftest::test_print_escaped_string): New function.
19910 (selftest::test_print_parseable_fixits_none): New function.
19911 (selftest::test_print_parseable_fixits_insert): New function.
19912 (selftest::test_print_parseable_fixits_remove): New function.
19913 (selftest::test_print_parseable_fixits_replace): New function.
19914 (selftest::diagnostic_c_tests): New function.
19915 * diagnostic.h (struct diagnostic_context): Add field
19916 "parseable_fixits_p".
19917 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
19918 -fdiagnostics-parseable-fixits.
19919 (-fdiagnostics-parseable-fixits): New option.
19920 * opts.c (common_handle_option): Handle
19921 -fdiagnostics-parseable-fixits.
19922 * selftest-run-tests.c (selftest::run_tests): Call
19923 selftest::diagnostic_c_tests.
19924 * selftest.h (selftest::diagnostic_c_tests): New prototype.
19925
19926 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
19927
19928 PR tree-optimization/71488
19929 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
19930 comparison of boolean vectors.
19931 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
19932 of boolean vectors using bitwise operations.
19933
19934 2016-06-22 Andreas Schwab <schwab@suse.de>
19935
19936 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
19937 Remove declaration.
19938
19939 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
19940
19941 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
19942
19943 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
19944
19945 * config/i386/i386.c (print_reg): Emit an error message on attempt to
19946 print FLAGS_REG.
19947
19948 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19949
19950 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
19951 * config/arm/arm-cores.def (cortex-a73): New entry.
19952 (cortex-a73.cortex-a35): Likewise.
19953 (cortex-a73.cortex-a53): Likewise.
19954 * config/arm/arm-tables.opt: Regenerate.
19955 * config/arm/arm-tune.md: Likewise.
19956 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
19957 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
19958 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
19959 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
19960 * doc/invoke.texi (ARM Options): Document cortex-a73,
19961 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
19962
19963 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19964
19965 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
19966 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
19967 (cortex-a73.cortex-a35): Likewise.
19968 (cortex-a73.cortex-a53): Likewise.
19969 * config/aarch64/aarch64-tune.md: Regenerate.
19970 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
19971 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
19972 -mcpu and -mtune.
19973
19974 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19975
19976 * configure.ac (gcc_cv_as_compress_debug): Remove
19977 --compress-debug-sections as extra as switch.
19978 Handle gas --compress-debug-sections=type.
19979 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
19980 Handle gld --compress-debug-sections=type.
19981 * configure: Regenerate.
19982
19983 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
19984
19985 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
19986
19987 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
19988
19989 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
19990 (do_rewrite): likewise.
19991
19992 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19993
19994 * common/config/mep/mep-common.c: Remove.
19995 * config.gcc: Remove mep-* support.
19996 * config/mep/constraints.md: Remove.
19997 * config/mep/default.h: Remove.
19998 * config/mep/intrinsics.h: Remove.
19999 * config/mep/intrinsics.md: Remove.
20000 * config/mep/ivc2-template.h: Remove.
20001 * config/mep/mep-c5.cpu: Remove.
20002 * config/mep/mep-core.cpu: Remove.
20003 * config/mep/mep-default.cpu: Remove.
20004 * config/mep/mep-ext-cop.cpu: Remove.
20005 * config/mep/mep-intrin.h: Remove.
20006 * config/mep/mep-ivc2.cpu: Remove.
20007 * config/mep/mep-pragma.c: Remove.
20008 * config/mep/mep-protos.h: Remove.
20009 * config/mep/mep.c: Remove.
20010 * config/mep/mep.cpu: Remove.
20011 * config/mep/mep.h: Remove.
20012 * config/mep/mep.md: Remove.
20013 * config/mep/mep.opt: Remove.
20014 * config/mep/predicates.md: Remove.
20015 * config/mep/t-mep: Remove.
20016 * doc/install.texi: Remove mep-* documentation.
20017 * doc/md.texi: Likewise.
20018
20019 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20020
20021 * config.gcc: Remove support for avr-rtems.
20022 * config/avr/gen-avr-mmcu-specs.c: Likewise.
20023 * config/avr/rtems.h: Remove.
20024 * config/avr/t-rtems: Remove.
20025
20026 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20027
20028 * config.gcc: Remove m32r-rtems support.
20029 * config/m32r/rtems.h: Remove.
20030
20031 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20032
20033 * config.gcc: Remove h8300-rtems support.
20034 * config/h8300/rtems.h: Remove.
20035 * config/h8300/t-rtems: Remove.
20036
20037 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20038
20039 * config.gcc: Remove support for knetbsd.
20040 * configure.ac: Likewise.
20041 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
20042 * config/knetbsd-gnu.h: Remove.
20043 * configure: Regenerate.
20044
20045 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20046
20047 * config.gcc: Remove support for openbsd 2 and 3.
20048 * config/openbsd-oldgas.h: Remove.
20049
20050 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
20051
20052 * config.gcc: Remove interix support.
20053 * config/i386/i386-interix.h: Remove.
20054 * config/i386/interix.opt: Remove.
20055 * config/i386/t-interix: Remove.
20056 * configure: Regenerate.
20057 * configure.ac: Remove interix support.
20058 * doc/install.texi: Remove interix documentation.
20059
20060 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
20061
20062 * config/rs6000/rs6000.h: Add conditional preprocessing directives
20063 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
20064 not defined.
20065
20066 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
20067
20068 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
20069 they are both PLACEHOLDER_EXPRs.
20070
20071 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
20072
20073 * stor-layout.c (layout_type): Move setting complex MODE to
20074 layout_type, instead of setting it ahead of time by the caller.
20075 * tree.c (build_complex_type): Likewise.
20076
20077 2016-06-21 Martin Liska <mliska@suse.cz>
20078
20079 * predict.c (force_edge_cold): Replace imposisble with
20080 impossible.
20081
20082 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
20083
20084 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
20085 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
20086
20087 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
20088
20089 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
20090
20091 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
20092 Ilya Enkovich <ilya.enkovich@intel.com>
20093
20094 PR target/71549
20095 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
20096 New member function to convert V1TImode register to SUBREG
20097 TImode in debug insn.
20098 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
20099 after changing register mode to V1TImode.
20100
20101 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
20102
20103 * config/aarch64/aarch64-cores.def (vulcan): New core.
20104 * config/aarch64/aarch64-tune.md: Regenerate.
20105 * doc/invoke.texi: Document vulcan as an available option.
20106
20107 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
20108
20109 * cse.c (canon_asm_operands): New function extracted from...
20110 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
20111 either standalone or member of a PARALLEL.
20112
20113 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
20114
20115 PR target/30417
20116 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
20117 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
20118 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
20119
20120 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
20121
20122 PR target/71103
20123 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
20124 constant addresses if can_create_pseudo_p.
20125
20126 2016-06-21 Jakub Jelinek <jakub@redhat.com>
20127
20128 PR tree-optimization/71588
20129 * tree-ssa-strlen.c (valid_builtin_call): New function.
20130 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
20131 it.
20132
20133 2016-06-20 Jakub Jelinek <jakub@redhat.com>
20134
20135 PR middle-end/71581
20136 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
20137 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
20138 for conversion of scalar user var to complex type and use the
20139 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
20140 punt.
20141
20142 PR rtl-optimization/71591
20143 * toplev.c (toplev::run_self_tests): If no_backend, complain and
20144 don't run any tests.
20145
20146 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
20147
20148 PR target/71571
20149 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
20150 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
20151 space for PIC with non-v32 and the common non-PIC "jump".
20152
20153 2016-06-20 Jakub Jelinek <jakub@redhat.com>
20154
20155 PR target/71559
20156 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
20157 returned values and add UN*/LTGT/*ORDERED cases with values matching
20158 D operand modifier on vcmp for AVX.
20159
20160 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
20161
20162 * config/aarch64/aarch64.opt
20163 (mpc-relative-literal-loads): Rename internal option name.
20164 * config/aarch64/aarch64.c
20165 (aarch64_nopcrelative_literal_loads): Rename to
20166 aarch64_pcrelative_literal_loads.
20167 (aarch64_expand_mov_immediate): Likewise.
20168 (aarch64_secondary_reload): Likewise.
20169 (aarch64_can_use_per_function_literal_pools_p): Likewise.
20170 (aarch64_override_options_after_change_1): Rename and simplify logic.
20171 (aarch64_classify_symbol): Merge large model checks into switch,
20172 remove pc-relative load check.
20173
20174 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
20175
20176 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
20177 costs relative to the cost of a register move.
20178
20179 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
20180
20181 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
20182 (vcvt_n_f64_u64): Likewise.
20183 (vcvt_n_s64_f64): Likewise.
20184 (vcvt_n_u64_f64): Likewise.
20185 (vcvt_f64_s64): Likewise.
20186 (vrecpe_f64): Likewise.
20187 (vcvt_f64_u64): Likewise.
20188 (vrecps_f64): Likewise.
20189
20190 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
20191
20192 * config/aarch64/aarch64.md
20193 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
20194 iterators.
20195 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
20196 attributes.
20197 * config/aarch64/aarch64-builtins.c
20198 (aarch64_types_binop_uss_qualifiers): Delete.
20199 (TYPES_BINOP_USS): Likewise.
20200 (aarch64_types_binop_sus_qualifiers): Likewise.
20201 (TYPES_BINOP_SUS): Likewise.
20202 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
20203 (TYPES_FCVTIMM_SUS): Likewise.
20204 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
20205 rather than BINOP.
20206 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
20207 (fcvtzs): Use SHIFTIMM rather than BINOP.
20208 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
20209
20210 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
20211
20212 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
20213 costs relative to the cost of a register move.
20214
20215 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
20216
20217 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
20218 Allow scalar/single vector modes to be tieable.
20219
20220 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
20221
20222 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
20223
20224 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20225
20226 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
20227 "alignement".
20228 * tree.h (TYPE_ALIGN): Likewise.
20229
20230 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
20231
20232 PR target/71103
20233 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
20234
20235 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
20236
20237 * config/avr/avr.c (avr_print_operand): Fix "format not a string
20238 literal" build warnings.
20239 (avr_print_operand_address): Dito.
20240
20241 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
20242
20243 PR target/71375
20244 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
20245 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
20246
20247 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
20248
20249 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
20250
20251 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
20252
20253 PR bootstrap/71435
20254 * reload1.c (reload): Pass 0 to finish_spills when called because
20255 update_eliminables_and_spill returns true and remove did_spill.
20256 (finish_spills): Adjust comment and document GLOBAL parameter.
20257
20258 2016-06-17 DJ Delorie <dj@redhat.com>
20259
20260 PR target/71338
20261 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
20262 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
20263 (umulqihi3_virt): Likewise.
20264 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
20265 (umulqihi3_real): Likewise.
20266
20267 2016-06-17 Martin Liska <mliska@suse.cz>
20268
20269 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
20270
20271 2016-06-17 Martin Liska <mliska@suse.cz>
20272
20273 * predict.def: PRED_LOOP_EXIT from 92 to 85.
20274
20275 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
20276
20277 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
20278 __FAST_MATH__.
20279 (vaddq_f32): Likewise.
20280 (vmul_f32): Likewise.
20281 (vmulq_f32): Likewise.
20282 (vsub_f32): Likewise.
20283 (vsubq_f32): Likewise.
20284
20285 2016-06-17 Bin Cheng <bin.cheng@arm.com>
20286
20287 PR tree-optimization/71347
20288 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
20289 cost for all uses in group.
20290
20291 2016-06-17 Bin Cheng <bin.cheng@arm.com>
20292
20293 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
20294 insert gimple seq if it's not empty.
20295
20296 2016-06-17 Bin Cheng <bin.cheng@arm.com>
20297
20298 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
20299 member OFFSET.
20300 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
20301 rather than OFFSET.
20302 (comp_dr_with_seg_len_pair): Ditto.
20303 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
20304 struct dr_with_seg_len_pair against DR_OFFSET.
20305 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
20306 DR_OFFSET directly.
20307
20308 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
20309
20310 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
20311
20312 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
20313
20314 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
20315 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
20316 (pa_output_millicode_call): Likewise.
20317 (pa_output_call): Likewise.
20318 (pa_output_indirect_call): Likewise.
20319 (pa_asm_output_mi_thunk): Likewise.
20320
20321 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
20322
20323 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
20324
20325 2016-06-16 Martin Liska <mliska@suse.cz>
20326
20327 * predict.c (combine_predictions_for_insn): When we find a first
20328 match predictor, we should consider just predictors with
20329 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
20330 DS theory predictor.
20331 (combine_predictions_for_bb): Likewise.
20332
20333 2016-06-16 Jakub Jelinek <jakub@redhat.com>
20334
20335 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
20336 with base of reference to struct.
20337
20338 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
20339
20340 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
20341
20342 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
20343
20344 PR target/71151
20345 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
20346 progmem_swtable_section.
20347 (progmem_swtable_section): Remove.
20348 (avr_asm_function_rodata_section): Remove.
20349 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
20350 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
20351
20352 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
20353
20354 * config/i386/driver-i386.c (host_detect_local_cpu): Set
20355 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
20356 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
20357 signature_CENTAUR_ebx.
20358 * config/i386/i386.c (ix86_option_override_internal): Add
20359 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
20360 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
20361 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
20362
20363 2016-06-16 Martin Liska <mliska@suse.cz>
20364
20365 * predict.def: Add fortran loop preheader predictor.
20366 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
20367 fold IFN_BUILTIN_EXPECT with a known constant argument.
20368
20369 2016-06-16 Martin Liska <mliska@suse.cz>
20370
20371 * predict.def: Add 'Fortran' to display text of all
20372 PRED_FORTRAN_* predictors.
20373
20374 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
20375
20376 PR target/71242
20377 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
20378 [IA64_BUILTIN_NANSQ]: Ditto.
20379 (ia64_fold_builtin): New function.
20380 (TARGET_FOLD_BUILTIN): New define.
20381 (ia64_init_builtins) Declare const_string_type node.
20382 Add __builtin_nanq and __builtin_nansq builtin functions.
20383 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
20384
20385 2016-06-16 Nick Clifton <nickc@redhat.com>
20386
20387 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
20388 MSP430_HWMULT_ prefix to enum values.
20389 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
20390 * config/msp430/msp430.c: Update use of enum values.
20391 * config/msp430/msp430.md: Likewise.
20392 * config/msp430/msp430.opt: Likewise.
20393
20394 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
20395
20396 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
20397 of comparsions in the last iteration.
20398
20399 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
20400 Joern Rennecke <joern.rennecke@embecosm.com>
20401
20402 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
20403 addresses.
20404 (arc_needs_pcl_p): Add GOTOFFPC.
20405 (arc_legitimate_pic_addr_p): Likewise.
20406 (arc_output_pic_addr_const): Likewise.
20407 (arc_legitimize_pic_address): Generate a pc-relative address using
20408 GOTOFFPC.
20409 (arc_output_libcall): Use @pcl syntax.
20410 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
20411 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
20412 (*movsi_insn): Use @pcl syntax.
20413 (doloop_begin_i): Likewise.
20414
20415 2016-06-16 Martin Liska <mliska@suse.cz>
20416
20417 * predict.def: Define a new predictor.
20418
20419 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
20420
20421 * config/arc/arc.opt (mtp-regno): Update text.
20422
20423 2016-06-16 Renlin Li <renlin.li@arm.com>
20424
20425 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
20426
20427 2016-06-16 Jakub Jelinek <jakub@redhat.com>
20428
20429 PR target/71554
20430 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
20431 (setcc + and peephole2): Likewise.
20432
20433 PR rtl-optimization/71532
20434 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
20435 memory slots.
20436
20437 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
20438
20439 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
20440 DImode constants with XXSPLTIB in vector registers.
20441 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
20442 vsx_extract_<mode>_internal{1,2} into a single insn that handles
20443 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
20444 extraction of the element at the top of the register as a scalar
20445 value.
20446 (vsx_extract_<mode>_internal1): Likewise.
20447 (vsx_extract_<mode>_internal2): Likewise.
20448 * config/rs6000/constraints.md (wi constraint): Remove a comment
20449 about DImode not being allowed in Altivec registers.
20450 (wB constraint): New constraint for constants that can be
20451 generated in Altivec registers with VSPLTISW/VUPKHSW.
20452 * config/rs6000/predicates.md (xxspltib_constant_split): Update
20453 comments.
20454 (xxspltib_constant_nosplit): Likewise.
20455 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
20456 support for -mupper-regs-di to enable DImode to go into Altivec
20457 registers.
20458 (POWERPC_MASKS): Likewise.
20459 (power7 cpu): Likewise.
20460 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
20461 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
20462 for DImode being allowed in Altivec registers. Update wi/wj
20463 constraints. Set scalar_in_vmx_p flag.
20464 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
20465 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
20466 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
20467 (rs6000_opt_masks): Add -mupper-regs-di.
20468 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
20469 direct move to use wi and not wj.
20470 (lfiwzx): Likewise.
20471 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
20472 alternative.
20473 (floatunssi<mode>2_lfiwzx_mem): Likewise.
20474 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
20475 any VSX register, instead of just Altivec registers, to allow
20476 either operand to be an Altivec register or both.
20477 (fixuns_trunc<mode>di2_fctiduz): Likewise.
20478 (movdi_internal32): Add support for -mupper-regs-di. Add support
20479 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
20480 the alternatives and attributes to be lined up to be easier to
20481 read.
20482 (movdi_internal64): Likewise.
20483 (64-bit DImode splitters): Change predicates to only split loading
20484 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
20485 load constants in ISA 3.0 or ISA 2.07 respectively.
20486 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
20487 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
20488 mention -mcpu=power9 sets these options.
20489 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
20490 wB constraint.
20491
20492 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
20493
20494 PR target/67353
20495 * config/avr/avr.c (avr_set_current_function): Warn misspelled
20496 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
20497 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
20498 by default to warn misspelled interrupt/ signal handler.
20499 * doc/invoke.texi (AVR Options): Document it. Update description
20500 for -nodevicelib option.
20501
20502 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20503
20504 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
20505 up parentheses. Use GET_MODE_UNIT_BITSIZE.
20506 (aarch64_<sur>shll2_n<mode>): Likewise.
20507
20508 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
20509
20510 PR middle-end/71529
20511 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
20512 DECL_CONTEXT for copied arguments.
20513
20514 2016-06-15 Alan Hayward <alan.hayward@arm.com>
20515
20516 PR tree-optimization/71483
20517 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
20518 for slp
20519
20520 2016-06-15 Martin Liska <mliska@suse.cz>
20521
20522 * predict.c (tree_predict_by_opcode): Call predict_edge_def
20523 instead of predict_edge w/o a probability.
20524
20525 2016-06-15 Alan Hayward <alan.hayward@arm.com>
20526
20527 PR tree-optimization/71439
20528 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
20529 live PHIs.
20530
20531 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20532
20533 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
20534 register subregs in SET_SRC.
20535
20536 2016-06-15 Richard Biener <rguenther@suse.de>
20537
20538 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
20539 store restrictions.
20540
20541 2016-06-15 Richard Biener <rguenther@suse.de>
20542
20543 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
20544 not consider dependences between accesses that belong to the
20545 same group.
20546 (vect_analyze_data_ref_dependences): Do not analyze read-read
20547 or self-dependences.
20548
20549 2016-06-14 David Malcolm <dmalcolm@redhat.com>
20550
20551 * spellcheck-tree.c: Include spellcheck-tree.h rather than
20552 spellcheck.h.
20553 (find_closest_identifier): Reimplement in terms of
20554 best_match<tree,tree>.
20555 * spellcheck-tree.h: New file.
20556 * spellcheck.c (struct edit_distance_traits<const char *>): New
20557 struct.
20558 (find_closest_string): Reimplement in terms of
20559 best_match<const char *, const char *>.
20560 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
20561 overload to spellcheck-tree.h.
20562 (find_closest_identifier): Likewise.
20563 (struct edit_distance_traits<T>): New template.
20564 (class best_match): New class.
20565
20566 2016-06-14 David Malcolm <dmalcolm@redhat.com>
20567
20568 * selftest-run-tests.c (selftest::run_tests): Call
20569 selftest::spellcheck_tree_c_tests.
20570 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
20571 * spellcheck-tree.c: Include selftest.h and stringpool.h.
20572 (selftest::test_find_closest_identifier): New function.
20573 (selftest::spellcheck_tree_c_tests): New function.
20574 * spellcheck.c (selftest::test_find_closest_string): Verify that
20575 the order of the vec does not affect the results for this case.
20576 (selftest::test_data): New array.
20577 (selftest::test_metric_conditions): New function.
20578 (selftest::spellcheck_c_tests): Add a test of case-comparison.
20579 Call selftest::test_metric_conditions.
20580
20581 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20582
20583 * config/rs6000/rs6000-builtin.def (commentary): Typo.
20584 (BU_P9_MISC_1): Likewise.
20585 (BU_P9_64BIT_MISC_0): Likewise.
20586 (BU_P9_MISC_0): Likewise.
20587
20588 2016-06-14 David Malcolm <dmalcolm@redhat.com>
20589
20590 * gcc-rich-location.c
20591 (gcc_rich_location::add_fixit_misspelled_id): New method.
20592 * gcc-rich-location.h
20593 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
20594
20595 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
20596
20597 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
20598 FreeBSD 11 and above.
20599
20600 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
20601
20602 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
20603
20604 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20605
20606 * expmed.h: Close parenthesis in "at your option" in copyright
20607 boilerplate.
20608 * lower-subreg.h: Likewise.
20609
20610 2016-06-14 Richard Biener <rguenther@suse.de>
20611
20612 PR middle-end/71526
20613 * genmatch.c (expr::gen_transform): Use in_type for comparisons
20614 if available.
20615
20616 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20617
20618 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
20619 New function.
20620 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
20621 mask+shift version.
20622 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
20623 New prototype.
20624 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
20625 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
20626
20627 2016-06-14 Richard Biener <rguenther@suse.de>
20628
20629 PR tree-optimization/71522
20630 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
20631 copying into float copying.
20632
20633 2016-06-14 Jakub Jelinek <jakub@redhat.com>
20634
20635 PR tree-optimization/71520
20636 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
20637 (replace_block_by): Move user labels from bb1 to bb2.
20638
20639 2016-06-14 Richard Biener <rguenther@suse.de>
20640
20641 PR middle-end/71310
20642 PR bootstrap/71510
20643 * expr.h (get_bit_range): Declare.
20644 * expr.c (get_bit_range): Export.
20645 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
20646 word_mode again to constrain the bitfield access.
20647
20648 2016-06-14 Richard Biener <rguenther@suse.de>
20649
20650 PR tree-optimization/71521
20651 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
20652 division int_const_binop against zero divisor.
20653
20654 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
20655
20656 * config/i386/i386.md (signbittf2): New expander.
20657 * config/i386/sse.md (ptesttf2): New insn pattern.
20658
20659 2016-06-13 David Malcolm <dmalcolm@redhat.com>
20660
20661 PR bootstrap/71481
20662 * input.c (selftest::test_reading_source_line): Avoid reading from
20663 __FILE__ by creating a tempfile with known content and reading
20664 from that instead.
20665
20666 2016-06-13 David Malcolm <dmalcolm@redhat.com>
20667
20668 * pretty-print.c (assert_pp_format_colored): Skip the test if
20669 GCC_COLORS is set.
20670 (test_pp_format): Remove comment about GCC_COLORS.
20671
20672 2016-06-13 David Malcolm <dmalcolm@redhat.com>
20673
20674 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
20675 * pretty-print.c (assert_pp_format_va): Add location param and use
20676 it with ASSERT_STREQ_AT.
20677 (assert_pp_format): Add location param and pass it to
20678 assert_pp_format_va.
20679 (assert_pp_format_colored): Likewise.
20680 (ASSERT_PP_FORMAT_1): New.
20681 (ASSERT_PP_FORMAT_2): New.
20682 (ASSERT_PP_FORMAT_3): New.
20683 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
20684 explicitly, or implicitly via the above macros.
20685 * selftest.c (selftest::pass): Use a selftest::location rather
20686 than file and line.
20687 (selftest::fail): Likewise. Print the function name.
20688 (selftest::fail_formatted): Likewise.
20689 (selftest::assert_streq): Use a selftest::location rather than
20690 file and line.
20691 * selftest.h (selftest::location): New struct.
20692 (SELFTEST_LOCATION): New macro.
20693 (selftest::pass): Accept a const location & rather than file
20694 and line.
20695 (selftest::fail): Likewise.
20696 (selftest::fail_formatted): Likewise.
20697 (selftest::assert_streq): Likewise.
20698 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
20699 (ASSERT_FALSE): Likewise.
20700 (ASSERT_EQ): Likewise.
20701 (ASSERT_NE): Likewise.
20702 (ASSERT_STREQ): Likewise.
20703 (ASSERT_PRED1): Likewise.
20704 (ASSERT_STREQ_AT): New macro.
20705
20706 2016-06-13 David Malcolm <dmalcolm@redhat.com>
20707
20708 * selftest.c (selftest::fail_formatted): New function.
20709 (selftest::assert_streq): New function.
20710 * selftest.h (selftests::fail_formatted): New decl.
20711 (selftest::assert_streq): New decl.
20712 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
20713
20714 2016-06-13 Jeff Law <law@redhat.com>
20715
20716 PR tree-optimization/71403
20717 * tree-ssa-threadbackward.c
20718 (convert_and_register_jump_thread_path): No longer accept reference
20719 to path. Do not pop items off the path anymore.
20720 (fsm_find_control_statement_thread_paths): Do not allow threading
20721 to a deeper loop nest. Pop the last item off the path here rather
20722 than in convert_and_register_jump_thread_path.
20723
20724 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
20725 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
20726
20727 [AArch64] Emit division using the Newton series
20728
20729 * config/aarch64/aarch64-protos.h
20730 (cpu_approx_modes): Add new member "division".
20731 (aarch64_emit_approx_div): Declare new function.
20732 * config/aarch64/aarch64.c
20733 (generic_approx_modes): New member "division".
20734 (exynosm1_approx_modes): Likewise.
20735 (xgene1_approx_modes): Likewise.
20736 (aarch64_emit_approx_div): Define new function.
20737 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
20738 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
20739 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
20740 * doc/invoke.texi (-mlow-precision-div): Describe new option.
20741
20742 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
20743 Wilco Dijkstra <wilco.dijkstra@arm.com>
20744
20745 [AArch64] Emit square root using the Newton series
20746
20747 * config/aarch64/aarch64-protos.h
20748 (aarch64_emit_approx_rsqrt): Replace with new function
20749 "aarch64_emit_approx_sqrt".
20750 (cpu_approx_modes): New member "sqrt".
20751 * config/aarch64/aarch64.c
20752 (generic_approx_modes): New member "sqrt".
20753 (exynosm1_approx_modes): Likewise.
20754 (xgene1_approx_modes): Likewise.
20755 (aarch64_emit_approx_rsqrt): Replace with new function
20756 "aarch64_emit_approx_sqrt".
20757 (aarch64_override_options_after_change_1): Handle new option.
20758 * config/aarch64/aarch64-simd.md
20759 (rsqrt<mode>2): Use new function instead.
20760 (sqrt<mode>2): New expansion and insn definitions.
20761 * config/aarch64/aarch64.md: Likewise.
20762 * config/aarch64/aarch64.opt
20763 (mlow-precision-sqrt): Add new option description.
20764 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
20765
20766 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
20767
20768 [AArch64] Add more choices for the reciprocal square root approximation
20769
20770 Allow a target to prefer such operation depending on the operation mode.
20771
20772 * config/aarch64/aarch64-protos.h
20773 (AARCH64_APPROX_MODE): New macro.
20774 (AARCH64_APPROX_{NONE,ALL}): Likewise.
20775 (cpu_approx_modes): New structure.
20776 (tune_params): New member "approx_modes".
20777 * config/aarch64/aarch64-tuning-flags.def
20778 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
20779 * config/aarch64/aarch64.c
20780 (generic_approx_modes): New core "cpu_approx_modes" structure.
20781 (exynosm1_approx_modes): Likewise.
20782 (xgene1_approx_modes): Likewise.
20783 (generic_tunings): New member "approx_modes".
20784 (cortexa35_tunings): Likewise.
20785 (cortexa53_tunings): Likewise.
20786 (cortexa57_tunings): Likewise.
20787 (cortexa72_tunings): Likewise.
20788 (exynosm1_tunings): Likewise.
20789 (thunderx_tunings): Likewise.
20790 (xgene1_tunings): Likewise.
20791 (use_rsqrt_p): New argument for the mode and use new member from
20792 "tune_params".
20793 (aarch64_builtin_reciprocal): Devise mode from builtin.
20794 (aarch64_optab_supported_p): New argument for the mode.
20795 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
20796
20797 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
20798
20799 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
20800 RS6000_BTM_MODULO flag into the set of flags that are considered
20801 to be part of the common configuration.
20802
20803 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
20804
20805 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
20806 difference unsigned.
20807 (vec_absdb): New macro for vector absolute difference unsigned
20808 byte.
20809 (vec_absdh): New macro for vector absolute difference unsigned
20810 half-word.
20811 (vec_absdw): New macro for vector absolute difference unsigned word.
20812 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
20813 (vadu<mode>3): New insn.
20814 (*p9_vadu<mode>3): New insn.
20815 * config/rs6000/rs6000-builtin.def (vadub): New built-in
20816 definition.
20817 (vaduh): New built-in definition.
20818 (vaduw): New built-in definition.
20819 (vadu): New overloaded built-in definition.
20820 (vadub): New overloaded built-in definition.
20821 (vaduh): New overloaded built-in definition.
20822 (vaduw): New overloaded built-in definition.
20823 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20824 overloaded vector absolute difference unsigned functions.
20825 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
20826 the ISA 3.0 vector absolute difference unsigned built-in functions.
20827
20828 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
20829
20830 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
20831 update shared_lookup_references only once after changing operands.
20832
20833 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
20834
20835 PR middle-end/71373
20836 * tree-nested.c (convert_nonlocal_omp_clauses)
20837 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
20838
20839 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
20840 * tree.def (CASE_LABEL_EXPR): Likewise.
20841
20842 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
20843
20844 PR bootstrap/71481
20845 * input.c (test_builtins): Fix an assertion.
20846
20847 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
20848
20849 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
20850 (paritysi2): Ditto.
20851 (isinfxf2): Ditto.
20852 (isinf<mode>2): Ditto.
20853
20854 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
20855
20856 * ggc-tests.c (test_finalization): Only test need_finalization_p
20857 for GCC_VERSION >= 4003.
20858
20859 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20860
20861 * config/s390/vecintrin.h: Fix file description in comment.
20862
20863 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20864
20865 * config/s390/s390-builtin-types.def: Change builtin type naming
20866 scheme to match builtin-types.def.
20867
20868 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
20869
20870 * fold-const.c (optimize_minmax_comparison): Remove.
20871 (fold_comparison): Remove call to the above.
20872 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
20873 New transformations.
20874
20875 2016-06-13 Alan Hayward <alan.hayward@arm.com>
20876
20877 PR tree-optimization/71416
20878 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
20879 multiple entries
20880
20881 2016-06-13 Martin Liska <mliska@suse.cz>
20882
20883 * predict.c (enum predictor_reason): Prefix enum with REASON_.
20884 (combine_predictions_for_insn): Likewise.
20885 (prune_predictions_for_bb): Likewise.
20886 (combine_predictions_for_bb): Likewise.
20887
20888 2016-06-13 Richard Biener <rguenther@suse.de>
20889
20890 PR tree-optimization/71505
20891 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
20892 assert match comment.
20893
20894 2016-06-13 Marek Polacek <polacek@redhat.com>
20895
20896 PR middle-end/71476
20897 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
20898 gimplify_switch_expr.
20899 (warn_switch_unreachable_r): New function.
20900
20901 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20902
20903 PR target/71379
20904 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
20905 one.
20906
20907 2016-06-13 Richard Biener <rguenther@suse.de>
20908
20909 PR middle-end/64516
20910 * fold-const.c (fold_unary_loc): Preserve alignment when
20911 folding a VIEW_CONVERT_EXPR into a MEM_REF.
20912
20913 2016-06-13 Martin Liska <mliska@suse.cz>
20914
20915 PR sanitizer/71458
20916 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
20917 w/ -fsanitize=bounds.
20918
20919 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
20920
20921 * config/i386/i386.c (ix86_init_builtins): Calculate
20922 FLOAT128_FTYPE_CONST_STRING function type only once.
20923 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
20924 built-in functions are available for x86-32 and x86-64 targets.
20925
20926 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
20927
20928 PR target/71241
20929 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
20930 New primitive type.
20931 (FLOAT128_FTYPE_CONST_STRING): New function type.
20932 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
20933 [IX86_BUILTIN_NANSQ]: Ditto.
20934 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
20935 (ix86_init_builtin_types): Declare const_string_type_node.
20936 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
20937 builtin functions.
20938 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
20939 * doc/extend.texi (x86 Built-in Functions): Document
20940 __builtin_nanq and __builtin_nansq.
20941
20942 2016-06-11 Jiong Wang <jiong.wang@arm.com>
20943
20944 PR target/71061
20945 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
20946 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
20947 length for pop patterns.
20948 (arm_attr_length_push_multi): Update comments.
20949 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
20950 attribute.
20951 (*pop_multiple_with_writeback_and_return): Likewise.
20952 (*pop_multiple_with_return): Likewise.
20953
20954 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
20955
20956 PR middle-end/71310
20957 * fold-const.c (optimize_bit_field_compare): Don't try to use
20958 word_mode unconditionally for reading the bit field, look at
20959 DECL_BIT_FIELD_REPRESENTATIVE instead.
20960
20961 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
20962
20963 PR middle-end/71478
20964 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
20965 vector integer type.
20966
20967 2016-06-10 Jakub Jelinek <jakub@redhat.com>
20968
20969 PR middle-end/71494
20970 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
20971 without LABEL_DECL, set *handled_ops_p to false instead of true.
20972
20973 2016-06-10 Martin Sebor <msebor@redhat.com>
20974
20975 PR c/71392
20976 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
20977 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
20978 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
20979 them.
20980 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
20981 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
20982 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
20983 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
20984 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
20985 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
20986 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
20987 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
20988
20989 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
20990
20991 * config/arm/arm.h (pool_vector_label,
20992 return_used_this_function): Remove.
20993
20994 2016-06-10 Jeff Law <law@redhat.com>
20995
20996 PR tree-optimization/71335
20997 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
20998 zero length paths here.
20999 (convert_and_register_jump_thread_path): Remove hacks related to
21000 duplicated blocks in the jump thread path.
21001 (fsm_find_control_statement_thread_paths): Avoid putting the same
21002 block on the thread path twice, but ensure the thread path is
21003 unchanged from the caller's point of view.
21004
21005 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
21006
21007 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
21008 * predict.def (PRED_LOOP_BRANCH): Remove.
21009
21010 2016-06-10 David Malcolm <dmalcolm@redhat.com>
21011
21012 * Makefile.in (OBJS): Add ggc-tests.o.
21013 (GTFILES): Add ggc-tests.c.
21014 * ggc-tests.c: New file.
21015 * selftest-run-tests.c (selftest::run_tests): Call
21016 selftest::ggc_tests_c_tests.
21017 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
21018
21019 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
21020
21021 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
21022
21023 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
21024
21025 PR sanitizer/71480
21026 * varasm.c (place_block_symbol): Adjust alignment for asan protected
21027 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
21028
21029 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
21030
21031 * profile.c: Include cfgloop.h.
21032 (branch_prob): Compute estimated number of iterations.
21033 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
21034 recompute estimate number of iterations from profile.
21035
21036 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
21037
21038 PR inline-asm/68843
21039 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
21040 must be grouped on top of stack. Don't force early clobber
21041 on ordinary reg outputs.
21042
21043 2016-06-10 Richard Biener <rguenther@suse.de>
21044
21045 * targhooks.c (default_builtin_vectorization_cost): Adjust
21046 vec_construct cost.
21047
21048 2016-06-10 Richard Biener <rguenther@suse.de>
21049
21050 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
21051 to fold the RHS to a constant if possible.
21052
21053 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
21054
21055 PR middle-end/71373
21056 * tree-nested.c (convert_nonlocal_omp_clauses)
21057 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
21058 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
21059 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
21060
21061 * gimplify.c (gimplify_adjust_omp_clauses): Discard
21062 OMP_CLAUSE_TILE.
21063 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
21064
21065 * omp-low.c (scan_sharing_clauses): Don't expect
21066 OMP_CLAUSE__CACHE_.
21067
21068 2016-06-10 Alan Hayward <alan.hayward@arm.com>
21069
21070 PR tree-optimization/71407
21071 PR tree-optimization/71416
21072 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
21073 BIT_FIELD_REF type.
21074
21075 2016-06-10 Richard Biener <rguenther@suse.de>
21076
21077 PR middle-end/71477
21078 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
21079
21080 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
21081
21082 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
21083
21084 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
21085 Jiong Wang <jiong.wang@arm.com>
21086
21087 PR rtl-optimization/70751
21088 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
21089 spilled into memory.
21090
21091 2016-06-09 Jonathan Yong <10walls@gmail.com>
21092
21093 Revert:
21094 2015-09-21 Jonathan Yong <10walls@gmail.com>
21095
21096 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
21097 sysroot/usr/lib/32api for additional win32 libraries,
21098 fixes failing Cygwin bootstrapping.
21099
21100 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
21101
21102 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
21103 Delete.
21104
21105 2016-06-09 David Malcolm <dmalcolm@redhat.com>
21106
21107 PR bootstrap/71471
21108 * pretty-print.c (pp_indent): Specify that %p is printed in a
21109 host-dependent manner.
21110 (test_pp_format): Remove the test for %p.
21111
21112 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
21113
21114 * config/mips/mips.c (mips_output_jump): Fix formatting.
21115
21116 2016-06-09 Richard Biener <rguenther@suse.de>
21117
21118 PR tree-optimization/71462
21119 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
21120 removed blocks.
21121
21122 2016-06-09 Martin Liska <mliska@suse.cz>
21123
21124 * predict.c (dump_prediction): Add new argument.
21125 (enum predictor_reason): New enum.
21126 (struct predictor_hash): New struct.
21127 (predictor_hash::hash): New function.
21128 (predictor_hash::equal): Likewise.
21129 (not_removed_prediction_p): New function.
21130 (prune_predictions_for_bb): Likewise.
21131 (combine_predictions_for_bb): Prune predictions.
21132
21133 2016-06-09 Martin Liska <mliska@suse.cz>
21134
21135 * predict.c (filter_predictions): New function.
21136 (remove_predictions_associated_with_edge): Use the filter
21137 function.
21138 (equal_edge_p): New function.
21139
21140 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
21141
21142 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
21143 Correct usage of @samp vs @option, add @samp where appropriate.
21144 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
21145 Add armv6s-m and document it, as it is no official ARM name.
21146
21147 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21148
21149 * ifcvt.c (struct noce_if_info): Add transform_name field.
21150 (noce_try_move): Set if_info->transform_name to the function name.
21151 (noce_try_ifelse_collapse): Likewise.
21152 (noce_try_store_flag): Likewise.
21153 (noce_try_inverse_constants): Likewise.
21154 (noce_try_store_flag_constants): Likewise.
21155 (noce_try_addcc): Likewise.
21156 (noce_try_store_flag_mask): Likewise.
21157 (noce_try_cmove): Likewise.
21158 (noce_try_cmove_arith): Likewise.
21159 (noce_try_minmax): Likewise.
21160 (noce_try_abs): Likewise.
21161 (noce_try_sign_mask): Likewise.
21162 (noce_try_bitop): Likewise.
21163 (noce_convert_multiple_sets): Likewise.
21164 (noce_process_if_block): Print if_info->transform_name to
21165 dump_file if transformation succeeded.
21166
21167 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21168
21169 * config/arm/cortex-a57.md (cortex_a57_alu):
21170 Handle csel type.
21171
21172 2016-06-08 Martin Sebor <msebor@redhat.com>
21173 Jakub Jelinek <jakub@redhat.com>
21174
21175 PR c++/70507
21176 PR c/68120
21177 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
21178 BUILT_IN_MUL_OVERFLOW_P): New builtins.
21179 * builtins.c: Include gimple-fold.h.
21180 (fold_builtin_arith_overflow): Handle
21181 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
21182 (fold_builtin_3): Likewise.
21183 * doc/extend.texi (Integer Overflow Builtins): Document
21184 __builtin_{add,sub,mul}_overflow_p.
21185
21186 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
21187
21188 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
21189 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
21190
21191 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
21192
21193 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
21194 Rewrite, looking one level down for records and arrays.
21195
21196 2016-06-08 David Malcolm <dmalcolm@redhat.com>
21197
21198 * pretty-print.c: Include "selftest.h".
21199 (pp_format): Fix comment.
21200 (identifier_to_locale): Likewise.
21201 (selftest::test_basic_printing): New function.
21202 (selftest::assert_pp_format): New function.
21203 (selftest::test_pp_format): New function.
21204 (selftest::pretty_print_c_tests): New function.
21205 * selftest-run-tests.c (selftest::run_tests): Call
21206 selftest::pretty_print_c_tests.
21207 * selftest.h (pretty_print_c_tests): New declaration.
21208
21209 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
21210
21211 * invoke.texi (max-loop-headers-insns): Document.
21212 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
21213 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
21214 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
21215
21216 2016-06-08 Richard Biener <rguenther@suse.de>
21217
21218 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
21219 on strided SLP loads and fall back to scalar loads in case
21220 we can't chunk them.
21221
21222 2016-06-08 Richard Biener <rguenther@suse.de>
21223
21224 PR tree-optimization/71452
21225 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
21226 type used for the SSA rewrite has enough precision to cover
21227 the dynamic type of the location.
21228
21229 2016-06-08 Jakub Jelinek <jakub@redhat.com>
21230 Richard Biener <rguenther@suse.de>
21231
21232 PR c++/71448
21233 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
21234 the same as DECL_P (base0) for indirect_base0. Use equality_code
21235 in one further place.
21236
21237 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
21238
21239 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
21240 to one word if the field is known to overlap other words.
21241 (extract_bit_field_1): Likewise.
21242 (store_split_bit_field): Remove compensating code.
21243 (extract_split_bit_field): Likewise.
21244
21245 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
21246
21247 PR debug/71432
21248 PR ada/71413
21249 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
21250
21251 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21252
21253 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
21254 VDQF.
21255 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
21256 (arch64_addpv4sf): Delete.
21257 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
21258 "gen_aarch64_addpv4sf".
21259 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
21260 builtin.
21261 (vpadds_f32): Likewise.
21262 (vpaddq_f32): Likewise.
21263 (vpaddq_f64): Likewise.
21264
21265 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21266
21267 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
21268 VALLF.
21269 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
21270 to VALLF. Rename to "fabd<mode>3".
21271 "*fabd_scalar<mode>3): Delete.
21272 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
21273 Use builtin.
21274 (vabdd_f64): Likewise.
21275 (vabd_f32): Likewise.
21276 (vabd_f64): Likewise.
21277 (vabdq_f32): Likewise.
21278 (vabdq_f64): Likewise.
21279
21280 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21281
21282 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
21283 VALLF.
21284 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
21285 "aarch64_rsqrts<mode>".
21286 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
21287 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
21288 builtin.
21289 (vrsqrtsd_f64): Likewise.
21290 (vrsqrts_f32): Likewise.
21291 (vrsqrts_f64): Likewise.
21292 (vrsqrtsq_f32): Likewise.
21293 (vrsqrtsq_f64): Likewise.
21294
21295 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21296
21297 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
21298 VALLF.
21299 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
21300 "aarch64_rsqrte<mode>".
21301 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
21302 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
21303 builtin.
21304 (vrsqrted_f64): Likewise.
21305 (vrsqrte_f32): Likewise.
21306 (vrsqrte_f64): Likewise.
21307 (vrsqrteq_f32): Likewise.
21308 (vrsqrteq_f64): Likewise.
21309
21310 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21311
21312 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
21313 (ucvtf): Likewise.
21314 (fcvtzs): Likewise.
21315 (fcvtzu): Likewise.
21316 * config/aarch64/aarch64-simd.md
21317 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
21318 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
21319 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
21320 Use builtin.
21321 (vcvt_n_f32_u32): Likewise.
21322 (vcvt_n_s32_f32): Likewise.
21323 (vcvt_n_u32_f32): Likewise.
21324 (vcvtq_n_f32_s32): Likewise.
21325 (vcvtq_n_f32_u32): Likewise.
21326 (vcvtq_n_f64_s64): Likewise.
21327 (vcvtq_n_f64_u64): Likewise.
21328 (vcvtq_n_s32_f32): Likewise.
21329 (vcvtq_n_s64_f64): Likewise.
21330 (vcvtq_n_u32_f32): Likewise.
21331 (vcvtq_n_u64_f64): Likewise.
21332 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
21333 (VSDQ_SDI): Likewise.
21334 (fcvt_target): Support V4DI, V4SI and V2SI.
21335 (FCVT_TARGET): Likewise.
21336
21337 2016-06-08 Jiong Wang <jiong.wang@arm.com>
21338
21339 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
21340 (TYPES_BINOP_SUS): Likewise.
21341 (aarch64_simd_builtin_data): Update include file name.
21342 (aarch64_builtins): Likewise.
21343 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
21344 for conversion between scalar float-point and fixed-point.
21345 (ucvtf): Likewise.
21346 (fcvtzs): Likewise.
21347 (fcvtzu): Likewise.
21348 * config/aarch64/aarch64.md
21349 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
21350 pattern for conversion between scalar float to fixed-pointer.
21351 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
21352 (UNSPEC_FCVTZS): New UNSPEC enumeration.
21353 (UNSPEC_FCVTZU): Likewise.
21354 (UNSPEC_SCVTF): Likewise.
21355 (UNSPEC_UCVTF): Likewise.
21356 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
21357 Use builtin.
21358 (vcvtd_n_f64_u64): Likewise.
21359 (vcvtd_n_s64_f64): Likewise.
21360 (vcvtd_n_u64_f64): Likewise.
21361 (vcvtd_n_f32_s32): Likewise.
21362 (vcvts_n_f32_u32): Likewise.
21363 (vcvtd_n_s32_f32): Likewise.
21364 (vcvts_n_u32_f32): Likewise.
21365 * config/aarch64/iterators.md (fcvt_target): Support integer to float
21366 mapping.
21367 (FCVT_TARGET): Likewise.
21368 (FCVT_FIXED2F): New iterator.
21369 (FCVT_F2FIXED): Likewise.
21370 (fcvt_fixed_insn): New define_int_attr.
21371
21372 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
21373
21374 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
21375 some statements was removed.
21376
21377 2016-06-08 Alan Hayward <alan.hayward@arm.com>
21378
21379 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
21380 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
21381 (vect_can_advance_ivs_p): likewise.
21382 (vect_update_ivs_after_vectorizer): likewise.
21383 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
21384 (vect_analyze_scalar_cycles_1): likewise.
21385 (vect_analyze_loop_operations): likewise.
21386 (report_vect_op): likewise.
21387 (vect_is_slp_reduction): likewise.
21388 (vect_is_simple_reduction): likewise.
21389 (get_initial_def_for_induction): likewise.
21390 (vect_transform_loop): likewise.
21391 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
21392 (vect_recog_sad_pattern): likewise.
21393 (vect_recog_widen_sum_pattern): likewise.
21394 (vect_recog_widening_pattern): likewise.
21395 (vect_recog_divmod_pattern): likewise.
21396 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
21397 (vect_analyze_slp_instance): likewise.
21398 (vect_transform_slp_perm_load): likewise.
21399 (vect_schedule_slp_instance): likewise.
21400
21401 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
21402
21403 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
21404 (return_prediction): PRED_CONST_RETURN predict return as not taken.
21405 * predict.def (PRED_CONTINUE): Change hitrate 50->67
21406 (PRED_LOOP_BRANCH): Document predictor as broken.
21407 (PRED_LOOP_EXIT): Change hitrate 91->92.
21408 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
21409 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
21410 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
21411 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
21412 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
21413 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
21414 (PRED_CALL): Chane hitrate 71->67.
21415 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
21416 (PRED_GOTO): Document as unused right now.
21417 (PRED_CONST_RETURN): Change hitrate 67->69
21418 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
21419 (PRED_NULL_RETURN): Change hitrate 91->90.
21420 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
21421 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
21422 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
21423
21424 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
21425
21426 * config/rs6000/altivec.h: Add __builtin_vec_mul.
21427 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
21428 special case Altivec builtin.
21429 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
21430 VSX_BUILTIN_VEC_MUL (replaced with special case code).
21431 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
21432 code for ALTIVEC_BUILTIN_VEC_MUL.
21433 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
21434 for __builtin_vec_mul.
21435
21436 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
21437
21438 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
21439 -mno-htm.
21440
21441 2016-06-07 David Malcolm <dmalcolm@redhat.com>
21442
21443 * spellcheck.c (selftest::test_find_closest_string): New function.
21444 (spellcheck_c_tests): Call the above.
21445
21446 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21447
21448 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
21449
21450 2016-06-07 Jakub Jelinek <jakub@redhat.com>
21451
21452 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
21453 Yv=Yv,C alternatives.
21454
21455 2016-06-07 Richard Biener <rguenther@suse.de>
21456
21457 PR c/61564
21458 * common.opt (ffast-math): Make Optimization.
21459
21460 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
21461 Prachi Godbole <prachi.godbole@imgtec.com>
21462
21463 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
21464 `fabs' and `fneg' type attributes.
21465 (p5600_fpu_fabs): Add `fmove' to the comment.
21466
21467 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
21468
21469 * gimple.c: Include builtins.h
21470 (gimple_inexpensive_call_p): New function.
21471 * gimple.h (gimple_inexpensive_call_p): Declare.
21472 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
21473 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
21474 fix formatting.
21475
21476 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
21477
21478 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
21479 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
21480 warning_at_rich_loc, warning_n, pedwarn, permerror,
21481 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
21482 sorry, fatal_error, internal_error, internal_error_no_backtrace):
21483 Use the above.
21484
21485 2016-06-07 Richard Biener <rguenther@suse.de>
21486
21487 PR tree-optimization/71428
21488 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
21489 BIT_FIELD_REF op vs. load.
21490
21491 2016-06-07 Richard Biener <rguenther@suse.de>
21492
21493 PR middle-end/71423
21494 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
21495 for signed ops.
21496
21497 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
21498
21499 * config/pa/pa.md (call): Generate indirect long calls to non-local
21500 functions on TARGET_64BIT.
21501 (call_value): Likewise.
21502
21503 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
21504
21505 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
21506 pattern and subsequent splitters.
21507 (call_val_reg_64bit_post_reload): Likewise.
21508
21509 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
21510
21511 PR middle-end/71408
21512 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
21513 propagate_op_to_single_use.
21514
21515 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
21516
21517 PR middle-end/71281
21518 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
21519
21520 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
21521
21522 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
21523 (enum x86_dirflag_state): New enum.
21524 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
21525 (machine_function): Remove needs_cld.
21526 (ix86_current_function_needs_cld): Remove.
21527 * config/i386/i386.c (ix86_set_func_type): Set
21528 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
21529 (ix86_expand_prologue): Do not emit CLD here.
21530 (ix86_dirflag_mode_needed): New function.
21531 (ix86_dirflag_mode_entry): Ditto.
21532 (ix86_mode_needed): Handle X86_DIRFLAG entity.
21533 (ix86_mode_after): Ditto.
21534 (ix86_mode_entry): Ditto.
21535 (ix86_mode_exit): Ditto.
21536 (ix86_emit_mode_set): Ditto.
21537 * config/i386/i386.md (strmov_singleop): Set
21538 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
21539 Do not set ix86_current_function_needs_cld.
21540 (rep_mov): Ditto.
21541 (strset_singleop): Ditto.
21542 (rep_stos): Ditto.
21543 (cmpstrnqi_nz_1): Ditto.
21544 (cmpstrnqi_1): Ditto.
21545 (strlenqi_1): Ditto.
21546
21547 2016-06-06 Jakub Jelinek <jakub@redhat.com>
21548
21549 PR tree-optimization/71259
21550 * tree-vect-slp.c (vect_get_constant_vectors): For
21551 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
21552 one for constant op, and use COND_EXPR for non-constant.
21553
21554 2016-06-06 David Malcolm <dmalcolm@redhat.com>
21555
21556 * Makefile.in (OBJS): Add function-tests.o,
21557 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
21558 selftest-run-tests.o.
21559 (OBJS-libcommon): Add selftest.o.
21560 (OBJS-libcommon-target): Add selftest.o.
21561 (all.internal): Add "selftest".
21562 (all.cross): Likewise.
21563 (selftest): New phony target.
21564 (s-selftest): New target.
21565 (selftest-gdb): New phony target.
21566 (COLLECT2_OBJS): Add selftest.o.
21567 * bitmap.c: Include "selftest.h".
21568 (selftest::test_gc_alloc): New function.
21569 (selftest::test_set_range): New function.
21570 (selftest::test_clear_bit_in_middle): New function.
21571 (selftest::test_copying): New function.
21572 (selftest::test_bitmap_single_bit_set_p): New function.
21573 (selftest::bitmap_c_tests): New function.
21574 * common.opt (fself-test): New.
21575 * diagnostic-show-locus.c: Include "selftest.h".
21576 (make_range): New function.
21577 (test_range_contains_point_for_single_point): New function.
21578 (test_range_contains_point_for_single_line): New function.
21579 (test_range_contains_point_for_multiple_lines): New function.
21580 (assert_eq): New function.
21581 (test_get_line_width_without_trailing_whitespace): New function.
21582 (selftest::diagnostic_show_locus_c_tests): New function.
21583 * et-forest.c: Include "selftest.h".
21584 (selftest::test_single_node): New function.
21585 (selftest::test_simple_tree): New function.
21586 (selftest::test_disconnected_nodes): New function.
21587 (selftest::et_forest_c_tests): New function.
21588 * fold-const.c: Include "selftest.h".
21589 (selftest::assert_binop_folds_to_const): New function.
21590 (selftest::assert_binop_folds_to_nonlvalue): New function.
21591 (selftest::test_arithmetic_folding): New function.
21592 (selftest::fold_const_c_tests): New function.
21593 * function-tests.c: New file.
21594 * gimple.c: Include "selftest.h".
21595 Include "gimple-pretty-print.h".
21596 (selftest::verify_gimple_pp): New function.
21597 (selftest::test_assign_single): New function.
21598 (selftest::test_assign_binop): New function.
21599 (selftest::test_nop_stmt): New function.
21600 (selftest::test_return_stmt): New function.
21601 (selftest::test_return_without_value): New function.
21602 (selftest::gimple_c_tests): New function.
21603 * hash-map-tests.c: New file.
21604 * hash-set-tests.c: New file.
21605 * input.c: Include "selftest.h".
21606 (selftest::assert_loceq): New function.
21607 (selftest::test_accessing_ordinary_linemaps): New function.
21608 (selftest::test_unknown_location): New function.
21609 (selftest::test_builtins): New function.
21610 (selftest::test_reading_source_line): New function.
21611 (selftest::input_c_tests): New function.
21612 * rtl-tests.c: New file.
21613 * selftest-run-tests.c: New file.
21614 * selftest.c: New file.
21615 * selftest.h: New file.
21616 * spellcheck.c: Include "selftest.h".
21617 (selftest::levenshtein_distance_unit_test_oneway): New function,
21618 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
21619 (selftest::levenshtein_distance_unit_test): Likewise.
21620 (selftest::spellcheck_c_tests): Likewise.
21621 * toplev.c: Include selftest.h.
21622 (toplev::run_self_tests): New.
21623 (toplev::main): Handle -fself-test.
21624 * toplev.h (toplev::run_self_tests): New.
21625 * tree.c: Include "selftest.h".
21626 (selftest::test_integer_constants): New function.
21627 (selftest::test_identifiers): New function.
21628 (selftest::test_labels): New function.
21629 (selftest::tree_c_tests): New function.
21630 * tree-cfg.c: Include "selftest.h".
21631 (selftest::push_fndecl): New function.
21632 (selftest::test_linear_chain): New function.
21633 (selftest::test_diamond): New function.
21634 (selftest::test_fully_connected): New function.
21635 (selftest::tree_cfg_c_tests): New function.
21636 * vec.c: Include "selftest.h".
21637 (selftest::safe_push_range): New function.
21638 (selftest::test_quick_push): New function.
21639 (selftest::test_safe_push): New function.
21640 (selftest::test_truncate): New function.
21641 (selftest::test_safe_grow_cleared): New function.
21642 (selftest::test_pop): New function.
21643 (selftest::test_safe_insert): New function.
21644 (selftest::test_ordered_remove): New function.
21645 (selftest::test_unordered_remove): New function.
21646 (selftest::test_block_remove): New function.
21647 (selftest::reverse_cmp): New function.
21648 (selftest::test_qsort): New function.
21649 (selftest::vec_c_tests): New function.c.
21650 * wide-int.cc: Include selftest.h and wide-int-print.h.
21651 (selftest::from_int <wide_int>): New function.
21652 (selftest::from_int <offset_int>): New function.
21653 (selftest::from_int <widest_int>): New function.
21654 (selftest::assert_deceq): New function.
21655 (selftest::assert_hexeq): New function.
21656 (selftest::test_printing <VALUE_TYPE>): New function template.
21657 (selftest::test_ops <VALUE_TYPE>): New function template.
21658 (selftest::test_comparisons <VALUE_TYPE>): New function template.
21659 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
21660 template.
21661 (selftest::wide_int_cc_tests): New function.
21662
21663 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21664
21665 PR middle-end/37780
21666 * ifcvt.c (noce_try_ifelse_collapse): New function.
21667 Declare prototype.
21668 (noce_process_if_block): Call noce_try_ifelse_collapse.
21669 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
21670 (simplify_ternary_operation): Use the above to simplify
21671 conditional CLZ/CTZ expressions.
21672
21673 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21674
21675 PR middle-end/37780
21676 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
21677 define_insn_and_split.
21678
21679 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21680
21681 PR middle-end/37780
21682 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
21683
21684 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
21685
21686 PR c/24414
21687 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
21688 Implicitly clobber memory for basic asm with non-empty assembler
21689 string. Use targetm.md_asm_adjust also here.
21690 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
21691 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
21692 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
21693 non-empty assembler string.
21694 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
21695 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
21696 (decode_asm_operands): Handle basic asm in PARALLEL block.
21697 (extract_insn): Handle basic asm in PARALLEL block.
21698 * doc/extend.texi: Mention new behavior of basic asm.
21699 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
21700 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
21701 branch_needs_nop_p): Use asm_noperands.
21702
21703 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
21704
21705 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
21706 Include the M7 SPARC DFA scheduler.
21707 New attribute v3pipe.
21708 Annotate insns with v3pipe where appropriate.
21709 Define cpu_feature vis4.
21710 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
21711 Add (V8QI "8") to vbits.
21712 Add insns {add,sub}v8qi3
21713 Add insns ss{add,sub}v8qi3
21714 Add insns us{add,sub}{v8qi,v4hi}3
21715 Add insns {min,max}{v8qi,v4hi,v2si}3
21716 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
21717 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
21718 * config/sparc/niagara4.md: Add a comment explaining the
21719 discrepancy between the documented latenty numbers and the
21720 implemented ones.
21721 * config/sparc/niagara7.md: New file.
21722 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
21723 supports SPARC5 and VIS 4.0 instructions.
21724 * configure: Regenerate.
21725 * config.in: Likewise.
21726 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
21727 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
21728 TARGET_CPU_niagara7.
21729 (ASM_CPU64_DEFAULT_SPEC): Likewise.
21730 (CPP_CPU_SPEC): Handle niagara7.
21731 (ASM_CPU_SPEC): Likewise.
21732 * config/sparc/sparc-opts.h (processor_type): Add
21733 PROCESSOR_NIAGARA7.
21734 (mvis4): New option.
21735 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
21736 (AS_NIAGARA7_FLAG): Define.
21737 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
21738 (CPP_CPU64_DEFAULT_SPEC): Likewise.
21739 (CPP_CPU_SPEC): Handle niagara7.
21740 (ASM_CPU_SPEC): Likewise.
21741 * config/sparc/sparc.c (niagara7_costs): Define.
21742 (sparc_option_override): Handle niagara7 and adjust cache-related
21743 parameters with better values for niagara cpus. Also support VIS4.
21744 (sparc32_initialize_trampoline): Likewise.
21745 (sparc_use_sched_lookahead): Likewise.
21746 (sparc_issue_rate): Likewise.
21747 (sparc_register_move_cost): Likewise.
21748 (dump_target_flag_bits): Support VIS4.
21749 (sparc_vis_init_builtins): Likewise.
21750 (sparc_builtins): Likewise.
21751 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
21752 VIS4 4.0.
21753 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
21754 UltraSparc M7.
21755 * config/sparc/sparc.opt (sparc_processor_type): New value
21756 niagara7.
21757 * config/sparc/visintrin.h (__attribute__): Prototypes for the
21758 VIS4 builtins.
21759 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
21760 -mvis4.
21761 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
21762 VIS4 builtins.
21763
21764 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
21765
21766 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
21767
21768 2016-06-06 Richard Biener <rguenther@suse.de>
21769
21770 PR tree-optimization/71398
21771 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
21772 remove edges.
21773
21774 2016-06-05 James Bowman <james.bowman@ftdichip.com>
21775
21776 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
21777 ft32_expand_prolog, ft32_expand_epilogue):
21778 Handle pretend_args.
21779 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
21780 * config/ft32/ft32.md: Add pretend_returner.
21781
21782 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
21783
21784 PR target/71389
21785 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
21786 Copy op1 RTX to avoid invalid sharing.
21787 (ix86_expand_vector_move_misalign): Ditto.
21788
21789 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
21790
21791 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
21792 ATTRIBUTE_UNUSED.
21793
21794 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
21795
21796 * predict.c (predicted_by_loop_heuristics_p): New function.
21797 (predict_iv_comparison): Use it.
21798 (predict_loops): Walk from innermost loops; do not predict edges
21799 leaving multiple loops multiple times; implement
21800 PRED_LOOP_ITERATIONS_MAX heuristics.
21801 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
21802
21803 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
21804
21805 * cfg.c (check_bb_profile): Do not report mismatched profiles when
21806 only edges out of BB are EH edges.
21807
21808 2016-06-04 Martin Sebor <msebor@redhat.com>
21809 Marcin Baczyński <marbacz@gmail.com>
21810
21811 PR c/48116
21812 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
21813 a void expression in a void function.
21814
21815 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
21816
21817 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
21818 aux; dump reasons of decisions.
21819 (should_duplicate_loop_header_p): Likewise.
21820 (do_while_loop_p): Likewise.
21821 (ch_base::copy_headers): Dump asi num insns duplicated.
21822
21823 2016-06-04 Jakub Jelinek <jakub@redhat.com>
21824
21825 PR tree-optimization/71405
21826 * tree-ssa.c (execute_update_addresses_taken): For clobber with
21827 incompatible type, build a new clobber with the right type instead
21828 of building a VIEW_CONVERT_EXPR around it.
21829
21830 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
21831
21832 PR tree-optimization/52171
21833 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
21834 by_pieces_ninsns instead of move_by_pieces_ninsns.
21835
21836 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
21837
21838 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
21839 for reg+reg addressing mode.
21840
21841 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21842
21843 * rs6000-c.c (c/c-tree.h): Add #include.
21844 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
21845 in C++ when found in the base position of vec_ld or vec_st.
21846
21847 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
21848
21849 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
21850 use of profile unless profile status is PROFILE_READ.
21851 * profile.c (compute_branch_probabilities): Set profile status
21852 only after reporting predictor hitrates.
21853
21854 2016-06-03 Joseph Myers <joseph@codesourcery.com>
21855
21856 PR target/71276
21857 PR target/71277
21858 * common.opt (ffp-int-builtin-inexact): New option.
21859 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
21860 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
21861 (ceil@var{m}2): Document dependence on this option.
21862 * ipa-inline-transform.c (inline_call): Handle
21863 flag_fp_int_builtin_inexact.
21864 * ipa-inline.c (can_inline_edge_p): Likewise.
21865 * config/i386/i386.md (rintxf2): Do not test
21866 flag_unsafe_math_optimizations.
21867 (rint<mode>2_frndint): New define_insn.
21868 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
21869 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
21870 for 387 instead of extending and truncating.
21871 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
21872 !flag_trapping_math instead of flag_unsafe_math_optimizations.
21873 Change to frndint<mode>2_<rounding>.
21874 (frndintxf2_<rounding>_i387): Likewise. Change to
21875 frndint<mode>2_<rounding>_i387.
21876 (<rounding_insn>xf2): Likewise.
21877 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
21878 !flag_trapping_math instead of flag_unsafe_math_optimizations for
21879 x87. Test TARGET_ROUND || !flag_trapping_math ||
21880 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
21881 SSE. Use ROUND_NO_EXC in constant operand of
21882 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
21883 for 387 instead of extending and truncating.
21884
21885 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
21886 Julia Koval <julia.koval@intel.com>
21887
21888 PR target/66960
21889 PR target/67630
21890 PR target/67634
21891 PR target/67841
21892 PR target/68037
21893 PR target/68618
21894 PR target/68661
21895 PR target/69575
21896 PR target/69596
21897 PR target/69734
21898 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
21899 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
21900 all registers, except for function return registers if there are
21901 no caller-saved registers.
21902 (ix86_set_func_type): New function.
21903 (ix86_set_current_function): Call ix86_set_func_type to set
21904 no_caller_saved_registers and func_type. Call reinit_regs if
21905 caller-saved registers are changed. Don't allow MPX, SSE, MMX
21906 nor x87 instructions in interrupt handler nor function with
21907 no_caller_saved_registers attribute.
21908 (ix86_function_ok_for_sibcall): Return false if there are no
21909 caller-saved registers.
21910 (type_natural_mode): Don't warn ABI change for MMX in interrupt
21911 handler.
21912 (ix86_function_arg_advance): Skip for callee in interrupt handler.
21913 (ix86_function_arg): Return special arguments in interrupt handler.
21914 (ix86_promote_function_mode): Promote pointer to word_mode only
21915 for normal functions.
21916 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
21917 interrupt handler.
21918 (ix86_epilogue_uses): New function.
21919 (ix86_hard_regno_scratch_ok): Likewise.
21920 (ix86_save_reg): Preserve all registers in interrupt handler
21921 after reload. Preserve all registers, except for function return
21922 registers, if there are no caller-saved registers after reload.
21923 (find_drap_reg): Always use callee-saved register if there are
21924 no caller-saved registers.
21925 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
21926 for interrupt handler.
21927 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
21928 Emit cld instruction if stringops are used in interrupt handler
21929 or interrupt handler isn't a leaf function.
21930 (ix86_expand_epilogue): Generate interrupt return for interrupt
21931 handler and pop the 'ERROR_CODE' off the stack before interrupt
21932 return in exception handler.
21933 (ix86_expand_call): Disallow calling interrupt handler directly.
21934 If there are no caller-saved registers, mark all registers that
21935 are clobbered by the call which returns as clobbered.
21936 (ix86_handle_no_caller_saved_registers_attribute): New function.
21937 (ix86_handle_interrupt_attribute): Likewise.
21938 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
21939 attributes.
21940 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
21941 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
21942 accumulation in interrupt function if stack may be realigned to
21943 avoid DRAP.
21944 (EPILOGUE_USES): New.
21945 (function_type): New enum.
21946 (machine_function): Add func_type and no_caller_saved_registers.
21947 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
21948 (interrupt_return): New pattern.
21949 * doc/extend.texi: Document x86 interrupt and
21950 no_caller_saved_registers attributes.
21951
21952 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
21953
21954 PR tree-optimization/52171
21955 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
21956 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
21957 Look for constant strings. Move some code to emit_block_cmp_hints
21958 and use it.
21959 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
21960 * defaults.h (COMPARE_MAX_PIECES): New macro.
21961 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
21962 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
21963 (clear_by_pieces_1): Don't declare. Move definition before use.
21964 (can_do_by_pieces): New static function.
21965 (can_move_by_pieces): Use it. Return bool.
21966 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
21967 OP. All callers changed. Handle COMPARE_BY_PIECES.
21968 (class pieces_addr); New.
21969 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
21970 pieces_addr::adjust, pieces_addr::increment_address,
21971 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
21972 functions for it.
21973 (class op_by_pieces_d): New.
21974 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
21975 functions for it.
21976 (class move_by_pieces_d, class compare_by_pieces_d,
21977 class store_by_pieces_d): New subclasses of op_by_pieces_d.
21978 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
21979 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
21980 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
21981 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
21982 compare_by_pieces_d::finish_mode): New member functions.
21983 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
21984 functions.
21985 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
21986 (emit_block_cmp_hints): New function.
21987 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
21988 use the newly defined classes.
21989 * expr.h (by_pieces_constfn): New typedef.
21990 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
21991 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
21992 (move_by_pieces_ninsns): Don't declare.
21993 (can_move_by_pieces): Change return value to bool.
21994 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
21995 (compare_by_pieces_branch_ratio): New hook.
21996 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
21997 (by_pieces_ninsns): Declare.
21998 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
21999 COMPARE_BY_PIECES.
22000 (default_compare_by_pieces_branch_ratio): New function.
22001 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
22002 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
22003 * doc/tm.texi: Regenerate.
22004 * tree-ssa-strlen.c: Include "builtins.h".
22005 (handle_builtin_memcmp): New static function.
22006 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
22007 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
22008
22009 2016-06-03 Alan Hayward <alan.hayward@arm.com>
22010
22011 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
22012 relevant stmts which are simple and invariant.
22013 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
22014 instead of simple and invariant
22015
22016 2016-06-03 Alan Hayward <alan.hayward@arm.com>
22017
22018 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
22019 (vectorizable_reduction): Check for new relevant state.
22020 (vectorizable_live_operation): vectorize live stmts using
22021 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
22022 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
22023 (vect_stmt_relevant_p): Check for stmts which are only used live.
22024 (process_use): Use of a stmt does not inherit it's live value.
22025 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
22026 (vect_analyze_stmt): Check for new relevant state.
22027 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
22028 outside the loop, but not inside it.
22029
22030 2016-06-03 Alan Hayward <alan.hayward@arm.com>
22031
22032 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
22033 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
22034 (vect_get_vec_def_for_operand): Split out code.
22035
22036 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
22037
22038 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
22039
22040 2016-06-03 Alan Hayward <alan.hayward@arm.com>
22041
22042 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
22043
22044 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22045
22046 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
22047
22048 2016-06-03 Jakub Jelinek <jakub@redhat.com>
22049
22050 PR middle-end/71387
22051 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
22052 to noreturn e->callee->decl that has void return type and void
22053 arguments, adjust gimple_call_fntype and remove lhs even if it had
22054 previously addressable type.
22055
22056 2016-06-02 Jeff Law <law@redhat.com>
22057
22058 PR tree-optimization/71328
22059 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
22060 error when checking for a jump back onto the copied path.
22061
22062 2016-06-02 David Malcolm <dmalcolm@redhat.com>
22063
22064 * config/microblaze/microblaze.c (get_branch_target): Add return
22065 NULL_RTX for the non-CALL_P case.
22066 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
22067 (insert_wic): Remove unused local "j".
22068
22069 2016-06-02 Martin Liska <mliska@suse.cz>
22070
22071 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
22072
22073 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
22074 Julia Koval <julia.koval@intel.com>
22075
22076 * function.c (assign_parm_setup_stack): Force source into a
22077 register if needed.
22078 * target.def (function_incoming_arg): Update documentation to
22079 allow arbitrary address computation based on hard register.
22080 * doc/tm.texi: Regenerated.
22081
22082 2016-06-02 Martin Liska <mliska@suse.cz>
22083
22084 * predict.c (combine_predictions_for_bb): Fix first match in
22085 cases where a first predictor contains more than one occurence
22086 in list of predictors. Take the best value in such case.
22087
22088 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22089
22090 PR rtl-optimization/71295
22091 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
22092 offset would go over the size of the inner mode reject it.
22093
22094 2016-06-02 Jakub Jelinek <jakub@redhat.com>
22095
22096 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
22097 x=x,x and v=v,m instead of x=x,m.
22098
22099 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
22100 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
22101 alternative to v=rm,C.
22102
22103 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
22104 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
22105 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
22106 instead of vex for the last two above mentioned alternatives.
22107
22108 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22109
22110 PR target/70830
22111 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
22112
22113 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
22114
22115 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
22116
22117 2016-06-01 David Malcolm <dmalcolm@redhat.com>
22118
22119 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
22120 from int to unsigned.
22121
22122 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
22123
22124 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
22125 alternatives, eliminating preferred register class. Add support
22126 for the MTVSRDD instruction in ISA 3.0.
22127 (vsx_splat_v4si_internal): Use splat_input_operand instead of
22128 reg_or_indexed_operand.
22129 (vsx_splat_v4sf_internal): Likewise.
22130
22131 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
22132
22133 PR target/71186
22134 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
22135 for loading up all 0's or all 1's.
22136
22137 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
22138
22139 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
22140
22141 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
22142
22143 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
22144 extension.
22145 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
22146 * gcc.c (set_source_date_epoch_envvar): New function, sets
22147 the SOURCE_DATE_EPOCH environment variable to the current time.
22148
22149 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
22150
22151 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
22152 the factor for live Phi nodes.
22153
22154 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
22155
22156 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
22157 * tree-parloops.c (parallelize_loops): likewise.
22158 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
22159 tree_unswitch_outer_loop): likewise.
22160
22161 2016-06-01 Jakub Jelinek <jakub@redhat.com>
22162
22163 PR middle-end/71371
22164 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
22165 around creation of the temporary.
22166
22167 2016-06-01 Richard Biener <rguenther@suse.de>
22168
22169 PR tree-optimization/71366
22170 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
22171 (unloop_loops): Move removing edges here ...
22172 (try_unroll_loop_completely): ... from here.
22173 (try_peel_loop): ... and here.
22174 (tree_unroll_loops_completely_1): Track parent loops via
22175 bitmap of header BBs.
22176 (tree_unroll_loops_completely): Adjust for that.
22177
22178 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
22179
22180 * config/rs6000/altivec.h (vec_slv): New macro.
22181 (vec_srv): New macro.
22182 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
22183 (UNSPEC_VSRV): New value.
22184 (vslv): New insn.
22185 (vsrv): New insn.
22186 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
22187 (vsrv): New builtin definition.
22188 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
22189 define argument types for new builtin.
22190 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
22191 new builtin.
22192 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
22193 functions.
22194
22195 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
22196 Jocelyn Mayer <l_indien@magic.fr>
22197
22198 PR target/67310
22199 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
22200 detect processor family for signature_CENTAUR_ebx.
22201 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
22202 signature_CENTAUR_ebx.
22203 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
22204 <default>: Pass x86-64 for has_longmode.
22205
22206 2016-06-01 Nathan Sidwell <nathan@acm.org>
22207
22208 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
22209 undefined weak.
22210
22211 2016-06-01 Richard Biener <rguenther@suse.de>
22212
22213 PR tree-optimization/71261
22214 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
22215 of stmts successfully put in the bool pattern. Remove
22216 single-use restriction.
22217 (adjust_bool_pattern_cast): Add cast at the use site via the
22218 pattern def sequence.
22219 (adjust_bool_pattern): Remove recursion, maintain a hash-map
22220 of patterned defs. Use the pattern def seqence instead of
22221 multiple independent patterns.
22222 (sort_after_uid): New qsort compare function.
22223 (adjust_bool_stmts): New function to process stmts in the bool
22224 pattern in IL order.
22225 (vect_recog_bool_pattern): Adjust.
22226 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
22227 (ifcvt_walk_pattern_tree): Likewise.
22228 (stmt_is_root_of_bool_pattern): Likewise.
22229 (ifcvt_repair_bool_pattern): Likewise.
22230 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
22231
22232 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
22233
22234 * loop-unroll.c (decide_unroll_constant_iterations,
22235 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
22236 likely upper bounds.
22237 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
22238
22239 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
22240
22241 * tree-core.h (enum omp_clause_code): Remove
22242 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
22243
22244 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22245
22246 * config/arm/sync.md (arm_store_exclusive<mode>):
22247 Use 'H' output modifier on operands[2] rather than creating a new
22248 entry in out-of-bounds memory of the operands array.
22249 (arm_store_release_exclusivedi): Likewise.
22250
22251 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22252
22253 * config/arm/arm.c (arm_fusion_enabled_p): New function.
22254 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
22255 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
22256 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
22257
22258 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
22259
22260 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
22261 into account live statements for mask producers.
22262
22263 2016-06-01 Richard Biener <rguenther@suse.de>
22264
22265 PR tree-optimization/71311
22266 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
22267 restrict to non-INTEGER_CST @0.
22268
22269 2016-06-01 Richard Biener <rguenther@suse.de>
22270
22271 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
22272 (relational patterns): Use :c to avoid pattern duplications.
22273
22274 2016-06-01 Richard Biener <rguenther@suse.de>
22275
22276 * genmatch.c (comparison_code_p): New predicate.
22277 (swap_tree_comparison): New function.
22278 (commutate): Add for_vec parameter to append new for entries.
22279 Support commutating relational operators by swapping it alongside
22280 operands.
22281 (lower_commutative): Adjust.
22282 (dt_simplify::gen): Do not pass artificial operators to gen
22283 functions.
22284 (decision_tree::gen): Do not add artificial operators as parameters.
22285 (parser::parse_expr): Verify operator commutativity when :c is
22286 applied. Allow :C to override this.
22287 * match.pd: Adjust patterns to use :C instead of :c where required.
22288
22289 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
22290
22291 PR tree-optimization/71077
22292 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
22293 the combining step, use boolean_false_node and boolean_true_node
22294 as the designated false/true return values.
22295
22296 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
22297
22298 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
22299 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
22300 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
22301 PRED_LOOP_EXIT.
22302
22303 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
22304
22305 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
22306 of flags impliying the register renaming.
22307 * toplev.c (process_options): Do not imply flag_rename_registers with
22308 loop peeling.
22309
22310 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
22311
22312 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
22313 default implementation.
22314
22315 2016-05-31 Nathan Sidwell <nathan@acm.org>
22316
22317 * dwarf2out.c (cur_line_info_table): Add GTY marker.
22318
22319 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
22320
22321 * config/sh/constraints.md (b): Remove constraint.
22322 * config/sh/predicates.md (arith_reg_operand): Remove
22323 TARGET_REGISTER_P.
22324 * config/sh/sh-modes.def (PDI): Remove.
22325 * config/sh/sh.c (sh_target_reg_class,
22326 sh_optimize_target_register_callee_saved): Remove functions.
22327 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
22328 (sh_expand_epilogue): Update comment.
22329 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
22330 sh_secondary_reload): Remove TARGET_REGS related code.
22331 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
22332 TARGET_REGISTER_P): Remove macros.
22333 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
22334 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
22335 TR1_REG, TR2_REG): Remove constants.
22336 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
22337
22338 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
22339
22340 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
22341 define_expand patterns.
22342 (adddi3_compact): Rename to adddi3.
22343 (subdi3_compact): Rename to subdi3.
22344 (*negdi2): Rename to negdi2.
22345 (*abs<mode>2): Rename to abs<mode>2.
22346
22347 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
22348
22349 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
22350 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
22351 (atomic_sub_fetchsi): ... this new pattern.
22352 (mvtc): Add CC_REG clobber.
22353
22354 2016-05-31 Marek Polacek <polacek@redhat.com>
22355
22356 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
22357
22358 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22359
22360 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
22361 aarch64_fusion_enabled_p to check for fusion capabilities.
22362
22363 2016-05-31 Richard Biener <rguenther@suse.de>
22364
22365 PR tree-optimization/71352
22366 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
22367 minus one and a negate.
22368
22369 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22370
22371 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
22372 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
22373 Delete prototype.
22374 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
22375 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
22376 Remove use of aarch64_simd_attr_length_move, set length attribute
22377 directly.
22378 (*aarch64_be_movoi): Likewise.
22379 (*aarch64_be_movci): Likewise.
22380 (*aarch64_be_movxi): Likewise.
22381
22382 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
22383
22384 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
22385 It no longer does that.
22386 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
22387
22388 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
22389
22390 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
22391 attribute __unused__.
22392
22393 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
22394
22395 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
22396 * config/arm/arm.c (arm_arch_thumb1): Define.
22397 (arm_option_override): Initialize arm_arch_thumb1.
22398 * config/arm/arm.h (arm_arch_thumb1): Declare.
22399 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
22400 support Thumb-1 ISA.
22401
22402 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
22403
22404 PR target/71346
22405 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
22406 `Yv' for scalar operand.
22407
22408 2016-05-31 Tom de Vries <tom@codesourcery.com>
22409
22410 PR tree-optimization/69068
22411 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
22412 phis with more than two args.
22413
22414 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
22415
22416 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
22417 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
22418 target.
22419
22420 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
22421
22422 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
22423 tune_64.
22424 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
22425 support on SPARC.
22426 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
22427 cpu_32, cpu_64, tune_32 and tune_64.
22428 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
22429
22430 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
22431
22432 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
22433
22434 2016-05-30 Andi Kleen <ak@linux.intel.com>
22435
22436 * auto-profile.c (read_profile): Replace asserts with errors
22437 when file does not exist.
22438 * gcov-io.c (gcov_read_words): Dito.
22439
22440 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22441
22442 * tree-cfg.c (print_loop): Print likely upper bounds.
22443
22444 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22445
22446 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
22447 * opts.c (default_options): Enable peel loops at -O3.
22448 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
22449 (try_peel_loop): Do not re-peel already peeled loops;
22450 use likely upper bounds; fix profile updating.
22451 (pass_complete_unroll::execute): Initialize peeled_loops.
22452
22453 2016-05-30 Martin Liska <mliska@suse.cz>
22454
22455 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
22456 computed costs by frequency of BB they belong to.
22457 (get_scaled_computation_cost_at): New function.
22458
22459 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
22460 Marc Glisse <marc.glisse@inria.fr>
22461
22462 PR tree-optimization/71289
22463 * match.pd (-1 / B < A, A > -1 / B): New transformations.
22464
22465 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22466
22467 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
22468
22469 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22470
22471 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
22472 for peeled copies; avoid underflow when updating estimates; correctly
22473 scale loop profile.
22474
22475 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
22476
22477 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
22478 r236875. Corrected oe3 to oe2 as obvious.
22479
22480 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
22481
22482 PR middle-end/71269
22483 PR middle-end/71252
22484 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
22485 that inserted stmt will not dominate stmts that defines its operand.
22486 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
22487 (rewrite_expr_tree_parallel): Likewise.
22488
22489 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
22490
22491 PR middle-end/71252
22492 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
22493 all fields including stmt_to_insert are swapped.
22494
22495 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22496
22497 * predict.h (force_edge_cold): Declare.
22498 * predict.c (force_edge_cold): New function.
22499 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
22500 updating.
22501 (canonicalize_loop_induction_variables): Fix formating.
22502
22503 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
22504
22505 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
22506 (visium_expand_copysign): Use gen_int_mode directly.
22507 (visium_compute_frame_size): Minor tweaks.
22508
22509 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
22510
22511 * tree-vect-loop.c (vect_analyze_loop_2): Use
22512 likely_max_stmt_executions_int.
22513
22514 2016-05-30 Tom de Vries <tom@codesourcery.com>
22515
22516 PR tree-optimization/69067
22517 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
22518
22519 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
22520
22521 PR target/71245
22522 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
22523 New peepholes to remove unneeded fild/fistp pairs.
22524 (define_peephole2 atomic_loaddi_fpu): Ditto.
22525
22526 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22527
22528 * predict.c (maybe_hot_frequency_p): Avoid division.
22529
22530 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
22531
22532 * doc/install.texi: Use https for shop.fsf.org.
22533
22534 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22535
22536 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
22537 likely_max_stmt_executions_int.
22538
22539 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22540
22541 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
22542 likely_max_stmt_executions_int.
22543
22544 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22545
22546 * profile.c (compute_branch_probabilities): Do not report hitrates
22547 here.
22548 (branch_prob): Report hitrates here.
22549 * predict.c (gimple_predict_edge): Do not assert profile status;
22550 fix formatting issues.
22551
22552 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22553
22554 * predict.c (edge_predicted_by_p): New function.
22555 (predict_paths_for_bb): Do not put multiple predictions of the same type
22556 on one edge.
22557
22558 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22559
22560 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
22561 commit.
22562
22563 2016-05-28 Alan Modra <amodra@gmail.com>
22564
22565 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
22566
22567 2016-05-28 Alan Modra <amodra@gmail.com>
22568
22569 PR rtl-optimization/71275
22570 * ira.c (ira): Free dominance info.
22571
22572 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
22573
22574 * doc/sourcebuild.texi: New address for upstream Go repository.
22575
22576 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
22577
22578 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
22579 (TARGET_ARM_V7M): Likewise.
22580
22581 2016-05-26 Jeff Law <law@redhat.com>
22582
22583 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
22584 (thread_across_edge): Remove calls to find_jump_threads_backwards.
22585 * passes.def: Add jump threading passes before DOM/VRP.
22586 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
22587 argument to a basic block from an edge. Remove tests which are
22588 handled elsewhere.
22589 (pass_data_thread_jumps, class pass_thread_jumps): New.
22590 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
22591 (make_pass_thread_jumps): Likewise.
22592 * tree-pass.h (make_pass_thread_jumps): Declare.
22593
22594 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
22595
22596 * config/visium/visium-protos.h (split_double_move): Rename into...
22597 (visium_split_double_move): ...this.
22598 (visium_split_double_add): Declare.
22599 * config/visium/visium.c (split_double_move): Rename into...
22600 (visium_split_double_move): ...this.
22601 (visium_split_double_add): New function.
22602 (visium_expand_copysign): Renumber operands for consistency.
22603 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
22604 (DFmode move splitter): Likewise.
22605 (*addi3_insn): Split by means of visium_split_double_add.
22606 (*adddi3_insn_flags): Delete.
22607 (*plus_plus_sltu<subst_arith>): New insn.
22608 (*subdi3_insn): Split by means of visium_split_double_add.
22609 (subdi3_insn_flags): Delete.
22610 (*minus_minus_sltu<subst_arith>): New insn.
22611 (*negdi2_insn): Split by means of visium_split_double_add.
22612 (*negdi2_insn_flags): Delete.
22613
22614 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
22615
22616 * configure.ac: Treat a --with-headers option without argument
22617 the same as the default (i.e. consult sys-include directory).
22618 * configure: Regenerate.
22619
22620 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22621
22622 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
22623 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
22624 prototype.
22625 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
22626 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
22627
22628 2016-05-27 Jiong Wang <jiong.wang@arm.com>
22629
22630 PR target/63596
22631 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
22632 tree-stdarg analysis results.
22633 (aarch64_setup_incoming_varargs): Likewise.
22634
22635 2016-05-27 Jiong Wang <jiong.wang@arm.com>
22636
22637 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
22638 va_list_gpr_counter_field and va_list_fpr_counter_field.
22639
22640 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
22641
22642 PR67609
22643 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
22644 * config/aarch64/aarch64.c
22645 (aarch64_cannot_change_mode_class): Remove function.
22646 * config/aarch64/aarch64-protos.h
22647 (aarch64_cannot_change_mode_class): Remove.
22648
22649 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
22650
22651 * cfgloop.c (record_niter_bound): Record likely upper bounds.
22652 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
22653 get_likely_max_loop_iterations_int): New.
22654 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
22655 any_likely_upper_bound.
22656 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
22657 Declare.
22658 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
22659 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
22660 upper bound.
22661 (unroll_loop_constant_iterations): Likewise.
22662 (unroll_loop_runtime_iterations): Likewise.
22663 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
22664 * lto-streamer-out.c (output_cfg): Likewise.
22665 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
22666 bounds.
22667 (canonicalize_loop_induction_variables): Dump likely upper bounds.
22668 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
22669 (likely_max_loop_iterations): New.
22670 (likely_max_loop_iterations_int): New.
22671 (likely_max_stmt_executions): New.
22672 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
22673 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
22674 likely_max_stmt_executions): Declare.
22675
22676 2016-05-27 Marek Polacek <polacek@redhat.com>
22677
22678 PR middle-end/71308
22679 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
22680
22681 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22682
22683 * config/s390/s390.md (2x risbg splitters): Use
22684 reg_overlap_mentioned_p instead of rtx_equal_p.
22685
22686 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
22687
22688 * combine.c (make_compound_operation): Take known zero bits into
22689 account when checking for possible zero_extend.
22690
22691 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22692
22693 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
22694 Use const_int_operand for operand 2 predicate. Simplify expand code
22695 as a result.
22696
22697 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
22698
22699 PR middle-end/71279
22700 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
22701 into comparison.
22702
22703 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22704
22705 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
22706 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
22707 that returns CC_SESWPmode and CC_ZESWPmode.
22708 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
22709 and CC_SESWPmode.
22710 (aarch64_rtx_costs): Likewise.
22711
22712 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
22713
22714 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
22715 for ISA 3.0 min/max support.
22716 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
22717 conditional move support.
22718 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
22719 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
22720 available.
22721 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
22722 conditional moves where the comparison type is different from move
22723 type.
22724 (fp_minmax): New code iterator for smin/smax.
22725 (minmax): New code attributes for min/max.
22726 (SMINMAX): Likewise.
22727 (smax<mode>3): Combine min, max insns into one insn using the
22728 fp_minmax code iterator. Add support for ISA 3.0 min/max
22729 instructions that don't need -ffast-math.
22730 (s<minmax><mode>3): Likewise.
22731 (smax<mode>3_vsx): Likewise.
22732 (smin<mode>3): Likewise.
22733 (s<minmax><mode>3_vsx): Likewise.
22734 (smin<mode>3_vsx): Likewise.
22735 (pre-VSX min/max splitters): Likewise.
22736 (s<minmax><mode>3_fpr): Likewise.
22737 (movsfcc): Rewrite floating point conditional moves to combine
22738 SFmode/DFmode into a single insn.
22739 (mov<mode>cc): Likewise.
22740 (movdfcc): Likewise.
22741 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
22742 SFDF2 iterators to handle all combinations.
22743 (fseldfsf4): Likewise.
22744 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
22745 (fseldfdf4): Likewise.
22746 (fselsfdf4): Likewise.
22747 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
22748 comparison instructions that set a 0/-1 mask, and use it for
22749 floating point conditional move via XXSEL.
22750 (fpmask<mode>): Likewise.
22751 (xxsel<mode>): Likewise.
22752 * config/rs6000/predicates.md (min_max_operator): Delete, no
22753 longer used.
22754 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
22755 instructions that generate a 0/-1 mask for use with XXSEL.
22756 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
22757 say whether floating point min/max is available, either through
22758 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
22759 (TARGET_MINMAX_DF): Likewise.
22760
22761 2016-05-27 Alan Modra <amodra@gmail.com>
22762
22763 PR rtl-optimization/71275
22764 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
22765 for update_equiv_regs and combine_and_move_insns.
22766
22767 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
22768
22769 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
22770 if_then_else or cond RTXes to calculate attribute value.
22771 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
22772 <attr "length_immediate>: Ditto.
22773 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
22774 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
22775 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
22776 <attr "type">: Ditto.
22777 <attr "prefix_data16">: Ditto.
22778 <attr "prefix_extra">: Ditto.
22779 <attr "length_immediate">: Ditto.
22780 <attr "prefix">: Ditto.
22781 (vec_set<mode>_0) <attr "isa">: Ditto.
22782 <attr "prefix_extra">: Ditto.
22783 <attr "length_immediate">: Ditto.
22784 <attr "prefix">: Ditto.
22785 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
22786 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
22787 (sse2_storelpd) <attr "prefix_data16">: Ditto.
22788 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
22789 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
22790 <attr "length_immediate">: Ditto.
22791 <attr "prefix">: Ditto.
22792 (sse2_movsd) <attr "length_immediate">: Ditto.
22793 <attr "prefix">: Ditto.
22794 (vec_concatv2df) <attr "isa">: Ditto.
22795 <attr "prefix">: Ditto.
22796 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
22797 (*vec_extractv2di_1) <attr "isa">: Ditto.
22798 <attr "type">: Ditto.
22799 <attr "length_immediate">: Ditto.
22800 <attr "prefix_rex">: Ditto.
22801 <attr "prefix_extra">: Ditto.
22802 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
22803 <attr "prefix_extra">: Ditto.
22804 <attr "length_immediate">: Ditto.
22805 (vec_concatv2di) <attr "isa">: Ditto.
22806 <attr "prefix_extra">: Ditto.
22807 <attr "length_immediate">: Ditto.
22808 <attr "prefix">: Ditto.
22809
22810 2016-05-26 Martin Liska <mliska@suse.cz>
22811
22812 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
22813 function.
22814 (operator+): Likewise.
22815 (operator-): Likewise.
22816 (comp_cost::operator+=): Likewise.
22817 (comp_cost::operator-=): Likewise.
22818 (comp_cost::operator/=): Likewise.
22819 (comp_cost::operator*=): Likewise.
22820 (operator<): Likewise.
22821 (operator==): Likewise.
22822 (operator<=): Likewise.
22823 (new_cost): Remove.
22824 (infinite_cost_p): Likewise.
22825 (add_costs): Likewise.
22826 (sub_costs): Likewise.
22827 (compare_costs): Likewise.
22828 (set_group_iv_cost): Use the newly introduced functions.
22829 (get_address_cost): Likewise.
22830 (get_shiftadd_cost): Likewise.
22831 (force_expr_to_var_cost): Likewise.
22832 (split_address_cost): Likewise.
22833 (ptr_difference_cost): Likewise.
22834 (difference_cost): Likewise.
22835 (get_computation_cost_at): Likewise.
22836 (determine_group_iv_cost_generic): Likewise.
22837 (determine_group_iv_cost_address): Likewise.
22838 (determine_group_iv_cost_cond): Likewise.
22839 (autoinc_possible_for_pair): Likewise.
22840 (determine_group_iv_costs): Likewise.
22841 (cheaper_cost_pair): Likewise.
22842 (iv_ca_recount_cost): Likewise.
22843 (iv_ca_set_no_cp): Likewise.
22844 (iv_ca_set_cp): Likewise.
22845 (iv_ca_cost): Likewise.
22846 (iv_ca_new): Likewise.
22847 (iv_ca_dump): Likewise.
22848 (iv_ca_narrow): Likewise.
22849 (iv_ca_prune): Likewise.
22850 (iv_ca_replace): Likewise.
22851 (try_add_cand_for): Likewise.
22852 (try_improve_iv_set): Likewise.
22853 (find_optimal_iv_set): Likewise.
22854
22855 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
22856
22857 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
22858 that internal functions will clobber all caller-saved registers.
22859
22860 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
22861
22862 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
22863 Return a better case_values_threshold when optimizing.
22864
22865 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
22866
22867 * config/aarch64/aarch64-simd.md (aarch64_combinez):
22868 Add ? to integer variant.
22869 (aarch64_combinez_be): Likewise.
22870
22871 2016-05-26 Jakub Jelinek <jakub@redhat.com>
22872
22873 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
22874 instead of x constraint.
22875 (vcvtps2ph256<mask_name>): Likewise.
22876
22877 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
22878 alternative. Formatting fix.
22879
22880 * config/i386/sse.md
22881 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
22882 to ...
22883 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
22884 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
22885 maybe_evex prefix instead of vex.
22886 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
22887 EXT_REX_SSE_REG_P (op0) case in the splitter.
22888
22889 2016-05-25 Jeff Law <law@redhat.com>
22890
22891 PR tree-optimization/71272
22892 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
22893 Update comments. Add test for empty path.
22894
22895 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
22896
22897 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
22898 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
22899 special case builtin.
22900 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
22901 code for ALTIVEC_BUILTIN_VEC_CMPNE.
22902 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
22903 for __builtin_vec_cmpne.
22904
22905 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
22906
22907 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
22908 redundant test and bail out if the type of the new operand is not
22909 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
22910
22911 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
22912
22913 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
22914 (x_ix86_target_flags_explicit): Remove.
22915 * config/i386/i386.c (ix86_function_specific_save): Do not copy
22916 x_ix86_target_flags_explicit.
22917 (ix86_function_specific_restore): Ditto.
22918
22919 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
22920 H.J. Lu <hongjiu.lu@intel.com>
22921
22922 PR target/70738
22923 * common/config/i386/i386-common.c
22924 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
22925 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
22926 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
22927 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
22928 (-mgeneral-regs-only): Add new option.
22929 * config/i386/i386.c (ix86_option_override_internal): Don't enable
22930 x87 instructions if only general registers are allowed.
22931 (ix86_target_string): Add ix86_flags argument. Handle additional
22932 flags options through ix86_flags argument. Update all callers.
22933 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
22934
22935 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22936
22937 PR rtl-optimization/66940
22938 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
22939 decrementing desired_val will not overflow before performing these
22940 operations.
22941
22942 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
22943
22944 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
22945 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
22946 * config/i386/i386.c (enum ix86_builtins): Add
22947 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
22948 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
22949 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
22950 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
22951 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
22952 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
22953 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
22954 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
22955 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
22956 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
22957 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
22958 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
22959 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
22960 __builtin_ia32_cvtps2dq512_mask.
22961 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
22962 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
22963 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
22964 * config/i386/sse.md
22965 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
22966 Rename to ...
22967 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
22968 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
22969 to ...
22970 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
22971 (avx512f_vec_pack_sfix_v8df): New define_expand.
22972 (avx512f_roundpd512): Rename to ...
22973 (avx512f_round<castmode>512): ... this. Change iterator.
22974 (avx512f_roundps512_sfix): New define_expand.
22975 (round<mode>2_sfix): Change iterator.
22976
22977 2016-05-25 Nick Clifton <nickc@redhat.com>
22978
22979 * config/msp430/msp430.c (msp430_attr): Produce an error if a
22980 static interrupt handler is detected.
22981 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
22982 default linker script.
22983 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
22984 the low part of a symbolic pointer.
22985
22986 2016-05-25 Richard Biener <rguenther@suse.de>
22987
22988 PR tree-optimization/71261
22989 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
22990 interesting stmt instead of immediate uses when looking
22991 for the use operand to replace.
22992
22993 2016-05-25 Martin Liska <mliska@suse.cz>
22994
22995 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
22996
22997 2016-05-25 Richard Biener <rguenther@suse.de>
22998
22999 PR tree-optimization/71264
23000 * tree-vect-stmts.c (vect_init_vector): Properly deal with
23001 vector type val.
23002
23003 2016-05-25 Martin Liska <mliska@suse.cz>
23004
23005 PR tree-optimization/71239
23006 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
23007 if DECL_SIZE is NULL.
23008
23009 2016-05-25 Richard Biener <rguenther@suse.de>
23010
23011 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
23012 * tree-if-conv.c (pass_data_if_conversion): Use it.
23013
23014 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
23015
23016 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
23017 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
23018 * varpool.c (varpool_node::get_availability): Likewise.
23019
23020 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
23021
23022 * config/rs6000/altivec.md (VNEG iterator): New iterator for
23023 VNEGW/VNEGD instructions.
23024 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
23025 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
23026 support for ISA 3.0 VNEGW/VNEGD instructions.
23027
23028 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
23029
23030 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
23031 pointers inside OACC_DATA regions.
23032 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
23033 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
23034 (gimplify_adjust_omp_clauses): Fix typo in comment.
23035
23036 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
23037
23038 * config/rs6000/altivec.md (VParity): New mode iterator for vector
23039 parity built-in functions.
23040 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
23041 zeros.
23042 (p9v_parity<mode>2): Likewise.
23043 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
23044 parity.
23045 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
23046 (parity<mode>2): ISA 3.0 expander for vector parity.
23047 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
23048 power9 built-ins.
23049 (BU_P9_64BIT_MISC_0): Likewise.
23050 (BU_P9_MISC_0): Likewise.
23051 (BU_P9V_AV_1): Likewise.
23052 (BU_P9V_AV_2): Likewise.
23053 (BU_P9V_AV_3): Likewise.
23054 (BU_P9V_AV_P): Likewise.
23055 (BU_P9V_VSX_1): Likewise.
23056 (BU_P9V_OVERLOAD_1): Likewise.
23057 (BU_P9V_OVERLOAD_2): Likewise.
23058 (BU_P9V_OVERLOAD_3): Likewise.
23059 (VCTZB): Add vector count trailing zeros support.
23060 (VCTZH): Likewise.
23061 (VCTZW): Likewise.
23062 (VCTZD): Likewise.
23063 (VPRTYBD): Add vector parity support.
23064 (VPRTYBQ): Likewise.
23065 (VPRTYBW): Likewise.
23066 (VCTZ): Add overloaded vector count trailing zeros support.
23067 (VPRTYB): Add overloaded vector parity support.
23068 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23069 overloaded vector count trailing zeros and parity instructions.
23070 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
23071 vector parity support.
23072 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
23073 trailing zeros support.
23074 (vec_cntlz): Likewise.
23075 (vec_vctzb): Likewise.
23076 (vec_vctzd): Likewise.
23077 (vec_vctzh): Likewise.
23078 (vec_vctzw): Likewise.
23079 (vec_vprtyb): Add ISA 3.0 vector parity support.
23080 (vec_vprtybd): Likewise.
23081 (vec_vprtybw): Likewise.
23082 (vec_vprtybq): Likewise.
23083 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
23084 the ISA 3.0 vector count trailing zeros and vector parity built-in
23085 functions.
23086
23087 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
23088
23089 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
23090 when there is stmt_to_insert.
23091
23092 2016-05-24 Martin Sebor <msebor@redhat.com>
23093
23094 PR c++/71147
23095 * tree.h (complete_or_array_type_p): New inline function.
23096
23097 2016-05-24 Jakub Jelinek <jakub@redhat.com>
23098
23099 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
23100 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
23101 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
23102
23103 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
23104 Limit 1st alternative to noavx isa, split 2nd alternative into one
23105 noavx and one avx alternative, use *x and Bm in the former and
23106 x and m in the latter.
23107
23108 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
23109 of sse4 for the first alternative, drop %v from the template
23110 and d operand modifier. Split second alternative into one sse4_noavx
23111 and one avx alternative, use *x instead of *v in the former and v
23112 instead of *v in the latter.
23113 (*sse4_1_extractps): Use noavx isa instead of * for the first
23114 alternative, drop %v from the template. Split second alternative into
23115 one noavx and one avx alternative, use *x instead of *v in the
23116 former and v instead of *v in the latter.
23117 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
23118 with noavx and the last one with avx.
23119 (sse4_1_phminposuw): Guard first alternative with noavx isa,
23120 split the second one into one noavx and one avx alternative,
23121 use *x and Bm in the former and x and m in the latter one.
23122 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
23123 alternatives.
23124
23125 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
23126 first two alternatives to noavx, use *x instead of *v in the second
23127 one, add avx alternative without *.
23128 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
23129 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
23130 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
23131
23132 2016-05-24 Jeff Law <law@redhat.com>
23133
23134 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
23135 New function, extracted from...
23136 (fsm_find_control_statement_thread_paths): Here. Use the new function.
23137 Allow simple copies and constant initializations in the SSA chain.
23138
23139 2016-05-24 Marek Polacek <polacek@redhat.com>
23140
23141 PR c/71249
23142 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
23143 scope.
23144
23145 2016-05-24 Jakub Jelinek <jakub@redhat.com>
23146
23147 PR c++/71257
23148 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
23149 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
23150 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
23151 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
23152 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
23153
23154 2016-05-24 Richard Biener <rguenther@suse.de>
23155
23156 PR tree-optimization/71240
23157 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
23158 has integral type.
23159
23160 2016-05-24 Richard Biener <rguenther@suse.de>
23161
23162 PR tree-optimization/71230
23163 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
23164
23165 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
23166
23167 * tree-vectorizer.h (vectorizable_comparison): Delete.
23168 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
23169 PURE_SLP_STMT check.
23170 * tree-vect-stmts.c (vectorizable_call): Likewise.
23171 (vectorizable_simd_clone_call): Likewise.
23172 (vectorizable_conversion): Likewise.
23173 (vectorizable_assignment): Likewise.
23174 (vectorizable_shift): Likewise.
23175 (vectorizable_operation): Likewise.
23176 (vectorizable_load): Likewise.
23177 (vectorizable_condition): Likewise.
23178 (vectorizable_store): Likewise. Assert that we don't have
23179 hybrid SLP.
23180 (vectorizable_comparison): Make static. Remove redundant
23181 PURE_SLP_STMT check.
23182 (vect_transform_stmt): Assert that we always have an slp_node
23183 if PURE_SLP_STMT.
23184
23185 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23186
23187 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
23188 operands[2] against 1 with comparison against CONST1_RTX.
23189 (<shift>di3_neon): Likewise.
23190 * config/arm/predicates.md (const0_operand): Replace with comparison
23191 against CONST0_RTX.
23192
23193 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23194
23195 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
23196 operands[2] against 1 with comparison against CONST1_RTX.
23197 (ashrdi3): Likewise.
23198 (lshrdi3): Likewise.
23199 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
23200 UINTVAL.
23201 (ashrsi3): Likewise.
23202 (lshrsi3): Likewise.
23203 (rotrsi3): Likewise.
23204 (define_split above *compareqi_eq0): Likewise.
23205 (define_split above "prologue"): Likewise.
23206 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
23207 * config/arm/predicates.md (shift_operator): Likewise.
23208 (shift_nomul_operator): Likewise.
23209 (sat_shift_operator): Likewise.
23210 (thumb1_cmp_operand): Likewise.
23211 (const_neon_scalar_shift_amount_operand): Replace manual range
23212 check with IN_RANGE.
23213 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
23214 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
23215
23216 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23217
23218 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
23219 with HOST_WIDE_INT_1.
23220 (insv): Likewise.
23221 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
23222 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
23223 (arm_canonicalize_comparison): Likewise.
23224 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
23225 HOST_WIDE_INT_1.
23226 (thumb1_size_rtx_costs): Likewise.
23227 (vfp_const_double_index): Replace cast of 1 to unsigned
23228 HOST_WIDE_INT with HOST_WIDE_INT_1U.
23229 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
23230 HOST_WIDE_INT_1.
23231 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
23232 HOST_WIDE_INT with HOST_WIDE_INT_1U.
23233 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
23234 HOST_WIDE_INT with HOST_WIDE_INT_1.
23235
23236 2016-05-24 Marek Polacek <polacek@redhat.com>
23237
23238 * tree-cfg.h (should_remove_lhs_p): New predicate.
23239 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
23240 * gimplify.c (gimplify_modify_expr): Likewise.
23241 * tree-cfg.c (verify_gimple_call): Likewise.
23242 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
23243 * gimple-fold.c: Include "tree-cfg.h".
23244 (gimple_fold_call): Use should_remove_lhs_p.
23245
23246 2016-05-24 Richard Biener <rguenther@suse.de>
23247
23248 PR tree-optimization/71253
23249 * cfganal.h (control_dependences): Make robust against edge
23250 and BB removal.
23251 (control_dependences::control_dependences): Remove edge_list argument.
23252 (control_dependences::get_edge): Remove.
23253 (control_dependences::get_edge_src): Add.
23254 (control_dependences::get_edge_dest): Likewise.
23255 (control_dependences::m_el): Make a vector of edge src/dest index.
23256 * cfganal.c (control_dependences::find_control_dependence): Adjust.
23257 (control_dependences::control_dependences): Likewise.
23258 (control_dependences::~control_dependence): Likewise.
23259 (control_dependences::get_edge): Remove.
23260 (control_dependences::get_edge_src): Add.
23261 (control_dependences::get_edge_dest): Likewise.
23262 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
23263 get_edge_src.
23264 (perform_tree_ssa_dce): Adjust.
23265 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
23266 get_edge_src.
23267 (pass_loop_distribution::execute): Adjust. Do loop destroying
23268 conditional on changed.
23269
23270 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23271
23272 PR target/69857
23273 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
23274 return. Reindent transformation comment and mention the ARM state
23275 behavior.
23276
23277 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
23278
23279 PR middle-end/71252
23280 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
23281 after build_and_add_sum creates new use stmt.
23282
23283 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
23284
23285 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
23286 load_lanes/grouped_load classification comes first. Don't check
23287 whether the vectorization factor is a multiple of the group size
23288 for load_lanes.
23289
23290 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
23291
23292 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
23293 GROUP_GAP for single-element interleaving.
23294 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
23295 variable.
23296
23297 2016-05-24 Richard Biener <rguenther@suse.de>
23298
23299 PR middle-end/70434
23300 PR c/69504
23301 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
23302 bases which are accessed with non-invariant indices.
23303 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
23304 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
23305
23306 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
23307
23308 PR middle-end/71170
23309 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
23310 (add_to_ops_vec): Add stmt_to_insert.
23311 (add_repeat_to_ops_vec): Init stmt_to_insert.
23312 (insert_stmt_before_use): New.
23313 (transform_add_to_multiply): Remove mult_stmt insertion and add it
23314 to ops vector.
23315 (get_ops): Init stmt_to_insert.
23316 (maybe_optimize_range_tests): Likewise.
23317 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
23318 (rewrite_expr_tree_parallel): Likewise.
23319 (reassociate_bb): Likewise.
23320
23321 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
23322
23323 PR target/71201
23324 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
23325 ISA 3.0 xxperm fusion alternative.
23326 (altivec_vperm_v8hiv16qi): Likewise.
23327 (altivec_vperm_<mode>_uns_internal): Likewise.
23328 (vperm_v8hiv4si): Likewise.
23329 (vperm_v16qiv8hi): Likewise.
23330
23331 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
23332 Kelvin Nilsen <kelvin@gcc.gnu.org>
23333
23334 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
23335 vpermr/xxpermr on ISA 3.0.
23336 (altivec_expand_vec_perm_le): Likewise.
23337 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
23338 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
23339 ISA 3.0.
23340
23341 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
23342
23343 * config/i386/i386.h (IS_STACK_MODE): Enable for
23344 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
23345 SSE_FLOAT_MODE_P macros.
23346 * config/i386/i386.c (ix86_preferred_reload_class): Use
23347 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
23348 Cleanup regclass processing for CONST_DOUBLE_P.
23349 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
23350 (ix86_rtx_costs): Remove redundant TARGET_80387 check
23351 with IS_STACK_MODE macro.
23352 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
23353 with TARGET_SSE2.
23354 (*movdf_internal): Use IS_STACK_MODE macro.
23355 (*movsf_internal): Ditto.
23356
23357 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
23358
23359 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
23360 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
23361
23362 2016-05-23 Jeff Law <law@redhat.com>
23363
23364 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
23365 extracted from ...
23366 (fsm_find_control_statement_thread_paths): Call it.
23367
23368 2016-05-23 Martin Jambor <mjambor@suse.cz>
23369
23370 PR ipa/71234
23371 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
23372 from_global_constant if t is not NULL.
23373
23374 2016-05-23 Marek Polacek <polacek@redhat.com>
23375
23376 PR c/49859
23377 * common.opt (Wswitch-unreachable): New option.
23378 * doc/invoke.texi: Document -Wswitch-unreachable.
23379 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
23380 warning.
23381
23382 2016-05-23 Bin Cheng <bin.cheng@arm.com>
23383
23384 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
23385 TMR_INDEX is non-NULL.
23386
23387 2016-05-23 Richard Biener <rguenther@suse.de>
23388
23389 PR tree-optimization/71230
23390 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
23391 (try_special_add_to_ops): ... here. Always test for single-use.
23392
23393 2016-05-23 Martin Jambor <mjambor@suse.cz>
23394
23395 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
23396 default block if a PHI node in the original one would be resized.
23397
23398 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
23399
23400 PR tree-optimization/58135
23401 * tree-vect-slp.c: When group size is not multiple
23402 of vector size, allow splitting of store group at
23403 vector boundary.
23404
23405 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
23406
23407 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
23408
23409 2016-05-22 Jakub Jelinek <jakub@redhat.com>
23410
23411 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
23412 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
23413 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
23414 of 64x2.
23415
23416 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
23417 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
23418 v constraint instead of x and vinserti32x4 insn.
23419
23420 * config/i386/sse.md (i128vldq): New mode iterator.
23421 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
23422 avx512dq and avx512vl alternatives.
23423
23424 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
23425 constraint, use maybe_evex prefix instead of vex.
23426 (vec_dupv4sf): Use v constraint instead of x for output
23427 operand except for noavx alternative, use Yv constraint
23428 instead of x for input. Use maybe_evex prefix instead of vex.
23429 (*vec_dupv4si): Likewise.
23430 (*vec_dupv2di): Likewise.
23431
23432 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
23433
23434 PR middle-end/40921
23435 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
23436 (linearize_expr_tree): Call try_special_add_to_ops.
23437 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
23438
23439 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
23440
23441 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
23442 to computed stack_usage.
23443
23444 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23445
23446 PR target/71103
23447 * config/avr/avr.md (define_expand "mov<mode>"): If the source
23448 operand is subreg (symbol_ref) then move the symbol ref to register.
23449
23450 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
23451
23452 * tree.c (array_at_struct_end_p): Look through MEM_REF.
23453
23454 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
23455
23456 PR middle-end/71179
23457 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
23458 VECTOR type.
23459
23460 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
23461
23462 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
23463 ranges by calling get_single_symbol and tidy up. Look more closely
23464 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
23465
23466 2016-05-20 Jeff Law <law@redhat.com>
23467
23468 * bitmap.c (bitmap_find_bit): Remove useless test.
23469
23470 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
23471
23472 * function.c (thread_prologue_and_epilogue_insns): Commit the
23473 insertion of the epilogue.
23474
23475 2016-05-20 Martin Jambor <mjambor@suse.cz>
23476
23477 PR tree-optimization/70884
23478 * tree-sra.c (initialize_constant_pool_replacements): Do not check
23479 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
23480 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
23481 of constant pool data as a reason for scalarization.
23482
23483 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
23484
23485 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
23486 for naked functions.
23487 (thumb1_expand_prologue): Likewise.
23488
23489 2016-05-20 Nathan Sidwell <nathan@acm.org>
23490
23491 * config/nvptx/nptx.c (nvptx_option_override): Only set
23492 flag_toplevel_reorder, if not explicitly specified. Set
23493 flag_no_common, unless explicitly specified.
23494
23495 2016-05-20 David Malcolm <dmalcolm@redhat.com>
23496
23497 * calls.c (can_implement_as_sibling_call_p): Mark param
23498 reg_parm_stack_space with ATTRIBUTE_UNUSED.
23499
23500 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
23501
23502 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
23503 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
23504 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
23505 constants.
23506 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
23507 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
23508 and CASE_CONST_ANY.
23509
23510 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
23511
23512 * config/nvptx/nvptx.md (sincossf3): New pattern.
23513
23514 2016-05-20 David Malcolm <dmalcolm@redhat.com>
23515
23516 * calls.c (maybe_complain_about_tail_call): New function.
23517 (initialize_argument_information): Call
23518 maybe_complain_about_tail_call when clearing *may_tailcall.
23519 (can_implement_as_sibling_call_p): Call
23520 maybe_complain_about_tail_call when returning false.
23521 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
23522 ensure try_tail_call is set. Call maybe_complain_about_tail_call
23523 if tail-call optimization fails.
23524 * cfgexpand.c (expand_call_stmt): Initialize
23525 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
23526 * gimple-pretty-print.c (dump_gimple_call): Dump
23527 gimple_call_must_tail_p.
23528 * gimple.c (gimple_build_call_from_tree): Call
23529 gimple_call_set_must_tail with the value of
23530 CALL_EXPR_MUST_TAIL_CALL.
23531 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
23532 (gimple_call_set_must_tail): New function.
23533 (gimple_call_must_tail_p): New function.
23534 * print-tree.c (print_node): Update printing of TREE_STATIC
23535 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
23536 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
23537 trailing comment listing applicable flags.
23538 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
23539
23540 2016-05-20 David Malcolm <dmalcolm@redhat.com>
23541
23542 * calls.c (expand_call): Move "Rest of purposes for tail call
23543 optimizations to fail" to...
23544 (can_implement_as_sibling_call_p): ...this new function, and
23545 split into multiple "if" statements.
23546
23547 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
23548
23549 * cfgloop.h (expected_loop_iterations_unbounded,
23550 expected_loop_iterations): Unconstify.
23551 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
23552 profile with known upper bound; return 3 when profile is absent.
23553 (expected_loop_iterations): Update.
23554
23555 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
23556
23557 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
23558 and get_max_loop_iterations_int.
23559
23560 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
23561
23562 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
23563 realistic upper bounds here.
23564
23565 2016-05-20 Jakub Jelinek <jakub@redhat.com>
23566
23567 PR c++/71210
23568 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
23569 calls if the LHS is variable length or has addressable type.
23570 If targets[0]->decl is a noreturn call with void return type and
23571 zero arguments, adjust fntype and remove lhs in that case.
23572
23573 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
23574
23575 PR tree-optimization/71079
23576 PR tree-optimization/71206
23577 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
23578
23579 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23580
23581 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
23582 (get_vec_alignment_for_array_decl): Likewise.
23583 (get_vec_alignment_for_record_decl): Likewise.
23584 (increase_alignment::execute): Move code to find alignment to
23585 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
23586 (type_align_map): New hash_map.
23587
23588 2016-05-20 Richard Guenther <rguenther@suse.de>
23589
23590 PR tree-optimization/29756
23591 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
23592 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
23593 * fold-const.c (operand_equal_p): Likewise.
23594 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
23595 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
23596 * tree-inline.c (estimate_operator_cost): Likewise.
23597 * tree-pretty-print.c (dump_generic_node): Likewise.
23598 * tree-ssa-operands.c (get_expr_operands): Likewise.
23599 * cfgexpand.c (expand_debug_expr): Likewise.
23600 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
23601 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
23602 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
23603 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
23604 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
23605 (execute_update_addresses_taken): Do it.
23606
23607 2016-05-20 Richard Biener <rguenther@suse.de>
23608
23609 PR tree-optimization/71185
23610 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
23611 register operations.
23612
23613 2016-05-20 Richard Biener <rguenther@suse.de>
23614
23615 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
23616 gimple_seq_add_seq_without_update.
23617 (release_bb_predicate): Assert we have no operands to free.
23618 (if_convertible_loop_p_1): Calculate post dominators later.
23619 Do not free BB predicates here.
23620 (combine_blocks): Do not recompute BB predicates.
23621 (version_loop_for_if_conversion): Save BB predicates around
23622 loop versioning.
23623
23624 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23625
23626 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
23627 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
23628 code. Ignore sibcalls on EDGE_IGNORE edges.
23629 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
23630 on edges for sibcalls that run without prologue. The rest of the
23631 function is combined from...
23632 (fix_fake_fallthrough_edge): ... this, and ...
23633 (try_shrink_wrapping): ... a part of this. Remove the bb_with
23634 function argument, make it a local variable.
23635
23636 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
23637
23638 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
23639 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
23640 for 32-bit mode and SEH for 64-bit.
23641 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
23642 TARGET_64BIT_DEFAULT.
23643
23644 2016-05-19 Ryan Burn <contact@rnburn.com>
23645
23646 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
23647 * gengtype.c (open_base_files): Add cilk.h to ifiles.
23648
23649 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
23650
23651 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
23652 force pending loads from memory.
23653
23654 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
23655
23656 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
23657 (UNSPEC_DARN_32): New unspec constant.
23658 (UNSPEC_DARN_RAW): New unspec constant.
23659 (darn_32): New instruction.
23660 (darn_raw): New instruction.
23661 (darn): New instruction.
23662 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
23663 support and documentation for this macro.
23664 (BU_P9_MISC_1): New macro definition.
23665 (BU_P9_64BIT_MISC_0): New macro definition.
23666 (BU_P9_MISC_0): New macro definition.
23667 (darn_32): New builtin definition.
23668 (darn_raw): New builtin definition.
23669 (darn): New builtin definition.
23670 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
23671 RS6000_BUILTIN_0 directives to surround each occurrence of
23672 #include "rs6000-builtin.def".
23673 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
23674 RS6000_BTM_64BIT flags to the returned mask, depending on
23675 configuration.
23676 (def_builtin): Correct an error in the assignments made to the
23677 debugging variable attr_string.
23678 (rs6000_expand_builtin): Add support for no-operand built-in
23679 functions.
23680 (builtin_function_type): Remove fatal_error assertion that is no
23681 longer valid.
23682 (rs6000_common_init_builtins): Add support for no-operand built-in
23683 functions.
23684 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
23685 definition.
23686 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
23687 definition.
23688 (RS6000_BTM_64BIT): New macro definition.
23689 * doc/extend.texi: Document __builtin_darn (void),
23690 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
23691 functions.
23692
23693 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
23694
23695 * tree-vect-loop.c (vect_analyze_loop_2): Use also
23696 max_loop_iterations_int.
23697
23698 2016-05-19 Marek Polacek <polacek@redhat.com>
23699
23700 PR tree-optimization/71031
23701 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
23702 condition and adjust the code a bit.
23703
23704 2016-05-19 Martin Liska <mliska@suse.cz>
23705
23706 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
23707 auto_vec instead of vec.
23708
23709 2016-05-19 Martin Liska <mliska@suse.cz>
23710
23711 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
23712
23713 2016-05-19 Martin Liska <mliska@suse.cz>
23714
23715 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
23716
23717 2016-05-19 Martin Liska <mliska@suse.cz>
23718
23719 * ipa-pure-const.c (set_function_state): Remove an existing
23720 funct_state.
23721 (remove_node_data): Do not free it as it's released
23722 in set_function_state.
23723
23724 2016-05-19 Martin Liska <mliska@suse.cz>
23725
23726 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
23727 bitmap.
23728
23729 2016-05-19 Martin Liska <mliska@suse.cz>
23730
23731 * omp-simd-clone.c (simd_clone_adjust): Release vector.
23732
23733 2016-05-19 Martin Liska <mliska@suse.cz>
23734
23735 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
23736 an auto_vec instead of re-creating it.
23737
23738 2016-05-19 Martin Liska <mliska@suse.cz>
23739
23740 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
23741 auto_vec instead of vec.
23742
23743 2016-05-19 Martin Liska <mliska@suse.cz>
23744
23745 * lto-section-in.c (lto_get_section_data): Call
23746 lto_check_version with additional argument.
23747 * lto-streamer.c (lto_check_version): Add new argument.
23748 * lto-streamer.h (lto_check_version): Likewise.
23749
23750 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23751
23752 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
23753 Don't add cost of inner memory when handling sign-extended loads.
23754
23755 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
23756
23757 PR rtl-optimization/71148
23758 * cse.c (cse_main): Free dominance info.
23759 (rest_of_handle_cse): Don't free dominance info.
23760 (rest_of_handle_cse2): Likewise.
23761 (rest_of_handle_cse_after_global_opts): Likewise.
23762
23763 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23764
23765 PR target/71056
23766 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
23767 NULL_TREE early if NEON is not available. Remove now redundant check
23768 in ARM_CHECK_BUILTIN_MODE.
23769
23770 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
23771
23772 PR sanitizer/64354
23773 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
23774 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
23775 * doc/cpp.texi: Document new macros.
23776
23777 2016-05-19 Bin Cheng <bin.cheng@arm.com>
23778
23779 PR tree-optimization/69848
23780 * tree-vect-loop.c (vectorizable_reduction): Don't factor
23781 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
23782
23783 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
23784
23785 * function.c (thread_prologue_and_epilogue_insn): Move the
23786 "goto epilogue_done" one block later.
23787
23788 2016-05-19 Richard Biener <rguenther@suse.de>
23789
23790 PR tree-optimization/70729
23791 * passes.def: Move LIM pass before PRE. Remove no longer
23792 required copyprop and move first DCE out of the loop pipeline.
23793
23794 2016-05-18 David Malcolm <dmalcolm@redhat.com>
23795
23796 PR driver/69265
23797 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
23798 (OBJS-libcommon-target): ...here.
23799 * opts-common.c: Include spellcheck.h.
23800 (cmdline_handle_error): Build a vec of valid options and use it
23801 to suggest provide hints for misspelled arguments.
23802
23803 2016-05-18 Jakub Jelinek <jakub@redhat.com>
23804
23805 PR c++/71100
23806 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
23807 lhs if it has TREE_ADDRESSABLE type.
23808
23809 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
23810
23811 PR target/71145
23812 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
23813 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
23814
23815 2016-05-18 Martin Jambor <mjambor@suse.cz>
23816
23817 PR ipa/69708
23818 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
23819 input for NOP_EXPR pass-through functions.
23820 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
23821 aggregate global constant VAR_DECLs in constant jump functions.
23822
23823 2016-05-18 Martin Jambor <mjambor@suse.cz>
23824
23825 PR ipa/69708
23826 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
23827 from TREE_READONLY parameters.
23828
23829 2016-05-18 Martin Jambor <mjambor@suse.cz>
23830
23831 PR ipa/69708
23832 * cgraph.h (cgraph_indirect_call_info): New field
23833 guaranteed_unmodified.
23834 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
23835 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
23836 appropriate.
23837 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
23838 pass the parameter value to ipa_find_agg_cst_for_param.
23839 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
23840 guaranteed_unmodified, store AA results there instead of bailing out
23841 if present.
23842 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
23843 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
23844 (find_constructor_constant_at_offset): New function.
23845 (ipa_find_agg_cst_from_init): Likewise.
23846 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
23847 static initializers of contants, report back through a new paameter
23848 from_global_constant if that was the case.
23849 (try_make_edge_direct_simple_call): Also pass parameter value to
23850 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
23851 appropriate.
23852 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
23853 (ipa_read_indirect_edge_info): Likewise.
23854 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
23855 (ipa_load_from_parm_agg): Likewise.
23856
23857 2016-05-18 Jiong Wang <jiong.wang@arm.com>
23858
23859 PR rtl-optimization/71150
23860 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
23861 check.
23862
23863 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
23864
23865 PR target/70915
23866 * config/rs6000/constraints.md (wE constraint): New constraint
23867 for a vector constant that can be loaded with XXSPLTIB.
23868 (wM constraint): New constraint for a vector constant of a 1's.
23869 (wS constraint): New constraint for a vector constant that can be
23870 loaded with XXSPLTIB and a vector sign extend instruction.
23871 * config/rs6000/predicates.md (xxspltib_constant_split): New
23872 predicates for wE/wS constraints.
23873 (xxspltib_constant_nosplit): Likewise.
23874 (easy_vector_constant): Add support for constants that can be
23875 loaded via XXSPLTIB.
23876 (all_ones_constant): New predicate for vector constant with all
23877 1's set.
23878 (splat_input_operand): Add support for ISA 3.0 word splat operations.
23879 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
23880 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
23881 instruction and possibly with a sign extension.
23882 (output_vec_const_move): Add support for XXSPLTIB. If we are
23883 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
23884 instead of XXLXOR/XXLORC.
23885 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
23886 operations.
23887 (rs6000_legitimize_reload_address): Likewise.
23888 (rs6000_output_move_128bit): Use output_vec_const_move to emit
23889 constants.
23890 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
23891 combine VSX_M and VSX_M2 into one iterator.
23892 (VSX_M2): Likewise.
23893 (VSINT_84): New iterators for loading constants with XXSPLTIB.
23894 (VSINT_842): Likewise.
23895 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
23896 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
23897 XXSPLTIB instruction.
23898 (xxspltib_<mode>_nosplit): Likewise.
23899 (xxspltib_<mode>_split): New insn to load up constants with
23900 XXSPLTIB and a sign extend instruction.
23901 (vsx_mov<mode>): Replace single move that handled all vector types
23902 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
23903 moves (when -mvsx-timode is in effect) into the main vector
23904 moves. Eliminate separate moves for <VSr> <VSa>, where the
23905 preferred register class (<VSr>) is listed first, and the
23906 secondary register class (<VSa>) is listed second with a '?' to
23907 discourage use. Prefer loading 0/-1 in any VSX register for ISA
23908 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
23909 that if the register was involved in a slow operation, the
23910 clear/set operation does not wait for the slow operation to
23911 finish. Adjust the length attributes for 32-bit mode. Use
23912 rs6000_output_move_128bit and drop the use of the string
23913 instructions for 32-bit movti when -mvsx-timode is in effect. Use
23914 spacing so that the alternatives and attributes don't generate
23915 long lines, and put things in columns, so that it is easier to
23916 match up the operands and attributes with the insn alternatives.
23917 (vsx_mov<mode>_64bit): Likewise.
23918 (vsx_mov<mode>_32bit): Likewise.
23919 (vsx_movti_64bit): Fold movti into normal vector moves.
23920 (vsx_movti_32bit): Likewise.
23921 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
23922 splat instructions.
23923 (vsx_splat_v4si_internal): Likewise.
23924 (vsx_splat_v4sf_internal): Likewise.
23925 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
23926 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
23927 extend vector elements.
23928 (vsx_sign_extend_hi_<mode>): Likewise.
23929 (vsx_sign_extend_si_v2di): Likewise.
23930 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
23931 declaration.
23932 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
23933 constraints. Add trailing period to wL documentation.
23934
23935 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
23936
23937 PR middle-end/71020
23938 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
23939 * tree-dfa.c (replace_abnormal_ssa_names): New function.
23940 * tree-call-cdce.c: Include tree-dfa.h.
23941 (can_guard_call_p): New function, extracted from...
23942 (can_use_internal_fn): ...here.
23943 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
23944 and return void.
23945 (shrink_wrap_one_built_in_call): Likewise.
23946 (use_internal_fn): Likewise.
23947 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
23948 and return void. Call replace_abnormal_ssa_names.
23949 (pass_call_cdce::execute): Check can_guard_call_p during the
23950 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
23951 will always change something.
23952
23953 2016-05-18 Martin Jambor <mjambor@suse.cz>
23954
23955 PR ipa/70646
23956 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
23957 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
23958
23959 2016-05-18 Martin Jambor <mjambor@suse.cz>
23960
23961 PR ipa/70646
23962 * ipa-inline.h (condition): New field size.
23963 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
23964 for comaprison and store it into the new condition.
23965 (evaluate_conditions_for_known_args): Use condition size to check
23966 access sizes for all but CHANGED conditions.
23967 (unmodified_parm_1): New parameter size_p, store access size into it.
23968 (unmodified_parm): Likewise.
23969 (unmodified_parm_or_parm_agg_item): Likewise.
23970 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
23971 (set_cond_stmt_execution_predicate): Extract access sizes and store
23972 them to conditions.
23973 (set_switch_stmt_execution_predicate): Likewise.
23974 (will_be_nonconstant_expr_predicate): Likewise.
23975 (will_be_nonconstant_predicate): Likewise.
23976 (inline_read_section): Stream condition size.
23977 (inline_write_summary): Likewise.
23978
23979 2016-05-18 Richard Biener <rguenther@suse.de>
23980
23981 * tree-ssa-loop-im.c (determine_max_movement): Properly add
23982 condition cost to PHI cost instead of total_cost.
23983
23984 2016-05-18 Martin Liska <mliska@suse.cz>
23985
23986 PR fortran/70856
23987 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
23988 merged variables.
23989
23990 2016-05-18 Richard Biener <rguenther@suse.de>
23991
23992 * lto-streamer.h (LTO_major_version): Bump to 6.
23993
23994 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
23995
23996 * function.c (make_split_prologue_seq, make_prologue_seq,
23997 make_epilogue_seq): New functions, factored out from...
23998 (thread_prologue_and_epilogue_insns): Here.
23999
24000 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
24001
24002 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
24003 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
24004 of before. Add a comment.
24005
24006 2016-05-18 Bin Cheng <bin.cheng@arm.com>
24007
24008 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
24009 expression pointer, not pointer to the pointer.
24010
24011 2016-05-18 Jakub Jelinek <jakub@redhat.com>
24012
24013 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
24014 (avx2_pbroadcast<mode>): Add another alternative with v instead
24015 of x constraints in it, using <pbroadcast_evex_isa> isa.
24016 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
24017
24018 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
24019 constraint x instead of v in second alternative, add avx512bw
24020 alternative.
24021
24022 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
24023 constraint x instead of v in second alternative, add avx512bw
24024 alternative.
24025
24026 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
24027 constraint x instead of v in second alternative, add avx512bw
24028 alternative.
24029
24030 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
24031 avx512bw alternative.
24032
24033 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
24034
24035 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
24036 array to 128 chars.
24037 (define_insn "*andnottf3"): Ditto.
24038 (define_insn "*<code><mode>3"/any_logic): Ditto.
24039 (define_insn "*<code>tf3"/any_logic): Ditto.
24040 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
24041 operand to block AVX-512VL insn variant emit when it is not enabled.
24042
24043 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
24044
24045 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
24046 constraint fot SF mode.
24047
24048 2016-05-18 Petr Murzin <petr.murzin@intel.com>
24049 Kirill Yukhin <kirill.yukhin@intel.com>
24050
24051 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
24052 modifiers.
24053 (define_insn "rsqrt14<mode>"): Ditto.
24054 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
24055 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
24056 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
24057 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
24058 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
24059 Ditto.
24060 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
24061 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
24062 * config/i386/i386.c (ix86_print_operand): Expand check for size
24063 override codes for Intel syntax.
24064
24065 2016-05-18 Richard Biener <rguenther@suse.de>
24066
24067 PR tree-optimization/71168
24068 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
24069 initialization earlier.
24070
24071 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
24072
24073 * config/aarch64/aarch64-simd.md
24074 (aarch64_reduc_plus_internal<mode>): Rename to...
24075 (reduc_plus_scal): ...This, and remove previous implementation.
24076
24077 2016-05-18 Richard Biener <rguenther@suse.de>
24078
24079 * passes.def: Put late dse and cd_dce in canonical order.
24080
24081 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
24082
24083 * ipa-inline-transform.c (preserve_function_body_p): Look for
24084 first non-thunk clone.
24085 (save_function_body): Save into first non-thunk.
24086 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
24087 up call stmt id.
24088 (lto_output_node): Inline thunks don't need body in every
24089 partition.
24090 * lto-streamer-in.c: Do not fixup thunk clones.
24091 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
24092 thunks.
24093 * tree-inline.c (copy_bb): Be prepared for target node to be new after
24094 folding suceeds.
24095
24096 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
24097
24098 PR middle-end/63586
24099 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
24100 (reassociate_bb): Call transform_add_to_multiply.
24101
24102 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
24103
24104 * config/aarch64/aarch64.c (all_extensions): Removed unused
24105 static variable.
24106
24107 2016-05-17 Nathan Sidwell <nathan@acm.org>
24108
24109 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
24110 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
24111
24112 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
24113
24114 PR tree-optimization/54579
24115 PR middle-end/55299
24116 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
24117
24118 2016-05-17 Marek Polacek <polacek@redhat.com>
24119
24120 PR ipa/71146
24121 * tree-inline.c (expand_call_inline): Call
24122 maybe_remove_unused_call_args.
24123
24124 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
24125
24126 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
24127 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
24128 * doc/md.texi (fmin@var{m}3): Likewise.
24129
24130 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
24131
24132 * match.pd (X & C): New transformation.
24133
24134 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
24135
24136 * match.pd (~X & Y): New transformation.
24137
24138 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
24139
24140 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
24141 information for new SSA_NAME.
24142 (simplify_conversion_using_ranges): Get range through get_range_info
24143 instead of get_value_range.
24144
24145 2016-05-17 Jiong Wang <jiong.wang@arm.com>
24146
24147 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
24148 Remove inline assembly.
24149 (vmvn_s16): Likewise.
24150 (vmvn_s32): Likewise.
24151 (vmvn_u8): Likewise.
24152 (vmvn_u16): Likewise.
24153 (vmvn_u32): Likewise.
24154 (vmvnq_s8): Likewise.
24155 (vmvnq_s16): Likewise.
24156 (vmvnq_s32): Likewise.
24157 (vmvnq_u8): Likewise.
24158 (vmvnq_u16): Likewise.
24159 (vmvnq_u32): Likewise.
24160 (vmvn_p8): Likewise.
24161 (vmvnq_p16): Likewise.
24162
24163 2016-05-17 Jiong Wang <jiong.wang@arm.com>
24164
24165 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
24166 Use builtin.
24167 (vmul_n_s16): Likewise.
24168 (vmul_n_s32): Likewise.
24169 (vmul_n_u16): Likewise.
24170 (vmul_n_u32): Likewise.
24171 (vmulq_n_f32): Likewise.
24172 (vmulq_n_f64): Likewise.
24173 (vmulq_n_s16): Likewise.
24174 (vmulq_n_s32): Likewise.
24175 (vmulq_n_u16): Likewise.
24176 (vmulq_n_u32): Likewise.
24177
24178 2016-05-17 Jiong Wang <jiong.wang@arm.com>
24179
24180 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
24181 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
24182
24183 2016-05-17 Jiong Wang <jiong.wang@arm.com>
24184
24185 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
24186 to *aarch64_fma4_elt_from_dup<mode>.
24187 (*aarch64_fnma4_elt_to_128df): Rename to
24188 *aarch64_fnma4_elt_from_dup<mode>.
24189 * config/aarch64/arm_neon.h (vfma_n_f64): New.
24190 (vfms_n_f32): Likewise.
24191 (vfms_n_f64): Likewise.
24192 (vfmsq_n_f32): Likewise.
24193 (vfmsq_n_f64): Likewise.
24194
24195 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
24196
24197 * wide-int.h: Change fixed_wide_int_storage from class to struct.
24198
24199 2016-05-17 Richard Biener <rguenther@suse.de>
24200
24201 PR tree-optimization/71132
24202 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
24203 Only add control dependences for blocks in the loop.
24204 (build_rdg): Adjust.
24205 (generate_code_for_partition): Return whether loop should
24206 be destroyed and delay that.
24207 (distribute_loop): Likewise.
24208 (pass_loop_distribution::execute): Record loops to be destroyed
24209 and perform delayed destroying of loops.
24210
24211 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24212
24213 PR target/70809
24214 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
24215
24216 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
24217
24218 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
24219
24220 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
24221
24222 PR target/71114
24223 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
24224 insertion point for instructions generated by validize_mem.
24225
24226 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
24227
24228 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
24229 in brackets.
24230
24231 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
24232
24233 * config/aarch64/aarch64.c
24234 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
24235 rather than a macro.
24236
24237 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
24238
24239 * doc/invoke.texi (AArch64 Options): Various updates.
24240
24241 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24242
24243 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
24244 into instrumentation thunks.
24245 * cif-code.def (CIF_CHKP): New.
24246
24247 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
24248
24249 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
24250
24251 2016-05-16 Martin Jambor <mjambor@suse.cz>
24252
24253 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
24254 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
24255
24256 2016-05-16 Marek Polacek <polacek@redhat.com>
24257
24258 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
24259 commentary.
24260
24261 2016-05-16 Martin Jambor <mjambor@suse.cz>
24262
24263 PR hsa/70857
24264 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
24265 the outlined kernel function.
24266
24267 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
24268
24269 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
24270 (ISA_HAS_DLSA): Ditto.
24271
24272 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
24273
24274 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
24275
24276 2016-05-16 Nathan Sidwell <nathan@acm.org>
24277
24278 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
24279 (nvptx_name_replacement): Restore. Add comment.
24280 (write_fn_proto, write_fn_proto_from_insn,
24281 nvptx_output_call_insn): Restore
24282 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
24283
24284 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
24285
24286 * config/aarch64/aarch64.md
24287 (add<mode>3_compareC_cconly_imm): Remove use of %w.
24288 (add<mode>3_compareC_imm): Likewise.
24289 (<optab>si3_uxtw): Split into register and immediate variants.
24290 (andsi3_compare0_uxtw): Likewise.
24291 (and<mode>3_compare0): Likewise.
24292 (and<mode>3nr_compare0): Likewise.
24293 (stack_protect_test_<mode>): Don't use %x for memory operands.
24294
24295 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
24296
24297 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
24298
24299 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
24300
24301 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
24302 Split integer shifts into shift_reg and bfm.
24303 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
24304 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
24305 (ror<mode>3_insn): Likewise.
24306 (<optab>si3_insn_uxtw): Likewise.
24307 (<optab><mode>3_insn): Change to rotate_imm.
24308 (extr<mode>5_insn_alt): Likewise.
24309 (extrsi5_insn_uxtw): Likewise.
24310 (extrsi5_insn_uxtw_alt): Likewise.
24311
24312 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
24313
24314 * doc/tm.texi: Regenerate.
24315 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
24316 (TARGET_INVALID_RETURN_TYPE): Remove.
24317 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
24318 TARGET_INVALID_RETURN_TYPE.
24319 * target.def (invalid_parameter_type): Remove.
24320 (invalid_return_type): Remove.
24321
24322 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24323
24324 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
24325 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
24326 calls from thunk.
24327 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
24328 gimple body.
24329 (preserve_function_body_p): No need to preserve function body
24330 * cif-codes.def (CIF_THUNK): Remove.
24331 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
24332
24333 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24334
24335 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
24336
24337 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24338
24339 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
24340 for thunks.
24341
24342 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24343
24344 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
24345 (inline_small_functions): Do not look for function symbol when
24346 resetting caches.
24347
24348 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
24349
24350 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
24351 of inline thunks
24352
24353 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
24354 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24355 Jiong Wang <jiong.wang@arm.com>
24356
24357 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
24358 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
24359 Define __ARM_FP16_ARGS when appropriate.
24360 * config/arm/arm.c (arm_invalid_parameter_type): Remove
24361 declaration.
24362 (arm_invalid_return_type): Likewise.
24363 (TARGET_INVALID_PARAMETER_TYPE): Remove.
24364 (TARGET_INVALID_RETURN_TYPE): Remove.
24365 (aapcs_vfp_sub_candidate): Allow HFmode.
24366 (aapcs_vfp_allocate): Add comment. Support HFmode.
24367 (aapcs_vfp_allocate_return_reg): Likewise.
24368 (struct aapcs_cp_arg_layout): Slightly reword comments for
24369 is_return_candidate and allocate_return_reg.
24370 (output_mov_vfp): Update assert.
24371 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
24372 condition.
24373 (arm_invalid_parameter_type): Remove.
24374 (amr_invalid_return_type): Remove.
24375 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
24376 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
24377 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
24378
24379 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
24380
24381 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24382 * config/aarch64/arch64-protos.h
24383 (aarch64_legitimize_reload_address): Remove.
24384 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
24385 Remove.
24386
24387 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
24388
24389 * configure.ac: Add ACX_NONCANONICAL_HOST.
24390 * configure: Regenerate.
24391 * Makefile.in: Set host_noncanonical.
24392
24393 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
24394
24395 PR target/71097
24396 * config/i386/i386.md (*movtf_internal): Before register allocation,
24397 do not allow FP constants for CM_MEDIUM memory model, allow only
24398 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
24399 (*movxf_internal): Ditto.
24400 (*movdf_internal): Ditto.
24401 (*movsf_internal): Ditto.
24402
24403 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
24404
24405 PR rtl-optimization/67483
24406 * combine.c (make_compound_operation): Don't call extract_left_shift
24407 with negative shift amounts.
24408
24409 2016-05-13 Jakub Jelinek <jakub@redhat.com>
24410
24411 PR bootstrap/71071
24412 * fold-const.c (fold_checksum_tree): Allow modification
24413 of TYPE_ALIAS_SET during folding.
24414
24415 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
24416 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
24417 (ix86_split_to_parts): Likewise. Fix up formatting.
24418
24419 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
24420
24421 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
24422 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
24423 printf format.
24424
24425 2016-05-13 Nathan Sidwell <nathan@acm.org>
24426
24427 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
24428 (nvptx_name_replacement): Delete.
24429 (write_fn_proto, write_fn_proto_from_insn,
24430 nvptx_output_call_insn): Remove nvptx_name_replacement call.
24431 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
24432 * langhooks.c (add_builtin_funcction_common): Call
24433 targetm.mangle_decl_assembler_name.
24434
24435 * config/nvptx/nvptx.c (write_fn_proto): Handle
24436 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
24437
24438 2016-05-13 Martin Liska <mliska@suse.cz>
24439
24440 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
24441 and PRIu64 in printf format.
24442
24443 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24444
24445 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
24446 comment.
24447
24448 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24449
24450 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
24451 Change --param max-completely-peeled-times to
24452 --param max-completely-peel-times in dump file printing.
24453
24454 2016-05-13 Richard Biener <rguenther@suse.de>
24455
24456 PR tree-optimization/42587
24457 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
24458 (find_bswap_or_nop_1): Likewise.
24459 (bswap_replace): Likewise.
24460
24461 2016-05-13 Martin Liska <mliska@suse.cz>
24462
24463 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
24464 Initialize a variable with default value.
24465
24466 2016-05-13 Martin Liska <mliska@suse.cz>
24467
24468 * doc/invoke.texi: Enhance explanation of error recovery
24469 of sanitizers.
24470
24471 2016-05-13 Martin Liska <mliska@suse.cz>
24472
24473 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
24474 (struct cost_pair): Change inv_expr_id (int) to inv_expr
24475 (iv_inv_expr_ent *).
24476 (struct iv_inv_expr_ent): Comment struct fields.
24477 (sort_iv_inv_expr_ent): New function.
24478 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
24479 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
24480 a hash_map between iv_inv_expr_ent and number of usages.
24481 (niter_for_exit): Fix coding style.
24482 (tree_ssa_iv_optimize_init): Use renamed variable.
24483 (determine_base_object): Fix coding style.
24484 (alloc_iv): Likewise.
24485 (find_interesting_uses_outside): Likewise.
24486 (add_candidate_1): Likewise.
24487 (add_standard_iv_candidates): Likewise.
24488 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
24489 (prepare_decl_rtl): Fix coding style.
24490 (get_address_cost): Likewise.
24491 (get_shiftadd_cost): Likewise.
24492 (force_expr_to_var_cost): Likewise.
24493 (compare_aff_trees): Likewise.
24494 (get_expr_id): Restructure the function.
24495 (get_loop_invariant_expr_id): Renamed to
24496 get_loop_invariant_expr.
24497 (get_computation_cost_at): Replace usage of inv_expr_id with
24498 inv_expr.
24499 (get_computation_cost): Likewise.
24500 (determine_group_iv_cost_generic): Likewise.
24501 (determine_group_iv_cost_address): Likewise.
24502 (iv_period): Fix coding style.
24503 (iv_elimination_compare_lt): Likewise.
24504 (may_eliminate_iv): Likewise.
24505 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
24506 inv_expr.
24507 (determine_group_iv_costs): Dump invariant expressions.
24508 (iv_ca_recount_cost): Use the newly added hash_map.
24509 (iv_ca_set_remove_invariants): Fix coding style.
24510 (iv_ca_set_add_invariants): Fix coding style.
24511 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
24512 invariants.
24513 (iv_ca_set_cp): Likewise.
24514 (iv_ca_new): Initialize the newly added hash_map and remove
24515 initialization of fields.
24516 (iv_ca_free): Delete the hash_map.
24517 (iv_ca_dump): Dump invariant expressions.
24518 (iv_ca_extend): Fix coding style.
24519 (try_add_cand_for): Likewise.
24520 (create_new_ivs): Dump information about # of avg iterations and
24521 # of used invariant expressions.
24522 (rewrite_use_compare): Fix coding style.
24523 (free_loop_data): Set default value for max_inv_expr_id.
24524
24525 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
24526
24527 * cse.c (rest_of_handle_cse): Use cleanup_cfg
24528 returned value cse_cfg_altered computation.
24529 (rest_of_handle_cse2): Likewise.
24530 (rest_of_handle_cse_after_global_opts): Likewise.
24531
24532 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24533
24534 PR target/53440
24535 * config/arm/arm.c (arm32_output_mi_thunk): New.
24536 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
24537 to split Thumb1 vs TARGET_32BIT functionality.
24538 (arm_thumb1_mi_thunk): New.
24539
24540 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24541
24542 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
24543 to true.
24544
24545 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24546
24547 PR target/71080
24548 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
24549
24550 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
24551
24552 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
24553 (expand_builtin_trap): Emit a regular call.
24554 (set_builtin_user_assembler_name): Remove obsolete cases.
24555 * dse.c (scan_insn): Adjust.
24556 * except.c: Include calls.h.
24557 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
24558 emit a regular call to setjmp.
24559 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
24560 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
24561 (emit_block_move_via_libcall): Delete.
24562 (block_move_fn): Delete.
24563 (init_block_move_fn): Likewise.
24564 (emit_block_move_libcall_fn): Likewise.
24565 (emit_block_op_via_libcall): New function.
24566 (set_storage_via_libcall): Tidy up and use memset builtin.
24567 (block_clear_fn): Delete.
24568 (init_block_clear_fn): Likewise.
24569 (clear_storage_libcall_fn): Likewise.
24570 (expand_assignment): Call emit_block_move_via_libcall.
24571 Do not include gt-expr.h.
24572 * expr.h (emit_block_op_via_libcall): Declare.
24573 (emit_block_copy_via_libcall): New inline function.
24574 (emit_block_move_via_libcall): Likewise.
24575 (emit_block_comp_via_libcall): Likewise.
24576 (block_clear_fn): Delete.
24577 (init_block_move_fn): Likewise.
24578 (init_block_clear_fn): Likewise.
24579 (emit_block_move_via_libcall): Likewise.
24580 (set_storage_via_libcall): Add default parameter value.
24581 * libfuncs.h (enum libfunc_index): Remove obsolete values.
24582 (abort_libfunc): Delete.
24583 (memcpy_libfunc): Likewise.
24584 (memmove_libfunc): Likewise.
24585 (memcmp_libfunc): Likewise.
24586 (memset_libfunc): Likewise.
24587 (setbits_libfunc): Likewise.
24588 (setjmp_libfunc): Likewise.
24589 (longjmp_libfunc): Likewise.
24590 (profile_function_entry_libfunc): Likewise.
24591 (profile_function_exit_libfunc): Likewise.
24592 (gcov_flush_libfunc): Likewise.
24593 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
24594 and DECL_VISIBILITY on the declaration.
24595 (init_optabs): Do not initialize obsolete libfuncs.
24596 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
24597 * tree-core.h (ECF_RET1): Define.
24598 (ECF_TM_PURE): Adjust.
24599 (ECF_TM_BUILTIN): Likewise.
24600 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
24601 (build_common_builtin_nodes): Initialize abort builtin.
24602 Add ECF_RET1 on memcpy, memmove and memset builtins.
24603 Pass final flags for alloca and alloca_with_align builtins.
24604 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
24605 obsolete builtins.
24606 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
24607 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
24608 set_storage_via_libcall and call emit_block_copy_via_libcall.
24609
24610 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
24611
24612 * config/i386/i386.md (*call_got_x32): Change operand 0 to
24613 DImode before it is passed to ix86_output_call_operand.
24614 (*call_value_got_x32): Ditto for operand 1.
24615
24616 2016-05-12 Jiong Wang <jiong.wang@arm.com>
24617
24618 PR rtl-optimization/70904
24619 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
24620 reload for wide mode.
24621
24622 2016-05-12 Marek Polacek <polacek@redhat.com>
24623
24624 PR c/70756
24625 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
24626 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
24627 * langhooks.h (incomplete_type_error): Likewise.
24628 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
24629 parameter, pass it down to incomplete_type_error.
24630 * tree.h (size_in_bytes): New inline overload.
24631 (size_in_bytes_loc): Renamed from size_in_bytes.
24632
24633 2016-05-12 Richard Biener <rguenther@suse.de>
24634
24635 PR tree-optimization/71059
24636 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
24637 nary before looking up or entering the expression into the VN
24638 hashes.
24639 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
24640 Make sure to re-use NARYs without result as inserted by
24641 phi-translation.
24642
24643 2016-05-12 Richard Biener <rguenther@suse.de>
24644
24645 PR tree-optimization/71062
24646 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
24647 field.
24648 * tree-ssa-structalias.c (set_uids_in_ptset): Set
24649 vars_contains_restrict if the var is a restrict tag.
24650 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
24651 do not disambiguate pointers against it.
24652 (dump_points_to_solution): Re-structure and adjust for new
24653 vars_contains_restrict flag.
24654 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
24655
24656 2016-05-12 Martin Liska <mliska@suse.cz>
24657
24658 * doc/invoke.texi: Explain connection between
24659 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
24660
24661 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
24662
24663 PR tree-optimization/71006
24664 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
24665 consider COND_EXPR as a mask producer.
24666
24667 2016-05-12 Marek Polacek <polacek@redhat.com>
24668
24669 PR driver/71063
24670 * opts.c (common_handle_option): Detect missing argument for --help^.
24671
24672 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24673
24674 PR target/70830
24675 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
24676 when popping the PC and within an interrupt handler routine.
24677 Add missing tab to output of "ldmfd".
24678 (output_return_instruction): Output LDMFD with SP update rather
24679 than POP when returning from interrupt handler.
24680
24681 2016-05-12 Jakub Jelinek <jakub@redhat.com>
24682
24683 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
24684 TARGET_64BIT && TARGET_AVX512DQ.
24685 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
24686 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
24687 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
24688 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
24689 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
24690 (*vec_extractv4si_zext): Add avx512dq alternative.
24691 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
24692 use v instead of x constraint in other alternatives where possible.
24693
24694 * config/i386/sse.md (sse2_loadld): Use v instead of x
24695 constraint in alternatives 0,1,4.
24696
24697 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
24698 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
24699 v constraints instead of x and <pinsr_evex_isa> isa attribute.
24700
24701 PR target/71019
24702 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
24703 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
24704 is not emitted unless TARGET_AVX512BW.
24705 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
24706 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
24707 for the result operand.
24708
24709 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
24710 constraint instead of x in avx alternatives. Use maybe_evex instead
24711 of vex prefix.
24712
24713 * config/i386/constraints.md (Yv): New constraint.
24714 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
24715 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
24716 * config/i386/i386.md (avx512fvecmode): New mode attr.
24717 (*pushtf): Use v constraint instead of x.
24718 (*movtf_internal): Likewise. For TARGET_AVX512VL and
24719 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
24720 (*absneg<mode>2): Use Yv constraint instead of x constraint.
24721 (*absnegtf2_sse): Likewise.
24722 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
24723 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
24724 avx512f alternatives.
24725 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
24726
24727 2016-05-12 Richard Biener <rguenther@suse.de>
24728
24729 PR tree-optimization/71060
24730 * tree-data-ref.c (initialize_data_dependence_relation): Do not
24731 require exact match of DR_BASE_OBJECT but only matching address and
24732 type.
24733
24734 2016-05-12 Richard Biener <rguenther@suse.de>
24735
24736 PR tree-optimization/70986
24737 * cfganal.c: Include cfgloop.h.
24738 (dfs_find_deadend): Prefer to take edges exiting loops.
24739
24740 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24741
24742 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
24743 compile and run time.
24744
24745 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
24746
24747 PR c/43651
24748 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
24749
24750 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
24751
24752 * config/i386/i386.c (legitimize_pic_address): Use
24753 copy_to_suggested_reg instead of gen_movsi.
24754
24755 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
24756
24757 * config/rs6000/predicates.md (quad_memory_operand): Move most of
24758 the code into quad_address_p and call it to share code with
24759 vsx_quad_dform_memory_operand.
24760 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
24761 d-form support.
24762 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
24763 bit instead of being a separate word. Split -mpower9-dform into
24764 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
24765 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
24766 for the register class supporting 128-bit quad word memory offsets.
24767 (mode_supports_vsx_dform_quad): Helper function to return if the
24768 register class uses quad word memory offsets.
24769 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
24770 (rs6000_debug_reg_global): Always print if we are using LRA or not.
24771 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
24772 instructions are enabled, set up the appropriate addr_masks for
24773 128-bit types.
24774 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
24775 -mpower9-dform-scalar, instead of -mpower9-dform.
24776 (rs6000_option_override_internal): Split -mpower9-dform into two
24777 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
24778 -mpower9-dform switch sets or clears both. If we are not using
24779 the LRA register allocator, do not enable -mpower9-dform-vector by
24780 default. If we are using LRA, enable -mpower9-dform-vector and
24781 -mvsx-timode if it is appropriate. Issue a warning if either
24782 -mpower9-dform-vector or -mvsx-timode are explicitly used without
24783 enabling LRA.
24784 (quad_address_offset_p): New helper function to return if the
24785 offset is legal for quad word memory instructions.
24786 (quad_address_p): New function to determin if GPR or vector
24787 register quad word memory addresses are legal.
24788 (mem_operand_gpr): Validate quad word address offsets.
24789 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
24790 d-form (register + offset) instructions.
24791 (offsettable_ok_by_alignment): Likewise.
24792 (rs6000_legitimate_offset_address_p): Likewise.
24793 (legitimate_lo_sum_address_p): Likewise.
24794 (rs6000_legitimize_address): Likewise.
24795 (rs6000_legitimize_reload_address): Add more debug statements for
24796 -mdebug=addr.
24797 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
24798 d-form instructions.
24799 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
24800 d-form instructions. Distinguish different cases in debug
24801 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
24802 d-form instructions.
24803 (rs6000_preferred_reload_class): Likewise.
24804 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
24805 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
24806 of the ISA 2.06 indexed memory instructions.
24807 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
24808 use them to save/restore the saved vector registers instead of
24809 using Altivec instructions.
24810 (rs6000_emit_epilogue): Likewise.
24811 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
24812 (rs6000_opt_masks): Split -mpower9-dform into
24813 -mpower9-dform-scalar and -mpower9-dform-vector.
24814 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
24815 was not selected.
24816 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
24817 ISA 3.0 vector indexed memory instructions, and fold the code into
24818 the normal mov<mode> patterns.
24819 (p9_vecstore_<mode>): Likewise.
24820 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
24821 instructions.
24822 (vsx_movti_64bit): Likewise.
24823 (vsx_movti_32bit): Likewise.
24824 * config/rs6000/constraints.md (wO constraint): New constraint for
24825 ISA 3.0 vector d-form support.
24826 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
24827 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
24828 include -mpower9-dform-vector until we switch over to LRA.
24829 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
24830 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
24831 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
24832 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
24833 for -mpower9-dform and -mlra.
24834 * doc/md.texi (wO constraint): Document wO constraint.
24835
24836 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
24837
24838 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
24839 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
24840 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
24841 Move handling of non-insn arguments inline into the sole user:
24842 (output_trans_func): ...here.
24843 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
24844 in emitted function prototype.
24845 (output_internal_insn_latency_func): Ditto. Simplify.
24846 (output_internal_maximal_insn_latency_func): Ditto. Delete
24847 always-unused argument.
24848 (output_insn_latency_func): Ditto.
24849 (output_maximal_insn_latency_func): Ditto.
24850
24851 2016-05-11 Richard Biener <rguenther@suse.de>
24852
24853 PR tree-optimization/71055
24854 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
24855 sth with precision not equal to access size verify we don't chop
24856 off bits.
24857
24858 2016-05-11 Richard Biener <rguenther@suse.de>
24859
24860 PR debug/71057
24861 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
24862 (dwarf2out_finish): Move retry_incomplete_types call ...
24863 (dwarf2out_early_finish): ... here.
24864
24865 2016-05-11 Richard Biener <rguenther@suse.de>
24866
24867 PR middle-end/71002
24868 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
24869 if the langhook insists on it.
24870 * fold-const.c (make_bit_field_ref): Add arg for the original
24871 reference and preserve its alias-set.
24872 (decode_field_reference): Take exp by reference and adjust it
24873 to the original memory reference.
24874 (optimize_bit_field_compare): Adjust callers.
24875 (fold_truth_andor_1): Likewise.
24876 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
24877
24878 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
24879
24880 PR middle-end/70807
24881 * cfgrtl.h (delete_insn_and_edges): Now return bool.
24882 * cfgrtl.c (delete_insn_and_edges): Likewise.
24883 * config/i386/i386.c (convert_scalars_to_vector): Remove
24884 redundant code.
24885 * cse.c (cse_insn): Compute cse_cfg_altered.
24886 (delete_trivially_dead_insns): Likewise.
24887 (cse_cc_succs): Likewise.
24888 (rest_of_handle_cse): Free dominance info if required.
24889 (rest_of_handle_cse2): Likewise.
24890 (rest_of_handle_cse_after_global_opts): Likewise.
24891
24892 2016-05-11 Alan Modra <amodra@gmail.com>
24893
24894 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
24895 abi_v4_pass_in_fpr): New functions.
24896 (rs6000_function_arg_boundary): Exclude complex IBM long double
24897 from 64-bit alignment when ABI_V4.
24898 (rs6000_function_arg, rs6000_function_arg_advance_1,
24899 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
24900
24901 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
24902
24903 PR rtl-optimization/71028
24904 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
24905 jump with just a return in the fallthrough block if the branch
24906 block contains just a return as well.
24907
24908 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
24909
24910 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
24911 * match.pd ((X & Y) ^ Y): ... this.
24912 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
24913 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
24914
24915 2016-05-10 David Malcolm <dmalcolm@redhat.com>
24916
24917 * read-md.c (require_char_ws): New function.
24918 (read_string): Simplify using require_char_ws.
24919 (handle_constants): Likewise.
24920 (handle_enum): Likewise.
24921 (handle_file): Likewise.
24922 * read-md.h (require_char_ws): New declaration.
24923 * read-rtl.c (read_conditions): Simplify using require_char_ws.
24924 (read_mapping): Likewise.
24925 (read_rtx_code): Likewise.
24926 (read_nested_rtx): Likewise.
24927
24928 2016-05-10 James Norris <jnorris@codesourcery.com>
24929
24930 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
24931 if offloading is enabled and -fopenacc or -fopenmp is specified.
24932 (CRTOFFLOADEND): Likewise.
24933 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
24934 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
24935
24936 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
24937
24938 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
24939 gotoff_operand code paths. Use copy_to_suggested_regs and
24940 expand_simple_binop where appropriate. Cleanup.
24941
24942 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
24943
24944 PR target/70799
24945 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
24946 integer constants.
24947 (dimode_scalar_chain::vector_const_cost): New.
24948 (dimode_scalar_chain::compute_convert_gain): Handle constants.
24949 (dimode_scalar_chain::convert_op): Likewise.
24950 (dimode_scalar_chain::convert_insn): Likewise.
24951
24952 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
24953
24954 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
24955 unary operation, not a binary one.
24956
24957 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
24958
24959 PR middle-end/70877
24960 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
24961 calls with type casted fndecl.
24962
24963 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
24964
24965 PR tree-optimization/70786
24966 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
24967 * calls.c (initialize_argument_information): Bind bounds
24968 with corresponding args passed by reference.
24969
24970 2016-05-10 Jakub Jelinek <jakub@redhat.com>
24971
24972 PR target/70927
24973 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
24974 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
24975 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
24976 accordingly.
24977
24978 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24979
24980 PR target/70963
24981 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
24982 code for a zero scale factor.
24983 (vsx_xvcvdpuxds_scale): Likewise.
24984
24985 2016-05-10 David Malcolm <dmalcolm@redhat.com>
24986
24987 * diagnostic-show-locus.c (layout::layout): Call show_ruler
24988 if show_ruler_p was set on the context.
24989 (layout::show_ruler): New method.
24990 * diagnostic.h (struct diagnostic_context): Add field
24991 "show_ruler_p".
24992
24993 2016-05-10 Richard Biener <rguenther@suse.de>
24994
24995 PR tree-optimization/71039
24996 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
24997 (chk_uses): New function.
24998 (propagate_with_phi): Verify we can safely replicate the lhs of an
24999 aggregate assignment on all incoming edges.
25000
25001 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
25002
25003 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
25004 Forward declare.
25005 (rx_atomic_sequence): New class.
25006 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
25007 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
25008 non-inline.
25009 (rx_atomic_sequence::rx_atomic_sequence,
25010 rx_atomic_sequence::~rx_atomic_sequence): New functions.
25011 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
25012 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
25013 CTRLREG_INTB): New constants.
25014 (FETCHOP): New code iterator.
25015 (fethcop_name, fetchop_name2): New iterator code attributes.
25016 (QIHI): New mode iterator.
25017 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
25018 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
25019 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
25020
25021 2016-05-10 Martin Liska <mliska@suse.cz>
25022
25023 * tree-inline.c (remap_dependence_clique): Do not remap
25024 debugging statements.
25025
25026 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25027
25028 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
25029 ("*fixuns_truncdfdi2_z13")
25030 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
25031 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
25032 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
25033
25034 2016-05-10 Richard Biener <rguenther@suse.de>
25035
25036 PR tree-optimization/70497
25037 PR tree-optimization/28367
25038 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
25039 split out from ...
25040 (visit_reference_op_load): ... here.
25041 (vn_reference_lookup_3): Use it to handle subreg-like accesses
25042 with simplified BIT_FIELD_REFs.
25043 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
25044 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
25045 correctly.
25046
25047 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
25048
25049 * dwarf2out.c (add_abstract_origin_attribute): Adjust
25050 documentation comment. For BLOCK nodes, add a
25051 DW_AT_abstract_origin attribute that points to the DIE generated
25052 for the origin BLOCK.
25053 (gen_lexical_block_die): Call add_abstract_origin_attribute for
25054 blocks from inlined functions.
25055
25056 2016-05-10 Alan Modra <amodra@gmail.com>
25057
25058 PR target/70947
25059 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
25060 regrename modifying insns saving lr before __morestack call.
25061 * config/rs6000/rs6000.md (split_stack_return): Similarly for
25062 insns restoring lr after __morestack call.
25063
25064 2016-05-09 Jakub Jelinek <jakub@redhat.com>
25065
25066 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
25067 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
25068 expanders.
25069 * config/i386/sse.md (vec_interleave_high<mode>,
25070 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
25071 <avx512>_vpermt2var<mode>3_maskz): Likewise.
25072
25073 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
25074
25075 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
25076 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
25077 parallel reassociation for power8 and forward.
25078
25079 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
25080
25081 * config/i386/i386.md (absneg splitters with general regs): Use
25082 general_reg_operand predicate.
25083 (btsq peephole2): Use x86_64_immediate_operand to check if new
25084 value is suitable for immediate operand. Generate emitted insn
25085 using RTL expressions.
25086 (btcq peephole2): Ditto.
25087 (btrq peephole2): Ditto. Generate correct immediate operand
25088 for AND masking.
25089
25090 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
25091
25092 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
25093 bitpos.
25094
25095 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
25096
25097 * tree-affine.c (wide_int_constant_multiple_p): Add missing
25098 pointer dereference.
25099
25100 2016-05-09 Richard Biener <rguenther@suse.de>
25101
25102 PR tree-optimization/70985
25103 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
25104 op0 isn't a gimple register.
25105
25106 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
25107
25108 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
25109 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
25110 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
25111 (i6400_fpu_mult): New cpu units.
25112 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
25113 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
25114 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
25115 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
25116 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
25117 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
25118 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
25119 (i6400_msa_long_float4, i6400_msa_long_float5)
25120 (i6400_msa_long_float8, i6400_msa_fdiv_df)
25121 (i6400_msa_fdiv_sf): New reservations.
25122 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
25123 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
25124 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
25125 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
25126 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
25127 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
25128 (msa_short_cmp, msa_short_float2, msa_short_logic3)
25129 (msa_short_store4, msa_long_load, msa_short_store)
25130 (msa_long_logic, msa_long_float2, msa_long_float4)
25131 (msa_long_float5, msa_long_float8, msa_long_mult)
25132 (msa_long_fdiv, msa_long_div): New reservations.
25133
25134 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
25135 Sameera Deshpande <sameera.deshpande@imgtec.com>
25136 Matthew Fortune <matthew.fortune@imgtec.com>
25137 Graham Stott <graham.stott@imgtec.com>
25138 Chao-ying Fu <chao-ying.fu@imgtec.com>
25139
25140 * config.gcc: Add MSA header file for mips*-*-* target.
25141 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
25142 (Ubv8i, Urv8): New constraints.
25143 * config/mips/mips-ftypes.def: Add function types for MSA
25144 builtins.
25145 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
25146 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
25147 * config/mips/mips-msa.md: New file.
25148 * config/mips/mips-protos.h
25149 (mips_split_128bit_const_insns): New prototype.
25150 (mips_msa_idiv_insns): Likewise.
25151 (mips_split_128bit_move): Likewise.
25152 (mips_split_128bit_move_p): Likewise.
25153 (mips_split_msa_copy_d): Likewise.
25154 (mips_split_msa_insert_d): Likewise.
25155 (mips_split_msa_fill_d): Likewise.
25156 (mips_expand_msa_branch): Likewise.
25157 (mips_const_vector_same_val_p): Likewise.
25158 (mips_const_vector_same_bytes_p): Likewise.
25159 (mips_const_vector_same_int_p): Likewise.
25160 (mips_const_vector_shuffle_set_p): Likewise.
25161 (mips_const_vector_bitimm_set_p): Likewise.
25162 (mips_const_vector_bitimm_clr_p): Likewise.
25163 (mips_msa_vec_parallel_const_half): Likewise.
25164 (mips_msa_output_division): Likewise.
25165 (mips_ldst_scaled_shift): Likewise.
25166 (mips_expand_vec_cond_expr): Likewise.
25167 * config/mips/mips.c (enum mips_builtin_type): Add
25168 MIPS_BUILTIN_MSA_TEST_BRANCH.
25169 (mips_gen_const_int_vector_shuffle): New prototype.
25170 (mips_const_vector_bitimm_set_p): New function.
25171 (mips_const_vector_bitimm_clr_p): Likewise.
25172 (mips_const_vector_same_val_p): Likewise.
25173 (mips_const_vector_same_bytes_p): Likewise.
25174 (mips_const_vector_same_int_p): Likewise.
25175 (mips_const_vector_shuffle_set_p): Likewise.
25176 (mips_symbol_insns): Forbid loading symbols via immediate for
25177 MSA.
25178 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
25179 stores.
25180 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
25181 MSA.
25182 (mips_lx_address_p): Add support load indexed address for MSA.
25183 (mips_address_insns): Add calculation of instructions needed for
25184 stores and loads for MSA.
25185 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
25186 CONST_VECTOR for MSA and let it fall through.
25187 (mips_ldst_scaled_shift): New function.
25188 (mips_subword_at_byte): Likewise.
25189 (mips_msa_idiv_insns): Likewise.
25190 (mips_legitimize_move): Validate MSA moves.
25191 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
25192 calculation of costs for MSA division.
25193 (mips_split_move_p): Check if MSA moves need splitting.
25194 (mips_split_move): Split MSA moves if necessary.
25195 (mips_split_128bit_move_p): New function.
25196 (mips_split_128bit_move): Likewise.
25197 (mips_split_msa_copy_d): Likewise.
25198 (mips_split_msa_insert_d): Likewise.
25199 (mips_split_msa_fill_d): Likewise.
25200 (mips_output_move): Handle MSA moves.
25201 (mips_expand_msa_branch): New function.
25202 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
25203 Reinstate 'y' modifier.
25204 (mips_file_start): Add MSA .gnu_attribute.
25205 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
25206 FPRs.
25207 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
25208 (mips_class_max_nregs): Add register size for MSA supported mode.
25209 (mips_cannot_change_mode_class): Allow conversion between MSA
25210 vector modes and TImode.
25211 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
25212 instruction.
25213 (mips_secondary_reload_class): Force MSA loads/stores via memory.
25214 (mips_preferred_simd_mode): Add preffered modes for MSA.
25215 (mips_vector_mode_supported_p): Add MSA supported modes.
25216 (mips_autovectorize_vector_sizes): New function.
25217 (mips_msa_output_division): Likewise.
25218 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
25219 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
25220 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
25221 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
25222 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
25223 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
25224 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
25225 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
25226 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
25227 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
25228 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
25229 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
25230 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
25231 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
25232 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
25233 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
25234 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
25235 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
25236 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
25237 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
25238 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
25239 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
25240 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
25241 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
25242 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
25243 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
25244 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
25245 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
25246 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
25247 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
25248 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
25249 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
25250 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
25251 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
25252 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
25253 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
25254 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
25255 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
25256 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
25257 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
25258 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
25259 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
25260 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
25261 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
25262 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
25263 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
25264 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
25265 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
25266 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
25267 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
25268 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
25269 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
25270 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
25271 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
25272 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
25273 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
25274 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
25275 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
25276 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
25277 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
25278 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
25279 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
25280 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
25281 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
25282 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
25283 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
25284 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
25285 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
25286 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
25287 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
25288 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
25289 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
25290 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
25291 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
25292 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
25293 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
25294 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
25295 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
25296 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
25297 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
25298 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
25299 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
25300 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
25301 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
25302 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
25303 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
25304 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
25305 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
25306 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
25307 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
25308 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
25309 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
25310 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
25311 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
25312 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
25313 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
25314 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
25315 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
25316 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
25317 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
25318 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
25319 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
25320 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
25321 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
25322 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
25323 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
25324 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
25325 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
25326 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
25327 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
25328 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
25329 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
25330 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
25331 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
25332 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
25333 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
25334 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
25335 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
25336 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
25337 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
25338 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
25339 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
25340 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
25341 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
25342 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
25343 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
25344 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
25345 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
25346 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
25347 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
25348 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
25349 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
25350 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
25351 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
25352 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
25353 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
25354 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
25355 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
25356 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
25357 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
25358 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
25359 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
25360 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
25361 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
25362 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
25363 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
25364 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
25365 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
25366 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
25367 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
25368 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
25369 move_v builtins.
25370 (mips_get_builtin_decl_index): New array.
25371 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
25372 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
25373 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
25374 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
25375 (mips_init_builtins): Initialize mips_get_builtin_decl_index
25376 array.
25377 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
25378 hook.
25379 (mips_expand_builtin_insn): Prepare operands for
25380 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
25381 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
25382 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
25383 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
25384 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
25385 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
25386 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
25387 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
25388 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
25389 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
25390 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
25391 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
25392 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
25393 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
25394 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
25395 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
25396 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
25397 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
25398 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
25399 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
25400 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
25401 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
25402 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
25403 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
25404 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
25405 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
25406 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
25407 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
25408 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
25409 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
25410 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
25411 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
25412 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
25413 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
25414 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
25415 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
25416 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
25417 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
25418 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
25419 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
25420 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
25421 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
25422 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
25423 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
25424 These are set implicitly and an error is reported if overridden.
25425 (mips_expand_builtin_msa_test_branch): New function.
25426 (mips_expand_msa_shuffle): Likewise.
25427 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
25428 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
25429 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
25430 (mips_expand_vec_unpack): Add support for MSA.
25431 (mips_expand_vector_init): Likewise.
25432 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
25433 instead of const0_rtx.
25434 (mips_msa_vec_parallel_const_half): New function.
25435 (mips_gen_const_int_vector): Likewise.
25436 (mips_gen_const_int_vector_shuffle): Likewise.
25437 (mips_expand_msa_cmp): Likewise.
25438 (mips_expand_vec_cond_expr): Likewise.
25439 * config/mips/mips.h
25440 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
25441 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
25442 specified.
25443 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
25444 (ISA_HAS_MSA): New macro.
25445 (UNITS_PER_MSA_REG): Likewise.
25446 (BITS_PER_MSA_REG): Likewise.
25447 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
25448 (MSA_REG_FIRST): New macro.
25449 (MSA_REG_LAST): Likewise.
25450 (MSA_REG_NUM): Likewise.
25451 (MSA_REG_P): Likewise.
25452 (MSA_REG_RTX_P): Likewise.
25453 (MSA_SUPPORTED_MODE_P): Likewise.
25454 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
25455 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
25456 * config/mips/mips.md: Include mips-msa.md.
25457 (alu_type): Add simd_add.
25458 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
25459 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
25460 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
25461 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
25462 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
25463 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
25464 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
25465 simd_move, simd_load, simd_store. Choose "multi" for moves
25466 for "qword_mode".
25467 (qword_mode): New attribute.
25468 (insn_count): Add instruction count for quad moves.
25469 Increase the count for MIPS SIMD division.
25470 (UNITMODE): Add UNITMODEs for vector types.
25471 (addsub): New code iterator.
25472 * config/mips/mips.opt (mmsa): New option.
25473 * config/mips/msa.h: New file.
25474 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
25475 specified.
25476 * config/mips/mti-linux.h: Likewise.
25477 * config/mips/predicates.md
25478 (const_msa_branch_operand): New constraint.
25479 (const_uimm3_operand): Likewise.
25480 (const_uimm4_operand): Likewise.
25481 (const_uimm5_operand): Likewise.
25482 (const_uimm8_operand): Likewise.
25483 (const_imm5_operand): Likewise.
25484 (aq10b_operand): Likewise.
25485 (aq10h_operand): Likewise.
25486 (aq10w_operand): Likewise.
25487 (aq10d_operand): Likewise.
25488 (const_m1_operand): Likewise.
25489 (reg_or_m1_operand): Likewise.
25490 (const_exp_2_operand): Likewise.
25491 (const_exp_4_operand): Likewise.
25492 (const_exp_8_operand): Likewise.
25493 (const_exp_16_operand): Likewise.
25494 (const_vector_same_val_operand): Likewise.
25495 (const_vector_same_simm5_operand): Likewise.
25496 (const_vector_same_uimm5_operand): Likewise.
25497 (const_vector_same_uimm6_operand): Likewise.
25498 (const_vector_same_uimm8_operand): Likewise.
25499 (par_const_vector_shf_set_operand): Likewise.
25500 (reg_or_vector_same_val_operand): Likewise.
25501 (reg_or_vector_same_simm5_operand): Likewise.
25502 (reg_or_vector_same_uimm6_operand): Likewise.
25503 * doc/extend.texi (MIPS SIMD Architecture Functions): New
25504 section.
25505 * doc/invoke.texi (-mmsa): Document new option.
25506
25507 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25508
25509 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
25510 * configure: Regenerate.
25511 * config.in: Regenerate.
25512 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
25513 on -fvtable-verify.
25514 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
25515 (ENDFILE_VTV_SPEC): Define.
25516
25517 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
25518
25519 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
25520 registers in all interrupt handlers if necessary.
25521 (rl78_option_override): Add warning.
25522 (MUST_SAVE_MDUC_REGISTERS): New macro.
25523 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
25524 * config/rl78/rl78.c (check_mduc_usage): New function.
25525 (mduc_regs): New structure to hold MDUC register data.
25526 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
25527 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
25528 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
25529 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
25530 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
25531 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
25532
25533 2016-05-09 Bin Cheng <bin.cheng@arm.com>
25534
25535 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
25536 (tree-ssa-loop-niter.h): Ditto.
25537 (idx_within_array_bound, ref_within_array_bound): New functions.
25538 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
25539 Factor out check on writable base object to ...
25540 (base_object_writable): ... here.
25541
25542 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25543
25544 * config/arm/arm.md (probe_stack): Add modes to set source
25545 and destination.
25546
25547 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
25548
25549 * regrename.c (base_reg_class_for_rename): New static function.
25550 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
25551
25552 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
25553
25554 * cgraph.c (thunk_adjust): Export.
25555 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
25556 * cgraphunit.c (thunk_adjust): Export.
25557 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
25558 thunks.
25559 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
25560 inlinable.
25561 * tree-inline.c (expand_call_inline): Expand thunks inline.
25562
25563 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
25564
25565 PR target/70998
25566 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
25567 (*sse2_vd_cvtss2sd): Ditto.
25568 * config/i386/i386.md
25569 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
25570 Generate *sse2_vd_cvtsd2ss pattern.
25571 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
25572 Generate *sse2_vd_cvtss2sd pattern.
25573
25574 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
25575
25576 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
25577 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
25578 users.
25579
25580 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
25581
25582 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
25583 * config/sh/sh.c: Define and declare variables on first use throughout
25584 the file.
25585 (current_function_interrupt): Change to bool type.
25586 (frame_insn): Rename to emit_frame_insn and update users.
25587 (push_regs): Use bool for 'interrupt_handler' argument.
25588 (save_schedule_s): Remove.
25589 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
25590 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
25591 targetm.asm_out.unaligned_op.di.
25592 (gen_far_branch): Remove redundant forward declaration.
25593 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
25594 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
25595 (sh_set_return_address, sh_function_ok_for_sibcall,
25596 scavenge_reg): Update comments.
25597 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
25598 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
25599 (sh_attr_renesas_p): Remove unnecessary parentheses.
25600 (branch_dest): Simplify.
25601 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
25602 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
25603 (CUMULATIVE_ARGS): Change macro to typedef.
25604 (current_function_interrupt): Change to bool type.
25605 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
25606 Surround with __cplusplus ifdef.
25607 (sh_compare_op0, sh_compare_op1): Remove.
25608 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
25609
25610 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
25611
25612 * config/arm/arm.md (arch): Add neon.
25613 (arch_enabled): Return yes for arch neon when TARGET_NEON.
25614 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
25615 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
25616 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
25617 attributes for alt renumbering. Mark alt 3 as non-predicable.
25618 (thumb2_movdf_vfp): Likewise.
25619
25620 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
25621
25622 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
25623 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
25624 (*andqi_1): Add preferred_for_speed attribute to disparage
25625 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
25626 (*<code>qi_1): Ditto.
25627 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
25628 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
25629 (*ashlqi3_1): Ditto.
25630 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
25631 Add preferred_for_size attribute to disparage alternative 0 and
25632 preferred_for_speed attribute to disparage alternative 1 for
25633 TARGET_PARTIAL_REG_STALL targets.
25634
25635 2016-05-07 Tom de Vries <tom@codesourcery.com>
25636
25637 PR tree-optimization/70956
25638 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
25639 def.
25640
25641 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
25642
25643 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
25644 * config/sh/sh.c (sh_cbranch_distance): Implement it.
25645 * config/sh/sh.md (branch_zero): Remove define_attr.
25646 (define_delay): Disable delay slot if branch distance is one insn.
25647
25648 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
25649
25650 * config/i386/i386.md (LEAMODE): New mode attribute.
25651 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
25652 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
25653 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
25654 operand 2 predicate.
25655 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
25656 (*lea<mode>_general_3): Ditto.
25657 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
25658
25659 2016-05-06 Jakub Jelinek <jakub@redhat.com>
25660
25661 * genmddump.c (main): Convert argv from char ** to const char **.
25662
25663 2016-05-06 David Malcolm <dmalcolm@redhat.com>
25664
25665 * coretypes.h (OVERRIDE): New macro.
25666 (FINAL): New macro.
25667
25668 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
25669
25670 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
25671 allow coalescing if the types are compatible.
25672
25673 2016-05-06 David Malcolm <dmalcolm@redhat.com>
25674
25675 * pass_manager.h (pass_manager::register_pass_name): New method.
25676 (pass_manager::get_pass_by_name): New method.
25677 (pass_manager::create_pass_tab): New method.
25678 (pass_manager::m_name_to_pass_map): New field.
25679 * passes.c (name_to_pass_map): Delete global in favor of field
25680 "m_name_to_pass_map" of pass_manager.
25681 (register_pass_name): Rename from a function to...
25682 (pass_manager::register_pass_name): ...this method, updating
25683 for renaming of global "name_to_pass_map" to field
25684 "m_name_to_pass_map".
25685 (create_pass_tab): Rename from a function to...
25686 (pass_manager::create_pass_tab): ...this method, updating
25687 for renaming of global "name_to_pass_map" to field.
25688 (get_pass_by_name): Rename from a function to...
25689 (pass_manager::get_pass_by_name): ...this method.
25690 (enable_disable_pass): Convert use of get_pass_by_name to
25691 a method call, locating the pass_manager singleton.
25692
25693 2016-05-06 David Malcolm <dmalcolm@redhat.com>
25694
25695 * genattr-common.c (main): Convert argv from char ** to const char **.
25696 * genattr.c (main): Likewise.
25697 * genattrtab.c (main): Likewise.
25698 * genautomata.c (initiate_automaton_gen): Likewise.
25699 (main): Likewise.
25700 * gencodes.c (main): Likewise.
25701 * genconditions.c (main): Likewise.
25702 * genconfig.c (main): Likewise.
25703 * genconstants.c (main): Likewise.
25704 * genemit.c (main): Likewise.
25705 * genenums.c (main): Likewise.
25706 * genextract.c (main): Likewise.
25707 * genflags.c (main): Likewise.
25708 * genmddeps.c (main): Likewise.
25709 * genopinit.c (main): Likewise.
25710 * genoutput.c (main): Likewise.
25711 * genpeep.c (main): Likewise.
25712 * genpreds.c (main): Likewise.
25713 * genrecog.c (main): Likewise.
25714 * gensupport.c (init_rtx_reader_args_cb): Likewise.
25715 (init_rtx_reader_args): Likewise.
25716 * gensupport.h (init_rtx_reader_args_cb): Likewise.
25717 (init_rtx_reader_args): Likewise.
25718 * gentarget-def.c (main): Likewise.
25719 * read-md.c (read_md_files): Likewise.
25720 * read-md.h (read_md_files): Likewise.
25721
25722 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
25723
25724 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
25725 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
25726 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
25727 Remove unused predicate.
25728 (register_and_not_fp_reg_operand): Ditto.
25729
25730 2016-05-06 Martin Liska <mliska@suse.cz>
25731
25732 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
25733 instead of vec as the vector is local to the function.
25734
25735 2016-05-06 Jakub Jelinek <jakub@redhat.com>
25736
25737 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
25738 avx512bw alternative.
25739
25740 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
25741 before the ashr<mode>3 pattern.
25742
25743 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
25744 v instead of x in vex or maybe_vex alternatives, use
25745 maybe_evex instead of vex in prefix.
25746
25747 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
25748 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
25749 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
25750 in vex or maybe_vex alternatives, use maybe_evex instead of vex
25751 in prefix.
25752
25753 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
25754 v instead of x in vex or maybe_vex alternatives, use
25755 maybe_evex instead of vex in prefix.
25756
25757 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
25758 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
25759 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
25760 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
25761 alternatives, use maybe_evex instead of vex in prefix.
25762
25763 * config/i386/sse.md (vec_interleave_lowv4sf,
25764 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
25765 v instead of x in vex or maybe_vex alternatives, use
25766 maybe_evex instead of vex in prefix.
25767
25768 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
25769 v instead of x in vex or maybe_vex alternatives, use
25770 maybe_evex instead of vex in prefix.
25771
25772 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
25773 v constraint instead of x.
25774
25775 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
25776
25777 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
25778 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
25779 equality first.
25780
25781 2016-05-06 Richard Biener <rguenther@suse.de>
25782
25783 PR tree-optimization/70948
25784 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
25785 Properly clobber all fields of va_list for __builtin_va_start.
25786
25787 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
25788
25789 PR debug/70935
25790 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
25791 loop latch destination.
25792
25793 2016-05-06 Martin Liska <mliska@suse.cz>
25794
25795 * tree-ssa-uninit.c: Apply manual changes
25796 to the GNU coding style.
25797 (prune_uninit_phi_opnds): Rename from
25798 prune_uninit_phi_opnds_in_unrealizable_paths.
25799
25800 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25801
25802 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
25803 mspace): Remove deprecated options.
25804 * doc/invoke.texi (SH options): Remove -mspace.
25805
25806 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25807
25808 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
25809
25810 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25811
25812 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
25813 corresponding combine split pattern.
25814
25815 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25816
25817 PR target/58219
25818 * config/sh/predicates.md (long_displacement_mem_operand): New.
25819 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
25820 Add movi20, movi20s alternatives. Adjust length attribute for
25821 alternatives.
25822 (movsi_ie): Allow for any FPU. Adjust length attribute for
25823 alternatives.
25824 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
25825 attribute for alternatives.
25826 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
25827 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
25828 length attribute for alternatives.
25829
25830 2016-05-06 Richard Biener <rguenther@suse.de>
25831
25832 PR tree-optimization/70960
25833 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
25834
25835 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25836
25837 PR target/52933
25838 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
25839 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
25840
25841 2016-05-06 Marek Polacek <polacek@redhat.com>
25842
25843 PR sanitizer/70875
25844 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
25845
25846 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25847
25848 PR target/54089
25849 * config/sh/sh.md (*rotcr): Add another variant.
25850
25851 2016-05-06 Richard Biener <rguenther@suse.de>
25852
25853 PR middle-end/70931
25854 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
25855
25856 2016-05-06 Richard Biener <rguenther@suse.de>
25857
25858 PR middle-end/70941
25859 * fold-const.c (split_tree): Always convert to the original type
25860 before negating.
25861
25862 2016-05-06 Richard Biener <rguenther@suse.de>
25863
25864 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
25865 (fwprop_addr): Likewise.
25866
25867 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
25868
25869 PR target/70873
25870 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
25871 New prototype.
25872 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
25873 * config/i386/i386.md (push mem splitter): Use find_constant_src in
25874 the splitter condition.
25875 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
25876 the splitter condition.
25877 (FP float_extend load splitter): Ditto.
25878
25879 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
25880
25881 * config/i386/i386.md (peehole2 patterns): Change true_regnum
25882 to REGNO in all peephole2 patterns.
25883 (post-reload splitters): Change true_regnum to REGNO in
25884 post-reload splitters.
25885 (zero_extend splitters): Use general_reg_operand and
25886 nonimmediate_gr_operand predicates.
25887
25888 2016-05-05 Jakub Jelinek <jakub@redhat.com>
25889
25890 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
25891 v constraint instead of x.
25892
25893 2016-05-05 Alan Modra <amodra@gmail.com>
25894
25895 PR target/68662
25896 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
25897 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
25898 TARGET_NO_FP_IN_TOC for -mrelocatable.
25899 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
25900 TARGET_RELOCATABLE test.
25901 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
25902 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
25903 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
25904 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
25905 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
25906 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
25907 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
25908 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
25909 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
25910 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
25911 Likewise.
25912 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
25913 (rs6000_stack_info): Likewise.
25914 (rs6000_elf_asm_out_constructor): Likewise.
25915 (rs6000_elf_asm_out_destructor): Likewise.
25916 (rs6000_elf_declare_function_name): Likewise.
25917 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
25918 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
25919 Don't define.
25920
25921 2016-05-05 Alan Modra <amodra@gmail.com>
25922
25923 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
25924
25925 2016-05-05 Alan Modra <amodra@gmail.com>
25926
25927 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
25928 out-of-line gpr restore for one or two regs if that would add
25929 a save of lr.
25930
25931 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
25932
25933 PR target/70873
25934 * config/i386/i386.md
25935 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
25936 Change to post-epilogue_completed late splitter. Use sse_reg_operand
25937 as operand 0 predicate.
25938 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
25939 Ditto.
25940 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
25941 Ditto. Emit the pattern using RTX.
25942
25943 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
25944 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
25945 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
25946 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
25947 Ditto.
25948 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
25949 sse_reg_operand as operand 0 predicate.
25950
25951 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
25952 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
25953 instead of gen_rtx_REG.
25954 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
25955 Ditto.
25956
25957 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
25958
25959 * function.c (emit_use_return_register_into_block): Delete.
25960 (gen_return_pattern): Delete.
25961 (emit_return_into_block): Delete.
25962 (active_insn_between): Delete.
25963 (convert_jumps_to_returns): Delete.
25964 (emit_return_for_exit): Delete.
25965 (thread_prologue_and_epilogue_insns): Delete all code dealing with
25966 simple_return for shrink-wrapped blocks.
25967 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
25968 end of blocks that need one.
25969 (get_unconverted_simple_return): Delete.
25970 (convert_to_simple_return): Delete.
25971 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
25972 (convert_to_simple_return): Ditto.
25973
25974 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
25975
25976 * cfgcleanup.c (bb_is_just_return): New function.
25977 (try_optimize_cfg): Simplify jumps to return, branches to return,
25978 and branches around return.
25979
25980 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
25981
25982 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
25983 branch to a return.
25984
25985 2016-05-04 Jakub Jelinek <jakub@redhat.com>
25986
25987 PR c++/70906
25988 PR c++/70933
25989 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
25990 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
25991 assert flags & OEP_HASH_CHECK, instead of asserting it
25992 never happens. Handle TARGET_EXPR.
25993 * fold-const.c (operand_equal_p): For hash verification,
25994 or in OEP_HASH_CHECK into flags.
25995
25996 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
25997
25998 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
25999 comment.
26000 (compute_samebase_partition_bases): Fix typo.
26001
26002 2016-05-04 Jakub Jelinek <jakub@redhat.com>
26003
26004 * config/i386/sse.md (vec_interleave_highv8sf,
26005 vec_interleave_lowv8sf, vec_interleave_highv4df,
26006 vec_interleave_lowv4df): Remove constraints from expanders.
26007
26008 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
26009
26010 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
26011
26012 * tree-inline.c (expand_call_inline): Fix path dealing with
26013 making lhs of call statement undefined.
26014
26015 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
26016
26017 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
26018 Check availability on NODE, too.
26019 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
26020 (cgraph_node::call_for_symbol_and_aliases): Likewise.
26021 (varpool_node::call_for_symbol_and_aliase): Likewise.
26022 * ipa-pure-const.c (add_new_function): Analyze all bodies.
26023 (propagate_pure_const): Propagate across interposable functions, too.
26024 (skip_function_for_local_pure_const): Do not skip interposable bodies
26025 with aliases.
26026 (pass_local_pure_const::execute): Update.
26027
26028 2016-05-04 Marek Polacek <polacek@redhat.com>
26029
26030 * doc/invoke.texi: Document -Wdangling-else.
26031
26032 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
26033
26034 * config.gcc: Error out when conflicting multilib is detected. Do not
26035 loop over multilibs since no combination is legal.
26036
26037 2016-05-04 Alan Modra <amodra@gmail.com>
26038
26039 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
26040 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
26041 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
26042 Align .toc.
26043
26044 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
26045
26046 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
26047 Clean up p5600 comments.
26048
26049 2016-05-04 Richard Biener <rguenther@suse.de>
26050
26051 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
26052 constructor simplifications.
26053 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
26054
26055 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
26056
26057 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
26058 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
26059 result.set_rtx is null instead of aborting.
26060 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
26061 Always enable.
26062 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
26063 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
26064 *mov<mode>_store_postinc): New patterns.
26065
26066 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
26067
26068 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
26069 as commutative. Check both conversions are NOP.
26070 ((A & B) OP (C & B)): Remove.
26071
26072 2016-05-04 Alan Modra <amodra@gmail.com>
26073
26074 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
26075
26076 2016-05-04 Alan Modra <amodra@gmail.com>
26077
26078 PR target/70866
26079 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
26080 when cr2,3,4 are all fixed regs.
26081
26082 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
26083
26084 PR rtl-optimization/57193
26085 * opts.c (default_options_table): Revert OPT_frename_registers change.
26086 * doc/invoke.texi (-frename-registers, -O2): Likewise.
26087
26088 2016-05-03 Martin Sebor <msebor@redhat.com>
26089
26090 PR c++/66561
26091 * builtins.c (fold_builtin_FILE): New function.
26092 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
26093 (fold_builtin_0): Call them.
26094 * gimplify.c (gimplify_call_expr): Remove the handling of
26095 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
26096
26097 PR c++/66561
26098 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
26099 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
26100 constants.
26101
26102 PR c++/66639
26103 * doc/extend.texi (Function Names as Strings): Update __func__,
26104 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
26105 constants.
26106
26107 2016-05-03 Jakub Jelinek <jakub@redhat.com>
26108 Richard Biener <rguenther@suse.de>
26109
26110 PR tree-optimization/70916
26111 * tree-if-conv.c: Include cfganal.h.
26112 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
26113 and remove_fake_exit_edges around the optimization pass.
26114
26115 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
26116
26117 * cgraph.c (symbol_table::create_edge): Set inline_failed.
26118 (cgraph_edge::make_direct): Likewise.
26119 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
26120 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
26121 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
26122 (CIF_THUNK): New code.
26123 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
26124 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
26125 (compute_inline_parameters): Set inline_failed for thunks.
26126 (inline_analyze_function): Cleanup.
26127 * ipa-inline.c (can_inline_edge_p): Do not deal with
26128 call_stmt_cannot_inline_p.
26129 (can_early_inline_edge_p): Likewise.
26130 (early_inliner): Initialize inline_failed.
26131 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
26132
26133 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
26134
26135 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
26136 from nonimm_ssenomem_operand.
26137 (nonimm_ssenomem_operand): New predicate.
26138 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
26139 as operand 0 predicate.
26140 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
26141 Disable unsupported alternatives using "enabled" attribute.
26142 Use register_ssemem_operand as operand 0 predicate.
26143 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
26144
26145 2016-05-03 Marek Polacek <polacek@redhat.com>
26146
26147 PR c/70859
26148 * input.c (expansion_point_location): New function.
26149 * input.h (expansion_point_location): Declare.
26150
26151 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
26152
26153 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
26154 occurence with frame_offset_ ones.
26155
26156 2016-05-03 Alan Modra <amodra@gmail.com>
26157
26158 PR rtl-optimization/70890
26159 * ira.c (combine_and_move_insns): When moving def_insn, remove
26160 equivs on use_insn.
26161
26162 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
26163
26164 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
26165 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
26166 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
26167 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
26168
26169 2016-05-03 Alan Modra <amodra@gmail.com>
26170
26171 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
26172 for SAVE_MULTIPLE/STORE_MULTIPLE.
26173
26174 2016-05-03 Jakub Jelinek <jakub@redhat.com>
26175
26176 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
26177 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
26178
26179 2016-05-03 Richard Biener <rguenther@suse.de>
26180
26181 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
26182 default true.
26183 (gimplify_arg): Likewise.
26184 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
26185 re-writing the result to a decl if required.
26186 (internal_get_tmp_var): Add allow_ssa parameter
26187 and override into_ssa with it.
26188 (get_formal_tmp_var): Adjust.
26189 (get_initialized_tmp_var): Add allow_ssa parameter.
26190 (gimplify_arg): Add allow_ssa parameter and avoid generating
26191 SSA names for the result false.
26192 (gimplify_call_expr): If the call may return twice do not
26193 gimplify parameters into SSA.
26194 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
26195 (gimplify_modify_expr): Adjust assert. For noreturn calls
26196 with a SSA name LHS adjust its def.
26197 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
26198 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
26199 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
26200 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
26201 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
26202 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
26203 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
26204 (optimize_target_teams): Do not allow SSA names for clause operands.
26205 (gimplify_expr): Likewise for where we mark the result addressable.
26206 * passes.def (pass_init_datastructures): Remove.
26207 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
26208 (rewrite_stmt): Likewise.
26209 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
26210 (replace_locals_op): Replace SSA names.
26211 (copy_gimple_seq_and_replace_locals): Init src_cfun.
26212 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
26213 * cgraph.c (release_function_body): Free CFG annotations only
26214 when we have a CFG. Simplify.
26215 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
26216 force_gimple_operand instead of get_initialized_tmp_var.
26217 * tree-pass.h (make_pass_init_datastructures): Remove.
26218 * tree-ssa.c (execute_init_datastructures): Remove.
26219 (pass_data_init_datastructures): Likewise.
26220 (class pass_init_datastructures): Likewise.
26221 (make_pass_init_datastructures): Likewise.
26222 * omp-low.c (create_omp_child_function): Init SSA data structures.
26223 (grid_expand_target_grid_body): Likewise.
26224 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
26225 name before adding it to names_to_release.
26226 (remove_bb): Always release SSA defs.
26227 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
26228 before dereferencing it.
26229 * cgraphunit.c (init_lowered_empty_function): Always
26230 int SSA data structures.
26231 * tree-ssanames.c (release_defs): Remove assert that we are in
26232 SSA form.
26233 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
26234
26235 2016-05-03 Jakub Jelinek <jakub@redhat.com>
26236 Uros Bizjak <ubizjak@gmail.com>
26237
26238 PR rtl-optimization/70467
26239 * config/i386/predicates.md (x86_64_hilo_int_operand,
26240 x86_64_hilo_general_operand): New predicates.
26241 * config/i386/constraints.md (Wd): New constraint.
26242 * config/i386/i386.md (mode attr di): Use Wd instead of e.
26243 (general_hilo_operand): New mode attr.
26244 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
26245 instead of <general_operand>.
26246 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
26247 x86_64_hilo_general_operand instead of <general_operand>.
26248
26249 2016-05-03 Jakub Jelinek <jakub@redhat.com>
26250
26251 PR tree-optimization/70916
26252 * tree-if-conv.c (constant_or_ssa_name): Removed.
26253 (fold_build_cond_expr): Use is_gimple_val instead of
26254 constant_or_ssa_name.
26255
26256 PR tree-optimization/70916
26257 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
26258 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
26259
26260 PR target/49244
26261 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
26262 (optimize_atomic_bit_test_and): New function.
26263 (pass_fold_builtins::execute): Use it.
26264 * optabs.def (atomic_bit_test_and_set_optab,
26265 atomic_bit_test_and_complement_optab,
26266 atomic_bit_test_and_reset_optab): New optabs.
26267 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
26268 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
26269 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
26270 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
26271 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
26272 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
26273 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
26274 * doc/md.texi (atomic_bit_test_and_set@var{mode},
26275 atomic_bit_test_and_complement@var{mode},
26276 atomic_bit_test_and_reset@var{mode}): Document.
26277 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
26278 atomic_bit_test_and_complement<mode>,
26279 atomic_bit_test_and_reset<mode>): New expanders.
26280 (atomic_bit_test_and_set<mode>_1,
26281 atomic_bit_test_and_complement<mode>_1,
26282 atomic_bit_test_and_reset<mode>_1): New insns.
26283
26284 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
26285
26286 PR rtl-optimization/70687
26287 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
26288 instead of unsigned HOST_WIDE_INT.
26289
26290 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
26291
26292 PR rtl-optimization/44281
26293 * hard-reg-set.h (struct target_hard_regs): New field
26294 x_fixed_nonglobal_reg_set.
26295 (fixed_nonglobal_reg_set): New macro.
26296 * reginfo.c (init_reg_sets_1): Initialize it.
26297 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
26298 of fixed_reg_set.
26299 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
26300
26301 2016-05-03 Bin Cheng <bin.cheng@arm.com>
26302
26303 PR tree-optimization/56541
26304 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
26305 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
26306 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
26307 (any_complicated_phi): new static variable.
26308 (aggressive_if_conv): delete.
26309 (if_convertible_phi_p): support phis with more than two arguments.
26310 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
26311 critical pred edges.
26312 (ifcvt_split_critical_edges): support phis with more than two
26313 arguments by checking new parameter. only split critical edges
26314 if needed.
26315 (tree_if_conversion): handle simd pragma marked loop using new
26316 local variable aggressive_if_conv. check any_complicated_phi.
26317
26318 2016-05-03 Bin Cheng <bin.cheng@arm.com>
26319
26320 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
26321 before using it.
26322
26323 2016-05-03 Bin Cheng <bin.cheng@arm.com>
26324
26325 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
26326 cbase.
26327
26328 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
26329
26330 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
26331 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
26332 define_insn_and_split.
26333 (mulsi3_i): New define_insn_and_split.
26334 (mulsi3_call): Convert to define_insn.
26335 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
26336 Remove constraints.
26337
26338 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
26339
26340 * machmode.h (mode_complex): Add support to give the complex mode
26341 for a given mode.
26342 (GET_MODE_COMPLEX_MODE): Likewise.
26343 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
26344 stored by build_complex_type and gfc_build_complex_type instead of
26345 trying to figure out the appropriate mode based on the size. Raise
26346 an assertion error, if the type was not set.
26347 * genmodes.c (struct mode_data): Add field for the complex type of
26348 the given type.
26349 (blank_mode): Likewise.
26350 (make_complex_modes): Remember the complex mode created in the
26351 base type.
26352 (emit_mode_complex): Write out the mode_complex array to map a
26353 type mode to the complex version.
26354 (emit_insn_modes_c): Likewise.
26355 * tree.c (build_complex_type): Set the complex type to use before
26356 calling layout_type.
26357 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
26358 support for __float128 complex datatypes.
26359 (rs6000_hard_regno_mode_ok): Likewise.
26360 (rs6000_setup_reg_addr_masks): Likewise.
26361 (rs6000_complex_function_value): Likewise.
26362 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
26363 __float128 and __ibm128 complex.
26364 (FLOAT128_IBM_P): Likewise.
26365 (ALTIVEC_ARG_MAX_RETURN): Likewise.
26366 * doc/extend.texi (Additional Floating Types): Document that
26367 -mfloat128 must be used to enable __float128. Document complex
26368 __float128 and __ibm128 support.
26369
26370 2016-05-02 Jakub Jelinek <jakub@redhat.com>
26371
26372 PR target/49244
26373 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
26374 char/short arguments promoted to int because of promote_prototypes.
26375
26376 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
26377
26378 * config/i386/predicates.md (register_ssemem_operand): New predicate.
26379 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
26380 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
26381 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
26382 alternatives using "enabled" attribute. Use register_ssemem_operand
26383 as operand 1 predicate.
26384 (*cmpi<unord>xf_i387): Split XFmode pattern from
26385 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
26386 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
26387 *absneg<mode>2_i387. Disable unsupported alternatives using
26388 "enabled" attribute.
26389 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
26390
26391 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
26392
26393 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
26394 marker.
26395 (oacc_loop_process): Check mask for loop termination.
26396
26397 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
26398
26399 * cif-code.def (CIF_THUNK): Add.
26400 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
26401 accidental change.
26402
26403 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
26404
26405 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
26406 (dump_inline_summary): Dump it.
26407 (fp_expression_p): New predicate.
26408 (estimate_function_body_sizes): Use it.
26409 (inline_merge_summary): Merge fp_expressions.
26410 (inline_read_section): Read fp_expressions.
26411 (inline_write_summary): Write fp_expressions.
26412 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
26413 codegen boundary if either caller or callee is !fp_expressions.
26414 * ipa-inline.h (inline_summary): Add fp_expressions.
26415 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
26416 to fp_expressions be sure the fp generation flags are updated.
26417
26418 2016-05-02 Jakub Jelinek <jakub@redhat.com>
26419
26420 PR rtl-optimization/70467
26421 * cse.c (cse_insn): Handle no-op MEM moves after folding.
26422
26423 PR rtl-optimization/70467
26424 * ipa-pure-const.c (check_call): Handle internal calls even in
26425 ipa mode like in local mode.
26426
26427 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
26428
26429 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
26430
26431 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
26432
26433 * match.pd (X u< X, X u> X): New transformations.
26434
26435 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
26436
26437 * flag-types.h (enum warn_strict_overflow_code): Move ...
26438 * coretypes.h: ... here.
26439 * fold-const.h (fold_overflow_warning): Declare.
26440 * fold-const.c (fold_overflow_warning): Make non-static.
26441 (fold_comparison): Move the transformation of X +- C1 CMP C2
26442 into X CMP C2 -+ C1 ...
26443 * match.pd: ... here.
26444 * gimple-fold.c (fold_stmt_1): Protect with
26445 fold_defer_overflow_warnings.
26446
26447 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
26448
26449 * omp-low.c (struct oacc_loop): Add 'inner' field.
26450 (new_oacc_loop_raw): Initialize it to zero.
26451 (oacc_loop_fixed_partitions): Initialize it.
26452 (oacc_loop_auto_partitions): Partition outermost loop to outermost
26453 available partitioning.
26454
26455 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
26456
26457 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
26458 register_operand.
26459 (umulsidi3): Likewise.
26460 (indirect_jump): Fix jump instruction assembly patterns.
26461
26462 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
26463
26464 PR target/70860
26465 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
26466 (nvptx_function_value): Assert non-NULL cfun.
26467
26468 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
26469
26470 PR rtl-optimization/70886
26471 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
26472
26473 * cselib.h (rtx_equal_for_cselib_1): Declare.
26474 (rtx_equal_for_cselib_p: New inline function.
26475 * cselib.c (rtx_equal_for_cselib_p): Delete.
26476 (rtx_equal_for_cselib_1): Make public.
26477
26478 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
26479
26480 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
26481 (register_mixssei387nonimm_operand): Remove predicate.
26482 * config/i386/i386.md (*fop_<mode>_comm): Merge from
26483 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
26484 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
26485 for TARGET_MIX_SSE_I387 alternatives.
26486 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
26487 Disable unsupported alternatives using "enabled" attribute. Use
26488 nonimm_ssenomem_operand as operand 1 predicate. Also check
26489 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
26490
26491 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
26492
26493 * tree.c (cst_and_fits_in_hwi): Simplify.
26494
26495 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
26496
26497 * tree.h (wi::to_wide): New function.
26498 * expr.c (expand_expr_real_1): Use wi::to_wide.
26499 * fold-const.c (int_const_binop_1): Likewise.
26500 (extract_muldiv_1): Likewise.
26501
26502 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
26503
26504 * wide-int.h: Update offset_int and widest_int documentation.
26505 (WI_SIGNED_SHIFT_RESULT): New macro.
26506 (wi::binary_shift): Define signed_shift_result_type for
26507 shifts on offset_int- and widest_int-like types.
26508 (generic_wide_int): Support <<= and >>= if << and >> are supported.
26509 * tree.h (int_bit_position): Use shift operators instead of wi::
26510 shifts.
26511 * alias.c (adjust_offset_for_component_ref): Likewise.
26512 * expr.c (get_inner_reference): Likewise.
26513 * fold-const.c (fold_comparison): Likewise.
26514 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
26515 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
26516 * tree-dfa.c (get_ref_base_and_extent): Likewise.
26517 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26518 (stmt_kills_ref_p): Likewise.
26519 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
26520 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
26521 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
26522 (ao_ref_init_from_vn_reference): Likewise.
26523
26524 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
26525
26526 * wide-int.h: Update offset_int and widest_int documentation.
26527 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
26528 (wi::binary_traits): Allow ordered comparisons between offset_int and
26529 offset_int, between widest_int and widest_int, and between either
26530 of these types and basic C types.
26531 (operator <, <=, >, >=): Define for the same combinations.
26532 * tree.h (tree_int_cst_lt): Use comparison operators instead
26533 of wi:: comparisons.
26534 (tree_int_cst_le): Likewise.
26535 * gimple-fold.c (fold_array_ctor_reference): Likewise.
26536 (fold_nonarray_ctor_reference): Likewise.
26537 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
26538 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
26539 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
26540 * tree-sra.c (completely_scalarize): Likewise.
26541 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
26542 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
26543 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
26544 (check_for_binary_op_overflow): Likewise.
26545 (search_for_addr_array): Likewise.
26546 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
26547
26548 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
26549
26550 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
26551 (arc_save_restore): Likewise.
26552 (arc_dwarf_register_span): Likewise.
26553 (arc_output_pic_addr_const): Initialize suffix variable.
26554
26555 2016-05-02 Martin Liska <mliska@suse.cz>
26556
26557 * symbol-summary.h (function_summary::function_summary):
26558 Remove checking assert for all cgraph nodes.
26559 (function_summary::get): Check summary_uid.
26560 (symtab_insertion): Check summary_uid.
26561
26562 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
26563
26564 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
26565 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
26566 bmaskn instruction.
26567 (arc_dwarf_register_span): Remove enum keyword.
26568 (compact_memory_operand_p): New function.
26569 * config/arc/arc.h (reg_class): Add code density register classes.
26570 (REG_CLASS_NAMES): Likewise.
26571 (REG_CLASS_CONTENTS): Likewise.
26572 * config/arc/arc.md (*movqi_insn): Add code density instructions.
26573 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
26574 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
26575 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
26576 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
26577 constraints.
26578 (h, Rcd, Rsd, Rzd): New register constraints.
26579 (T): Use compact_memory_operand_p function.
26580 * config/arc/predicates.md (compact_load_memory_operand): Remove.
26581
26582 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
26583
26584 * config/sh/sh.md (*negnegt, *movtt): Remove.
26585
26586 2016-05-02 Marek Polacek <polacek@redhat.com>
26587 Tom de Vries <tom@codesourcery.com>
26588
26589 PR tree-optimization/70700
26590 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
26591 bigger than FIRST_REF_NODE.
26592
26593 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
26594
26595 PR target/52898
26596 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
26597 TARGET_CMPEQDI_T.
26598 (prepare_cbranch_operands): Don't use scratch register. Assume that
26599 function is used when pseudos can be created.
26600 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
26601 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
26602 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
26603 define_expand. Allow it only when pseudos can be created.
26604 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
26605
26606 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
26607
26608 * config/i386/constraints.md (BC): Only allow -1 operands.
26609 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
26610 Add "enabled" attribute. Update XI mode attribute calculation.
26611 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
26612 (*movoi_internal_avx): Update XI mode attribute calculation.
26613 (*movti_internal): Ditto.
26614
26615 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
26616
26617 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
26618 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
26619
26620 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
26621
26622 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
26623 statement on instruction code. Remove trailing spaces.
26624 (altivec_expand_stv_builtin): Likewise.
26625
26626 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
26627
26628 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
26629 (TARGET_FPU_DOUBLE): Simplify.
26630 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
26631 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
26632 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
26633 with 'TARGET_FPU_DOUBLE'.
26634 * config/sh/sh.md: Likewise.
26635
26636 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
26637
26638 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
26639 SH_DIV_STR_FOR_SIZE): Remove.
26640 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
26641 SH_DIV_STR_FOR_SIZE): Remove.
26642
26643 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
26644
26645 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
26646 logical_reg_operand): Delete.
26647 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
26648 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
26649 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
26650 match_operand and match_test.
26651 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
26652 variables on their first use. Return bool values.
26653 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
26654 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
26655 arith_reg_operand for input operand. Remove empty constraints.
26656 (xorsi3): Delete.
26657 (*xorsi3_compact): Rename to xorsi3.
26658 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
26659 (*zero_extend<mode>si2_disp_mem): Update comment.
26660 (mov_nop): Delete.
26661
26662 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
26663
26664 * config/sh/t-sh: Remove SH5 support.
26665 * config.gcc: Likewise.
26666 * configure: Likewise.
26667
26668 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26669
26670 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
26671
26672 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
26673
26674 * config/sh/sh.c (register_sh_passes, sh_option_override,
26675 sh_print_operand, prepare_move_operands,
26676 sh_can_follow_jump): Remove TARGET_SH1 checks.
26677 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
26678 PROMOTE_MODE): Likewise.
26679 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
26680 movdi): Likewise.
26681
26682 2016-04-30 Alan Modra <amodra@gmail.com>
26683
26684 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
26685 restoring when fixed_reg_p, but allow out-of-line or stmw save.
26686 Check for user regs later to avoid unnecessary looping over regs.
26687 Merge user reg check with non-saved reg check. Don't force
26688 inline VR restore when static chain used.
26689 (rs6000_frame_related): Omit eh_frame info for user regs when
26690 saving.
26691 (fixed_regs_p): Delete.
26692
26693 2016-04-30 Alan Modra <amodra@gmail.com>
26694
26695 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
26696 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
26697 Update all uses.
26698
26699 2016-04-30 Alan Modra <amodra@gmail.com>
26700
26701 PR target/69645
26702 * config/rs6000/rs6000.c (fixed_reg_p): New function.
26703 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
26704 Update all uses.
26705
26706 2016-04-30 Alan Modra <amodra@gmail.com>
26707
26708 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
26709 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
26710 flag_pic test for Darwin.
26711
26712 2016-04-30 Alan Modra <amodra@gmail.com>
26713
26714 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
26715 throw_calls_crossed.
26716 (REG_FREQ_CALLS_CROSSED): Delete.
26717 (REG_N_THROWING_CALLS_CROSSED): Delete.
26718 * regstat.c (regstat_bb_compute_ri): Don't calculate
26719 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
26720 (dump_reg_info): Don't print call cross frequency.
26721 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
26722 and REG_N_THROWING_CALLS_CROSSED.
26723
26724 2016-04-30 Alan Modra <amodra@gmail.com>
26725
26726 * regs.h (struct reg_info_t): Delete live_length.
26727 (REG_LIVE_LENGTH): Delete macro.
26728 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
26729 local_live, local_processed and local_live_last_luid params.
26730 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
26731 Formatting fixes.
26732 (regstat_compute_ri): Adjust for above. Don't set
26733 REG_LIVE_LENGTH.
26734 (dump_reg_info): Don't print live length.
26735 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
26736 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
26737 Localize loop_depth var.
26738
26739 2016-04-30 Alan Modra <amodra@gmail.com>
26740
26741 * ira.c (enum valid_equiv): New.
26742 (validate_equiv_mem): Return enum.
26743 (update_equiv_mem): Create replacement in more cases.
26744 (add_store_equivs): Update validate_equiv_mem call.
26745
26746 2016-04-30 Alan Modra <amodra@gmail.com>
26747
26748 * ira.c (combine_and_move_insns): Rather than scanning insns,
26749 use DF infrastucture to find use and def insns.
26750
26751 2016-04-30 Alan Modra <amodra@gmail.com>
26752
26753 ira.c (combine_and_move_insns): Move invariant conditions..
26754 (ira.c): ..to here. Call combine_and_move_insns before
26755 add_store_equivs. Call grow_reg_equivs later. Allocate
26756 req_equiv later using max_reg_num() rather than global max_regno.
26757 (contains_replace_regs): Delete.
26758 (add_store_equivs): Remove contains_replace_regs test.
26759
26760 2016-04-30 Alan Modra <amodra@gmail.com>
26761
26762 * ira.c (struct equiv_mem_data): New.
26763 (equiv_mem, equiv_mem_modified): Delete static vars.
26764 (validate_equiv_mem_from_store): Use "data" param to communicate..
26765 (validate_equiv_mem): ..from here.
26766
26767 2016-04-30 Alan Modra <amodra@gmail.com>
26768
26769 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
26770 split out from..
26771 (update_reg_equivs): ..here. Move allocation and freeing of
26772 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
26773 end_alias_analysis to..
26774 (ira): ..here.
26775
26776 2016-04-30 Alan Modra <amodra@gmail.com>
26777
26778 * ira.c (pdx_subregs): Delete.
26779 (struct equivalence): Add pdx_subregs field.
26780 (set_paradoxical_subreg): Remove pdx_subregs param. Update
26781 pdx_subregs access.
26782 (update_equiv_regs): Don't create or free pdx_subregs. Update
26783 pdx_subregs access.
26784
26785 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26786
26787 * config/rs6000/altivec.h: Change definitions of vec_xl and
26788 vec_xst.
26789 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
26790 (LD_ELEMREV_V2DI): New.
26791 (LD_ELEMREV_V4SF): New.
26792 (LD_ELEMREV_V4SI): New.
26793 (LD_ELEMREV_V8HI): New.
26794 (LD_ELEMREV_V16QI): New.
26795 (ST_ELEMREV_V2DF): New.
26796 (ST_ELEMREV_V2DI): New.
26797 (ST_ELEMREV_V4SF): New.
26798 (ST_ELEMREV_V4SI): New.
26799 (ST_ELEMREV_V8HI): New.
26800 (ST_ELEMREV_V16QI): New.
26801 (XL): New.
26802 (XST): New.
26803 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26804 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
26805 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
26806 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
26807 (altivec_expand_builtin): Add handling for
26808 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
26809 (rs6000_invalid_builtin): Add error-checking for
26810 RS6000_BTM_P9_VECTOR.
26811 (altivec_init_builtins): Define builtins used to implement vec_xl
26812 and vec_xst.
26813 (rs6000_builtin_mask_names): Define power9-vector.
26814 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
26815 (RS6000_BTM_P9_VECTOR): Define.
26816 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
26817 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
26818 (vsx_ld_elemrev_v2df): Likewise.
26819 (vsx_ld_elemrev_v4sf): Likewise.
26820 (vsx_ld_elemrev_v4si): Likewise.
26821 (vsx_ld_elemrev_v8hi): Likewise.
26822 (vsx_ld_elemrev_v16qi): Likewise.
26823 (vsx_st_elemrev_v2df): Likewise.
26824 (vsx_st_elemrev_v2di): Likewise.
26825 (vsx_st_elemrev_v4sf): Likewise.
26826 (vsx_st_elemrev_v4si): Likewise.
26827 (vsx_st_elemrev_v8hi): Likewise.
26828 (vsx_st_elemrev_v16qi): Likewise.
26829 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
26830 grammar.
26831
26832 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
26833
26834 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
26835 out into ...
26836 (simplify_control_stmt_condition_1): ... here. Recurse into
26837 BIT_AND_EXPRs and BIT_IOR_EXPRs.
26838
26839 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
26840
26841 PR target/69810
26842 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
26843 (zero_extendqi<mode>2_dot): Revert earlier conversion from
26844 define_insn_and_split to define_insn.
26845 (zero_extendqi<mode>2_dot2): Same.
26846 (extendqi<mode>2_dot): Same.
26847 (extendqi<mode>2_dot2): Same.
26848
26849 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
26850
26851 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
26852 (probe_stack): New expander.
26853 (probe_stack_<mode>): New insn pattern.
26854
26855 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
26856
26857 * config/i386/i386.md
26858 (operations with memory inputs setting flags peephole2):
26859 Remove uneeded REG_P checks. Cleanup pattern generation.
26860
26861 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
26862
26863 * tree-vect-loop.c (vect_transform_loop): Fix
26864 nb_iterations_upper_bound computation for vectorized loop.
26865
26866 2016-04-29 Marek Polacek <polacek@redhat.com>
26867 Jakub Jelinek <jakub@redhat.com>
26868
26869 PR sanitizer/70342
26870 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
26871 TARGET_EXPR_SLOT as a base.
26872
26873 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
26874
26875 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
26876 with 'rCm2' constraints to limit possible immediate size.
26877 (*load_zeroextendqisi_update): Likewise.
26878 (*load_signextendqisi_update): Likewise.
26879 (*loadhi_update): Likewise.
26880 (*load_zeroextendhisi_update): Likewise.
26881 (*load_signextendhisi_update): Likewise.
26882 (*loadsi_update): Likewise.
26883 (*loadsf_update): Likewise.
26884
26885 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
26886
26887 * config/i386/predicates.md (constm1_operand): Fix comparison.
26888
26889 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
26890
26891 * testsuite/gcc.target/arc/ieee_eq.c: New test.
26892
26893 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
26894
26895 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
26896 remaining SH5 related settings.
26897 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
26898 shmedia_prepare_call_address): Delete.
26899 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
26900 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
26901 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
26902 UNSUPPORTED_SH2A): Remove m5 checks.
26903 (sh_divide_strategy_e): Remove SH5 division strategies.
26904 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
26905 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
26906
26907 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
26908
26909 * config/s390/s390.c (s390_rtx_costs): Update documentation.
26910
26911 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26912
26913 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
26914 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
26915 Change lder to ldr.
26916 * config/s390/vector.md ("mov<mode>"): Likewise.
26917
26918 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
26919
26920 * config/s390/constraints.md ("U", "W"): Invoke
26921 s390_mem_constraint with "ZR" and "ZT".
26922 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
26923 addresses when using LRA. Accept also short displacements for S
26924 and T constraints. Do not check for long displacement target for
26925 S and T constraints.
26926 (s390_mem_constraint): Remove handling of U and W constraints.
26927 * config/s390/s390.md (various patterns): Remove the short
26928 displacement constraints (Q and R) if a long displacement
26929 constraint is present. Add longdisp as required CPU capability.
26930 * config/s390/vector.md: Likewise.
26931 * config/s390/vx-builtins.md: Likewise.
26932
26933 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
26934
26935 PR target/60040
26936 * reload1.c (reload): Call finish_spills before
26937 restarting reload loop. Skip select_reload_regs
26938 if update_eliminables_and_spill returns true.
26939
26940 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
26941
26942 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
26943 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
26944 (umulhisi3_imm): Update predicates and constraint letters.
26945 (umulhisi3_reg): Declare instruction as commutative.
26946 * config/arc/constraints.md (J12, J16): New constraints.
26947 * config/arc/predicates.md (short_unsigned_const_operand): New
26948 predicate.
26949 (arc_short_operand): Likewise.
26950 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
26951
26952 2016-04-29 Richard Biener <rguenther@suse.de>
26953
26954 PR tree-optimization/13962
26955 PR tree-optimization/65686
26956 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
26957 * tree-ssa-alias.c (ptrs_compare_unequal): New function
26958 using PTA to compare pointers.
26959 * match.pd: Add pattern for pointer equality compare simplification
26960 using ptrs_compare_unequal.
26961
26962 2016-04-29 Richard Biener <rguenther@suse.de>
26963
26964 * stor-layout.c (layout_type): Do not build a pointer-to-element
26965 type for arrays.
26966
26967 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
26968
26969 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
26970 Use SWI mode iterator. Use general_reg_operand predicate.
26971 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
26972 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
26973 predicates.
26974
26975 2016-04-29 Jakub Jelinek <jakub@redhat.com>
26976
26977 PR middle-end/70843
26978 * fold-const.c (operand_equal_p): Don't verify hash value equality
26979 if arg0 == arg1.
26980 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
26981 and OMP_CLAUSE.
26982
26983 2016-04-28 Jakub Jelinek <jakub@redhat.com>
26984
26985 PR target/70858
26986 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
26987 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
26988 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
26989 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
26990 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
26991
26992 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
26993
26994 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
26995 to info. Don't initialize separate fields to 0. Clean up
26996 formatting a bit.
26997
26998 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
26999
27000 * config/i386/i386.md (peephole2s for operations with memory inputs):
27001 Use SWI mode iterator.
27002 (peephole2s for operations with memory outputs): Ditto.
27003 Do not check for stack checking probe.
27004
27005 (probe_stack): Remove expander.
27006
27007 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
27008 Andrew Burgess <andrew.burgess@embecosm.com>
27009
27010 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
27011 operands as 32-bits.
27012
27013 2016-04-28 Jason Merrill <jason@redhat.com>
27014
27015 * gdbinit.in: Skip line-map.h.
27016
27017 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
27018 Andrew Burgess <andrew.burgess@embecosm.com>
27019
27020 * config/arc/arc.c (arc_conditional_register_usage): Take
27021 TARGET_RRQ_CLASS into account.
27022 (arc_print_operand): Support printing 'p' and 's' operands.
27023 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
27024 as 0.
27025 (TARGET_RRQ_CLASS): Define.
27026 (IS_POWEROF2_OR_0_P): Define.
27027 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
27028 alternatives.
27029 (*tst_movb): New define_insn.
27030 (*tst): Avoid recognition if it could prevent '*tst_movb'
27031 combination; replace c/CnL with c/Chs alternative.
27032 (*tst_bitfield_tst): New define_insn.
27033 (*tst_bitfield_asr): New define_insn.
27034 (*tst_bitfield): New define_insn.
27035 (andsi3_i): Add Rrq variant.
27036 (extzv): New define_expand.
27037 (insv): New define_expand.
27038 (*insv_i): New define_insn.
27039 (*movb): New define_insn.
27040 (*movb_signed): New define_insn.
27041 (*movb_high): New define_insn.
27042 (*movb_high_signed): New define_insn.
27043 (*movb_high_signed + 1): New define_split pattern.
27044 (*mrgb): New define_insn.
27045 (*mrgb + 1): New define_peephole2 pattern.
27046 (*mrgb + 2): New define_peephole2 pattern.
27047 * config/arc/arc.opt (mbitops): New option for nps400, uses
27048 TARGET_NPS_BITOPS_DEFAULT.
27049 * config/arc/constraints.md (q): Make register class conditional.
27050 (Rrq): New register constraint.
27051 (Chs): New constraint.
27052 (Clo): New constraint.
27053 (Chi): New constraint.
27054 (Cbf): New constraint.
27055 (Cbn): New constraint.
27056 (C18): New constraint.
27057 (Cbi): New constraint.
27058
27059 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
27060
27061 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
27062 dst->popcount.
27063 (bitmap_intersection_of_preds): Ditto.
27064 (bitmap_union_of_succs): Ditto.
27065 (bitmap_union_of_preds): Ditto.
27066 * sbitmap.c (do_popcount): Delete.
27067 (BITMAP_DEBUGGING): Delete.
27068 (sbitmap_verify_popcount): Delete.
27069 (sbitmap_alloc): Don't initialize the popcount field.
27070 (sbitmap_alloc_with_popcount): Delete.
27071 (sbitmap_resize): Don't resize the popcount array.
27072 (sbitmap_vector_alloc): Don't initialize the popcount field.
27073 (bitmap_copy): Don't copy the popcount array.
27074 (bitmap_clear): Don't clear the popcount array.
27075 (bitmap_clear): Delete the popcount array handling.
27076 (bitmap_ior_and_compl): Delete the popcount assert.
27077 (bitmap_not): Ditto.
27078 (bitmap_and_compl): Ditto.
27079 (bitmap_and): Delete the popcount array handling.
27080 (bitmap_xor): Ditto.
27081 (bitmap_ior): Ditto.
27082 (bitmap_or_and): Delete the popcount assert.
27083 (bitmap_and_or): Ditto.
27084 (popcount_table): Delete.
27085 (sbitmap_elt_popcount): Delete.
27086 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
27087 (bitmap_set_bit): Delete the popcount assert.
27088 (bitmap_clear_bit): Ditto.
27089 (sbitmap_free): Don't free the popcount array.
27090 (sbitmap_alloc_with_popcount): Delete declaration.
27091 (sbitmap_popcount): Ditto.
27092
27093 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
27094 Andrew Burgess <andrew.burgess@embecosm.com>
27095
27096 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
27097 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
27098 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
27099 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
27100 * config/arc/arc.opt (mcmem): New option.
27101 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
27102 supply length for r/m alternative.
27103 (*extendqisi2_ac): Likewise.
27104 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
27105 r/Uex alternative.
27106 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
27107 (movhi_insn): Likewise.
27108 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
27109 (*zero_extendqihi2_i): Add r/Ucm alternative.
27110 (*zero_extendqisi2_ac): Likewise.
27111 (*zero_extendhisi2_i): Likewise.
27112 * config/arc/constraints.md (Uex): New memory constraint.
27113 (Ucm): New define_constraint.
27114 * config/arc/predicates.md (long_immediate_loadstore_operand):
27115 Return 0 for MEM with cmem_address address.
27116 (cmem_address_0): New predicates.
27117 (cmem_address_1): Likewise.
27118 (cmem_address_2): Likewise.
27119 (cmem_address): Likewise.
27120
27121 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
27122
27123 * config/rs6000/rs6000.c (machine_function): Rename
27124 insn_chain_scanned_p to spe_insn_chain_scanned_p.
27125 (rs6000_stack_info): Adjust.
27126
27127 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
27128 Andrew Burgess <andrew.burgess@embecosm.com>
27129
27130 * config/arc/constraints.md (Usd): Convert to define_constraint.
27131 (Us<): Likewise.
27132 (Us>): Likewise.
27133
27134 2016-04-28 Jakub Jelinek <jakub@redhat.com>
27135
27136 PR target/70821
27137 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
27138 Add new peephole2 where the first insn is *mov<mode>_or instead of
27139 *mov<mode>_internal.
27140
27141 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
27142
27143 * tracer.c (bb_seen): Make static.
27144
27145 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
27146
27147 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
27148 support, setup defaults.
27149 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
27150 * config/arc/arc.c (arc_init): Add NPS400 support.
27151 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
27152 (TARGET_ARC700): NPS400 is also an ARC700.
27153 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
27154
27155 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
27156
27157 PR target/70668
27158 * config/nds32/nds32.md (casesi): Don't access the operands array
27159 out of bounds.
27160
27161 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
27162
27163 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
27164 (or $-1,reg peephole2): Ditto.
27165 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
27166
27167 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
27168
27169 * doc/extend.texi (Common Function Attributes) [optimize]:
27170 Discourage use of the optimize attribute.
27171
27172 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
27173
27174 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
27175 special case builtin.
27176 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
27177 ALTIVEC_BUILTIN_VEC_ADDE.
27178 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
27179 support for ALTIVEC_BUILTIN_VEC_ADDE.
27180 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
27181 for __builtin_vec_adde.
27182
27183 2016-04-28 Jakub Jelinek <jakub@redhat.com>
27184
27185 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
27186 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
27187
27188 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27189
27190 PR testsuite/70595
27191 * doc/sourcebuild.texi (Effective-Target Keywords, Other
27192 attributes): Document cilkplus_runtime.
27193
27194 2016-04-28 Martin Jambor <mjambor@suse.cz>
27195
27196 * tree-cfg.c (verify_expr): Verify that local declarations belong to
27197 this function. Call verify_expr on MEM_REFs and bases of other
27198 handled_components.
27199
27200 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27201
27202 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
27203 for WORD_REGISTER_OPERATIONS to runtime check.
27204
27205 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
27206
27207 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
27208
27209 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
27210
27211 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
27212 big-endian compilation.
27213 * config/arc/arc.md (addf3): Likewise.
27214 (subdf3): Likewise.
27215 (muldf3): Likewise.
27216
27217 2016-04-28 Richard Biener <rguenther@suse.de>
27218
27219 PR tree-optimization/70840
27220 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
27221 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
27222 Mark x * pow(x,c) -> pow(x,c+1) commutative.
27223 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
27224
27225 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27226
27227 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
27228 and explain why in a comment.
27229
27230 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
27231
27232 * config/arc/arc.md (cpu_facility): Add fpx variant.
27233 (subdf3): Prohibit use reverse sub when assist operations option
27234 is enabled.
27235 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
27236 instructions only when FPX is enabled.
27237 * testsuite/gcc.target/arc/trsub.c: New test.
27238
27239 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
27240
27241 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
27242 mult_operator when calculating "type" attribute.
27243 (*fop_<mode>_1_i387): Ditto.
27244 (*fop_xf_1_i387): Ditto.
27245 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
27246 Use std::swap to swap operands. Use RTL expressions to generate
27247 converted pattern.
27248
27249 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
27250 Joern Rennecke <joern.rennecke@embecosm.com>
27251
27252 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
27253 declaration.
27254 (emit_pic_move): Remove.
27255 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
27256 * config/arc/arc.c (emit_pic_move): Removed.
27257 (TARGET_HAVE_TLS): Define.
27258 (arc_conditional_register_usage): Test for arc_tp_regno.
27259 (arc_print_operand, arc_print_operand_address): Handle TLS
27260 unspecs.
27261 (arc_needs_pcl_p): New function.
27262 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
27263 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
27264 (arc_raw_symbolic_reference_mentioned_p): Likewise.
27265 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
27266 (arc_legitimize_tls_address): Likewise.
27267 (DTPOFF_ZERO_SYM): Define.
27268 (arc_legitimize_pic_address): Make it static, handle TLS cases.
27269 (arc_output_pic_addr_const): Print TLS unspecs.
27270 (prepare_pic_move): New function, replaces emit_pic_move.
27271 (arc_legitimate_constant_p): Handle TLS unspecs.
27272 (arc_legitimate_address_p): Likewise.
27273 (arc_rewrite_small_data_p): Use assert for TLS constants.
27274 (prepare_move_operands): Use prepare_pic_move.
27275 (arc_legitimize_address): Legitimize tls addresses.
27276 (arc_epilogue_uses): Check for arc_tp_regno.
27277 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
27278 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
27279 Define.
27280 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
27281 Likewise.
27282 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
27283 %(arc_tls_extra_start_spec).
27284 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
27285 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
27286 (EH_USES): Define.
27287 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
27288 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
27289 (UNSPEC_TLS_OFF): Add.
27290 (R10_REG): Define.
27291 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
27292 (get_thread_pointersi): New patterns.
27293 * config/arc/arc.opt (mtp-regno): New option.
27294 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
27295 (move_dest_operand): Likewise.
27296 * configure: Regenerate.
27297 * configure.ac: Add arc*-*-* case to test for tls.
27298 * doc/invoke.texi (ARC options): Document mtp-regno.
27299
27300 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
27301
27302 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
27303 the new ARC HS SIMD instructions.
27304 (arc_preferred_simd_mode): New function.
27305 (arc_autovectorize_vector_sizes): Likewise.
27306 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
27307 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
27308 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
27309 (arc_init_builtins): Add new SIMD builtin types.
27310 (arc_split_move): Handle 64 bit vector moves.
27311 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
27312 (TARGET_PLUS_QMACW): Define.
27313 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
27314 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
27315 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
27316 (VSUBADD4H): New builtins.
27317 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
27318 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
27319
27320 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
27321 Matthias Klose <doko@debian.org>
27322
27323 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
27324
27325 2016-04-28 Richard Biener <rguenther@suse.de>
27326
27327 PR middle-end/70777
27328 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
27329 canonicalization.
27330
27331 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
27332
27333 * common/config/sh/sh-common.c: Remove SH5 support.
27334 * config/sh/constraints.md: Likewise.
27335 * config/sh/config/sh/elf.h: Likewise.
27336 * config/sh/linux.h: Likewise.
27337 * config/sh/netbsd-elf.h: Likewise.
27338 * config/sh/predicates.md: Likewise.
27339 * config/sh/sh-c.c: Likewise.
27340 * config/sh/sh-protos.h: Likewise.
27341 * config/sh/sh.c: Likewise.
27342 * config/sh/sh.h: Likewise.
27343 * config/sh/sh.md: Likewise.
27344 * config/sh/sh.opt: Likewise.
27345 * config/sh/sync.md: Likewise.
27346 * config/sh/sh64.h: Delete.
27347 * config/sh/shmedia.h: Likewise.
27348 * config/sh/shmedia.md: Likewise.
27349 * config/sh/sshmedia.h: Likewise.
27350 * config/sh/t-netbsd-sh5-64: Likewise.
27351 * config/sh/t-sh64: Likewise.
27352 * config/sh/ushmedia.h: Likewise.
27353
27354 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
27355
27356 * config/i386/i386.md (sign_extend to memory peephole2s): Use
27357 general_reg_operand instead of register_operand predicate.
27358
27359 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27360
27361 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
27362
27363 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
27364
27365 * match.pd (A - B > A, A + B < A): New transformations.
27366
27367 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
27368
27369 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
27370 which defaults to true. Emit an outer pair of parentheses only if
27371 EMIT_PARENS. When continuing a chain of && or || (or & or |),
27372 don't emit parentheses for the right-hand operand.
27373
27374 2016-04-27 Jeff Law <law@redhat.com>
27375
27376 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
27377
27378 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27379
27380 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
27381 (altivec_lvx_<mode>_internal): Document.
27382 (altivec_lvx_<mode>_2op): New define_insn.
27383 (altivec_lvx_<mode>_1op): Likewise.
27384 (altivec_lvx_<mode>_2op_si): Likewise.
27385 (altivec_lvx_<mode>_1op_si): Likewise.
27386 (altivec_stvx_<mode>): Remove.
27387 (altivec_stvx_<mode>_internal): Document.
27388 (altivec_stvx_<mode>_2op): New define_insn.
27389 (altivec_stvx_<mode>_1op): Likewise.
27390 (altivec_stvx_<mode>_2op_si): Likewise.
27391 (altivec_stvx_<mode>_1op_si): Likewise.
27392 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
27393 Expand vec_ld and vec_st during parsing.
27394 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
27395 changes.
27396 (altivec_expand_stvx_be): Likewise.
27397 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
27398 address-masking behavior in RTL.
27399 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
27400 address-masking behavior in RTL.
27401 (altivec_expand_builtin): Change builtin code arguments for calls
27402 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
27403 (insn_is_swappable_p): Avoid incorrect swap optimization in the
27404 presence of lvx/stvx patterns.
27405 (alignment_with_canonical_addr): New function.
27406 (alignment_mask): Likewise.
27407 (find_alignment_op): Likewise.
27408 (recombine_lvx_pattern): Likewise.
27409 (recombine_stvx_pattern): Likewise.
27410 (recombine_lvx_stvx_patterns): Likewise.
27411 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
27412 stvx patterns from expand.
27413 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
27414 expansions.
27415 (vector_altivec_store_<mode>): Likewise.
27416
27417 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
27418
27419 * config/aarch64/aarch64.md
27420 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
27421 remove the "fp" attributes.
27422 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
27423 add the "simd" attributes.
27424 (*movdf_aarch64): Likewise.
27425 (*movtf_aarch64): Remove the "fp" attributes.
27426 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
27427 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
27428
27429 2016-04-27 David Malcolm <dmalcolm@redhat.com>
27430
27431 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
27432 rtx to rtx_code_label *.
27433 * rtl.h (maybe_set_first_label_num): Likewise.
27434
27435 2016-04-27 David Malcolm <dmalcolm@redhat.com>
27436
27437 * df-core.c (df_add_problem): Make the problem param be const.
27438 (df_remove_problem): Make local "problem" be const.
27439 * df-problems.c (problem_RD): Make const.
27440 (problem_LR): Likewise.
27441 (problem_LIVE): Likewise.
27442 (problem_MIR): Likewise.
27443 (problem_CHAIN): Likewise.
27444 (problem_WORD_LR): Likewise.
27445 (problem_NOTE): Likewise.
27446 (problem_MD): Likewise.
27447 * df-scan.c (problem_SCAN): Likewise.
27448 * df.h (struct df_problem): Make field "dependent_problem" be
27449 const.
27450 (struct dataflow): Likewise for field "problem".
27451 (df_add_problem): Make param const.
27452
27453 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
27454
27455 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
27456 inter-unit moves to/from vector registers are enabled. Do not disable
27457 for TARGET_MMX.
27458
27459 2016-04-27 David Malcolm <dmalcolm@redhat.com>
27460
27461 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
27462 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
27463 #define to...
27464 (enum df_problem_id): ...this new enum.
27465 (struct df_problem): Convert field "id" from "int" to
27466 enum df_problem_id.
27467
27468 2016-04-27 David Malcolm <dmalcolm@redhat.com>
27469
27470 * rtl.def: Update comment for "things in the instruction chain" to
27471 reflect the removal of the leading "i" field for INSN_UID in
27472 r210360. Fix bogus apostrophe.
27473
27474 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
27475
27476 * config/i386/i386.md
27477 (lea arith with mem operand + setcc peephole2): Set operator mode.
27478
27479 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
27480
27481 PR target/70155
27482 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
27483 (dimode_scalar_to_vector_candidate_p): This.
27484 (timode_scalar_to_vector_candidate_p): New function.
27485 (scalar_to_vector_candidate_p): Likewise.
27486 (timode_check_non_convertible_regs): Likewise.
27487 (timode_remove_non_convertible_regs): Likewise.
27488 (remove_non_convertible_regs): Likewise.
27489 (remove_non_convertible_regs): Renamed to ...
27490 (dimode_remove_non_convertible_regs): This.
27491 (scalar_chain::~scalar_chain): Make it virtual.
27492 (scalar_chain::compute_convert_gain): Make it pure virtual.
27493 (scalar_chain::mark_dual_mode_def): Likewise.
27494 (scalar_chain::convert_insn): Likewise.
27495 (scalar_chain::convert_registers): Likewise.
27496 (scalar_chain::add_to_queue): Make it protected.
27497 (scalar_chain::emit_conversion_insns): Likewise.
27498 (scalar_chain::replace_with_subreg): Likewise.
27499 (scalar_chain::replace_with_subreg_in_insn): Likewise.
27500 (scalar_chain::convert_op): Likewise.
27501 (scalar_chain::convert_reg): Likewise.
27502 (scalar_chain::make_vector_copies): Likewise.
27503 (scalar_chain::convert_registers): New pure virtual function.
27504 (class dimode_scalar_chain): New class.
27505 (class timode_scalar_chain): Likewise.
27506 (scalar_chain::mark_dual_mode_def): Renamed to ...
27507 (dimode_scalar_chain::mark_dual_mode_def): This.
27508 (timode_scalar_chain::mark_dual_mode_def): New function.
27509 (timode_scalar_chain::convert_insn): Likewise.
27510 (dimode_scalar_chain::convert_registers): Likewise.
27511 (scalar_chain::compute_convert_gain): Renamed to ...
27512 (dimode_scalar_chain::compute_convert_gain): This.
27513 (scalar_chain::replace_with_subreg): Renamed to ...
27514 (dimode_scalar_chain::replace_with_subreg): This.
27515 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
27516 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
27517 (scalar_chain::make_vector_copies): Renamed to ...
27518 (dimode_scalar_chain::make_vector_copies): This.
27519 (scalar_chain::convert_reg): Renamed to ...
27520 (dimode_scalar_chain::convert_reg ): This.
27521 (scalar_chain::convert_op): Renamed to ...
27522 (dimode_scalar_chain::convert_op): This.
27523 (scalar_chain::convert_insn): Renamed to ...
27524 (dimode_scalar_chain::convert_insn): This.
27525 (scalar_chain::convert): Call convert_registers.
27526 (convert_scalars_to_vector): Change to scalar_chain pointer to
27527 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
27528 in 32-bit mode. Delete scalar_chain pointer. Call
27529 free_dominance_info in 64-bit mode.
27530 (pass_stv::gate): Remove TARGET_64BIT check.
27531 (ix86_option_override): Put the 64-bit STV pass before the CSE
27532 pass.
27533
27534 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
27535
27536 * dwarf2out.h (struct dw_loc_descr_node): Remove the
27537 dw_loc_frame_offset field.
27538 * dwarf2out.c (new_loc_descr): Likewise.
27539 (resolve_args_picking_1): Turn the VISITED hash set into a
27540 FRAME_OFFSET hash map. Use it to associate a frame offset to
27541 visited nodes. Remove uses of the CHECKING_P macro.
27542 (resolve_args_picking): Update call to resolve_args_picking_1.
27543
27544 2016-04-27 Martin Liska <mliska@suse.cz>
27545
27546 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
27547 (free_loop_data): Release vuses of groups.
27548
27549 2016-04-27 Bin Cheng <bin.cheng@arm.com>
27550
27551 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
27552 instead of redundant use_id and boolean have_use_for.
27553 (struct iv_use): Change sub_id into group_id. Remove field next.
27554 Move fields: related_cands, n_map_members, cost_map and selected
27555 to ...
27556 (struct iv_group): ... here. New structure.
27557 (struct iv_common_cand): Use structure declaration directly.
27558 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
27559 (MAX_CONSIDERED_USES): Rename macro to ...
27560 (MAX_CONSIDERED_GROUPS): ... here.
27561 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
27562 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
27563 (dump_uses): Rename to ...
27564 (dump_groups): ... here. Update all uses.
27565 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
27566 (find_induction_variables): Refactor format of dump information.
27567 (record_sub_use): Delete.
27568 (record_use): Update all uses.
27569 (record_group): New function.
27570 (record_group_use, find_interesting_uses_op): Call above functions.
27571 Update all uses.
27572 (find_interesting_uses_cond): Ditto.
27573 (group_compare_offset): New function.
27574 (split_all_small_groups): Rename to ...
27575 (split_small_address_groups_p): ... here. Update all uses.
27576 (split_address_groups): Update all uses.
27577 (find_interesting_uses): Refactor format of dump information.
27578 (add_candidate_1): Update all uses. Remove redundant check on iv,
27579 base and step.
27580 (add_candidate, record_common_cand): Remove redundant assert.
27581 (add_iv_candidate_for_biv): Update use.
27582 (add_iv_candidate_derived_from_uses): Update all uses.
27583 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
27584 (alloc_use_cost_map): Ditto.
27585 (set_use_iv_cost, get_use_iv_cost): Rename to ...
27586 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
27587 (determine_use_iv_cost_generic): Ditto.
27588 (determine_group_iv_cost_generic): Ditto.
27589 (determine_use_iv_cost_address): Ditto.
27590 (determine_group_iv_cost_address): Ditto.
27591 (determine_use_iv_cost_condition): Ditto.
27592 (determine_group_iv_cost_cond): Ditto.
27593 (determine_use_iv_cost): Ditto.
27594 (determine_group_iv_cost): Ditto.
27595 (set_autoinc_for_original_candidates): Update all uses.
27596 (find_iv_candidates): Update all uses. Refactor dump information.
27597 (determine_use_iv_costs): Ditto.
27598 (determine_iv_costs): Ditto.
27599 (iv_ca_cand_for_use): Rename to ...
27600 (iv_ca_cand_for_group): ... here. Update all uses.
27601 (iv_ca_add_use, iv_ca_add_group): Ditto.
27602 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
27603 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
27604 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
27605 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
27606 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
27607 (create_new_iv, adjust_iv_update_pos): Ditto.
27608 (rewrite_use_address): Delete.
27609 (rewrite_use_address_1): Rename to ...
27610 (rewrite_use_address): ... here.
27611 (rewrite_use_compare): Update all uses.
27612 (rewrite_use): Delete.
27613 (rewrite_uses): Rename to ...
27614 (rewrite_groups): ... here. Update all uses.
27615 (remove_unused_ivs, free_loop_data): Update all uses.
27616 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
27617
27618 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27619
27620 * rtlanal.c (nonzero_bits1): Convert preprocessor check
27621 for WORD_REGISTER_OPERATIONS to runtime check.
27622
27623 2016-04-27 Richard Biener <rguenther@suse.de>
27624
27625 PR ipa/70760
27626 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
27627 aggregate_value_p to determine if a function result is
27628 returned by reference.
27629 (ipa_pta_execute): Functions having their address taken are
27630 not automatically nonlocal.
27631
27632 2016-04-27 Jakub Jelinek <jakub@redhat.com>
27633
27634 PR sanitizer/70683
27635 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
27636 * fold-const.c (operand_equal_p): If flag_checking and
27637 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
27638 and if it returns non-zero, assert iterative_hash_expr on both
27639 args is the same.
27640
27641 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
27642
27643 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
27644
27645 2016-04-27 Nick Clifton <nickc@redhat.com>
27646
27647 PR middle-end/49889
27648 * varasm.c (merge_weak): Generate an error if an attempt is made
27649 to convert a non-weak static function into a weak, public function.
27650
27651 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
27652
27653 * params.def (MAX_PARTITION_SIZE): New param.
27654 * doc/invoke.texi: Document lto-max-partition.
27655
27656 2016-04-27 Richard Biener <rguenther@suse.de>
27657
27658 PR ipa/70785
27659 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
27660 function cummulating used_from_other_partition, externally_visible
27661 and force_output from aliases.
27662 (refered_from_nonlocal_var): Likewise.
27663 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
27664 node flags properly.
27665
27666 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
27667
27668 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
27669 (-Wmemset-elt-size): New item.
27670
27671 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
27672
27673 PR ada/70759
27674 * stor-layout.h (internal_reference_types): Delete.
27675 * stor-layout.c (reference_types_internal): Likewise.
27676 (internal_reference_types): Likewise.
27677 (layout_type) <REFERENCE_TYPE>: Adjust.
27678
27679 2016-04-27 Jakub Jelinek <jakub@redhat.com>
27680
27681 PR sanitizer/70683
27682 * tree.h (inchash::add_expr): Add FLAGS argument.
27683 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
27684 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
27685 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
27686 Formatting fix. Adjust recursive calls. For tcc_comparison,
27687 if swap_tree_comparison (code) is smaller than code, hash that
27688 and arguments in the other order. Hash CONVERT_EXPR the same
27689 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
27690 of ADDR_EXPR of decl as the decl itself. Add or remove
27691 OEP_ADDRESS_OF from recursive flags as needed. For
27692 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
27693 operands commutatively and only the third one normally.
27694 For internal CALL_EXPR hash in CALL_EXPR_IFN.
27695
27696 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
27697
27698 * config/rtems.h (LIB_SPEC): Add -latomic.
27699
27700 2016-04-27 Joel Sherrill <joel@rtems.org>
27701
27702 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
27703 xilink.ld and flags not relevant to RTEMS.
27704
27705 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
27706
27707 * toplev.c (backend_init_target): Avoid calling init_reload when using
27708 LRA.
27709
27710 2016-04-26 Jakub Jelinek <jakub@redhat.com>
27711
27712 * reorg.c (try_merge_delay_insns): Declare i and j inside the
27713 for loops rather than one for the whole function.
27714
27715 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
27716
27717 * match.pd (X + CST CMP X): New transformation.
27718
27719 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
27720
27721 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
27722 * fold-const.c (fold_binary_loc): Remove 2 transformations
27723 superseded by match.pd.
27724 * match.pd (x+x -> x*2): Generalize to integers.
27725
27726 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
27727
27728 * config/i386/i386.md (operation on memory peephole): Duplicate an
27729 existing peephole and adapt it to match lea rather than an operation
27730 that clobbers CC.
27731
27732 PR rtl-optimization/57193
27733 * opts.c (default_options_table): Add OPT_frename_registers at -O2
27734 and above.
27735 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
27736
27737 2016-04-26 Bin Cheng <bin.cheng@arm.com>
27738
27739 * tree-if-conv.c (any_pred_load_store): New static variable.
27740 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
27741 any_pred_load_store instead of and_mask_load_store.
27742 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
27743 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
27744 (combine_blocks, tree_if_conversion): Ditto.
27745
27746 2016-04-26 Bin Cheng <bin.cheng@arm.com>
27747
27748 PR tree-optimization/70771
27749 PR tree-optimization/70775
27750 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
27751 virtual PHI nodes. Delete parameter.
27752 (if_convertible_loop_p_1): Delete argument to above function.
27753 (predicate_all_scalar_phis): Delete code handling single-argument
27754 PHIs.
27755 (tree_if_conversion): Mark and update virtual SSA.
27756
27757 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27758
27759 PR target/61821
27760 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
27761 (x86_elf_aligned_common): Rename to ...
27762 (x86_elf_aligned_decl_common): ... this.
27763 Add decl arg. Switch to .lbss for largecomm object. Use
27764 LARGECOMM_SECTION_ASM_OP.
27765 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
27766 renaming.
27767 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
27768 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
27769 Pass new decl arg.
27770 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27771 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
27772
27773 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27774
27775 PR target/59407
27776 * config/i386/i386.c (SECTION_LARGE): Define.
27777 (x86_64_elf_select_section): Set it for large data/bss sections.
27778 Only clear SECTION_WRITE for .lrodata.
27779 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
27780 data/bss sections.
27781 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
27782 * varasm.c (default_elf_asm_named_section): Grow flagchars.
27783 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
27784 SECTION_MACH_DEP.
27785 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
27786 * doc/tm.texi: Regenerate.
27787
27788 2016-04-26 Jakub Jelinek <jakub@redhat.com>
27789
27790 PR bootstrap/70704
27791 * configure.ac (--enable-checking): Document extra flag, for
27792 non-release builds default to --enable-checking=yes,extra.
27793 If misc checking and extra checking, define CHECKING_P to 2 instead
27794 of 1.
27795 * common.opt (fchecking=): Add.
27796 * doc/invoke.texi (-fchecking=): Document.
27797 * doc/install.texi: Document --enable-checking changes.
27798 * configure: Regenerated.
27799 * config.in: Regenerated.
27800
27801 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
27802
27803 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
27804 attribute instead of which_alternative.
27805 * config/i386/sse.md (*mov<mode>_internal): Ditto.
27806 Use EXT_REX_SSE_REG_P where appropriate.
27807
27808 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
27809
27810 * config/i386/predicates.md (const0_operand): Do not match
27811 const_wide_int code.
27812 (const1_operand): Ditto.
27813
27814 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
27815
27816 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
27817 for SSE constm1 operands and TARGET_AVX512VL.
27818 (*movti_internal): Ditto.
27819 (*mov<mode>_or): Use constm1_operand predicate.
27820 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
27821 for SSE vector_all_ones operands and TARGET_AVX512VL.
27822 * config/i386/predicates.md (constm1_operand): New predicate.
27823 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
27824 emission of constant -1 load.
27825
27826 2016-04-25 Jason Merrill <jason@redhat.com>
27827
27828 * gdbinit.in: Skip is-a.h.
27829
27830 * attribs.c (register_scoped_attributes): Fix logic.
27831 * attribs.h: Declare register_scoped_attributes.
27832
27833 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27834
27835 * config/rs6000/rs6000-builtin.def: Correct pasto error for
27836 stxvd2x and stxvw4x built-in functions.
27837
27838 2016-04-25 DJ Delorie <dj@redhat.com>
27839
27840 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
27841 (ashrhi3): Likewise.
27842 (lshrhi3): Likewise.
27843
27844 2016-04-25 Richard Biener <rguenther@suse.de>
27845
27846 PR tree-optimization/70780
27847 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
27848 wasn't visited yet.
27849 (compute_antic): Mark blocks with abnormal preds as visited as
27850 they have a final empty antic-in solution already.
27851
27852 2016-04-25 Michael Collison <michael.collison@linaro.org>
27853
27854 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
27855
27856 2016-04-25 Michael Collison <michael.collison@linaro.org>
27857
27858 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
27859 mode is VQI to improve mixed mode vectorization.
27860 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
27861 define_insn to match low half of signed vaddw.
27862 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
27863 define_insn to match high half of signed vaddw.
27864 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
27865 define_insn to match low half of unsigned vaddw.
27866 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
27867 define_insn to match high half of unsigned vaddw.
27868 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
27869 (arm_simd_check_vect_par_cnst_half_p): Likewise.
27870 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
27871 for new function.
27872 (arm_simd_check_vect_par_cnst_half_p): Likewise.
27873 * config/arm/predicates.md (vect_par_constant_high): Support
27874 big endian and simplify by calling
27875 arm_simd_check_vect_par_cnst_half
27876 (vect_par_constant_low): Likewise.
27877
27878 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
27879
27880 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
27881 predicate for operand 2.
27882
27883 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
27884 H.J. Lu <hongjiu.lu@intel.com>
27885
27886 * config/i386/i386-protos.h (standard_sse_constant_p): Add
27887 machine_mode argument.
27888 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
27889 constm1_rtx operands. For VOIDmode constants, get mode from
27890 pred_mode. Check mode size if the mode is supported by ABI.
27891 (standard_sse_constant_opcode): Do not use standard_constant_p.
27892 Strictly check ABI support for all-ones operands.
27893 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
27894 immediates. Update calls to standard_sse_constant_p.
27895 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
27896 (ix86_rtx_costs): Ditto.
27897 * config/i386/i386.md (*movxi_internal_avx512f): Use
27898 nonimmediate_or_sse_const_operand instead of vector_move_operand.
27899 Use (v,BC) alternative instead of (v,C). Use register_operand
27900 checks instead of MEM_P.
27901 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
27902 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
27903 isa attribute. Use register_operand checks instead of MEM_P.
27904 (*movti_internal): Use nonimmediate_or_sse_const_operand for
27905 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
27906 alternative and corresponding sse2 isa attribute.
27907 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
27908 to standard_sse_constant_p.
27909 (FP constant splitters): Ditto.
27910 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
27911 (C): Ditto.
27912 * config/i386/predicates.md (constm1_operand): Remove.
27913 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
27914 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
27915 vector_all_ones_operand instead of constm1_operand.
27916
27917 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27918
27919 * print-rtl.c (print_rtx_insn_vec): New function.
27920 * print-rtl.h: New prototype.
27921 * store-motion.c (struct st_expr): Make avail_stores a vector.
27922 (st_expr_entry): Adjust.
27923 (free_st_expr_entry): Likewise.
27924 (print_store_motion_mems): Likewise.
27925 (find_moveable_store): Likewise.
27926 (compute_store_table): Likewise.
27927 (delete_store): Likewise.
27928 (build_store_vectors): Likewise.
27929
27930 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27931
27932 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
27933
27934 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27935
27936 * vec.h (vec_safe_contains): New function.
27937 (vec::contains): Likewise.
27938 (vec::begin): Likewise.
27939 (vec::end): Likewise.
27940
27941 2016-04-23 Jakub Jelinek <jakub@redhat.com>
27942
27943 PR sanitizer/70712
27944 * cfgexpand.c (expand_stack_vars): Fix typo.
27945
27946 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
27947
27948 * system.h (list, map, set, vector): Include conditionally.
27949 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
27950 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
27951 * ipa-icf.c (INCLUDE_LIST): Define.
27952 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
27953 * config/sh/sh.c (INCLUDE_VECTOR): Define.
27954 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
27955 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
27956 * cp/logic.cc (INCLUDE_LIST): Define.
27957 * fortran/trans-common.c (INCLUDE_MAP): Define.
27958
27959 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
27960
27961 * auto-profile.c: Remove <string.h> include.
27962 * ipa-icf-gimple.c: Remove <list> include.
27963 * diagnostic.c: Remove <new> include.
27964 * genmatch.c: Likewise.
27965 * pretty-print.c: Likewise.
27966 * toplev.c: Likewise
27967 * c/c-objc-common.c: Likewise.
27968 * cp/error.c: Likewise.
27969 * fortran/error.c: Likewise.
27970
27971 2016-04-22 Richard Biener <rguenther@suse.de>
27972
27973 * lto-streamer-in.c (input_ssa_names): Do not allocate
27974 GIMPLE_NOP for all SSA names.
27975 * lto-streamer-out.c (output_ssa_names): Do not output
27976 SSA names that should have been released.
27977
27978 2016-04-22 Richard Biener <rguenther@suse.de>
27979
27980 PR tree-optimization/70740
27981 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
27982 VDEF.
27983
27984 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
27985
27986 PR target/70750
27987 * config/i386/predicates.md (call_insn_operand): Replace
27988 sibcall_memory_operand with memory_operand.
27989
27990 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
27991
27992 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
27993 has_single_use() tests.
27994 (register_edge_assert_for_1): Likewise.
27995 (find_assert_locations_1): Check the liveness bitmap instead of
27996 checking has_single_use().
27997
27998 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
27999
28000 PR target/70728
28001 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
28002 Extract AVX-512BW constraint from AVX.
28003
28004 2016-04-21 Richard Biener <rguenther@suse.de>
28005
28006 PR tree-optimization/70725
28007 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
28008 for phi_convertible_by_degenerating_args.
28009 (predicate_all_scalar_phis): Handle single-argument PHIs.
28010
28011 2016-04-21 Richard Biener <rguenther@suse.de>
28012
28013 PR middle-end/70747
28014 * fold-const.c (fold_comparison): Return properly typed
28015 constant boolean.
28016
28017 2016-04-21 Bin Cheng <bin.cheng@arm.com>
28018
28019 PR tree-optimization/70715
28020 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
28021 after expanding BASE using expand_simple_operations.
28022
28023 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
28024
28025 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
28026 New transformations.
28027
28028 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
28029
28030 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
28031
28032 2016-04-20 Jan Hubicka <jh@suse.cz>
28033
28034 * ipa-inline.c (can_inline_edge_p): Pass caller info to
28035 ultiimate_alias_target.
28036 (update_callee_keys): Likewise.
28037 (lookup_recursive_calls): Likewise.
28038 (speculation_useful_p): Likewise.
28039
28040 2016-04-20 Jan Hubicka <jh@suse.cz>
28041
28042 PR ipa/70018
28043 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
28044 (set_nothrow_flag_1): ... this; handle interposition correctly;
28045 recurse on aliases and thunks.
28046 (cgraph_node::set_nothrow_flag): New.
28047 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
28048 functions compiled with non-call exceptions that binds to current
28049 def.
28050 (propagate_nothrow): Be safe WRT interposition.
28051 * cgraph.h (set_nothrow_flag): Update prototype.
28052
28053 2016-04-18 Jan Hubicka <jh@suse.cz>
28054
28055 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
28056 max_loop_iterations_int.
28057 (tree_unswitch_outer_loop): Likewise.
28058
28059 2016-04-20 Bin Cheng <bin.cheng@arm.com>
28060
28061 PR tree-optimization/69489
28062 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
28063 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
28064 Revise dump message.
28065 (if_convertible_bb_p): Remove check on edge count of basic block's
28066 predecessors.
28067
28068 2016-04-20 Bin Cheng <bin.cheng@arm.com>
28069
28070 PR tree-optimization/56625
28071 PR tree-optimization/69489
28072 * tree-data-ref.h (DR_INNERMOST): New macro.
28073 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
28074 hashing struct innermost_loop_behavior.
28075 (ref_DR_map): Remove.
28076 (innermost_DR_map): New map.
28077 (baseref_DR_map): Revise comment.
28078 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
28079 to innermost_DR_map accroding to its innermost loop behavior.
28080 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
28081 to its innermost loop behavior.
28082 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
28083 Add initialization for innermost_DR_map. Record memory reference
28084 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
28085 have innermost loop behavior.
28086 (if_convertible_loop_p): Remove release for ref_DR_map. Release
28087 innermost_DR_map.
28088
28089 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
28090
28091 * config/i386/i386.md (*lea<mode>_general_1): Rename from
28092 *lea_general_1. Use explicit SWI12 mode interator.
28093 (*lea<mode>_general_2): Rename from *lea_general_2.
28094 Use explicit SWI12 mode interator.
28095 (*lea<mode>_general_3): Rename from *lea_general_3.
28096 Use explicit SWI12 mode interator.
28097 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
28098 Use explicit SWI12 mode interator.
28099 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
28100 Use explicit SWI48 mode interator.
28101
28102 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
28103
28104 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
28105 Short-cut unaligned load and store cases. Handle all integer
28106 vector modes.
28107 (ix86_expand_vector_move_misalign): Short-cut unaligned load
28108 and store cases. Call ix86_avx256_split_vector_move_misalign
28109 directly without checking mode class.
28110
28111 2016-04-20 Andrew Pinski <apinski@cavium.com>
28112 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28113
28114 PR target/64971
28115 * config/aarch64/aarch64.md (sibcall): Force call
28116 address to be DImode for ILP32.
28117 (sibcall_value): Likewise.
28118
28119 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
28120
28121 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
28122
28123 2016-04-20 Richard Biener <rguenther@suse.de>
28124
28125 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
28126 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
28127 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
28128 (maybe_push_res_to_seq): Adjust.
28129 * gimple-fold.c (maybe_build_generic_op): Likewise.
28130
28131 2016-04-20 Marek Polacek <polacek@redhat.com>
28132
28133 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
28134 rather than true.
28135
28136 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
28137
28138 * config/i386/sse.md (vec_unpacks_lo_hi): Always
28139 use kmovw to support AVX512F target.
28140
28141 2016-04-20 Bin Cheng <bin.cheng@arm.com>
28142
28143 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
28144
28145 2016-04-20 Marek Polacek <polacek@redhat.com>
28146
28147 PR tree-optimization/70725
28148 * tree-if-conv.c (is_false_predicate): New function.
28149 (predicate_mem_writes): Use it.
28150
28151 2016-04-20 Richard Biener <rguenther@suse.de>
28152
28153 PR tree-optimization/70726
28154 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
28155 shift amounts from a pattern stmt operand.
28156
28157 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
28158
28159 PR target/70674
28160 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
28161 stack_restore_from_fpr pattern when restoring r15.
28162 (s390_optimize_prologue): Strip away the memory barrier in the
28163 parallel when trying to get rid of restore insns.
28164 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
28165 definition for loading the stack pointer from an FPR. Compared to
28166 the normal move insn this pattern includes a full memory barrier.
28167
28168 2016-04-19 Jakub Jelinek <jakub@redhat.com>
28169
28170 PR middle-end/70680
28171 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
28172 implicitly linear or lastprivate iterator on the outer context.
28173
28174 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
28175
28176 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
28177 alignment check.
28178 * config/i386/i386.md (ssememalign): Removed.
28179 * config/i386/sse.md: Remove ssememalign attribute from patterns.
28180
28181 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
28182
28183 PR target/69201
28184 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
28185 const short * to __builtin_ia32_loaddquhi512_mask.
28186 (_mm512_maskz_loadu_epi16): Likewise.
28187 (_mm512_mask_storeu_epi16): Pass short * to
28188 __builtin_ia32_storedquhi512_mask.
28189 (_mm512_mask_loadu_epi8): Pass const char * to
28190 __builtin_ia32_loaddquqi512_mask.
28191 (_mm512_maskz_loadu_epi8): Likewise.
28192 (_mm512_mask_storeu_epi8): Pass char * to
28193 __builtin_ia32_storedquqi512_mask.
28194 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
28195 const double * to __builtin_ia32_loadupd512_mask.
28196 (_mm512_mask_loadu_pd): Likewise.
28197 (_mm512_maskz_loadu_pd): Likewise.
28198 (_mm512_storeu_pd): Pass double * to
28199 __builtin_ia32_storeupd512_mask.
28200 (_mm512_mask_storeu_pd): Likewise.
28201 (_mm512_loadu_ps): Pass const float * to
28202 __builtin_ia32_loadups512_mask.
28203 (_mm512_mask_loadu_ps): Likewise.
28204 (_mm512_maskz_loadu_ps): Likewise.
28205 (_mm512_storeu_ps): Pass float * to
28206 __builtin_ia32_storeups512_mask.
28207 (_mm512_mask_storeu_ps): Likewise.
28208 (_mm512_mask_loadu_epi64): Pass const long long * to
28209 __builtin_ia32_loaddqudi512_mask.
28210 (_mm512_maskz_loadu_epi64): Likewise.
28211 (_mm512_mask_storeu_epi64): Pass long long *
28212 to __builtin_ia32_storedqudi512_mask.
28213 (_mm512_loadu_si512): Pass const int * to
28214 __builtin_ia32_loaddqusi512_mask.
28215 (_mm512_mask_loadu_epi32): Likewise.
28216 (_mm512_maskz_loadu_epi32): Likewise.
28217 (_mm512_storeu_si512): Pass int * to
28218 __builtin_ia32_storedqusi512_mask.
28219 (_mm512_mask_storeu_epi32): Likewise.
28220 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
28221 char * to __builtin_ia32_storedquqi256_mask.
28222 (_mm_mask_storeu_epi8): Likewise.
28223 (_mm256_mask_loadu_epi16): Pass const short * to
28224 __builtin_ia32_loaddquhi256_mask.
28225 (_mm256_maskz_loadu_epi16): Likewise.
28226 (_mm_mask_loadu_epi16): Pass const short * to
28227 __builtin_ia32_loaddquhi128_mask.
28228 (_mm_maskz_loadu_epi16): Likewise.
28229 (_mm256_mask_loadu_epi8): Pass const char * to
28230 __builtin_ia32_loaddquqi256_mask.
28231 (_mm256_maskz_loadu_epi8): Likewise.
28232 (_mm_mask_loadu_epi8): Pass const char * to
28233 __builtin_ia32_loaddquqi128_mask.
28234 (_mm_maskz_loadu_epi8): Likewise.
28235 (_mm256_mask_storeu_epi16): Pass short * to.
28236 __builtin_ia32_storedquhi256_mask.
28237 (_mm_mask_storeu_epi16): Pass short * to.
28238 __builtin_ia32_storedquhi128_mask.
28239 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
28240 const double * to __builtin_ia32_loadupd256_mask.
28241 (_mm256_maskz_loadu_pd): Likewise.
28242 (_mm_mask_loadu_pd): Pass onst double * to
28243 __builtin_ia32_loadupd128_mask.
28244 (_mm_maskz_loadu_pd): Likewise.
28245 (_mm256_mask_storeu_pd): Pass double * to
28246 __builtin_ia32_storeupd256_mask.
28247 (_mm_mask_storeu_pd): Pass double * to
28248 __builtin_ia32_storeupd128_mask.
28249 (_mm256_mask_loadu_ps): Pass const float * to
28250 __builtin_ia32_loadups256_mask.
28251 (_mm256_maskz_loadu_ps): Likewise.
28252 (_mm_mask_loadu_ps): Pass const float * to
28253 __builtin_ia32_loadups128_mask.
28254 (_mm_maskz_loadu_ps): Likewise.
28255 (_mm256_mask_storeu_ps): Pass float * to
28256 __builtin_ia32_storeups256_mask.
28257 (_mm_mask_storeu_ps): ass float * to
28258 __builtin_ia32_storeups128_mask.
28259 (_mm256_mask_loadu_epi64): Pass const long long * to
28260 __builtin_ia32_loaddqudi256_mask.
28261 (_mm256_maskz_loadu_epi64): Likewise.
28262 (_mm_mask_loadu_epi64): Pass const long long * to
28263 __builtin_ia32_loaddqudi128_mask.
28264 (_mm_maskz_loadu_epi64): Likewise.
28265 (_mm256_mask_storeu_epi64): Pass long long * to
28266 __builtin_ia32_storedqudi256_mask.
28267 (_mm_mask_storeu_epi64): Pass long long * to
28268 __builtin_ia32_storedqudi128_mask.
28269 (_mm256_mask_loadu_epi32): Pass const int * to
28270 __builtin_ia32_loaddqusi256_mask.
28271 (_mm256_maskz_loadu_epi32): Likewise.
28272 (_mm_mask_loadu_epi32): Pass const int * to
28273 __builtin_ia32_loaddqusi128_mask.
28274 (_mm_maskz_loadu_epi32): Likewise.
28275 (_mm256_mask_storeu_epi32): Pass int * to
28276 __builtin_ia32_storedqusi256_mask.
28277 (_mm_mask_storeu_epi32): Pass int * to
28278 __builtin_ia32_storedqusi128_mask.
28279 * config/i386/i386-builtin-types.def (PCSHORT): New.
28280 (PINT64): Likewise.
28281 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
28282 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
28283 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
28284 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
28285 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
28286 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
28287 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
28288 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
28289 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
28290 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
28291 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
28292 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
28293 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
28294 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
28295 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
28296 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
28297 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
28298 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
28299 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
28300 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
28301 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
28302 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
28303 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
28304 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
28305 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
28306 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
28307 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
28308 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
28309 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
28310 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
28311 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
28312 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
28313 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
28314 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
28315 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
28316 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
28317 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
28318 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
28319 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
28320 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
28321 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
28322 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
28323 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
28324 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
28325 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
28326 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
28327 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
28328 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
28329 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
28330 use UNSPEC_STOREU.
28331 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
28332 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
28333 load nor store.
28334 (ix86_expand_vector_move_misalign): Likewise.
28335 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
28336 to scalar function prototype for unaligned load/store builtins.
28337 (ix86_expand_special_args_builtin): Updated.
28338 * config/i386/sse.md (UNSPEC_LOADU): Removed.
28339 (UNSPEC_STOREU): Likewise.
28340 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
28341 (VI_ULOADSTORE_F_AVX512VL): Likewise.
28342 (ssescalarsize): Handle V4TI, V2TI and V1TI.
28343 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
28344 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
28345 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
28346 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
28347 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
28348 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
28349 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
28350 (<avx512>_storedqu<mode>_mask): Likewise.
28351 (*sse4_2_pcmpestr_unaligned): Likewise.
28352 (*sse4_2_pcmpistr_unaligned): Likewise.
28353 (*mov<mode>_internal): Renamed to ...
28354 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
28355 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
28356 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
28357 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
28358
28359 2016-04-19 Richard Biener <rguenther@suse.de>
28360
28361 PR tree-optimization/70171
28362 * tree-ssa-phiprop.c: Include stor-layout.h.
28363 (phiprop_insert_phi): Handle the aggregate copy case.
28364 (propagate_with_phi): Likewise.
28365
28366 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
28367
28368 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
28369 instead of simplify_gen_subreg (... , 0).
28370 (ix86_delegitimize_address): Ditto.
28371 (ix86_split_divmod): Ditto.
28372 (ix86_split_copysign_const): Ditto.
28373 (ix86_split_copysign_var): Ditto.
28374 (ix86_expand_args_builtin): Ditto.
28375 (ix86_expand_round_builtin): Ditto.
28376 (ix86_expand_special_args_builtin): Ditto.
28377 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
28378 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
28379 (udivmodqi4): Ditto.
28380 (absneg splitters): Ditto.
28381 (*jcc_bt<mode>_1): Ditto.
28382
28383 2016-04-19 Richard Biener <rguenther@suse.de>
28384
28385 PR tree-optimization/70724
28386 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
28387 restoring out from ...
28388 (free_scc_vn): ... here.
28389 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
28390 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
28391 tail merging.
28392 (pass_fre::execute): Restore SSA info.
28393
28394 2016-04-19 Richard Biener <rguenther@suse.de>
28395
28396 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
28397 * gimple-walk.c (walk_gimple_op): Initialize it.
28398 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
28399 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
28400 remapping SSA names of defs.
28401 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
28402 adjustment.
28403
28404 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
28405
28406 PR middle-end/70689
28407 * lra-constraints.c (equiv_substition_p): New.
28408 (process_alt_operands): Use it.
28409 (swap_operands): Swap it.
28410 (curr_insn_transform): Update it.
28411
28412 2016-04-18 Michael Matz <matz@suse.de>
28413
28414 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
28415 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
28416 * tree-core.h (tree_type_common.align): Use bit-field.
28417 (tree_type_common.spare): New.
28418 (tree_decl_common.off_align): Make smaller.
28419 (tree_decl_common.align): Use bit-field.
28420
28421 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
28422 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
28423 (scan_sharing_clauses): Ditto.
28424 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
28425 (omp_finish_file): Ditto.
28426 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
28427 (layout_decl): Ditto.
28428 (relayout_decl): Ditto.
28429 (finalize_record_size): Use SET_TYPE_ALIGN.
28430 (finalize_type_size): Ditto.
28431 (finish_builtin_struct): Ditto.
28432 (layout_type): Ditto.
28433 (initialize_sizetypes): Ditto.
28434 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
28435 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
28436 (lookup_field_for_decl): Use SET_DECL_ALIGN.
28437 (get_chain_field): Ditto.
28438 (get_trampoline_type): Ditto.
28439 (get_nl_goto_field): Ditto.
28440 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
28441 SET_DECL_ALIGN.
28442 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
28443 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
28444 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
28445 (build_qualified_type): Use SET_TYPE_ALIGN.
28446 (build_aligned_type, build_range_type_1): Ditto.
28447 (build_atomic_base): Ditto.
28448 (build_common_tree_nodes): Ditto.
28449 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
28450 (expand_one_stack_var_at): Ditto.
28451 * coverage.c (build_var): Use SET_DECL_ALIGN.
28452 * except.c (init_eh): Ditto.
28453 * function.c (assign_parm_setup_block): Ditto.
28454 * symtab.c (increase_alignment_1): Ditto.
28455 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
28456 * tree-vect-stmts.c (ensure_base_align): Ditto.
28457 * varasm.c (align_variable): Ditto.
28458 (assemble_variable): Ditto.
28459 (build_constant_desc): Ditto.
28460 (output_constant_def_contents): Ditto.
28461
28462 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
28463 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
28464 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
28465 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
28466 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
28467
28468 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
28469
28470 PR target/70708
28471 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
28472 replace %vmovsd with "%vmovq".
28473 (vec_concatv2df): Likewise.
28474
28475 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
28476
28477 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
28478 (*vec_extractv2si_0): Ditto.
28479 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
28480 (zero_extended_scalar_load_operand splitters): Ditto.
28481 (vec_extract splitters): Ditto.
28482 (*vec_extractv4si_0_zext): Ditto.
28483 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
28484 and lowpart_subreg.
28485 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
28486 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
28487 (*sse4_1_extractps): Use lowpart_subreg.
28488 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
28489
28490 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28491
28492 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
28493 gld requirements.
28494 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
28495 Mention Solaris 11 packaging changes.
28496 Update gas and gld requirements.
28497 Remove reference to pre-Solaris 10 bug.
28498 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
28499 systems and bugs.
28500 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
28501 with cc.
28502
28503 2016-04-17 Jan Hubicka <jh@suse.cz>
28504
28505 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
28506 max_loop_iterations_int.
28507
28508 2016-04-18 Richard Biener <rguenther@suse.de>
28509
28510 PR tree-optimization/43434
28511 * tree-ssa-structalias.c (struct vls_data): New.
28512 (visit_loadstore): Handle all pointer-based accesses.
28513 (compute_dependence_clique): Compute a bitmap of restrict tags
28514 assigned bases and pass it to visit_loadstore.
28515
28516 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
28517
28518 PR target/70711
28519 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
28520 armv8.1-a and armv8.1-a+crc.
28521
28522 2016-04-18 Richard Biener <rguenther@suse.de>
28523
28524 PR tree-optimization/70701
28525 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
28526 references after translating through a memcpy.
28527
28528 2016-04-18 Richard Biener <rguenther@suse.de>
28529
28530 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
28531 (compute_antic): ... here. For partial antic use regular
28532 postorder and scrap iteration.
28533 (compute_partial_antic_aux): Remove unused return value.
28534 (init_pre): Do not allocate postorder.
28535 (fini_pre): Do not free postorder.
28536
28537 2016-04-18 Richard Biener <rguenther@suse.de>
28538
28539 PR middle-end/37870
28540 * expmed.c (extract_bit_field_1): Remove broken case
28541 using a wider MODE_INT mode.
28542
28543 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
28544
28545 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
28546 unless compiling with at least GCC-4.8.
28547
28548 2016-04-17 Jan Hubicka <jh@suse.cz>
28549
28550 PR bootstrap/70706
28551 * graphite.c (graphite_finalize): Update call to
28552 tree_estimate_probability.
28553 * predict.h (tree_estimate_probability): Update prototype.
28554
28555 2016-04-17 Jan Hubicka <jh@suse.cz>
28556
28557 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
28558 (tree_estimate_probability): Likewise.
28559 (pass_profile::execute): Update.
28560 (report_predictor_hitrates): New function.
28561 * profile.c (compute_branch_probabilities): Use it.
28562 * predict.h (report_predictor_hitrates): Declare.
28563
28564 2016-04-17 Jan Hubicka <jh@suse.cz>
28565
28566 PR ipa/70018
28567 * cgraph.h (cgraph_node::set_const_flag,
28568 cgraph_node::set_pure_flag): Update prototype to return bool;
28569 update comment.
28570 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
28571 of interposable symbol are interposable, too.
28572 (cgraph_set_const_flag_1): Rename to ...
28573 (set_const_flag_1): ... this one; change to self recursive function
28574 instead of call_for_symbol_thunks_and_aliases. Handle correctly
28575 clearnig the flag in all variants and also virtual thunks of const
28576 functions are pure; track if any change was done.
28577 (cgraph_node::set_const_flag): Update.
28578 (struct set_pure_flag_info): New struct.
28579 (cgraph_set_pure_flag_1): Rename to ...
28580 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
28581 rather than pointer encoded flags; track if any changes was done;
28582 handle correctly clearning flag and setting flag of aliases already
28583 declared const.
28584 (cgraph_node::set_pure_flag): Update.
28585 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
28586
28587 2016-04-17 Tom de Vries <tom@codesourcery.com>
28588
28589 PR other/70433
28590 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
28591 backslash in label.
28592
28593 2016-04-17 Tom de Vries <tom@codesourcery.com>
28594
28595 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
28596 '{}<> ' as escape-for-record.
28597
28598 2016-04-17 Tom de Vries <tom@codesourcery.com>
28599
28600 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
28601 structure.
28602
28603 2016-04-17 Tom de Vries <tom@codesourcery.com>
28604
28605 PR other/70185
28606 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
28607 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
28608 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
28609 * passes.c (finish_optimization_passes): Only call
28610 finish_graph_dump_file if dfi->graph_dump_initialized.
28611 (execute_function_dump, pass_init_dump_file): Use
28612 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
28613
28614 2016-04-17 Tom de Vries <tom@codesourcery.com>
28615
28616 PR tree-optimization/70256
28617 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
28618 (debug_varmap): New function.
28619
28620 2016-04-17 Tom de Vries <tom@codesourcery.com>
28621
28622 PR other/70183
28623 * passes.c (pass_manager::register_pass): Propagate pflags.
28624
28625 2016-04-17 Tom de Vries <tom@codesourcery.com>
28626
28627 PR other/68875
28628 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
28629 * passes.c (pass_manager::pass_manager): Declare and init p_start in
28630 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
28631 check if it's equal to p_start.
28632 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
28633
28634 2016-04-15 Jan Hubicka <jh@suse.cz>
28635
28636 PR ipa/70018
28637 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
28638 function does not bind to current def.
28639 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
28640 handle conservatively calls to functions that does not need to bind
28641 to current def.
28642 (check_call): Update call of worse_state.
28643 (ignore_edge_for_nothrow): Update.
28644 (ignore_edge_for_pure_const): Likewise.
28645 (propagate_pure_const): Update calls to worse_state.
28646 (skip_function_for_local_pure_const): Reformat comments.
28647
28648 2016-04-15 Jan Hubicka <jh@suse.cz>
28649
28650 PR ipa/70018
28651 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
28652 (cgraph_node::function_symbol): Likewise.
28653 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
28654 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
28655 (symtab_node::ultimate_alias_target): Add REF parameter.
28656 (symtab_node::binds_to_current_def_p): Declare.
28657 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
28658 (cgraph_node::function_symbol): Likewise.
28659 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
28660 (cgraph_node::get_availability): Likewise.
28661 (cgraph_edge::binds_to_current_def_p): New inline function.
28662 (varpool_node::get_availability): Add REF parameter.
28663 (varpool_node::ultimate_alias_target): Likewise.
28664 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
28665 (symtab_node::binds_to_current_def_p): Likewise.
28666 * varpool.c (varpool_node::get_availability): Likewise.
28667
28668 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
28669
28670 PR target/70662
28671 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
28672 Fix mode size check.
28673
28674 2016-04-15 Jakub Jelinek <jakub@redhat.com>
28675
28676 * BASE-VER: Set to 7.0.0.
28677
28678 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
28679
28680 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
28681
28682 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28683
28684 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
28685 architecture revisions.
28686
28687 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
28688
28689 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
28690 * config/i386/i386.c (ix86_using_red_zone): No longer static.
28691 * config/i386/i386.md (stack decrement to push peepholes): Guard
28692 with !x86_using_red_zone ().
28693
28694 2016-04-15 Jakub Jelinek <jakub@redhat.com>
28695
28696 PR c++/70675
28697 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
28698 to dump_generic_node.
28699 (NIY): Pass also flags to do_niy.
28700
28701 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
28702
28703 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
28704 (simd_clone_vector_of_formal_parm_types)
28705 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
28706 (simd_clone_mangle, simd_clone_create)
28707 (simd_clone_adjust_return_type, create_tmp_simd_array)
28708 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
28709 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
28710 (ipa_simd_modify_function_body, simd_clone_linear_addend)
28711 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
28712 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
28713 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
28714 * omp-simd-clone.c: ... this new file.
28715 (simd_clone_vector_of_formal_parm_types): Make it static.
28716 * Makefile.in (OBJS): Add omp-simd-clone.o.
28717
28718 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
28719
28720 PR target/70662
28721 * config/i386/sse.md: Use proper memory operand modifiers.
28722
28723
28724 2016-04-15 Richard Biener <rguenther@suse.de>
28725 Alan Modra <amodra@gmail.com>
28726
28727 PR tree-optimization/70130
28728 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
28729 when alignment stays not the same and no not use the realign
28730 scheme then.
28731
28732 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
28733
28734 PR target/70669
28735 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
28736 direct move handlers for KFmode. Change TFmode handlers test from
28737 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
28738
28739 2016-04-14 Jakub Jelinek <jakub@redhat.com>
28740
28741 PR c++/70594
28742 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
28743 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
28744 (inlined_polymorphic_ctor_dtor_block_p): Use it.
28745 * tree-ssa-live.c (remove_unused_scope_block_p): When
28746 in_ctor_dtor_block, avoid discarding not just BLOCKs with
28747 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
28748 block_ultimate_origin is FUNCTION_DECL.
28749 (remove_unused_locals): If current_function_decl is
28750 polymorphic_ctor_dtor_p, pass initial true to
28751 remove_unused_scope_block_p' is_ctor_dtor_block.
28752
28753 2016-04-14 Martin Sebor <msebor@redhat.com>
28754
28755 PR c++/69517
28756 PR c++/70019
28757 PR c++/70588
28758 * doc/extend.texi (Variable Length): Revert.
28759
28760 2016-04-14 Marek Polacek <polacek@redhat.com>
28761 Jan Hubicka <hubicka@ucw.cz>
28762
28763 PR c++/70029
28764 * tree.c (verify_type): Disable the canonical type of main variant
28765 check.
28766
28767 2016-04-14 Jason Merrill <jason@redhat.com>
28768
28769 * cfgexpand.c, expr.c: Revert previous change.
28770
28771 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
28772
28773 PR middle-end/70643
28774 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
28775 when building a mem ref for the incoming reduction variable.
28776
28777 2016-04-14 Richard Biener <rguenther@suse.de>
28778
28779 PR tree-optimization/70614
28780 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
28781 loop if the evolution dropped to chrec_dont_know.
28782 (interpret_condition_phi): Likewise.
28783
28784 2016-04-14 Richard Biener <rguenther@suse.de>
28785
28786 PR tree-optimization/70623
28787 * tree-ssa-pre.c (changed_blocks): Make global ...
28788 (compute_antic): ... local here. Move and fix worklist
28789 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
28790 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
28791 worklist handling, dump when ANTIC_IN changed.
28792 (compute_partial_antic_aux): Remove worklist handling.
28793 (init_pre): Do not compute post dominators. Add a comment about
28794 the CFG order chosen.
28795 (fini_pre): Do not free post dominators.
28796
28797 2016-04-13 Martin Sebor <msebor@redhat.com>
28798
28799 PR c++/69517
28800 PR c++/70019
28801 PR c++/70588
28802 * doc/extend.texi (Variable Length): Document C++ specifics.
28803
28804 2016-04-13 Jakub Jelinek <jakub@redhat.com>
28805
28806 PR c++/70641
28807 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
28808 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
28809 eh edges have been purged.
28810
28811 PR c++/70594
28812 * tree-sra.c (create_access_replacement,
28813 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
28814 gets fancy name.
28815 * tree-pretty-print.c (dump_fancy_name): New function.
28816 (dump_decl_name, dump_generic_node): Use it.
28817
28818 2016-04-13 Jason Merrill <jason@redhat.com>
28819
28820 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
28821 * expr.c (expand_expr_real_1): Likewise.
28822
28823 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
28824
28825 * config/i386/i386.md (kunpckhi): Swap operands.
28826 (kunpcksi): Likewise.
28827 (kunpckdi): Likewise.
28828 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
28829 (vec_pack_trunc_<mode>): Likewise.
28830
28831 2016-04-13 Jakub Jelinek <jakub@redhat.com>
28832
28833 PR debug/70628
28834 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
28835
28836 PR middle-end/70633
28837 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
28838 gimplification turns some element into non-constant.
28839
28840 PR debug/70628
28841 * rtl.h (convert_memory_address_addr_space_1): New prototype.
28842 * explow.c (convert_memory_address_addr_space_1): No longer static,
28843 add NO_EMIT argument and don't call convert_modes if true, pass
28844 it down recursively, remove break after return.
28845 (convert_memory_address_addr_space): Adjust caller.
28846 * simplify-rtx.c (simplify_unary_operation_1): Call
28847 convert_memory_address_addr_space_1 instead of convert_memory_address,
28848 if it returns NULL, don't simplify.
28849
28850 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
28851
28852 PR target/70630
28853 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
28854
28855 2016-04-12 Jakub Jelinek <jakub@redhat.com>
28856
28857 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
28858 Bump the upper SIMDLEN limits, so that if the return type or
28859 characteristic type if the return type is void can be passed in
28860 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
28861 allowed.
28862
28863 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
28864
28865 PR target/70640
28866 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
28867 Do not use "=" constraint on an input constraint.
28868 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
28869 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
28870 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
28871 generates (neg (abs ...)) instead of (abs ...).
28872
28873 2016-04-12 Jakub Jelinek <jakub@redhat.com>
28874
28875 PR rtl-optimization/70596
28876 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
28877 just invalidate LRA data and reset them. Adjust dump wording.
28878
28879 2016-04-12 Martin Liska <mliska@suse.cz>
28880
28881 Revert
28882 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
28883
28884 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
28885 estimates here.
28886 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
28887 max_loop_iterations_int.
28888 (tree_unswitch_outer_loop): Likewise.
28889 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
28890 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
28891
28892 2016-04-12 Tom de Vries <tom@codesourcery.com>
28893
28894 PR tree-optimization/68756
28895 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
28896 instead of new_name.
28897
28898 2016-04-12 Jakub Jelinek <jakub@redhat.com>
28899
28900 PR tree-optimization/70602
28901 * tree-sra.c (generate_subtree_copies): Don't write anything into
28902 constant pool decls.
28903
28904 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
28905 regardless whether there are depend clauses or not.
28906
28907 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28908
28909 PR target/70381
28910 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
28911 target attribute and pragma from changing the -mfloat128
28912 and -mfloat128-hardware options.
28913
28914 * doc/extend.texi (Additional Floating Types): Document PowerPC
28915 __float128 restrictions.
28916
28917 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
28918
28919 PR target/70133
28920 * config/aarch64/driver-aarch64.c
28921 (aarch64_get_extension_string_for_isa_flags): New.
28922 (arch_extension): Rename to...
28923 (aarch64_arch_extension): ...This.
28924 (ext_to_feat_string): Rename to...
28925 (aarch64_extensions): ...This.
28926 (aarch64_core_data): Keep track of architecture extension flags.
28927 (cpu_data): Rename to...
28928 (aarch64_cpu_data): ...This.
28929 (aarch64_arch_driver_info): Keep track of architecture extension
28930 flags.
28931 (get_arch_name_from_id): Rename to...
28932 (get_arch_from_id): ...This, change return type.
28933 (host_detect_local_cpu): Update and reformat for renames, handle
28934 extensions through common infrastructure.
28935
28936 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
28937
28938 PR target/70133
28939 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
28940 track of a canonical flag name.
28941 (all_extensions): Likewise.
28942 (arch_to_arch_name): Also track extension flags enabled by the arch.
28943 (all_architectures): Likewise.
28944 (aarch64_parse_extension): Move to here.
28945 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
28946 rework.
28947 (aarch64_rewrite_selected_cpu): Update for above change.
28948 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
28949 are handled, such that the single explicit value enabled by an
28950 extension is kept seperate from the implicit values it also enables.
28951 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
28952 to here.
28953 (aarch64_parse_extension): New.
28954 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
28955 here to config/aarch64/aarch64-protos.h.
28956 (aarch64_parse_extension): Move from here to
28957 common/config/aarch64/aarch64-common.c.
28958 (aarch64_option_print): Update.
28959 (aarch64_declare_function_name): Likewise.
28960 (aarch64_start_file): Likewise.
28961 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
28962 the canonical flag for extensions.
28963 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
28964 flags.
28965
28966 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
28967
28968 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
28969 AARCH64_FL_CRC.
28970
28971 2016-04-09 Tom de Vries <tom@codesourcery.com>
28972
28973 PR tree-optimization/68953
28974 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
28975 first to last subscript.
28976
28977 2016-04-09 Jakub Jelinek <jakub@redhat.com>
28978
28979 PR tree-optimization/70586
28980 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
28981 for any calls.
28982
28983 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
28984
28985 PR lto/70289
28986 PR ipa/70348
28987 PR tree-optimization/70373
28988 PR middle-end/70533
28989 PR middle-end/70534
28990 PR middle-end/70535
28991 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
28992 clauses for acc parallel reductions as necessary. Error on those
28993 that are private.
28994 * omp-low.c (scan_sharing_clauses): Don't install variables which
28995 are used in acc parallel reductions.
28996 (lower_rec_input_clauses): Remove dead code.
28997 (lower_oacc_reductions): Add support for reference reductions.
28998 (lower_reduction_clauses): Remove dead code.
28999 (lower_omp_target): Don't remap variables appearing in acc parallel
29000 reductions.
29001 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
29002
29003 2016-04-08 Jakub Jelinek <jakub@redhat.com>
29004
29005 PR middle-end/70593
29006 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
29007 with multiple SSA_NAME defs, force the outputs other than first
29008 to be live before calling live_track_process_def on each output.
29009
29010 PR rtl-optimization/70574
29011 * fwprop.c (forward_propagate_and_simplify): Don't add
29012 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
29013 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
29014 paradoxical subregs within *loc.
29015
29016 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
29017
29018 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
29019 -ftree-parallelize-loops={0,1}.
29020 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
29021 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
29022 * config/ia64/hpux.h (LIB_SPEC): Likewise.
29023 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
29024 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
29025
29026 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
29027
29028 PR sanitizer/70541
29029 * asan.c (instrument_derefs): If we get unknown location, extract it
29030 with EXPR_LOCATION.
29031 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
29032
29033 2016-04-08 Tom de Vries <tom@codesourcery.com>
29034
29035 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
29036 implicit firstprivate clause.
29037
29038 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29039
29040 PR target/70566
29041 * config/arm/thumb2.md (tst + branch-> lsls + branch
29042 peephole below *orsi_not_shiftsi_si): Require that condition
29043 register is dead after the peephole.
29044 (second peephole after the above): Likewise.
29045
29046 2016-04-08 Alan Modra <amodra@gmail.com>
29047
29048 PR target/70117
29049 * builtins.c (fold_builtin_classify): For IBM extended precision,
29050 look at just the high-order double to test for NaN.
29051 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
29052 test just the high double for Inf but both doubles for subnormal
29053 limit.
29054
29055 2016-04-07 Jakub Jelinek <jakub@redhat.com>
29056
29057 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
29058 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
29059 node->simdclone->mask_mode != VOIDmode masks.
29060 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
29061 earlier, use it instead of node->simdclone.
29062 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29063 Set clonei->mask_mode.
29064
29065 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
29066
29067 PR c/70436
29068 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
29069 Pass it through to cp_parser_already_scoped_statement.
29070 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
29071 it through to cp_parser_statement.
29072 (cp_parser_statement): Pass IF_P through to
29073 cp_parser_iteration_statement.
29074 (cp_parser_pragma): Adjust call to
29075 cp_parser_iteration_statement.
29076
29077 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
29078
29079 PR c/70436
29080 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
29081 resolve a future -Wparentheses warning.
29082 * omp-low.c (scan_sharing_clauses): Likewise.
29083 * tree-parloops.c (eliminate_local_variables): Likewise.
29084
29085 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
29086
29087 PR rtl-optimization/70398
29088 * lra-constraints.c (process_address_1): Check zero scale and code
29089 for reloading with zero scale.
29090
29091 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
29092
29093 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
29094 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
29095
29096 2016-04-06 Jakub Jelinek <jakub@redhat.com>
29097
29098 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
29099 Add support for AVX512F clones, include them by default for
29100 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
29101 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
29102 up to 128.
29103
29104 PR middle-end/70550
29105 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
29106 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
29107 firstprivate clauses.
29108 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
29109 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
29110 (lower_omp_target): Set TREE_NO_WARNING for
29111 non-addressable possibly uninitialized vars which are copied into
29112 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
29113
29114 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
29115
29116 * config/pa/predicates.md (integer_store_memory_operand): Accept
29117 REG+D operands with a large offset when reload_in_progress is true.
29118 (floating_point_store_memory_operand): Likewise.
29119
29120 2016-04-05 Jakub Jelinek <jakub@redhat.com>
29121
29122 PR c++/70336
29123 * match.pd (nested int casts): Limit to GIMPLE.
29124
29125 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
29126
29127 PR ipa/66223
29128 * ipa-devirt.c (maybe_record_node): Fix comment; use
29129 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
29130
29131 2016-04-05 Jakub Jelinek <jakub@redhat.com>
29132
29133 PR rtl-optimization/70542
29134 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
29135 if there are any uses other than insn or debug insns.
29136
29137 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
29138 Jakub Jelinek <jakub@redhat.com>
29139
29140 PR tree-optimization/70509
29141 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
29142 Shift HOST_WIDE_INT_1U instead of 1.
29143
29144 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
29145
29146 PR tree-optimization/70509
29147 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
29148 of the vector base type for index.
29149
29150 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
29151
29152 PR target/70510
29153 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
29154
29155 2016-04-05 Richard Biener <rguenther@suse.de>
29156
29157 PR tree-optimization/70526
29158 * tree-sra.c (build_ref_for_offset): Use prev_base to
29159 extract the alias pointer type.
29160
29161 2016-04-05 Richard Biener <rguenther@suse.de>
29162
29163 * dse.c (struct store_info): Remove alias_set member.
29164 (struct read_info_type): Likewise.
29165 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
29166 spill_deleted, clear_alias_set_lookup): Remove.
29167 (get_group_info): Remove dead base == NULL_RTX case.
29168 (dse_step0): Remove initialization of removed variables.
29169 (delete_dead_store_insn): Reomve alias set dumping.
29170 (free_read_records): Remove alias_set handling.
29171 (canon_address): Remove alias_set_out parameter.
29172 (record_store): Remove spill_alias_set, it's always zero.
29173 (check_mem_read_rtx): Likewise.
29174 (dse_step2): Rename from ...
29175 (dse_step2_nospill): ... this. Adjust.
29176 (scan_stores): Rename from ...
29177 (scan_stores_nospill): ... this.
29178 (scan_reads): Rename from ...
29179 (scan_reads_nospill): ... this.
29180 (scan_stores_spill, scan_reads_spill): Remove.
29181 (dse_step3_scan): Remove for_spills argument which is always false.
29182 (dse_step3): Likewise.
29183 (dse_step5): Rename from ...
29184 (dse_step5_nospill): ... this. Remove alias_set handling.
29185 (rest_of_handle_dse): Adjust.
29186
29187 2016-04-05 Jakub Jelinek <jakub@redhat.com>
29188
29189 PR target/70525
29190 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
29191 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
29192 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
29193 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
29194
29195 2016-04-05 Richard Biener <rguenther@suse.de>
29196
29197 PR middle-end/70499
29198 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
29199 non-register type temporaries into SSA.
29200
29201 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
29202
29203 PR ipa/66223
29204 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
29205 calls when sanitizing.
29206 (possible_polymorphic_call_target_p): Fix formatting.
29207
29208 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
29209 Jakub Jelinek <jakub@redhat.com>
29210
29211 PR middle-end/70457
29212 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
29213 to ensure a call statement is compatible with a built-in's
29214 prototype.
29215 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
29216 Likewise.
29217
29218 2016-04-04 Richard Biener <rguenther@suse.de>
29219
29220 PR rtl-optimization/70484
29221 * rtl.h (canon_output_dependence): Declare.
29222 * alias.c (canon_output_dependence): New function.
29223 * dse.c (record_store): Use canon_output_dependence rather
29224 than canon_true_dependence.
29225
29226 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
29227
29228 PR ipa/68881
29229 * cgraph.h (symtab_node::copy_visibility_from): New function.
29230 * symtab.c (symtab_node::copy_visibility_from): New function.
29231 * ipa-visibility.c (optimize_weakref): New function.
29232 (function_and_variable_visibility): Use it.
29233
29234 2016-04-04 Martin Liska <mliska@suse.cz>
29235
29236 PR hsa/70402
29237 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
29238 value that is really in range handled by SBR instruction.
29239 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
29240 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
29241 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
29242
29243 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
29244
29245 PR target/70416
29246 PR target/67391
29247 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
29248 set, but not for SP_REG operands.
29249
29250 2016-04-02 Martin Sebor <msebor@redhat.com>
29251
29252 PR c++/67376
29253 * fold-const.c (maybe_nonzero_address): New function.
29254 (fold_comparison): Call it. Fold equality and relational
29255 expressions involving null pointers.
29256 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
29257
29258 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
29259
29260 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
29261 the "Y" constraint (scalar FP 0.0 immediate).
29262
29263 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
29264 Add the "const_double" to the list of operand constraints.
29265
29266 2016-04-01 Jakub Jelinek <jakub@redhat.com>
29267
29268 PR rtl-optimization/70467
29269 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
29270 If low word of the last operand is 0, just emit addition/subtraction
29271 for the high word.
29272
29273 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29274
29275 PR target/70404
29276 * config/s390/s390.c (s390_expand_insv): Check for everything
29277 constant instead of just VOIDmode stuff.
29278
29279 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29280
29281 PR target/70496
29282 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
29283
29284 2016-04-01 Nathan Sidwell <nathan@acm.org>
29285
29286 * tree.def (TRY_CATCH_EXPR): Correct documentation.
29287
29288 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
29289
29290 PR rtl-optimization/70461
29291 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
29292 is necessary.
29293
29294 2016-03-31 Martin Liska <mliska@suse.cz>
29295
29296 PR hsa/70399
29297 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
29298 a tree value or an immediate integer value to a buffer
29299 that is eventually copied to a BRIG section.
29300 (emit_immediate_operand): Call the function here.
29301 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
29302 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
29303 of class' fields that are removed.
29304 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
29305 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
29306 m_brig_repr_size fields.
29307
29308 2016-03-31 Martin Liska <mliska@suse.cz>
29309
29310 PR hsa/70391
29311 * hsa-gen.c (hsa_function_representation::update_dominance): New
29312 function.
29313 (convert_addr_to_flat_segment): Likewise.
29314 (gen_hsa_memory_set): New alignment argument.
29315 (gen_hsa_ctor_assignment): Likewise.
29316 (gen_hsa_insns_for_single_assignment): Provide alignment
29317 to gen_hsa_ctor_assignment.
29318 (gen_hsa_insns_for_direct_call): Add new argument.
29319 (expand_lhs_of_string_op): New function.
29320 (expand_string_operation_builtin): Likewise.
29321 (expand_memory_copy): New function.
29322 (expand_memory_set): New function.
29323 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
29324 (convert_switch_statements): Change signature.
29325 (generate_hsa): Use a return value of the function.
29326 (pass_gen_hsail::execute): Do not call
29327 convert_switch_statements here.
29328 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
29329 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
29330 (hsa_function_representation::update_dominance): New function.
29331
29332 2016-03-31 Martin Liska <mliska@suse.cz>
29333
29334 PR hsa/70391
29335 * hsa-brig.c (emit_directive_variable): Emit alignment
29336 according to hsa_symbol::m_align.
29337 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
29338 (dump_hsa_symbol): Dump alignment of HSA symbols.
29339 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
29340 (gen_hsa_addr_with_align): New function.
29341 (hsa_bitmemref_alignment): Use newly added function.
29342 (gen_hsa_insns_for_load): Likewise.
29343 (gen_hsa_insns_for_store): Likewise.
29344 (gen_hsa_memory_copy): New argument added.
29345 (gen_hsa_insns_for_single_assignment): Respect
29346 alignment for assignments processed via gen_hsa_memory_copy.
29347 (gen_hsa_insns_for_direct_call): Likewise.
29348 (gen_hsa_insns_for_return): Likewise.
29349 (gen_function_def_parameters): Set default alignment.
29350 * hsa.c (hsa_object_alignment): New function.
29351 (hsa_byte_alignment): Pasted function.
29352 * hsa.h (hsa_symbol::m_align): New field.
29353
29354 2016-03-31 Bin Cheng <bin.cheng@arm.com>
29355
29356 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
29357 scratch field for goto case.
29358
29359 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
29360
29361 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
29362
29363 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
29364
29365 PR target/70442
29366 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
29367 (scalar_chain::convert_insn): Call convert_op for reg
29368 moves to handle undefined registers.
29369
29370 2016-03-31 Nathan Sidwell <nathan@acm.org>
29371
29372 PR c++/70393
29373 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
29374 Assert we don't want to move backwards.
29375
29376 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
29377
29378 PR target/70453
29379 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
29380
29381 2016-03-31 Jakub Jelinek <jakub@redhat.com>
29382
29383 PR rtl-optimization/70460
29384 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
29385 with operand from REG_LABEL_OPERAND, instead substitute
29386 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
29387 Don't do anything for REG_NON_LOCAL_GOTO jumps.
29388
29389 2016-03-31 Martin Liska <mliska@suse.cz>
29390
29391 * passes.c (execute_one_pass): Do not call
29392 todo_after for a discarded function.
29393
29394 2016-03-31 Bin Cheng <bin.cheng@arm.com>
29395
29396 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
29397 (no_cost, infinite_cost): Initialize the new field.
29398 (get_computation_cost_at): Record setup cost.
29399 (determine_use_iv_cost_address): Skip cost computation for sub
29400 uses if we can estimate it without losing accuracy.
29401
29402 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
29403
29404 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
29405 estimates here.
29406 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
29407 max_loop_iterations_int.
29408 (tree_unswitch_outer_loop): Likewise.
29409 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
29410 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
29411
29412 2016-03-30 Richard Biener <rguenther@suse.de>
29413
29414 PR middle-end/70450
29415 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
29416
29417 2016-03-30 Jakub Jelinek <jakub@redhat.com>
29418
29419 PR target/70421
29420 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
29421 in gen_blendm expander.
29422
29423 2016-03-30 Nick Clifton <nickc@redhat.com>
29424
29425 PR target/62254
29426 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
29427 case where we are already provided with an SImode SUBREG.
29428
29429 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
29430
29431 PR target/70439
29432 * config/i386/i386.c (ix86_expand_epilogue): Properly check
29433 conflict between DRAP register and __builtin_eh_return.
29434
29435 2016-03-30 Michael Matz <matz@suse.de>
29436 Richard Biener <rguenther@suse.de>
29437
29438 PR ipa/12392
29439 * ipa-polymorphic-call.c (struct type_change_info): Change
29440 speculative to an unsigned allowing to limit the work we do.
29441 (csftc_abort_walking_p): New inline function..
29442 (check_stmt_for_type_change): Limit the number of may-defs
29443 skipped for speculative devirtualization to
29444 max-speculative-devirt-maydefs.
29445 * params.def (max-speculative-devirt-maydefs): New param.
29446 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
29447
29448 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
29449
29450 PR target/63890
29451 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
29452 and TARGET_MACHO.
29453
29454 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
29455
29456 PR tree-optimization/59124
29457 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
29458 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
29459
29460 2016-03-29 Jeff Law <law@redhat.com>
29461
29462 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
29463
29464 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
29465
29466 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
29467 to HOST_WIDE_INT.
29468
29469 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
29470
29471 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
29472 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
29473 gcrt0.o if linking dynamically.
29474
29475 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
29476
29477 PR ipa/70283
29478 * ipa-devirt.c (methods_equal_p): New function.
29479 (compare_virtual_tables): Use it.
29480 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
29481 * cgraphclones.c (clone_function_name_1): Use
29482 symbol_table::symbol_suffix_separator.
29483 * coverage.c (build_var): Likewise.
29484 * symtab.c (symbol_table::symbol_suffix_separator): New.
29485
29486 2016-03-29 Jakub Jelinek <jakub@redhat.com>
29487
29488 PR rtl-optimization/70429
29489 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
29490 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
29491 mode != result_mode.
29492
29493 PR c++/70353
29494 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
29495
29496 PR tree-optimization/70405
29497 * ssa-iterators.h (num_imm_uses): Add missing braces.
29498
29499 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
29500
29501 PR rtl-optimization/68695
29502 * ira-color.c (allocno_copy_cost_saving): New.
29503 (improve_allocation): Use it.
29504
29505 2016-03-29 Richard Henderson <rth@redhat.com>
29506
29507 PR middle-end/70355
29508 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
29509
29510 2016-03-29 Richard Biener <rguenther@suse.de>
29511
29512 PR middle-end/70424
29513 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
29514 use alignment returned by get_pointer_alignment_1 if it is
29515 bigger than BITS_PER_UNIT.
29516 * builtins.c (get_pointer_alignment_1): Do not return true
29517 for alignment extracted from SSA info.
29518
29519 2016-03-28 James Bowman <james.bowman@ftdichip.com>
29520
29521 * config/ft32/ft32.opt (mnodiv): New.
29522 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
29523 * doc/invoke.texi (FT32 Options -mnodiv): New.
29524
29525 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
29526
29527 PR target/70406
29528 * config/i386/i386.md (define_split, andn): Fix modes.
29529
29530 2016-03-26 Richard Biener <rguenther@suse.de>
29531 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
29532
29533 PR ipa/70366
29534 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
29535 instead of
29536 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
29537 as 2nd argument to cl_optimization_restore().
29538
29539 2016-03-25 Richard Henderson <rth@redhat.com>
29540
29541 PR target/70120
29542 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
29543 * config/aarch64/aarch64-protos.h: Declare it.
29544 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
29545
29546 2016-03-25 Alan Modra <amodra@gmail.com>
29547
29548 PR target/70052
29549 * config/rs6000/constraints.md (j): Simplify.
29550 * config/rs6000/predicates.md (easy_fp_constant): Exclude
29551 decimal float 0.D.
29552 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
29553 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
29554 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
29555 in all constraint alternatives.
29556 (movtd_64bit_nodm): Delete "j" constraint alternative.
29557
29558 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
29559
29560 * tree-ssa-propagate.c: Enhance docs for
29561 SSA_PROP_NOT_INTERESTING.
29562
29563 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
29564
29565 * doc/extend.texi: Fix typo in documentation to pure attribute.
29566
29567 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
29568
29569 PR target/70319
29570 * config/pa/pa.md (bswapdi2): Use a scratch register.
29571
29572 2016-03-24 Richard Henderson <rth@redhat.com>
29573
29574 PR middle-end/69845
29575 * fold-const.c (extract_muldiv_1): Correct test for multiplication
29576 overflow.
29577
29578 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
29579
29580 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
29581 using ix86_expand_binary_operator instead of gen_andsi3.
29582
29583 2016-03-24 Richard Biener <rguenther@suse.de>
29584
29585 PR tree-optimization/70396
29586 * tree-vect-stmts.c (vectorizable_comparison): Use
29587 get_vectype_for_scalar_type.
29588
29589 2016-03-24 Richard Biener <rguenther@suse.de>
29590
29591 PR middle-end/70370
29592 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
29593 with register bases.
29594
29595 2016-03-24 Richard Biener <rguenther@suse.de>
29596
29597 PR tree-optimization/70372
29598 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
29599 build_all_ones_cst to also handle vector types correctly.
29600
29601 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
29602
29603 PR target/70381
29604 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
29605 -mfloat128 here.
29606
29607 2016-03-23 Marek Polacek <polacek@redhat.com>
29608
29609 PR c++/69884
29610 * doc/invoke.texi: Document -Wignored-attributes.
29611
29612 2016-03-23 Bin Cheng <bin.cheng@arm.com>
29613
29614 PR tree-optimization/69042
29615 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
29616 parameter from 30 to 40.
29617
29618 2016-03-23 Bin Cheng <bin.cheng@arm.com>
29619
29620 PR tree-optimization/69042
29621 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
29622 for use with constant offset stripped in base.
29623
29624 2016-03-23 Richard Biener <rguenther@suse.de>
29625
29626 PR middle-end/70251
29627 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
29628 mode compatibility check.
29629 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
29630
29631 2016-03-23 Jeff Law <law@redhat.com>
29632
29633 PR tree-optimization/64058
29634 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
29635 CONFLICT_COUNT.
29636 (struct ssa_conflicts): Move up earlier in the file.
29637 (conflicts_, var_map_): New static variables.
29638 (initialize_conflict_count): New function to initialize the
29639 CONFLICT_COUNT field for each conflict pair.
29640 (compare_pairs): Lazily initialize the conflict count and use it
29641 as the first tie-breaker.
29642 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
29643 and wipe conflicts_ and map_ around the call to qsort. Remove
29644 special case for 2 coalesce pairs.
29645 * bitmap.c (bitmap_count_unique_bits): New function.
29646 (bitmap_count_bits_in_word): New function, extracted from
29647 bitmap_count_bits.
29648 (bitmap_count_bits): Use bitmap_count_bits_in_word.
29649 * bitmap.h (bitmap_count_unique_bits): Declare it.
29650
29651 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
29652
29653 PR target/69917
29654 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
29655 transparent alias chain for decl assembler name.
29656 * config/sol2.c (solaris_assemble_visibility): Likewise.
29657
29658 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29659
29660 * config/arm/arm1020e.md (1020call_op): Reduce reservation
29661 duration.
29662 (v10_fdivs): Likewise.
29663 (v10_fdivd): Likewise.
29664
29665 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29666
29667 PR driver/70132
29668 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
29669 to not call fclose twice on file.
29670
29671 2016-03-23 Jakub Jelinek <jakub@redhat.com>
29672
29673 PR tree-optimization/70354
29674 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
29675 oprnd0 is wider than oprnd1 and there is a cast from the wider
29676 type to oprnd1, mask it with the mask of the narrower type.
29677
29678 PR target/70321
29679 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
29680 Optimize TARGET_STV splitters, if high or low word of last argument
29681 is 0 or -1.
29682
29683 2016-03-22 Jeff Law <law@redhat.com>
29684
29685 PR target/70232
29686 tree-ssa-threadbackward.c
29687 (fsm_find_control_statement_thread_paths): Correctly distinguish
29688 between old style jump threads vs FSM jump threads.
29689
29690 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
29691
29692 PR target/70302
29693 * config/i386/i386.c (scalar_chain::convert_op): Support
29694 uninitialized register usage case.
29695
29696 2016-03-22 Richard Biener <rguenther@suse.de>
29697
29698 PR middle-end/70251
29699 * genmatch.c (gen_transform): Adjust last parameter to a three-state
29700 int...
29701 (capture::gen_transform): ... to change behavior when substituting
29702 a condition into cond or not-cond expr context.
29703 (dt_simplify::gen_1): Adjust.
29704 * gimple-match-head.c: Include gimplify.h for unshare_expr.
29705 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
29706 last change and instead change to
29707 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
29708 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
29709
29710 2016-03-22 Anthony Green <green@moxielogic.com>
29711
29712 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
29713 issue for moxiebox targets.
29714 (CC1PLUS_SPEC): Ditto.
29715
29716 2016-03-22 Richard Biener <rguenther@suse.de>
29717
29718 PR middle-end/70333
29719 * fold-const.c (extract_muldiv_1): Properly perform multiplication
29720 in the wide type.
29721
29722 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
29723
29724 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
29725
29726 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
29727
29728 PR target/70325
29729 * config/i386/i386.c (def_builtin): Handle
29730 OPTION_MASK_ISA_AVX512VL to be and-ed with other
29731 bits.
29732 (const struct builtin_description bdesc_special_args[]):
29733 Remove duplicate ISA bits.
29734
29735 2016-03-22 Jakub Jelinek <jakub@redhat.com>
29736
29737 PR target/70329
29738 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
29739 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
29740 in a way that works also for AVX512BW.
29741
29742 PR target/70300
29743 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
29744 instead of source if operands[1] is xmm16 and above and
29745 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
29746 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
29747
29748 PR c++/70295
29749 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
29750 on assign if (*from_p) is a comparison, set it to
29751 TREE_NO_WARNING (*from_p).
29752
29753 2016-03-21 Jakub Jelinek <jakub@redhat.com>
29754
29755 PR middle-end/70326
29756 * lra.c (restore_scratches): Ignore deleted insns.
29757
29758 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
29759 Jakub Jelinek <jakub@redhat.com>
29760
29761 PR tree-optimization/70317
29762 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
29763 to HONOR_NANS.
29764
29765 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
29766
29767 PR target/70327
29768 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
29769 of ix86_expand_move.
29770 (movoi): Ditto.
29771 (movti): Use general_operand for operand 1 predicate.
29772
29773 2016-03-21 Martin Liska <mliska@suse.cz>
29774
29775 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
29776 insns.
29777 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
29778
29779 2016-03-21 Martin Liska <mliska@suse.cz>
29780
29781 PR ipa/70306
29782 * ipa-icf.c (sem_function::parse): Skip static
29783 constructors and destructors.
29784
29785 2016-03-21 Jakub Jelinek <jakub@redhat.com>
29786
29787 PR target/70296
29788 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
29789 function-like macro, peek following token(s) if it is followed
29790 by CPP_OPEN_PAREN token with optional padding in between, and
29791 if not, don't treat it like a macro.
29792
29793 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
29794 Alexander Monakov <amonakov@ispras.ru>
29795
29796 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
29797 for the stabs debug format.
29798
29799 2016-03-21 Richard Biener <rguenther@suse.de>
29800
29801 PR tree-optimization/70310
29802 * tree-vect-generic.c (expand_vector_condition): Fold the built
29803 condition.
29804
29805 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
29806
29807 PR target/70293
29808 * config/i386/sse.md (define_insn "*vec_dup<mode>"/AVX2):
29809 Block third alternative for AVX-512VL target,
29810
29811 2016-03-21 Martin Liska <mliska@suse.cz>
29812
29813 PR hsa/70234
29814 * hsa-brig.c (emit_function_directives): Mark unemitted
29815 global variables for emission.
29816 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
29817 (get_symbol_for_decl): Likewise.
29818 * hsa.h (struct hsa_symbol): New flag.
29819
29820 2016-03-21 Richard Biener <rguenther@suse.de>
29821
29822 PR tree-optimization/70288
29823 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
29824 we do not estimate unsimplified all-constant conditionals or
29825 switches as optimized away.
29826
29827 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
29828
29829 PR rtl-optimization/69102
29830 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
29831 when we have a readonly dependency context.
29832
29833 2016-03-18 Jeff Law <law@redhat.com>
29834
29835 PR rtl-optimization/70263
29836 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
29837 (update_equiv_regs): When trying to move a store to after the insn
29838 that sets the source of the store, make sure the store occurs after
29839 the insn that sets the source of the store. When successful note
29840 the REG_EQUIV note created in the dump file.
29841
29842 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
29843 Bernd Schmidt <bschmidt@redhat.com>
29844
29845 * doc/extend.texi: Document more potential problems with basic asms.
29846
29847 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
29848
29849 PR rtl-optimization/70278
29850 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
29851 VOIDmode.
29852
29853 2016-03-18 Jason Merrill <jason@redhat.com>
29854
29855 * calls.c (load_register_parameters): Fix zero size sibcall logic.
29856
29857 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
29858
29859 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
29860 values to 128b regs.
29861
29862 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
29863
29864 PR tree-optimization/70252
29865 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
29866 boolean vector has a proper number of elements.
29867 (supportable_narrowing_operation): Likewise.
29868
29869 2016-03-18 Tom de Vries <tom@codesourcery.com>
29870
29871 PR ipa/70269
29872 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
29873
29874 2016-03-18 Jakub Jelinek <jakub@redhat.com>
29875
29876 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
29877 instead of replace_rtx for DEBUG_INSNs.
29878
29879 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
29880
29881 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
29882 load type reservations.
29883
29884 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
29885
29886 PR target/70188
29887 * config/pa/constraints.md: Revert 2015-02-13 change. Use
29888 define_constraint for "Q" and "T" constraints.
29889
29890 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
29891
29892 Tweak the pipeline model for Exynos M1
29893
29894 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
29895 model.
29896
29897 2016-03-17 David Malcolm <dmalcolm@redhat.com>
29898
29899 PR c/70264
29900 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
29901 where one or both locations aren't within a line_map.
29902
29903 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
29904
29905 PR driver/70192
29906 * opts.c (finish_options): Don't set flag_pie to the default if
29907 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
29908 if it is -1.
29909
29910 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
29911
29912 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
29913 true as ALL_REGS argument to replace_rtx.
29914
29915 2016-03-17 Richard Biener <rguenther@suse.de>
29916
29917 PR debug/70271
29918 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
29919 last.
29920
29921 2016-03-17 Jakub Jelinek <jakub@redhat.com>
29922
29923 PR target/70245
29924 * rtl.h (replace_rtx): Add ALL_REGS argument.
29925 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
29926 equality and assert mode is the same, instead of just rtx pointer
29927 equality.
29928 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
29929 true as ALL_REGS argument to replace_rtx.
29930
29931 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
29932
29933 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
29934 for boolean vector with vector mode only.
29935 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
29936
29937 2016-03-17 Nick Clifton <nickc@redhat.com>
29938
29939 PR target/70162
29940 * config/rx/rx.c (rx_print_integer): Print negative constants in
29941 decimal.
29942
29943 2016-03-17 Jakub Jelinek <jakub@redhat.com>
29944
29945 PR target/70261
29946 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
29947
29948 2016-03-16 Richard Henderson <rth@redhat.com>
29949 Richard Biener <rguenth@suse.de>
29950
29951 PR middle-end/70240
29952 PR middle-end/68215
29953 PR tree-opt/68714
29954 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
29955 first operand as is_gimple_condexpr.
29956
29957 PR middle-end/70240
29958 PR middle-end/68215
29959 Revert r231575
29960 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
29961 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
29962 Do not gimplify the result.
29963 (do_unop): Adjust call to tree_vec_extract.
29964 (do_binop): Likewise.
29965 (do_compare): Likewise.
29966 (do_plus_minus): Likewise.
29967 (do_negate): Likewise.
29968 (expand_vector_condition): Likewise.
29969 (do_cond): Likewise.
29970
29971 2016-03-16 Richard Henderson <rth@redhat.com>
29972
29973 PR target/70048
29974 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
29975 (aarch64_classify_address): Use it.
29976 (aarch64_legitimize_address): Force all subexpressions of PLUS
29977 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
29978
29979 2016-03-16 Jakub Jelinek <jakub@redhat.com>
29980 Richard Biener <rguenth@suse.de>
29981
29982 PR target/70245
29983 * rtlanal.c (replace_rtx): For REG, if from is a REG,
29984 return to even if only REGNO is equal, and assert
29985 mode is the same.
29986
29987 2016-03-11 Jeff Law <law@redhat.com>
29988
29989 PR rtl-optimization/70224
29990 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
29991
29992 2016-03-16 Richard Henderson <rth@redhat.com>
29993
29994 PR middle-end/70199
29995 * function.h (struct function): Add has_forced_label_in_static.
29996 * gimplify.c (force_labels_r): Set it.
29997 * lto-streamer-in.c (input_struct_function_base): Read it.
29998 * lto-streamer-out.c (output_struct_function_base): Write it.
29999 * tree-inline.c (has_label_address_in_static_1): Remove.
30000 (copy_forbidden): Remove fndecl parameter; test
30001 has_forced_label_in_static.
30002 (inline_forbidden_p): Update call to copy_forbidden.
30003 (tree_versionable_function_p): Likewise.
30004 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
30005 (chkp_versioning): Likewise.
30006 * tree-inline.h (copy_forbidden): Update decl.
30007
30008 2016-03-16 Marek Polacek <polacek@redhat.com>
30009
30010 PR c/70093
30011 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
30012 function being thunked if the result type doesn't have fixed size.
30013 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
30014 doesn't have fixed size.
30015
30016 2016-03-16 Bin Cheng <bin.cheng@arm.com>
30017
30018 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
30019 reporting malformed loop nest.
30020
30021 2016-03-16 Tom de Vries <tom@codesourcery.com>
30022
30023 PR lto/70187
30024 * ipa-devirt.c (possible_polymorphic_call_targets): Move
30025 nodes.length () == 1 test to before first nodes[0] access.
30026
30027 2016-03-16 Tom de Vries <tom@codesourcery.com>
30028
30029 PR tree-optimization/68715
30030 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
30031 single_pred_p test.
30032
30033 2016-03-16 Tom de Vries <tom@codesourcery.com>
30034
30035 PR tree-optimization/68809
30036 * graphite-scop-detection.c (same_close_phi_node): Test if result types
30037 are the same.
30038
30039 2016-03-16 Carlos O'Donell <carlos@redhat.com>
30040 Sandra Loosemore <sandra@codesourcery.com>
30041
30042 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
30043 on leaf attribute. Mention ELF interposition problems.
30044
30045 2016-03-16 Alan Modra <amodra@gmail.com>
30046
30047 PR rtl-optimization/69195
30048 PR rtl-optimization/47992
30049 * ira.c (indirect_jump_optimize): Ignore artificial defs.
30050 Add comments.
30051
30052 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
30053
30054 PR bootstrap/69513
30055 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
30056
30057 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
30058
30059 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
30060
30061 2016-03-15 Jakub Jelinek <jakub@redhat.com>
30062
30063 PR rtl-optimization/70222
30064 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
30065 optimization if mode is different from result_mode, queue up masking
30066 of the result in outer_op. Formatting fix.
30067
30068 PR middle-end/70239
30069 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
30070 of safe_grow.
30071
30072 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
30073
30074 PR rtl-optimization/69032
30075 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
30076 looping backwards over basic block insns.
30077
30078 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
30079
30080 PR target/66660
30081 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
30082 to non-speculative when propagating trap bits.
30083
30084 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
30085
30086 PR rtl-optimization/63384
30087 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
30088 DEBUG_INSN_P insns.
30089
30090 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
30091
30092 PR target/64411
30093 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
30094 factored out from ...
30095 (sched_analyze_insn): ... here.
30096 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
30097 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
30098 get_implicit_reg_pending_clobbers in it.
30099 (setup_id_reg_sets): Use setup_id_implicit_regs.
30100 (deps_init_id): Ditto.
30101
30102 2016-03-15 Tom de Vries <tom@codesourcery.com>
30103
30104 PR ipa/70161
30105 * cgraph.c (cgraph_node::get_body): Save, reset and restore
30106 dump_file_name.
30107 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
30108 execute_function_dump.
30109 (execute_one_pass): Don't dump function if it will be dumped after ipa
30110 transform.
30111
30112 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
30113
30114 * genrecog.c (match_pattern_2): If pred is NULL don't call
30115 safe_predicate_mode on it.
30116
30117 2016-03-14 Jakub Jelinek <jakub@redhat.com>
30118
30119 PR middle-end/70219
30120 * lra-constraints.c (delete_move_and_clobber): Change assertion
30121 to also allow dregno == 0.
30122
30123 2016-03-14 Richard Henderson <rth@redhat.com>
30124
30125 PR tree-opt/68714
30126 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
30127 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
30128 (reassociate_bb): Use optimize_vec_cond_expr; avoid
30129 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
30130 on vectors.
30131
30132 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
30133
30134 PR target/70083
30135 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
30136 regs.
30137 (lra_create_live_ranges_1): initialize hard register biggest_mode to
30138 VOIDmode.
30139 * lra-constraints.c (split_reg): For hard regs, try to find the
30140 biggest single-register mode used in the function.
30141
30142 2016-03-14 Richard Biener <rguenther@suse.de>
30143
30144 PR tree-optimization/56365
30145 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
30146 constants to compare against.
30147
30148 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
30149
30150 PR target/70098
30151 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
30152 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
30153 (define_split for the GPR case): Use int_reg_operand instead of
30154 gpc_reg_operand for the output.
30155
30156 2016-03-14 Tom de Vries <tom@codesourcery.com>
30157
30158 PR tree-optimization/70045
30159 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
30160 create_empty_if_region_on_edge argument.
30161
30162 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
30163
30164 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
30165 (STACK_CHECK_PROTECT): Likewise.
30166 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
30167 (STACK_CHECK_PROTECT): Likewise.
30168 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
30169 (STACK_CHECK_PROTECT): Likewise.
30170 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
30171 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
30172 (STACK_CHECK_PROTECT): Likewise.
30173
30174 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
30175
30176 PR rtl-optimization/69307
30177 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
30178 registers in modes that span more than one register.
30179
30180 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
30181
30182 PR target/69614
30183 * lra-constraints.c (delete_move_and_clobber): New.
30184 (remove_inheritance_pseudos): Use it.
30185
30186 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
30187
30188 PR ada/70017
30189 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
30190 the libcall is LCT_THROW.
30191 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
30192 for the checking routine.
30193
30194 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
30195
30196 PR target/70131
30197 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
30198 optimization if we have direct move.
30199 (roundu32<mode>2_fprs): Likewise.
30200
30201 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
30202
30203 PR target/70123
30204 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
30205 be rematerialized.
30206 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
30207 Arguments swapped. All callers changed. Take reg_renumber into
30208 account, and Calculate and compare register ranges for hard regs.
30209
30210 2016-03-11 Jeff Law <law@redhat.com>
30211
30212 PR tree-optimization/70190
30213 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
30214 Handle cases where we can not extract the taken edge, even though we
30215 found a constant value.
30216
30217 PR tree-optimization/64058
30218 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
30219 (num_coalesce_pairs): Move up earlier in file.
30220 (find_coalesce_pair): Initialize the INDEX field for each pair
30221 discovered.
30222 (compare_pairs): No longer sort on the elements in each pair.
30223 Instead break ties with the index of the coalesce pair.
30224
30225 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30226
30227 PR target/70002
30228 * config/aarch64/aarch64-protos.h
30229 (aarch64_save_restore_target_globals): New prototype.
30230 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
30231 Call the above when popping pragma.
30232 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
30233 New function.
30234 (aarch64_set_current_function): Rewrite using the above.
30235
30236 2016-03-11 Jakub Jelinek <jakub@redhat.com>
30237
30238 PR tree-optimization/70177
30239 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
30240 (extract_ops_from_tree): ... this. In the 2 argument
30241 overload remove _1 suffix.
30242 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
30243 (extract_ops_from_tree): ... this.
30244 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
30245 Adjust callers.
30246 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
30247 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
30248 extract_ops_from_tree instead of 2 operand one.
30249
30250 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
30251
30252 PR tree-optimization/70013
30253 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
30254 for constant-pool entries.
30255
30256 2016-03-11 Jakub Jelinek <jakub@redhat.com>
30257
30258 PR rtl-optimization/70174
30259 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
30260 followed by gen_lowpart on force_reg instead of just gen_lowpart.
30261
30262 PR tree-optimization/70169
30263 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
30264 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
30265 for unknown codes.
30266
30267 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
30268 Jakub Jelinek <jakub@redhat.com>
30269
30270 PR target/70160
30271 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
30272 of uninitialized values.
30273
30274 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30275
30276 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
30277 define_expand.
30278 ("*trunctddd2"): New pattern definition.
30279 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
30280 TD->DD truncation.
30281
30282 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30283
30284 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
30285 definitions for BFP and DFP rounding modes.
30286 ("fixuns_truncdddi2", "fixuns_trunctddi2")
30287 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
30288 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
30289 ("fix_trunctf<mode>2"): Use the new constants instead of magic
30290 numbers.
30291
30292 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30293
30294 * config/s390/constraints.md: Adjust comment.
30295 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
30296 s390_decompose_addrstyle_without_index.
30297 * config/s390/predicates.md (shift_count_or_setmem_operand):
30298 Rename to setmem_operand.
30299 * config/s390/s390-protos.h
30300 (s390_decompose_shift_count): Rename to
30301 s390_decompose_addrstyle_without_index.
30302 * config/s390/s390.c (s390_decompose_shift_count)
30303 (s390_mem_constraint, print_shift_count_operand)
30304 (print_operand_address, print_operand): Rename
30305 s390_decompose_shift_count to
30306 s390_decompose_addrstyle_without_index and rename
30307 print_shift_count_operand to print_addrstyle_operand troughout the
30308 file.
30309 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
30310 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
30311 Rename shift_count_or_setmem_operand to setmem_operand.
30312 * config/s390/vx-builtins.md ("vec_insert<mode>")
30313 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
30314 nonmemory_operand.
30315
30316 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30317
30318 PR target/70168
30319 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
30320 Handle overlapping retval and newval.
30321
30322 2016-03-10 Nick Clifton <nickc@redhat.com>
30323
30324 PR target/7044
30325 * config/aarch64/aarch64.c
30326 (aarch64_override_options_after_change_1): When forcing
30327 flag_omit_frame_pointer to be true, use a special value that can
30328 be detected if this function is called again, thus preventing
30329 flag_omit_leaf_frame_pointer from being forced to be false.
30330
30331 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30332
30333 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
30334 Set x_flag_omit_leaf_frame_pointer when handling
30335 -momit-leaf-frame-pointer.
30336
30337 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
30338
30339 PR lto/69589
30340 * cgraph.c (cgraph_node::dump): Dump split_part and
30341 indirect_call_target.
30342 * cgraph.h (cgraph_node): Add indirect_call_target flag.
30343 * ipa.c (has_addr_references_p): Cleanup.
30344 (is_indirect_call_target_p): New.
30345 (walk_polymorphic_call_targets): Do not mark virtuals that may be
30346 called indirectly as local.
30347 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
30348
30349 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
30350
30351 PR ipa/69630
30352 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
30353 on cxa_pure_virtual.
30354
30355 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
30356
30357 PR lto/69589
30358 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
30359
30360 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
30361
30362 PR lto/69589
30363 * tree.c (need_assembler_name_p): Only record main variant type names.
30364
30365 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
30366
30367 PR target/70113.
30368 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
30369 Always define to 0 or 1.
30370 (TARGET_FIX_ERR_A53_843419): New macro.
30371 * config/aarch64/aarch64-elf-raw.h
30372 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
30373 * config/aarch64/aarch64-linux.h: Likewise.
30374 * config/aarch64/aarch64.c
30375 (aarch64_override_options_after_change_1): Do not default
30376 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
30377 843419 is on.
30378 (aarch64_attributes): Handle fix-cortex-a53-843419.
30379 (aarch64_can_inline_p): Likewise.
30380 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
30381
30382 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
30383 Jakub Jelinek <jakub@redhat.com>
30384
30385 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
30386 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
30387 DECL_COMMONS if flag_unconstrained_commons is set.
30388 * tree-dfa.c (get_ref_base_and_extent): Likewise.
30389 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
30390 (funconstrained-commons): Document.
30391
30392 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
30393
30394 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
30395 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
30396
30397 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
30398
30399 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
30400 has a proper number of elements.
30401
30402 2016-03-10 Alan Modra <amodra@gmail.com>
30403
30404 PR rtl-optimization/69195
30405 PR rtl-optimization/47992
30406 * ira.c (recorded_label_ref): Delete.
30407 (update_equiv_regs): Return void.
30408 (indirect_jump_optimize): New function.
30409 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
30410 before regstat_compute_ri. Don't rebuild_jump_labels here.
30411 Delete update_regstat.
30412
30413 2016-03-10 Richard Biener <rguenther@suse.de>
30414
30415 PR tree-optimization/70128
30416 * tree-ssa-structalias.c (set_uids_in_ptset): Set
30417 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
30418
30419 2016-03-09 Jakub Jelinek <jakub@redhat.com>
30420
30421 PR tree-optimization/70152
30422 * tree-sra.c (replace_removed_params_ssa_names): Copy over
30423 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
30424
30425 PR target/70086
30426 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
30427 instead of gen_sse2_loadlpd.
30428 * config/i386/sse.md (*vec_concatv2df): Rename to...
30429 (vec_concatv2df): ... this.
30430
30431 PR tree-optimization/70127
30432 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
30433
30434 2016-03-09 David Malcolm <dmalcolm@redhat.com>
30435
30436 PR c/68473
30437 PR c++/70105
30438 * diagnostic-show-locus.c (compatible_locations_p): New function.
30439 (layout::layout): Sanitize ranges using compatible_locations_p.
30440
30441 2016-03-09 David Malcolm <dmalcolm@redhat.com>
30442
30443 PR c/68473
30444 PR c++/70105
30445 * diagnostic-show-locus.c (layout_range::layout_range): Replace
30446 location_range param with three const expanded_locations * and a
30447 bool.
30448 (layout::layout): Replace call to
30449 rich_location::lazily_expand_location with get_expanded_location.
30450 Extract the range and perform location expansion here, passing
30451 the results to the layout_range ctor.
30452 * diagnostic.c (source_range::debug): Delete.
30453 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
30454 of rich_location::get_expanded_location.
30455 * gcc-rich-location.c (get_range_for_expr): Delete.
30456 (gcc_rich_location::add_expr): Reimplement to avoid the
30457 rich_location::add_range overload that took a location_range,
30458 passing a location_t instead.
30459
30460 2016-03-09 Richard Biener <rguenther@suse.de>
30461 Jakub Jelinek <jakub@redhat.com>
30462
30463 PR tree-optimization/70138
30464 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
30465 Also skip vect_double_reduction_def.
30466
30467 2016-03-09 Jakub Jelinek <jakub@redhat.com>
30468
30469 PR target/70049
30470 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
30471 if the operand is "m".
30472
30473 2016-03-09 Nathan Sidwell <nathan@acm.org>
30474
30475 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
30476
30477 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
30478
30479 * config/i386/i386.c (processor_target_table): Fix cost table
30480 intialization order for znver1.
30481
30482 2016-03-08 Jakub Jelinek <jakub@redhat.com>
30483
30484 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
30485 - becuase -> because.
30486 * ipa-reference.c (ignore_module_statics): Likewise.
30487 * cgraph.c (cgraph_node::get_body): Likewise.
30488 * ipa-inline.c (early_inliner): Likewise.
30489 * ipa-devirt.c (types_same_for_odr): Likewise.
30490 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
30491 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
30492
30493 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30494
30495 * tree-ssa-math-opts.c: Fix typo in comment.
30496
30497 2016-03-08 Jakub Jelinek <jakub@redhat.com>
30498
30499 PR target/70110
30500 * config/i386/i386.c (scalar_chain::make_vector_copies,
30501 scalar_chain::convert_reg): Call end_sequence in between
30502 get_insns and emit_conversion_insns rather than after both
30503 calls.
30504
30505 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
30506
30507 PR target/70064
30508 * config/i386/i386.h (machine_function): Add
30509 pc_thunk_call_expanded flag.
30510 (ix86_pc_thunk_call_expanded): New define.
30511 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
30512 (*set_got): Rename insn pattern from set_got.
30513 (*set_got_labelled): Rename inst pattern from set_got_labelled.
30514 * config/i386/i386.c (ix86_compute_frame_layout): Use
30515 ix86_pc_thunk_call_expanded to prevent red-zone.
30516
30517 2016-03-07 Martin Jambor <mjambor@suse.cz>
30518
30519 * hsa.h (hsa_get_ctor_statements): Declare.
30520 (hsa_get_dtor_statements): Likewise.
30521 (hsa_get_kernel_dispatch_type): Likewise.
30522 * hsa.c (hsa_get_ctor_statements): New function.
30523 (hsa_get_dtor_statements): Likewise.
30524 (hsa_get_kernel_dispatch_type): Likewise.
30525 * hsa-brig.c (hsa_cdtor_statements): Removed.
30526 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
30527 hsa_get_dtor_statements.
30528 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
30529 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
30530
30531 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
30532
30533 * config/arm/arm-cores.def (cortex-r8): New.
30534 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
30535 * config/arm/arm-tune.md: Likewise.
30536 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
30537
30538 2016-03-07 Martin Sebor <msebor@redhat.com>
30539
30540 PR rtl-optimization/19705
30541 * doc/invoke.texi (Options That Control Optimization): Clarify
30542 -fno-branch-count-reg.
30543
30544 2016-02-26 Richard Biener <rguenther@suse.de>
30545 Jeff Law <law@redhat.com>
30546
30547 PR tree-optimization/69740
30548 * cfghooks.c (remove_edge): Request loop fixups if we delete
30549 an edge that might turn an irreducible loop into a natural
30550 loop.
30551 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
30552 Move after definition of loops_state_clear.
30553
30554 2016-03-07 Bin Cheng <bin.cheng@arm.com>
30555
30556 PR rtl-optimization/69052
30557 * rtlanal.c (commutative_operand_precedence): Set higher precedence
30558 to CONST_WIDE_INT.
30559
30560 2016-03-07 Tom de Vries <tom@codesourcery.com>
30561
30562 PR tree-optimization/70116
30563 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
30564 is_tm_ending stmts and ubsan/asan internal functions.
30565 (find_duplicate): Use it. Don't test is_tm_ending here.
30566
30567 2016-03-07 Richard Biener <rguenther@suse.de>
30568
30569 PR tree-optimization/70115
30570 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
30571 (propagate_constants_for_unrolling): Use replace_uses_by.
30572
30573 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
30574
30575 PR middle-end/69916
30576 * omp-low.c (struct oacc_loop): Add ifns.
30577 (new_oacc_loop_raw): Initialize it.
30578 (finish_oacc_loop): Clear mask & flags if no ifns.
30579 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
30580 (oacc_loop_xform_loop): Add ifns arg & adjust.
30581 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
30582
30583 2016-03-07 Richard Henderson <rth@redhat.com>
30584
30585 PR rtl-opt/70061
30586 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
30587 (insert_value_copy_on_edge): Likewise.
30588
30589 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30590
30591 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
30592
30593 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30594
30595 PR target/62281
30596 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
30597
30598 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
30599
30600 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
30601
30602 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
30603
30604 Fix sseimul type attribute.
30605 * config/i386/znver1.md
30606 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
30607 znver1_sseimul_avx256_load) : Fix the type attribute.
30608 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
30609 pipe usage and latency.
30610
30611 2016-03-05 Jakub Jelinek <jakub@redhat.com>
30612
30613 PR c++/70084
30614 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
30615 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
30616 to the right type.
30617
30618 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
30619
30620 PR c/69973
30621 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
30622
30623 PR rtl-optimization/69941
30624 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
30625 the reg share its mode.
30626
30627 2016-03-04 Jeff Law <law@redhat.com>
30628
30629 PR tree-optimization/69196
30630 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
30631 If the both SSA_NAMEs are anonymous, then consider them unassociated
30632 and include the PHI in the statement count.
30633
30634 2016-03-05 Tom de Vries <tom@codesourcery.com>
30635
30636 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
30637 construct in oacc routine. Check for oacc region in oacc routine.
30638
30639 2016-03-04 Jakub Jelinek <jakub@redhat.com>
30640
30641 PR target/70062
30642 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
30643 2016-02-22 changes, instead don't recurse if RECUR is already true.
30644 Don't change *dynamic_check if RECUR. Adjust recursive caller
30645 to pass true to the new argument.
30646 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
30647
30648 PR target/70059
30649 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
30650 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
30651 fixes.
30652 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
30653
30654 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
30655
30656 PR rtl-optimization/57676
30657 * lra-assigns.c (lra_assign): Guard test for maximum iterations
30658 with flag_checking.
30659
30660 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
30661
30662 * tree-vect-patterns.c (search_type_for_mask): Handle
30663 comparison of booleans.
30664
30665 2016-03-04 Jakub Jelinek <jakub@redhat.com>
30666
30667 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
30668 Fix @xref usage.
30669
30670 PR debug/69947
30671 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
30672 all other ops that have dw_val_class_die_ref operands,
30673 and DW_OP_GNU_entry_value.
30674
30675 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30676
30677 PR rtl-optimization/69904
30678 * config/arm/arm.c (arm_cannot_copy_insn_p):
30679 Return true for load-exclusive instructions.
30680
30681 2016-03-03 Jakub Jelinek <jakub@redhat.com>
30682
30683 PR target/70021
30684 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
30685 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
30686 the pattern no matter if it is used just by non-pattern, pattern
30687 or mix thereof.
30688 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
30689 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
30690 oprnd1 def_stmt is in pattern, don't look through it.
30691
30692 2016-03-03 Marek Polacek <polacek@redhat.com>
30693
30694 PR middle-end/70050
30695 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
30696
30697 2016-03-03 Martin Liska <mliska@suse.cz>
30698
30699 PR tree-optimization/70043
30700 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
30701 previous statement if we see a debug statement.
30702
30703 2016-03-03 Richard Biener <rguenther@suse.de>
30704
30705 PR tree-optimization/55936
30706 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
30707 parameter and guard unsafe equivalence use.
30708 (vrp_evaluate_conditional_warnv_with_ops): Always use
30709 safe equivalences but not via the quadratic compare_names
30710 helper.
30711
30712 2016-03-03 Michael Collison <michael.collison@linaro.org>
30713
30714 PR target/70014
30715 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
30716 for operand 1 to s_register_operand. Change predicate for operand
30717 2 to arm_not_immediate_operand.
30718
30719 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
30720
30721 * doc/tm.texi: Regenerated.
30722
30723 2016-03-02 Richard Henderson <rth@redhat.com>
30724
30725 PR rtl-opt/67145
30726 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
30727 simplification when all args are positive non-fixed registers.
30728
30729 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
30730
30731 * target.def (lra_p): Specify that new ports should use LRA.
30732
30733 2016-03-02 Jakub Jelinek <jakub@redhat.com>
30734
30735 PR libgomp/69555
30736 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
30737 gimplify_type_sizes the type they refer to.
30738 (omp_notice_variable): Handle reference vars to VLAs.
30739 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
30740 reference to VLA decls in the second pass instead of first pass.
30741
30742 2016-03-02 Tom de Vries <tom@codesourcery.com>
30743
30744 PR tree-optimization/68659
30745 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
30746 new_expr == NULL_TREE.
30747 (get_new_name): Handle ADDR_EXPR.
30748
30749 2016-03-02 Bin Cheng <bin.cheng@arm.com>
30750
30751 PR rtl-optimization/69052
30752 * loop-invariant.c (canonicalize_address): New function.
30753 (inv_can_prop_to_addr_use): Check validity of address expression
30754 which is canonicalized by above function.
30755
30756 2016-03-02 Alan Modra <amodra@gmail.com>
30757
30758 PR ipa/69990
30759 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
30760 larger alignment.
30761
30762 2016-03-02 Jakub Jelinek <jakub@redhat.com>
30763
30764 PR target/70028
30765 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
30766 (*movhi_internal): Put mask moves from and to memory separately
30767 from moves from/to GPRs.
30768
30769 2016-03-02 Richard Biener <rguenther@suse.de>
30770
30771 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
30772 GENERIC expressions in GIMPLE.
30773
30774 2016-03-02 Richard Biener <rguenther@suse.de>
30775
30776 * config/i386/i386.c (type_natural_mode): Fix typo.
30777
30778 2016-03-02 Nick Clifton <nickc@redhat.com>
30779
30780 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
30781
30782 2016-03-02 Richard Biener <rguenther@suse.de>
30783 Uros Bizjak <ubizjak@gmail.com>
30784
30785 PR target/67278
30786 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
30787
30788 2016-03-02 Richard Biener <rguenther@suse.de>
30789
30790 PR middle-end/67278
30791 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
30792
30793 2016-03-02 Marek Polacek <polacek@redhat.com>
30794
30795 PR c/67854
30796 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
30797 "is promoted to" warning.
30798
30799 2016-03-01 DJ Delorie <dj@redhat.com>
30800
30801 * config.gcc: Deprecate mep-*.
30802
30803 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
30804
30805 PR middle-end/70025
30806 * lra-constraints.c (regno_val_use_in): New.
30807 (match_reload): Use it instead of regno_use_in.
30808
30809 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
30810
30811 PR rtl-optimization/70007
30812 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
30813 references present in REG_EQUAL notes attached to non-SET patterns.
30814
30815 2016-03-01 Jeff Law <law@redhat.com>
30816
30817 PR tree-optimization/69196
30818 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
30819 Appropriately clamp the number of statements to copy when the
30820 thread path does not traverse a loop backedge.
30821
30822 PR tree-optimization/69196
30823 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
30824 Do count some PHIs in the thread path against the insn count. Decrease
30825 final statement count by one as the control statement in the last
30826 block will get removed. Remove special cased code for handling PHIs
30827 in the last block.
30828
30829 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
30830
30831 PR target/70027
30832 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
30833 asm dialect alternatives to explicit GOTPCREL calls.
30834
30835 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
30836
30837 PR ada/70017
30838 * ira.c (do_reload): Issue warning for generic stack checking here...
30839 * reload1.c (reload): ...instead of here and streamline it.
30840
30841 2016-03-01 Nick Clifton <nickc@redhat.com>
30842
30843 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
30844
30845 2016-03-01 Richard Biener <rguenther@suse.de>
30846
30847 PR tree-optimization/69983
30848 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
30849 types and fall back to operand_equal_p.
30850
30851 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30852
30853 Revert
30854 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30855
30856 * config/s390/constraints.md ("jm8"): New constraint.
30857 * config/s390/predicates.md ("const_int_8bitset_operand"): New
30858 predicate.
30859 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
30860 into ...
30861 ("*setmem_long<setmem_and>"): New pattern.
30862 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
30863 into ...
30864 ("*setmem_long_31z<setmem_and>"): New pattern.
30865 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
30866 New substitution rules with the required attributes.
30867
30868
30869 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30870
30871 Revert
30872 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30873
30874 * gensupport.c (process_substs_on_one_elem): Split loop to
30875 complete mark_operands_used_in_match_dup on all expressions in the
30876 vector first.
30877 (adjust_operands_numbers): Inline into process_substs_on_one_elem
30878 and remove function.
30879
30880 2016-03-01 Richard Biener <rguenther@suse.de>
30881
30882 PR middle-end/70022
30883 * fold-const.c (fold_indirect_ref_1): Fix range checking for
30884 vector BIT_FIELD_REF extract.
30885
30886 2016-03-01 Richard Biener <rguenther@suse.de>
30887
30888 PR tree-optimization/69994
30889 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
30890
30891 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
30892
30893 PR tree-optimization/69956
30894 * tree-vect-stmts.c (supportable_widening_operation): Support
30895 multi-step conversion of boolean vectors.
30896 (supportable_narrowing_operation): Likewise.
30897
30898 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30899
30900 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
30901 anymore.
30902
30903 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30904
30905 * config/s390/subst.md (DSI_VI): New mode iterator.
30906 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
30907 * config/s390/vector.md ("vec_set<mode>"): Move expander before
30908 the insn definition.
30909 ("*vec_set<mode>"): Change predicate and add alternative to
30910 support only either register or const_int operands as element
30911 selector.
30912 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
30913 operands.
30914 ("vec_extract<mode>"): New expander.
30915 ("*vec_extract<mode>"): New insn definition supporting reg and
30916 const_int element selectors.
30917 ("*vec_extract<mode>_plus"): New insn definition supporting
30918 reg+const_int element selectors.
30919 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
30920 following expander+insn definition.
30921 ("<vec_shifts_name><mode>3"): New expander.
30922 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
30923
30924 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30925
30926 * config/s390/s390.md ("*tabort_1"): Change predicate to
30927 nonmemory_operand. Add a second alternative to cover
30928 register as well as const int operands.
30929 ("*tabort_1_plus"): New pattern definition.
30930
30931 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30932
30933 * config/s390/s390.md ("*ashrdi3_cc_31")
30934 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
30935 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
30936 Merge insn definitions into ...
30937 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
30938 New pattern definition.
30939 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
30940 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
30941 ("*ashr<mode>3_and"): Merge insn definitions into ...
30942 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
30943 New pattern definition.
30944 * config/s390/subst.md ("addr_style_op_cc_subst")
30945 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
30946 substitutions patterns plus attributes.
30947 Add ashiftrt to SUBST iterator.
30948
30949 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30950
30951 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
30952 op2 to nonmemory_operand.
30953 ("*<shift>di3_31", "*<shift>di3_31_and"):
30954 Merge into single pattern definition ...
30955 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
30956 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
30957 pattern definition ...
30958 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
30959 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
30960 iterator.
30961
30962 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30963
30964 * config/s390/predicates.md (const_int_6bitset_operand): New
30965 predicate.
30966 * config/s390/s390.md: Include subst.md.
30967 ("rotl<mode>3"): New expander.
30968 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
30969 ...
30970 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
30971 * config/s390/subst.md: New file.
30972
30973 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30974
30975 * config/s390/s390.md ("op_type", "atype", "length" attributes):
30976 Remove RRR type. It doesn't really exist.
30977 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
30978 attributes.
30979 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
30980 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
30981 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
30982 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
30983 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
30984 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
30985 `enabled' attribute.
30986
30987 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30988
30989 * gensupport.c (process_substs_on_one_elem): Split loop to
30990 complete mark_operands_used_in_match_dup on all expressions in the
30991 vector first.
30992 (adjust_operands_numbers): Inline into process_substs_on_one_elem
30993 and remove function.
30994
30995 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
30996
30997 PR target/69706
30998 * config/sparc/sparc.c (NWORDS_UP): Rename to...
30999 (CEIL_NWORDS): ...this. Use CEIL macro.
31000 (compute_fp_layout): Adjust to above renaming.
31001 (function_arg_union_value): Likewise.
31002 (sparc_arg_partial_bytes): Likewise.
31003 (sparc_function_arg_advance): Likewise.
31004
31005 2016-02-29 Jeff Law <law@redhat.com>
31006
31007 PR tree-optimization/70005
31008 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
31009 where an object with a boolean range is compared against a value
31010 outside [0..1].
31011
31012 PR tree-optimization/69999
31013 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
31014 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
31015 loop cleanups.
31016
31017 2016-02-29 Richard Biener <rguenther@suse.de>
31018
31019 PR tree-optimization/69994
31020 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
31021 (get_unary_op): Look through nop conversions.
31022 (ops_equal_values_p): New function, look for equality diregarding
31023 nop conversions.
31024 (eliminate_plus_minus_pair): Use ops_equal_values_p
31025 (repropagate_negates): Do not use get_unary_op here.
31026
31027 2016-02-29 Martin Liska <mliska@suse.cz>
31028
31029 * system.h: Poison ENABLE_CHECKING macro.
31030
31031 2016-02-29 Martin Liska <mliska@suse.cz>
31032
31033 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
31034 is presented in dump flags.
31035 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
31036 (hsa_regalloc): Likewise.
31037
31038 2016-02-19 Richard Biener <rguenther@suse.de>
31039
31040 PR tree-optimization/69980
31041 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
31042 permutation of those we need to keep.
31043
31044 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
31045
31046 PR target/69706
31047 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
31048 (NWORDS_UP): ...this
31049 (init_cumulative_args): Minor tweaks.
31050 (sparc_promote_function_mode): Likewise.
31051 (scan_record_type): Delete.
31052 (traverse_record_type): New function template.
31053 (classify_data_t): New structure type.
31054 (classify_registers): New inline function.
31055 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
31056 exhausted. Instantiate traverse_record_type on classify_registers and
31057 deal with the case of a structure passed in slot #15 with no FP field
31058 in the first word.
31059 (assign_data_t): New structure type.
31060 (compute_int_layout): New static function.
31061 (compute_fp_layout): Likewise.
31062 (count_registers): New inline function.
31063 (assign_int_registers): New static function.
31064 (assign_fp_registers): Likewise.
31065 (assign_registers): New inline function.
31066 (function_arg_record_value_1): Delete.
31067 (function_arg_record_value_2): Likewise.
31068 (function_arg_record_value_3): Likewise.
31069 (function_arg_record_value): Adjust to above changes. Instantiate
31070 traverse_record_type on count_registers to first count the number of
31071 registers to be used and then on assign_registers to assign them.
31072 (function_arg_union_value): Adjust to above renaming.
31073 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
31074 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
31075 case of a structure passed in slot #15
31076 (sparc_function_arg_advance): Likewise.
31077 (function_arg_padding): Minor tweak.
31078
31079 2016-02-29 Richard Biener <rguenther@suse.de>
31080
31081 PR tree-optimization/69720
31082 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
31083 the adjustment_def path for possibly vectorized defs.
31084 (vect_create_epilog_for_reduction): Handle vectorized initial
31085 defs properly.
31086
31087 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
31088
31089 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
31090
31091 2016-02-27 Jeff Law <law@redhat.com>
31092
31093 Revert
31094 2016-02-26 Richard Biener <rguenther@suse.de>
31095 Jeff Law <law@redhat.com>
31096
31097 PR tree-optimization/69740
31098 * cfghooks.c (remove_edge): Request loop fixups if we delete
31099 an edge that might turn an irreducible loop into a natural
31100 loop.
31101
31102 2016-02-27 Jakub Jelinek <jakub@redhat.com>
31103
31104 PR rtl-optimization/69896
31105 * tree-vect-generic.c (get_compute_type): Avoid single element
31106 vector types.
31107
31108 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
31109
31110 Rename the AArch64 tuning option and related functions to enable the
31111 Newton series for the reciprocal square root to reflect its
31112 approximative characteristic.
31113
31114 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
31115 function to "aarch64_emit_approx_rsqrt".
31116 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
31117 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
31118 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
31119 (xgene1_tunings): Likewise.
31120 (use_rsqrt_p): Likewise.
31121 (aarch64_emit_swrsqrt): Use new function name.
31122 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
31123 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
31124 text explaining this option.
31125 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
31126
31127 2016-02-26 Jakub Jelinek <jakub@redhat.com>
31128
31129 PR target/69969
31130 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
31131 complain about -mallow-movmisalign without -mvsx if
31132 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
31133
31134 2016-02-26 Joel Sherrill <joel@rtems.org>
31135
31136 * config.gcc: Add x86_64-*-rtems*.
31137 * config/i386/rtems-64.h: New file.
31138
31139 2016-02-26 Joel Sherrill <joel@rtems.org>
31140
31141 * config.gcc: Add aarch64-*-rtems*.
31142 * config/aarch64/rtems.h: New file.
31143
31144 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
31145
31146 PR target/69946
31147 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
31148 shift amount using %h. Add comment.
31149
31150 2016-02-26 Richard Biener <rguenther@suse.de>
31151 Jeff Law <law@redhat.com>
31152
31153 PR tree-optimization/69740
31154 * cfghooks.c (remove_edge): Request loop fixups if we delete
31155 an edge that might turn an irreducible loop into a natural
31156 loop.
31157
31158 2016-02-26 Martin Jambor <mjambor@suse.cz>
31159
31160 PR middle-end/69920
31161 * tree-sra.c (sra_modify_assign): Do not remove loads of
31162 uninitialized aggregates to SSA_NAMEs.
31163
31164 2016-02-26 Richard Henderson <rth@redhat.com>
31165
31166 PR target/69709
31167 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
31168 pseudo in case the target rtx matches the source of the left
31169 shift.
31170
31171 2016-02-26 Martin Jambor <mjambor@suse.cz>
31172
31173 PR hsa/69568
31174 * hsa.h (hsa_type_packed_p): Declare.
31175 * hsa.c (hsa_type_packed_p): New function.
31176 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
31177 loads.
31178 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
31179 * hsa-brig.c (emit_basic_insn): Likewise.
31180
31181 2016-02-26 Martin Jambor <mjambor@suse.cz>
31182
31183 pr hsa/69674
31184 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
31185 pointers.
31186 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
31187
31188 2016-02-26 Martin Jambor <mjambor@suse.cz>
31189
31190 * hsa.h (is_a_helper): New overload for hsa_op_immed for
31191 hsa_op_with_type operands.
31192 (hsa_unsigned_type_for_type): Declare.
31193 * hsa.c (hsa_unsigned_type_for_type): New function.
31194 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
31195 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
31196 the finalizer. Do not emit extra move.
31197
31198 2016-02-26 Martin Jambor <mjambor@suse.cz>
31199
31200 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
31201 atomic operations in private segment.
31202
31203 2016-02-26 Martin Jambor <mjambor@suse.cz>
31204
31205 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
31206 statements to wi->info. Also disallow omp simd constructs.
31207 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
31208 for not gridifying. Dump special string for omp_for.
31209
31210 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31211
31212 PR target/69245
31213 * config/aarch64/aarch64.c (aarch64_set_current_function):
31214 Save/restore target globals when switching to
31215 target_option_default_node.
31216
31217 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31218
31219 PR target/69613
31220 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
31221 Return 0 if !SHIFT_COUNT_TRUNCATED.
31222
31223 2016-02-26 Jakub Jelinek <jakub@redhat.com>
31224 Eric Botcazou <ebotcazou@adacore.com>
31225
31226 PR rtl-optimization/69891
31227 * dse.c (scan_insn): If we can't figure out memset arguments
31228 or they are non-constant, call clear_rhs_from_active_local_stores.
31229
31230 2016-02-26 Martin Liska <mliska@suse.cz>
31231
31232 * doc/extend.texi: Mention clog10, clog10f an clog10l
31233 in Builtins section.
31234
31235 2016-02-26 Martin Liska <mliska@suse.cz>
31236
31237 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
31238 CHECKING_P.
31239 (resolve_args_picking_1): Likewise.
31240 * dwarf2out.h (struct GTY): Likewise.
31241
31242 2016-02-26 Martin Liska <mliska@suse.cz>
31243
31244 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
31245 with flag_checking.
31246 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
31247
31248 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
31249 Martin Liska <mliska@suse.cz>
31250
31251 * doc/install.texi: Mention --enable-valgrind-annotations.
31252
31253 2016-02-26 Richard Biener <rguenther@suse.de>
31254
31255 PR tree-optimization/69551
31256 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
31257 looking through aliases adjust DECL_PT_UID to refer to the
31258 ultimate alias target.
31259
31260 2016-02-25 Martin Liska <mliska@suse.cz>
31261
31262 PR middle-end/69919
31263 * alloc-pool.c (after_memory_report): New variable.
31264 * alloc-pool.h (base_pool_allocator ::release): Do not use
31265 the infrastructure if after_memory_report.
31266 * toplev.c (toplev::main): Mark after memory report.
31267
31268 2016-02-25 Richard Biener <rguenther@suse.de>
31269
31270 PR tree-optimization/48795
31271 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
31272
31273 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
31274
31275 PR driver/68463
31276 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
31277 offloading is enabled and -fopenacc or -fopenmp is specified.
31278 (CRTOFFLOADEND): Likewise.
31279 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
31280 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
31281 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
31282 (offload_objects_file_name): New static var.
31283 (tool_cleanup): Remove offload_objects_file_name file.
31284 (find_offloadbeginend): Replace with ...
31285 (find_crtoffloadtable): ... this.
31286 (run_gcc): Remove offload_argc and offload_argv.
31287 Get offload_objects_file_name from -foffload-objects=... option.
31288 Read names of object files with offload from this file, pass them to
31289 compile_images_for_offload_targets. Don't call find_offloadbeginend and
31290 don't pass offloadbegin and offloadend to the linker. Don't pass
31291 offload non-LTO files to the linker, because now they're not claimed.
31292
31293 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
31294
31295 PR ipa/69630
31296 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
31297 on builtin_unreachable.
31298
31299 2016-02-25 Jakub Jelinek <jakub@redhat.com>
31300
31301 PR rtl-optimization/69896
31302 * regcprop.c: Include cfgrtl.h.
31303 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
31304 than remembered mode, either delete it (if noop_move_p), or
31305 treat like copy_p but not noop_p instruction.
31306
31307 2016-02-24 Jakub Jelinek <jakub@redhat.com>
31308
31309 PR debug/69705
31310 * dwarf2out.c (gen_variable_die): Work around buggy LTO
31311 - allow NULL decl for Fortran DW_TAG_common_block variables.
31312
31313 2016-02-24 Jason Merrill <jason@redhat.com>
31314
31315 * common.opt (flifetime-dse): Add -flifetime-dse=1.
31316
31317 2016-02-24 Richard Biener <rguenther@suse.de>
31318 Jakub Jelinek <jakub@redhat.com>
31319
31320 PR middle-end/69760
31321 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
31322 conditionally executed ops to well-defined overflow behavior.
31323
31324 2016-02-24 Jakub Jelinek <jakub@redhat.com>
31325
31326 PR middle-end/69915
31327 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
31328 elements.
31329
31330 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31331
31332 PR rtl-optimization/69886
31333 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
31334 argument. Use it when checking validity of set instructions.
31335 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
31336 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
31337 callsite.
31338 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
31339 * store-motion.c (find_moveable_store): Update
31340 can_assign_to_reg_without_clobbers_p callsite.
31341
31342 2016-02-24 Richard Biener <rguenther@suse.de>
31343
31344 PR middle-end/68963
31345 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
31346 bogus check.
31347 (record_nonwrapping_iv): Do not fall back to the low/high bound
31348 for non-constant IV bases if the stmt is not always executed.
31349
31350 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31351
31352 * config/arm/arm-cores.def (cortex-a32): New entry.
31353 * config/arm/arm-tables.opt: Regenerate.
31354 * config/arm/arm-tune.md: Regenerate.
31355 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
31356 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
31357 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
31358 for -mcpu and -mtune.
31359
31360 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31361
31362 PR target/69875
31363 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
31364 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
31365 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
31366 (atomic_loaddi_1): Delete.
31367 (atomic_loaddi): Rewrite expander using the above changes.
31368
31369 2016-02-24 Jakub Jelinek <jakub@redhat.com>
31370
31371 PR c/69918
31372 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
31373 2 to 3.
31374
31375 2016-02-24 Jakub Jelinek <jakub@redhat.com>
31376 Richard Biener <rguenth@suse.de>
31377
31378 PR middle-end/69909
31379 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
31380 set_mem_attributes if tem is SSA_NAME which got expanded
31381 as a MEM.
31382
31383 2016-02-24 Richard Biener <rguenther@suse.de>
31384
31385 PR tree-optimization/69907
31386 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
31387 end of permutations for BB vectorization.
31388
31389 2016-02-24 Christian Bruel <christian.bruel@st.com>
31390
31391 * config/arm/arm-c.c (arm_option_override): Initialize
31392 target_option_current_node.
31393 * config/arm/arm.c (arm_pragma_target_parse): Replace
31394 build_target_option_node call by target_option_current_node.
31395 Set target_option_current_node.
31396 Fix comments.
31397
31398 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
31399
31400 PR target/69810
31401 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
31402 define_insn_and_split to define_insn.
31403 (zero_extendqi<mode>2_dot2): Same.
31404 (extendqi<mode>2_dot): Same.
31405 (extendqi<mode>2_dot2): Same.
31406
31407 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
31408
31409 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
31410 and add bypass for AES{D,E} and AESMC pairs.
31411 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
31412 and AESMC pairs.
31413
31414 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
31415
31416 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
31417 series for reciprocal square root in Exynos M1.
31418
31419 2016-02-23 Martin Sebor <msebor@redhat.com>
31420
31421 PR c/69759
31422 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
31423 __builtin_alloca_with_align.
31424
31425 2016-02-23 Richard Henderson <rth@redhat.com>
31426
31427 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
31428 (ix86_register_pragmas): Remove __seg_tls.
31429 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
31430 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
31431 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
31432 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
31433 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
31434 * doc/extend.texi (__seg_tls): Remove item.
31435
31436 2016-02-23 Richard Biener <rguenther@suse.de>
31437
31438 * alloc-pool.h (struct allocation_object): Make id member
31439 conditional on CHECKING_P again.
31440 (get_instance): Adjust.
31441 (base_pool_allocator): Likewise.
31442
31443 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
31444
31445 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
31446 (parallelize_loops): In OpenACC kernels mode, set n_threads to
31447 zero.
31448 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
31449 flag_openacc.
31450 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
31451
31452 2016-02-23 Richard Biener <rguenther@suse.de>
31453
31454 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
31455 * bitmap.h (struct bitmap_usage): Likewise.
31456 (bitmap_move): Declare.
31457 * bitmap.c (register_overhead): Take size_t argument.
31458 (bitmap_move): New function.
31459 * df-problems.c (df_rd_transfer_function): Use bitmap_move
31460 to properly account overhead.
31461 * tree.c (free_node): Use tree_size.
31462
31463 2016-02-23 Jakub Jelinek <jakub@redhat.com>
31464
31465 PR c++/69902
31466 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
31467 when inverting comparison.
31468
31469 PR c/69900
31470 * common.opt (Wunreachable-code): Add Warning flag.
31471
31472 2016-02-23 Mark Wielaard <mjw@redhat.com>
31473 Jakub Jelinek <jakub@redhat.com>
31474
31475 PR c/69911
31476 * cgraphunit.c (check_global_declaration): Check main_input_filename
31477 and DECL_SOURCE_FILE are not NULL.
31478
31479 2016-02-23 Martin Jambor <mjambor@suse.cz>
31480
31481 PR tree-optimization/69666
31482 * tree-sra.c (sra_modify_assign): Do not attempt to create
31483 default_def replacements for unscalarizable regions.
31484
31485 2016-02-20 Mark Wielaard <mjw@redhat.com>
31486
31487 PR c/28901
31488 * cgraphunit.c (check_global_declaration): Check level of
31489 warn_unused_const_variable and main_input_filename.
31490 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
31491 (-Wunused-variable): For C implies -Wunused-const-variable=1.
31492 (-Wunused-const-variable): Explain levels 1 and 2.
31493
31494 2016-02-22 Jakub Jelinek <jakub@redhat.com>
31495
31496 PR target/69888
31497 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
31498 identical arguments. Formatting and spelling fixes.
31499
31500 PR target/69885
31501 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
31502 be specified.
31503
31504 PR target/69894
31505 PR target/69895
31506 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
31507 and m68k-devices.def.
31508 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
31509 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
31510
31511 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
31512
31513 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
31514 and HImode registers.
31515
31516 2016-02-22 Richard Biener <rguenther@suse.de>
31517
31518 PR tree-optimization/69882
31519 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
31520 preserve permutations present because of gaps.
31521 (vect_supported_load_permutation_p): Always continue checking
31522 permutations after vect_attempt_slp_rearrange_stmts.
31523
31524 2016-02-22 Bin Cheng <bin.cheng@arm.com>
31525
31526 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
31527 min_profitable_estimate, rather than min_profitable_iters.
31528
31529 2016-02-22 Jakub Jelinek <jakub@redhat.com>
31530
31531 PR target/69885
31532 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
31533 SImode for last match_operand.
31534
31535 2016-02-22 Martin Liska <mliska@suse.cz>
31536
31537 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
31538 return bitsize - 1 as the return value.
31539
31540 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
31541
31542 PR target/69806
31543 PR target/54089
31544 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
31545 Handle negative shift counts.
31546 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
31547 force_reg on the shift constant.
31548 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
31549 (lshrsi3_d): Handle negative shift counts.
31550
31551 2016-02-22 Richard Biener <rguenther@suse.de>
31552 Tom de Vries <tom@codesourcery.com>
31553
31554 * graph.c: Include dumpfile.h.
31555 (print_graph_cfg): Split into three overloads.
31556 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
31557
31558 2016-02-22 Tom de Vries <tom@codesourcery.com>
31559
31560 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
31561 dump-fn.
31562
31563 2016-02-22 Richard Biener <rguenther@suse.de>
31564
31565 PR ipa/37448
31566 * ipa-inline-transform.c (inline_call): When not updating
31567 overall summaries adjust self size by the growth estimate.
31568 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
31569 hash-set, do not update overall summaries here. Renamed from ...
31570 (inline_to_all_callers): ... this which is now wrapping the
31571 above and performing delayed overall summary update.
31572 (early_inline_small_functions): Delay updating of the overall
31573 summary.
31574
31575 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
31576
31577 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
31578 variable.
31579
31580 2016-02-19 Jakub Jelinek <jakub@redhat.com>
31581
31582 PR driver/69805
31583 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
31584 :%* in %:gt() argument.
31585 (greater_than_spec_func): Adjust for expecting only numbers,
31586 if there are more than two numbers, compare the last two.
31587
31588 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
31589
31590 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
31591 -Wnarrowing with -std.
31592
31593 2016-02-19 Jakub Jelinek <jakub@redhat.com>
31594
31595 PR c++/69851
31596 * expr.c (store_field): Don't use bit-field path if exp is
31597 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
31598 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
31599 and the assignment can be performed by bitwise copy. Formatting
31600 fix.
31601
31602 PR middle-end/69838
31603 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
31604 call copy_reg_eh_region_note_forward on before and/or after sequences
31605 and remove note from insn if it no longer can throw.
31606
31607 PR target/69820
31608 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
31609 if TARGET_AVX512BW.
31610
31611 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31612
31613 * config/s390/vector.md: Add missing commutative operand markers
31614 to the patterns which qualify for one.
31615 * config/s390/vx-builtins.md: Likewise.
31616
31617 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31618
31619 * config/s390/vector.md (VI, VI_QHS): Add single element vector
31620 types to mode iterators.
31621 (vec_double): ... and mode attribute.
31622 * config/s390/vx-builtins.md (non_vec_int): Likewise.
31623
31624 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31625
31626 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
31627 Change the predicate of op2 from nonimmediate to general and let
31628 reload fix it if necessary.
31629
31630 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31631
31632 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
31633
31634 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31635
31636 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
31637 mode.
31638
31639 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31640
31641 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
31642 * config/s390/s390.c (s390_expand_vec_movstr): New function.
31643 * config/s390/s390.md ("movstr<P:mode>"): Call
31644 s390_expand_vec_movstr.
31645
31646 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31647
31648 * config/s390/s390.md: Add missing output modifier for operand 1
31649 to print it as address properly.
31650
31651 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31652
31653 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
31654 * config/s390/2964.md: New file.
31655 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
31656 of insn grouping attributes depending on the CPU level.
31657 (s390_get_unit_mask): New function.
31658 (s390_sched_score): Remove the OOO from the scheduling macros.
31659 Add loop to calculate a score for the instruction mix.
31660 (s390_sched_reorder): Likewise plus improve debug output.
31661 (s390_sched_variable_issue): Rename macros as above. Calculate
31662 the unit distances after actually scheduling an insn. Improve
31663 debug output.
31664 (s390_sched_init): Clear last_scheduled_unit_distance array.
31665 * config/s390/s390.md: Include 2964.md.
31666
31667 2016-02-18 Jakub Jelinek <jakub@redhat.com>
31668
31669 PR target/69671
31670 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
31671 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
31672 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
31673 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
31674 *avx512f_<code>v8div16qi2_mask_1): New insns.
31675
31676 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
31677
31678 PR target/68404
31679 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
31680 2016-02-09 change.
31681
31682 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
31683 earlyclobber from target. Use wF constraint for fused memory
31684 address.
31685 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
31686
31687 2016-02-18 Jakub Jelinek <jakub@redhat.com>
31688 Martin Liska <mliska@suse.cz>
31689
31690 PR sanitizer/69863
31691 * cfgexpand.c (asan_sanitize_stack_p): New function.
31692 (partition_stack_vars): Use the function.
31693 (expand_stack_vars): Likewise.
31694 (defer_stack_allocation): Likewise.
31695 (expand_used_vars): Likewise.
31696
31697 2016-02-18 Richard Biener <rguenther@suse.de>
31698
31699 PR middle-end/69553
31700 * fold-const.c (operand_equal_p): Properly compare offsets for
31701 IMAGPART_EXPR and ARRAY_REF.
31702
31703 2016-02-18 Nick Clifton <nickc@redhat.com>
31704
31705 PR target/62254
31706 PR target/69610
31707 * config/arm/arm.c (arm_option_override_internal): Disable
31708 interworking if the target does not support thumb instructions.
31709 (arm_reload_in_hi): Handle the case where a register to register
31710 move needs reloading because there is no simple pattern to handle
31711 it.
31712 (arm_reload_out_hi): Likewise.
31713
31714 2016-02-18 Richard Biener <rguenther@suse.de>
31715
31716 PR middle-end/69854
31717 * match.pd: Don't use fold_binary or fold_unary for folding
31718 constants.
31719
31720 2016-02-17 Jakub Jelinek <jakub@redhat.com>
31721
31722 PR c++/69850
31723 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
31724 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
31725 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
31726 warn on gimple_no_warning_p statements.
31727
31728 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
31729
31730 * doc/extend.texi (C++ Attributes): Correct description of
31731 warn_unused type attribute.
31732
31733 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31734
31735 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
31736 correct instruction.
31737
31738 2016-02-17 Richard Biener <rguenther@suse.de>
31739
31740 PR rtl-optimization/69609
31741 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
31742 (find_traces_1_round): When ending a trace update cached priority
31743 of successors.
31744 (bb_to_key): Use cached priority when available.
31745 (copy_bb): Initialize cached priority.
31746 (reorder_basic_blocks_software_trace_cache): Likewise.
31747
31748 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31749
31750 PR target/69161
31751 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
31752 New predicate.
31753 (aarch64_comparison_operator): Break overly long line into two.
31754 (aarch64_comparison_operation): Likewise.
31755 * config/aarch64/aarch64.md (cstorecc4): Use
31756 aarch64_comparison_operator_mode instead of
31757 aarch64_comparison_operator.
31758 (cstore<mode>4): Likewise.
31759 (aarch64_cstore<mode>): Likewise.
31760 (*cstoresi_insn_uxtw): Likewise.
31761 (cstore<mode>_neg): Likewise.
31762 (*cstoresi_neg_uxtw): Likewise.
31763
31764 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31765
31766 PR target/69161
31767 * config/arm/predicates.md (arm_comparison_operator_mode):
31768 New predicate.
31769 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
31770 instead of arm_comparison_operator.
31771 (*mov_negscc): Likewise.
31772 (*mov_notscc): Likewise.
31773 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
31774 (*thumb2_mov_negscc): Likewise.
31775 (*thumb2_mov_negscc_strict_it): Likewise.
31776 (*thumb2_mov_notscc): Likewise.
31777 (*thumb2_mov_notscc_strict_it): Likewise.
31778
31779 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
31780
31781 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
31782 Add missing return.
31783
31784 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
31785
31786 * config/visium/visium.c (machine_libfunc_index): New enum.
31787 (machine_libfuncs): New structure.
31788 (visium_libfuncs): New static variable.
31789 (TARGET_INIT_LIBFUNCS): Define to...
31790 (visium_init_libfuncs): ...this. New function.
31791 (expand_block_move_4): Use the appropriate libfunc.
31792 (expand_block_move_2): Likewise.
31793 (expand_block_move_1): Likewise.
31794 (expand_block_set_4): Likewise.
31795 (expand_block_set_2): Likewise.
31796 (expand_block_set_1): Likewise.
31797 (visium_trampoline_init): Likewise.
31798
31799 2016-02-17 Nick Clifton <nickc@redhat.com>
31800
31801 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
31802 TI's devices.csv file as of March 2016.
31803
31804 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
31805
31806 PR Target/48344
31807 * opts-global.c (handle_common_deferred_options): Introduce and
31808 initialize two global variables to remember command-line options
31809 specifying a stack-limiting register.
31810 * opts.h: Add extern declarations of the two new global variables.
31811 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
31812 variable based on the values of the two new global variables.
31813
31814 2016-02-16 Jakub Jelinek <jakub@redhat.com>
31815
31816 PR c/69835
31817 * common.opt (Wnonnull-compare): New warning.
31818 * doc/invoke.texi (-Wnonnull): Remove text about comparison
31819 of arguments against NULL.
31820 (-Wnonnull-compare): Document.
31821 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
31822 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
31823 * passes.def (pass_warn_nonnull_compare): Add.
31824 * gimple-ssa-nonnull-compare.c: New file.
31825
31826 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
31827
31828 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
31829 AARCH64_EXTRA_TUNE_RECIP_SQRT.
31830
31831 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
31832
31833 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
31834 reciprocal sqrt for -mlow-precision-recip-sqrt.
31835
31836 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
31837 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31838
31839 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
31840 always use lane loads to construct non-constant vectors.
31841
31842 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
31843
31844 * config/aarch64/aarch64.md
31845 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
31846 constraints for operand 3.
31847 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
31848
31849 2016-02-16 Jakub Jelinek <jakub@redhat.com>
31850 Richard Biener <rguenther@suse.de>
31851
31852 PR tree-optimization/69820
31853 * tree-vect-patterns.c (type_conversion_p): Return false if
31854 *orig_type is unsigned single precision or boolean.
31855 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
31856 Formatting fix.
31857
31858 2016-02-16 Jakub Jelinek <jakub@redhat.com>
31859
31860 PR rtl-optimization/69764
31861 PR rtl-optimization/69771
31862 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
31863 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
31864
31865 2016-02-16 Richard Biener <rguenther@suse.de>
31866
31867 PR tree-optimization/69776
31868 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
31869 sets from caller.
31870 (indirect_refs_may_alias_p): Likewise.
31871 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
31872 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
31873 according to tbaa_p.
31874 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
31875 (optimize_stmt): For redundant store discovery do not allow tbaa.
31876
31877 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
31878
31879 PR tree-optimization/69714
31880 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
31881 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
31882
31883 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
31884
31885 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
31886 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
31887 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
31888 * config/arc/arc.c (arc_init): Check FPU options.
31889 (get_arc_condition_code): Handle new CC_FPU* modes.
31890 (arc_select_cc_mode): Likewise.
31891 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
31892 register pair only. Allow access for ARCv2 accumulator.
31893 (gen_compare_reg): Whenever we have FPU support use FPU compare
31894 instructions.
31895 (arc_reorg): Don't generate brcc insns when FPU compare
31896 instructions are involved.
31897 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
31898 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
31899 floating point emulation.
31900 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
31901 (REVERSE_CONDITION): Add new CC_FPU* modes.
31902 (TARGET_FP_SP_BASE): Define.
31903 (TARGET_FP_DP_BASE): Likewise.
31904 (TARGET_FP_SP_FUSED): Likewise.
31905 (TARGET_FP_DP_FUSED): Likewise.
31906 (TARGET_FP_SP_CONV): Likewise.
31907 (TARGET_FP_DP_CONV): Likewise.
31908 (TARGET_FP_SP_SQRT): Likewise.
31909 (TARGET_FP_DP_SQRT): Likewise.
31910 (TARGET_FP_DP_AX): Likewise.
31911 * config/arc/arc.md (ARCV2_ACC): New constant.
31912 (type): New fpu type attribute.
31913 (SDF): Conditional iterator.
31914 (cstore<mode>, cbranch<mode>): Change expand condition.
31915 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
31916 handles FPU/FPX cases as well.
31917 * config/arc/arc.opt (mfpu): New option.
31918 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
31919 Renamed.
31920 (adddf3, muldf3, subdf3): Removed.
31921 * config/arc/predicates.md (proper_comparison_operator): Recognize
31922 CC_FPU* modes.
31923 * config/arc/fpu.md: New file.
31924 * doc/invoke.texi (ARC Options): Document mfpu option.
31925
31926 2016-02-16 Richard Biener <rguenther@suse.de>
31927
31928 PR rtl-optimization/69291
31929 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
31930 noce_operand_ok check.
31931
31932 2016-02-16 Tom de Vries <tom@codesourcery.com>
31933
31934 PR lto/67709
31935 * omp-low.c (simd_clone_create): Remove call to
31936 symtab->call_cgraph_insertion_hooks.
31937
31938 2016-02-16 Jakub Jelinek <jakub@redhat.com>
31939
31940 PR tree-optimization/69802
31941 * tree-ssa-reassoc.c (update_range_test): If op is
31942 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
31943 op == 1 test of precision 1 integral op, otherwise handle
31944 that case as op itself. Fix up formatting.
31945 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
31946 up formatting.
31947
31948 2016-02-16 Richard Biener <rguenther@suse.de>
31949
31950 PR tree-optimization/69586
31951 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
31952 types for conversion sources.
31953
31954 2016-02-16 Richard Biener <rguenther@suse.de>
31955
31956 PR middle-end/69801
31957 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
31958 mask OEP_ADDRESS_OF.
31959
31960 2016-02-16 Alan Modra <amodra@gmail.com>
31961
31962 PR target/68973
31963 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
31964 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
31965 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
31966 (p8_mtvsrwz): New.
31967 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
31968 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
31969 (p8_fmrgow_<mode>): Likewise.
31970 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
31971 changes.
31972 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
31973 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
31974 to use movdi_internal64. Remove op0_di.
31975 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
31976
31977 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
31978
31979 Add support for the FCCMP insn types
31980
31981 * config/aarch64/aarch64.md (fccmp): Change insn type.
31982 (fccmpe): Likewise.
31983 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
31984 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
31985 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
31986 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
31987 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
31988 * config/arm/types.md (fccmps): Add new insn type.
31989 (fccmpd): Likewise.
31990
31991 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
31992
31993 * alias.c (get_alias_set): Fix a typo in comment.
31994
31995 2016-02-15 Richard Biener <rguenther@suse.de>
31996
31997 PR tree-optimization/69595
31998 * match.pd: Complete range test simplification to true.
31999
32000 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
32001
32002 PR rtl-optimization/69648
32003 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
32004 pic_offset_table_rtx.
32005
32006 PR rtl-optimization/69752
32007 * ira.c (update_equiv_regs): When looking for more than a single SET,
32008 also take other side effects into account.
32009
32010 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
32011
32012 * config/s390/s390.c (s390_function_profiler): Add a new sequence
32013 for z900+ CPUs in 31-bit mode.
32014
32015 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
32016
32017 * common/config/s390/s390-common.c (s390_supports_split_stack):
32018 New function.
32019 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
32020 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
32021 * config/s390/s390.c (struct machine_function): New field
32022 split_stack_varargs_pointer.
32023 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
32024 in s390_emit_prologue.
32025 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
32026 vararg pointer.
32027 (morestack_ref): New global.
32028 (SPLIT_STACK_AVAILABLE): New macro.
32029 (s390_expand_split_stack_prologue): New function.
32030 (s390_live_on_entry): New function.
32031 (s390_va_start): Use split-stack vararg pointer if appropriate.
32032 (s390_asm_file_end): Emit the split-stack note sections.
32033 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
32034 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
32035 (UNSPECV_SPLIT_STACK_CALL): New unspec.
32036 (UNSPECV_SPLIT_STACK_DATA): New unspec.
32037 (split_stack_prologue): New expand.
32038 (split_stack_space_check): New expand.
32039 (split_stack_data): New insn.
32040 (split_stack_call): New expand.
32041 (split_stack_call_*): New insn.
32042 (split_stack_cond_call): New expand.
32043 (split_stack_cond_call_*): New insn.
32044
32045 2016-02-15 Richard Biener <rguenther@suse.de>
32046
32047 PR tree-optimization/69783
32048 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
32049 Add trivially correct cases.
32050
32051 2016-02-15 Tom de Vries <tom@codesourcery.com>
32052
32053 PR lto/69655
32054 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
32055 do_force_output.
32056 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
32057
32058 2016-02-15 Richard Biener <rguenther@suse.de>
32059
32060 PR tree-optimization/69776
32061 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
32062 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
32063 indicate whether we can use TBAA to disambiguate against stores.
32064 Use alias-set zero if not.
32065 (visit_reference_op_store): Do not use TBAA when looking up
32066 redundant stores.
32067 * tree-ssa-pre.c (compute_avail): Use TBAA here.
32068 (eliminate_dom_walker::before_dom_children): But not when looking
32069 up redundant stores.
32070
32071 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
32072
32073 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
32074
32075 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
32076
32077 * config/i386/znver1.md
32078 (znver1_pop, znver1_pop_mem,
32079 znver1_load_imov_double_store,
32080 znver1_load_imov_direct_store,
32081 znver1_load_imov_direct_load,
32082 znver1_load_imov_double_load): Add new.
32083 (znver1_insn, znver1_insn_load): Add icmov type.
32084 (znver1_sseavx_fma,
32085 znver1_sseavx_fma_load,
32086 znver1_avx256_fma,
32087 znver1_avx256_fma_load): Fix pipe usage.
32088
32089 2016-02-14 Alan Modra <amodra@gmail.com>
32090
32091 PR target/68973
32092 * reload.c (find_reloads_address_1): For pre/post-inc/dec
32093 with an invalid hard reg, reload just the reg not the entire
32094 pre/post-inc/dec address expression.
32095
32096 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
32097
32098 PR target/67260
32099 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
32100 fixed R1_REG scratch reg.
32101 (sibcall_value_pcrel_fdpic): Likewise.
32102
32103 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
32104
32105 PR target/67636
32106 PR target/64345
32107 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
32108
32109 2016-02-12 Walter Lee <walt@tilera.com>
32110
32111 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
32112 * config/tilegx/t-tilegx: Likewise.
32113
32114 2016-02-12 David Malcolm <dmalcolm@redhat.com>
32115
32116 PR other/69554
32117 * diagnostic-show-locus.c (struct line_span): New struct.
32118 (layout::get_first_line): Delete.
32119 (layout::get_last_line): Delete.
32120 (layout::get_num_line_spans): New member function.
32121 (layout::get_line_span): Likewise.
32122 (layout::print_heading_for_line_span_index_p): Likewise.
32123 (layout::get_expanded_location): Likewise.
32124 (layout::calculate_line_spans): Likewise.
32125 (layout::m_first_line): Delete.
32126 (layout::m_last_line): Delete.
32127 (layout::m_line_spans): New field.
32128 (layout::layout): Update comment. Replace m_first_line and
32129 m_last_line with m_line_spans, replacing their initialization
32130 with a call to calculate_line_spans.
32131 (diagnostic_show_locus): When printing source lines and
32132 annotations, rather than looping over a single span
32133 of lines, instead loop over each line_span within
32134 the layout, with an inner loop over the lines within them.
32135 Call the context's start_span callback when changing line spans.
32136 * diagnostic.c (diagnostic_initialize): Initialize start_span.
32137 (diagnostic_build_prefix): Break out the building of the location
32138 part of the string into...
32139 (diagnostic_get_location_text): ...this new function, rewriting
32140 it from nested ternary expressions to a sequence of "if"
32141 statements.
32142 (default_diagnostic_start_span_fn): New function.
32143 * diagnostic.h (diagnostic_start_span_fn): New typedef.
32144 (diagnostic_context::start_span): New field.
32145 (default_diagnostic_start_span_fn): New prototype.
32146
32147 2016-02-12 David Malcolm <dmalcolm@redhat.com>
32148
32149 PR driver/69779
32150 * gcc.c (driver::finalize): Fix cleanup of "specs".
32151
32152 2016-02-12 David Malcolm <dmalcolm@redhat.com>
32153
32154 PR driver/69265
32155 PR driver/69453
32156 * gcc.c (driver::driver): Initialize m_option_suggestions.
32157 (driver::~driver): Clean up m_option_suggestions.
32158 (suggest_option): Convert to...
32159 (driver::suggest_option): ...this, and split out into
32160 driver::build_option_suggestions and find_closest_string.
32161 (driver::build_option_suggestions): New function, from
32162 first half of suggest_option. Special-case
32163 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
32164 the sanitizer_opts array. For options of enum types, add the
32165 various enum values to the candidate strings.
32166 (driver::handle_unrecognized_options): Remove "const".
32167 * gcc.h (driver::handle_unrecognized_options): Likewise.
32168 (driver::build_option_suggestions): New decl.
32169 (driver::suggest_option): New decl.
32170 (driver::m_option_suggestions): New field.
32171 * opts-common.c (add_misspelling_candidates): New function.
32172 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
32173 and make non-static.
32174 * opts.h (sanitizer_opts): New array decl.
32175 (add_misspelling_candidates): New function decl.
32176 * spellcheck.c (find_closest_string): New function.
32177 * spellcheck.h (find_closest_string): New function decl.
32178
32179 2016-02-12 Jakub Jelinek <jakub@redhat.com>
32180
32181 PR rtl-optimization/69764
32182 PR rtl-optimization/69771
32183 * optabs.c (expand_binop_directly): For shift_optab_p, force
32184 convert_modes with VOIDmode if xop1 has VOIDmode.
32185
32186 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
32187
32188 PR target/69729
32189 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
32190 to correctly determine instrumentation thunks.
32191
32192 2016-02-12 Jakub Jelinek <jakub@redhat.com>
32193
32194 PR ipa/69241
32195 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
32196 type by reference, force lhs on the call.
32197
32198 PR ipa/68672
32199 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
32200 Compute retval and retbnd early in all cases if split_part_return_p
32201 and return_bb is not EXIT. Remove all clobber stmts and reset
32202 all debug stmts that refer to SSA_NAMEs defined in split part,
32203 except if it is retval, in that case replace the old retval with the
32204 lhs of the call to the split part.
32205
32206 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
32207
32208 revert:
32209 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
32210
32211 PR middle-end/66726
32212 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
32213 whose result is used in PHI.
32214 (maybe_optimize_range_tests): Likewise.
32215 (final_range_test_p): Likweise.
32216
32217 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
32218
32219 PR middle-end/66726
32220 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
32221 whose result is used in PHI.
32222 (maybe_optimize_range_tests): Likewise.
32223 (final_range_test_p): Likweise.
32224
32225 2016-02-12 Jakub Jelinek <jakub@redhat.com>
32226
32227 * cgraph.c: Spelling fixes - behaviour -> behavior and
32228 neighbour -> neighbor.
32229 * target.def: Likewise.
32230 * sel-sched.c: Likewise.
32231 * config/mips/mips.c: Likewise.
32232 * config/arc/arc.md: Likewise.
32233 * config/arm/cortex-a57.md: Likewise.
32234 * config/arm/arm.c: Likewise.
32235 * config/arm/neon.md: Likewise.
32236 * config/arm/arm-c.c: Likewise.
32237 * config/vms/vms-c.c: Likewise.
32238 * config/s390/s390.c: Likewise.
32239 * config/i386/znver1.md: Likewise.
32240 * config/i386/i386.c: Likewise.
32241 * config/ia64/hpux-unix2003.h: Likewise.
32242 * config/msp430/msp430.md: Likewise.
32243 * config/rx/rx.c: Likewise.
32244 * config/rx/rx.md: Likewise.
32245 * config/aarch64/aarch64-simd.md: Likewise.
32246 * config/aarch64/aarch64.c: Likewise.
32247 * config/nvptx/nvptx.c: Likewise.
32248 * config/bfin/bfin.c: Likewise.
32249 * config/cris/cris.opt: Likewise.
32250 * config/rs6000/rs6000.c: Likewise.
32251 * target.h: Likewise.
32252 * spellcheck.c: Likewise.
32253 * ira-build.c: Likewise.
32254 * tree-inline.c: Likewise.
32255 * builtins.c: Likewise.
32256 * lra-constraints.c: Likewise.
32257 * explow.c: Likewise.
32258 * hwint.h: Likewise.
32259 * targhooks.c: Likewise.
32260 * tree-vect-data-refs.c: Likewise.
32261 * expr.c: Likewise.
32262 * doc/tm.texi: Likewise.
32263 * doc/extend.texi: Likewise.
32264 * doc/install.texi: Likewise.
32265 * doc/md.texi: Likewise.
32266 * tree-ssa-tail-merge.c: Likewise.
32267 * sched-int.h: Likewise.
32268 * match.pd: Likewise.
32269 * sched-ebb.c: Likewise.
32270 * target.def (omit_struct_return_reg): Likewise.
32271 * gimple-ssa-isolate-paths.c: Likewise.
32272 (find_implicit_erroneous_behaviour): Renamed to...
32273 (find_implicit_erroneous_behavior): ... this.
32274 (find_explicit_erroneous_behaviour): Renamed to...
32275 (find_explicit_erroneous_behavior): ... this.
32276 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
32277
32278 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
32279
32280 PR rtl-optimization/64682
32281 PR rtl-optimization/69567
32282 PR rtl-optimization/69737
32283 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
32284 in I2 as well, just lose it.
32285
32286 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32287
32288 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
32289 New variable.
32290 (aarch64_last_printed_tune_string): Likewise.
32291 (aarch64_declare_function_name): Only output .arch assembler
32292 directive if it will be different from the previously output
32293 directive. Same for .tune comment but only if -dA is set.
32294 (aarch64_start_file): New function.
32295 (TARGET_ASM_FILE_START): Define.
32296
32297 2016-02-11 David Malcolm <dmalcolm@redhat.com>
32298
32299 PR plugins/69758
32300 * Makefile.in (PLUGIN_HEADERS): Add params.list.
32301
32302 2016-02-11 Jakub Jelinek <jakub@redhat.com>
32303
32304 PR target/65313
32305 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
32306 -Wmaybe-uninitialized warning.
32307
32308 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
32309
32310 PR target/69713
32311 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
32312
32313 2016-02-11 Richard Biener <rguenther@suse.de>
32314
32315 PR rtl-optimization/69291
32316 * ifcvt.c (noce_try_store_flag_constants): Do not allow
32317 subexpressions affected by changing the result.
32318
32319 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
32320
32321 PR target/69148
32322 * lra-constraints.c (curr_insn_transform): Find in/out operands
32323 for secondary memory moves. Update dups.
32324
32325 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
32326
32327 PR tree-optimization/69652
32328 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
32329 to nested loop, did source re-formatting, skip debug statements,
32330 add check on statement with volatile operand, remove dead scalar
32331 statements.
32332
32333 2016-02-10 Jakub Jelinek <jakub@redhat.com>
32334 Patrick Palka <ppalka@gcc.gnu.org>
32335
32336 PR ipa/69241
32337 PR c++/69649
32338 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
32339 calls if the return type is TREE_ADDRESSABLE.
32340 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
32341 * ipa-split.c (split_function): Fix doubled "we" in comment.
32342 Use void return type for the split part even if
32343 !split_point->split_part_set_retval.
32344
32345 2016-02-10 Bin Cheng <bin.cheng@arm.com>
32346
32347 PR tree-optimization/68021
32348 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
32349 when computing the value of biv cand by itself.
32350
32351 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
32352
32353 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
32354 (cortexa57_tunings): Likewise.
32355 (cortexa72_tunings): Likewise.
32356 (arch_macro_fusion_pair_p): Add support for AES fusion.
32357 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
32358 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
32359 Allow virtual registers before reload so early scheduling works.
32360 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
32361 correct latency and pipeline.
32362 (cortex_a57_crypto_complex): Likewise.
32363 (cortex_a57_crypto_xor): Likewise.
32364 (define_bypass): Add AES bypass.
32365
32366 2016-02-10 Richard Biener <rguenther@suse.de>
32367
32368 PR tree-optimization/69726
32369 * passes.def: Add DCE pass before late uninit.
32370 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
32371 really fixup if-conversions job.
32372
32373 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
32374
32375 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
32376 (arm_cortex_a57_tune): Likewise.
32377 (aarch_macro_fusion_pair_p): Add support for AES fusion.
32378 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
32379
32380 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
32381
32382 * timevar.def (TV_PHASE_DBGINFO): Delete.
32383 (TV_PHASE_CHECK_DBGINFO): Likewise.
32384 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
32385
32386 2016-02-10 Richard Biener <rguenther@suse.de>
32387
32388 PR tree-optimization/69719
32389 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
32390 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
32391
32392 2016-02-09 Andrew Pinski <apinski@cavium.com>
32393
32394 PR tree-opt/69282
32395 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
32396 get_vcond_mask_icode returns false.
32397
32398 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
32399
32400 PR target/68404
32401 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
32402 an ADDIS that adds a pointer to a large constant that sets the
32403 upper16 bits with a load operation.
32404
32405 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
32406
32407 PR target/68532
32408 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
32409 order.
32410 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
32411 endian.
32412 (vzipq_s16): Likewise.
32413 (vzipq_s32): Likewise.
32414 (vzipq_f32): Likewise.
32415 (vzipq_u8): Likewise.
32416 (vzipq_u16): Likewise.
32417 (vzipq_u32): Likewise.
32418 (vzipq_p8): Likewise.
32419 (vzipq_p16): Likewise.
32420
32421 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
32422
32423 PR target/68532
32424 * config/arm/arm.c (neon_endian_lane_map): New function.
32425 (neon_vector_pair_endian_lane_map): New function.
32426 (arm_evpc_neon_vuzp): Allow for big endian lane order.
32427 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
32428 endian.
32429 (vuzpq_s16): Likewise.
32430 (vuzpq_s32): Likewise.
32431 (vuzpq_f32): Likewise.
32432 (vuzpq_u8): Likewise.
32433 (vuzpq_u16): Likewise.
32434 (vuzpq_u32): Likewise.
32435 (vuzpq_p8): Likewise.
32436 (vuzpq_p16): Likewise.
32437
32438 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
32439
32440 PR target/69634
32441 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
32442 debug insns.
32443
32444 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
32445
32446 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
32447 truncate const_int operand 1 to QImode.
32448
32449 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
32450
32451 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
32452 corresponding to an abnormal edge.
32453
32454 2016-02-09 Tom de Vries <tom@codesourcery.com>
32455
32456 PR tree-optimization/69599
32457 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
32458 function.
32459 (find_func_aliases_for_builtin_call, find_func_clobbers)
32460 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
32461 partition.
32462
32463 2016-02-09 Richard Biener <rguenther@suse.de>
32464
32465 PR tree-optimization/69715
32466 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
32467 LHS on calls as non-rewritable.
32468
32469 2016-02-09 Tom de Vries <tom@codesourcery.com>
32470
32471 PR lto/69707
32472 * lto-wrapper.c (append_diag_options): New function.
32473 (compile_offload_image): Call append_diag_options.
32474
32475 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
32476
32477 PR other/69722
32478 * doc/extend.texi (Flag Output Operands): Correct sectioning.
32479 Minor copy-edit to fix verb tenses.
32480
32481 2016-02-08 Jakub Jelinek <jakub@redhat.com>
32482
32483 PR tree-optimization/69209
32484 * ipa-split.c (split_function): If split part is not
32485 returning retval, retval has gimple type but is not
32486 gimple value, force it into a SSA_NAME first.
32487
32488 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
32489
32490 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
32491 outdated section.
32492
32493 2016-02-08 Jason Merrill <jason@redhat.com>
32494
32495 PR c++/69631
32496 * convert.c (convert_to_integer_1): Check dofold on truncation
32497 distribution.
32498 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
32499 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
32500 Rename from *_nofold.
32501 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
32502 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
32503
32504 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
32505
32506 PR target/60410
32507 * tree.c (build_common_tree_nodes): Remove short_double argument.
32508 All callers changed.
32509 * tree.h (build_common_tree_nodes): Adjust declaration.
32510 * doc/invoke.texi (-fshort-double): Remove documentation.
32511 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
32512 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
32513 * lto-wrapper.c (merge_and_complain, append_compiler_options)
32514 (append_linker_options): Don't handle OPT_fshort_double.
32515
32516 PR rtl-optimization/68730
32517 * lra-remat.c (insn_to_cand_activation): New static variable.
32518 (lra_remat): Allocate and free it.
32519 (create_cand): New arg activation. Initialize a field in
32520 insn_to_cand_activation if it is nonnull.
32521 (create_cands): Pass the activation insn to create_cand when making
32522 a candidate involving an output reload. Reorganize code a little.
32523 (do_remat): Keep track of active status of candidates in a separate
32524 bitmap.
32525
32526 2016-02-08 Richard Biener <rguenther@suse.de>
32527
32528 PR tree-optimization/69719
32529 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
32530 Properly use absolute of the difference of the two offsets to
32531 compare or adjust the segment length.
32532
32533 2016-02-08 Richard Biener <rguenther@suse.de>
32534 Jeff Law <law@redhat.com>
32535
32536 PR target/68273
32537 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
32538 types for anonymous SSA names.
32539
32540 2016-02-08 Richard Biener <rguenther@suse.de>
32541
32542 PR rtl-optimization/69274
32543 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
32544
32545 2016-02-08 Jeff Law <law@redhat.com>
32546
32547 PR tree-optimization/65917
32548 * tree-ssa-dom.c (record_temporary_equivalences): Record both
32549 equivalences from if (x == y) style conditionals.
32550 (loop_depth_of_name): Remove.
32551 (record_equality): Remove loop depth check.
32552 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
32553 (const_and_copies::record_const_or_copy_raw): New member function.
32554 * tree-ssa-scopedtables.c
32555 (const_and_copies::record_const_or_copy_raw): New, factored out of
32556 (const_and_copies::record_const_or_copy): Call new member function.
32557
32558 2016-02-05 Jeff Law <law@redhat.com>
32559
32560 PR tree-optimization/68541
32561 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
32562 (count_stmts_in_block): New function.
32563 (poor_ifcvt_candidate_code): Likewise.
32564 (is_feasible_trace): Add some heuristics to determine when path
32565 splitting is profitable.
32566 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
32567 is a diamond with a single exit.
32568
32569 2016-02-05 Martin Sebor <msebor@redhat.com>
32570
32571 PR c++/69662
32572 * doc/invoke.texi: Update -Wplacement-new to take an optional
32573 argument.
32574
32575 2016-02-06 Richard Henderson <rth@redhat.com>
32576
32577 PR c/69643
32578 * tree.c (tree_nop_conversion_p): Do not strip casts into or
32579 out of non-standard address spaces.
32580
32581 2016-02-05 Jakub Jelinek <jakub@redhat.com>
32582
32583 PR rtl-optimization/69691
32584 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
32585
32586 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
32587
32588 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
32589 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
32590 (*ieee128_mfvsrd_64bit): Likewise.
32591 (*ieee128_mfvsrd_32bit): Likewise.
32592
32593 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
32594
32595 PR target/69369
32596 Revert r232560:
32597 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
32598
32599 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
32600 instrumented_version.
32601
32602 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
32603
32604 * doc/invoke.texi (Optimize Options): In table of --param options
32605 rename second occurrence of tracer-min-branch-ratio to
32606 tracer-min-branch-probability, rename
32607 tracer-min-branch-ratio-feedback to
32608 tracer-min-branch-probability-feedback and clarify description,
32609 rename sched-spec-state-edge-prob-cutoff to
32610 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
32611 to selsched-insns-to-rename, rename lto-minpartition to
32612 lto-min-partition, delete reorder-blocks-duplicate and
32613 reorder-blocks-duplicate-feedback.
32614
32615 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32616
32617 * config/s390/s390.c (s390_register_info_set_ranges): Remove
32618 superfluous loops.
32619
32620 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
32621
32622 * doc/extend.texi: S/390: Correct some typos.
32623
32624 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32625
32626 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
32627
32628 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32629
32630 PR target/69625
32631 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
32632 (s390_register_info_gprtofpr): Use new macros above.
32633 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
32634 its name.
32635 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
32636 its name. Adjust restore and save gpr ranges.
32637 (s390_register_info_set_ranges): New function.
32638 (s390_register_info): Use new macros above. Call
32639 s390_register_info_set_ranges.
32640 (s390_optimize_register_info): Likewise.
32641 (s390_hard_regno_rename_ok): Use new macros.
32642 (s390_hard_regno_scratch_ok): Likewise.
32643 (s390_emit_epilogue): Likewise.
32644 (s390_can_use_return_insn): Likewise.
32645 (s390_optimize_prologue): Likewise.
32646 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
32647
32648 2016-02-05 Jakub Jelinek <jakub@redhat.com>
32649
32650 PR bootstrap/69677
32651 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
32652 alignment fixes.
32653 (ix86_option_override_internal): Disable TARGET_STV even for
32654 -m{incoming,preferred}-stack-boundary=3.
32655
32656 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
32657
32658 * config.gcc: Mark deprecated rtems targets as obsolete.
32659
32660 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
32661
32662 PR rtl-optimization/64682
32663 PR rtl-optimization/69567
32664 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
32665 before I2 only if the register is both used and set in I2.
32666
32667 2016-02-04 DJ Delorie <dj@redhat.com>
32668
32669 * config/msp430/msp430.c (msp430_start_function): Add function type.
32670
32671 2016-02-04 Jakub Jelinek <jakub@redhat.com>
32672
32673 PR fortran/69368
32674 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
32675
32676 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
32677
32678 PR rtl-optimization/69577
32679 Revert:
32680 2015-10-29 Richard Henderson <rth@redhat.com>
32681
32682 PR target/68124
32683 PR rtl-opt/67609
32684 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
32685 sse check to the exact conditions of PR 67609.
32686
32687 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
32688
32689 PR target/69667
32690 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
32691 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
32692 not allowed into the traditional Altivec registers.
32693 (movtd_64bit_nodm): Likewise.
32694 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
32695
32696 2016-02-04 David Malcolm <dmalcolm@redhat.com>
32697
32698 * config/aarch64/cortex-a57-fma-steering.c
32699 (aarch64_register_fma_steering): Remove "static" from arguments
32700 to register_pass.
32701
32702 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
32703
32704 PR target/69619
32705 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
32706 twice when complex.
32707
32708 2016-02-04 Mike Frysinger <vapier@gentoo.org>
32709
32710 * doc/invoke.texi: Delete -mno-fma4.
32711
32712 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
32713
32714 PR rtl-optimization/69577
32715 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
32716 (find_subregs_of_mode): Update accordingly. Iterate over partial
32717 definitions.
32718
32719 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
32720
32721 * config/arm/arm-protos.h (neon_reinterpret): Remove.
32722 * config/arm/arm.c (neon_reinterpret): Remove.
32723 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
32724 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
32725 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
32726 vreinterpretti): Remove.
32727 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
32728 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
32729 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
32730 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
32731 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
32732 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
32733 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
32734 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
32735 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
32736 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
32737 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
32738 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
32739 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
32740 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
32741 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
32742 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
32743 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
32744 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
32745 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
32746 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
32747 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
32748 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
32749 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
32750 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
32751 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
32752 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
32753 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
32754 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
32755 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
32756 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
32757 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
32758 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
32759 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
32760 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
32761 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
32762 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
32763 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
32764 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
32765 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
32766 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
32767 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
32768 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
32769 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
32770 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
32771 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
32772 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
32773 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
32774 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
32775 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
32776 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
32777 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
32778 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
32779 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
32780 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
32781 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
32782 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
32783 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
32784 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
32785 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
32786 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
32787 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
32788 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
32789 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
32790 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
32791 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
32792 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
32793 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
32794 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
32795 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
32796 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
32797 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
32798 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
32799 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
32800 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
32801 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
32802 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
32803 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
32804 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
32805 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
32806 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
32807 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
32808 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
32809 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
32810 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
32811 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
32812 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
32813 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
32814 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
32815 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
32816 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
32817 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
32818 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
32819 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
32820 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
32821 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
32822 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
32823 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
32824 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
32825 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
32826 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
32827 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
32828 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
32829 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
32830
32831 2016-02-04 Martin Liska <mliska@suse.cz>
32832
32833 PR sanitizer/69276
32834 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
32835 that are gimple_store_p.
32836 (maybe_instrument_call): Likewise.
32837
32838 2016-02-04 Bin Cheng <bin.cheng@arm.com>
32839
32840 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
32841 register scaling out of memory reference and comment why.
32842
32843 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32844
32845 PR target/65932
32846 PR target/67714
32847 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
32848 folding the source of a SET.
32849
32850 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32851
32852 PR target/65932
32853 PR target/67714
32854 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
32855 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
32856
32857 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
32858
32859 PR target/65932
32860 PR target/67714
32861 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
32862 HImode.
32863
32864 2016-02-04 Christian Bruel <christian.bruel@st.com>
32865
32866 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
32867 * config/arm/arm.c (arm_set_current_function): Likewise.
32868
32869 2016-02-04 Jakub Jelinek <jakub@redhat.com>
32870 Ilya Enkovich <enkovich.gnu@gmail.com>
32871 H.J. Lu <hongjiu.lu@intel.com>
32872
32873 PR target/69454
32874 * config/i386/i386.c (convert_scalars_to_vector): Remove
32875 stack alignment fixes.
32876 (ix86_option_override_internal): Disable TARGET_STV if stack
32877 might not be aligned enough.
32878 (ix86_minimum_alignment): Assert that TARGET_STV is false.
32879
32880 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
32881
32882 * config/i386/x86-tune.def: Disable default prefetching
32883 for -march=znver1.
32884
32885 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
32886 Vladimir Makarov <vmakarov@redhat.com>
32887
32888 PR target/69461
32889 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
32890 in validating fused toc addresses.
32891
32892 2016-02-03 Jakub Jelinek <jakub@redhat.com>
32893
32894 PR c/69627
32895 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
32896 range->m_caret fields if range->m_show_caret_p is false.
32897
32898 PR target/69644
32899 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
32900 Force oldval into register if it does not satisfy reg_or_short_operand
32901 predicate. Fix up formatting.
32902
32903 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
32904 Alexandre Oliva <aoliva@redhat.com>
32905
32906 PR target/69461
32907 * lra-constraints.c (simplify_operand_subreg): Check additionally
32908 address validity after potential reloading.
32909 (process_address_1): Check insns validity. In case of failure do
32910 nothing.
32911
32912 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
32913
32914 PR target/69118
32915 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
32916 Fix target.
32917
32918 2016-02-02 Jakub Jelinek <jakub@redhat.com>
32919
32920 * wide-int.cc (canonize_uhwi): New function.
32921 (wi::divmod_internal): Use it.
32922
32923 2016-02-02 James Norris <jnorris@codesourcery.com>
32924
32925 * gimplify.c (omp_notice_variable): Add usage check.
32926
32927 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
32928
32929 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
32930 like LE, GE, LT, GT when emitting relational operator.
32931
32932 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
32933
32934 * ira-costs.c (find_costs_and_classes): Add extra argument.
32935 * target.def (ira_change_pseudo_allocno_class): Add parameter.
32936 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
32937 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
32938 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
32939 Add best_class parameter, and return it if not ALL_REGS.
32940 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
32941 Add parameter.
32942 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
32943 Update target hook.
32944
32945 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
32946
32947 * config/aarch64/aarch64.c
32948 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
32949 (aarch64_ira_change_pseudo_allocno_class): New function.
32950
32951 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
32952
32953 PR target/67032
32954 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
32955
32956 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
32957
32958 * config/avr/avr.c (avr_option_override): Set
32959 PARAM_ALLOW_STORE_DATA_RACES to 1.
32960
32961 2016-02-02 Richard Biener <rguenther@suse.de>
32962
32963 PR tree-optimization/69595
32964 * match.pd: Add range test simplifications to true/false.
32965
32966 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
32967
32968 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
32969 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
32970 instead.
32971
32972 2016-02-02 Richard Biener <rguenther@suse.de>
32973
32974 PR tree-optimization/69606
32975 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
32976 info on the result before moving a stmt.
32977
32978 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
32979
32980 PR middle-end/68542
32981 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
32982 branch with vector comparison.
32983 * config/i386/sse.md (VI48_AVX): New mode iterator.
32984 (define_expand "cbranch<mode>4): Add support for conditional branch
32985 with vector comparison.
32986 * tree-vect-loop.c (optimize_mask_stores): New function.
32987 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
32988 has_mask_store field of vect_info.
32989 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
32990 vectorized loops having masked stores after vec_info destroy.
32991 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
32992 correspondent macros.
32993 (optimize_mask_stores): Add prototype.
32994
32995 2016-02-02 Alan Modra <amodra@gmail.com>
32996
32997 PR target/69548
32998 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
32999 allow subregs.
33000
33001 2016-02-02 Alan Modra <amodra@gmail.com>
33002
33003 PR target/68662
33004 * config/rs6000/rs6000.c (need_toc_init): New var, set it
33005 whenever toc_label_name used.
33006 (rs6000_file_start): Don't set up toc section here,
33007 (rs6000_output_function_epilogue): do so here instead,
33008 (rs6000_xcoff_file_start): and here.
33009 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
33010 (load_toc_aix_di): Likewise.
33011
33012 2016-02-01 Jakub Jelinek <jakub@redhat.com>
33013
33014 PR rtl-optimization/69592
33015 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
33016 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
33017 (num_sign_bit_copies_binary_arith_p): New inline function.
33018 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
33019
33020 2016-02-01 Jeff Law <law@redhat.com>
33021
33022 PR tree-optimization/69580
33023 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
33024 * tree-ssa-threadbackward.c
33025 (fsm_find_control_statement_thread_paths): Do not try to walk
33026 through large PHI nodes.
33027
33028 2016-02-01 Jakub Jelinek <jakub@redhat.com>
33029
33030 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
33031 when count is incremented above limit, don't analyze further
33032 insns afterwards.
33033
33034 * omp-low.c (oacc_parse_default_dims): Avoid
33035 -Wsign-compare warning, make sure value fits into int
33036 rather than just unsigned int.
33037
33038 2016-02-01 Bin Cheng <bin.cheng@arm.com>
33039
33040 PR tree-optimization/67921
33041 * fold-const.c (split_tree): New parameters. Convert pointer
33042 type variable part to proper type before negating.
33043 (fold_binary_loc): Pass new arguments to split_tree.
33044
33045 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
33046
33047 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
33048 (nvptx_goacc_validate_dims): Extend to handle global defaults.
33049 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
33050 * doc/tm.texti: Rebuilt.
33051 * doc/invoke.texi (fopenacc-dim): Document.
33052 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
33053 (append_compiler_options): Likewise.
33054 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
33055 (oacc_parse_default_dims): New.
33056 (oacc_validate_dims): Add USED arg. Select non-unity default when
33057 possible.
33058 (oacc_loop_fixed_partitions): Return mask of used partitions.
33059 (oacc_loop_auto_partitions): Emit dump info.
33060 (oacc_loop_partition): Return mask of used partitions.
33061 (execute_oacc_device_lower): Parse default dimension arg. Adjust
33062 loop partitioning and validation calls.
33063
33064 2016-02-01 Richard Biener <rguenther@suse.de>
33065
33066 PR middle-end/69556
33067 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
33068
33069 2016-02-01 Richard Biener <rguenther@suse.de>
33070
33071 PR tree-optimization/69574
33072 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
33073 of asserting return chrec_dont_know.
33074
33075 2016-02-01 Martin Liska <mliska@suse.cz>
33076
33077 * mem-stats-traits.h: Add copyright header.
33078 * mem-stats.h: Likewise.
33079
33080 2016-02-01 Richard Biener <rguenther@suse.de>
33081
33082 PR tree-optimization/69579
33083 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
33084 Do not propagate through abnormal PHI results.
33085
33086 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
33087
33088 * postreload.c (reload_cse_simplify): Remove dead code.
33089
33090 2016-02-01 Jakub Jelinek <jakub@redhat.com>
33091
33092 PR rtl-optimization/69570
33093 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
33094 if there is more than one set, not if there is a single set.
33095
33096 2016-02-01 Richard Henderson <rth@redhat.com>
33097
33098 PR rtl-opt/69535
33099 * combine.c (make_compound_operation): When looking through a
33100 subreg, make sure to re-extend to the width of the outer mode.
33101
33102 2016-01-30 Jakub Jelinek <jakub@redhat.com>
33103
33104 PR tree-optimization/69546
33105 * wide-int.cc (wi::divmod_internal): For unsigned division
33106 where both operands fit into uhwi, if o1 is 1 and o0 has
33107 msb set, if divident_prec is larger than bits per hwi,
33108 clear another quotient word and return 2 instead of 1.
33109 Similarly for remainder with msb in HWI set, if dividend_prec
33110 is larger than bits per hwi.
33111
33112 2016-01-29 Martin Jambor <mjambor@suse.cz>
33113
33114 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
33115 Use short lowercase names.
33116 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
33117 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
33118 acq_rel one. Protect warning agains segfaults if
33119 get_memory_order_name returns NULL.
33120 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
33121 with release semantics. Do not warn if get_memory_order already did.
33122 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
33123 semantics. Fix check for relaxed or acquire semantics. Do not warn
33124 if get_memory_order already did.
33125
33126 2016-01-29 Sebastian Pop <s.pop@samsung.com>
33127
33128 * doc/install.texi: Document that isl-0.16 is supported.
33129
33130 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
33131
33132 PR target/69299
33133 * config/i386/constraints.md (Bm): Describe as special memory
33134 constraint.
33135 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
33136 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
33137 * genpreds.c (struct constraint_data): Add is_special_memory.
33138 (have_special_memory_constraints, special_memory_start): New
33139 static vars.
33140 (special_memory_end): Ditto.
33141 (add_constraint): Add new arg is_special_memory. Add code to
33142 process its true value. Update have_special_memory_constraints.
33143 (process_define_constraint): Pass the new arg.
33144 (process_define_register_constraint): Ditto.
33145 (choose_enum_order): Process special memory.
33146 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
33147 function insn_extra_special_memory_constraint.
33148 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
33149 * gensupport.c (process_rtx): Process
33150 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
33151 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
33152 * ira-lives.c (single_reg_class): Use
33153 insn_extra_special_memory_constraint.
33154 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
33155 * lra-constraints.c (process_alt_operands): Ditto.
33156 (curr_insn_transform): Use insn_extra_special_memory_constraint.
33157 * recog.c (asm_operand_ok, preprocess_constraints): Process
33158 CT_SPECIAL_MEMORY.
33159 * reload.c (find_reloads): Ditto.
33160 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
33161 * stmt.c (parse_input_constraint): Use
33162 insn_extra_special_memory_constraint.
33163
33164 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
33165
33166 PR target/69530
33167 * lra-splill.c (lra_final_code_change): Revert r229087 by
33168 removing all sub-registers.
33169
33170 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
33171
33172 PR target/65604
33173 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
33174
33175 2016-01-29 Jakub Jelinek <jakub@redhat.com>
33176
33177 PR target/69551
33178 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
33179 SSE1, copy target into the temporary reg first before recursing
33180 on it.
33181
33182 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
33183
33184 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
33185 with vm.
33186
33187 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
33188
33189 * ginclude/stdarg.h: Test __cplusplus instead of
33190 __GXX_EXPERIMENTAL_CXX0X__.
33191
33192 2016-01-29 Richard Biener <rguenther@suse.de>
33193
33194 PR tree-optimization/69547
33195 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
33196 Do not mark clobbers necessary.
33197 (mark_all_reaching_defs_necessary_1): Likewise.
33198
33199 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
33200
33201 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
33202 declaration name with %qs and print it in both error messages.
33203 Also fix indentation.
33204
33205 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
33206
33207 PR other/69006
33208 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
33209 trailing blank line from error message.
33210
33211 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
33212
33213 PR c++/69462
33214 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
33215 for C++-11.
33216
33217 2016-01-29 Richard Biener <rguenther@suse.de>
33218
33219 PR middle-end/69537
33220 * match.pd: Allow all integral types when simplifying a
33221 widening or sign-changing conversion.
33222
33223 2016-01-28 Sebastian Pop <s.pop@samsung.com>
33224
33225 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
33226 back to setting codegen_error to fail codegen.
33227
33228 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
33229
33230 PR target/69459
33231 * config/i386/constraints.md (C): Only accept constant zero operand.
33232 (BC): New constraint.
33233 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
33234 instead of C constraint.
33235 * doc/md.texi (Machine Constraints): Update description
33236 of C constraint.
33237
33238 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
33239
33240 PR target/68400
33241 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
33242
33243 2016-01-28 Jakub Jelinek <jakub@redhat.com>
33244
33245 PR middle-end/69542
33246 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
33247 non-debug insns.
33248
33249 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
33250
33251 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
33252 branches if using guessed profile.
33253
33254 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
33255
33256 * graphite-optimize-isl.c (optimize_isl): Fix dump.
33257
33258 2016-01-28 Richard Henderson <rth@redhat.com>
33259
33260 PR target/69305
33261 * config/aarch64/aarch64-modes.def (CC_Cmode): New
33262 * config/aarch64/aarch64-protos.h: Update.
33263 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
33264 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
33265 (aarch64_get_condition_code_1): Handle CC_Cmode.
33266 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
33267 (*add<mode>3_compareC_cconly_imm): New.
33268 (*add<mode>3_compareC_cconly): New.
33269 (*add<mode>3_compareC_imm): New.
33270 (add<mode>3_compareC): New.
33271 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
33272 to be first. Use aarch64_carry_operation.
33273 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
33274 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
33275 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
33276 (subti3): Use subdi3_compare1.
33277 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
33278 (sub<mode>3_compare1): New.
33279 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
33280 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
33281 (*subsi3_carryin_uxtw): Likewise.
33282 (*ngc<mode>, *ngcsi_uxtw): Likewise.
33283 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
33284 * config/aarch64/iterators.md (DWI): New.
33285 * config/aarch64/predicates.md (aarch64_carry_operation): New.
33286 (aarch64_borrow_operation): New.
33287
33288 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
33289
33290 * graphite-optimize-isl.c (optimize_isl): Print a different debug
33291 message when isl does not return a valid schedule.
33292
33293 2016-01-28 Sebastian Pop <s.pop@samsung.com>
33294
33295 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
33296 Remove comments from class declarations: they are already in the code
33297 close by the defs.
33298
33299 2016-01-28 Sebastian Pop <s.pop@samsung.com>
33300
33301 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
33302 codegen_error_p.
33303 (ternary_op_to_tree): Same.
33304 (unary_op_to_tree): Same.
33305 (nary_op_to_tree): Same.
33306 (gcc_expression_from_isl_expr_op): Same.
33307 (gcc_expression_from_isl_expression): Same.
33308 (graphite_create_new_loop): Same.
33309 (graphite_create_new_loop_guard): Same.
33310 (build_iv_mapping): Same.
33311 (graphite_create_new_guard): Same.
33312 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
33313 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
33314
33315 2016-01-28 Sebastian Pop <s.pop@samsung.com>
33316
33317 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
33318 instead of setting codegen_error to fail codegen.
33319
33320 2016-01-28 Jason Merrill <jason@redhat.com>
33321
33322 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
33323
33324 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
33325
33326 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
33327 Remove CONST_INT_P check in CCMP cost calculation.
33328
33329 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
33330
33331 * config/aarch64/aarch64.c (generic_vector_cost):
33332 Set vec_permute_cost.
33333 (cortexa57_vector_cost): Likewise.
33334 (exynosm1_vector_cost): Likewise.
33335 (xgene1_vector_cost): Likewise.
33336 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
33337 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
33338 Add vec_permute_cost entry.
33339
33340 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
33341
33342 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
33343 immediate as %1.
33344 (add<mode>3_compare0): Likewise.
33345 (addsi3_compare0_uxtw): Likewise.
33346 (add<mode>3nr_compare0): Likewise.
33347 (compare_neg<mode>): Likewise.
33348 (<optab><mode>3): Likewise.
33349
33350 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
33351
33352 * tree-vect-stmts.c (vectorizable_comparison): Add
33353 NULL check for vectype.
33354
33355 2016-01-28 Richard Biener <rguenther@suse.de>
33356
33357 PR tree-optimization/69466
33358 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
33359 Account for PHIs we couldn't duplicate.
33360
33361 2016-01-28 Martin Liska <mliska@suse.cz>
33362
33363 PR pch/68758
33364 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
33365 instead of ENABLE_VALGRIND_CHECKING.
33366
33367 2016-01-27 Richard Henderson <rth@redhat.com>
33368
33369 PR rtl-opt/69447
33370 * lra-remat.c (subreg_regs): New.
33371 (dump_candidates_and_remat_bb_data): Dump it.
33372 (operand_to_remat): Reject if operand in subreg_regs.
33373 (set_bb_regs): Collect subreg_regs.
33374 (lra_remat): Init and free subreg_regs. Compute
33375 calculate_local_reg_remat_bb_data before create_cands.
33376
33377 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
33378
33379 PR target/68986
33380 * config/i386/i386.c (ix86_update_stack_boundary): Don't
33381 change stack_alignment_needed for __tls_get_addr call.
33382
33383 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
33384
33385 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
33386
33387 2016-01-27 Jeff Law <law@redhat.com>
33388
33389 PR tree-optimization/68398
33390 PR tree-optimization/69196
33391 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
33392 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
33393 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
33394 Only count PHIs in the last block in the path. The others will
33395 const/copy propagate away. Add heuristic to allow more irreducible
33396 subloops to be created when it is likely profitable to do so.
33397
33398 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
33399 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
33400 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
33401
33402 2016-01-27 Jakub Jelinek <jakub@redhat.com>
33403
33404 PR lto/69254
33405 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
33406 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
33407 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
33408 * tree-streamer-in.c: Include asan.h.
33409 (streamer_get_builtin_tree): For builtins in sanitizer
33410 range call initialize_sanitizer_builtins and retry.
33411
33412 2016-01-27 Ian Lance Taylor <iant@google.com>
33413
33414 * common.opt (fkeep-gc-roots-live): New undocumented option.
33415 * tree-ssa-loop-ivopts.c (add_candidate_1): If
33416 -fkeep-gc-roots-live, skip pointers.
33417 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
33418 NULL.
33419
33420 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
33421
33422 PR target/69512
33423 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
33424 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
33425
33426 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
33427
33428 PR target/68380
33429 * configure.ac: NetBSD provides SSP in its C library.
33430 * configure: Updated.
33431
33432 2016-01-27 Richard Biener <rguenther@suse.de>
33433
33434 PR tree-optimization/69166
33435 * tree-vect-loop.c (vect_is_simple_reduction): Always check
33436 reduction code for commutativity / associativity.
33437
33438 2016-01-27 Martin Jambor <mjambor@suse.cz>
33439
33440 PR tree-optimization/69355
33441 * tree-sra.c (analyze_access_subtree): Correct hole detection when
33442 total_scalarization fails.
33443
33444 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
33445
33446 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
33447 power9.
33448
33449 2016-01-27 Christian Bruel <christian.bruel@st.com>
33450
33451 PR target/69245
33452 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
33453 Move arm_reset_previous_fndecl and set_target_option_current_node in
33454 the conditional part. Call save_restore_target_globals.
33455 * config/arm/arm.c (arm_set_current_function):
33456 Refactor to better support #pragma target and attribute mix.
33457 Call save_restore_target_globals.
33458 * config/arm/arm-protos.h (save_restore_target_globals): New function.
33459
33460 2016-01-27 Martin Liska <mliska@suse.cz>
33461
33462 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
33463 reference for an HSA kernel and its host function.
33464
33465 2016-01-27 Jakub Jelinek <jakub@redhat.com>
33466
33467 PR tree-optimization/69399
33468 * wide-int.h (wi::lrshift): For larger precisions, only
33469 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
33470
33471 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
33472
33473 * config/arc/predicates.md (proper_comparison_operator): Reject
33474 constant-constant comparison.
33475
33476 2016-01-26 Tom de Vries <tom@codesourcery.com>
33477
33478 PR tree-optimization/69110
33479 * tree-data-ref.c (initialize_data_dependence_relation): Handle
33480 DR_NUM_DIMENSIONS == 0.
33481
33482 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
33483 Sebastian Pop <s.pop@samsung.com>
33484
33485 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
33486 isl_ast_op_cond and isl_ast_op_select.
33487 (gcc_expression_from_isl_expr_op): Same.
33488
33489 2016-01-26 Jason Merrill <jason@redhat.com>
33490
33491 PR c++/68782
33492 * tree.c (recompute_constructor_flags): Split out from
33493 build_constructor.
33494 (verify_constructor_flags): New.
33495 * tree.h: Declare them.
33496
33497 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
33498
33499 PR rtl-optimization/69217
33500 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
33501 are no TYPE_FIELDS set for the record type.
33502
33503 2016-01-26 Jakub Jelinek <jakub@redhat.com>
33504
33505 PR target/68662
33506 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
33507 toc_label_name unconditionally.
33508 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
33509 SYMBOL_REF string. Use toc_label_name instead of constructing
33510 LCTOC1.
33511 (rs6000_elf_declare_function_name): Use toc_label_name instead of
33512 constructing LCTOC1.
33513
33514 2016-01-26 Martin Sebor <msebor@redhat.com>
33515
33516 PR other/69477
33517 * doc/extend.texi (Common Type Attributes): Move text that talks about
33518 attribute packed from attribute aligned to the section discussing
33519 the former attribute for clarity.
33520
33521 2016-01-26 Richard Henderson <rth@redhat.com>
33522
33523 PR middle-end/60908
33524 * trans-mem.c (tm_region_init): Mark entry block as visited.
33525
33526 2016-01-26 David Malcolm <dmalcolm@redhat.com>
33527
33528 PR other/69006
33529 * diagnostic-show-locus.c (layout::print_source_line): Replace
33530 call to pp_newline with call to layout::print_newline.
33531 (layout::print_annotation_line): Likewise.
33532 (layout::move_to_column): Likewise.
33533 (layout::print_any_fixits): After printing any fixits, print a
33534 trailing newline, if necessary.
33535 (layout::print_newline): New method, resetting any colorization
33536 before a newline.
33537 (diagnostic_show_locus): Move the pp_newline to before the
33538 early bailout. Remove dummy block enclosing the layout instance.
33539 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
33540 of pp_newline_and_flush with pp_flush.
33541 (diagnostic_append_note): Delete use of pp_newline.
33542 (diagnostic_append_note_at_rich_loc): Delete.
33543 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
33544 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
33545 when newline characters are added to the buffer.
33546
33547 2016-01-26 Michael Matz <matz@suse.de>
33548
33549 * configure.ac (ac_cv_std_swap_in_utility): New test.
33550 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
33551 * configure: Regenerate.
33552 * config.in: Regenerate.
33553
33554 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
33555
33556 * config/arc/arc.md (cstoresi4): Force operand into register.
33557 (arcset<code>): Fix predicate.
33558 (arcsetltu): Likewise.
33559 (arcsetgeu): Likewise.
33560 (arcsethi): Likewise.
33561 (arcsetls): Likewise.
33562
33563 2016-01-26 Jakub Jelinek <jakub@redhat.com>
33564
33565 PR tree-optimization/69483
33566 * gimple-fold.c (canonicalize_constructor_val): Return NULL
33567 if base has error_mark_node type.
33568
33569 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
33570
33571 PR target/68620
33572 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
33573 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
33574 New helper macros.
33575 (vget_lane_f16): Handle big-endian.
33576 (vgetq_lane_f16): Likewise.
33577 (vset_lane_f16): Likewise.
33578 (vsetq_lane_f16): Likewise.
33579 * config/arm/iterators.md (VQXMOV): Add V8HF.
33580 (VDQ): Add V4HF and V8HF.
33581 (V_reg): Handle V4HF and V8HF.
33582 (Is_float_mode): Likewise.
33583 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
33584 neon_vdup_nv8hf): New patterns.
33585 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
33586 Use VD_LANE iterator.
33587 (neon_vld1_dup<mode>): Use VQ2 iterator.
33588
33589 2016-01-26 Nathan Sidwell <nathan@acm.org>
33590
33591 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
33592 (set_oacc_fn_attrib): Add IS_KERNEL arg.
33593 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
33594 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
33595 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
33596 (oacc_validate_dims): Add LEVEL arg, don't return level.
33597 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
33598 oacc_validate_dims.
33599 (execute_oacc_device_lower): Adjust, add more dump output.
33600 * tree-ssa-loop.c (gate_oacc_kernels): Use
33601 oacc_fn_attrib_kernels_p.
33602 * tree-parloops.c (create_parallel_loop): Adjust
33603 set_oacc_fn_attrib call.
33604
33605 2016-01-26 Jakub Jelinek <jakub@redhat.com>
33606
33607 PR lto/69254
33608 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
33609 (append_compiler_options): Handle -fcilkplus.
33610 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
33611
33612 2016-01-26 Nick Clifton <nickc@redhat.com>
33613
33614 PR target/66655
33615 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
33616 been marked as DECL_ONE_ONLY but we do not the means to make it
33617 so, then do not allow it to bind locally.
33618
33619 2016-01-26 Jakub Jelinek <jakub@redhat.com>
33620
33621 PR lto/69254
33622 * opts.h (parse_sanitizer_options): New prototype.
33623 * opts.c (sanitizer_opts): New array.
33624 (parse_sanitizer_options): New function.
33625 (common_handle_option): Use parse_sanitizer_options.
33626
33627 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
33628
33629 PR target/68986
33630 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
33631 alignment adjustment to ...
33632 (ix86_update_stack_boundary): Here. Don't over-align stack for
33633 __tls_get_addr.
33634 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
33635 if __tls_get_addr is called.
33636
33637 2016-01-26 Christian Bruel <christian.bruel@st.com>
33638
33639 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
33640
33641 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
33642
33643 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
33644
33645 2016-01-26 Richard Biener <rguenther@suse.de>
33646
33647 PR middle-end/69467
33648 * match.pd: Guard X * CST CMP 0 pattern with single_use.
33649
33650 2016-01-26 Richard Biener <rguenther@suse.de>
33651
33652 PR tree-optimization/69452
33653 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
33654 (move_computations_dom_walker::before_dom_children): Rename
33655 to ...
33656 (move_computations_worker): This.
33657 (move_computations): Perform an RPO rather than a DOM walk.
33658
33659 2016-01-26 Jakub Jelinek <jakub@redhat.com>
33660
33661 PR target/69442
33662 * combine.c (combine_instructions): For REG_EQUAL note with
33663 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
33664 to the underlying register.
33665 * doc/rtl.texi (REG_EQUAL): Document the behavior of
33666 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
33667
33668 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
33669
33670 PR target/67896
33671 * config/aarch64/aarch64-builtins.c
33672 (aarch64_init_simd_builtin_types): Do not set structural
33673 equality to __Poly{8,16,64,128}_t types.
33674
33675 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
33676
33677 PR tree-optimization/69400
33678 * wide-int.cc (wi_pack): Take the precision as argument and
33679 perform canonicalization here rather than in the callers.
33680 Use the main loop to handle all full-width HWIs. Add a
33681 zero HWI if in_len isn't a full result.
33682 (wi::divmod_internal): Update accordingly.
33683 (wi::mul_internal): Likewise. Simplify.
33684
33685 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
33686 Sebastian Pop <s.pop@samsung.com>
33687
33688 * graphite-poly.c (apply_poly_transforms): Simplify.
33689 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
33690 (print_isl_map): Same.
33691 (print_isl_union_map): Same.
33692 (print_isl_schedule): New.
33693 (debug_isl_schedule): New.
33694 * graphite-dependences.c (scop_get_reads): Do not call
33695 isl_union_map_add_map that is undocumented isl functionality.
33696 (scop_get_must_writes): Same.
33697 (scop_get_may_writes): Same.
33698 (scop_get_original_schedule): Remove.
33699 (scop_get_dependences): Do not call isl_union_map_compute_flow that
33700 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
33701 (compute_deps): Remove.
33702 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
33703 (debug_schedule_ast): New.
33704 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
33705 set_separate_option.
33706 (graphite_regenerate_ast_isl): Add dump.
33707 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
33708 from scop->transformed_schedule.
33709 (graphite_regenerate_ast_isl): Add more dump.
33710 * graphite-optimize-isl.c (optimize_isl): Set
33711 scop->transformed_schedule. Check whether schedules are equal.
33712 (apply_poly_transforms): Move here.
33713 * graphite-poly.c (apply_poly_transforms): ... from here.
33714 (free_poly_bb): Static.
33715 (free_scop): Static.
33716 (pbb_number_of_iterations_at_time): Remove.
33717 (print_isl_ast): New.
33718 (debug_isl_ast): New.
33719 (debug_scop_pbb): New.
33720 * graphite-scop-detection.c (print_edge): Move.
33721 (print_sese): Move.
33722 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
33723 (build_scop_scattering): Remove.
33724 (create_pw_aff_from_tree): Assert instead of bailing out.
33725 (add_condition_to_pbb): Remove unused code, do not fail.
33726 (add_conditions_to_domain): Same.
33727 (add_conditions_to_constraints): Remove.
33728 (build_scop_context): New.
33729 (add_iter_domain_dimension): New.
33730 (build_iteration_domains): Initialize pbb->iterators.
33731 Call add_conditions_to_domain.
33732 (nested_in): New.
33733 (loop_at): New.
33734 (index_outermost_in_loop): New.
33735 (index_pbb_in_loop): New.
33736 (outermost_pbb_in): New.
33737 (add_in_sequence): New.
33738 (add_outer_projection): New.
33739 (outer_projection_mupa): New.
33740 (add_loop_schedule): New.
33741 (build_schedule_pbb): New.
33742 (build_schedule_loop): New.
33743 (embed_in_surrounding_loops): New.
33744 (build_schedule_loop_nest): New.
33745 (build_original_schedule): New.
33746 (build_poly_scop): Call build_original_schedule.
33747 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
33748 (free_poly_dr): Remove.
33749 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
33750 (free_poly_bb): Remove.
33751 (debug_loop_vec): Remove.
33752 (print_isl_ast): Declare.
33753 (debug_isl_ast): Declare.
33754 (scop_do_interchange): Remove.
33755 (scop_do_strip_mine): Remove.
33756 (scop_do_block): Remove.
33757 (flatten_all_loops): Remove.
33758 (optimize_isl): Remove.
33759 (pbb_number_of_iterations_at_time): Remove.
33760 (debug_scop_pbb): Declare.
33761 (print_schedule_ast): Declare.
33762 (debug_schedule_ast): Declare.
33763 (struct scop): Remove schedule. Add original_schedule,
33764 transformed_schedule.
33765 (free_gimple_poly_bb): Remove.
33766 (print_generated_program): Remove.
33767 (debug_generated_program): Remove.
33768 (unify_scattering_dimensions): Remove.
33769 * sese.c (print_edge): ... here.
33770 (print_sese): ... here.
33771 (debug_edge): ... here.
33772 (debug_sese): ... here.
33773 * sese.h (print_edge): Declare.
33774 (print_sese): Declare.
33775 (dump_edge): Declare.
33776 (dump_sese): Declare.
33777
33778 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
33779 Sebastian Pop <s.pop@samsung.com>
33780
33781 * Makefile.in: Set ISLVER in site.exp.
33782
33783 2016-01-25 Jakub Jelinek <jakub@redhat.com>
33784
33785 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
33786 DECL_VALUE_EXPR of new_var even for the non-array case. Look
33787 through DECL_VALUE_EXPR for expansion.
33788
33789 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
33790
33791 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
33792 the frame info after reload completed.
33793
33794 2016-01-25 Jeff Law <law@redhat.com>
33795
33796 PR tree-optimization/69196
33797 PR tree-optimization/68398
33798 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
33799 tree-ssa-threadupdate.c.
33800 (determine_bb_domination_status): Prototype
33801 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
33802 (determine_bb_domination_status): No longer static.
33803 (valid_jump_thread_path): Remove code to detect characteristics
33804 of the jump thread path not associated with correctness.
33805 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
33806 Correct test for thread path length. Count PHIs for real operands as
33807 statements that need to be copied. Do not count ASSERT_EXPRs.
33808 Look at all the blocks in the thread path. Compute and selectively
33809 filter thread paths based on threading through the latch, threading
33810 a multiway branch or crossing a multiway branch.
33811
33812 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33813
33814 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
33815 decl with __attribute__ ((unused)) annotation.
33816
33817 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
33818
33819 PR target/69421
33820 * tree-vect-stmts.c (vectorizable_condition): Check vectype
33821 of operands is compatible with a statement vectype.
33822
33823 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
33824
33825 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
33826 improve wording for mixed storage order support.
33827
33828 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
33829
33830 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
33831 (vcvt_u64_f64): Likewise.
33832 (vcvta_s64_f64): Likewise.
33833 (vcvta_u64_f64): Likewise.
33834 (vcvtm_s64_f64): Likewise.
33835 (vcvtm_u64_f64): Likewise.
33836 (vcvtn_s64_f64): Likewise.
33837 (vcvtn_u64_f64): Likewise.
33838 (vcvtp_s64_f64): Likewise.
33839 (vcvtp_u64_f64): Likewise.
33840
33841 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
33842
33843 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
33844 (arc_init): Check validity mll64 option.
33845 (arc_save_restore): Use double load/store instruction.
33846 (arc_expand_movmem): Likewise.
33847 (arc_split_move): Don't split if we have double load/store
33848 instructions. Returns a boolean.
33849 (arc_process_double_reg_moves): Change function to return boolean
33850 instead of a sequence of instructions.
33851 (arc_dwarf_register_span): New function.
33852 * config/arc/arc-protos.h (arc_split_move): Change prototype.
33853 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
33854 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
33855 (*movdf_insn): Likewise.
33856 * config/arc/arc.opt (mll64): New option.
33857 * config/arc/predicates.md (even_register_operand): New predicate.
33858 * doc/invoke.texi (ARC Options): Add mll64 documentation.
33859
33860 2016-01-25 Richard Biener <rguenther@suse.de>
33861
33862 PR lto/69393
33863 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
33864 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
33865 DECL_NAMELESS.
33866 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
33867
33868 2016-01-25 Richard Biener <rguenther@suse.de>
33869
33870 PR tree-optimization/69376
33871 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
33872 flag.
33873 (VN_INFO_ANTI_RANGE_P): New inline.
33874 (VN_INFO_RANGE_TYPE): Likewise.
33875 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
33876 SSA_NAME_ANTI_RANGE_P.
33877 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
33878 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33879 Properly query VN_INFO_RANGE_TYPE.
33880
33881 2016-01-25 Nick Clifton <nickc@redhat.com>
33882
33883 PR target/66655
33884 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
33885
33886 2016-01-23 Tom de Vries <tom@codesourcery.com>
33887
33888 PR tree-optimization/69426
33889 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
33890 removed clobber.
33891
33892 2016-01-23 Jakub Jelinek <jakub@redhat.com>
33893
33894 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
33895 "the the" with "the" in the comments.
33896 * ipa-devirt.c (build_type_inheritance_graph,
33897 update_type_inheritance_graph): Likewise.
33898 * tree.c (build_function_type_list_1): Likewise.
33899 * cfgloopmanip.c (scale_loop_profile): Likewise.
33900 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
33901 * gimple-ssa-split-paths.c
33902 (find_block_to_duplicate_for_splitting_paths): Likewise.
33903 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
33904 * expr.c (convert_move): Likewise.
33905 * var-tracking.c (vt_stack_adjustments): Likewise.
33906 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
33907 * tree-vrp.c (test_for_singularity): Likewise.
33908
33909 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
33910 directly instead of building a temporary tree.
33911
33912 PR bootstrap/69434
33913 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
33914 remove <algorithm> include.
33915
33916 2016-01-22 Jakub Jelinek <jakub@redhat.com>
33917
33918 PR target/69432
33919 * config/i386/i386.c: Include dojump.h.
33920 (expand_small_movmem_or_setmem,
33921 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
33922 fixes.
33923 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
33924 if dynamic_check != -1.
33925
33926 2016-01-21 Jeff Law <law@redhat.com>
33927
33928 PR middle-end/69347
33929 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
33930 record_temporary_equivalences. Rewritten to avoid unnecessary calls
33931 into dominated_by_p.
33932 (cprop_into_successor_phis): Avoid unnecessary tests.
33933
33934 2016-01-22 Richard Henderson <rth@redhat.com>
33935
33936 PR target/69416
33937 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
33938 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
33939
33940 2016-01-22 Michael Matz <matz@suse.de>
33941
33942 * system.h (string, algorithm): Include only conditionally.
33943 (new): Include always under C++.
33944 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
33945 * final.c (toplevel): Ditto.
33946 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
33947 * genconditions.c (write_header): Make gencondmd.c define
33948 INCLUDE_STRING.
33949 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
33950
33951 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
33952 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
33953
33954 2016-01-22 Christian Bruel <christian.bruel@st.com>
33955
33956 PR target/68674
33957 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
33958
33959 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33960
33961 PR target/69403
33962 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
33963 define_insn_and_split. Ensure operands[1] and operands[0] do not
33964 get assigned the same register.
33965
33966 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
33967
33968 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
33969
33970 2016-01-22 Christian Bruel <christian.bruel@st.com>
33971
33972 * config/arm/arm-c.c (arm_pragma_target_parse):
33973 Remove warn_builtin_macro_redefined overwrite.
33974
33975 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
33976
33977 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
33978 flag_non_call_exceptions compatibility.
33979
33980 2016-01-22 Jakub Jelinek <jakub@redhat.com>
33981
33982 PR debug/66668
33983 * dwarf2out.c (add_child_die_after): New function.
33984 (dwarf_qual_info_t): New type.
33985 (dwarf_qual_info): New variable.
33986 (qualified_die_p): New function.
33987 (modified_type_die): For -fdebug-types-section, ensure
33988 canonical order of qualifiers. Put qualified DIEs adjacent
33989 to the corresponding non-qualified type DIE and search there
33990 for existing qualified DIEs.
33991
33992 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
33993
33994 * doc/extend.texi (scalar_storage_order type attribute): Document
33995 restriction on type punning and aliasing, and remove future tense.
33996
33997 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
33998
33999 PR target/69252
34000 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
34001 first stage.
34002
34003 2016-01-21 Jeff Law <law@redhat.com>
34004
34005 PR middle-end/69347
34006 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
34007 useless call to record_temporary_equivalences.
34008 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
34009 allocate 10 slots in the bb_path vector and let it grow as needed.
34010 (fsm_find_control_statement_thread_paths): Similarly for the next_path
34011 vector.
34012
34013 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
34014
34015 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
34016 Detangle.
34017 * configure: Regenerate.
34018
34019 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
34020
34021 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
34022 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
34023
34024 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
34025
34026 PR middle-end/66178
34027 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
34028 drop EXPAND_INITIALIZER.
34029 * rtl.h (contains_symbolic_reference_p): Declare.
34030 * rtlanal.c (contains_symbolic_reference_p): New function.
34031 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
34032 a subtraction into a NOT if symbolic constants are involved.
34033
34034 2016-01-21 Anton Blanchard <anton@samba.org>
34035 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34036
34037 PR target/63354
34038 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
34039 #define.
34040 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
34041 function.
34042
34043 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
34044
34045 * config/microblaze/microblaze.c
34046 (get_branch_target): New.
34047 (insert_wic_for_ilb_runout): New.
34048 (insert_wic): New.
34049 (microblaze_machine_dependent_reorg): New.
34050 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
34051 * config/microblaze/microblaze.md
34052 (UNSPEC_IPREFETCH): Define.
34053 (iprefetch): New pattern
34054 * config/microblaze/microblaze.opt
34055 (mxl-prefetch): New flag.
34056
34057 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
34058
34059 * config/microblaze/microblaze.h
34060 (FIXED_REGISTERS): Update in macro.
34061 (CALL_USED_REGISTERS): Update in macro.
34062
34063 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
34064
34065 PR rtl-optimization/68920
34066 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
34067 moves.
34068
34069 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
34070
34071 PR rtl-optimization/68990
34072 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
34073 pseudo instead of inheritance ones.
34074
34075 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
34076 Nick Clifton <nickc@redhat.com>
34077
34078 PR target/69129
34079 PR target/69012
34080 * config/mips/mips.c (mips_compute_frame_info): Initialise
34081 args_size and hard_frame_pointer_offset fields of the frame
34082 structure before calling mips_global_pointer.
34083
34084 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
34085
34086 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
34087 label reference.
34088 * configure: Regenerate.
34089
34090 2016-01-21 Richard Biener <rguenther@suse.de>
34091
34092 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
34093
34094 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
34095
34096 * config/s390/s390.c (s390_asm_declare_function_size): Add code
34097 to actually emit the .size directive.
34098
34099 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
34100 Jakub Jelinek <jakub@redhat.com>
34101
34102 PR target/69187
34103 PR target/65624
34104 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
34105 args array size by one to avoid buffer overflow.
34106
34107 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
34108
34109 * config/s390/s390.md (pool_section_start): Use switch_to_section
34110 to select proper read-only data section instead of hardcoding
34111 .rodata.
34112 (pool_section_end): Use switch_to_section to match the above.
34113
34114 2016-01-21 Richard Biener <rguenther@suse.de>
34115
34116 PR tree-optimization/69378
34117 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
34118 (set_ssa_val_to): Use it for dominance checks taking into
34119 account not executable edges.
34120
34121 2016-01-21 Jakub Jelinek <jakub@redhat.com>
34122
34123 PR c++/69355
34124 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
34125 for bitsize instead of GET_MODE_PRECISION (mode).
34126
34127 2016-01-20 Martin Sebor <msebor@redhat.com>
34128
34129 PR c/52291
34130 * extend.texi (__sync Builtins): Clarify the semantics of
34131 __sync_fetch_and_OP built-ins on pointers.
34132 (__atomic Builtins): Same.
34133
34134 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34135 Sebastian Pop <s.pop@samsung.com>
34136
34137 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
34138 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
34139 (is_valid_rename): Same.
34140 (translate_isl_ast_to_gimple::get_rename): Same.
34141 (translate_isl_ast_to_gimple::rename_all_uses): Same.
34142 (translate_isl_ast_to_gimple::rename_uses): Same.
34143 (get_new_name): Check for close_phi nodes.
34144 (copy_loop_phi_args): Use phi_node_kind.
34145 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
34146 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
34147
34148 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34149 Sebastian Pop <s.pop@samsung.com>
34150
34151 Revert commit r229783.
34152 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
34153 Remove use of parameter_rename_map.
34154 (copy_def): Remove.
34155 (copy_internal_parameters): Remove.
34156 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
34157 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
34158 (free_sese_info): Do not free parameter_rename_map.
34159 (set_rename): Do not use parameter_rename_map.
34160 (rename_uses): Update call to set_rename.
34161 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
34162 * sese.h (parameter_rename_map_t): Remove.
34163 (struct sese_info_t): Remove field parameter_rename_map.
34164
34165 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34166 Sebastian Pop <s.pop@samsung.com>
34167
34168 * graphite-isl-ast-to-gimple.c: Fix comment.
34169 * graphite-scop-detection.c (defined_in_loop_p): New.
34170 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
34171 names defined in loop.
34172
34173 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34174 Sebastian Pop <s.pop@samsung.com>
34175
34176 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
34177 Discard unstructured if-then-else regions.
34178
34179 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34180 Sebastian Pop <s.pop@samsung.com>
34181
34182 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
34183 (cleanup_loop_iter_dom): Remove.
34184 (build_loop_iteration_domains): Remove.
34185 (build_scop_context): Remove.
34186 (build_scop_iteration_domain): Remove.
34187 (add_loop_constraints): New.
34188 (build_iteration_domains): New.
34189 (build_poly_scop): Call build_iteration_domains.
34190
34191 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34192 Sebastian Pop <s.pop@samsung.com>
34193
34194 * graphite-scop-detection.c
34195 (scop_detection::harmful_loop_in_region): Free dom and loops.
34196 (scop_detection::loop_body_is_valid_scop): Free bbs.
34197
34198 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34199 Sebastian Pop <s.pop@samsung.com>
34200
34201 * graphite-scop-detection.c (record_loop_in_sese): New.
34202 (gather_bbs::before_dom_children): Call record_loop_in_sese.
34203 (build_scops): Remove call to build_sese_loop_nests.
34204 * sese.c (sese_record_loop): Remove.
34205 (build_sese_loop_nests): Remove.
34206 (new_sese_info): Remove region->loops.
34207 (free_sese_info): Same.
34208 * sese.h (sese_contains_loop): Same.
34209 (build_sese_loop_nests): Remove.
34210 (sese_contains_loop): Remove.
34211
34212 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34213 Sebastian Pop <s.pop@samsung.com>
34214
34215 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
34216 loop_is_valid_in_scop.
34217 (scop_detection::harmful_stmt_in_region): Renamed
34218 harmful_loop_in_region.
34219 Call loop_is_valid_in_scop.
34220
34221 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34222 Sebastian Pop <s.pop@samsung.com>
34223
34224 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
34225 isl_ast_node_mark.
34226
34227 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34228 Sebastian Pop <s.pop@samsung.com>
34229
34230 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
34231 * graphite.h (struct poly_bb): Remove field is_reduction.
34232 (PBB_IS_REDUCTION): Remove.
34233
34234 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
34235 Sebastian Pop <s.pop@samsung.com>
34236
34237 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
34238 (add_pdr_constraints): Same.
34239 (scop_get_reads): Same.
34240 (scop_get_must_writes): Same.
34241 (scop_get_may_writes): Same.
34242 (scop_get_original_schedule): Same.
34243 (extend_schedule): Same.
34244 (apply_schedule_on_deps): Same.
34245 (carries_deps): Same.
34246 (compute_deps): Same.
34247 (scop_get_dependences): Same.
34248 * graphite-isl-ast-to-gimple.c
34249 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
34250 * graphite-optimize-isl.c (get_schedule_for_band): Same.
34251 (get_schedule_for_band_list): Same.
34252 (get_schedule_map): Same.
34253 (apply_schedule_map_to_scop): Same.
34254 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
34255 (build_loop_iteration_domains): Same.
34256 (add_condition_to_pbb): Same.
34257 (add_param_constraints): Same.
34258 (pdr_add_memory_accesses): Same.
34259 (pdr_add_data_dimensions): Same.
34260
34261 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
34262
34263 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
34264 requirements.
34265
34266 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
34267
34268 * common.opt (feliminate-dwarf2-dups): Replace references to
34269 "DWARF 2" with just "DWARF".
34270 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
34271 * doc/extend.texi: Likewise.
34272 * doc/cpp.texi: Likewise.
34273 * doc/invoke.texi: Likewise.
34274 (Option Summary): Add -gdwarf to list of Debugging Options.
34275 (Debugging Options): Document -gdwarf.
34276 * doc/contrib.texi: Spell "DWARF" like that.
34277
34278 2016-01-21 Jakub Jelinek <jakub@redhat.com>
34279
34280 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
34281 warning. Fix up formatting.
34282
34283 PR middle-end/67653
34284 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
34285 attempt to mark memory input operand addressable and
34286 call prepare_gimple_addressable in that case. Don't adjust
34287 input_location for diagnostics, use error_at instead.
34288
34289 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
34290
34291 * config/rs6000/ppc-auxv.h: New file.
34292 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
34293 (cpu_is): Likewise.
34294 (cpu_supports): Likewise.
34295 * config/rs6000/rs6000.c: include "ppc-auxv.h".
34296 (cpu_is_info): New variable.
34297 (cpu_supports_info): Likewise.
34298 (tcb_verification_symbol): Likewise.
34299 (cpu_builtin_p): Likewise.
34300 (cpu_expand_builtin): New function.
34301 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
34302 (rs6000_init_builtins): Likewise.
34303 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
34304 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
34305 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
34306 * configure: Regenerate.
34307 * config.in: Likewise.
34308 * doc/extend.texi (PowerPC Built-in Functions): Document
34309 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
34310
34311 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
34312
34313 PR target/68609
34314 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
34315 domain check.
34316 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
34317 for V4SFmode.
34318
34319 2016-01-20 Richard Henderson <rth@redhat.com>
34320
34321 PR bootstrap/69343
34322 PR bootstrap/69339
34323 PR tree-opt/68964
34324 Revert:
34325 * tree.c (tm_define_builtin): New.
34326 (find_tm_vector_type): New.
34327 (build_tm_vector_builtins): New.
34328 (build_common_builtin_nodes): Call it.
34329
34330 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
34331
34332 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
34333 (arm_fp_ok): Likewise.
34334 (arm_fp): Likewise.
34335 (arm_crypto): Likewise.
34336
34337 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
34338 Richard Biener <rguenther@suse.de>
34339
34340 PR tree-optimization/69328
34341 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
34342 vectors have same number of elements.
34343 (vectorizable_condition): Fix masked version recognition.
34344
34345 2016-01-20 Richard Biener <rguenther@suse.de>
34346
34347 PR tree-optimization/69345
34348 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
34349 (VN_INFO_PTR_INFO): Likewise.
34350 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
34351 info when it is equal between non-dominating SSA names.
34352 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
34353 Make sure to look at original SSA infos.
34354
34355 2016-01-20 Jeff Law <law@redhat.com>
34356
34357 PR target/25114
34358 * config/m68k/predicates.md (pow2_m1_operand): New predicate
34359 extracted from ...
34360 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
34361 (pc_or_label_operand): New predicate.
34362 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
34363 tests for small integers that are 2^n - 1.
34364
34365 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
34366
34367 * doc/invoke.texi (Options Summary): Add '.' after @xref.
34368
34369 2016-01-19 Jeff Law <law@redhat.com>
34370
34371 PR middle-end/69347
34372 * tree-ssa-threadbackwards.c
34373 (fsm_find_control_statement_thread_paths): Do not try to lookup
34374 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
34375
34376 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
34377
34378 * doc/lto.texi: Remove text that says only Gold has linker plugin
34379 support.
34380
34381 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
34382
34383 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
34384 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
34385 the DIE accordingly.
34386 (modified_type_die): Add REVERSE parameter and pass it recursively,
34387 as well as to base_type_die. Adjust presence check accordingly.
34388 (base_type_for_mode): Adjust call to modified_type_die.
34389 (add_type_attribute): Add REVERSE parameter and pass it to
34390 modified_type_die.
34391 (generic_parameter_die): Adjust call to add_type_attribute.
34392 (add_scalar_info): Likewise.
34393 (add_subscript_info): Likewise.
34394 (gen_array_type_die): Likewise.
34395 (gen_descr_array_type_die): Likewise.
34396 (gen_entry_point_die): Likewise.
34397 (gen_enumeration_type_die): Likewise.
34398 (gen_formal_parameter_die): Likewise.
34399 (gen_subprogram_die): Likewise.
34400 (gen_variable_die ): Likewise.
34401 (gen_const_die): Likewise.
34402 (gen_field_die): Likewise.
34403 (gen_pointer_type_die): Likewise.
34404 (gen_reference_type_die): Likewise.
34405 (gen_ptr_to_mbr_type_die): Likewise.
34406 (gen_inheritance_die): Likewise.
34407 (gen_subroutine_type_die): Likewise.
34408 (gen_typedef_die): Likewise.
34409 (force_type_die): Adjust call to modified_type_die.
34410
34411 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
34412
34413 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
34414 flow throughout the file. Fix broken link to Objective-C 2.0
34415 documentation.
34416 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
34417 errors.
34418
34419 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
34420
34421 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
34422
34423 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
34424
34425 PR ipa/66223
34426 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
34427 (maybe_record_node): Record cxa_pure_virtual as the only possible
34428 target if there are not ohter candidates.
34429 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
34430
34431 2016-01-19 Richard Biener <rguenther@suse.de>
34432
34433 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
34434 (get_memory_order): Likewise.
34435
34436 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
34437
34438 * tree-vect-stmts.c (vectorizable_store): Check
34439 rhs vectype.
34440
34441 2016-01-19 David Malcolm <dmalcolm@redhat.com>
34442
34443 PR jit/68446
34444 * gcc.c (driver::decode_argv): Add call to
34445 init_opts_obstack before init_options_struct.
34446 * opts.c (init_opts_obstack): Remove idempotency.
34447 (init_options_struct): Replace call to init_opts_obstack
34448 with a gcc_assert to verify that it has already been called.
34449 * toplev.c (toplev::main): Add call to init_opts_obstack before
34450 calls to init_options_struct.
34451 (toplev::finalize): Move cleanup of opts_obstack next to
34452 cleanup of save_decoded_options, clearing the latter, and
34453 save_decoded_options_count.
34454
34455 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34456
34457 PR target/69135
34458 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
34459 attribute to unconditional. Remove %? from output template.
34460
34461 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
34462 Jiong Wang <jiong.wang@arm.com>
34463
34464 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
34465 generated from different expand order.
34466
34467 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
34468
34469 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
34470 Add support for CCMP costing.
34471
34472 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
34473
34474 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
34475 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
34476 (fccmpe<mode>): Likewise.
34477 (fcmp): Rename to fcmp and globalize pattern.
34478 (fcmpe): Likewise.
34479 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
34480 (aarch64_gen_ccmp_next): Add FP support.
34481
34482 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
34483
34484 * target.def (gen_ccmp_first): Update documentation.
34485 (gen_ccmp_next): Likewise.
34486 * doc/tm.texi (gen_ccmp_first): Update documentation.
34487 (gen_ccmp_next): Likewise.
34488 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
34489 expand_ccmp_expr_1. Improve comments.
34490 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
34491 (ccmp_ior<mode>): Remove pattern.
34492 (cmp<mode>): Remove expand.
34493 (cmp): Globalize pattern.
34494 (cstorecc4): Use cc_register.
34495 (mov<mode>cc): Remove ccmp_cc_register check.
34496 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
34497 Simplify after removal of CC_DNE/* modes.
34498 (aarch64_ccmp_mode_to_code): Remove.
34499 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
34500 In 'k' case use integer as condition.
34501 (aarch64_nzcv_codes): Remove inverted cases.
34502 (aarch64_code_to_ccmode): Remove.
34503 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
34504 comparison with CC register to be used in folowing CCMP/branch/CSEL.
34505 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
34506 pattern. Return the comparison with CC register. Invert conditions
34507 when bitcode is OR.
34508 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
34509 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
34510
34511 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
34512
34513 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
34514 instrumented_version.
34515
34516 2016-01-19 Richard Biener <rguenther@suse.de>
34517
34518 PR tree-optimization/69336
34519 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
34520 handled components with get_ref_base_and_extent.
34521 (equal_mem_array_ref_p): Adjust.
34522
34523 2016-01-19 Jakub Jelinek <jakub@redhat.com>
34524
34525 PR debug/65779
34526 * shrink-wrap.c: Include valtrack.h.
34527 (move_insn_for_shrink_wrap): Add DEBUG argument. If
34528 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
34529 in between insn and where it will be moved to. Call
34530 dead_debug_insert_temp.
34531 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
34532 first and dead_debug_local_finish at the end.
34533 For uses and defs bitmap, handle all regs in between REGNO and
34534 END_REGNO, not just the first one.
34535
34536 2016-01-19 Richard Biener <rguenther@suse.de>
34537
34538 PR tree-optimization/69352
34539 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
34540 (equal_mem_array_ref_p): Constrain size and max size properly.
34541 Compare the reverse flag.
34542
34543 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
34544
34545 * ira.c (ira): Update regstat data if we deleted insns.
34546
34547 2016-01-19 Jakub Jelinek <jakub@redhat.com>
34548
34549 PR rtl-optimization/68955
34550 PR rtl-optimization/64557
34551 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
34552 here. Fix up formatting.
34553 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
34554
34555 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
34556
34557 PR lto/69133
34558 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
34559 assume that the node has body.
34560 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
34561 check.
34562
34563 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
34564
34565 * lto-streamer-out.c (lto_output): Do not stream instrumentation
34566 thunks.
34567
34568 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
34569
34570 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
34571 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
34572
34573 2016-01-19 Martin Jambor <mjambor@suse.cz>
34574 Martin Liska <mliska@suse.cz>
34575 Michael Matz <matz@suse.de>
34576
34577 * Makefile.in (OBJS): Add new source files.
34578 (GTFILES): Add hsa.c.
34579 * common.opt (disable_hsa): New variable.
34580 (-Whsa): New warning.
34581 * config.in (ENABLE_HSA): New.
34582 * configure.ac: Treat hsa differently from other accelerators.
34583 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
34584 $enable_offloading.
34585 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
34586 * doc/install.texi (Configuration): Document --with-hsa-runtime,
34587 --with-hsa-runtime-include, --with-hsa-runtime-lib and
34588 --with-hsa-kmt-lib.
34589 * doc/invoke.texi (-Whsa): Document.
34590 (hsa-gen-debug-stores): Likewise.
34591 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
34592 to invoke offload compiler for hsa acclerator.
34593 * opts.c (common_handle_option): Determine whether HSA offloading
34594 should be performed.
34595 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
34596 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
34597 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
34598 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
34599 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
34600 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
34601 GF_OMP_FOR_KIND_GRID_LOOP.
34602 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
34603 (pp_gimple_stmt_1): Likewise.
34604 * gimple-walk.c (walk_gimple_stmt): Likewise.
34605 * gimple.c (gimple_build_omp_grid_body): New function.
34606 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
34607 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
34608 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
34609 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
34610 GF_OMP_TEAMS_GRID_PHONY.
34611 (gimple_statement_omp_single_layout): Updated comments.
34612 (gimple_build_omp_grid_body): New function.
34613 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
34614 (gimple_omp_for_grid_phony): New function.
34615 (gimple_omp_for_set_grid_phony): Likewise.
34616 (gimple_omp_parallel_grid_phony): Likewise.
34617 (gimple_omp_parallel_set_grid_phony): Likewise.
34618 (gimple_omp_teams_grid_phony): Likewise.
34619 (gimple_omp_teams_set_grid_phony): Likewise.
34620 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
34621 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
34622 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
34623 (BUILT_IN_GOMP_TARGET): Updated type.
34624 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
34625 (adjust_for_condition): New function.
34626 (get_omp_for_step_from_incr): Likewise.
34627 (extract_omp_for_data): Moved parts to adjust_for_condition and
34628 get_omp_for_step_from_incr.
34629 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
34630 (fixup_child_record_type): Bail out if receiver_decl is NULL.
34631 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
34632 (scan_omp_parallel): Do not create child functions for phony
34633 constructs.
34634 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
34635 (scan_omp_1_op): Checking assert we are not remapping to
34636 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
34637 (parallel_needs_hsa_kernel_p): New function.
34638 (expand_parallel_call): Register apprpriate parallel child
34639 functions as HSA kernels.
34640 (grid_launch_attributes_trees): New type.
34641 (grid_attr_trees): New variable.
34642 (grid_create_kernel_launch_attr_types): New function.
34643 (grid_insert_store_range_dim): Likewise.
34644 (grid_get_kernel_launch_attributes): Likewise.
34645 (get_target_argument_identifier_1): Likewise.
34646 (get_target_argument_identifier): Likewise.
34647 (get_target_argument_value): Likewise.
34648 (push_target_argument_according_to_value): Likewise.
34649 (get_target_arguments): Likewise.
34650 (expand_omp_target): Call get_target_arguments instead of looking
34651 up for teams and thread limit.
34652 (grid_expand_omp_for_loop): New function.
34653 (grid_arg_decl_map): New type.
34654 (grid_remap_kernel_arg_accesses): New function.
34655 (grid_expand_target_kernel_body): New function.
34656 (expand_omp): Call it.
34657 (lower_omp_for): Do not emit phony constructs.
34658 (lower_omp_taskreg): Do not emit phony constructs but create for them
34659 a temporary variable receiver_decl.
34660 (lower_omp_taskreg): Do not emit phony constructs.
34661 (lower_omp_teams): Likewise.
34662 (lower_omp_grid_body): New function.
34663 (lower_omp_1): Call it.
34664 (grid_reg_assignment_to_local_var_p): New function.
34665 (grid_seq_only_contains_local_assignments): Likewise.
34666 (grid_find_single_omp_among_assignments_1): Likewise.
34667 (grid_find_single_omp_among_assignments): Likewise.
34668 (grid_find_ungridifiable_statement): Likewise.
34669 (grid_target_follows_gridifiable_pattern): Likewise.
34670 (grid_remap_prebody_decls): Likewise.
34671 (grid_copy_leading_local_assignments): Likewise.
34672 (grid_process_kernel_body_copy): Likewise.
34673 (grid_attempt_target_gridification): Likewise.
34674 (grid_gridify_all_targets_stmt): Likewise.
34675 (grid_gridify_all_targets): Likewise.
34676 (execute_lower_omp): Call grid_gridify_all_targets.
34677 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
34678 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
34679 (tree_omp_clause): Added union field dimension.
34680 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
34681 * tree.c (omp_clause_num_ops): Added number of arguments of
34682 OMP_CLAUSE__GRIDDIM_.
34683 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
34684 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
34685 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
34686 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
34687 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
34688 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
34689 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
34690 * tree-pass.h (make_pass_gen_hsail): Declare.
34691 (make_pass_ipa_hsa): Likewise.
34692 * ipa-hsa.c: New file.
34693 * lto-section-in.c (lto_section_name): Add hsa section name.
34694 * lto-streamer.h (lto_section_type): Add hsa section.
34695 * timevar.def (TV_IPA_HSA): New.
34696 * hsa-brig-format.h: New file.
34697 * hsa-brig.c: New file.
34698 * hsa-dump.c: Likewise.
34699 * hsa-gen.c: Likewise.
34700 * hsa.c: Likewise.
34701 * hsa.h: Likewise.
34702 * toplev.c (compile_file): Call hsa_output_brig.
34703 * hsa-regalloc.c: New file.
34704
34705 2016-01-18 Jeff Law <law@redhat.com>
34706
34707 PR tree-optimization/69320
34708 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
34709 ranged object, do nothing if the RHS constant is not [0..1].
34710 (optimize_stmt): Comparing a boolean ranged object against a
34711 constant outside [0..1] results in a compile-time constant.
34712
34713 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
34714 test.
34715
34716 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
34717
34718 * doc/invoke.texi (Invoking GCC): Add new section to menu.
34719 (Option Summary): Update to reflect new section and moved options.
34720 (C++ Dialect Options): Move -fstats to new section.
34721 (Debugging Options): Move all dump, statistics, and other GCC
34722 developer options to new section. Rewrite section introduction
34723 and re-order remaining options to put the more basic ones first.
34724 (Optimization Options): Move -fira-verbose and -flto-report* to
34725 new section.
34726 (Developer Options): New section incorporating moved options.
34727 * doc/cppopts.texi (-dM): Update cross-reference.
34728
34729 2016-01-18 Richard Henderson <rth@redhat.com>
34730
34731 PR target/69176
34732 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
34733 operands to pseudo only if CSE is expected. Split long immediate
34734 operands only after reload, and for the stack pointer.
34735 (*add<GPI>3_pluslong): Remove.
34736 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
34737 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
34738 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
34739 (*add<GPI>3 peepholes): New.
34740 (*add<GPI>3 splitters): New.
34741 * config/aarch64/constraints.md (Upl): New.
34742 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
34743
34744 2016-01-18 Richard Biener <rguenther@suse.de>
34745
34746 PR tree-optimization/69297
34747 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
34748 stmt at most once.
34749 (vect_bb_vectorization_profitable_p): Clear visited flag again.
34750
34751 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
34752
34753 PR middle-end/68542
34754 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
34755 of mixind vector and scalar types.
34756 (fold_relational_const): Add handling of vector
34757 comparison with boolean result.
34758 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
34759 comparison of vector operands with boolean result for EQ/NE only.
34760 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
34761 (verify_gimple_cond): Likewise.
34762 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
34763 valid type of VAL.
34764
34765 2016-01-18 Joseph Myers <joseph@codesourcery.com>
34766
34767 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
34768 !TARGET_OCTEON.
34769
34770 2016-01-18 Richard Biener <rguenther@suse.de>
34771
34772 PR middle-end/69308
34773 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
34774
34775 2016-01-18 Tom de Vries <tom@codesourcery.com>
34776
34777 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
34778
34779 2016-01-18 Tom de Vries <tom@codesourcery.com>
34780
34781 * omp-low.c (set_oacc_fn_attrib): Make extern.
34782 * omp-low.h (set_oacc_fn_attrib): Declare.
34783 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
34784 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
34785 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
34786 Add and handle function parameter oacc_kernels_p.
34787 (find_reduc_addr, get_omp_data_i_param): New function.
34788 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
34789 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
34790 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
34791 Calculate dominance info. Skip loops that are not in a kernels region
34792 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
34793 (pass_parallelize_loops::execute): Call parallelize_loops with
34794 oacc_kernels_p argument.
34795 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
34796 New member function.
34797 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
34798 * passes.def: Add argument to pass_parallelize_loops instantation.
34799
34800 2016-01-18 Tom de Vries <tom@codesourcery.com>
34801
34802 * tree-parloops.c (pass_parallelize_loops::execute): Allow
34803 pass_parallelize_loops to be run outside the loop pipeline.
34804
34805 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
34806
34807 * tree-scalar-evolution.c (follow_copies_to_constant): New.
34808 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
34809
34810 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
34811
34812 PR target/63679
34813 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
34814 using get_ref_base_and_extent.
34815 (equal_mem_array_ref_p): New.
34816 (hashable_expr_equal_p): Add call to previous.
34817
34818 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
34819
34820 PR target/63679
34821 * tree-sra.c (disqualified_constants, constant_decl_p): New.
34822 (sra_initialize): Allocate disqualified_constants.
34823 (sra_deinitialize): Free disqualified_constants.
34824 (disqualify_candidate): Update disqualified_constants when appropriate.
34825 (create_access): Scan for constant-pool entries as we go along.
34826 (scalarizable_type_p): Add check against type_contains_placeholder_p.
34827 (maybe_add_sra_candidate): Allow constant-pool entries.
34828 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
34829 (initialize_constant_pool_replacements): New.
34830 (sra_modify_assign): Avoid mangling assignments created by previous,
34831 and don't generate writes into constant pool.
34832 (sra_modify_function_body): Call initialize_constant_pool_replacements.
34833
34834 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
34835
34836 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
34837 andnot instruction.
34838 (scalar_chain::convert_op): Likewise.
34839 * config/i386/i386.md (*andndi3_doubleword): New.
34840
34841 2016-01-18 Richard Biener <rguenther@suse.de>
34842
34843 PR tree-optimization/69170
34844 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
34845 building a vector from scalar results of a pattern stmt.
34846
34847 2016-01-18 Jakub Jelinek <jakub@redhat.com>
34848
34849 * haifa-sched.c (autopref_multipass_init): Work around
34850 -Wmaybe-uninitialized warning.
34851
34852 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
34853
34854 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
34855 against the constant 0.
34856
34857 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34858
34859 PR tree-optimization/68799
34860 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
34861 look up phi candidates in the statement-candidate map.
34862 (phi_add_costs): Likewise.
34863 (record_phi_increments): Likewise.
34864 (phi_incr_cost): Likewise.
34865 (ncd_with_phi): Likewise.
34866 (all_phi_incrs_profitable): Likewise.
34867
34868 2016-01-17 Jakub Jelinek <jakub@redhat.com>
34869
34870 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
34871 -Wmaybe-uninitialized warning.
34872
34873 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
34874
34875 * doc/invoke.texi (Invoking GCC): Add new section to menu.
34876 (Option Summary): Update to reflect new section and moved options.
34877 (C++ Dialect Options): Move -fvtable-verify and related options.
34878 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
34879 and profiling-related options.
34880 (Optimization Options): Move profile generation options and
34881 -fstack-protector and related options.
34882 (Instrumentation Options): New section incorporating moved options.
34883 (Code Generation Options): Move -finstrument-functions and
34884 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
34885
34886 2016-01-16 Tom de Vries <tom@codesourcery.com>
34887
34888 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
34889
34890 2016-01-16 Tom de Vries <tom@codesourcery.com>
34891
34892 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
34893
34894 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
34895
34896 * hash-table.h (hash_table::empty): Turn into an inline wrapper
34897 that checks whether the table is already empty. Rename the
34898 original implementation to...
34899 (hash_table::empty_slot): ...this new private function.
34900
34901 2016-01-15 David Malcolm <dmalcolm@redhat.com>
34902
34903 PR diagnostic/68899
34904 * diagnostic-show-locus.c (layout::print_source_line): Move x
34905 offset of line until after call to
34906 get_line_width_without_trailing_whitespace.
34907
34908 2016-01-15 Jeff Law <law@redhat.com>
34909
34910 PR tree-optimization/69270
34911 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
34912 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
34913 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
34914 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
34915 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
34916 ssa_name_has_boolean_range and constant_boolean_node.
34917
34918 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
34919
34920 PR rtl-optimization/69030
34921 * lra-spills.c (remove_pseudos): Check nrefs and make the function
34922 returning bool.
34923 (spill_pseudos): Delete debug insn for dead pseudo.
34924 (lra_spill): Initiate spill_hard_reg and slots memory separately.
34925
34926 2016-01-15 Jiong Wang <jiong.wang@arm.com>
34927
34928 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
34929 New.
34930 (TYPES_UNOPUS): Likewise.
34931 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
34932 builtin type, from UNOP to UNOPUS.
34933 (lbtruncuv4sf): Likewise.
34934 (lbtruncuv2df): Likewise.
34935 (lrounduv2sf): Likewise.
34936 (lrounduv4sf): Likewise.
34937 (lrounduv2df): Likewise.
34938 (lroundusf): Likewise.
34939 (lroundusf): Likewise.
34940 (lceiluv2sf): Likewise.
34941 (lceiluv4sf): Likewise.
34942 (lceiluv2df): Likewise.
34943 (lceilusf): Likewise.
34944 (lceiludf): Likewise.
34945 (lflooruv2sf): Likewise.
34946 (lflooruv4sf): Likewise.
34947 (lflooruv2df): Likewise.
34948 (lfloorusf): Likewise.
34949 (lfloorudf): Likewise.
34950 (lfrintnuv2sf): Likewise.
34951 (lfrintnuv4sf): Likewise.
34952 (lfrintnuv2df): Likewise.
34953 (lfrintnusf): Likewise.
34954 (lfrintnudf): Likewise.
34955 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
34956 conversion.
34957 (vcvtq_u32_f32): Likewise.
34958 (vcvtq_u64_f64): Likewise.
34959 (vcvta_u32_f32): Likewise.
34960 (vcvtaq_u32_f32): Likewise.
34961 (vcvtaq_u64_f64): Likewise.
34962 (vcvtm_u32_f32): Likewise.
34963 (vcvtmq_u32_f32): Likewise.
34964 (vcvtmq_u64_f64): Likewise.
34965 (vcvtn_u32_f32): Likwise.
34966 (vcvtnq_u32_f32): Likewise.
34967 (vcvtnq_u64_f64): Likewise.
34968 (vcvtp_u32_f32): Likewise.
34969 (vcvtpq_u32_f32): Likewise.
34970 (vcvtpq_u64_f64): Likewise.
34971 (vcvtmd_u64_f64): Likewise.
34972 (vcvtms_u32_f32): Likewise.
34973 (vcvtad_u64_f64): Likewise.
34974 (vcvtas_u32_f32): Likewise.
34975 (vcvtnd_u64_f64): Likewise.
34976 (vcvtns_u32_f32): Likewise.
34977 (vcvtpd_u64_f64): Likewise.
34978 (vcvtps_u32_f32): Likewise.
34979
34980 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34981
34982 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
34983 CSEL of zero_extended registers.
34984
34985 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34986
34987 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
34988 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
34989
34990 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34991
34992 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
34993 false when argument string is not found in the attributes table
34994 at all.
34995
34996 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
34997
34998 PR target/68609
34999 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
35000 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
35001 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
35002 precision estimate.
35003
35004 2016-01-15 Richard Biener <rguenther@suse.de>
35005
35006 PR tree-optimization/66856
35007 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
35008 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
35009 (vect_create_new_slp_node): Increment stmt reference count.
35010 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
35011 an SLP tree before swapping operands.
35012 (vect_build_slp_tree): Likewise.
35013 (destroy_bb_vec_info): Free stmt info after SLP instances.
35014 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
35015 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
35016 (STMT_VINFO_NUM_SLP_USES): New macro.
35017
35018 2016-01-15 Richard Biener <rguenther@suse.de>
35019
35020 PR debug/69137
35021 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
35022 (add_linkage_name): ... here.
35023 (gen_typedef_die): Use add_linkage_name_raw instead of
35024 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
35025 if necessary.
35026
35027 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
35028
35029 * gimplify.c (oacc_default_clause): Decode reference and pointer
35030 types for both kernels and parallel regions.
35031
35032 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
35033
35034 PR middle-end/69246
35035 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
35036
35037 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
35038
35039 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
35040 (convert_scalars_to_vector): Likewise.
35041
35042 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
35043
35044 * doc/extend.texi (Type Traits): Fix grammar.
35045
35046 2016-01-15 Martin Jambor <mjambor@suse.cz>
35047
35048 * tree-inline.c (remap_decl): Use existing dclarations if
35049 remapping a type and prevent_decl_creation_for_types.
35050 (replace_locals_stmt): Do an initial remapping of non-VLA typed
35051 decls first. Do real remapping with
35052 prevent_decl_creation_for_types set.
35053 * tree-inline.h (copy_body_data): New field
35054 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
35055 padding.
35056
35057 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
35058
35059 * config/s390/s390.opt (mmvcle): More verbose help text.
35060
35061 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
35062
35063 * config/s390/s390.opt: Add period to -mzvector option text.
35064
35065 2016-01-15 Richard Biener <rguenther@suse.de>
35066
35067 PR tree-optimization/68961
35068 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
35069 of invariants in stores again.
35070
35071 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
35072
35073 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
35074
35075 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
35076
35077 * config/i386/i386.c (ix86_expand_branch): Don't split
35078 DI mode xor instruction to SI mode.
35079
35080 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
35081
35082 PR ipa/68148
35083 * ipa-icf.c (sem_function::merge): Virtual functions may become
35084 reachable even if they address is not taken and there are no
35085 idrect calls.
35086
35087 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
35088
35089 * lto-streamer-out.c (subtract_estimated_size): New function.
35090 (get_symbol_initial_value): Use it.
35091
35092 2016-01-15 Christian Bruel <christian.bruel@st.com>
35093
35094 PR target/65837
35095 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
35096 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
35097 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
35098 use add_builtin_function_ext_scope instead of add_builtin_function.
35099 (neon_set_p, neon_crypto_set_p): Remove.
35100 (arm_init_builtins): Always call arm_init_neon_builtins and
35101 arm_init_crypto_builtins.
35102 (arm_expand_builtin): Check that builtins are allowed for the arch.
35103 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
35104 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
35105 arm_init_neon_builtins call.
35106
35107 2016-01-15 Richard Biener <rguenther@suse.de>
35108
35109 PR tree-optimization/69117
35110 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
35111 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
35112 of the leader conservatively.
35113 (free_scc_vn): Restore original SSA name infos.
35114
35115 2016-01-14 Jeff Law <law@redhat.com>
35116
35117 PR tree-optimization/69270
35118 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
35119 single bit of precision, verify it's also unsigned.
35120 (record_edge_info): Use constant_boolean_node rather than fold_convert
35121 to convert boolean_true/boolean_false to the right type.
35122
35123 2016-01-14 Richard Henderson <rth@redhat.com>
35124
35125 PR rtl-opt/69014
35126 * loop-doloop.c (record_reg_sets): New.
35127 (doloop_optimize): Reject the transform if the sequence
35128 clobbers registers live at the end of the loop block.
35129 (doloop_optimize_loops): Enable df_live if needed.
35130
35131 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
35132
35133 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
35134 * config/rs6000/rs6000.c: Likewise.
35135 * config/rs6000/rs6000.h: Likewise.
35136 * config/rs6000/rs6000.md: Likewise.
35137 * doc/extend.texi: Likewsie.
35138
35139 2016-01-14 Jeff Law <law@redhat.com>
35140
35141 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
35142 typo.
35143
35144 2016-01-14 Richard Henderson <rth@redhat.com>
35145
35146 PR c/69272
35147 PR tree-opt/68964
35148 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
35149 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
35150 instead of builtin_decl_declared_p to test for declaration.
35151
35152 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
35153
35154 * doc/loop.texi (Loop Analysis and Representation): Document
35155 loop_depth function.
35156
35157 2016-01-14 Tom de Vries <tom@codesourcery.com>
35158
35159 PR tree-optimization/68773
35160 * omp-low.c (expand_omp_target): Don't set force_output.
35161 * varpool.c (varpool_node::get_create): Same.
35162 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
35163 offload_funcs with force_output.
35164
35165 2016-01-14 Jakub Jelinek <jakub@redhat.com>
35166
35167 PR debug/69244
35168 * lra-eliminations.c (move_plus_up): Don't change anything if either
35169 the outer or inner subreg mode is not MODE_INT.
35170 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
35171 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
35172
35173 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
35174
35175 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
35176 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
35177 reduc_uplus_@var{m}): Remove.
35178 * expr.c (expand_expr_real_2): Remove expansion path for
35179 reduc_[us](min|max|plus) optabs.
35180 * optabs-tree.c (scalar_reduc_to_vector): Remove.
35181 * optabs-tree.h (scalar_reduc_to_vector): Remove.
35182 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
35183 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
35184 * tree-vect-loop.c (vectorizable_reduction): Remove test for
35185 reduc_[us](min|max|plus) optabs.
35186
35187 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
35188
35189 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
35190 (reduc_plus_scal_v2sf): New.
35191 (reduc_smax_v2sf): Rename to...
35192 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
35193 (reduc_smin_v2sf): Rename to...
35194 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
35195
35196 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
35197
35198 * alias.c (compare_base_symbol_refs): New function.
35199 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
35200 it.
35201
35202 2016-01-14 Jakub Jelinek <jakub@redhat.com>
35203
35204 PR middle-end/68146
35205 PR tree-optimization/69155
35206 * tree-complex.c: Include cfganal.h.
35207 (phis_to_revisit): New variable.
35208 (extract_component): Add phiarg_p argument. Assert that returned
35209 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
35210 (update_phi_components): Partly rewrite to use loop over real/imag
35211 components instead of code duplication. If extract_component returns
35212 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
35213 create_tmp_reg into the PHI node instead, and mention the phi triplet
35214 in phis_to_revisit.
35215 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
35216 in phis_to_revisit at the end.
35217
35218 2016-01-14 Richard Biener <rguenther@suse.de>
35219
35220 PR tree-optimization/68060
35221 * tree-vect-loop.c (vect_is_simple_reduction): Check the
35222 outer loop reduction is only used in the inner loop before
35223 detecting a double reduction.
35224
35225 2016-01-14 Jakub Jelinek <jakub@redhat.com>
35226
35227 PR target/68269
35228 * combine.c (expand_field_assignment): Punt if compute_mode is
35229 unsupported scalar mode.
35230
35231 2016-01-14 Richard Biener <rguenther@suse.de>
35232
35233 PR tree-optimization/66856
35234 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
35235 SLP node only if it built successfully.
35236 (vect_analyze_slp_instance): Adjust.
35237
35238 2016-01-14 Jeff Law <law@redhat.com>
35239
35240 PR tree-optimization/69270
35241 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
35242 (record_edge_info): Use it. Convert boolean_{true,false}_node
35243 to the type of op0.
35244
35245 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
35246
35247 PR ipa/66487
35248 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
35249 use block_ultimate_origin
35250 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
35251
35252 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
35253
35254 * doc/invoke.texi (Submodel Options): Rename section to
35255 "Machine-Dependent Options" to better reflect its content.
35256 Rewrite introductory text to remove archaic CPU names.
35257 Update references.
35258
35259 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
35260
35261 * doc/invoke.texi (Code Gen Options): Move section up in file,
35262 before target-specific options. Update menu and option summary
35263 to reflect the new section ordering.
35264
35265 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
35266
35267 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
35268 (C++ Dialect Options): Add cross-reference to -std option.
35269 * doc/standards.texi (C++ Language): Document C++14 support.
35270
35271 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
35272
35273 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
35274 for pack/unpack functions for __ibm128.
35275 (PACK_IF): Likewise.
35276 (UNPACK_IF): Likewise.
35277
35278 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
35279 support for __ibm128 pack/unpack functions.
35280 (rs6000_invalid_builtin): Likewise.
35281 (rs6000_init_builtins): Likewise.
35282 (rs6000_opt_masks): Likewise.
35283
35284 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
35285 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
35286 functions
35287 (RS6000_BTM_COMMON): Likewise.
35288
35289 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
35290 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
35291 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
35292 128-bit floating point. Add support for the double values to be
35293 in Altivec registers for TF/IF packing and unpacking, but restrict
35294 TD packing sub-fields to be FPR registers. Don't allow overlapped
35295 register support for packing. Allow pack inputs to be memory
35296 locations. Don't build generator functions for unpack<mode>_dm
35297 and unpack<mode>_nodm.
35298 (unpack<mode>_dm): Likewise.
35299 (unpack<mode>_nodm): Likewise.
35300 (pack<mode>): Likewise.
35301
35302 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
35303 built-in functions to pack/unpack explicit __ibm128 values.
35304 (__builtin_unpack_ibm128): Likewise.
35305
35306 * doc/extend.texi (PowerPC Built-in Functions): Document
35307 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
35308
35309 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
35310
35311 PR c/66208
35312 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
35313 Add new arg loc and pass it down as context.
35314 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
35315 to the location to use for the warning.
35316 (check_function_arguments): New arg loc. All callers changed. Pass
35317 it to check_function_nonnull.
35318 * c-common.h (check_function_arguments): Adjust declaration.
35319
35320 2016-01-13 Jakub Jelinek <jakub@redhat.com>
35321
35322 PR tree-optimization/69156
35323 * gimple.c (validate_type): Removed.
35324 (gimple_builtin_call_types_compatible_p): Use
35325 useless_type_conversion_p instead of validate_type.
35326 * value-prof.c (gimple_stringop_fixed_value): Fold
35327 icall_size to correct type.
35328
35329 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
35330
35331 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
35332 effects.
35333
35334 2016-01-13 Richard Henderson <rth@redhat.com>
35335
35336 PR tree-opt/68964
35337 * target.def (builtin_tm_load, builtin_tm_store): Remove.
35338 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
35339 (ix86_builtin_tm_store): Remove.
35340 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
35341 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
35342 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
35343 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
35344 * doc/tm.texi: Rebuild.
35345
35346 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
35347 (BUILT_IN_TM_MEMCPY_RTWN): New.
35348 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
35349 fallback from vector to integer helpers.
35350 (build_tm_load): Handle vector types directly, instead of
35351 via target hook.
35352 (build_tm_store): Likewise.
35353 (expand_assign_tm): Prepare for register types not handled by
35354 the above. Copy them to memory and use memcpy.
35355 * tree.c (tm_define_builtin): New.
35356 (find_tm_vector_type): New.
35357 (build_tm_vector_builtins): New.
35358 (build_common_builtin_nodes): Call it.
35359
35360 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
35361
35362 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
35363 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
35364
35365 2016-01-13 Tom de Vries <tom@codesourcery.com>
35366
35367 PR tree-optimization/69169
35368 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
35369 handled_struct_type param.
35370 (create_variable_info_for, intra_create_variable_infos): Call
35371 create_variable_info_for_1 with extra arg.
35372
35373 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
35374
35375 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
35376 and "armv8.1-a+crc" entries.
35377
35378 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
35379
35380 PR target/69228
35381 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
35382 Change first operand predicate from register_or_constm1_operand
35383 to register_operand.
35384 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
35385 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
35386 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
35387 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
35388 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
35389 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
35390 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
35391 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
35392 comparison with constm1_rtx from vec_prefetch_gen part.
35393
35394 2016-01-13 Richard Biener <rguenther@suse.de>
35395
35396 PR tree-optimization/69013
35397 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
35398 Exchange assert for a test.
35399
35400 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35401
35402 PR target/69247
35403 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
35404
35405 2016-01-13 Richard Biener <rguenther@suse.de>
35406
35407 PR tree-optimization/69242
35408 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
35409 assert with a check.
35410
35411 2016-01-13 Richard Biener <rguenther@suse.de>
35412
35413 PR tree-optimization/69186
35414 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
35415 Properly guard vect_update_misalignment_for_peel call.
35416
35417 2016-01-12 Jeff Law <law@redhat.com>
35418
35419 PR tree-optimization/pr67755
35420 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
35421 "need_profile_correction".
35422 (thread_block_1): Initialize new field to false by default. If we
35423 have multiple thread paths through a common joiner to different
35424 final targets, then set new field to true.
35425 (compute_path_counts): Only do count adjustment when it's really
35426 needed.
35427
35428 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
35429
35430 * doc/invoke.texi (Spec Files): Move section down in file, past
35431 all command-line option descriptions.
35432
35433 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
35434
35435 PR middle-end/54809
35436 * doc/gty.texi: Remove documentation of mark_hook.
35437 * gengtype.c (struct write_types_data): Remove code to support
35438 mark_hook attribute.
35439 (walk_type): Likewise.
35440 (write_func_for_structure): Likewise.
35441
35442 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
35443
35444 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
35445 Directory Options, and -specs= to Overall Options.
35446 (Overall Options): Adjust similarly. Reorder to group related
35447 options together. Make -specs= cross-reference the spec file details.
35448 (Directory Options): Adjust similarly.
35449
35450 2016-01-12 Jeff Law <law@redhat.com>
35451
35452 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
35453
35454 2016-01-12 Olivier Hainque <hainque@adacore.com>
35455
35456 * gcc.c (spec_undefvar_allowed): New global.
35457 (process_command): Set to true when running for --version or --help,
35458 alone or together.
35459 (getenv_spec_function): When the variable is not defined, use the
35460 variable name as the variable value if we're allowed not to issue
35461 a fatal error.
35462
35463 2016-01-12 Bin Cheng <bin.cheng@arm.com>
35464
35465 PR tree-optimization/68911
35466 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
35467 information computed for expression "init + nit * step".
35468
35469 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
35470
35471 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
35472 about name of GCC executable. Remove deleted node from menu.
35473 (Directory Options) <-B>: Remove cross-reference to deleted node.
35474 (Target Options): Delete section.
35475
35476 2016-01-12 Christian Bruel <christian.bruel@st.com>
35477
35478 PR target/69180
35479 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
35480 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
35481
35482 2016-01-12 Jakub Jelinek <jakub@redhat.com>
35483
35484 PR target/69198
35485 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
35486 aligned_mem is properly set for AVX512-VL floating point masked
35487 stores.
35488
35489 PR target/69175
35490 * ifcvt.c (cond_exec_process_if_block): When removing the last
35491 insn from then_bb, remove also any possible barriers that follow it.
35492
35493 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
35494
35495 PR target/68456
35496 PR target/69226
35497 * config/i386/iamcu.h (SIZE_TYPE): New macro.
35498 (PTRDIFF_TYPE): Likewise.
35499 (WCHAR_TYPE): Likewise.
35500 (WCHAR_TYPE_SIZE): Likewise.
35501 (STDINT_LONG32): Likewise.
35502
35503 2016-01-12 Richard Biener <rguenther@suse.de>
35504
35505 PR tree-optimization/69053
35506 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
35507 convert initial value for cond reductions.
35508
35509 2016-01-12 Richard Biener <rguenther@suse.de>
35510
35511 PR tree-optimization/69007
35512 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
35513 widen_sum after dot_prod and sad.
35514
35515 2016-01-12 Richard Biener <rguenther@suse.de>
35516
35517 PR tree-optimization/69168
35518 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
35519 pattern stmt SLP type.
35520 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
35521 end up unused so cope with that case.
35522
35523 2016-01-12 Richard Biener <rguenther@suse.de>
35524
35525 PR tree-optimization/69157
35526 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
35527 stmts def type only during analyze phase.
35528 (vectorizable_call): Likewise.
35529 (vectorizable_simd_clone_call): Likewise.
35530 (vectorizable_conversion): Likewise.
35531 (vectorizable_assignment): Likewise.
35532 (vectorizable_shift): Likewise.
35533 (vectorizable_operation): Likewise.
35534 (vectorizable_store): Likewise.
35535 (vectorizable_load): Likewise.
35536
35537 2016-01-12 Richard Biener <rguenther@suse.de>
35538
35539 PR tree-optimization/69174
35540 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
35541 space.
35542 (vectorizable_load): Properly compute the number of loads needed
35543 for permuted strided SLP loads and do not spuriously assign
35544 to SLP_TREE_VEC_STMTS.
35545
35546 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
35547
35548 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
35549 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
35550 (MD_EXEC_PREFIX): Remove.
35551 (MD_STARTFILE_PREFIX) Removee.
35552 (FILE_NAME_ABSOLUTE_P): Remove.
35553 (CPP_SPEC): Do not read macros from sys/version.h.
35554 (LINK_COMMAND_SPEC): Remove.
35555 (LOCAL_INCLUDE_DIR): Remove.
35556 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
35557 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
35558 (POST_LINK_SPEC): Define to invoke stubify after linker
35559 (LIBSTDCXX): Remove define
35560 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
35561 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
35562 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
35563 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
35564 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
35565 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
35566 (i386_djgpp_asm_named_section): Add propotype of new procedure
35567
35568 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
35569 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
35570 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
35571 in config/i386/djgpp.h).
35572 (STANDARD_STARTFILE_PREFIX_2): Define identical to
35573 STANDARD_STARTFILE_PREFIX_1.
35574 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
35575 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
35576 installation errors.
35577 (MAX_OFILE_ALIGNMENT): Define to 128.
35578 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
35579
35580 * config/i386/djgpp.c: New file. Add implementation of
35581 i386_djgpp_asm_named_section.
35582
35583 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
35584
35585 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
35586 Add rule for building djgpp.o.
35587
35588 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35589
35590 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
35591 (rtx_is_swappable_p): Reductions are swappable.
35592 (insn_is_swappable_p): V2DF reductions are swappable.
35593
35594 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
35595
35596 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
35597 reloads for other unsupported memory operands.
35598
35599 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
35600 Jim Wilson <jim.wilson@linaro.org>
35601
35602 PR target/69194
35603 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
35604 copy_to_mode_reg instead of force_reg.
35605
35606 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
35607
35608 PR target/69225
35609 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
35610 TARGET_80387 is true.
35611
35612 2016-01-11 Jakub Jelinek <jakub@redhat.com>
35613
35614 PR target/69071
35615 * lra-eliminations.c (move_plus_up): Only move plus up
35616 if subreg of the constant can be simplified into constant
35617 and use the simplified subreg of the constant instead of
35618 the original constant.
35619
35620 * fold-const.c (fold_convertible_p): Don't return true
35621 for conversion of VECTOR_TYPE to same sized integral type.
35622 (fold_convert_loc): Fix up formatting. Fold conversion of
35623 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
35624 instead of NOP_EXPR.
35625
35626 PR tree-optimization/69214
35627 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
35628 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
35629 Formatting fix.
35630
35631 PR tree-optimization/69207
35632 * tree-vect-slp.c (vect_get_constant_vectors): For
35633 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
35634 fold_convertible_p to vector_type's element type, and always
35635 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
35636
35637 2016-01-11 Richard Biener <rguenther@suse.de>
35638
35639 PR tree-optimization/69173
35640 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
35641 fixup the cycle if all stmts are in a pattern.
35642
35643 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
35644
35645 PR middle-end/68999
35646 * alias.c (base_alias_check): Move check for addresses with
35647 alignment ANDs before the call for compare_base_decls.
35648 (memrefs_conflict_p): Return -1 for different decls
35649 that went through alignment adjustments.
35650
35651 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35652
35653 PR rtl-optimization/68796
35654 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
35655 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
35656 and QImode comparisons against zero with CC_NZmode.
35657 * config/aarch64/iterators.md (short_mask): New mode_attr.
35658
35659 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
35660
35661 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
35662 (<avx512>_store<mode>_mask): Likewise.
35663
35664 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
35665 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35666
35667 PR rtl-optimization/68841
35668 * ifcvt.c (struct noce_if_info): Add orig_x field.
35669 (bbs_ok_for_cmove_arith): Add to_rename parameter.
35670 Don't record conflicts on to_rename if it's present.
35671 Allow memory destinations in sets.
35672 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
35673 blocks, passing orig_x to the checks.
35674 (noce_process_if_block): Set if_info->orig_x appropriately.
35675
35676 2016-01-11 Tom de Vries <tom@codesourcery.com>
35677
35678 PR tree-optimization/69069
35679 * tree-parloops.c (create_parallel_loop): Add missing phi args.
35680
35681 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
35682
35683 PR rtl-optimization/68920
35684 * config/i386/i386.c (ix86_option_override_internal): Restrict number
35685 of conditional moves for RTL if-conversion to 1 for
35686 TARGET_ONE_IF_CONV_INSN.
35687 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
35688 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
35689 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
35690 parameter to restirct number of conditional moves for
35691 RTL if-conversion.
35692 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
35693 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
35694 conditionl moves.
35695
35696 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
35697
35698 PR bootstrap/69123
35699 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
35700 onepart vars. Fix typo in comment. Fix reversed condition in
35701 unshare test.
35702 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
35703
35704 PR bootstrap/69123
35705 * var-tracking.c (dump_onepart_variable_differences): New.
35706 (dataflow_set_different): If a detailed dump is requested,
35707 delay early returns and dump differences between onepart
35708 variables present before and after, and added variables.
35709
35710 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
35711
35712 PR target/69010
35713 * expr.c (expand_expr_real_1): For boolean vector constants
35714 with a scalar mode use const_scalar_mask_from_tree.
35715 (const_scalar_mask_from_tree): New.
35716 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
35717 assigned to a mask type to handle constants.
35718
35719 2016-01-11 Martin Jambor <mjambor@suse.cz>
35720
35721 PR ipa/69044
35722 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
35723 useless parameters if we cannot change function signature.
35724
35725 2016-01-11 Martin Jambor <mjambor@suse.cz>
35726
35727 PR ipa/66616
35728 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
35729 flag.
35730
35731 2016-01-11 Tom de Vries <tom@codesourcery.com>
35732
35733 PR tree-optimization/69109
35734 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
35735 latch with phi.
35736
35737 2016-01-11 Tom de Vries <tom@codesourcery.com>
35738
35739 PR tree-optimization/69108
35740 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
35741 res is not used in a phi.
35742
35743 2016-01-11 Yury Gribov <y.gribov@samsung.com>
35744
35745 PR 67425
35746 * common.opt (frandom-seed): Fix parameter name.
35747 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
35748
35749 2016-01-11 Tom de Vries <tom@codesourcery.com>
35750
35751 PR tree-optimization/69058
35752 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
35753 not supported.
35754
35755 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
35756
35757 * config/arc/arc.opt (mdiv-rem): Add period to the end.
35758 (mcode-density): Likewise.
35759
35760 2016-01-10 Tom de Vries <tom@codesourcery.com>
35761
35762 PR tree-optimization/69062
35763 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
35764 (parallelize_loops): Don't paralelize loop that has phi with address
35765 arg.
35766
35767 2016-01-10 Tom de Vries <tom@codesourcery.com>
35768
35769 PR tree-optimization/69039
35770 * tree-parloops.c (try_create_reduction_list): Only allow single exit
35771 phi for reduction.
35772
35773 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
35774
35775 PR middle-end/68743
35776 * match.pd: Require target has function_c99_misc before doing
35777 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
35778
35779 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
35780
35781 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
35782 use GMPINC.
35783 * configure: Regenerate.
35784
35785 2016-01-09 Jakub Jelinek <jakub@redhat.com>
35786
35787 PR middle-end/50865
35788 PR tree-optimization/69097
35789 * fold-const.h (expr_not_equal_to): New prototype.
35790 * fold-const.c: Include stringpool.h and tree-ssanames.h.
35791 (expr_not_equal_to): New function.
35792 * match.pd (X % -Y is the same as X % Y): Don't optimize
35793 unless X is known not to be equal to minimum or Y is known
35794 not to be equal to -1.
35795 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
35796 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
35797 (simplify_stmt_using_ranges): Adjust caller.
35798 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
35799 substitute_and_fold.
35800
35801 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
35802
35803 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
35804 w/o DECL_NAME.
35805
35806 2016-01-08 Jakub Jelinek <jakub@redhat.com>
35807
35808 PR tree-optimization/69167
35809 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
35810 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
35811 ops[0] comparison.
35812 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
35813
35814 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
35815 Richard Biener <rguenther@suse.de>
35816
35817 PR tree-optimization/68707
35818 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
35819 instances that can be handled via vect_load_lanes.
35820
35821 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
35822
35823 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
35824 if we can't determine address equivalence.
35825 * alias.c (compare_base_decl): Update for changed return value of
35826 symtab_node::equal_address_to.
35827
35828 2016-01-08 Jason Merrill <jason@redhat.com>
35829
35830 PR c++/68983
35831 PR c++/67557
35832 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
35833 * expr.c (store_field): Not here.
35834 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
35835 call with TREE_ADDRESSABLE type.
35836 * tree-cfg.c (verify_gimple_call): Adjust.
35837
35838 2016-01-08 Olivier Hainque <hainque@adacore.com>
35839
35840 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
35841 libc_internal.
35842
35843 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
35844
35845 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
35846 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
35847 (reduc_smin_v2sf): Rename to...
35848 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
35849 (reduc_splus_v2sf): Rename to...
35850 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
35851
35852 2016-01-08 Jakub Jelinek <jakub@redhat.com>
35853
35854 PR tree-optimization/69162
35855 * gimplify.c (gimplify_va_arg_expr): Encode original type of
35856 valist argument in another argument.
35857 (gimplify_modify_expr): Adjust for the above change. Cleanup.
35858 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
35859 to determine the va_list type, build a MEM_REF instead of
35860 build_fold_indirect_ref.
35861
35862 PR tree-optimization/69172
35863 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
35864 gimple_build.
35865
35866 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
35867
35868 PR tree-optimization/67781
35869 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
35870 and cmpnop in two steps: first the ones not accessed in original
35871 gimple expression in a endian independent way and then the ones not
35872 accessed in the final result in an endian-specific way.
35873
35874 2016-01-08 Jakub Jelinek <jakub@redhat.com>
35875
35876 PR tree-optimization/69083
35877 * tree-vect-slp.c (vect_get_constant_vectors): For
35878 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
35879 element type. If op is fold_convertible_p to vector_type's element
35880 type, use NOP_EXPR instead of VCE.
35881
35882 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
35883
35884 PR rtl-optimization/67778
35885 PR rtl-optimization/68634
35886 PR rtl-optimization/68909
35887 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
35888 block from the stack until done with it. Remove a superfluous
35889 bitmap set. Remove a superfluous bitmap test.
35890
35891 2016-01-07 Martin Sebor <msebor@redhat.com>
35892
35893 PR c/68966
35894 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
35895 constraint on the type of arguments.
35896
35897 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
35898
35899 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
35900 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
35901 unaligned_access on the gcc_options set.
35902 * config/arm/arm.c (arm_option_override_internal): Use
35903 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
35904
35905 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
35906
35907 PR target/69140
35908 * config/i386/i386.c (ix86_frame_pointer_required): Enable
35909 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
35910
35911 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
35912
35913 Revert
35914 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
35915
35916 PR target/69140
35917 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
35918 depending on frame_pointer_needed before remaining integer and SSE
35919 registers are saved.
35920
35921 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
35922
35923 PR 1078
35924 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
35925
35926 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
35927
35928 PR target/69171
35929 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
35930 Use the "xBm" constraint.
35931 (float<sseintvecmodelower><mode>2<mask_name><round_name):
35932 Likewise.
35933 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
35934 (sse_cvtsi2ssq<round_name>): Likewise.
35935 (sse_cvtss2si<round_name>): Likewise.
35936 (sse_cvtss2siq<round_name>): Likewise.
35937 (sse2_cvtsi2sdq<round_name>): Likewise.
35938 (sse2_cvtsd2si<round_name>): Likewise.
35939 (sse2_cvtsd2siq<round_name>): Likewise.
35940 * config/i386/subst.md (round_nimm_scalar_predicate): New
35941 predicate.
35942
35943 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
35944
35945 PR middle-end/67639
35946 * varasm.c (make_decl_rtl): Mark invalid register vars as
35947 DECL_EXTERNAL.
35948
35949 PR rtl-optimization/66206
35950 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
35951 All callers changed.
35952
35953 2016-01-07 Jakub Jelinek <jakub@redhat.com>
35954
35955 PR tree-optimization/69141
35956 * tree-ssa-pre.c: Include langhooks.h.
35957 (eliminate_dom_walker::before_dom_children): Use
35958 lang_hooks.decl_printable_name instead of
35959 cgraph_node::get ()->name ().
35960
35961 PR middle-end/68960
35962 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
35963 it and DECL_ALIGN too.
35964
35965 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
35966
35967 * config/mips/mips-ftypes.def: Sort to lexicographical order.
35968
35969 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
35970
35971 PR target/69140
35972 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
35973 depending on frame_pointer_needed before remaining integer and SSE
35974 registers are saved.
35975
35976 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35977
35978 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
35979 mode iterator with VSX_M2.
35980 (*p9_vecstore_<mode>): Likewise.
35981 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
35982 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
35983 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
35984 (define_split for VSX_LE128 stores): Likewise.
35985 (define_peephole2 for TImode LE swaps): Likewise.
35986 (define_split for VSX_LE128 post-reload stores): Likewise.
35987
35988 2016-01-06 Marek Polacek <polacek@redhat.com>
35989
35990 PR sanitizer/69099
35991 * convert.c (convert_to_integer_1): Adjust call to
35992 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
35993 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
35994 EXPR instead of ARG.
35995 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
35996
35997 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
35998
35999 PR 1078
36000 * doc/extend.texi (RL78 Variable Attributes): New section.
36001
36002 2016-01-05 Marek Polacek <polacek@redhat.com>
36003
36004 PR c/69104
36005 * builtins.c (get_memmodel): Use expansion point location rather than
36006 the input location. Call warning_at rather than warning.
36007 (expand_builtin_atomic_compare_exchange): Likewise.
36008 (expand_builtin_atomic_load): Likewise.
36009 (expand_builtin_atomic_store): Likewise.
36010 (expand_builtin_atomic_clear): Likewise.
36011
36012 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
36013
36014 PR target/68991
36015 * config/i386/i386.c (ix86_expand_vector_logical_operator):
36016 Replace nonimmediate_operand with vector_operand.
36017 * config/i386/predicates.md (vector_operand): New predicate.
36018 (general_vector_operand): Replace nonimmediate_operand with
36019 vector_operand.
36020 * config/i386/sse.md: Replace nonimmediate_operand with
36021 vector_operand and m constraint with Bm constraint on SSE
36022 patterns with 16-byte memory operand.
36023 * config/i386/subst.md (round_nimm_predicate): Replace
36024 nonimmediate_operand with vector_operand.
36025 (round_saeonly_nimm_predicate): Likewise.
36026 (round_saeonly_nimm_scalar_predicate): New.
36027
36028 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
36029
36030 PR target/68991
36031 * config/i386/constraints.md (Bm): New constraint.
36032 * config/i386/predicates.md (vector_memory_operand): New
36033 predicate.
36034 * config/i386/sse.md: Replace xm with xBm in plusminus and
36035 any_logic patterns.
36036
36037 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
36038
36039 PR 1078
36040 * doc/extend.texi (V850 Function Attributes): New section.
36041 (V850 Variable Attributes): New section.
36042
36043 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
36044
36045 PR 1078
36046 * doc/extend.texi (MicroBlaze Function Attributes): Document
36047 interrupt_handler and fast_interrupt attributes.
36048
36049 2016-01-05 Sergei Trofimovich <siarheit@google.com>
36050
36051 PR other/60465
36052 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
36053 for local symbolic operands.
36054 * config/ia64/predicates.md (local_symbolic_operand64): New
36055 predicate.
36056
36057 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36058
36059 PR rtl-optimization/68651
36060 * combine.c (combine_simplify_rtx): Canonicalize x + x into
36061 x << 1.
36062
36063 2016-01-05 Nathan Sidwell <nathan@acm.org>
36064
36065 * alias.c (compare_base_decls): Use symtab_node::get.
36066
36067 2016-01-05 Nick Clifton <nickc@redhat.com>
36068
36069 PR target/68770
36070 * ira-costs.c (copy_cost): Initialise the t_icode field of the
36071 secondary_reload_info structure.
36072
36073 PR target/66655
36074 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
36075 decls if weak support is available.
36076
36077 2016-01-04 Martin Sebor <msebor@redhat.com>
36078
36079 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
36080
36081 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
36082
36083 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
36084 OPTION_MASK_P9_DFORM.
36085
36086 * config/rs6000/constraints.md (wo constraint): New constraint for
36087 ISA 3.0 (power9).
36088
36089 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
36090 for wo constraint.
36091 (rs6000_init_hard_regno_mode_ok): Likewise.
36092
36093 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
36094 wo constraint.
36095
36096 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
36097 expanders not to have constraints. Add support for ISA 3.0 xxperm
36098 instruction. Add support for fusing xxlor with xxperm.
36099 (altivec_vperm_<mode>_internal): Likewise.
36100 (altivec_vperm_v8hiv16qi): Likewise.
36101 (altivec_vperm_<mode>v16q): Likewise.
36102 (altivec_vperm_<mode>_uns): Likewise.
36103 (vperm_v8hiv4si): Likewise.
36104 (vperm_v16qiv8hi): Likewise.
36105
36106 * doc/md.texi (RS/6000 constraints): Document wo constraint.
36107
36108 2016-01-04 Jakub Jelinek <jakub@redhat.com>
36109
36110 Update copyright years.
36111
36112 * gcc.c (process_command): Update copyright notice dates.
36113 * gcov-dump.c (print_version): Ditto.
36114 * gcov.c (print_version): Ditto.
36115 * gcov-tool.c (print_version): Ditto.
36116 * gengtype.c (create_file): Ditto.
36117 * doc/cpp.texi: Bump @copying's copyright year.
36118 * doc/cppinternals.texi: Ditto.
36119 * doc/gcc.texi: Ditto.
36120 * doc/gccint.texi: Ditto.
36121 * doc/gcov.texi: Ditto.
36122 * doc/install.texi: Ditto.
36123 * doc/invoke.texi: Ditto.
36124
36125 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
36126
36127 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
36128 modes larger than TImode as TImode if NEON is not enabled.
36129
36130 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
36131
36132 PR target/69100
36133 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
36134 mode for %f0-%f31 only if TARGET_FPU.
36135
36136 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
36137
36138 PR target/69072
36139 * config/sparc/sparc.c (scan_record_type): Take into account subfields
36140 to compute the PACKED_P predicate.
36141 (function_arg_record_value): Minor tweaks.
36142
36143 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
36144
36145 * doc/install.texi (--with-multilib-list): Describe the meaning of the
36146 option for arm*-*-* targets.
36147
36148 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
36149
36150 * doc/extend.texi (Common Function Attributes): Move docs for
36151 MSP430-specific attributes to....
36152 (MSP430 Function Attributes): ...here. Delete the redundant
36153 entries and copy-edit the remaining text.
36154 (MSP430 Variable Attributes): Use uniform format for index
36155 entries and add a cross-reference to the corresponding function
36156 attribute docs.
36157
36158 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
36159
36160 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
36161 -finite-math typo.
36162 (x86 Options): Likewise.
36163
36164 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
36165
36166 PR 1078
36167
36168 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
36169 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
36170 to corresponding attribute.
36171
36172 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
36173
36174 * doc/extend.texi (Common Function Attributes) <noplt>: Move
36175 to correct alphabetization of table. Copy-edit and correct
36176 markup.
36177 <stack_protect>: Likewise.
36178 <target_clones>: Likewise.
36179 <simd>: Likewise.
36180 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
36181 Correct punctuation.
36182 (Code Gen Options) <-fno-plt>: Copy-edit.
36183
36184 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
36185
36186 PR target/68917
36187 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
36188 SI values. Explicitly convert SI to DI and vice-versa.
36189
36190 2016-01-01 Jakub Jelinek <jakub@redhat.com>
36191
36192 PR tree-optimization/69070
36193 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
36194 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
36195
36196 PR sanitizer/69055
36197 * ubsan.c (ubsan_instrument_float_cast): Call
36198 initialize_sanitizer_builtins.
36199
36200 PR target/69015
36201 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
36202 \f
36203 Copyright (C) 2016 Free Software Foundation, Inc.
36204
36205 Copying and distribution of this file, with or without modification,
36206 are permitted in any medium without royalty provided the copyright
36207 notice and this notice are preserved.
This page took 1.584685 seconds and 6 git commands to generate.