]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
aa5b1e007387209a3685b8cd9df190f149dab1cb
[thirdparty/gcc.git] / gcc / ChangeLog
1 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2
3 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
4
5 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
6
7 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
8
9 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
10
11 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
12 * config/rs6000/vector.md: Ditto.
13 * config/rs6000/vsx.md: Ditto.
14
15 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
16
17 * ipa-inline-analysis.c (param_change_prob): Get to the base object
18 first in all cases.
19
20 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
21
22 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
23 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
24 *return_and_restore_gpregs_<mode>_r11,
25 *return_and_restore_gpregs_<mode>_r12,
26 *return_and_restore_gpregs_<mode>_r1,
27 *return_and_restore_fpregs_<mode>_r11,
28 *return_and_restore_fpregs_<mode>_r12,
29 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
30 directly instead of via the "l" constraint. Renumber operands.
31 Fix whitespace.
32
33 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
34
35 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
36 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
37 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
38 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
39 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
40 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
41 *call_value_nonlocal_darwin64, reload_macho_picbase,
42 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
43 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
44 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
45 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
46 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
47 *save_fpregs_<mode>_r1): Ditto.
48 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
49 *return_and_restore_gpregs_spe): Ditto.
50
51 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
52
53 * config/rs6000/rs6000.md
54 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
55 the use of the link register.
56 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
57
58 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
59 Michael Meissner <meissner@linux.vnet.ibm.com>
60
61 PR target/72827
62 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
63 reg+reg addressing for TImode.
64 (rs6000_legitimate_address_p): Only allow register indirect
65 addressing for TImode, even without TARGET_QUAD_MEMORY.
66
67 2016-09-01 Richard Biener <rguenther@suse.de>
68
69 PR middle-end/77436
70 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
71 check whether the result fits the desired result type.
72
73 2016-09-01 Nathan Sidwell <nathan@acm.org>
74
75 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
76
77 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
78
79 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
80 New function.
81 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
82
83 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
84
85 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
86 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
87 for comparisons of integer ZERO_EXTEND against zero.
88
89 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
90
91 * config/i386/i386.c (ix86_option_override_internal): Also disable the
92 STV pass if -mstackrealign is enabled.
93
94 2016-08-31 Ilya Verbin <iverbin@gmail.com>
95
96 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
97 AVX512IFMA.
98
99 2016-08-31 David Malcolm <dmalcolm@redhat.com>
100
101 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
102 (layout_range::intersects_line_p): New method.
103 (test_range_contains_point_for_single_point): Rename to...
104 (test_layout_range_for_single_point): ...this, and add testing
105 for layout_range::intersects_line_p.
106 (test_range_contains_point_for_single_line): Rename to...
107 (test_layout_range_for_single_line): ...this, and add testing
108 for layout_range::intersects_line_p.
109 (test_range_contains_point_for_multiple_lines): Rename to...
110 (test_layout_range_for_multiple_lines): ...this, and add testing
111 for layout_range::intersects_line_p.
112 (layout::layout): Populate m_fixit_hints.
113 (layout::get_expanded_location): Handle the case of a line-span
114 for a fix-it hint.
115 (layout::validate_fixit_hint_p): New method.
116 (get_line_span_for_fixit_hint): New function.
117 (layout::calculate_line_spans): Add spans for fixit-hints.
118 (layout::should_print_annotation_line_p): New method.
119 (layout::print_any_fixits): Drop param "richloc", instead using
120 validated fixits in m_fixit_hints. Add "const" to hint pointers.
121 (diagnostic_show_locus): Avoid printing blank annotation lines.
122 (selftest::test_diagnostic_context::test_diagnostic_context):
123 Initialize show_column and start_span.
124 (selftest::test_diagnostic_context::start_span_cb): New static
125 function.
126 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
127 (selftest::diagnostic_show_locus_c_tests): Update for function
128 renamings. Call test_diagnostic_show_locus_fixit_lines.
129
130 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
131
132 PR tree-optimization/73714
133 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
134
135 2016-08-31 David Malcolm <dmalcolm@redhat.com>
136
137 * selftest.c: Move "namespace selftest {" to top of file,
138 removing explicit "selftest::" qualifiers throughout.
139
140 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
141
142 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
143 New types.
144 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
145 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
146 Replace builtin with vector extension.
147 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
148 New types.
149 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
150 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
151 Replace builtin with vector extension.
152 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
153 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
154 Replace builtin with vector extension.
155 * config/i386/xmmintrin.h (__m128_u): New type.
156 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
157 (_mm_load_ps, _mm_store_ps): Simplify.
158
159 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
160
161 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
162
163 2016-08-30 David Malcolm <dmalcolm@redhat.com>
164
165 * diagnostic-show-locus.c (colorizer::begin_state): Support more
166 than 3 ranges per diagnostic by alternating between color 1 and
167 color 2.
168 (layout::layout): Replace use of rich_location::MAX_RANGES
169 with richloc->get_num_locations ().
170 (layout::calculate_line_spans): Replace use of
171 rich_location::MAX_RANGES with m_layout_ranges.length ().
172 (layout::print_annotation_line): Handle arbitrary numbers of
173 ranges in caret-printing by defaulting to '^'.
174 (selftest::test_one_liner_many_fixits): New function.
175 (test_diagnostic_show_locus_one_liner): Call it.
176 * diagnostic.c (diagnostic_initialize): Update for renaming
177 of rich_location::MAX_RANGES to
178 rich_location::STATICALLY_ALLOCATED_RANGES.
179 * diagnostic.h (struct diagnostic_context): Likewise.
180
181 2016-08-30 David Malcolm <dmalcolm@redhat.com>
182
183 * selftest.c (selftest::named_temp_file::named_temp_file): New
184 ctor.
185 (selftest::temp_source_file::~temp_source_file): Move to...
186 (selftest::named_temp_file::~named_temp_file): ...here.
187 (selftest::test_named_temp_file): New function.
188 (selftest::selftest_c_tests): Call test_named_temp_file.
189 * selftest.h (class named_temp_file): New class.
190 (class temp_source_file): Convert to a subclass of named_temp_file.
191
192 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
193
194 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
195 USEs of LR_REGNO in returns and sibcalls.
196 (rs6000_output_mi_thunk): Similar.
197 (rs6000_sibcall_aix): Similar.
198 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
199 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
200 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
201 Remove the USE of LR_REGNO from the patterns as well. Delete an
202 obsolete comment.
203 (return_internal_<mode>): Delete.
204
205 2016-08-30 Tamar Christina <tamar.christina@arm.com>
206
207 * gcc/config/aarch64/aarch64-simd.md
208 (aarch64_ld2<mode>_dreg_le): New.
209 (aarch64_ld2<mode>_dreg_be): New.
210 (aarch64_ld2<mode>_dreg): Removed.
211 (aarch64_ld3<mode>_dreg_le): New.
212 (aarch64_ld3<mode>_dreg_be): New.
213 (aarch64_ld3<mode>_dreg): Removed.
214 (aarch64_ld4<mode>_dreg_le): New.
215 (aarch64_ld4<mode>_dreg_be): New.
216 (aarch64_ld4<mode>_dreg): Removed.
217 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
218
219 2016-08-30 David Malcolm <dmalcolm@redhat.com>
220
221 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
222 redundant location param.
223 (test_one_liner_fixit_remove): Likewise.
224 (test_one_liner_fixit_replace): Likewise.
225 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
226 * gcc-rich-location.c
227 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
228 get_range_from_loc. Drop overload taking a const char *.
229 * gcc-rich-location.h
230 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
231 a const char *.
232
233 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
234
235 * config/linux.c (linux_libc_has_function): Return true on musl.
236
237 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
238
239 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
240
241 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
242
243 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
244 used for abnormal egdes.
245
246 2016-08-30 Jakub Jelinek <jakub@redhat.com>
247
248 PR tree-optimization/72866
249 * tree-vect-patterns.c (search_type_for_mask): Turn into
250 a small wrapper, move all code to ...
251 (search_type_for_mask_1): ... this new function. Add caching
252 and adjust recursive calls.
253
254 PR debug/77363
255 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
256 instead of lookup_type_die (type_main_variant (type)) even for array
257 types.
258
259 PR middle-end/77377
260 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
261 constant pool reference return x instead of c.
262
263 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
264
265 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
266 include MQ.
267
268 2016-08-29 David Malcolm <dmalcolm@redhat.com>
269
270 * input.c
271 (selftest::test_make_location_nonpure_range_endpoints): Fix
272 header comment.
273
274 2016-08-29 David Malcolm <dmalcolm@redhat.com>
275
276 * diagnostic-show-locus.c
277 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
278 function.
279 (selftest::test_diagnostic_show_locus_one_liner): Call it.
280 * input.c (get_pure_location): Move to libcpp/line-map.c.
281 * input.h (get_pure_location): Convert decl to an inline function
282 calling implementation in libcpp.
283
284 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
285
286 PR target/77403
287 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
288 template for intel asm dialect.
289 (vec_set_hi_<mode><mask_name>): Ditto.
290
291 2016-08-29 David Malcolm <dmalcolm@redhat.com>
292
293 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
294 (selftest::fail_formatted): Likewise.
295
296 2016-08-29 David Malcolm <dmalcolm@redhat.com>
297
298 * input.c (make_location): Call get_start and get_finish
299 on the endpoints to avoid storing packed ranges or ad-hoc
300 ranges in them.
301 (selftest::test_make_location_nonpure_range_endpoints): New function.
302 (selftest::input_c_tests): Call it.
303 * input.h (get_start): New inline function.
304
305 2016-08-29 Tom de Vries <tom@codesourcery.com>
306
307 PR c/77398
308 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
309 with assert.
310
311 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
312
313 * Makefile.in (gcov-iov.h): Add dummy recipe.
314
315 2016-08-29 Nathan Sidwell <nathan@acm.org>
316
317 * config/nvptx/nvptx.c: #include tree-vrp.h.
318
319 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
320
321 PR target/77324
322 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
323 HIGH+LO construct during reload.
324
325 2016-08-28 Tom de Vries <tom@codesourcery.com>
326
327 PR lto/70955
328 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
329 'sysv_abi va_list' attribute.
330 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
331 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
332 attributes.
333
334 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
335
336 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
337 * emit-rtl.c (unshare_all_rtl_1): Adjust.
338 (unshare_all_rtl_again): Likewise.
339 * function.c (assign_stack_local_1): Likewise.
340 (assign_stack_temp_for_type): Likewise.
341
342 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
343
344 * cfgbuild.c (make_edges): Adjust.
345 * cfgrtl.c (can_delete_label_p): Likewise.
346 * dwarf2cfi.c (create_trace_edges): Likewise.
347 * except.c (sjlj_emit_dispatch_table): Likewise.
348 * function.h (struct expr_status): make x_forced_labels a vector.
349 * jump.c (rebuild_jump_labels_1): Adjust.
350 * reload1.c (set_initial_label_offsets): Likewise.
351 * stmt.c (force_label_rtx): Likewise.
352 (expand_label): Likewise.
353
354 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
355
356 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
357
358 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
359
360 PR tree-optimization/71077
361 PR tree-optimization/68542
362 * fold-const.c (fold_relational_const): Fix folding of
363 VECTOR_CST comparisons that have a scalar boolean result type.
364 (selftest::test_vector_folding): New static function.
365 (selftest::fold_const_c_tests): Call it.
366
367 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
368
369 * doc/extend.texi (SPU Built-in Functions): Remove stale
370 references to material formerly at IBM and Sony.
371
372 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
373
374 PR target/77349
375 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
376
377 2016-08-26 David Malcolm <dmalcolm@redhat.com>
378
379 * diagnostic-show-locus.c
380 (selftest::test_fixit_consolidation): New function.
381 (selftest::diagnostic_show_locus_c_tests): Call it.
382 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
383 constructor based on source_range.
384
385 2016-08-26 David Malcolm <dmalcolm@redhat.com>
386
387 * diagnostic-color.c (color_dict): Add "fixit-insert" and
388 "fixit-delete".
389 (parse_gcc_colors): Update description of default GCC_COLORS.
390 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
391 (colorizer::set_fixit_insert): New method.
392 (colorizer::set_fixit_delete): New method.
393 (colorizer::get_color_by_name): New method.
394 (colorizer::STATE_FIXIT_INSERT): New constant.
395 (colorizer::STATE_FIXIT_DELETE): New constant.
396 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
397 fields in favor of new field "m_stop_color". Add fields
398 "m_fixit_insert" and "m_fixit_delete".
399 (colorizer::colorizer): Update for above changes. Replace
400 colorize_start calls with calls to get_color_by_name.
401 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
402 STATE_FIXIT_DELETE. Update for field renamings.
403 (colorizer::finish_state): Simplify by using m_stop_color,
404 rather than multiple identical "*_ce" fields.
405 (colorizer::get_color_by_name): New method.
406 (layout::print_any_fixits): Print insertions and replacements
407 using the "fixit-insert" color, and deletions using the
408 "fixit-delete" color.
409 * doc/invoke.texi (-fdiagnostics-color): Update description of
410 default GCC_COLORS, and of the supported capabilities.
411
412 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
413
414 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
415 current_function_static_stack_size variable with the static
416 stack frame size of the current function when
417 flag_stack_usage_info is enabled.
418
419 2016-08-26 Nathan Sidwell <nathan@acm.org>
420
421 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
422 assignment inside if condition.
423
424 2016-08-26 Richard Biener <rguenther@suse.de>
425
426 PR tree-optimization/69047
427 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
428 extracts similar to what FRE does.
429 (non_rewritable_mem_ref_base): Likewise.
430
431 2016-08-26 Joseph Myers <joseph@codesourcery.com>
432
433 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
434 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
435 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
436 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
437 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
438 Likewise.
439 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
440 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
441 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
442 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
443 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
444
445 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
446
447 PR target/70473
448 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
449 reservation duration to 15 cycles.
450 (cortex_a8_vfp_macs): Likewise.
451 (cortex_a8_vfp_macd): Likewise.
452 (cortex_a8_vfp_divs): Likewise.
453 (cortex_a8_vfp_divd): Likewise.
454
455 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
456
457 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
458 (aarch_macro_fusion_pair_p): Use above to avoid early return.
459
460 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
461 Martin Jambhor <mjambor@suse.cz>
462
463 * common.opt: New option -fipa-bit-cp.
464 * doc/invoke.texi: Document -fipa-bit-cp.
465 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
466 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
467 * tree-ssa-ccp.h: New header file.
468 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
469 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
470 Replace all occurences of tree parameter by two new params: signop, int.
471 (bit_value_unop_1): Change to bit_value_unop and export it.
472 Replace all occurences of tree parameter by two new params: signop,
473 int.
474 (bit_value_binop): Change call from bit_value_binop_1 to
475 bit_value_binop.
476 (bit_value_assume_aligned): Likewise.
477 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
478 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
479 to ccp_finalize.
480 (ccp_finalize): Skip processing if val->mask == 0.
481 * ipa-cp.c: Include tree-ssa-ccp.h
482 (ipcp_bits_lattice): New class.
483 (ipcp_param_lattice (bits_lattice): New member.
484 (print_all_lattices): Call ipcp_bits_lattice::print.
485 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
486 (initialize_node_lattices): Likewise.
487 (propagate_bits_accross_jump_function): New function.
488 (propagate_constants_accross_call): Call
489 propagate_bits_accross_jump_function.
490 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
491 (ipcp_store_bits_results): New function.
492 (ipcp_driver): Call ipcp_store_bits_results.
493 * ipa-prop.h (ipa_bits): New struct.
494 (ipa_jump_func): Add new member bits of type ipa_bits.
495 (ipa_param_descriptor): Change decl to decl_or_type.
496 (ipa_get_param): Change decl to decl_or_type and assert on
497 PARM_DECL.
498 (ipa_get_type): New function.
499 (ipcp_transformation_summary): New member bits.
500 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
501 (ipa_populate_param_decls): Likewise.
502 (ipa_dump_param): Likewise.
503 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
504 function.
505 (ipa_set_jf_unknown): Set ipa_bits::known to false.
506 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
507 propagation.
508 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
509 (ipa_write_jump_function): Add streaming for ipa_bits.
510 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
511 (write_ipcp_transformation_info): Add streaming for ipa_bits
512 summary for ltrans.
513 (read_ipcp_transfomration_info): Add support for reading streamed
514 ipa_bits.
515 (ipcp_update_bits): New function.
516 (ipcp_transform_function): Call ipcp_update_bits.
517
518 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
519
520 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
521 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
522
523 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
524
525 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
526
527 2016-08-25 Richard Biener <rguenther@suse.de>
528
529 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
530 Only add locations in late dwarf.
531 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
532 (dwarf2out_early_finish): But do it here.
533
534 2016-08-24 Michael Collison <michael.collison@linaro.org>
535 Michael Collison <michael.collison@arm.com>
536
537 * config/arm/arm-modes.def: Add new condition code mode CC_V
538 to represent the overflow bit.
539 * config/arm/arm.c (maybe_get_arm_condition_code):
540 Add support for CC_Vmode.
541 (arm_gen_unlikely_cbranch): New function to generate common
542 rtl conditional branches for overflow patterns.
543 * config/arm/arm-protos.h: Add prototype for
544 arm_gen_unlikely_cbranch.
545 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
546 addsi3_compareV_upper): New patterns to support signed
547 builtin overflow add operations.
548 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
549 New patterns to support unsigned builtin add overflow operations.
550 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
551 builtin overflow subtract operations,
552 (usubv<mode>4): New patterns to support unsigned builtin subtract
553 overflow operations.
554 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
555 to support builtin overflow negate operations.
556
557 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
558
559 Revert
560 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
561
562 * explow.c (get_dynamic_stack_size): Take known alignment of stack
563 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
564 needed.
565
566 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
567
568 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
569 MULTILIB_OPTIONS should be used. Small wording fixes.
570 * genmultilib: Memorize set of all option combinations in
571 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
572 found in MULTILIB_OPTIONS by checking if option set is listed in
573 combination_space. Output new and existing error message to stderr.
574
575 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
576
577 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
578 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
579 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
580 (MULTILIB_REUSE): Remove reuse rules for option set including
581 -mfpu=fp-armv8 and -mfpu=vfpv4
582
583 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
584
585 * config/arm/t-rtems: Add vfp multilib.
586
587 2016-08-23 Ian Lance Taylor <iant@golang.org>
588
589 * config/s390/s390.c (s390_asm_file_start): Call
590 default_file_start.
591
592 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
593
594 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
595 initialization of all 0's to the 0 constant, instead of directly
596 generating XOR. Add support for V4SImode vector initialization on
597 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
598 initialization. Change variables used in V4SFmode vector
599 intialization. For V4SFmode vector splat on ISA 3.0, make sure
600 any memory addresses are in index form. Add support for using
601 VSPLTH/VSPLTB to initialize vector short and vector char vectors
602 with all of the same element.
603 (regno_or_subregno): New helper function to return a register
604 number for either REG or SUBREG.
605 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
606 Use regno_or_subregno where possible.
607 (rs6000_split_v4si_init_di_reg): New helper function to build up a
608 DImode value from two SImode values in order to generate V4SImode
609 vector initialization on 64-bit systems with direct move.
610 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
611 initialization.
612 (rtx_is_swappable_p): V4SImode vector initialization insn is not
613 swappable.
614 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
615 declaration.
616 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
617 attributes to initialize V8HImode and V16QImode vectors with the
618 same element.
619 (VSX_SPLAT_COUNT): Likewise.
620 (VSX_SPLAT_SUFFIX): Likewise.
621 (UNSPEC_VSX_VEC_INIT): New unspec.
622 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
623 Allow SFmode values to come from Altivec registers.
624 (vsx_init_v4si): New insn/split for V4SImode vector initialization
625 on 64-bit systems with direct move.
626 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
627 vector initializations, to allow V4SImode vector initializations
628 on 64-bit systems with direct move.
629 (vsx_splat_v4si): Likewise.
630 (vsx_splat_v4si_di): Likewise.
631 (vsx_splat_v4sf): Likewise.
632 (vsx_splat_v4sf_internal): Likewise.
633 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
634 register classes.
635 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
636 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
637 initializing V8HImode and V16QImode vectors with the same
638 element.
639 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
640 optimization if -maltivec=be.
641
642 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
643
644 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
645 attribute for alternatives 3 and 4.
646
647 2016-08-23 David Malcolm <dmalcolm@redhat.com>
648
649 * selftest.c (selftest::assert_str_contains): New function.
650 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
651 * selftest.h (selftest::assert_str_contains): New decl.
652 (ASSERT_STR_CONTAINS): New macro.
653
654 2016-08-23 Richard Biener <rguenther@suse.de>
655
656 PR tree-optimization/77286
657 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
658 the CFG here.
659 (vect_transform_loop): Split exit edges of loop and scalar
660 loop if required and at the appropriate time.
661
662 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
663
664 * explow.c (get_dynamic_stack_size): Take known alignment of stack
665 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
666 needed.
667 Correct a typo in a comment.
668
669 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
670
671 * config/s390/s390.md ("*andc_split"): New splitter for and with
672 complement.
673
674 2016-08-23 Richard Biener <rguenther@suse.de>
675
676 PR tree-optimization/27336
677 * tree-vrp.c (infer_value_range): Handle stmts that can throw
678 by looking for a non-EH edge.
679 (process_assert_insertions_for): Likewise.
680
681 2016-08-23 Richard Biener <rguenther@suse.de>
682
683 PR middle-end/77305
684 * statistics.c (statistics_counter_event): Robustify against
685 NULL current_pass.
686
687 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
688
689 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
690 for targets amdfam10 and barcelona.
691
692 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
693
694 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
695 (zero_extend<mode>di2): Ditto.
696 (*zero_extend<mode>si2): Ditto.
697 (*zero_extendqihi2): Ditto.
698
699 2016-08-22 Joseph Myers <joseph@codesourcery.com>
700
701 PR middle-end/77269
702 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
703 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
704
705 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
706
707 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
708 identical consecutive elements.
709 [SSA_NAME]: Print the name's def stmt on its own line. When printing
710 the node's def stmt, avoid printing an unwanted trailing newline by
711 replacing the call to print_gimple_stmt() with its inlined body and
712 adjusting it to not set pp_needs_newline and to call pp_flush()
713 instead of pp_newline_and_flush().
714
715 2016-08-22 Joseph Myers <joseph@codesourcery.com>
716
717 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
718 (float32_type_node, float64_type_node, float32x_type_node)
719 (float128x_type_node): New macros.
720 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
721 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
722 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
723 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
724 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
725 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
726 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
727 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
728 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
729 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
730 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
731 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
732 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
733 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
734 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
735 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
736 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
737 (copysign, fabs, huge_val, inf, nan, nans): Use it.
738 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
739 and copysign.
740 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
741 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
742 * doc/extend.texi (Other Builtins): Document these built-in
743 functions.
744 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
745 for nan and nans.
746
747 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
748
749 * doc/install.texi (Binaries): www.opencsw.org now uses https.
750
751 2016-08-22 Richard Biener <rguenther@suse.de>
752
753 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
754
755 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
756
757 PR target/77270
758 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
759 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
760 non-SSE2 athlons only, otherwise prefer SSE prefetches.
761
762 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
763
764 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
765 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
766 (vrp_visit_switch_stmt): Likewise.
767 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
768 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
769 (vrp_visit_stmt): Use extract_range_from_stmt.
770 (vrp_visit_phi_node): Use extract_range_from_phi_node.
771
772 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
773
774 * Makefile.in: Add tree-vrp.h to GTFILES.
775 * gengtype.c (open_base_files): Add tree-vrp.h.
776 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
777 * builtins.c: Likewise.
778 * fold-const.c: Likewise.
779 * gimple-builder.c: Likewise.
780 * gimple-laddress.c: Likewise.
781 * hsa-gen.c: Likewise.
782 * internal-fn.c: Likewise.
783 * ssa.h: Likewise.
784 * targhooks.c: Liewise,
785 * tree-ssa-address.c: Likewise.
786 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
787 * tree-vrp.c (struct value_range): Move to tree-vrp.h
788 * tree-vrp.h: New file.
789
790 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
791
792 PR tree-optimization/61839
793 * tree-vrp.c (two_valued_val_range_p): New.
794 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
795 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
796 Also Convert VAR BINOP CST where VAR is two-valued to
797 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
798
799 2016-08-19 David Malcolm <dmalcolm@redhat.com>
800
801 * diagnostic-show-locus.c
802 (layout::annotation_line_showed_range_p): New method.
803 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
804 Reimplement case fixit_hint::REPLACE to cover removals, and
805 replacements where the range of the replacement isn't one
806 of the ranges in the rich_location.
807 (test_one_liner_fixit_replace): Likewise.
808 (selftest::test_one_liner_fixit_replace_non_equal_range): New
809 function.
810 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
811 New function.
812 (selftest::test_diagnostic_show_locus_one_liner): Call the new
813 functions.
814 * diagnostic.c (print_parseable_fixits): Remove case
815 fixit_hint::REMOVE.
816
817 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
818
819 PR target/77270
820 * config/i386/i386.c (ix86_option_override_internal): Remove
821 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
822 Enable SSE prefetch also for TARGET_PREFETCHWT1.
823 Do not try to enable TARGET_PRFCHW ISA flag here.
824 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
825 Rewrite expander function body.
826 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
827
828 2016-08-19 Joseph Myers <joseph@codesourcery.com>
829
830 PR c/32187
831 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
832 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
833 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
834 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
835 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
836 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
837 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
838 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
839 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
840 tree_index values.
841 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
842 macros.
843 (struct floatn_type_info): New structure type.
844 (floatn_nx_types): New variable declaration.
845 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
846 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
847 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
848 * tree.c (floatn_nx_types): New variable.
849 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
850 corresponding complex types.
851 * target.def (floatn_mode): New hook.
852 * targhooks.c: Include "real.h".
853 (default_floatn_mode): New function.
854 * targhooks.h (default_floatn_mode): New prototype.
855 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
856 types.
857 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
858 effective-target and dg-add-options keywords.
859 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
860 Document new effective-target keywords.
861 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
862 * doc/tm.texi: Regenerate.
863 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
864 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
865 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
866 18661-3.
867 * real.h (struct real_format): Add field ieee_bits.
868 * real.c (ieee_single_format, mips_single_format)
869 (motorola_single_format, spu_single_format, ieee_double_format)
870 (mips_double_format, motorola_double_format)
871 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
872 (ieee_extended_intel_128_format)
873 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
874 (mips_extended_format, ieee_quad_format, mips_quad_format)
875 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
876 (decimal_double_format, decimal_quad_format, ieee_half_format)
877 (arm_half_format, real_internal_format: Initialize ieee_bits
878 field.
879 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
880 float128_type_node. Set float80_type_node to float64x_type_node
881 if appropriate and long_double_type_node not appropriate.
882 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
883 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
884 Initialize ieee_bits field.
885 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
886 (rs6000_init_builtins): Set ieee128_float_type_node to
887 float128_type_node.
888 (rs6000_floatn_mode): New function.
889
890 2016-08-19 Jakub Jelinek <jakub@redhat.com>
891
892 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
893 _rdseed64_step): Uglify argument names and/or local variable names
894 in inline functions.
895 * config/i386/rtmintrin.h (_xabort): Likewise.
896 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
897 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
898 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
899 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
900 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
901 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
902 _mm_maskz_ternarylogic_epi32): Likewise.
903 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
904 __lwpins32, __lwpins64): Likewise.
905 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
906 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
907 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
908 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
909 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
910 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
911 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
912 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
913 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
914 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
915 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
916 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
917 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
918 _mm256_mask_i64gather_epi32): Likewise.
919 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
920 * config/i386/ia32intrin.h (__writeeflags): Likewise.
921 * config/i386/pkuintrin.h (_wrpkru): Likewise.
922 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
923 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
924 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
925 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
926 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
927 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
928 _mm512_mask_prefetch_i64scatter_ps): Likewise.
929 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
930 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
931 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
932 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
933 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
934 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
935 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
936 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
937
938 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
939 returning void.
940 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
941 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
942 Likewise.
943 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
944 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
945 function name.
946 (_rdpkru_u32): Add space after function name.
947
948 * config/i386/t-i386 (i386-c.o): Don't depend on
949 i386-builtin-types.inc.
950 (i386.o): Depend on i386-builtin-types.inc.
951
952 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
953
954 PR target/77281
955 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
956 Use const_vec_duplicate to check for duplicated elements.
957
958 2016-08-19 Richard Biener <rguenther@suse.de>
959
960 PR tree-optimization/77290
961 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
962 Fix flag_tree_parallelize_loops check.
963
964 2016-08-19 Richard Biener <rguenther@suse.de>
965
966 * match.pd (x | 0 -> x): Add.
967
968 2016-08-19 Richard Biener <rguenther@suse.de>
969
970 PR tree-optimization/77286
971 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
972 Deal with virtual PHIs being out-of-order.
973
974 2016-08-18 David Malcolm <dmalcolm@redhat.com>
975
976 * doc/invoke.texi (fverbose-asm): Note that source code lines
977 are emitted, and provide an example.
978 * final.c (asm_show_source): New function.
979 (final_scan_insn): Call asm_show_source.
980
981 2016-08-18 David Malcolm <dmalcolm@redhat.com>
982
983 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
984 param with diagnostic_kind.
985 (class colorizer): Similarly replace field m_diagnostic with
986 m_diagnostic_kind.
987 (colorizer::colorizer): Replace diagnostic
988 param with diagnostic_kind.
989 (colorizer::begin_state): Update for above field change.
990 (layout::layout): Replace diagnostic param with rich_location *
991 and diagnostic_kind.
992 (diagnostic_show_locus): Replace diagnostic param with richloc
993 and diagnostic_kind.
994 (class selftest::test_diagnostic_context): New class.
995 (selftest::test_diagnostic_show_locus_unknown_location): New
996 function.
997 (selftest::test_one_liner_simple_caret): New function.
998 (selftest::test_one_liner_caret_and_range): New function.
999 (selftest::test_one_liner_multiple_carets_and_ranges): New
1000 function.
1001 (selftest::test_one_liner_fixit_remove): New function.
1002 (selftest::test_one_liner_fixit_replace): New function.
1003 (selftest::test_diagnostic_show_locus_one_liner): New function.
1004 (selftest::diagnostic_show_locus_c_tests): Call the new test
1005 functions.
1006 * diagnostic.c (diagnostic_initialize): Initialize
1007 colorize_source_p, show_ruler_p and parseable_fixits_p.
1008 (default_diagnostic_finalizer): Update for change to
1009 diagnostic_show_locus.
1010 (diagnostic_append_note): Likewise.
1011 * diagnostic.h (diagnostic_show_locus): Replace
1012 const diagnostic_info * param with location * and diagnostic_t.
1013
1014 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1015
1016 * input.c (saved_line_table): New global.
1017 (class selftest::temp_line_table): Rename to line_table_test and
1018 move declaration to selftest.h, and drop field m_old_line_table.
1019 (selftest::temp_line_table::temp_line_table): Rename ctor to...
1020 (selftest::line_table_test::line_table_test): ...this. Add a
1021 default ctor. Store current value of line_table within
1022 saved_line_table.
1023 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
1024 (selftest::line_table_test::~line_table_test): ...this, and
1025 restore line_table from the saved_line_table, rather than
1026 m_old_line_table.
1027 (selftest::test_accessing_ordinary_linemaps): Update for above
1028 renaming.
1029 (selftest::test_lexer): Likewise.
1030 (struct selftest::lexer_test): Likewise.
1031 (selftest::lexer_test::lexer_test): Likewise.
1032 (selftest::input_c_tests): Move the looping over test cases from
1033 here into...
1034 (selftest::for_each_line_table_case): New function.
1035 * input.h (saved_line_table): New decl.
1036 * selftest.h (struct selftest::line_table_case): New forward decl.
1037 (class selftest::line_table_test): New class, moved here from
1038 selftest::temp_line_table in input.c, and renamed.
1039 (selftest::for_each_line_table_case): New decl.
1040
1041 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
1042
1043 PR target/72839
1044 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
1045
1046 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
1047
1048 PR middle-end/70895
1049 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
1050 enclosing parallel construct for reduction variables on OpenACC loop
1051 directives.
1052
1053 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
1054
1055 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
1056 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
1057 -gdwarf-3.
1058 (function_to_dwarf_procedure): Update comment.
1059
1060 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1061
1062 * input.c (diagnostics_file_cache_forcibly_evict_file): New
1063 function.
1064 * input.h (diagnostics_file_cache_forcibly_evict_file): New
1065 declaration.
1066 * selftest.c (selftest::temp_source_file::~temp_source_file):
1067 Evict m_filename from the diagnostic file cache.
1068
1069 2016-08-18 Richard Biener <rguenther@suse.de>
1070
1071 * tree-pass.h (make_pass_materialize_all_clones): Declare.
1072 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
1073 make_pass_materialize_all_clones): New simple IPA pass encapsulating
1074 clone materialization.
1075 * passes.def (all_late_ipa_passes): Start with
1076 pass_materialize_all_clones.
1077 * cgraphunit.c (symbol_table::compile): Remove call to
1078 materialize_all_clones.
1079 * tree-into-ssa.c: Include statistics.h.
1080 (update_ssa): Count number of times we do incremental/rewrite
1081 SSA update.
1082
1083 2016-08-18 Richard Biener <rguenther@suse.de>
1084
1085 PR tree-optimization/77282
1086 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1087 When doing auto-parallelizing also prevent use of PHIs that
1088 carry dependences across loop backedges.
1089
1090 2016-08-18  Tamar Christina  <tamar.christina@arm.com>
1091 Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1092
1093 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
1094
1095 2016-08-18 Richard Biener <rguenther@suse.de>
1096
1097 * ssa-iterators.h (ssa_vuse_operand): New inline.
1098 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
1099 (predicate_all_scalar_phis): Use remove_phi_node to remove
1100 phi nodes predicated. Delay removing virtual PHIs.
1101 (predicate_mem_writes): Update virtual operands.
1102 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
1103 (tree_if_conversion): Do not rewrite virtual SSA form.
1104 * tree-phinodes.c (release_phi_node): Make static.
1105 * tree-phinodes.h (release_phi_node): Remove.
1106
1107 2016-08-18 Jakub Jelinek <jakub@redhat.com>
1108
1109 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
1110 codes that appear in bdesc_* arrays, instead include i386-builtin.def
1111 twice to define those.
1112 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
1113 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
1114 bdesc_multi_arg): Define by including i386-builtin.def the third time.
1115 * config/i386/i386-builtin.def: New file.
1116
1117 2016-08-17 David Malcolm <dmalcolm@redhat.com>
1118
1119 * input.c (get_source_range_for_char): Rename to...
1120 (selftest::get_source_range_for_char): ...this, and move within
1121 the #if CHECKING_P guard.
1122 (get_num_source_ranges_for_substring): Rename to...
1123 (selftest::get_num_source_ranges_for_substring): ...this, move
1124 within the #if CHECKING_P guard, and make static.
1125 (selftest::assert_num_substring_ranges): Initialize
1126 actual_num_ranges.
1127
1128 2016-08-18 Alan Modra <amodra@gmail.com>
1129
1130 PR rtl-optimization/72771
1131 * reload.c (find_reloads): Don't assume that a subreg mem is OK
1132 when find_reloads_toplev returns address_reloaded==-1.
1133 (alternative_allows_const_pool_ref): Update comment.
1134
1135 2015-08-17 Alan Hayward <alan.hayward@arm.com>
1136
1137 PR tree-optimization/71752
1138 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
1139 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
1140
1141 2016-08-17 Jakub Jelinek <jakub@redhat.com>
1142
1143 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
1144 instead of testing ECF_NORETURN bit in gimple_call_flags.
1145 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
1146 * predict.c (tree_bb_level_predictions): Likewise.
1147 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
1148
1149 PR middle-end/77259
1150 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
1151 turning a call into __builtin_unreachable-like noreturn call, adjust
1152 gimple_call_set_fntype.
1153 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
1154 gimple_call_fntype has void return type.
1155
1156 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
1157
1158 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
1159 maybe_lookup_decl, to handle nested acc loop directives.
1160
1161 2016-08-17 Richard Biener <rguenther@suse.de>
1162
1163 PR tree-optimization/76490
1164 * tree-vrp.c (update_value_range): Preserve overflow infinities
1165 when intersecting with ranges from get_range_info.
1166 (operand_less_p): Handle overflow infinities correctly.
1167 (value_range_constant_singleton): Use vrp_operand_equal_p
1168 to handle overflow max/min correctly.
1169 (vrp_valueize): Likewise.
1170 (union_ranges): Likewise.
1171 (intersect_ranges): Likewise.
1172 (vrp_visit_phi_node): Improve iteration limitation to only
1173 apply when we'll possibly re-visit the PHI via a changed argument
1174 on the backedge.
1175
1176 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
1177
1178 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
1179 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
1180 rather than those that should not be built.
1181
1182 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
1183
1184 PR target/66488
1185 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
1186
1187 2016-08-17 Richard Biener <rguenther@suse.de>
1188
1189 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
1190 (verify_vssa): New function verifying virtual SSA form.
1191 (verify_ssa): Call it.
1192 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
1193 Do not apply loop-closed SSA handling to virtuals.
1194 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
1195 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
1196 when rewriting their symbol.
1197 (prepare_def_site_for): Likewise.
1198 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
1199 operands of moved stmts.
1200
1201 2016-08-17 Richard Biener <rguenther@suse.de>
1202
1203 PR tree-optimization/23855
1204 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
1205 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
1206 find guards to hoist. Do not update SSA form but rewrite virtuals
1207 into loop closed SSA.
1208 (find_loop_guard): Adjust to skip already hoisted guards. Do
1209 not mark virtuals for renaming or update SSA form.
1210
1211 2016-08-17 Martin Liska <mliska@suse.cz>
1212
1213 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
1214 a LONG_LONG_TYPE_SIZE comparison.
1215 * gcov-io.h: Remove macro definitions.
1216 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
1217 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
1218 comparison.
1219
1220 2016-08-16 Jakub Jelinek <jakub@redhat.com>
1221
1222 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
1223 that builtins not mentioned in bdesc_* arrays come first, then
1224 the ones mentioned in bdesc_* arrays in the order they appear in
1225 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
1226 IX86_BUILTIN__BDESC_*_LAST enumerator.
1227 (bdesc_mpx): Fix up a comment typo.
1228 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
1229 __builtin_ia32_vpcomneu[bwdq] builtins.
1230 (BDESC_VERIFY, BDESC_VERIFYS): Define.
1231 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
1232 enum ix86_builtins ordering.
1233 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
1234 for direct bdesc_* array member access instead of searching all the
1235 arrays until an fcode match is found.
1236
1237 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
1238
1239 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
1240 pattern as define_insn_and_split. Split insn before reload to
1241 ashl<mode>3_1.
1242 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
1243 <shift_insn><mode>3_1.
1244 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
1245 <rotate_insn><mode>3_1.
1246
1247 2016-08-16 David Malcolm <dmalcolm@redhat.com>
1248
1249 PR c/72857
1250 * input.c (get_source_range_for_substring): Rename to...
1251 (get_source_location_for_substring): ...this, adding param
1252 "caret_idx", and converting output param from source_range * to
1253 location_t *.
1254 (get_source_range_for_char): New function.
1255 (get_num_source_ranges_for_substring): Update comment to reflect
1256 above renaming.
1257 (assert_char_at_range): Update to use get_source_range_for_char
1258 rather than get_source_range_for_substring.
1259 (test_lexer_string_locations_concatenation_2): Likewise.
1260 * substring-locations.h (get_source_range_for_substring): Rename
1261 to...
1262 (get_source_location_for_substring): ...this, and adding param
1263 "caret_idx", and converting output param from source_range * to
1264 location_t *.
1265
1266 2016-08-16 David Malcolm <dmalcolm@redhat.com>
1267
1268 * input.c (class selftest::temp_source_file): Move to
1269 selftest.h.
1270 (selftest::temp_source_file::temp_source_file): Move to
1271 selftest.c.
1272 (selftest::temp_source_file::~temp_source_file): Likewise.
1273 * selftest.c (selftest::temp_source_file::temp_source_file): Move
1274 here from input.c.
1275 (selftest::temp_source_file::~temp_source_file): Likewise.
1276 * selftest.h (class selftest::temp_source_file): Move here from
1277 input.c
1278
1279 2016-08-16 Jakub Jelinek <jakub@redhat.com>
1280
1281 PR target/71910
1282 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
1283 inlining, add cgraph edge for the added __builtin_unreachable call.
1284
1285 PR middle-end/67485
1286 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
1287 only cast it to SHWI for the final comparison.
1288
1289 2016-08-16 Martin Liska <mliska@suse.cz>
1290
1291 PR gcov-profile/36412
1292 * doc/gcov.texi: Document --hash-filenames(-x).
1293 * gcov.c (print_usage): Add the option.
1294 (process_args): Process the option, sort options alphabetically.
1295 (md5sum_to_hex): New function.
1296 (make_gcov_file_name): Do the md5sum and append it to a
1297 filename.
1298
1299 2016-08-16 Bin Cheng <bin.cheng@arm.com>
1300
1301 PR tree-optimization/69848
1302 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
1303 and swtich operands to avoid additional NOT instruction.
1304 (vcond<v_cmp_mixed><mode>): Ditto.
1305 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
1306
1307 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
1308
1309 * doc/install.texi (*-*-solaris2*): Adjust latest change.
1310
1311 2016-08-16 Richard Biener <rguenther@suse.de>
1312
1313 PR tree-optimization/76783
1314 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
1315 BB visited flags at start.
1316
1317 2016-08-16 Bin Cheng <bin.cheng@arm.com>
1318
1319 PR tree-optimization/72817
1320 PR tree-optimization/73450
1321 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
1322 multiple_of_p for adjusted IV.base.
1323
1324 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
1325
1326 PR target/72867
1327 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
1328 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
1329 for !flag_finite_math_only or flag_signed_zeros.
1330 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
1331 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
1332 depend on flag_finite_math_only.
1333 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
1334 New insn pattern.
1335 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
1336 (*ieee_smin<mode>3): Ditto.
1337 (*ieee_smax<mode>3): Ditto.
1338 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
1339 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
1340 flag_signed_zeros.
1341 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
1342 depend on flag_finite_math_only.
1343 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
1344 (*mmx_<code>v2sf3): Remove.
1345 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
1346 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
1347 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
1348
1349 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
1350
1351 PR rtl-optimization/73650
1352 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
1353 it is not a simple move.
1354
1355 2016-08-15 Martin Liska <mliska@suse.cz>
1356
1357 PR driver/72765
1358 * gcc.c (do_spec_1): Call save_string with the right size.
1359 (save_string): Do an assert about string we copy.
1360
1361 2016-08-15 Richard Biener <rguenther@suse.de>
1362
1363 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
1364 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
1365 TV_MACH_DEP.
1366 (pass_data_stv): Likewise.
1367
1368 2016-08-15 Richard Biener <rguenther@suse.de>
1369
1370 PR tree-optimization/73434
1371 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
1372 TBAA info on the base when forwarding a non-invariant address.
1373
1374 2016-08-15 Jakub Jelinek <jakub@redhat.com>
1375
1376 * dwarf2out.c (struct checksum_attributes): Add
1377 at_string_length_bit_size and at_string_length_byte_size fields.
1378 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
1379 and DW_AT_string_length_byte_size.
1380 (die_checksum_ordered): Handle at_string_length_bit_size and
1381 at_string_length_byte_size.
1382 (gen_array_type_die): For dwarf_version >= 5 emit
1383 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
1384 (adjust_string_types): For dwarf_version >= 5 remove
1385 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
1386 (resolve_addr): Likewise.
1387
1388 PR debug/71906
1389 * dwarf2out.c (string_types): New variable.
1390 (gen_array_type_die): Change early_dwarf handling of
1391 DW_AT_string_length, create DW_OP_call4 referencing the
1392 length var temporarily. Handle parameters that are pointers
1393 to string length.
1394 (adjust_string_types): New function.
1395 (gen_subprogram_die): Temporarily set string_types to local var,
1396 call adjust_string_types if needed.
1397 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
1398 New functions.
1399 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
1400
1401 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
1402
1403 * doc/install.texi (*-*-solaris2*): Fix version number and document
1404 requirement on GNU make for building libjava with the Solaris linker.
1405
1406 2016-08-15 Martin Liska <mliska@suse.cz>
1407 Jakub Jelinek <jakub@redhat.com>
1408
1409 PR tree-optimization/72824
1410 * tree-loop-distribution.c (const_with_all_bytes_same)
1411 <case VECTOR_CST>: Fix a typo.
1412
1413 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
1414
1415 PR target/76342
1416 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
1417 Renamed from _mm512_undefined_si512.
1418 (_mm_undefined_si512): New definition.
1419
1420 2016-08-13 Richard Biener <rguenther@suse.de>
1421
1422 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
1423 into PHIs and update the lattice for its def.
1424
1425 2016-08-12 Jakub Jelinek <jakub@redhat.com>
1426
1427 PR c/71512
1428 * ubsan.c (instrument_si_overflow): Pass true instead of false
1429 to gsi_replace.
1430 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
1431 of bbs. Return TODO_cleanup_cfg if any returned true.
1432
1433 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1434
1435 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
1436 ISA 3.0 MTVSRDD instruction.
1437 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
1438 vecperm.
1439
1440 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
1441
1442 PR tree-optimization/71083
1443 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
1444 bitfield access when possible.
1445
1446 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
1447
1448 PR middle-end/71654
1449 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
1450 sign-changing cast from a shorter unsigned type to a wider
1451 signed type.
1452
1453 2016-08-12 Jakub Jelinek <jakub@redhat.com>
1454
1455 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
1456 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
1457 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
1458
1459 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1460
1461 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1462 Correct costs for vec_construct.
1463
1464 2016-08-12 Bin Cheng <bin.cheng@arm.com>
1465
1466 PR tree-optimization/69848
1467 * tree-vectorizer.h (enum vect_def_type): New condition reduction
1468 type CONST_COND_REDUCTION.
1469 * tree-vect-loop.c (vectorizable_reduction): Support new condition
1470 reudction type CONST_COND_REDUCTION.
1471
1472 2016-08-12 Richard Biener <rguenther@suse.de>
1473
1474 PR tree-optimization/57326
1475 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
1476 returning an SSA name.
1477 (phi_translate_1): When fully_constant_expression returns a NAME
1478 make sure we have a leader for it.
1479
1480 2016-08-12 Martin Liska <mliska@suse.cz>
1481 Adam Fineman <afineman@afineman.com>
1482
1483 * gcov.c (process_file): Create .gcov file when .gcda
1484 file is missing.
1485
1486 2016-08-12 Marek Polacek <polacek@redhat.com>
1487
1488 PR c/7652
1489 * alias.c (find_base_value): Adjust fall through comment.
1490 * cfgexpand.c (expand_debug_expr): Likewise.
1491 * combine.c (find_split_point): Likewise.
1492 (expand_compound_operation): Likewise. Add FALLTHRU.
1493 (make_compound_operation): Adjust fall through comment.
1494 (canon_reg_for_combine): Add FALLTHRU.
1495 (force_to_mode): Adjust fall through comment.
1496 (simplify_shift_const_1): Likewise.
1497 (simplify_comparison): Likewise.
1498 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
1499 FALLTHRU.
1500 * config/aarch64/predicates.md: Likewise.
1501 * config/i386/i386.c (function_arg_advance_32): Likewise.
1502 (ix86_gimplify_va_arg): Likewise.
1503 (print_reg): Likewise.
1504 (ix86_print_operand): Likewise.
1505 (ix86_build_const_vector): Likewise.
1506 (ix86_expand_branch): Likewise.
1507 (ix86_sched_init_global): Adjust fall through comment.
1508 (ix86_expand_args_builtin): Add FALLTHRU.
1509 (ix86_expand_builtin): Likewise.
1510 (ix86_expand_vector_init_one_var): Likewise.
1511 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
1512 (rs6000_adjust_cost): Likewise.
1513 (insn_must_be_first_in_group): Likewise.
1514 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
1515 * dbxout.c (dbxout_symbol): Adjust fall through comment.
1516 * df-scan.c (df_uses_record): Likewise.
1517 * dojump.c (do_jump): Add FALLTHRU.
1518 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
1519 comment.
1520 (resolve_args_picking_1): Adjust fall through comment.
1521 (loc_list_from_tree_1): Likewise.
1522 * expmed.c (make_tree): Likewise.
1523 * expr.c (expand_expr_real_2): Add FALLTHRU.
1524 (expand_expr_real_1): Likewise. Adjust fall through comment.
1525 * fold-const.c (const_binop): Adjust fall through comment.
1526 (fold_truth_not_expr): Likewise.
1527 (fold_cond_expr_with_comparison): Add FALLTHRU.
1528 (fold_binary_loc): Likewise.
1529 (contains_label_1): Adjust fall through comment.
1530 (multiple_of_p): Likewise.
1531 * gcov-tool.c (process_args): Add FALLTHRU.
1532 * genattrtab.c (check_attr_test): Likewise.
1533 (write_test_expr): Likewise.
1534 * genconfig.c (walk_insn_part): Likewise.
1535 * genpreds.c (validate_exp): Adjust fall through comment.
1536 (needs_variable): Likewise.
1537 * gensupport.c (get_alternatives_number): Add FALLTHRU.
1538 (subst_dup): Likewise.
1539 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
1540 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
1541 (gimplify_scan_omp_clauses): Add FALLTHRU.
1542 (goa_stabilize_expr): Likewise.
1543 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
1544 through comment.
1545 * hsa-gen.c (get_address_from_value): Likewise.
1546 * ipa-icf.c (sem_function::hash_stmt): Likewise.
1547 * ira.c (ira_setup_alts): Add FALLTHRU.
1548 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
1549 comment.
1550 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
1551 * opts.c (common_handle_option): Likewise.
1552 * read-rtl.c (read_rtx_code): Likewise.
1553 * real.c (round_for_format): Likewise.
1554 * recog.c (asm_operand_ok): Likewise.
1555 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
1556 * reload1.c (set_label_offsets): Likewise.
1557 (eliminate_regs_1): Likewise.
1558 (reload_reg_reaches_end_p): Likewise.
1559 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
1560 (rtx_cost): Likewise.
1561 * sched-rgn.c (is_exception_free): Likewise.
1562 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
1563 * stor-layout.c (int_mode_for_mode): Likewise.
1564 * toplev.c (print_to_asm_out_file): Likewise.
1565 (print_to_stderr): Likewise.
1566 * tree-cfg.c (gimple_verify_flow_info): Likewise.
1567 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
1568 (chrec_fold_multiply): Likewise.
1569 (evolution_function_is_invariant_rec_p): Likewise.
1570 (for_each_scev_op): Likewise.
1571 * tree-data-ref.c (siv_subscript_p): Likewise.
1572 (get_references_in_stmt): Likewise.
1573 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
1574 (substitute_in_expr): Likewise.
1575 (type_cache_hasher::equal): Likewise.
1576 (walk_type_fields): Likewise.
1577 * var-tracking.c (adjust_mems): Add FALLTHRU.
1578 (set_dv_changed): Adjust fall through comment.
1579 * varasm.c (default_function_section): Add FALLTHRU.
1580
1581 2016-08-12 Marek Polacek <polacek@redhat.com>
1582
1583 PR c/7652
1584 * tree-complex.c (expand_complex_division): Add missing break.
1585
1586 2016-08-12 Richard Biener <rguenther@suse.de>
1587
1588 * passes.c (execute_todo): Do not push/pop TV_TODO.
1589 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
1590 (execute_one_pass): Likewise.
1591 * common.opt (ftime-report-details): New switch.
1592 * doc/invoke.texi (ftime-report-details): Document.
1593 * timevar.h (timer::print_row): Adjust signature.
1594 (timer::all_zero): New static helper.
1595 (timer::child_map_t): New typedef.
1596 (timer::time_var_def): Add children field.
1597 * timevar.c (timer::named_items::print): Adjust.
1598 (timer::~timer): Free timevar recorded children.
1599 (timer::pop_internal): When -ftime-report-details record
1600 time spent in sub-timevars.
1601 (timer::print_row): Adjust.
1602 (timer::print): Print sub-timevar stats, use all_zero.
1603 * timevar.def (TV_TODO): Remove.
1604
1605 2016-08-12 Richard Biener <rguenther@suse.de>
1606
1607 PR tree-optimization/72851
1608 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
1609 worklists to use bitmaps indexed in execution order.
1610 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
1611 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
1612 (cfg_blocks): Make a bitmap.
1613 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
1614 New globals.
1615 (cfg_blocks_empty_p): Adjust.
1616 (cfg_blocks_add): Likewise.
1617 (cfg_blocks_get): Likewise.
1618 (add_ssa_edge): Likewise.
1619 (add_control_edge): Likewise.
1620 (simulate_stmt): Likewise.
1621 (process_ssa_edge_worklist): Likewise.
1622 (simulate_block): Likewise.
1623 (ssa_prop_init): Compute PRE order and stmt UIDs.
1624 (ssa_prop_fini): Adjust.
1625 (ssa_propagate): Adjust.
1626
1627 2016-08-12 Richard Biener <rguenther@suse.de>
1628
1629 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
1630 the currently executable edges have fixed ranges. Always
1631 go through update_value_range.
1632
1633 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
1634
1635 PR debug/63240
1636 * langhooks-def.h
1637 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
1638 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
1639 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
1640 (LANG_HOOKS_DECLS): Add it.
1641 * langhooks.h (struct lang_hooks_for_decls): Add
1642 function_decl_defaulted. Const_tree-ify
1643 function_decl_explicit_p and function_decl_deleted_p.
1644 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
1645 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
1646 also at strict DWARF v5.
1647
1648 PR debug/55641
1649 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
1650 TYPE_QUAL_CONST in reference-typed decls.
1651
1652 PR debug/49366
1653 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
1654 in DW_OP_pieces, just enough to handle pointers to member
1655 functions.
1656 (gen_remaining_tmpl_value_param_die_attribute): Use a location
1657 expression on DWARFv5 if a constant value doesn't work.
1658
1659 2016-08-11 David Malcolm <dmalcolm@redhat.com>
1660
1661 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
1662 * selftest.c (selftest::test_assertions): New function.
1663 (selftest::selftest_c_tests): New function.
1664 * selftest.h (selftest::selftest_c_tests): New declaration.
1665
1666 2016-08-11 Richard Biener <rguenther@suse.de>
1667 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1668
1669 PR rtl-optimization/72855
1670 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
1671
1672 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1673
1674 PR target/72863
1675 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
1676 (vsx_store_<mode>): Likewise.
1677
1678 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
1679
1680 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
1681 TImode CONST_WIDE_INT store.
1682 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
1683
1684 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
1685
1686 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
1687 mode if unaligned SSE load and store are optimal.
1688
1689 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
1690
1691 PR tree-optimization/71083
1692 * tree-predcom.c (ref_at_iteration): Correctly align the
1693 reference type.
1694
1695 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1696
1697 * config/s390/s390-builtin-types.def: Add INT128 types.
1698 * config/s390/s390-builtins.def: Add INT128 variants for the add
1699 sub low-level builtins dealing with TImode.
1700 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
1701 via subreg when expanding a builtin.
1702 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
1703 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
1704 Fix comment.
1705 * config/s390/vecintrin.h: Adjust builtin names accordingly.
1706 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
1707 ("vec_addc<mode>", "vec_addc_u128"): Merge to
1708 "vacc<bhfgq>_<mode>".
1709 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
1710 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
1711 ("vec_subc<mode>", "vec_subc_u128"): Merge to
1712 "vscbi<bhfgq>_<mode>".
1713 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
1714 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
1715
1716 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1717
1718 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
1719
1720 2016-08-11 Bin Cheng <bin.cheng@arm.com>
1721
1722 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
1723 unused declaration.
1724 (vcond<v_cmp_mixed><mode>): Ditto.
1725 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
1726
1727 2016-08-11 Bin Cheng <bin.cheng@arm.com>
1728
1729 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
1730 variable explicitly, also assert on it before use.
1731
1732 2016-08-11 Richard Biener <rguenther@suse.de>
1733
1734 PR tree-optimization/72772
1735 * cfgloopmanip.c (create_preheader): Use split_edge if there
1736 is a single loop entry, avoiding degenerate PHIs.
1737
1738 2016-08-11 Richard Biener <rguenther@suse.de>
1739
1740 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
1741 unconditional TODO_cleanup_cfg.
1742 (pass_thread_jumps::execute): Initialize loops, perform a CFG
1743 cleanup only if we threaded a jump.
1744
1745 2016-08-11 Alan Modra <amodra@gmail.com>
1746
1747 PR target/71680
1748 * lra-constraints.c (simplify_operand_subreg): Allow subreg
1749 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
1750 slow. Emit two reloads for slow mem case, first loading in
1751 fast innermode, then converting to required mode.
1752
1753 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
1754
1755 * config/rs6000/altivec.h (vec_extract_exp): New macro.
1756 (vec_extract_sig): New macro.
1757 (vec_insert_exp): New macro.
1758 (vec_test_data_class): New macro.
1759 (scalar_extract_exp): New macro.
1760 (scalar_extract_sig): New macro.
1761 (scalar_insert_exp): New macro.
1762 (scalar_test_data_class): New macro.
1763 (scalar_test_neg): New macro.
1764 (scalar_cmp_exp_gt): New macro.
1765 (scalar_cmp_exp_lt): New macro.
1766 (scalar_cmp_exp_eq): New macro.
1767 (scalar_cmp_exp_unordered): New macro.
1768 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
1769 to enforce constraint that operand is a 7-bit unsigned literal.
1770 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
1771 for power9 built-ins.
1772 (BU_P9V_VSX_2): Likewise.
1773 (BU_P9V_64BIT_VSX_2): Likewise.
1774 (VSEEDP): Add scalar extract exponent support.
1775 (VSEESP): Add scalar extract signature support.
1776 (VSTDCNDP): Add scalar test negative support.
1777 (VSTDCNSP): Likewise.
1778 (VSIEDP): Add scalar insert exponent support.
1779 (VSCEDPGT): Add scalar compare exponent greater than support.
1780 (VSCEDPLT): Add scalar compare exponent less than support.
1781 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
1782 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
1783 (VSTDCDP): Add scalar test data class support.
1784 (VSTDCSP): Likewise.
1785 (VSEEDP): Add overload support for scalar extract exponent
1786 operation.
1787 (VSESDP): Add overload support for scalar extract signature
1788 operation.
1789 (VSTDCN): Add overload support for scalar test negative
1790 operation.
1791 (VSTDCNDP): Add overload support for scalar test negative
1792 operation.
1793 (VSTDCNSP): Add overload support for scalar test negative
1794 operation.
1795 (VSIEDP): Add overload support for scalar insert exponent
1796 operation.
1797 (VSTDC): Add overload support for scalar test data class
1798 operation.
1799 (VSTDCDP): Add overload support for scalar test data class
1800 operation.
1801 (VSTDCSP): Add overload support for scalar test data class
1802 opreation.
1803 (VSCEDPGT): Add overload support for scalar compare exponent
1804 greater than operation.
1805 (VSCEDPLT): Add overload support for scalar compare exponent
1806 less than operation.
1807 (VSCEDPEQ): Add overload support for scalar compare exponent
1808 test-for-equality operation.
1809 (VSCEDPUO): Add overload support for scalar compare exponent
1810 test-for-unordered operation.
1811 (VEEDP): Add vector extract exponent support.
1812 (VEESP): Likewise.
1813 (VESDP): Add vector extract significand support.
1814 (VESSP): Likewise.
1815 (VIEDP): Add vector insert exponent support.
1816 (VIESP): Likewise.
1817 (VTDCDP): Add vector test data class support.
1818 (VTDCSP): Likewise.
1819 (VES): Add overload support for vector extract significand operation.
1820 (VESDP): Likewise.
1821 (VESSP): Likewise
1822 (VEE): Add overload support for vector extract exponent operation.
1823 (VEEDP): Likewise.
1824 (VEESP): Likewise.
1825 (VTDC): Add overload support for vector test data class operation.
1826 (VTDCDP): Likewise.
1827 (VTDCSP): Likewise.
1828 (VIE): Add overload support for vector insert exponent operation.
1829 (VIEDP): Likewise.
1830 (VIESP): Likewise.
1831 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1832 overloaded binary floating point functions.
1833 (altivec_resolve_overloaded_builtin): Improve error messages to
1834 distinguish between functions not supported in the current
1835 compiler configuration and functions that were invoked with an
1836 invalid parameter combination, and include the built-in function
1837 name in both error messages.
1838 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
1839 New prototype.
1840 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
1841 function.
1842 (rs6000_expand_binop_builtin): Add check to enforce that argument
1843 2 of the test data class operations is a 7-bit unsigned literal.
1844 (rs6000_invalid_builtin): Add code to issue an error message if a
1845 built-in function that requires the power9_vector and -m32
1846 command-line options is compiled without these options.
1847 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
1848 (UNSPEC_VSX_SXSIGDP): New value.
1849 (UNSPEC_VSX_SXSIGPDP): New value.
1850 (UNSPEC_VSX_SIEXPDP): New value.
1851 (UNSPEC_VSX_SCMPEXPDP): New value.
1852 (UNSPEC_VSX_STSTDC): New value.
1853 (UNSPEC_VSX_VXEXP): New value.
1854 (UNSPEC_VSX_VXSIG): New value.
1855 (UNSPEC_VSX_VIEXP): New value.
1856 (UNSPEC_VSX_VTSTDC): New value.
1857 (xsxexpdp): New insn for scalar extract exponent.
1858 (xsxsigdp): New insn for scalar extract significand.
1859 (xsiexpdp): New insn for scalar insert exponent.
1860 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
1861 (*xscmpexpdp): New insn for scalar compare exponents.
1862 (xststdc<Fvsx): New expansion for both single- and
1863 double-precision scalar test data class operations.
1864 (xststdcneg<Fvsx>): New expansion for both single- and
1865 double-precision scalar test for negative value operations.
1866 (*xststdc<Fvsx>): New insn for scalar test data class
1867 operation.
1868 (xvxexp<VSs>): New insn for single- and double-precision
1869 vector extract exponent operation.
1870 (xvxsig<VSs>): New insn for single- and double-precision
1871 vector extract significand operation.
1872 (xviexp<VSs>): New insn for single- and double-precision
1873 vector insert exponent operation.
1874 (xvtstdc<VSs>): New insn for single- and double-precision
1875 vector test data class operation.
1876 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1877 built-in functions to represent the Power9 binary floating-point
1878 support instructions.
1879
1880 2016-08-10 bin cheng <bin.cheng@arm.com>
1881
1882 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
1883
1884 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
1885 Renlin Li <renlin.li@arm.com>
1886 Bin Cheng <bin.cheng@arm.com>
1887
1888 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
1889 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
1890 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
1891 (aarch64_vcond_internal<mode><mode>): Delete pattern.
1892 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
1893 (vcond<v_cmp_result><mode>): Ditto.
1894 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
1895 (vcondu<mode><mode>): Ditto.
1896 (vcond<v_cmp_mixed><mode>): New pattern.
1897 (vcondu<mode><v_cmp_mixed>): New pattern.
1898 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
1899 of aarch64_vcond_internal.
1900
1901 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
1902 Renlin Li <renlin.li@arm.com>
1903 Bin Cheng <bin.cheng@arm.com>
1904
1905 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
1906 (vec_cmp<mode><v_cmp_result>): New pattern.
1907 (vec_cmpu<mode><mode>): New pattern.
1908 (vcond_mask_<mode><v_cmp_result>): New pattern.
1909
1910 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
1911
1912 PR tree-optimization/71734
1913 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
1914 REF_LOOP, invoke ref_indep_loop_p_1.
1915 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
1916 to ref_indep_loop_p.
1917 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
1918 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
1919 is inside LOOP, do not cache dpendence value for loops with
1920 non-zero SAFELEN.
1921 (ref_indep_loop_p_2): Delete function.
1922 (can_sm_ref_p): Pass LOOP as additional argument to
1923 ref_indep_loop_p.
1924
1925 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1926
1927 PR target/72853
1928 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
1929 being an offsettable address.
1930
1931 2016-08-10 Martin Liska <mliska@suse.cz>
1932
1933 PR gcov-profile/58306
1934 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
1935 atomic variants of profile update functions.
1936
1937 2016-08-10 Martin Liska <mliska@suse.cz>
1938
1939 Cherry picked (and modified) from google-4_7 branch
1940 2012-12-26 Rong Xu <xur@google.com>
1941 * common.opt (fprofile-update): Add new flag.
1942 * coretypes.h: Define enum profile_update.
1943 * doc/invoke.texi: Document -fprofile-update.
1944 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
1945 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
1946 * tree-profile.c (gimple_init_edge_profiler): Generate
1947 also atomic profiler update.
1948 (gimple_gen_edge_profiler): Likewise.
1949
1950 2016-08-10 David Malcolm <dmalcolm@redhat.com>
1951
1952 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
1953 stack_usage_file to NULL after fclose calls.
1954
1955 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1956
1957 PR target/71873
1958 * reload.c (push_reload): Compute subreg_in_class for
1959 subregs of constants and plus expressions. Remove special
1960 handling of SYMBOL_REFs.
1961
1962 2016-08-10 Alan Modra <amodra@gmail.com>
1963
1964 PR target/71680
1965 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
1966 SImode for TARGET_E500_DOUBLE when given SImode.
1967
1968 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
1969
1970 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
1971 unused variable __O.
1972
1973 2016-08-09 Martin Liska <mliska@suse.cz>
1974
1975 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
1976 _gcov_reset to __gcov_reset.
1977 * doc/gcov-tool.texi: Fix typo.
1978
1979 2016-08-09 Martin Liska <mliska@suse.cz>
1980
1981 * value-prof.c (gimple_divmod_values_to_profile): Do not
1982 instrument MOD histogram if a value is not a SSA name.
1983
1984 2016-08-09 Martin Liska <mliska@suse.cz>
1985
1986 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
1987 values.
1988
1989 2016-08-09 Renlin Li <renlin.li@arm.com>
1990
1991 PR middle-end/64971
1992 * calls.c (prepare_call_address): Convert funexp to Pmode when
1993 necessary.
1994 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
1995 (sibcall_value): Likewise.
1996
1997 2016-08-09 Marek Polacek <polacek@redhat.com>
1998
1999 PR c/7652
2000 * cselib.c (cselib_expand_value_rtx_1): Add return.
2001 * gengtype.c (dbgprint_count_type_at): Likewise.
2002 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
2003 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
2004
2005 2016-08-09 Martin Jambor <mjambor@suse.cz>
2006
2007 PR ipa/71981
2008 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2009 if instance is a MEM_REF.
2010
2011 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
2012
2013 PR target/72843
2014 * config/i386/i386.md (*movtf_internal): Use
2015 lra_in_progress || reload_completed instead of !can_create_pseudo_p
2016 in the insn constraint.
2017 (*movxf_internal): Ditto.
2018 (*movdf_internal): Ditto.
2019 (*movsf_internal): Ditto.
2020
2021 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2022
2023 PR tree-optimization/72772
2024 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2025 for expanded base.
2026
2027 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2028
2029 PR tree-optimization/72772
2030 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
2031 parameter STOP.
2032 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
2033 parameter STOP and update calls. Move expand_simple_operations
2034 function call from here...
2035 (simplify_using_initial_conditions): ...to here. Delete parameter
2036 STOP.
2037 (tree_simplify_using_condition): Delete parameter STOP.
2038 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
2039 simplify_using_initial_conditions.
2040
2041 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
2042
2043 PR c/65345
2044 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
2045 Use create_tmp_var_raw instead of create_tmp_var.
2046
2047 2016-08-09 Richard Biener <rguenther@suse.de>
2048
2049 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
2050 Treat same SSA names related.
2051
2052 2016-08-09 Jakub Jelinek <jakub@redhat.com>
2053
2054 PR tree-optimization/72824
2055 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2056 real_zerop is not negative.
2057
2058 2016-08-09 Richard Biener <rguenther@suse.de>
2059
2060 PR tree-optimization/71802
2061 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
2062 all merge opportunities with the predecessor.
2063
2064 2016-08-09 Richard Biener <rguenther@suse.de>
2065
2066 PR ipa/68273
2067 * ipa-prop.c (ipa_modify_formal_parameters): Build
2068 parameter types with natural alignment also for the
2069 over-aligned case.
2070
2071 2016-08-08 Andi Kleen <ak@linux.intel.com>
2072
2073 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
2074
2075 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2076
2077 PR c/64955
2078 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
2079 do-nothing langhook.
2080 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
2081 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
2082 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
2083 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
2084
2085 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2086
2087 PR bootstrap/72844
2088 * input.c: Ensure that HAVE_ICONV is defined.
2089
2090 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2091
2092 PR middle-end/72781
2093 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
2094 private vars for lastprivate and for linear iterator.
2095
2096 PR middle-end/68762
2097 * omp-simd-clone.c: Include varasm.h.
2098 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
2099 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
2100 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
2101 update function name.
2102
2103 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2104
2105 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
2106 (avr_diagnose_devicespecs_error): Remove.
2107 (avr_devicespecs_file): Remove composing absolute path for specfile
2108 and its verbose info. Remove conditions to check specs-file,
2109
2110 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2111
2112 PR rtl-optimization/72821
2113 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
2114 just return false for them.
2115
2116 2016-08-08 Alan Modra <amodra@gmail.com>
2117
2118 PR target/72771
2119 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
2120 toc refs created during reload. Update function comment.
2121
2122 2016-08-08 Alan Modra <amodra@gmail.com>
2123
2124 PR target/72802
2125 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2126 alternatives. Put loads first, then stores, and reg/reg moves
2127 within same class later. Delete attr length.
2128
2129 2016-08-08 Alan Modra <amodra@gmail.com>
2130
2131 PR target/72802
2132 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
2133 (mem_operand_ds_form): New predicate.
2134 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
2135 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
2136 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
2137 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
2138 (extendsfdf2_fpr): Replace o constraint with wY.
2139
2140 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
2141
2142 * tree-ssa-threadbackward.c: Include tree-inline.h
2143 (profitable_jump_thread_path): Use estimate_num_insns to estimate
2144 size of copied block; for cold paths reduce duplication.
2145 (find_jump_threads_backwards): Remove redundant tests.
2146 (pass_thread_jumps::gate): Enable for -Os.
2147
2148 2016-08-07 Jakub Jelinek <jakub@redhat.com>
2149
2150 PR c/72816
2151 * stor-layout.c (layout_decl): Fix up formatting.
2152 (relayout_decl): Allow DECL to be FIELD_DECL.
2153
2154 2016-08-07 Alan Modra <amodra@gmail.com>
2155
2156 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
2157
2158 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
2159
2160 * data-streamer-in.c (streamer_read_wide_int): New.
2161 (streamer_read_widest_int): Renamed function.
2162 * data-streamer-out.c (streamer_write_wide_int): New
2163 (streamer_write_widest_int): Renamed function.
2164 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
2165 data-stream-in.c.
2166 (input_cfg): Call renamed function.
2167 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
2168 data-stream-out.c.
2169 (output_cfg): Call renamed function.
2170 * data-streamer.h: Add declarations.
2171
2172 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2173
2174 * tree-ssa-ccp.c (extend_mask): New param sgn.
2175 Remove ORing with wi::mask.
2176 (get_default_value): Adjust call to extend_mask to pass sign.
2177 (evaluate_stmt): Likewise.
2178
2179 2016-08-06 Jakub Jelinek <jakub@redhat.com>
2180
2181 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
2182 INT64_MAX.
2183
2184 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2185
2186 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
2187 transform if operand's type is pointer to function or method.
2188
2189 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
2190
2191 PR tree-optimization/18046
2192 * tree-ssa-threadedge.c: Include cfganal.h.
2193 (simplify_control_statement_condition): If simplifying a
2194 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
2195 with the dominating ASSERT_EXPR before handing it off to VRP.
2196 Mention that a CASE_LABEL_EXPR may be returned.
2197 (thread_around_empty_blocks): Adjust to handle
2198 simplify_control_statement_condition() returning a
2199 CASE_LABEL_EXPR.
2200 (thread_through_normal_block): Likewise.
2201 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
2202 a switch statement by trying to determine which case label
2203 will be taken.
2204
2205 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
2206
2207 PR rtl-optimization/69847
2208 * lra-constraints.c (process_invariant_for_inheritance): Save
2209 pattern instead of src.
2210 (remove_inheritance_pseudos): Use the pattern. Add assert.
2211
2212 2016-08-05 David Malcolm <dmalcolm@redhat.com>
2213
2214 * input.c (string_concat::string_concat): New constructor.
2215 (string_concat_db::string_concat_db): New constructor.
2216 (string_concat_db::record_string_concatenation): New method.
2217 (string_concat_db::get_string_concatenation): New method.
2218 (string_concat_db::get_key_loc): New method.
2219 (class auto_cpp_string_vec): New class.
2220 (get_substring_ranges_for_loc): New function.
2221 (get_source_range_for_substring): New function.
2222 (get_num_source_ranges_for_substring): New function.
2223 (class selftest::lexer_test_options): New class.
2224 (struct selftest::lexer_test): New struct.
2225 (class selftest::ebcdic_execution_charset): New class.
2226 (selftest::ebcdic_execution_charset::s_singleton): New variable.
2227 (selftest::lexer_test::lexer_test): New constructor.
2228 (selftest::lexer_test::~lexer_test): New destructor.
2229 (selftest::lexer_test::get_token): New method.
2230 (selftest::assert_char_at_range): New function.
2231 (ASSERT_CHAR_AT_RANGE): New macro.
2232 (selftest::assert_num_substring_ranges): New function.
2233 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
2234 (selftest::assert_has_no_substring_ranges): New function.
2235 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
2236 (selftest::test_lexer_string_locations_simple): New function.
2237 (selftest::test_lexer_string_locations_ebcdic): New function.
2238 (selftest::test_lexer_string_locations_hex): New function.
2239 (selftest::test_lexer_string_locations_oct): New function.
2240 (selftest::test_lexer_string_locations_letter_escape_1): New function.
2241 (selftest::test_lexer_string_locations_letter_escape_2): New function.
2242 (selftest::test_lexer_string_locations_ucn4): New function.
2243 (selftest::test_lexer_string_locations_ucn8): New function.
2244 (selftest::uint32_from_big_endian): New function.
2245 (selftest::test_lexer_string_locations_wide_string): New function.
2246 (selftest::uint16_from_big_endian): New function.
2247 (selftest::test_lexer_string_locations_string16): New function.
2248 (selftest::test_lexer_string_locations_string32): New function.
2249 (selftest::test_lexer_string_locations_u8): New function.
2250 (selftest::test_lexer_string_locations_utf8_source): New function.
2251 (selftest::test_lexer_string_locations_concatenation_1): New
2252 function.
2253 (selftest::test_lexer_string_locations_concatenation_2): New
2254 function.
2255 (selftest::test_lexer_string_locations_concatenation_3): New
2256 function.
2257 (selftest::test_lexer_string_locations_macro): New function.
2258 (selftest::test_lexer_string_locations_stringified_macro_argument):
2259 New function.
2260 (selftest::test_lexer_string_locations_non_string): New function.
2261 (selftest::test_lexer_string_locations_long_line): New function.
2262 (selftest::test_lexer_char_constants): New function.
2263 (selftest::input_c_tests): Call the new test functions once per
2264 case within the line_table test matrix.
2265 * input.h (struct string_concat): New struct.
2266 (struct location_hash): New struct.
2267 (class string_concat_db): New class.
2268 * substring-locations.h: New header.
2269
2270 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
2271
2272 PR tree-optimization/72810
2273 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
2274 the type of the case labels when truncating.
2275
2276 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
2277
2278 PR Target/72819
2279 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
2280 (aarch64_fp16_ptr_type_node): Likewise.
2281 * config/aarch64/aarch64-simd-builtins.c
2282 (aarch64_fp16_ptr_type_node): Define.
2283 (aarch64_init_fp16_types): New, refactored out of...
2284 (aarch64_init_builtins): ...here, update to call
2285 aarch64_init_fp16_types.
2286 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
2287 HFmode.
2288 (aapcs_vfp_sub_candidate): Likewise.
2289
2290 2016-08-05 Martin Liska <mliska@suse.cz>
2291 Joshua Cranmer <Pidgeot18@gmail.com>
2292
2293 * gcov.c (line_t::has_block): New function.
2294 (enum loop_type): New enum.
2295 (handle_cycle): New function.
2296 (unblock): Likewise.
2297 (circuit): Likewise.
2298 (get_cycles_count): Likewise.
2299 (accumulate_line_counts): Use new loop detection algorithm.
2300
2301 2016-08-05 Martin Liska <mliska@suse.cz>
2302
2303 * gcov.c (output_intermediate_file): Rename
2304 function_info::line_next to next_file_fn.
2305 (process_file): Likewise.
2306 (read_graph_file): Likewise.
2307 (accumulate_line_counts): Likewise.
2308 (output_lines): Likewise.
2309
2310 2016-08-05 Richard Biener <rguenther@suse.de>
2311
2312 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
2313 restriction on threading to a loop header.
2314
2315 2016-08-05 Richard Biener <rguenther@suse.de>
2316
2317 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
2318 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
2319 adjust loop info accordingly.
2320
2321 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
2322
2323 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
2324 before folding call to __builtin_constant_p with parameters to false.
2325
2326 2016-08-05 Alan Modra <amodra@gmail.com>
2327
2328 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
2329 code accidentally committed 2016-05-02 providing class when given
2330 NO_REGS.
2331
2332 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
2333
2334 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
2335 the case label ranges that partially overlap with OP's value
2336 range.
2337
2338 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
2339
2340 PR target/72805
2341 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
2342 Cast builtin function result to __mmask16 instead of __mmask8.
2343 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2344 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
2345 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
2346
2347 2016-08-04 David Malcolm <dmalcolm@redhat.com>
2348
2349 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
2350 (ASSERT_TRUE_AT): New macro.
2351 (ASSERT_FALSE): Reimplement in terms of...
2352 (ASSERT_FALSE_AT): New macro.
2353 (ASSERT_STREQ_AT): Fix typo in comment.
2354
2355 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
2356
2357 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
2358 labels are exhaustive, designate the label with the widest
2359 range to be the default label.
2360
2361 2016-08-04 Andrew Pinski <apinski@cavium.com>
2362
2363 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
2364 (thunderx_tunings): Use thunderx_vector_cost instead of
2365 generic_vector_cost.
2366
2367 2016-08-04 Martin Liska <mliska@suse.cz>
2368
2369 * gcov.c (main): Fix GNU coding style.
2370 (output_intermediate_file): Likewise.
2371 (process_file): Likewise.
2372 (generate_results): Likewise.
2373 (release_structures): Likewise.
2374 (create_file_names): Likewise.
2375 (find_source): Likewise.
2376 (read_graph_file): Likewise.
2377 (find_exception_blocks): Likewise.
2378 (canonicalize_name): Likewise.
2379 (make_gcov_file_name): Likewise.
2380 (mangle_name): Likewise.
2381 (accumulate_line_counts): Likewise.
2382 (output_branch_count): Likewise.
2383 (read_line): Likewise.
2384
2385 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
2386
2387 PR rtl-optimization/71779
2388 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
2389 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
2390 or if it was truncated.
2391
2392 PR rtl-optimization/70903
2393 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
2394
2395 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
2396
2397 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
2398 accessing SSA_NAME_PTR_INFO.
2399
2400 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
2401
2402 PR 70677
2403 * common/config/avr/avr-common.c (avr_option_optimization_table)
2404 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
2405
2406 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
2407
2408 PR 55181
2409 * config/avr/avr.md: New pattern to work around do_store_flag
2410 generating shift instructions for bit extractions.
2411
2412 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
2413
2414 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
2415 BITMAP_ALLOC.
2416 (add_equivalence): Likewise.
2417 (get_value_range): Allocate value range with vrp_value_range_pool.
2418 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
2419 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
2420
2421 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
2422
2423 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
2424 the default for the rs6000 port.
2425
2426 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
2427
2428 PR middle-end/71876
2429 * calls.c (special_function_p): Remove special handling of
2430 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
2431 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
2432 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
2433
2434 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
2435
2436 PR middle-end/72778
2437 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
2438 Don't stop on regular insns.
2439
2440 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
2441
2442 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
2443 size to DImode boundary.
2444 (nvptx_propagate): Likewise.
2445
2446 2016-08-03 Alan Modra <amodra@gmail.com>
2447
2448 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
2449 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
2450 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
2451 from -mefficient-unaligned-vector. Note that this affects fp too.
2452
2453 2016-08-03 Alan Modra <amodra@gmail.com>
2454
2455 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
2456 cost more.
2457
2458 2016-08-03 Alan Modra <amodra@gmail.com>
2459
2460 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
2461 to a reg. Localize vars.
2462
2463 2016-08-03 Alan Modra <amodra@gmail.com>
2464
2465 * config/rs6000/rs6000.opt: Remove negatives from help strings
2466 and comments.
2467
2468 2016-08-03 Alan Modra <amodra@gmail.com>
2469
2470 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
2471 Delete duplicated code.
2472
2473 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
2474
2475 PR middle-end/72778
2476 * lra-spills.c (regno_in_use_p): New.
2477 (lra_final_code_change): Use it.
2478
2479 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
2480
2481 PR rtl-optimization/69847
2482 * lra-int.h (struct lra-reg): Use restore_rtx instead of
2483 restore_regno.
2484 (lra_rtx_hash): New.
2485 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
2486 of restore_regno.
2487 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
2488 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
2489 * lra-spills.c (lra_final_code_change): Don't delete insn when the
2490 next insn is USE with the same reg as the current insn source.
2491 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
2492 of restore_regno.
2493 (lra_constraints_init): Call initiate_invariants.
2494 (lra_constraints_finish): Call finish_invariants.
2495 (struct invariant, invariant_t, invariant_ptr_t): New.
2496 (const_invariant_ptr_t, invariants, invariants_pool): New.
2497 (invariant_table, invariant_hash, invariant_eq_p): New.
2498 (insert_invariant, initiate_invariants, finish_invariants): New.
2499 (clear_invariants, invalid_invariant_regs): New.
2500 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
2501 instead of restore_regno.
2502 (invariant_p, process_invariant_for_inheritance): New.
2503 (inherit_in_ebb): Implement invariant inheritance.
2504 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
2505 (remove_inheritance_pseudos): Implement undoing invariant
2506 inheritance.
2507 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
2508 instead of restore_regno.
2509 * lra-assigns.c (regno_live_length): New.
2510 (reload_pseudo_compare_func): Use regno_live_length.
2511 (assign_by_spills): Use restore_rtx instead of restore_regno.
2512 (lra_assign): Ditto. Initiate regno_live_length.
2513
2514 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
2515
2516 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
2517 __builtin_aarch64_fmindf.
2518
2519 2016-08-02 Bin Cheng <bin.cheng@arm.com>
2520
2521 PR tree-optimization/34114
2522 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
2523 information for more control IVs.
2524
2525 2016-08-02 Bin Cheng <bin.cheng@arm.com>
2526
2527 PR tree-optimization/34114
2528 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
2529 PLUS_EXPR case. Handle SSA_NAME case.
2530
2531 2016-08-02 Tamar Christina <tamar.christina@arm.com>
2532
2533 * config/aarch64/aarch64-simd-builtins.def
2534 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
2535 (__builtin_aarch64_fmaxdf): Likewise.
2536 (__builtin_aarch64_smin_nandf): Likewise.
2537 (__builtin_aarch64_smax_nandf): Likewise.
2538 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
2539 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
2540 (<fmaxmin><mode>3): ...this.
2541 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
2542 (vminnm_f64): Likewise.
2543 (vmin_f64): Likewise.
2544 (vmax_f64): Likewise.
2545 * config/aarch64/iterators.md (FMAXMIN): Merge with...
2546 (FMAXMIN_UNS): ...this.
2547 (fmaxmin): Merged with
2548 (fmaxmin_op): ...this...
2549 (maxmin_uns_op): ...in to this.
2550
2551 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
2552
2553 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2554 Add support for vec_extract on vector float, vector int, vector
2555 short, and vector char vector types.
2556 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
2557 vector float, vector int, vector short, and vector char
2558 optimizations on 64-bit ISA 2.07 systems for both constant and
2559 variable element numbers.
2560 (rs6000_split_vec_extract_var): Likewise.
2561 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
2562 Altivec registers on ISA 2.07 and above.
2563 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
2564 which never was matched due to the split occuring before register
2565 allocation (and the code would not have worked on little endian
2566 systems if it did match). Allow extracts to go to the Altivec
2567 registers if ISA 2.07 (power8). Change from using "" around the
2568 C++ code to using {}'s.
2569 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
2570 vec_extracts when the vector is in memory.
2571 (vsx_extract_v4sf_var): New insn to optimize vector float
2572 vec_extracts when the element number is variable on 64-bit ISA
2573 2.07 systems.
2574 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
2575 for 64-bit ISA 2.07 as well as ISA 3.0.
2576 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
2577 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
2578 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
2579 optimize vector int, vector short, and vector char vec_extracts
2580 when the vector is in memory.
2581 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
2582 optimize vector int, vector short, and vector char vec_extracts
2583 when the element number is variable.
2584
2585 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
2586
2587 PR target/71948
2588 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
2589 does not overlap with other symbol flags.
2590
2591 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
2592
2593 * config/aarch64/aarch64.h (aarch64_frame):
2594 Remove padding0 and hardfp_offset. Add locals_offset,
2595 initial_adjust, callee_adjust, callee_offset and final_adjust.
2596 * config/aarch64/aarch64.c (aarch64_layout_frame):
2597 Remove unused padding0 and hardfp_offset initializations.
2598 Choose frame layout and set frame variables accordingly.
2599 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
2600 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
2601 (aarch64_pop_regs): Likewise.
2602 (aarch64_expand_prologue): Remove all decision code, just emit
2603 prolog according to frame variables.
2604 (aarch64_expand_epilogue): Remove all decision code, just emit
2605 epilog according to frame variables.
2606 (aarch64_initial_elimination_offset): Use offset to local/arg area.
2607
2608 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
2609
2610 PR target/72748
2611 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
2612 fix_debug_reg_uses after changing source register mode to
2613 V1TImode if source register is undefined.
2614
2615 2015-08-01 Alan Hayward <alan.hayward@arm.com>
2616
2617 PR tree-optimization/71818
2618 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
2619 with non invariant evolutions
2620
2621 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
2622
2623 PR target/72767
2624 * config/avr/avr.md (length) [branch]: Correct insn length
2625 attribute for forward branches.
2626
2627 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
2628
2629 * doc/extend.texi (AVR Built-in Functions): Document
2630 __builtin_avr_nops.
2631 * config/avr/builtins.def (NOPS): New.
2632 * config/avr/avr.c (avr_expand_nops): New static function.
2633 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
2634
2635 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2636
2637 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
2638 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
2639 addresses.
2640
2641 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
2642
2643 * config/aarch64/aarch64.c (vulcan_tunings): Update
2644 vulcan L1 cache_line_size.
2645
2646 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2647
2648 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
2649 function that takes a vector memory address, a hard register, an
2650 element number and a temporary base register, and recreates an
2651 address that points to the appropriate element within the vector.
2652 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
2653 (rs6000_split_vec_extract_var): Add support for the target of a
2654 vec_extract with variable element number being a scalar memory
2655 location.
2656 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
2657 swappable.
2658 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
2659 vsx_extract_<mode>_load insn with a new insn that optimizes
2660 storing either element to a memory location, using scratch
2661 registers to pick apart the vector and reconstruct the address.
2662 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
2663 (vsx_extract_<mode>_store): Rework alternatives to more correctly
2664 support Altivec registers. Add support for ISA 3.0 Altivec d-form
2665 store instruction.
2666 (vsx_extract_<mode>_var): Add support for extracting a variable
2667 element number from memory.
2668
2669 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
2670
2671 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
2672 when testing for compares against constants of the form 0xabab.
2673
2674 2016-07-29 Bin Cheng <bin.cheng@arm.com>
2675
2676 PR tree-optimization/57558
2677 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
2678 function.
2679 (vect_loop_versioning): Support versioning with niter assumptions.
2680 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
2681 (vect_get_loop_niters): New parameter. Reimplement to support
2682 assumptions in loop niter info.
2683 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
2684 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
2685 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
2686 Support loop versioning for niters.
2687 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
2688 (vect_free_loop_info_assumptions): New function.
2689 (vectorize_loops): Free loop niter info for loops with flag
2690 LOOP_F_ASSUMPTIONS set if vectorization failed.
2691 * tree-vectorizer.h (struct _loop_vec_info): New field
2692 num_iters_assumptions.
2693 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
2694 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
2695 (LOOP_REQUIRES_VERSIONING): New macro.
2696 (vect_free_loop_info_assumptions): New decl.
2697
2698 2016-07-29 Bin Cheng <bin.cheng@arm.com>
2699
2700 * cfgloop.h (struct loop): New field constraints.
2701 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
2702 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
2703 functions.
2704 * cfgloop.c (alloc_loop): Initialize new field.
2705 * cfgloopmanip.c (copy_loop_info): Copy constraints.
2706 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
2707 Adjust niter analysis wrto loop constraints.
2708 * doc/loop.texi (@node Number of iterations): Add description for loop
2709 constraints.
2710
2711 2016-07-29 Marek Polacek <polacek@redhat.com>
2712
2713 PR c/7652
2714 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
2715 (ix86_expand_round_builtin): Likewise.
2716
2717 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
2718 Georg-Johann Lay <avr@gjlay.de>
2719
2720 PR rtl-optimization/71976
2721 * combine.c (get_last_value): Return 0 if the argument for which
2722 the function is called has a wider mode than the recorded value.
2723
2724 2016-07-29 Marek Polacek <polacek@redhat.com>
2725
2726 PR c/7652
2727 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
2728 (altivec_expand_st_builtin): Likewise.
2729
2730 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
2731
2732 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
2733 introduced in r238381.
2734
2735 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
2736
2737 PR middle-end/68217
2738 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
2739 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
2740
2741 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
2742
2743 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
2744 New declaration.
2745 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2746 Add support for vec_extract of vector double or vector long having
2747 a variable element number on 64-bit ISA 2.07 systems or newer.
2748 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
2749 Likewise.
2750 (rs6000_split_vec_extract_var): New function to split a
2751 vec_extract built-in function with variable element number.
2752 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
2753 swappable.
2754 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
2755 (UNSPEC_VSX_EXTRACT): Likewise.
2756 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
2757 direct move instructions to be generated on 64-bit ISA 2.07
2758 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
2759 instruction.
2760 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
2761 arguments for vec_extract variable element.
2762 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
2763 vec_extract with variable element on V2DFmode and V2DImode
2764 vectors.
2765 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
2766 -mupper-regs-df requirement, since it isn't needed.
2767 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
2768 do direct moves on 64-bit systems, which allows optimization of
2769 vec_extract on 64-bit ISA 2.07 systems and newer.
2770
2771 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
2772 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
2773
2774 * config/aarch64/aarch64.md
2775 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
2776 statement and type.
2777 (<optab>qihi2_aarch64): Likewise, and split into two.
2778 (extendqihi2_aarch64): New.
2779 (zero_extendqihi2_aarch64): New.
2780 * config/aarch64/iterators.md (ldrxt): Remove.
2781 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
2782 uxtb/uxth.
2783
2784 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
2785
2786 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
2787
2788 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
2789
2790 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
2791 (aarch64_push_reg): New function to push 1 or 2 registers.
2792 (aarch64_pop_reg): New function to pop 1 or 2 registers.
2793 (aarch64_expand_prologue): Use aarch64_push_regs.
2794 (aarch64_expand_epilogue): Use aarch64_pop_regs.
2795
2796 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
2797
2798 PR tree-optimization/71734
2799 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
2800 attribute instead of REF_LOOP and use it.
2801 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
2802 set it for Loops having non-zero safelen attribute.
2803 (ref_indep_loop_p): Pass zero as initial value for safelen.
2804
2805 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
2806
2807 PR middle-end/72657
2808 PR target/72683
2809 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
2810 call using chkp_gimple_call_builtin_p.
2811 (chkp_copy_bounds_for_assign): Likewise.
2812
2813 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2814
2815 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
2816 * config/arm/arm-protos.h (struct tune_params): Likewise.
2817 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
2818 (cortex_a9_sched_adjust_cost): Likewise.
2819 (fa726te_sched_adjust_cost): Likewise.
2820 (arm_adjust_cost): Likewise.
2821 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
2822 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
2823 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
2824 * config/i386/i386.c (ix86_adjust_cost): Likewise.
2825 * config/ia64/ia64.c: Likewise.
2826 * config/m68k/m68k.c: Likewise.
2827 * config/mep/mep.c (mep_adjust_cost): Likewise.
2828 * config/microblaze/microblaze.c (microblaze_adjust_cost):
2829 * Likewise.
2830 * config/mips/mips.c (mips_adjust_cost): Likewise.
2831 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
2832 * Likewise.
2833 * config/pa/pa.c (pa_adjust_cost): Likewise.
2834 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
2835 (rs6000_debug_adjust_cost): Likewise.
2836 * config/sh/sh.c (sh_adjust_cost): Likewise.
2837 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
2838 (hypersparc_adjust_cost): Likewise.
2839 (sparc_adjust_cost): Likewise.
2840 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
2841 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
2842 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
2843 * Likewise.
2844 * config/visium/visium.c (visium_adjust_cost): Likewise.
2845 * doc/tm.texi: Regenerate.
2846 * haifa-sched.c (dep_cost_1): Adjust.
2847 * target.def: Merge adjust_cost and adjust_cost_2.
2848
2849 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2850
2851 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
2852
2853 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2854
2855 * store-motion.c (struct st_expr): Make pattern_regs a vector.
2856 (extract_mentioned_regs): Append to a vector instead of
2857 returning a rtx_expr_list.
2858 (st_expr_entry): Adjust.
2859 (free_st_expr_entry): Likewise.
2860 (store_ops_ok): Likewise.
2861 (store_killed_in_insn): Likewise.
2862 (find_moveable_store): Likewise.
2863
2864 2016-07-28 Martin Liska <mliska@suse.cz>
2865
2866 PR gcov-profile/68025
2867 * tree-profile.c (tree_profiling): Respect
2868 no_profile_instrument_function attribute.
2869 * doc/extend.texi: Document no_profile_instrument_function
2870 attribute.
2871
2872 2016-07-28 Martin Liska <mliska@suse.cz>
2873
2874 PR rtl-optimization/70944
2875 * combine.c (make_compound_operation):
2876 Do not allow make_compound_operation for vector mode
2877
2878 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
2879
2880 PR middle-end/71994
2881 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
2882 before calling get_ops.
2883
2884 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
2885
2886 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
2887 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
2888 (BITS_PER_UNIT_LOG): Remove.
2889 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
2890 * expr.c (expand_assignment): Likewise.
2891 * stor-layout.c (initialize_sizetypes): Likewise.
2892
2893 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
2894
2895 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
2896 signature of rs6000_expand_vector_extract so that the element
2897 number is a RTX instead of a constant integer.
2898 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
2899 Likewise.
2900 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
2901 (altivec_expand_vec_ext_builtin): Likewise.
2902 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
2903 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
2904 MFVSRLD instruction.
2905
2906 2016-07-27 David Malcolm <dmalcolm@redhat.com>
2907
2908 * input.c (get_pure_location): Move here from tree.c.
2909 (make_location): Likewise. Add header comment.
2910 (selftest::test_accessing_ordinary_linemaps): Verify
2911 pure_location_p, make_location, get_location_from_adhoc_loc and
2912 get_range_from_loc.
2913 * input.h (get_pure_location): Move declaration here from tree.h.
2914 (get_finish): Likewise for inline function.
2915 (make_location): Likewise for declaration.
2916 * tree.c (get_pure_location): Move to input.c.
2917 (make_location): Likewise.
2918 * tree.h (get_pure_location): Move declaration to tree.h.
2919 (get_finish): Likewise for inline function.
2920 (make_location): Likewise for declaration.
2921
2922 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2923
2924 PR middle-end/71078
2925 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
2926
2927 2016-07-27 David Malcolm <dmalcolm@redhat.com>
2928
2929 * system.h (STATIC_ASSERT): Use static_assert if building
2930 with C++11 onwards.
2931
2932 2016-07-27 Richard Biener <rguenther@suse.de>
2933
2934 PR tree-optimization/72517
2935 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
2936 Revert change to not compute read-read dependences.
2937
2938 2016-07-27 Richard Biener <rguenther@suse.de>
2939
2940 * predict.c (set_even_probabilities): Make nedges unsigned.
2941
2942 2016-07-27 Martin Liska <mliska@suse.cz>
2943
2944 * predict.c (set_even_probabilities): Handle unlikely edges.
2945 (combine_predictions_for_bb): Likewise.
2946
2947 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
2948
2949 PR target/71869
2950 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
2951 __float128 support when we don't have hardware support, so that
2952 the IEEE built-in functions like isgreater, first call __unordkf3
2953 to make sure neither operand is a NaN, and if both operands are
2954 ordered, do the normal comparison.
2955
2956 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
2957
2958 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
2959 name.
2960 (extract_code_and_val_from_cond_with_ops): Verify that name is
2961 either cond_op0 or cond_op1.
2962
2963 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
2964
2965 PR tree-optimization/18046
2966 * genmodes.c (emit_mode_size_inline): Emit an assert that
2967 verifies that mode is a valid array index.
2968 (emit_mode_nuinits_inline): Likewise.
2969 (emit_mode_inner_inline): Likewise.
2970 (emit_mode_unit_size_inline): Likewise.
2971 (emit_mode_unit_precision_inline): Likewise.
2972 * tree-vrp.c: Include params.h.
2973 (find_switch_asserts): Register edge assertions for the default
2974 label which correspond to the anti-ranges of each case label.
2975 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
2976 * doc/invoke.texi: Document it.
2977
2978 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2979
2980 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
2981 and unnecessary call to gimple_bb.
2982
2983 2016-07-26 Richard Biener <rguenther@suse.de>
2984
2985 PR rtl-optimization/71984
2986 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
2987 for VOIDmode.
2988
2989 2016-07-26 Richard Biener <rguenther@suse.de>
2990
2991 PR middle-end/72517
2992 * expmed.c (extract_bit_field_1): Constrain the vector mode
2993 with element size matching the extraction mode size when
2994 choosing a better vector mode to do the extraction from.
2995
2996 2016-07-26 Richard Biener <rguenther@suse.de>
2997 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2998
2999 PR middle-end/70920
3000 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
3001 pattern.
3002
3003 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3004
3005 * tree-ssa-structalias.c (struct scc_info): Change types of
3006 members to auto_sbitmap and auto_vec.
3007 (scc_info::scc_info): New constructor.
3008 (scc_info::~scc_info): New destructor.
3009 (init_scc_info): Remove.
3010 (free_scc_info): Remove.
3011 (find_indirect_cycles): Adjust.
3012 (perform_var_substitution): Likewise.
3013 (free_var_substitution_info): Likewise.
3014
3015 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3016
3017 * tree-outof-ssa.c (struct elim_graph): Change type of members
3018 to auto_vec and auto_sbitmap.
3019 (elim_graph::elim_graph): New constructor.
3020 (delete_elim_graph): Remove.
3021 (expand_phi_nodes): Adjust.
3022
3023 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3024
3025 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
3026 (new_elim_graph): Adjust.
3027 (clear_elim_graph): Likewise.
3028 (delete_elim_graph): Likewise.
3029 (elim_graph_size): Likewise.
3030 (elim_graph_add_node): Likewise.
3031 (elim_graph_add_edge): Likewise.
3032 (elim_graph_remove_succ_edge): Likewise.
3033 (eliminate_name): Likewise.
3034 (eliminate_build): Likewise.
3035 (elim_forward): Likewise.
3036 (elim_unvisited_predecessor): Likewise.
3037 (elim_backward): Likewise.
3038 (elim_create): Likewise.
3039 (eliminate_phi): Likewise.
3040 (expand_phi_nodes): Likewise.
3041
3042 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3043
3044 * bt-load.c (compute_out): Use auto_sbitmap class.
3045 (link_btr_uses): Likewise.
3046 * cfganal.c (mark_dfs_back_edges): Likewise.
3047 (post_order_compute): Likewise.
3048 (inverted_post_order_compute): Likewise.
3049 (pre_and_rev_post_order_compute_fn): Likewise.
3050 (single_pred_before_succ_order): Likewise.
3051 * cfgexpand.c (pass_expand::execute): Likewise.
3052 * cfgloop.c (verify_loop_structure): Likewise.
3053 * cfgloopmanip.c (fix_bb_placements): Likewise.
3054 (remove_path): Likewise.
3055 (update_dominators_in_loop): Likewise.
3056 * cfgrtl.c (break_superblocks): Likewise.
3057 * ddg.c (check_sccs): Likewise.
3058 (create_ddg_all_sccs): Likewise.
3059 * df-core.c (df_worklist_dataflow): Likewise.
3060 * dse.c (dse_step3): Likewise.
3061 * except.c (eh_region_outermost): Likewise.
3062 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3063 * gcse.c (prune_expressions): Likewise.
3064 (prune_insertions_deletions): Likewise.
3065 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
3066 * graph.c (draw_cfg_nodes_no_loops): Likewise.
3067 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
3068 * lcm.c (compute_earliest): Likewise.
3069 (compute_farthest): Likewise.
3070 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
3071 (unroll_loop_runtime_iterations): Likewise.
3072 (unroll_loop_stupid): Likewise.
3073 * lower-subreg.c (decompose_multiword_subregs): Likewise.
3074 * lra-lives.c: Likewise.
3075 * lra.c (lra): Likewise.
3076 * modulo-sched.c (schedule_reg_moves): Likewise.
3077 (optimize_sc): Likewise.
3078 (get_sched_window): Likewise.
3079 (sms_schedule_by_order): Likewise.
3080 (check_nodes_order): Likewise.
3081 (order_nodes_of_sccs): Likewise.
3082 (order_nodes_in_scc): Likewise.
3083 * recog.c (split_all_insns): Likewise.
3084 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3085 * reload1.c (reload): Likewise.
3086 * sched-rgn.c (haifa_find_rgns): Likewise.
3087 (split_edges): Likewise.
3088 (compute_trg_info): Likewise.
3089 * sel-sched.c (init_seqno): Likewise.
3090 * store-motion.c (remove_reachable_equiv_notes): Likewise.
3091 * tree-into-ssa.c (update_ssa): Likewise.
3092 * tree-ssa-live.c (live_worklist): Likewise.
3093 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
3094 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3095 * Likewise.
3096 (try_peel_loop): Likewise.
3097 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3098 * Likewise.
3099 * tree-ssa-pre.c (compute_antic): Likewise.
3100 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3101 * tree-stdarg.c (reachable_at_most_once): Likewise.
3102 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
3103 * var-tracking.c (vt_find_locations): Likewise.
3104
3105 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3106
3107 * sbitmap.h (auto_sbitmap): New class.
3108
3109 2016-07-26 Alan Modra <amodra@gmail.com>
3110
3111 PR target/72103
3112 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
3113 sri->t_icode.
3114
3115 2016-07-25 David Malcolm <dmalcolm@redhat.com>
3116
3117 * input.c (selftest::temp_source_file::temp_source_file): Fix
3118 missing "%s" in fprintf.
3119
3120 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
3121
3122 PR middle-end/71732
3123 * cselib.c (cselib_process_insn): Invalidate argument slots for
3124 const/pure calls.
3125
3126 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3127
3128 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
3129 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
3130 vmulxh_lane_f16, vmulxh_laneq_f16): New.
3131
3132 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3133
3134 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3135 * config/aarch64/aarch64.md (fma, fnma): Support HF.
3136 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
3137
3138 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3139
3140 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3141 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
3142 New.
3143 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
3144 (add<mode>3): Likewise.
3145 (sub<mode>3): Likewise.
3146 (mul<mode>3): Likewise.
3147 (div<mode>3): Likewise.
3148 (*div<mode>3): Likewise.
3149 (<fmaxmin><mode>3): Extend to HF.
3150 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
3151 (fabd<mode>3): Likewise.
3152 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
3153 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
3154 (aarch64_fmulx<mode>): Likewise.
3155 (aarch64_fac<optab><mode>): Likewise.
3156 (aarch64_frecps<mode>): Likewise.
3157 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
3158 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
3159 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
3160 (VSDQ_HSDI): Support HI.
3161 (fcvt_target, FCVT_TARGET): Likewise.
3162 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
3163 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
3164 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
3165 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
3166 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
3167 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
3168 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
3169 vrsqrtsh_f16): New.
3170
3171 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3172
3173 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
3174 * config/aarch64/aarch64-builtins.c (hi_UP): New.
3175 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3176 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
3177 mode.
3178 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
3179 (aarch64_cm<optab><mode>): Likewise.
3180 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
3181 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
3182 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
3183 (sqrt<mode>2): Likewise.
3184 (*sqrt<mode>2): Likewise.
3185 (abs<mode>2): Likewise.
3186 (<optab><mode>hf2): New pattern for HF mode.
3187 (<optab>hihf2): Likewise.
3188 * config/aarch64/arm_neon.h: Include arm_fp16.h.
3189 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
3190 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
3191 Support HF mode.
3192 * config/aarch64/arm_fp16.h: New file.
3193 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
3194 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
3195 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
3196 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
3197 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
3198 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
3199 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
3200 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
3201 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
3202 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
3203 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
3204 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
3205 vsqrth_f16): New.
3206
3207 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3208
3209 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
3210 reduc_smin_scal_): Use VDQIF_F16.
3211 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
3212 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
3213 Use VHSDF.
3214 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
3215 * config/aarch64/iterators.md (VDQIF_F16): New.
3216 (vp): Support HF modes.
3217 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
3218 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
3219
3220 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3221
3222 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
3223 "*aarch64_mulx_elt_from_dup<mode>".
3224 (*aarch64_mul3_elt<mode>): Update schedule type.
3225 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
3226 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
3227 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
3228 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
3229 (f, fp): Support HF modes.
3230 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
3231 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
3232 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
3233 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
3234 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
3235 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
3236
3237 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3238
3239 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3240 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
3241 modes.
3242 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
3243 vfmsq_f16): New.
3244
3245 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3246
3247 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3248 * config/aarch64/aarch64-simd.md
3249 (aarch64_rsqrts<mode>): Extend to HF modes.
3250 (fabd<mode>3): Likewise.
3251 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
3252 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
3253 (aarch64_<maxmin_uns>p<mode>): Likewise.
3254 (<su><maxmin><mode>3): Likewise.
3255 (<maxmin_uns><mode>3): Likewise.
3256 (<fmaxmin><mode>3): Likewise.
3257 (aarch64_faddp<mode>): Likewise.
3258 (aarch64_fmulx<mode>): Likewise.
3259 (aarch64_frecps<mode>): Likewise.
3260 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
3261 (add<mode>3): Extend to HF modes.
3262 (sub<mode>3): Likewise.
3263 (mul<mode>3): Likewise.
3264 (div<mode>3): Likewise.
3265 (*div<mode>3): Likewise.
3266 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
3267 HF, V4HF and V8HF.
3268 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
3269 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
3270 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
3271 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
3272 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
3273 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
3274 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
3275 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
3276 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
3277 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
3278 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
3279 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
3280 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
3281 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
3282
3283 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3284
3285 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
3286 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3287 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
3288 (neg<mode>2): Likewise.
3289 (abs<mode>2): Likewise.
3290 (<frint_pattern><mode>2): Likewise.
3291 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
3292 (<optab><VDQF:mode><fcvt_target>2): Likewise.
3293 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
3294 (ftrunc<VDQF:mode>2): Likewise.
3295 (<optab><fcvt_target><VDQF:mode>2): Likewise.
3296 (sqrt<mode>2): Likewise.
3297 (*sqrt<mode>2): Likewise.
3298 (aarch64_frecpe<mode>): Likewise.
3299 (aarch64_cm<optab><mode>): Likewise.
3300 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
3301 HF, V4HF and V8HF.
3302 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
3303 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
3304 (stype): New.
3305 * config/aarch64/arm_neon.h (vdup_n_f16): New.
3306 (vdupq_n_f16): Likewise.
3307 (vld1_dup_f16): Use vdup_n_f16.
3308 (vld1q_dup_f16): Use vdupq_n_f16.
3309 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
3310 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
3311 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
3312 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
3313 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
3314 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
3315 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
3316 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
3317 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
3318 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
3319 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
3320 vsqrt_f16, vsqrtq_f16): New.
3321
3322 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3323
3324 * config/aarch64/aarch64-simd.md
3325 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
3326 (aarch64_ext<mode>): Likewise.
3327 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
3328 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
3329 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
3330 and V8HFmode.
3331 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
3332 float16x8_t.
3333 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
3334 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
3335 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
3336 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
3337 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
3338 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
3339 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
3340 New.
3341 (vmov_n_f16): Reimplement using vdup_n_f16.
3342 (vmovq_n_f16): Reimplement using vdupq_n_f16..
3343
3344 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3345
3346 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
3347 "frame_related_p". Generate CFA annotation when it's necessary.
3348 (aarch64_expand_prologue): Use aarch64_add_constant.
3349 (aarch64_expand_epilogue): Likewise.
3350 (aarch64_output_mi_thunk): Pass "false" when calling
3351 aarch64_add_constant.
3352
3353 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3354
3355 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
3356 sequences.
3357
3358 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3359
3360 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
3361 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
3362 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
3363 (aarch64_build_constant): Delete.
3364
3365 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
3366
3367 Revert
3368 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
3369
3370 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
3371 flag_toplevel_reorder.
3372
3373 2016-07-25 Richard Biener <rguenther@suse.de>
3374
3375 * cgraph.c (cgraph_node::verify_node): Compare against builtin
3376 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
3377 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
3378 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
3379 (streamer_get_builtin_tree): Likewise.
3380 (streamer_write_builtin): Likewise.
3381 * lto-streamer.h (LTO_builtin_decl): Remove.
3382 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
3383 (lto_input_scc): Remove LTO_builtin_decl handling.
3384 (lto_input_tree_1): Liekwise.
3385 * lto-streamer-out.c (lto_output_tree_1): Remove special
3386 handling of builtins.
3387 (DFS::DFS): Likewise.
3388 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
3389 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
3390 assert.
3391 (streamer_write_builtin): Remove.
3392
3393 2016-07-25 Martin Liska <mliska@suse.cz>
3394
3395 * lto-cgraph.c (input_symtab): Don't call get_working_sets
3396 if flag_auto_profile is set to true.
3397
3398 2016-07-25 Martin Liska <mliska@suse.cz>
3399
3400 PR gcov-profile/71868
3401 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
3402 have a function with multiple latches, count them all.
3403
3404 2016-07-25 Martin Liska <mliska@suse.cz>
3405
3406 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
3407
3408 2016-07-25 Martin Liska <mliska@suse.cz>
3409
3410 PR tree-optimization/71987
3411 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
3412 just for SSA_NAMEs. Fix GNU coding style.
3413
3414 2016-07-25 Martin Liska <mliska@suse.cz>
3415
3416 PR gcov-profile/64874
3417 * gcov-io.h: Update command about file format.
3418 * gcov-iov.c (main): Adapt the numbering scheme.
3419
3420 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
3421
3422 PR middle-end/66726
3423 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
3424 whose result is used in PHI.
3425 (final_range_test_p): Likewise.
3426 (maybe_optimize_range_tests): Likewise.
3427
3428 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
3429
3430 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3431 Reformat two multi-line strings.
3432
3433 2016-07-22 Martin Sebor <msebor@redhat.com>
3434
3435 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
3436
3437 2016-07-22 Martin Sebor <msebor@redhat.com>
3438
3439 PR c/71560
3440 * doc/extend.texi (Compound Literals): Correct and clarify.
3441 (Cast to Union): Same.
3442
3443 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
3444
3445 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3446 comments to explain why certain error messages make mention of
3447 undocumented options.
3448 (rs6000_invalid_builtin): Change error messages to replace mention
3449 of undocumented options with mention of the -mcpu=power9 option
3450 that enables those undocumented options.
3451 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
3452 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
3453 definition of this macro to correct an existing error.
3454 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
3455 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
3456 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
3457 descriptions of built-in functions so that they depend on
3458 -mcpu=power9 instead of on the corresponding undocumented flags.
3459 * doc/invoke.texi (Option Summary): Remove all mention of newly
3460 undocumented flags.
3461 (IBM RS/6000 and PowerPC Options): Likewise.
3462 * doc/md.texi (Constraints for Particuliar Machines): Remove all
3463 mention of newly undocumented flags.
3464
3465 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
3466
3467 * ipa-cp.c (determine_versionability): Do not create constprop clones,
3468 when target_clones attribute is set.
3469
3470 2016-07-22 Bin Cheng <bin.cheng@arm.com>
3471
3472 * common.opt (funsafe-loop-optimizations): Mark ignore.
3473 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
3474 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
3475 related code.
3476 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
3477 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
3478
3479 2016-07-22 Bin Cheng <bin.cheng@arm.com>
3480
3481 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
3482 Parameter.
3483 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
3484 Parameter.
3485 (number_of_iterations_exit): Warn missed loop optimization for
3486 possible infinite loops.
3487
3488 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
3489
3490 PR target/71216
3491 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
3492 when to emit a ".machine" pseudo-op.
3493
3494 2016-07-22 Martin Liska <mliska@suse.cz>
3495
3496 PR gcov-profile/69028
3497 PR gcov-profile/62047
3498 * coverage.c (coverage_compute_lineno_checksum): Do not
3499 calculate checksum for fns w/o xloc.file.
3500 (coverage_compute_profile_id): Likewise.
3501
3502 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
3503
3504 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
3505 (avr_secondary_reload): ...and implementation.
3506 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
3507 * config/avr/avr.md (reload_in<mode>): Remove insns.
3508 (adjust_len) [lpm]: Remove insn attribute value.
3509 * config/avr/predicates.md (flash_operand): Remove insn predicate.
3510
3511 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
3512
3513 PR middle-end/71876
3514 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
3515 attribute.
3516 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
3517 * calls.c (special_function_p): Remove the special handling of the
3518 "__builtin_" prefix.
3519
3520 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
3521
3522 PR middle-end/71876
3523 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
3524 if STMT may be an alloca call.
3525 (gimple_alloca_call_p, alloca_call_p): Return only true for the
3526 builtin alloca call.
3527 * calls.h (gimple_maybe_alloca_call_p): New function.
3528 * tree-inline.c (inline_forbidden_p_stmt): Use
3529 gimple_maybe_alloca_call_p here.
3530
3531 2016-07-21 David Malcolm <dmalcolm@redhat.com>
3532
3533 * spellcheck-tree.c (best_macro_match::best_macro_match):
3534 Explictly specify the template arguments when invoking the base
3535 class constructor, to help older C++ compilers.
3536
3537 2016-07-21 Jakub Jelinek <jakub@redhat.com>
3538
3539 PR sanitizer/71953
3540 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
3541 before builtin_decl_implicit.
3542
3543 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
3544
3545 * optabs.c (emit_condiitonal_move): Short circuit for identical
3546 sources.
3547
3548 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
3549
3550 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
3551 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
3552 (noce_conversion_profitable_p): New.
3553 (noce_try_store_flag_constants): Use it.
3554 (noce_try_addcc): Likewise.
3555 (noce_try_store_flag_mask): Likewise.
3556 (noce_try_cmove): Likewise.
3557 (noce_try_cmove_arith): Likewise.
3558 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
3559 overwriting it.
3560 (noce_convert_multiple_sets): Move cost model to here, from...
3561 (bb_ok_for_noce_convert_multiple_sets) ...here.
3562 (noce_process_if_block): Update calls for above changes.
3563 (noce_find_if_block): Record new noce_if_info parameters.
3564
3565 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
3566
3567 * target.def (max_noce_ifcvt_seq_cost): New.
3568 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
3569 * doc/tm.texi: Regenerate.
3570 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
3571 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
3572 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
3573 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
3574 * doc/invoke.texi: Document new params.
3575
3576 2016-07-21 Richard Biener <rguenther@suse.de>
3577
3578 PR tree-optimization/71947
3579 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
3580 ranges have useful limit_vr information.
3581
3582 2016-07-21 Richard Biener <rguenther@suse.de>
3583
3584 * function-tests.c (build_trivial_generic_function): Set
3585 BLOCK_SUPERCONTEXT of DECL_INITIAL.
3586 * omp-low.c (create_omp_child_function): Likewise.
3587 (grid_expand_target_grid_body): Likewise.
3588 * cgraphunit.c (init_lowered_empty_function): Likewise.
3589 (cgraph_node::expand_thunk): Likewise.
3590 * tree-parloops.c (create_loop_fn): Likewise.
3591 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
3592
3593 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3594
3595 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
3596 in comment.
3597
3598 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
3599
3600 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
3601 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
3602 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
3603 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
3604 values for insn attribute.
3605 * config/avr/avr.c (avr_out_insert_notbit): New function.
3606 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
3607 ADJUST_LEN_INSV_NOTBIT_0/_7.
3608 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
3609
3610 2016-07-21 Bin Cheng <bin.cheng@arm.com>
3611
3612 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
3613 (chrec_convert_1, chrec_convert): Ditto.
3614 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
3615 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
3616 * tree-vrp.c (adjust_range_with_scev): Ditto.
3617 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
3618 (scev_var_range_cant_overflow): New function.
3619 (scev_probably_wraps_p): New parameter. Call above function.
3620 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
3621
3622 2016-07-21 Bin Cheng <bin.cheng@arm.com>
3623
3624 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
3625 by removing computation of may_be_zero.
3626
3627 2016-07-21 Jakub Jelinek <jakub@redhat.com>
3628
3629 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
3630
3631 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
3632
3633 Improving concepts performance and diagnostics.
3634 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
3635 for constraint satisfaction and subsumption.
3636 * timevar.h (auto_timevar): New constructor that matches the push/pop
3637 pattern of usage in pt.c.
3638
3639 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
3640
3641 * hwint.h (HOST_WIDE_INT_0): New define.
3642 (HOST_WIDE_INT_0U): Ditto.
3643 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
3644 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
3645 * simplify-rtx.c: Ditto.
3646 * tree-object-size.c: Ditto.
3647
3648 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3649
3650 * config/s390/s390.c (s390_encode_section_info): Remove mode size
3651 check.
3652
3653 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
3654
3655 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
3656 * combine.c: Use HOST_WIDE_INT_M1U instead of
3657 ~(unsigned HOST_WIDE_INT) 0.
3658 * double-int.h: Ditto.
3659 * dse.c: Ditto.
3660 * dwarf2asm.c:Ditto.
3661 * expmed.c: Ditto.
3662 * genmodes.c: Ditto.
3663 * match.pd: Ditto.
3664 * read-rtl.c: Ditto.
3665 * tree-ssa-loop-ivopts.c: Ditto.
3666 * tree-ssa-loop-prefetch.c: Ditto.
3667 * tree-vect-generic.c: Ditto.
3668 * tree-vect-patterns.c: Ditto.
3669 * tree.c: Ditto.
3670
3671 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
3672
3673 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
3674 constant addresses outside [0,0xc0] into a register.
3675 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
3676 cases where the base address register is unused after.
3677 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
3678 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
3679 (avr_out_store_psi_reg_disp_tiny): Same.
3680
3681 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
3682
3683 Implement attribute progmem on reduced Tiny cores by adding
3684 flash offset 0x4000 to respective symbols.
3685
3686 PR target/71948
3687 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
3688 documentation how it works on reduced Tiny cores.
3689 (AVR Named Address Spaces): No support for reduced Tiny.
3690 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
3691 (avr_address_tiny_pm_p): New static function.
3692 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
3693 if the address is in progmem.
3694 (avr_assemble_integer): Same.
3695 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
3696 for symbol_ref in progmem.
3697 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
3698 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
3699 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
3700
3701 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
3702
3703 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
3704 * configure: Regenerate.
3705 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
3706 (USE_THIN_ARCHIVES): New variable.
3707 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
3708 this archive as a thin archive.
3709
3710 2016-07-20 David Malcolm <dmalcolm@redhat.com>
3711
3712 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
3713 same location as last time, don't skip if we have fix-it hints.
3714 Clarify the skipping logic by converting it from one "if" clause
3715 to repeated "if" clauses.
3716 * spellcheck-tree.c: Include "cpplib.h".
3717 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
3718 (best_macro_match::best_macro_match): New constructor.
3719 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
3720 Move here from c/c-decl.c.
3721 (class best_macro_match): Move here from c/c-decl.c, converting
3722 from a typedef to a subclass, gaining a ctor.
3723
3724 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
3725
3726 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
3727 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
3728 define...
3729 (avr_addr_space_diagnose_usage): ...and implementation.
3730 (avr_addr_space_supported_p): New function.
3731 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
3732 report bad address space usage if that space is supported.
3733 (avr_insert_attributes): Same. No more complain about unsupported
3734 address spaces.
3735 * config/avr/avr-c.c (tm_p.h): Include it.
3736 (avr_cpu_cpp_builtins): Only define addr-space related built-in
3737 macro if avr_addr_space_supported_p.
3738
3739 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
3740
3741 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
3742 flag_toplevel_reorder.
3743
3744 2016-07-20 David Malcolm <dmalcolm@redhat.com>
3745
3746 * gcc-rich-location.c
3747 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
3748 a const char *.
3749 * gcc-rich-location.h
3750 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
3751
3752 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
3753
3754 * target.def (addr_space): Add new diagnose_usage to hook vector.
3755 * targhooks.c (default_addr_space_diagnose_usage): Add default
3756 implementation and...
3757 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
3758 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
3759 is some address space, call targetm.addr_space.diagnose_usage.
3760 * doc/tm.texi.in (Named Address Spaces): Add anchor for
3761 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
3762 * doc/tm.texi: Regenerate.
3763
3764 2016-07-20 Martin Liska <mliska@suse.cz>
3765
3766 PR middle-end/71898
3767 * graphite-isl-ast-to-gimple.c (later_of_the_two):
3768 Properly handly PHI stmts.
3769
3770 2016-07-20 Bin Cheng <bin.cheng@arm.com>
3771
3772 PR tree-optimization/71503
3773 PR tree-optimization/71683
3774 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
3775 and break.
3776
3777 2016-07-20 Martin Liska <mliska@suse.cz>
3778
3779 * doc/invoke.texi (-fipa-ra): Document when the option is
3780 disabled. Fix a typo.
3781
3782 2016-07-20 Martin Liska <mliska@suse.cz>
3783
3784 * Makefile.in: Include fibonacci_heap.c
3785 * fibonacci_heap.c: New file.
3786 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
3787 (fibonacci_heap::union_with): Fix deletion of the second heap.
3788 * selftest-run-tests.c (selftest::run_tests): Incorporate
3789 fibonacci heap tests.
3790 * selftest.h: Declare fibonacci_heap_c_tests.
3791
3792 2016-07-20 Martin Liska <mliska@suse.cz>
3793
3794 * selftest-run-tests.c (selftest::run_tests): New function.
3795 * selftest.h (sreal_c_tests): Declare.
3796 * sreal.c (sreal_verify_basics): New function.
3797 (verify_aritmetics): Likewise.
3798 (sreal_verify_arithmetics): Likewise.
3799 (verify_shifting): Likewise.
3800 (sreal_verify_shifting): Likewise.
3801 (void sreal_c_tests): Likewise.
3802
3803 2016-07-19 Jakub Jelinek <jakub@redhat.com>
3804
3805 PR rtl-optimization/71916
3806 * cfgrtl.c (contains_no_active_insn_p): Return false also for
3807 bb which have a single succ fake edge.
3808
3809 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
3810
3811 PR debug/71855
3812 * dwarf2out.c (gen_subprogram_die): Only call
3813 gen_unspecified_parameters_die while dumping early dwarf.
3814
3815 2016-07-19 Jakub Jelinek <jakub@redhat.com>
3816
3817 PR middle-end/71874
3818 * gimple-fold.c (fold_builtin_memory_op): Use
3819 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
3820
3821 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
3822
3823 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
3824 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
3825 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
3826 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
3827 * combine.c: Ditto.
3828 * cse.c: Ditto.
3829 * dojump.c: Ditto.
3830 * double-int.c: Ditto.
3831 * dse.c: Ditto.
3832 * dwarf2out.c: Ditto.
3833 * expmed.c: Ditto.
3834 * expr.c: Ditto.
3835 * fold-const.c: Ditto.
3836 * function.c: Ditto.
3837 * fwprop.c: Ditto.
3838 * genmodes.c: Ditto.
3839 * hwint.c: Ditto.
3840 * hwint.h: Ditto.
3841 * ifcvt.c: Ditto.
3842 * loop-doloop.c: Ditto.
3843 * loop-invariant.c: Ditto.
3844 * loop-iv.c: Ditto.
3845 * match.pd: Ditto.
3846 * optabs.c: Ditto.
3847 * real.c: Ditto.
3848 * reload.c: Ditto.
3849 * rtlanal.c: Ditto.
3850 * simplify-rtx.c: Ditto.
3851 * stor-layout.c: Ditto.
3852 * toplev.c: Ditto.
3853 * tree-ssa-loop-ivopts.c: Ditto.
3854 * tree-vect-generic.c: Ditto.
3855 * tree-vect-patterns.c: Ditto.
3856 * tree.c: Ditto.
3857 * tree.h: Ditto.
3858 * ubsan.c: Ditto.
3859 * varasm.c: Ditto.
3860 * wide-int-print.cc: Ditto.
3861 * wide-int.cc: Ditto.
3862 * wide-int.h: Ditto.
3863
3864 2016-07-19 David Malcolm <dmalcolm@redhat.com>
3865
3866 * selftest.c (selftest::assert_streq): Handle NULL values of
3867 val_actual and val_expected.
3868
3869 2016-07-19 Martin Jambor <mjambor@suse.cz>
3870
3871 PR fortran/71688
3872 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
3873 rather than cgraph_create_node to get a call graph node.
3874
3875 2016-07-19 Richard Biener <rguenther@suse.de>
3876
3877 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
3878 handle all tcc_constant bases and valueize SSA names.
3879 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
3880 tcc_constant bases.
3881
3882 2016-07-19 David Malcolm <dmalcolm@redhat.com>
3883
3884 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
3885 the flags of the exit block and bb2, not just the entry block.
3886
3887 2016-07-19 Richard Biener <rguenther@suse.de>
3888
3889 PR tree-optimization/71901
3890 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
3891 align member, group stuff with the bitfield.
3892 (vn_ref_op_align_unit): New inline.
3893 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
3894 record element alignment and operand 3 unchanged.
3895 (ao_ref_init_from_vn_reference): Adjust.
3896 (valueize_refs_1): Likewise.
3897 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3898
3899 2016-07-19 Richard Biener <rguenther@suse.de>
3900
3901 PR tree-optimization/71908
3902 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
3903 symbolic constants in a more reliable way.
3904
3905 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
3906
3907 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
3908 comment.
3909 (vect_update_inits_of_drs): Likewise.
3910 (vect_create_cond_for_alias_checks): Likewise.
3911 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
3912
3913 2016-07-19 Richard Biener <rguenther@suse.de>
3914
3915 PR lto/71907
3916 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
3917 with an abstract origin that is not an inlined function outer
3918 scope add a self-reference as abstract origin.
3919 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
3920
3921 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3922
3923 PR target/71493
3924 * config/rs6000/rs6000.c (rs6000_function_value): Fix
3925 unintentional System V.4 structure return breakage for structures
3926 with a single floating point element.
3927
3928 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
3929
3930 PR tree-optimization/71734
3931 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
3932 contains REF, use it to check safelen, assume that safelen value
3933 must be greater 1, fix style.
3934 (ref_indep_loop_p_2): Add REF_LOOP argument.
3935 (ref_indep_loop_p): Pass LOOP as additional argument to
3936 ref_indep_loop_p_2.
3937
3938 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
3939
3940 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
3941 allocation in the prologue.
3942 * explow.c (get_dynamic_stack_base): New function to return an address
3943 expression for the dynamic stack base.
3944 (get_dynamic_stack_size): New function to do the required dynamic stack
3945 space size calculations.
3946 (allocate_dynamic_stack_space): Use new functions.
3947 (align_dynamic_address): Move some code from
3948 allocate_dynamic_stack_space to new function.
3949 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
3950
3951 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3952
3953 * config/s390/s390.c (s390_encode_section_info): Always set
3954 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
3955 found.
3956
3957 2016-07-18 Richard Biener <rguenther@suse.de>
3958
3959 PR tree-optimization/71893
3960 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
3961 for sizetype cast added by array_ref_element_size.
3962 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3963
3964 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
3965
3966 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
3967 register parameters. Remove code to initialize argument pointer
3968 on TARGET_64BIT. Optimize call to _mcount when it can be reached
3969 using a pc-relative branch. Cleanup conditional code.
3970 * config/pa/pa.md (call_mcount): New expander.
3971 (call_mcount_nonpic): New insn.
3972 (call_mcount_pic): New insn and split.
3973 (call_mcount_pic_post_reload): New insn.
3974 (call_mcount_64bit): New insn and split.
3975 (call_mcount_64bit_post_reload): New insn.
3976
3977 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
3978
3979 * config/avr/predicates.md (const_m255_to_m1_operand): New.
3980 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
3981 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
3982 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
3983 (*usum_widenqihi3, *udiff_widenqihi3)
3984 (*addhi3_zero_extend.const): New combiner insns.
3985 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
3986 just 1 bit is affected.
3987 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
3988 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
3989
3990 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
3991
3992 * omp-low.c (lower_omp_target): Mark data clauses with
3993 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
3994 zero-length subarrays.
3995
3996 2016-07-15 Richard Biener <rguenther@suse.de>
3997
3998 PR tree-optimization/71881
3999 * tree-loop-distribution.c (destroy_loop): Remove blocks in
4000 reverse DOM order to make debug temp generation happy.
4001
4002 2016-07-15 Richard Biener <rguenther@suse.de>
4003
4004 PR tree-optimization/71887
4005 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
4006 verify it is not zero for division / modulo handling.
4007 (value_replacement): Adjust.
4008
4009 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
4010 Julian Brown <julian@codesourcery.com>
4011
4012 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
4013 * config/aarch64/aarch64-cost-tables.h
4014 (vulcan_extra_costs): New variable.
4015 * config/aarch64/aarch64.c
4016 (vulcan_addrcost_table): Likewise.
4017 (vulcan_regmove_cost): Likewise.
4018 (vulcan_vector_cost): Likewise.
4019 (vulcan_branch_cost): Likewise.
4020 (vulcan_tunings): Likewise.
4021
4022 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
4023
4024 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
4025 (output_in_order): Loop over undefined variables too. Output them
4026 via assemble_undefined_decl. Skip variables that correspond to hard
4027 registers or have value-exprs.
4028 * varpool.c (symbol_table::output_variables): Handle undefined
4029 variables together with defined ones.
4030
4031 2016-07-15 Richard Biener <rguenther@suse.de>
4032
4033 * tree-ssa-pre.c (get_representative_for): Make sure to return
4034 the value number of SSA names.
4035 (phi_translate_1): get_representative_for cannot return NULL.
4036 (do_pre_regular_insertion): Remove redundant call to
4037 fully_constant_expression.
4038 (do_pre_partial_partial_insertion): Likewise.
4039
4040 2016-07-15 Bin Cheng <bin.cheng@arm.com>
4041
4042 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
4043 (derive_simple_iv_with_niters): New function.
4044 (simple_iv): Rewrite using simple_iv_with_niters.
4045 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
4046 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4047 function.
4048 (number_of_iterations_exit): Rewrite using above function.
4049 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4050 Decl.
4051
4052 2016-07-15 Richard Biener <rguenther@suse.de>
4053
4054 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
4055 vec_construct cost.
4056
4057 2016-07-14 Jakub Jelinek <jakub@redhat.com>
4058
4059 PR tree-optimization/71872
4060 * tree-data-ref.c (get_references_in_stmt): Ignore references
4061 with is_gimple_constant get_base_address.
4062
4063 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4064
4065 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
4066 (TARGET_HAVE_LDACQD): New macro.
4067 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
4068 than TARGET_HAVE_LDACQ.
4069 (arm_load_acquire_exclusivedi): Likewise.
4070 (arm_store_release_exclusivedi): Likewise.
4071
4072 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4073
4074 PR rtl-optimization/71878
4075 * lra-constraints.c (match_reload): Pass information about other
4076 output operands. Create new unique register value if matching input
4077 operand shares same register value as output operand being considered.
4078 (curr_insn_transform): Record output operands already processed.
4079
4080 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4081
4082 PR target/65951
4083 PR tree-optimization/70923
4084 * tree-vect-patterns.c: Include mult-synthesis.h.
4085 (target_supports_mult_synth_alg): New function.
4086 (synth_lshift_by_additions): Likewise.
4087 (apply_binop_and_append_stmt): Likewise.
4088 (vect_synth_mult_by_constant): Likewise.
4089 (target_has_vecop_for_code): Likewise.
4090 (vect_recog_mult_pattern): Use above functions to synthesize vector
4091 multiplication by integer constants.
4092
4093 2016-07-14 Alan Modra <amodra@gmail.com>
4094
4095 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
4096 gpr alternatives. Correct '*' placement on Y,r alternative.
4097 Add '*' on operand 1 of r,r alternative.
4098
4099 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4100
4101 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
4102 * expmed.h: ... Here.
4103
4104 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
4105
4106 * gimple.h (stmt_can_terminate_bb_p): New function.
4107 * tree-cfg.c (need_fake_edge_p): Rename to ...
4108 (stmt_can_terminate_bb_p): ... this; return true if stmt can
4109 throw external; handle const and pure calls.
4110 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
4111
4112 2016-07-14 Richard Biener <rguenther@suse.de>
4113
4114 PR tree-optimization/71866
4115 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
4116 (do_hoist_insertion): Avoid endless recursion when we
4117 didn't insert anything because we managed to simplify
4118 things down to a constant or SSA name.
4119 (fully_constant_expression): Re-write in terms of ...
4120 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
4121 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
4122 vn_nary_build_or_lookup_1.
4123 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
4124 (vn_nary_build_or_lookup): ... this which now wraps it.
4125
4126 2016-07-14 Alan Modra <amodra@gmail.com>
4127
4128 PR target/71733
4129 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
4130 with p9_vector override before power9-dform override.
4131
4132 2016-07-13 Andi Kleen <ak@linux.intel.com>
4133
4134 * value-prof.c (gimple_value_profile_transformations): Don't run
4135 when auto_profile is on.
4136
4137 2016-07-13 Andi Kleen <ak@linux.intel.com>
4138
4139 * auto-profile.c (update_inlined_ind_target,
4140 afdo_indirect_call): Print information to dump file.
4141
4142 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
4143
4144 * genrecog.c (special_predicate_operand_p): New function.
4145 (predicate_name): Move function.
4146 (validate_pattern): Don't warn about missing mode for all
4147 define_special_predicate predicates.
4148
4149 2016-07-13 Bin Cheng <bin.cheng@arm.com>
4150
4151 * tree-vect-data-refs.c (vect_no_alias_p): New function.
4152 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
4153 resolve alias checks which are known at compilation time.
4154 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
4155 alias checks are resolved. Move dump info for too many runtime
4156 alias checks to here...
4157 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
4158
4159 2016-07-13 Richard Biener <rguenther@suse.de>
4160
4161 PR tree-optimization/24574
4162 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
4163 position and add shift, rotate, divison and modulo support
4164 for left zero.
4165 (value_replacement): Pass in argument position to absorbing_element_p.
4166
4167 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
4168
4169 PR ipa/71633
4170 * ipa-inline-transform.c (inline_call): Support
4171 instrumented thunks.
4172
4173 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
4174
4175 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
4176 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
4177 divide feature.
4178 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
4179 Baseline. Make initial alternative TARGET_32BIT only.
4180 (udivsi3): Likewise.
4181 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
4182 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
4183 target.
4184
4185 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
4186
4187 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
4188 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
4189 availability with TARGET_HAVE_MOVT.
4190 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
4191 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
4192 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
4193 UINTVAL.
4194 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
4195 extra instruction if MOVW is available. Use a cost variable
4196 incremented by COSTS_N_INSNS (1) when the condition match rather than
4197 returning an arithmetic expression based on COSTS_N_INSNS. Make
4198 constant with bottom half word zero cost 2 instruction if MOVW is
4199 available.
4200 * config/arm/arm.md (define_attr "arch"): Add v8mb.
4201 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
4202 target is ARMv8-M Baseline.
4203 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
4204 (arm_movtas_ze): Likewise.
4205 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
4206 alternative for constants satisfying j constraint.
4207 (thumb1_movsi_insn): Likewise.
4208 (movsi splitter for K alternative): Tighten condition to not trigger
4209 if movt is available and j constraint is satisfied.
4210 (Pe immediate splitter): Likewise.
4211 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
4212 constant fitting in an halfword to use MOVW.
4213 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
4214 effective target.
4215
4216 2016-07-13 Richard Biener <rguenther@suse.de>
4217
4218 PR middle-end/71104
4219 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
4220 gimplifying the LHS. Make sure to gimplify a returning twice
4221 call LHS without using SSA names.
4222
4223 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4224
4225 * tree-data-ref.c (find_data_references_in_stmt): Remove
4226 unnecessary call to vec::release.
4227 (graphite_find_data_references_in_stmt): Likewise.
4228 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
4229 * tree-vect-stmts.c (vectorizable_condition): Likewise.
4230
4231 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4232
4233 * cfgexpand.c (expand_used_vars): Make the type of a local
4234 variable auto_vec.
4235 * genmatch.c (lower_for): Likewise.
4236 * haifa-sched.c (haifa_sched_init): Likewise.
4237 (add_to_speculative_block): Likewise.
4238 (create_check_block_twin): Likewise.
4239 * predict.c (handle_missing_profiles): Likewise.
4240 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
4241 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
4242 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
4243 Likewise.
4244 (maybe_lower_iteration_bound): Likewise.
4245 * tree-ssa-sccvn.c (DFS): Likewise.
4246 * tree-stdarg.c (reachable_at_most_once): Likewise.
4247 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
4248 (vectorizable_store): Likewise.
4249
4250 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4251
4252 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
4253 (sccvn_dom_walker): make cond_stack an auto_vec.
4254
4255 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4256
4257 * ree.c (struct ext_state): Make type of members auto_vec.
4258 (find_and_remove_re): Adjust.
4259
4260 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4261
4262 * cfgexpand.c (struct stack_vars_data): Make type of fields
4263 auto_vec.
4264 (expand_used_vars): Adjust.
4265
4266 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4267
4268 * ipa.c (record_cdtor_fn): Adjust.
4269 (build_cdtor_fns): Likewise.
4270 (ipa_cdtor_merge): Make static_ctors and static_dtors local
4271 variables.
4272
4273 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4274
4275 * genextract.c (struct accum_extract): Add constructor and make
4276 members auto_vec.
4277 (gen_insn): Adjust.
4278
4279 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4280
4281 * tree.c (struct free_lang_data_d): Add constructor and change
4282 types of members to ones that automatically manage resources.
4283 (fld_worklist_push): Adjust.
4284 (find_decls_types): Likewise.
4285 (find_decls_types_in_eh_region): Likewise.
4286 (free_lang_data_in_cgraph): Stop manually creating and
4287 destroying members of free_lang_data_d.
4288
4289 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
4290
4291 PR rtl-optimization/68961
4292 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
4293 peephole variant. Use sse_reg_operand predicates.
4294
4295 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
4296
4297 * config/i386/predicates.md (x86_64_immediate_operand)
4298 <case CONST_INT>: Remove unneeded truncation to DImode.
4299 <case CONST>: Ditto.
4300 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
4301
4302 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4303
4304 PR target/71805
4305 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
4306 The xxperm and xxpermr instructions require that the 2nd input
4307 operand overlap with the output operand, and not the 1st.
4308 (altivec_vperm_v8hiv16qi): Likewise.
4309 (altivec_vperm_<mode>_uns_internal): Likewise.
4310 (altivec_vpermr_<mode>_internal): Likewise.
4311 (vperm_v8hiv4si): Likewise.
4312 (vperm_v16qiv8hi): Likewise.
4313
4314 2016-07-12 Nathan Sidwell <nathan@acm.org>
4315
4316 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
4317 when -mno-pic-data-is-text-relative is in effect, by default.
4318 * doc/invoke.texi (mpic-data-is-text-relative): Document new
4319 behavior and clarify.
4320
4321 2016-07-12 Martin Liska <mliska@suse.cz>
4322
4323 * params.def: Add avg-loop niter.
4324 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
4325 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
4326 * doc/invoke.texi: Document the new parameter.
4327
4328 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4329
4330 PR middle-end/71700
4331 * expr.c (store_constructor): Mask sign-extended bits when widening
4332 sub-word constructor element at the start of a word.
4333
4334 2016-07-12 Martin Liska <mliska@suse.cz>
4335
4336 * Makefile.in: Append rule for params-options.h.
4337 * params-options.h: New file.
4338
4339 2016-07-12 Martin Liska <mliska@suse.cz>
4340
4341 * ira-build.c (mark_loops_for_removal): Properly iterate
4342 loops.
4343
4344 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
4345 Richard Biener <rguenther@suse.de>
4346
4347 PR tree-optimization/23286
4348 PR tree-optimization/70159
4349 * doc/invoke.texi: Document -fcode-hoisting.
4350 * common.opt (fcode-hoisting): New flag.
4351 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
4352 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
4353 (do_regular_insertion): Rename to ...
4354 (do_pre_regular_insertion): ... this and amend general comments
4355 on insertion strathegy.
4356 (do_partial_partial_insertion): Rename to ...
4357 (do_pre_partial_partial_insertion): ... this.
4358 (do_hoist_insertion): New function.
4359 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
4360 and call do_hoist_insertion properly.
4361 (insert): Adjust.
4362 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
4363 (pass_pre::execute): Register hoist_insert stats.
4364
4365 2016-07-12 Jakub Jelinek <jakub@redhat.com>
4366
4367 PR middle-end/71716
4368 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
4369 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
4370 is different from mode's bitsize. Small cleanup.
4371
4372 2016-07-12 Richard Biener <rguenther@suse.de>
4373
4374 PR rtl-optimization/68961
4375 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
4376 to simplify to a non-constant.
4377
4378 2016-07-11 Jakub Jelinek <jakub@redhat.com>
4379
4380 PR middle-end/71758
4381 * omp-low.c (expand_omp_target): Gimplify device.
4382
4383 PR tree-optimization/71823
4384 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
4385 to get vec_oprnds2 from op2.
4386
4387 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
4388
4389 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
4390 Hoist common subexpressions.
4391 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
4392
4393 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
4394
4395 PR target/71800
4396 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
4397 prevent generation of 'stxsiwx' on pre Power8 hardware.
4398
4399 2016-07-11 David Malcolm <dmalcolm@redhat.com>
4400
4401 * input.c: Include cpplib.h.
4402 (selftest::temp_source_file): New class.
4403 (selftest::temp_source_file::temp_source_file): New ctor.
4404 (selftest::temp_source_file::~temp_source_file): New dtor.
4405 (selftest::should_have_column_data_p): New function.
4406 (selftest::test_should_have_column_data_p): New function.
4407 (selftest::temp_line_table): New class.
4408 (selftest::temp_line_table::temp_line_table): New ctor.
4409 (selftest::temp_line_table::~temp_line_table): New dtor.
4410 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
4411 it to create a temp_line_table.
4412 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
4413 locations that are known to have column data.
4414 (selftest::line_table_case): New struct.
4415 (selftest::test_reading_source_line): Move tempfile handling
4416 to class temp_source_file.
4417 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
4418 (selftest::assert_token_loc_eq): New function.
4419 (ASSERT_TOKEN_LOC_EQ): New macro.
4420 (selftest::test_lexer): New function.
4421 (selftest::boundary_locations): New array.
4422 (selftest::input_c_tests): Call test_should_have_column_data_p.
4423 Loop over a test matrix of interesting values of location and
4424 default_range_bits, calling test_lexer on each case in the matrix.
4425 Move call to test_accessing_ordinary_linemaps into the matrix.
4426 * selftest.h (ASSERT_EQ): Reimplement in terms of...
4427 (ASSERT_EQ_AT): New macro.
4428
4429 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
4430
4431 PR target/71801
4432 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
4433 Don't convert TImode in debug insn.
4434
4435 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
4436
4437 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
4438 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
4439 (tree_type_common::lang_flag_7): New.
4440 (tree_type_common::spare): Reduce size.
4441 * tree.h (TYPE_ALIGN_OK): Remove.
4442 (TYPE_LANG_FLAG_7): New.
4443 (get_inner_reference): Adjust header.
4444 * print-tree.c (print_node): Adjust.
4445 * expr.c (get_inner_reference): Remove parameter keep_aligning.
4446 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
4447 calls to get_inner_reference.
4448 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
4449 handling of TYPE_ALIGN_OK.
4450 * builtins.c (get_object_alignment_2): Adjust call to
4451 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
4452 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
4453 TYPE_ALIGN_OK.
4454 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
4455 * cfgexpand.c (expand_debug_expr): Likewise.
4456 * dbxout.c (dbxout_expand_expr): Likewise.
4457 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
4458 loc_list_from_tree, fortran_common): Likewise.
4459 * fold-const.c (optimize_bit_field_compare,
4460 decode_field_reference, fold_unary_loc, fold_comparison,
4461 split_address_to_core_and_offset): Likewise.
4462 * gimple-laddress.c (execute): Likewise.
4463 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
4464 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
4465 * hsa-gen.c (gen_hsa_addr): Likewise.
4466 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
4467 * tsan.c (instrument_expr): Likewise.
4468 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
4469 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
4470 * tree-affine.c (tree_to_aff_combination,
4471 get_inner_reference_aff): Adjust calls to get_inner_reference.
4472 * tree-data-ref.c (split_constant_offset_1,
4473 dr_analyze_innermost): Likewise.
4474 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
4475 * tree-sra.c (ipa_sra_check_caller): Likewise.
4476 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
4477 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
4478 bswap_replace): Likewise.
4479 * tree-vect-data-refs.c (vect_check_gather,
4480 vect_analyze_data_refs): Likewise.
4481 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
4482 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
4483 TYPE_ALIGN_OK.
4484
4485 2016-07-11 David Malcolm <dmalcolm@redhat.com>
4486
4487 * Makefile.in (selftest-valgrind): New phony target.
4488 * function-tests.c (selftest::build_cfg): Delete pass instances
4489 created by the test.
4490 (selftest::convert_to_ssa): Likewise.
4491 (selftest::test_expansion_to_rtl): Likewise.
4492 * tree-cfg.c (selftest::test_linear_chain): Release dominator
4493 vectors.
4494 (selftest::test_diamond): Likewise.
4495
4496 2016-07-11 Richard Biener <rguenther@suse.de>
4497
4498 PR tree-optimization/71816
4499 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
4500 than replacing all of its operands.
4501
4502 2016-07-11 Alan Modra <amodra@gmail.com>
4503
4504 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
4505 (ctr<mode>): Add unspec.
4506 (ctr<mode>_internal*): Likewise.
4507
4508 2016-07-08 James Bowman <james.bowman@ftdichip.com>
4509
4510 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
4511 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
4512
4513 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
4514
4515 PR rtl-optimization/71621
4516 * lra-constraints.c (process_alt_operands): Check combination of
4517 reg class and mode.
4518
4519 2016-07-08 Jason Merrill <jason@redhat.com>
4520 Richard Biener <rguenther@suse.de>
4521
4522 P0145: Refining Expression Order for C++.
4523 * gimplify.c (initial_rhs_predicate_for): New.
4524 (gimplfy_modify_expr): Gimplify RHS before LHS.
4525
4526 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4527
4528 PR target/71297
4529 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4530 Allow standard error handling to take over when a wrong number
4531 of arguments is presented to __builtin_vec_ld () or
4532 __builtin_vec_st ().
4533
4534 2016-07-08 Jiong Wang <jiong.wang@arm.com>
4535
4536 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
4537 variants.
4538 (smin): Likewise.
4539 (fmax): New entry.
4540 (fmin): Likewise.
4541 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
4542 __builtin_aarch64_fmaxv2sf.
4543 (vmaxnmq_f32): Likewise.
4544 (vmaxnmq_f64): Likewise.
4545 (vminnm_f32): Likewise.
4546 (vminnmq_f32): Likewise.
4547 (vminnmq_f64): Likewise.
4548
4549 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
4550
4551 PR target/71806
4552 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
4553 enable -mfloat128-hardware by default.
4554 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
4555 that IEEE 128-bit hardware support needs.
4556 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
4557 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
4558 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
4559 floating point requires.
4560 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
4561 -mfloat128 and -mfloat128-hardware changes.
4562
4563 2016-07-08 Alan Hayward <alan.hayward@arm.com>
4564
4565 PR tree-optimization/71667
4566 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
4567
4568 2016-07-08 Martin Liska <mliska@suse.cz>
4569
4570 PR middle-end/71606
4571 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
4572 folding produces SAVE_EXPRs, thus return false for the type.
4573
4574 2016-07-07 Martin Liska <mliska@suse.cz>
4575
4576 * file-find.c (remove_prefix): New function.
4577 * file-find.h (remove_prefix): Declare the function.
4578 * gcc-ar.c (main): Skip a folder of the wrapper if
4579 a wrapped binary would point to the same file.
4580
4581 2016-07-07 Jan Hubicka <jh@suse.cz>
4582
4583 * tree-scalar-evolution.c (iv_can_overflow_p): export.
4584 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
4585 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
4586
4587 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
4588
4589 PR ipa/71624
4590 * ipa-inline-analysis.c (compute_inline_parameters): Set
4591 local.can_change_signature to false for intrumentation
4592 thunk callees.
4593
4594 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
4595
4596 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
4597 with TARGET_HAVE_MOVT.
4598 (TARGET_HAVE_MOVT): Define.
4599 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
4600 availability with TARGET_HAVE_MOVT.
4601 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
4602 availability.
4603 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
4604 TARGET_THUMB2.
4605 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
4606 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
4607 * config/arm/constraints.md (define_constraint "j"): Use
4608 TARGET_HAVE_MOVT to check MOVT availability.
4609
4610 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
4611
4612 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
4613
4614 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
4615
4616 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
4617 (armv8-m.main): Likewise.
4618 (armv8-m.main+dsp): Likewise.
4619 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
4620 (FL_FOR_ARCH8M_MAIN): Likewise.
4621 * config/arm/arm-tables.opt: Regenerate.
4622 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
4623 armv8-m.main+dsp to BE8_LINK_SPEC.
4624 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
4625 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
4626 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
4627 Baseline and Mainline.
4628 (arm_option_override_internal): Also disable arm_restrict_it when
4629 !arm_arch_notm. Update comment for -munaligned-access to also cover
4630 ARMv8-M Baseline.
4631 (arm_file_start): Increase buffer size for printing architecture name.
4632 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
4633 and armv8-m.main+dsp.
4634 (mno-unaligned-access): Clarify that this is disabled by default for
4635 ARMv8-M Baseline architectures as well.
4636
4637 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
4638
4639 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
4640 decide whether to prevent some libgcc routines being included for some
4641 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
4642 link between this condition and the one in
4643 libgcc/config/arm/lib1func.S.
4644
4645 2016-07-07 Richard Biener <rguenther@suse.de>
4646
4647 * tree-ssa-pre.c: Include alias.h.
4648 (compute_avail): If we have multiple VN_REFERENCEs with the
4649 same hashtable entry adjust that to make it a valid replacement
4650 for all of them with respect to alignment and aliasing
4651 when doing insertion.
4652 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
4653 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
4654
4655 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
4656
4657 PR target/70098
4658 PR target/71763
4659 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
4660 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
4661 constraint.
4662
4663 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4664
4665 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
4666 (adjust_mems): Adjust.
4667 (adjust_insn): Likewise.
4668 (prepare_call_arguments): Likewise.
4669
4670 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4671
4672 * gcse.c (struct ls_expr): Make stores field a vector.
4673 (ldst_entry): Adjust.
4674 (free_ldst_entry): Likewise.
4675 (print_ldst_list): Likewise.
4676 (compute_ld_motion_mems): Likewise.
4677 (update_ld_motion_stores): Likewise.
4678
4679 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4680
4681 * gcse.c (struct ls_expr): Remove loads field.
4682 (ldst_entry): Adjust.
4683 (free_ldst_entry): Likewise.
4684 (print_ldst_list): Likewise.
4685 (compute_ld_motion_mems): Likewise.
4686
4687 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4688
4689 * store-motion.c (struct st_expr): Make antic_stores a vector.
4690 (st_expr_entry): Adjust.
4691 (free_st_expr_entry): Likewise.
4692 (print_store_motion_mems): Likewise.
4693 (find_moveable_store): Likewise.
4694 (compute_store_table): Likewise.
4695 (remove_reachable_equiv_notes): Likewise.
4696 (replace_store_insn): Likewise.
4697 (build_store_vectors): Likewise.
4698
4699 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4700
4701 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
4702 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
4703
4704 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
4705
4706 PR tree-optimization/71518
4707 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
4708 misalign also for outer loops with negative step.
4709
4710 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
4711
4712 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
4713 (cortex_a53_shift): Add mov_shift.
4714 (cortex_a53_shift_reg): Add new reservation for register shifts.
4715 (cortex_a53_alu): Remove bfm.
4716 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
4717 (cortex_a53_alu_extr): Add new reservation for EXTR.
4718 (bypasses): Improve bypass modelling.
4719
4720 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4721
4722 PR target/50739
4723 * config/avr/avr.c (avr_asm_select_section): Strip off
4724 SECTION_DECLARED from flags when calling get_section.
4725
4726 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4727
4728 * tree-vectorizer.h (vect_memory_access_type): Add
4729 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
4730 * tree-vect-stmts.c (compare_step_with_zero): New function.
4731 (perm_mask_for_reverse): Move further up file.
4732 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
4733 step is negative.
4734 (get_negative_load_store_type): New function.
4735 (get_load_store_type): Call it. Add an ncopies argument.
4736 (vectorizable_mask_load_store): Update call accordingly and
4737 remove tests for negative steps.
4738 (vectorizable_store, vectorizable_load): Likewise. Handle new
4739 memory_access_types.
4740
4741 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4742
4743 * tree-vectorizer.h (vect_memory_access_type): New enum.
4744 (_stmt_vec_info): Add a memory_access_type field.
4745 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
4746 (vect_model_store_cost): Take an access type instead of a boolean.
4747 (vect_model_load_cost): Likewise.
4748 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
4749 vect_model_store_cost and vect_model_load_cost.
4750 * tree-vect-stmts.c (vec_load_store_type): New enum.
4751 (vect_model_store_cost): Take an access type instead of a
4752 store_lanes_p boolean. Simplify tests.
4753 (vect_model_load_cost): Likewise, but for load_lanes_p.
4754 (get_group_load_store_type, get_load_store_type): New functions.
4755 (vectorizable_store): Use get_load_store_type. Record the access
4756 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
4757 (vectorizable_load): Likewise.
4758 (vectorizable_mask_load_store): Likewise. Replace is_store
4759 variable with vls_type.
4760
4761 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4762
4763 * tree-vectorizer.h (vect_grouped_load_supported): Add a
4764 single_element_p parameter.
4765 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
4766 Check the PR65518 case here rather than in vectorizable_load.
4767 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
4768 * tree-vect-stmts.c (vectorizable_load): Likewise.
4769
4770 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4771
4772 * tree-vectorizer.h (gather_scatter_info): New structure.
4773 (vect_check_gather_scatter): Return a bool rather than a decl.
4774 Replace return-by-pointer arguments with a single
4775 gather_scatter_info *.
4776 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
4777 (vect_analyze_data_refs): Update call accordingly.
4778 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
4779 (vectorizable_mask_load_store): Likewise. Also record the
4780 offset dt and vectype in the gather_scatter_info.
4781 (vectorizable_store): Likewise.
4782 (vectorizable_load): Likewise.
4783
4784 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4785
4786 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
4787 strided groups, use the cost of N scalar accesses instead
4788 of ncopies vector accesses.
4789 (vect_model_load_cost): Likewise.
4790
4791 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4792
4793 * tree-vect-stmts.c (vect_cost_group_size): Delete.
4794 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
4795 variable to indicate when once-per-group costs are being used.
4796 (vect_model_load_cost): Likewise. Fix comment and misindented code.
4797
4798 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
4799
4800 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
4801 peeling-for-gaps condition.
4802
4803 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4804
4805 * config/s390/s390.c (s390_expand_vec_init): Force initializer
4806 element to register if it doesn't match general_operand.
4807
4808 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
4809 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4810
4811 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
4812 prototype.
4813 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
4814 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
4815 (SIGNBIT): New mode iterator.
4816 (Fsignbit): New mode attribute.
4817 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
4818 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
4819 when direct moves are available.
4820 (signbit<mode>2_dm): New define_insn_and_split).
4821 (signbit<mode>2_dm2): New define_insn.
4822
4823 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4824
4825 PR rtl-optimization/71594
4826 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
4827 into subregs of appropriate mode before trying to emit a conditional
4828 move.
4829
4830 2016-07-05 Jan Hubicka <jh@suse.cz>
4831
4832 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
4833 (simple_iv): Use it.
4834
4835 2016-07-05 Jan Hubicka <jh@suse.cz>
4836
4837 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
4838
4839 2016-07-05 Jiong Wang <jiong.wang@arm.com>
4840
4841 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
4842 "offmemok".
4843
4844 2016-07-05 Jan Hubicka <jh@suse.cz>
4845
4846 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
4847 IV can overflow.
4848
4849 2016-07-05 Richard Biener <rguenther@suse.de>
4850
4851 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
4852 Handle empty else block.
4853 (is_feasible_trace): Likewise.
4854 (split_paths): Likewise.
4855
4856 2016-07-05 Richard Biener <rguenther@suse.de>
4857
4858 * tree-loop-distribution.c (distribute_loop): Fix issue with
4859 the cost model loop.
4860
4861 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
4862
4863 * config/arm/neon-testgen.ml: Delete.
4864 * config/arm/neon.ml: Delete.
4865
4866 2016-07-04 Jakub Jelinek <jakub@redhat.com>
4867
4868 PR c++/71739
4869 * tree.c (attribute_value_equal): Use get_attribute_name instead of
4870 directly using TREE_PURPOSE.
4871
4872 2016-07-04 Jiong Wang <jiong.wang@arm.com>
4873
4874 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
4875 * config/aarch64/aarch64_neon.h: Likewise.
4876 * config/aarch64/arm_neon.h: Likewise.
4877 * config/aarch64/atomics.md: Likewise.
4878 * config/aarch64/aarch64-simd-builtins.def: Likewise.
4879 * doc/invoke.texi: Likewise.
4880
4881 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
4882
4883 * config/s390/s390.md: Add "z13" cpu_facility.
4884 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
4885 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
4886 condition" type instructions.
4887
4888 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
4889 Jeff Law <law@redhat.com>
4890
4891 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
4892 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
4893
4894 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
4895
4896 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
4897 permutation for TARGET_AVX512F.
4898 (ix86_expand_vec_one_operand_perm_avx512): New function.
4899 (expand_vec_perm_1): Invoke introduced function.
4900 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
4901 it may be not valid after vectorization.
4902
4903 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4904
4905 PR target/63874
4906 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
4907 typo in comment. Only force to memory if it is a weak
4908 external reference.
4909
4910 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
4911 Jiong Wang <jiong.wang@arm.com>
4912
4913 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
4914 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
4915 (AARCH64_FL_F16): New.
4916 (AARCH64_FL_FOR_ARCH8_2): New.
4917 (AARCH64_ISA_8_2): New.
4918 (AARCH64_ISA_F16): New.
4919 (TARGET_FP_F16INST): New.
4920 (TARGET_SIMD_F16INST): New.
4921 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
4922 ("fp"): Disabling "fp" also disables "fp16".
4923 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
4924 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
4925 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
4926 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
4927
4928 2016-07-04 Jan Beulich <jbeulich@suse.com>
4929
4930 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
4931
4932 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
4933
4934 PR target/71720
4935 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
4936 the insns, use an insn form that does not adjust the offset on
4937 little endian systems.
4938
4939 2016-07-01 Jan Beulich <jbeulich@suse.com>
4940
4941 * varasm.c (get_variable_section): Validate initializer in
4942 named .bss-like sections.
4943
4944 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
4945
4946 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
4947 Exchange the order of the second and third operands in the vpermr
4948 instruction tmeplate.
4949
4950 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
4951
4952 PR target/71698
4953 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
4954 Disallow TDmode values.
4955
4956 2016-07-01 Alan Modra <amodra@gmail.com>
4957
4958 PR rtl-optimization/71709
4959 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
4960 being set, not referenced.
4961
4962 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
4963
4964 PR tree-optimization/70729
4965 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
4966 of loop since it can be not valid after transformation.
4967
4968 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4969
4970 * config/arm/arm.c (thumb_reload_in_hi): Delete.
4971 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
4972
4973 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
4974
4975 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
4976 for NULL decl.
4977
4978 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
4979
4980 PR target/71677
4981 * config/rs6000/constraints.md (wY constraint): New constraint to
4982 match the requirements for the LXSD and STXSD instructions.
4983 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
4984 predicate to match the requirements for the LXSD and STXSD
4985 instructions.
4986 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
4987 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
4988 to make sure that the bottom 2 bits of offset are 0, the address
4989 form is offsettable, and no updating is done in the address mode.
4990 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
4991 (movdi_internal32): Likewise
4992 (movdi_internal64): Likewise.
4993
4994 2016-06-30 Jakub Jelinek <jakub@redhat.com>
4995
4996 PR tree-optimization/71707
4997 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
4998 strinfo even for ADDR_EXPR ptr.
4999
5000 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
5001
5002 * config/rs6000/altivec.md (darn_32): Change the condition to
5003 TARGET_P9_MISC instead of TARGET_MODULO.
5004 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
5005 condition expression.
5006 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
5007 condition expression.
5008 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
5009 (DFP_TEST): New code iterator.
5010 (dfptstsfi_<code>_mode>): New define_expand.
5011 (*dfp_sgnfcnc_<mode>): New define_insn.
5012 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
5013 definition next to BU_P9_MISC_1 definition and change the MASK
5014 value to RS6000_BTM_P9_MISC.
5015 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
5016 (BU_P9_64BIT_MISC_0): Likewise.
5017 (BU_P9_DFP_MISC_0): New macro definition.
5018 (BU_P9_DFP_MISC_1): New macro definition.
5019 (BU_P9_DFP_MISC_2): New macro definition.
5020 (BU_P9_DFP_OVERLOAD_1): New macro definition.
5021 (BU_P9_DFP_OVERLOAD_2): New macro definition.
5022 (BU_P9_DFP_OVERLOAD_3): New macro definition.
5023 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
5024 (TSTSFI_LT_TD): Likewise.
5025 (TSTSFI_EQ_DD): Likewise.
5026 (TSTSFI_EQ_TD): Likewise.
5027 (TSTSFI_GT_DD): Likewise.
5028 (TSTSFI_GT_TD): Likewise.
5029 (TSTSFI_OV_DD): Likewise.
5030 (TSTSFI_OV_TD): Likewise.
5031 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
5032 (TSTSFI_LT_DD): Likewise.
5033 (TSTSFI_LT_TD): Likewise.
5034 (TSTSFI_EQ): Likewise.
5035 (TSTSFI_EQ_DD): Likewise.
5036 (TSTSFI_EQ_TD): Likewise.
5037 (TSTSFI_GT): Likewise.
5038 (TSTSFI_GT_DD): Likewise.
5039 (TSTSFI_GT_TD): Likewise.
5040 (TSTSFI_OV): Likewise.
5041 (TSTSFI_OV_DD): Likewise.
5042 (TSTSFI_OV_TD): Likewise.
5043 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5044 overloaded test significance functions.
5045 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
5046 OPTION_MASK_P9_MISC into the representation of this mask.
5047 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
5048 of this mask.
5049 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
5050 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
5051 non-zero.
5052 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
5053 argument is a 6-bit unsigned literal value if the icode argument
5054 represents a DFP test significance built-in call.
5055 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
5056 flag used independently and in combination with the
5057 RS6000_BTM_64BIT flag.
5058 (rs6000_opt_masks): Add entry for power9-misc command-line option.
5059 (rs6000_builtin_mask_names): Add entry for power9-misc
5060 command-line option.
5061 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
5062 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
5063 RS6000_BTM_P9_MISC macros.
5064 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
5065 option and change the description of the -mpower9-vector option to
5066 enable only vector instructions, removing its erroneously claimed
5067 support for scalar instructions.
5068 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5069 the ISA 3.0 digital floating point test significance built-in
5070 functions.
5071
5072 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
5073
5074 * config/aarch64/aarch64.c (cortexa35_tunings):
5075 Enable AES fusion. Use cortexa57_branch_cost.
5076 (cortexa53_tunings): Use cortexa57_branch_cost.
5077 (cortexa72_tunings): Use cortexa57_branch_cost.
5078 Use AUTOPREFETCHER_WEAK.
5079 (cortexa73_tunings): Use cortexa57_branch_cost.
5080
5081 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5082 James Greenhalgh <james.greenhalgh@arm.com>
5083
5084 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
5085 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
5086 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
5087 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
5088 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
5089 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
5090 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
5091 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
5092 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
5093 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
5094 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
5095 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
5096 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
5097 New intrinsics.
5098
5099 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
5100 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5101
5102 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
5103 New define_insn.
5104 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5105
5106 2016-06-30 David Malcolm <dmalcolm@redhat.com>
5107
5108 PR driver/71651
5109 * gcc.c (driver::build_option_suggestions): Pass "option" to
5110 add_misspelling_candidates.
5111 * opts-common.c (add_misspelling_candidates): Add "option" param;
5112 use it to avoid adding negated forms for options marked with
5113 RejectNegative.
5114 * opts.h (add_misspelling_candidates): Add "option" param.
5115
5116 2016-06-30 Jakub Jelinek <jakub@redhat.com>
5117
5118 PR middle-end/71693
5119 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
5120 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
5121 first when permuting bitwise operation with rotate. Cast
5122 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
5123
5124 2016-06-29 David Malcolm <dmalcolm@redhat.com>
5125
5126 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
5127 for misspelled param names.
5128 * params.c: Include spellcheck.h.
5129 (find_param_fuzzy): New function.
5130 * params.h (find_param_fuzzy): New prototype.
5131 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
5132 * spellcheck.h (struct edit_distance_traits<const char *>):
5133 ...here.
5134
5135 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
5136
5137 * config/rs6000/predicates.md (const_0_to_7_operand): New
5138 predicate, recognize 0..7.
5139 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5140 support for doing extracts from V16QImode, V8HImode, V4SImode
5141 under ISA 3.0.
5142 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
5143 vector extract support.
5144 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
5145 for ISA 3.0 vector extract.
5146 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
5147 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
5148 extracts of a constant element number from small integer vectors
5149 on 64-bit ISA 3.0 systems.
5150 (vsx_extract_<mode>_di): Likewise.
5151 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
5152 say when we can do ISA 3.0 vector extracts.
5153 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
5154 registers, using the stxsiwx instruction.
5155
5156 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
5157
5158 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
5159 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
5160 qdf24xx_regmove_cost, qdf24xx_tunings): New.
5161 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
5162 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
5163 * config/arm/arm.c (arm_qdf24xx_tune): New.
5164
5165 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
5166
5167 * config/aarch64/aarch64.c (cortexa53_tunings):
5168 Increase loop alignment to 8. Set function alignment to 16.
5169 (cortexa35_tunings): Likewise.
5170 (cortexa57_tunings): Increase loop alignment to 8.
5171 (cortexa72_tunings): Likewise.
5172 (cortexa73_tunings): Likewise.
5173
5174 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
5175
5176 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
5177 for arm_fp16_ok and arm_fp16_hw.
5178 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
5179 arm_fp16_alternative.
5180
5181 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
5182
5183 PR tree-optimization/71655
5184 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
5185 types when swapping operands.
5186
5187 2016-06-29 Martin Liska <mliska@suse.cz>
5188
5189 PR middle-end/71585
5190 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
5191 * ipa-inline-transform.c (inline_call): Remove unnecessary call
5192 of build_optimization_node.
5193
5194 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
5195
5196 PR tree-optimization/70729
5197 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
5198 independent in loops having positive safelen value.
5199 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5200 it may be not valid after vectorization.
5201
5202 2016-06-29 Jakub Jelinek <jakub@redhat.com>
5203
5204 PR tree-optimization/71625
5205 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
5206 is sorted by ascending list->offset. If PTR is non-NULL and there is
5207 previous strinfo, call get_stridx_plus_constant.
5208 (get_stridx): Pass exp as second argument to get_addr_stridx.
5209 (addr_stridxptr): Add missing list = list->next, so that there can be
5210 more than one entries in the list. Bump limit from 16 to 32. Ensure
5211 the list is sorted by ascending list->offset.
5212 (get_stridx_plus_constant): Adjust so that it can be also called with
5213 ADDR_EXPR instead of SSA_NAME as PTR.
5214 (handle_char_store): Pass NULL_TREE as second argument to
5215 get_addr_stridx.
5216
5217 2016-06-29 Richard Biener <rguenther@suse.de>
5218
5219 PR rtl-optimization/68961
5220 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
5221
5222 2016-06-29 Richard Biener <rguenther@suse.de>
5223
5224 PR middle-end/71002
5225 * alias.c (component_uses_parent_alias_set_from): Handle
5226 type punning through union accesses by using the union alias set.
5227 * gimple.c (gimple_get_alias_set): Remove union type punning case.
5228
5229 2016-07-29 Richard Biener <rguenther@suse.de>
5230
5231 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
5232 precision not matching mode precision.
5233
5234 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
5235
5236 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
5237 pa_output_arg_descriptor.
5238 (call_val_symref_64bit_post_reload): Likewise.
5239 (call_val_powf_64bit_post_reload): Likewise.
5240 (sibcall_internal_symref_64bit): Likewise.
5241 (sibcall_value_internal_symref_64bit): Likewise.
5242
5243 2016-06-28 Jakub Jelinek <jakub@redhat.com>
5244
5245 PR middle-end/71626
5246 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
5247 a constant, force its SUBREG_REG into memory or register instead
5248 of whole op1.
5249
5250 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5251
5252 PR target/58655
5253 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
5254 * doc/invoke.texi (AVR Options): Document it.
5255
5256 2016-06-28 Walter Lee <walt@tilera.com>
5257
5258 * config/tilegx/linux.h: Do not include arch/icache.h
5259 (CLEAR_INSN_CACHE): Provide inlined definition directly.
5260 * config/tilepro/linux.h: Do not include arch/icache.h
5261 (CLEAR_INSN_CACHE): Provide inlined definition directly.
5262
5263 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
5264
5265 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
5266 for big-endian BIT_FIELD_REF.
5267
5268 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
5269
5270 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
5271 ('size' attribute): Add '128'.
5272 Include power9.md.
5273 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
5274 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
5275 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
5276 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
5277 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
5278 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
5279 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
5280 *trunc<mode>df2_odd): Set size attribute to '128'.
5281 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
5282 * config/rs6000/power6.md (power6-fp): Include dfp type.
5283 * config/rs6000/power7.md (power7-fp): Likewise.
5284 * config/rs6000/power8.md (power8-fp): Likewise.
5285 * config/rs6000/power9.md: New file.
5286 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
5287 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
5288 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
5289 htmsimple.
5290 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
5291 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
5292 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
5293 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
5294 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
5295 dfp_dscri_<mode>): Change type attribute to dfp.
5296 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
5297 attribute to vecsimple.
5298 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
5299 and prefetch streams.
5300 (rs6000_option_override_internal): Remove temporary code setting
5301 tuning to power8. Don't set rs6000_sched_groups for power9.
5302 (last_scheduled_insn): Change to rtx_insn *.
5303 (divide_cnt, vec_load_pendulum): New variables.
5304 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
5305 (rs6000_issue_rate): Set issue rate for Power9.
5306 (is_power9_pairable_vec_type): New.
5307 (power9_sched_reorder2): New.
5308 (rs6000_sched_reorder2): Call new function for Power9 specific
5309 reordering.
5310 (insn_must_be_first_in_group): Remove Power9.
5311 (insn_must_be_last_in_group): Likewise.
5312 (force_new_group): Likewise.
5313 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
5314 Initialize divide_cnt/vec_load_pendulum.
5315 (_rs6000_sched_context, rs6000_init_sched_context,
5316 rs6000_set_sched_context): Handle context save/restore of new
5317 variables.
5318
5319 2016-06-28 Richard Biener <rguenther@suse.de>
5320
5321 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
5322 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
5323 COMPONENT_REF operand.
5324 (nonoverlapping_component_refs_p): Likewise.
5325 * stor-layout.c (start_bitfield_representative): Mark
5326 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
5327
5328 2016-06-28 Jakub Jelinek <jakub@redhat.com>
5329
5330 * Makefile.in: Don't cat ../stage_current if it does not exist.
5331
5332 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
5333 last argument is a bit-field.
5334
5335 PR rtl-optimization/71673
5336 * internal-fn.c (expand_arith_overflow_result_store): Use
5337 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
5338 expand_simple_binop.
5339
5340 PR middle-end/66867
5341 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
5342 expand_ifn_atomic_compare_exchange): New functions.
5343 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
5344 * tree.h (build_call_expr_internal_loc): Rename to ...
5345 (build_call_expr_internal_loc_array): ... this. Fix up type of
5346 last argument.
5347 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
5348 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
5349 ATOMIC_COMPARE_EXCHANGE result.
5350 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
5351 * gimple-fold.h (optimize_atomic_compare_exchange_p,
5352 fold_builtin_atomic_compare_exchange): New prototypes.
5353 * gimple-fold.c (optimize_atomic_compare_exchange_p,
5354 fold_builtin_atomic_compare_exchange): New functions..
5355 * tree-ssa.c (execute_update_addresses_taken): If
5356 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
5357 of call when finding addressable vars, and if such var becomes
5358 non-addressable, call fold_builtin_atomic_compare_exchange.
5359
5360 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
5361
5362 PR target/71670
5363 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
5364 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
5365
5366 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
5367
5368 * config/rs6000/rs6000.md ('type' attribute): Add
5369 veclogical,veccmpfx,vecexts,vecmove insn types.
5370 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
5371 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
5372 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
5373 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
5374 *nabs<mode>2_hw): Change type to vecmove.
5375 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
5376 *boolcc<mode>3_internal, *eqv<mode>3_internal,
5377 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
5378 *ieee_128bit_vsx_abs<mode>2_internal,
5379 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
5380 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
5381 *ieee128_mtvsrd_32bit): Change type to veclogical.
5382 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
5383 *movdi_internal32, *movdi_internal64): Update insn types.
5384 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
5385 vsx_extract_<mode>): Change type to veclogical.
5386 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
5387 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
5388 *vsx_sign_extend_si_v2di): Change type to vecexts.
5389 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
5390 type to veclogical.
5391 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
5392 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
5393 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
5394 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
5395 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
5396 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
5397 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
5398 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
5399 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
5400 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
5401 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
5402 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
5403 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
5404 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
5405 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
5406 (ppc7450-vecsimple): Add veclogical, vecmove.
5407 (ppc7450-veccmp): Add veccmpfx.
5408 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
5409 vecmove.
5410 (ppc8540_vector_compare): Add veccmpfx.
5411 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
5412 * config/rs6000/cell.md (cell-fp): Add fpsimple.
5413 (cell-vecsimple): Add veclogical, vecmove.
5414 (cell-veccmp): Add veccmpfx.
5415 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
5416 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
5417 veccmpfx.
5418 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
5419 * config/rs6000/power4.md (power4-fp): Add fpsimple.
5420 (power4-vecsimple): Add veclogical, vecmove.
5421 (power4-veccmp): Add veccmpfx.
5422 * config/rs6000/power5.md (power5-fp): Add fpsimple.
5423 * config/rs6000/power6.md (power6-fp): Add fpsimple.
5424 (power6-vecsimple): Add veclogical, vecmove.
5425 (power6-veccmp): Add veccmpfx.
5426 * config/rs6000/power7.md (power7-fp): Add fpsimple.
5427 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
5428 * config/rs6000/power8.md (power8-fp): Add fpsimple.
5429 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
5430 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
5431 * config/rs6000/titan.md (titan_fp): Add fpsimple.
5432 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
5433 fpsimple.
5434 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
5435
5436 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
5437
5438 PR target/71656
5439 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
5440 OPTION_MASK_P9_DFORM_VECTOR.
5441 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
5442 disable -mpower9-dform-vector when using reload.
5443 (quad_address_p): Remove 'gpr_p' argument and all associated code.
5444 New 'strict' argument. Update all callers. Add strict addressing
5445 support.
5446 (rs6000_legitimate_offset_address_p): Remove call to
5447 virtual_stack_registers_memory_p.
5448 (rs6000_legitimize_reload_address): Add quad address support.
5449 (rs6000_legitimate_address_p): Move call to quad_address_p above
5450 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
5451 to account for new strict usage.
5452 (rs6000_output_move_128bit): Adjust quad_address_p args to account
5453 for new strict usage.
5454 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
5455
5456 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
5457
5458 PR target/70902
5459 PR target/71453
5460 PR target/71555
5461 PR target/71596
5462 PR target/71657
5463 * config/i386/i386.c (ix86_spill_class): Disable condition to
5464 always return NO_REGS.
5465
5466 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
5467
5468 * predict.c: Include gimple-pretty-print.h
5469 (predicted_by_loop_heuristics_p): Check also
5470 PRED_LOOP_EXIT_WITH_RECURSION
5471 (predict_loops): Find self recursive calls and use special purpose
5472 predictors for them; dump log about decisions.
5473 (pass_profile::execute): Dump info about #of iterations.
5474 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
5475 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
5476
5477 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
5478
5479 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
5480 output_asm_insn calls and shorten long lines. Output .CALL
5481 argument descriptor using pa_output_arg_descriptor. Add various
5482 inline $$dyncall and other optimizations.
5483 (pa_attr_length_indirect_call): Adjust ordering and lengths.
5484
5485 2016-06-25 Jakub Jelinek <jakub@redhat.com>
5486
5487 PR tree-optimization/71643
5488 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
5489 EH preds.
5490
5491 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
5492 leak a bitmap if dep_bb is NULL.
5493
5494 PR tree-optimization/71631
5495 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
5496 to rewrite_expr_tree even if negate_result, move new_lhs var
5497 declaration and initialization earlier, for powi_result set afterwards
5498 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
5499 if new_lhs != lhs, and don't shadow gsi var.
5500
5501 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
5502
5503 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
5504 Add in_loop parameter.
5505 (predict_loops): Add loop guard heuristics.
5506 * predict.def (PRED_LOOP_GUARD): New heuristics.
5507
5508 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
5509
5510 * predict.c: Include ipa-utils.h
5511 (tree_bb_level_prediction): Predict recursive calls.
5512 (tree_estimate_probability_bb): Skip inexpensive calls for call
5513 predictor.
5514 * predict.def (PRED_RECURSIVE_CALL): New.
5515
5516 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5517
5518 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
5519 (BU_FLOAT128_1): Likewise.
5520 (FABSQ): Likewise.
5521 (COPYSIGNQ): Likewise.
5522 (RS6000_BUILTIN_NANQ): Likewise.
5523 (RS6000_BUILTIN_NANSQ): Likewise.
5524 (RS6000_BUILTIN_INFQ): Likewise.
5525 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
5526 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
5527 (TARGET_FOLD_BUILTIN): New #define.
5528 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
5529 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
5530 (rs6000_fold_builtin): New target hook implementation, handling
5531 folding of 128-bit NaNs and infinities.
5532 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
5533 entries are filled in to avoid problems during bootstrap
5534 self-test; define builtins for 128-bit NaNs and infinities.
5535 (rs6000_opt_mask): Add entry for float128.
5536 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
5537 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
5538 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
5539 (const_str_type_node): New #define.
5540 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
5541 to a define_expand that dispatches to either copysign<mode>3_soft
5542 or copysign<mode>3_hard.
5543 (copysign<mode>3_hard): Rename from copysign<mode>3.
5544 (copysign<mode>3_soft): New define_insn.
5545 * doc/extend.texi: Document new builtins.
5546
5547 2016-06-24 Jakub Jelinek <jakub@redhat.com>
5548
5549 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
5550 PRIu64 instead of lu.
5551
5552 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
5553
5554 PR debug/71642
5555 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
5556 copy the type name.
5557
5558 2016-06-24 Jakub Jelinek <jakub@redhat.com>
5559
5560 PR tree-optimization/71647
5561 * omp-low.c (lower_rec_input_clauses): Convert
5562 omp_clause_aligned_alignment (c) to size_type_node for the
5563 last argument of __builtin_assume_aligned.
5564
5565 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
5566
5567 * configure.ac (calling ___tls_get_addr via GOT): New
5568 assembler/linker check.
5569 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
5570 assembler and linker supports calling ___tls_get_addr via GOT.
5571 Otherise, defined to 0.
5572 * config.in: Regenerated.
5573 * configure: Likewise.
5574 * config/i386/constraints.md (Yb): New constraint.
5575 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
5576 (REG_CLASS_NAMES): Likewise.
5577 (REG_CLASS_CONTENTS): Likewise.
5578 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
5579 the b constraint with the Yb constraint. Call ___tls_get_addr
5580 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
5581 is 1.
5582 (*tls_local_dynamic_base_32_gnu): Likewise.
5583 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
5584 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
5585 (*tls_local_dynamic_base_64_<mode>): Likewise.
5586
5587 2016-06-24 Martin Liska <mliska@suse.cz>
5588
5589 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
5590 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
5591 few functions.
5592 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
5593 argument to true if the expected number of iterations is
5594 loop-based.
5595
5596 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
5597
5598 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
5599 assemble for 32bit target.
5600 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
5601 and $ld_ix86_gld_32_opt to link for 32bit target.
5602 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
5603 * configure: Regenerate.
5604
5605 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5606
5607 * config/arm/arm.c (int_log2): Delete definition and prototype.
5608 (shift_op): Use exact_log2 instead of int_log2.
5609 (vfp3_const_double_for_fract_bits): Likewise.
5610
5611 2016-06-24 Jakub Jelinek <jakub@redhat.com>
5612
5613 * internal-fn.c (expand_arith_set_overflow): New function.
5614 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
5615 Use it.
5616 (expand_arith_overflow_result_store): Likewise. Handle precision
5617 smaller than mode precision.
5618 * tree-vrp.c (extract_range_basic): For imag part, handle
5619 properly signed 1-bit precision result.
5620 * doc/extend.texi (__builtin_add_overflow): Document that last
5621 argument can't be pointer to enumerated or boolean type.
5622 (__builtin_add_overflow_p): Document that last argument can't
5623 have enumerated or boolean type.
5624
5625 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
5626 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5627
5628 * config/rs6000/predicates.md (splat_input_operand): Rework.
5629 Don't allow constants, since the insns that use this predicate
5630 don't support constants. Constants are handled by other insns
5631 that are created via combine. During and after register
5632 allocation, only allow indexed or indirect addresses, and not
5633 general addresses. Only allow modes supported by the hardware.
5634 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
5635 comment. Move check for using VSPLTIS<x> to a common location,
5636 instead of doing it in two different places.
5637
5638 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
5639
5640 * config/i386/driver-i386.c (host_detect_local_cpu): Set
5641 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
5642 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
5643 signature_CENTAUR_ebx.
5644
5645 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
5646
5647 PR target/66232
5648 PR target/67400
5649 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
5650 (as_ix86_gas_32_opt): This.
5651 (ld_ix86_tls_ldm_opt): Renamed to ...
5652 (ld_ix86_gld_32_opt): This.
5653 (R_386_TLS_LDM reloc): Updated.
5654 (R_386_GOT32X reloc): New assembler/linker check.
5655 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
5656 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
5657 defined to 0.
5658 * config.in: Regenerated.
5659 * configure: Likewise.
5660 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
5661 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
5662 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
5663 if ix86_force_load_from_GOT_p returns true.
5664 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
5665 ix86_force_load_from_GOT_p returns true.
5666 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
5667 the external function address via the GOT slot.
5668 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
5669 HAVE_AS_IX86_GOT32X before returning false.
5670 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
5671 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
5672
5673 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
5674
5675 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
5676
5677 2016-06-23 Andi Kleen <ak@linux.intel.com>
5678
5679 * Makefile.in: Regenerate.
5680 * doc/install.texi: Document autoprofiledbootstrap.
5681
5682 2016-06-23 Andi Kleen <ak@linux.intel.com>
5683
5684 * config/i386/gcc-auto-profile: New file.
5685
5686 2016-06-23 Martin Liska <mliska@suse.cz>
5687
5688 PR middle-end/71619
5689 * predict.c (predict_loops): Revert the hunk that was removed
5690 in r237103.
5691
5692 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
5693
5694 * config.gcc: Add support for arm*-*-phoenix* targets.
5695 * config/arm/t-phoenix: New.
5696 * config/phoenix.h: New.
5697
5698 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
5699 H.J. Lu <hongjiu.lu@intel.com>
5700
5701 PR target/67400
5702 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
5703 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
5704 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
5705 ix86_force_load_from_GOT_p returns true.
5706 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
5707 ix86_force_load_from_GOT_p returns true.
5708 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
5709 ix86_force_load_from_GOT_p returns true.
5710 (ix86_expand_move): Load the external function address via the
5711 GOT slot if ix86_force_load_from_GOT_p returns true.
5712 * config/i386/predicates.md (x86_64_immediate_operand): Return
5713 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
5714 (x86_64_zext_immediate_operand): Ditto.
5715
5716 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
5717
5718 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
5719
5720 2016-06-22 David Malcolm <dmalcolm@redhat.com>
5721
5722 PR c/70339
5723 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
5724 * diagnostic.c (pedwarn_at_rich_loc): New function.
5725 * spellcheck.h (best_match::best_match): Add a
5726 "best_distance_so_far" optional parameter.
5727 (best_match::set_best_so_far): New method.
5728 (best_match::get_best_distance): New accessor.
5729 (best_match::get_best_candidate_length): New accessor.
5730
5731 2016-06-22 Nick Clifton <nickc@redhat.com>
5732
5733 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
5734 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
5735 modes are accepted as well.
5736 (ucompare_loc_descriptor): Likewise.
5737 (minmax_loc_descriptor): Likewise.
5738 (clz_loc_descriptor): Likewise.
5739 (popcount_loc_descriptor): Likewise.
5740 (bswap_loc_descriptor): Likewise.
5741 (rotate_loc_descriptor): Likewise.
5742 (mem_loc_descriptor): Likewise.
5743 (loc_descriptor): Likewise.
5744
5745 2016-06-22 David Malcolm <dmalcolm@redhat.com>
5746
5747 * common.opt (fdiagnostics-parseable-fixits): New option.
5748 * diagnostic.c: Include "selftest.h".
5749 (print_escaped_string): New function.
5750 (print_parseable_fixits): New function.
5751 (diagnostic_report_diagnostic): Call print_parseable_fixits.
5752 (selftest::assert_print_escaped_string): New function.
5753 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
5754 (selftest::test_print_escaped_string): New function.
5755 (selftest::test_print_parseable_fixits_none): New function.
5756 (selftest::test_print_parseable_fixits_insert): New function.
5757 (selftest::test_print_parseable_fixits_remove): New function.
5758 (selftest::test_print_parseable_fixits_replace): New function.
5759 (selftest::diagnostic_c_tests): New function.
5760 * diagnostic.h (struct diagnostic_context): Add field
5761 "parseable_fixits_p".
5762 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
5763 -fdiagnostics-parseable-fixits.
5764 (-fdiagnostics-parseable-fixits): New option.
5765 * opts.c (common_handle_option): Handle
5766 -fdiagnostics-parseable-fixits.
5767 * selftest-run-tests.c (selftest::run_tests): Call
5768 selftest::diagnostic_c_tests.
5769 * selftest.h (selftest::diagnostic_c_tests): New prototype.
5770
5771 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
5772
5773 PR tree-optimization/71488
5774 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
5775 comparison of boolean vectors.
5776 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
5777 of boolean vectors using bitwise operations.
5778
5779 2016-06-22 Andreas Schwab <schwab@suse.de>
5780
5781 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
5782 Remove declaration.
5783
5784 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
5785
5786 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
5787
5788 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
5789
5790 * config/i386/i386.c (print_reg): Emit an error message on attempt to
5791 print FLAGS_REG.
5792
5793 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5794
5795 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
5796 * config/arm/arm-cores.def (cortex-a73): New entry.
5797 (cortex-a73.cortex-a35): Likewise.
5798 (cortex-a73.cortex-a53): Likewise.
5799 * config/arm/arm-tables.opt: Regenerate.
5800 * config/arm/arm-tune.md: Likewise.
5801 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
5802 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
5803 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
5804 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
5805 * doc/invoke.texi (ARM Options): Document cortex-a73,
5806 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
5807
5808 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5809
5810 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
5811 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
5812 (cortex-a73.cortex-a35): Likewise.
5813 (cortex-a73.cortex-a53): Likewise.
5814 * config/aarch64/aarch64-tune.md: Regenerate.
5815 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
5816 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
5817 -mcpu and -mtune.
5818
5819 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5820
5821 * configure.ac (gcc_cv_as_compress_debug): Remove
5822 --compress-debug-sections as extra as switch.
5823 Handle gas --compress-debug-sections=type.
5824 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
5825 Handle gld --compress-debug-sections=type.
5826 * configure: Regenerate.
5827
5828 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
5829
5830 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
5831
5832 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
5833
5834 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
5835 (do_rewrite): likewise.
5836
5837 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5838
5839 * common/config/mep/mep-common.c: Remove.
5840 * config.gcc: Remove mep-* support.
5841 * config/mep/constraints.md: Remove.
5842 * config/mep/default.h: Remove.
5843 * config/mep/intrinsics.h: Remove.
5844 * config/mep/intrinsics.md: Remove.
5845 * config/mep/ivc2-template.h: Remove.
5846 * config/mep/mep-c5.cpu: Remove.
5847 * config/mep/mep-core.cpu: Remove.
5848 * config/mep/mep-default.cpu: Remove.
5849 * config/mep/mep-ext-cop.cpu: Remove.
5850 * config/mep/mep-intrin.h: Remove.
5851 * config/mep/mep-ivc2.cpu: Remove.
5852 * config/mep/mep-pragma.c: Remove.
5853 * config/mep/mep-protos.h: Remove.
5854 * config/mep/mep.c: Remove.
5855 * config/mep/mep.cpu: Remove.
5856 * config/mep/mep.h: Remove.
5857 * config/mep/mep.md: Remove.
5858 * config/mep/mep.opt: Remove.
5859 * config/mep/predicates.md: Remove.
5860 * config/mep/t-mep: Remove.
5861 * doc/install.texi: Remove mep-* documentation.
5862 * doc/md.texi: Likewise.
5863
5864 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5865
5866 * config.gcc: Remove support for avr-rtems.
5867 * config/avr/gen-avr-mmcu-specs.c: Likewise.
5868 * config/avr/rtems.h: Remove.
5869 * config/avr/t-rtems: Remove.
5870
5871 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5872
5873 * config.gcc: Remove m32r-rtems support.
5874 * config/m32r/rtems.h: Remove.
5875
5876 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5877
5878 * config.gcc: Remove h8300-rtems support.
5879 * config/h8300/rtems.h: Remove.
5880 * config/h8300/t-rtems: Remove.
5881
5882 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5883
5884 * config.gcc: Remove support for knetbsd.
5885 * configure.ac: Likewise.
5886 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
5887 * config/knetbsd-gnu.h: Remove.
5888 * configure: Regenerate.
5889
5890 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5891
5892 * config.gcc: Remove support for openbsd 2 and 3.
5893 * config/openbsd-oldgas.h: Remove.
5894
5895 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5896
5897 * config.gcc: Remove interix support.
5898 * config/i386/i386-interix.h: Remove.
5899 * config/i386/interix.opt: Remove.
5900 * config/i386/t-interix: Remove.
5901 * configure: Regenerate.
5902 * configure.ac: Remove interix support.
5903 * doc/install.texi: Remove interix documentation.
5904
5905 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
5906
5907 * config/rs6000/rs6000.h: Add conditional preprocessing directives
5908 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
5909 not defined.
5910
5911 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
5912
5913 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
5914 they are both PLACEHOLDER_EXPRs.
5915
5916 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
5917
5918 * stor-layout.c (layout_type): Move setting complex MODE to
5919 layout_type, instead of setting it ahead of time by the caller.
5920 * tree.c (build_complex_type): Likewise.
5921
5922 2016-06-21 Martin Liska <mliska@suse.cz>
5923
5924 * predict.c (force_edge_cold): Replace imposisble with
5925 impossible.
5926
5927 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
5928
5929 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
5930 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
5931
5932 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
5933
5934 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
5935
5936 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
5937 Ilya Enkovich <ilya.enkovich@intel.com>
5938
5939 PR target/71549
5940 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
5941 New member function to convert V1TImode register to SUBREG
5942 TImode in debug insn.
5943 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
5944 after changing register mode to V1TImode.
5945
5946 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
5947
5948 * config/aarch64/aarch64-cores.def (vulcan): New core.
5949 * config/aarch64/aarch64-tune.md: Regenerate.
5950 * doc/invoke.texi: Document vulcan as an available option.
5951
5952 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
5953
5954 * cse.c (canon_asm_operands): New function extracted from...
5955 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
5956 either standalone or member of a PARALLEL.
5957
5958 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
5959
5960 PR target/30417
5961 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
5962 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
5963 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
5964
5965 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
5966
5967 PR target/71103
5968 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
5969 constant addresses if can_create_pseudo_p.
5970
5971 2016-06-21 Jakub Jelinek <jakub@redhat.com>
5972
5973 PR tree-optimization/71588
5974 * tree-ssa-strlen.c (valid_builtin_call): New function.
5975 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
5976 it.
5977
5978 2016-06-20 Jakub Jelinek <jakub@redhat.com>
5979
5980 PR middle-end/71581
5981 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
5982 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
5983 for conversion of scalar user var to complex type and use the
5984 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
5985 punt.
5986
5987 PR rtl-optimization/71591
5988 * toplev.c (toplev::run_self_tests): If no_backend, complain and
5989 don't run any tests.
5990
5991 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
5992
5993 PR target/71571
5994 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
5995 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
5996 space for PIC with non-v32 and the common non-PIC "jump".
5997
5998 2016-06-20 Jakub Jelinek <jakub@redhat.com>
5999
6000 PR target/71559
6001 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
6002 returned values and add UN*/LTGT/*ORDERED cases with values matching
6003 D operand modifier on vcmp for AVX.
6004
6005 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6006
6007 * config/aarch64/aarch64.opt
6008 (mpc-relative-literal-loads): Rename internal option name.
6009 * config/aarch64/aarch64.c
6010 (aarch64_nopcrelative_literal_loads): Rename to
6011 aarch64_pcrelative_literal_loads.
6012 (aarch64_expand_mov_immediate): Likewise.
6013 (aarch64_secondary_reload): Likewise.
6014 (aarch64_can_use_per_function_literal_pools_p): Likewise.
6015 (aarch64_override_options_after_change_1): Rename and simplify logic.
6016 (aarch64_classify_symbol): Merge large model checks into switch,
6017 remove pc-relative load check.
6018
6019 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6020
6021 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
6022 costs relative to the cost of a register move.
6023
6024 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6025
6026 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
6027 (vcvt_n_f64_u64): Likewise.
6028 (vcvt_n_s64_f64): Likewise.
6029 (vcvt_n_u64_f64): Likewise.
6030 (vcvt_f64_s64): Likewise.
6031 (vrecpe_f64): Likewise.
6032 (vcvt_f64_u64): Likewise.
6033 (vrecps_f64): Likewise.
6034
6035 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6036
6037 * config/aarch64/aarch64.md
6038 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
6039 iterators.
6040 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
6041 attributes.
6042 * config/aarch64/aarch64-builtins.c
6043 (aarch64_types_binop_uss_qualifiers): Delete.
6044 (TYPES_BINOP_USS): Likewise.
6045 (aarch64_types_binop_sus_qualifiers): Likewise.
6046 (TYPES_BINOP_SUS): Likewise.
6047 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
6048 (TYPES_FCVTIMM_SUS): Likewise.
6049 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
6050 rather than BINOP.
6051 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
6052 (fcvtzs): Use SHIFTIMM rather than BINOP.
6053 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
6054
6055 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6056
6057 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
6058 costs relative to the cost of a register move.
6059
6060 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6061
6062 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
6063 Allow scalar/single vector modes to be tieable.
6064
6065 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6066
6067 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
6068
6069 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6070
6071 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
6072 "alignement".
6073 * tree.h (TYPE_ALIGN): Likewise.
6074
6075 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6076
6077 PR target/71103
6078 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
6079
6080 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6081
6082 * config/avr/avr.c (avr_print_operand): Fix "format not a string
6083 literal" build warnings.
6084 (avr_print_operand_address): Dito.
6085
6086 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
6087
6088 PR target/71375
6089 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
6090 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
6091
6092 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
6093
6094 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
6095
6096 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
6097
6098 PR bootstrap/71435
6099 * reload1.c (reload): Pass 0 to finish_spills when called because
6100 update_eliminables_and_spill returns true and remove did_spill.
6101 (finish_spills): Adjust comment and document GLOBAL parameter.
6102
6103 2016-06-17 DJ Delorie <dj@redhat.com>
6104
6105 PR target/71338
6106 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
6107 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
6108 (umulqihi3_virt): Likewise.
6109 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
6110 (umulqihi3_real): Likewise.
6111
6112 2016-06-17 Martin Liska <mliska@suse.cz>
6113
6114 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
6115
6116 2016-06-17 Martin Liska <mliska@suse.cz>
6117
6118 * predict.def: PRED_LOOP_EXIT from 92 to 85.
6119
6120 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
6121
6122 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
6123 __FAST_MATH__.
6124 (vaddq_f32): Likewise.
6125 (vmul_f32): Likewise.
6126 (vmulq_f32): Likewise.
6127 (vsub_f32): Likewise.
6128 (vsubq_f32): Likewise.
6129
6130 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6131
6132 PR tree-optimization/71347
6133 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
6134 cost for all uses in group.
6135
6136 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6137
6138 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
6139 insert gimple seq if it's not empty.
6140
6141 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6142
6143 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
6144 member OFFSET.
6145 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
6146 rather than OFFSET.
6147 (comp_dr_with_seg_len_pair): Ditto.
6148 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
6149 struct dr_with_seg_len_pair against DR_OFFSET.
6150 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
6151 DR_OFFSET directly.
6152
6153 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
6154
6155 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
6156
6157 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
6158
6159 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
6160 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
6161 (pa_output_millicode_call): Likewise.
6162 (pa_output_call): Likewise.
6163 (pa_output_indirect_call): Likewise.
6164 (pa_asm_output_mi_thunk): Likewise.
6165
6166 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6167
6168 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
6169
6170 2016-06-16 Martin Liska <mliska@suse.cz>
6171
6172 * predict.c (combine_predictions_for_insn): When we find a first
6173 match predictor, we should consider just predictors with
6174 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
6175 DS theory predictor.
6176 (combine_predictions_for_bb): Likewise.
6177
6178 2016-06-16 Jakub Jelinek <jakub@redhat.com>
6179
6180 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
6181 with base of reference to struct.
6182
6183 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
6184
6185 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
6186
6187 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6188
6189 PR target/71151
6190 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
6191 progmem_swtable_section.
6192 (progmem_swtable_section): Remove.
6193 (avr_asm_function_rodata_section): Remove.
6194 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
6195 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
6196
6197 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
6198
6199 * config/i386/driver-i386.c (host_detect_local_cpu): Set
6200 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
6201 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
6202 signature_CENTAUR_ebx.
6203 * config/i386/i386.c (ix86_option_override_internal): Add
6204 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
6205 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
6206 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
6207
6208 2016-06-16 Martin Liska <mliska@suse.cz>
6209
6210 * predict.def: Add fortran loop preheader predictor.
6211 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
6212 fold IFN_BUILTIN_EXPECT with a known constant argument.
6213
6214 2016-06-16 Martin Liska <mliska@suse.cz>
6215
6216 * predict.def: Add 'Fortran' to display text of all
6217 PRED_FORTRAN_* predictors.
6218
6219 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
6220
6221 PR target/71242
6222 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
6223 [IA64_BUILTIN_NANSQ]: Ditto.
6224 (ia64_fold_builtin): New function.
6225 (TARGET_FOLD_BUILTIN): New define.
6226 (ia64_init_builtins) Declare const_string_type node.
6227 Add __builtin_nanq and __builtin_nansq builtin functions.
6228 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
6229
6230 2016-06-16 Nick Clifton <nickc@redhat.com>
6231
6232 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
6233 MSP430_HWMULT_ prefix to enum values.
6234 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
6235 * config/msp430/msp430.c: Update use of enum values.
6236 * config/msp430/msp430.md: Likewise.
6237 * config/msp430/msp430.opt: Likewise.
6238
6239 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
6240
6241 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
6242 of comparsions in the last iteration.
6243
6244 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
6245 Joern Rennecke <joern.rennecke@embecosm.com>
6246
6247 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
6248 addresses.
6249 (arc_needs_pcl_p): Add GOTOFFPC.
6250 (arc_legitimate_pic_addr_p): Likewise.
6251 (arc_output_pic_addr_const): Likewise.
6252 (arc_legitimize_pic_address): Generate a pc-relative address using
6253 GOTOFFPC.
6254 (arc_output_libcall): Use @pcl syntax.
6255 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
6256 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
6257 (*movsi_insn): Use @pcl syntax.
6258 (doloop_begin_i): Likewise.
6259
6260 2016-06-16 Martin Liska <mliska@suse.cz>
6261
6262 * predict.def: Define a new predictor.
6263
6264 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
6265
6266 * config/arc/arc.opt (mtp-regno): Update text.
6267
6268 2016-06-16 Renlin Li <renlin.li@arm.com>
6269
6270 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
6271
6272 2016-06-16 Jakub Jelinek <jakub@redhat.com>
6273
6274 PR target/71554
6275 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
6276 (setcc + and peephole2): Likewise.
6277
6278 PR rtl-optimization/71532
6279 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
6280 memory slots.
6281
6282 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
6283
6284 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
6285 DImode constants with XXSPLTIB in vector registers.
6286 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
6287 vsx_extract_<mode>_internal{1,2} into a single insn that handles
6288 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
6289 extraction of the element at the top of the register as a scalar
6290 value.
6291 (vsx_extract_<mode>_internal1): Likewise.
6292 (vsx_extract_<mode>_internal2): Likewise.
6293 * config/rs6000/constraints.md (wi constraint): Remove a comment
6294 about DImode not being allowed in Altivec registers.
6295 (wB constraint): New constraint for constants that can be
6296 generated in Altivec registers with VSPLTISW/VUPKHSW.
6297 * config/rs6000/predicates.md (xxspltib_constant_split): Update
6298 comments.
6299 (xxspltib_constant_nosplit): Likewise.
6300 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
6301 support for -mupper-regs-di to enable DImode to go into Altivec
6302 registers.
6303 (POWERPC_MASKS): Likewise.
6304 (power7 cpu): Likewise.
6305 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
6306 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
6307 for DImode being allowed in Altivec registers. Update wi/wj
6308 constraints. Set scalar_in_vmx_p flag.
6309 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
6310 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
6311 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
6312 (rs6000_opt_masks): Add -mupper-regs-di.
6313 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
6314 direct move to use wi and not wj.
6315 (lfiwzx): Likewise.
6316 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
6317 alternative.
6318 (floatunssi<mode>2_lfiwzx_mem): Likewise.
6319 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
6320 any VSX register, instead of just Altivec registers, to allow
6321 either operand to be an Altivec register or both.
6322 (fixuns_trunc<mode>di2_fctiduz): Likewise.
6323 (movdi_internal32): Add support for -mupper-regs-di. Add support
6324 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
6325 the alternatives and attributes to be lined up to be easier to
6326 read.
6327 (movdi_internal64): Likewise.
6328 (64-bit DImode splitters): Change predicates to only split loading
6329 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
6330 load constants in ISA 3.0 or ISA 2.07 respectively.
6331 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6332 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
6333 mention -mcpu=power9 sets these options.
6334 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
6335 wB constraint.
6336
6337 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6338
6339 PR target/67353
6340 * config/avr/avr.c (avr_set_current_function): Warn misspelled
6341 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
6342 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
6343 by default to warn misspelled interrupt/ signal handler.
6344 * doc/invoke.texi (AVR Options): Document it. Update description
6345 for -nodevicelib option.
6346
6347 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6348
6349 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
6350 up parentheses. Use GET_MODE_UNIT_BITSIZE.
6351 (aarch64_<sur>shll2_n<mode>): Likewise.
6352
6353 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
6354
6355 PR middle-end/71529
6356 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
6357 DECL_CONTEXT for copied arguments.
6358
6359 2016-06-15 Alan Hayward <alan.hayward@arm.com>
6360
6361 PR tree-optimization/71483
6362 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
6363 for slp
6364
6365 2016-06-15 Martin Liska <mliska@suse.cz>
6366
6367 * predict.c (tree_predict_by_opcode): Call predict_edge_def
6368 instead of predict_edge w/o a probability.
6369
6370 2016-06-15 Alan Hayward <alan.hayward@arm.com>
6371
6372 PR tree-optimization/71439
6373 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
6374 live PHIs.
6375
6376 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6377
6378 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
6379 register subregs in SET_SRC.
6380
6381 2016-06-15 Richard Biener <rguenther@suse.de>
6382
6383 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
6384 store restrictions.
6385
6386 2016-06-15 Richard Biener <rguenther@suse.de>
6387
6388 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
6389 not consider dependences between accesses that belong to the
6390 same group.
6391 (vect_analyze_data_ref_dependences): Do not analyze read-read
6392 or self-dependences.
6393
6394 2016-06-14 David Malcolm <dmalcolm@redhat.com>
6395
6396 * spellcheck-tree.c: Include spellcheck-tree.h rather than
6397 spellcheck.h.
6398 (find_closest_identifier): Reimplement in terms of
6399 best_match<tree,tree>.
6400 * spellcheck-tree.h: New file.
6401 * spellcheck.c (struct edit_distance_traits<const char *>): New
6402 struct.
6403 (find_closest_string): Reimplement in terms of
6404 best_match<const char *, const char *>.
6405 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
6406 overload to spellcheck-tree.h.
6407 (find_closest_identifier): Likewise.
6408 (struct edit_distance_traits<T>): New template.
6409 (class best_match): New class.
6410
6411 2016-06-14 David Malcolm <dmalcolm@redhat.com>
6412
6413 * selftest-run-tests.c (selftest::run_tests): Call
6414 selftest::spellcheck_tree_c_tests.
6415 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
6416 * spellcheck-tree.c: Include selftest.h and stringpool.h.
6417 (selftest::test_find_closest_identifier): New function.
6418 (selftest::spellcheck_tree_c_tests): New function.
6419 * spellcheck.c (selftest::test_find_closest_string): Verify that
6420 the order of the vec does not affect the results for this case.
6421 (selftest::test_data): New array.
6422 (selftest::test_metric_conditions): New function.
6423 (selftest::spellcheck_c_tests): Add a test of case-comparison.
6424 Call selftest::test_metric_conditions.
6425
6426 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6427
6428 * config/rs6000/rs6000-builtin.def (commentary): Typo.
6429 (BU_P9_MISC_1): Likewise.
6430 (BU_P9_64BIT_MISC_0): Likewise.
6431 (BU_P9_MISC_0): Likewise.
6432
6433 2016-06-14 David Malcolm <dmalcolm@redhat.com>
6434
6435 * gcc-rich-location.c
6436 (gcc_rich_location::add_fixit_misspelled_id): New method.
6437 * gcc-rich-location.h
6438 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
6439
6440 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
6441
6442 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
6443 FreeBSD 11 and above.
6444
6445 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
6446
6447 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
6448
6449 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6450
6451 * expmed.h: Close parenthesis in "at your option" in copyright
6452 boilerplate.
6453 * lower-subreg.h: Likewise.
6454
6455 2016-06-14 Richard Biener <rguenther@suse.de>
6456
6457 PR middle-end/71526
6458 * genmatch.c (expr::gen_transform): Use in_type for comparisons
6459 if available.
6460
6461 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6462
6463 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
6464 New function.
6465 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
6466 mask+shift version.
6467 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
6468 New prototype.
6469 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
6470 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
6471
6472 2016-06-14 Richard Biener <rguenther@suse.de>
6473
6474 PR tree-optimization/71522
6475 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
6476 copying into float copying.
6477
6478 2016-06-14 Jakub Jelinek <jakub@redhat.com>
6479
6480 PR tree-optimization/71520
6481 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
6482 (replace_block_by): Move user labels from bb1 to bb2.
6483
6484 2016-06-14 Richard Biener <rguenther@suse.de>
6485
6486 PR middle-end/71310
6487 PR bootstrap/71510
6488 * expr.h (get_bit_range): Declare.
6489 * expr.c (get_bit_range): Export.
6490 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
6491 word_mode again to constrain the bitfield access.
6492
6493 2016-06-14 Richard Biener <rguenther@suse.de>
6494
6495 PR tree-optimization/71521
6496 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
6497 division int_const_binop against zero divisor.
6498
6499 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
6500
6501 * config/i386/i386.md (signbittf2): New expander.
6502 * config/i386/sse.md (ptesttf2): New insn pattern.
6503
6504 2016-06-13 David Malcolm <dmalcolm@redhat.com>
6505
6506 PR bootstrap/71481
6507 * input.c (selftest::test_reading_source_line): Avoid reading from
6508 __FILE__ by creating a tempfile with known content and reading
6509 from that instead.
6510
6511 2016-06-13 David Malcolm <dmalcolm@redhat.com>
6512
6513 * pretty-print.c (assert_pp_format_colored): Skip the test if
6514 GCC_COLORS is set.
6515 (test_pp_format): Remove comment about GCC_COLORS.
6516
6517 2016-06-13 David Malcolm <dmalcolm@redhat.com>
6518
6519 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
6520 * pretty-print.c (assert_pp_format_va): Add location param and use
6521 it with ASSERT_STREQ_AT.
6522 (assert_pp_format): Add location param and pass it to
6523 assert_pp_format_va.
6524 (assert_pp_format_colored): Likewise.
6525 (ASSERT_PP_FORMAT_1): New.
6526 (ASSERT_PP_FORMAT_2): New.
6527 (ASSERT_PP_FORMAT_3): New.
6528 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
6529 explicitly, or implicitly via the above macros.
6530 * selftest.c (selftest::pass): Use a selftest::location rather
6531 than file and line.
6532 (selftest::fail): Likewise. Print the function name.
6533 (selftest::fail_formatted): Likewise.
6534 (selftest::assert_streq): Use a selftest::location rather than
6535 file and line.
6536 * selftest.h (selftest::location): New struct.
6537 (SELFTEST_LOCATION): New macro.
6538 (selftest::pass): Accept a const location & rather than file
6539 and line.
6540 (selftest::fail): Likewise.
6541 (selftest::fail_formatted): Likewise.
6542 (selftest::assert_streq): Likewise.
6543 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
6544 (ASSERT_FALSE): Likewise.
6545 (ASSERT_EQ): Likewise.
6546 (ASSERT_NE): Likewise.
6547 (ASSERT_STREQ): Likewise.
6548 (ASSERT_PRED1): Likewise.
6549 (ASSERT_STREQ_AT): New macro.
6550
6551 2016-06-13 David Malcolm <dmalcolm@redhat.com>
6552
6553 * selftest.c (selftest::fail_formatted): New function.
6554 (selftest::assert_streq): New function.
6555 * selftest.h (selftests::fail_formatted): New decl.
6556 (selftest::assert_streq): New decl.
6557 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
6558
6559 2016-06-13 Jeff Law <law@redhat.com>
6560
6561 PR tree-optimization/71403
6562 * tree-ssa-threadbackward.c
6563 (convert_and_register_jump_thread_path): No longer accept reference
6564 to path. Do not pop items off the path anymore.
6565 (fsm_find_control_statement_thread_paths): Do not allow threading
6566 to a deeper loop nest. Pop the last item off the path here rather
6567 than in convert_and_register_jump_thread_path.
6568
6569 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
6570 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
6571
6572 [AArch64] Emit division using the Newton series
6573
6574 * config/aarch64/aarch64-protos.h
6575 (cpu_approx_modes): Add new member "division".
6576 (aarch64_emit_approx_div): Declare new function.
6577 * config/aarch64/aarch64.c
6578 (generic_approx_modes): New member "division".
6579 (exynosm1_approx_modes): Likewise.
6580 (xgene1_approx_modes): Likewise.
6581 (aarch64_emit_approx_div): Define new function.
6582 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
6583 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
6584 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
6585 * doc/invoke.texi (-mlow-precision-div): Describe new option.
6586
6587 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
6588 Wilco Dijkstra <wilco.dijkstra@arm.com>
6589
6590 [AArch64] Emit square root using the Newton series
6591
6592 * config/aarch64/aarch64-protos.h
6593 (aarch64_emit_approx_rsqrt): Replace with new function
6594 "aarch64_emit_approx_sqrt".
6595 (cpu_approx_modes): New member "sqrt".
6596 * config/aarch64/aarch64.c
6597 (generic_approx_modes): New member "sqrt".
6598 (exynosm1_approx_modes): Likewise.
6599 (xgene1_approx_modes): Likewise.
6600 (aarch64_emit_approx_rsqrt): Replace with new function
6601 "aarch64_emit_approx_sqrt".
6602 (aarch64_override_options_after_change_1): Handle new option.
6603 * config/aarch64/aarch64-simd.md
6604 (rsqrt<mode>2): Use new function instead.
6605 (sqrt<mode>2): New expansion and insn definitions.
6606 * config/aarch64/aarch64.md: Likewise.
6607 * config/aarch64/aarch64.opt
6608 (mlow-precision-sqrt): Add new option description.
6609 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
6610
6611 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
6612
6613 [AArch64] Add more choices for the reciprocal square root approximation
6614
6615 Allow a target to prefer such operation depending on the operation mode.
6616
6617 * config/aarch64/aarch64-protos.h
6618 (AARCH64_APPROX_MODE): New macro.
6619 (AARCH64_APPROX_{NONE,ALL}): Likewise.
6620 (cpu_approx_modes): New structure.
6621 (tune_params): New member "approx_modes".
6622 * config/aarch64/aarch64-tuning-flags.def
6623 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
6624 * config/aarch64/aarch64.c
6625 (generic_approx_modes): New core "cpu_approx_modes" structure.
6626 (exynosm1_approx_modes): Likewise.
6627 (xgene1_approx_modes): Likewise.
6628 (generic_tunings): New member "approx_modes".
6629 (cortexa35_tunings): Likewise.
6630 (cortexa53_tunings): Likewise.
6631 (cortexa57_tunings): Likewise.
6632 (cortexa72_tunings): Likewise.
6633 (exynosm1_tunings): Likewise.
6634 (thunderx_tunings): Likewise.
6635 (xgene1_tunings): Likewise.
6636 (use_rsqrt_p): New argument for the mode and use new member from
6637 "tune_params".
6638 (aarch64_builtin_reciprocal): Devise mode from builtin.
6639 (aarch64_optab_supported_p): New argument for the mode.
6640 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
6641
6642 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
6643
6644 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
6645 RS6000_BTM_MODULO flag into the set of flags that are considered
6646 to be part of the common configuration.
6647
6648 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
6649
6650 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
6651 difference unsigned.
6652 (vec_absdb): New macro for vector absolute difference unsigned
6653 byte.
6654 (vec_absdh): New macro for vector absolute difference unsigned
6655 half-word.
6656 (vec_absdw): New macro for vector absolute difference unsigned word.
6657 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
6658 (vadu<mode>3): New insn.
6659 (*p9_vadu<mode>3): New insn.
6660 * config/rs6000/rs6000-builtin.def (vadub): New built-in
6661 definition.
6662 (vaduh): New built-in definition.
6663 (vaduw): New built-in definition.
6664 (vadu): New overloaded built-in definition.
6665 (vadub): New overloaded built-in definition.
6666 (vaduh): New overloaded built-in definition.
6667 (vaduw): New overloaded built-in definition.
6668 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6669 overloaded vector absolute difference unsigned functions.
6670 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
6671 the ISA 3.0 vector absolute difference unsigned built-in functions.
6672
6673 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
6674
6675 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
6676 update shared_lookup_references only once after changing operands.
6677
6678 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
6679
6680 PR middle-end/71373
6681 * tree-nested.c (convert_nonlocal_omp_clauses)
6682 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
6683
6684 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
6685 * tree.def (CASE_LABEL_EXPR): Likewise.
6686
6687 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
6688
6689 PR bootstrap/71481
6690 * input.c (test_builtins): Fix an assertion.
6691
6692 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
6693
6694 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
6695 (paritysi2): Ditto.
6696 (isinfxf2): Ditto.
6697 (isinf<mode>2): Ditto.
6698
6699 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
6700
6701 * ggc-tests.c (test_finalization): Only test need_finalization_p
6702 for GCC_VERSION >= 4003.
6703
6704 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6705
6706 * config/s390/vecintrin.h: Fix file description in comment.
6707
6708 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6709
6710 * config/s390/s390-builtin-types.def: Change builtin type naming
6711 scheme to match builtin-types.def.
6712
6713 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
6714
6715 * fold-const.c (optimize_minmax_comparison): Remove.
6716 (fold_comparison): Remove call to the above.
6717 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
6718 New transformations.
6719
6720 2016-06-13 Alan Hayward <alan.hayward@arm.com>
6721
6722 PR tree-optimization/71416
6723 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
6724 multiple entries
6725
6726 2016-06-13 Martin Liska <mliska@suse.cz>
6727
6728 * predict.c (enum predictor_reason): Prefix enum with REASON_.
6729 (combine_predictions_for_insn): Likewise.
6730 (prune_predictions_for_bb): Likewise.
6731 (combine_predictions_for_bb): Likewise.
6732
6733 2016-06-13 Richard Biener <rguenther@suse.de>
6734
6735 PR tree-optimization/71505
6736 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
6737 assert match comment.
6738
6739 2016-06-13 Marek Polacek <polacek@redhat.com>
6740
6741 PR middle-end/71476
6742 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
6743 gimplify_switch_expr.
6744 (warn_switch_unreachable_r): New function.
6745
6746 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6747
6748 PR target/71379
6749 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
6750 one.
6751
6752 2016-06-13 Richard Biener <rguenther@suse.de>
6753
6754 PR middle-end/64516
6755 * fold-const.c (fold_unary_loc): Preserve alignment when
6756 folding a VIEW_CONVERT_EXPR into a MEM_REF.
6757
6758 2016-06-13 Martin Liska <mliska@suse.cz>
6759
6760 PR sanitizer/71458
6761 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
6762 w/ -fsanitize=bounds.
6763
6764 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
6765
6766 * config/i386/i386.c (ix86_init_builtins): Calculate
6767 FLOAT128_FTYPE_CONST_STRING function type only once.
6768 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
6769 built-in functions are available for x86-32 and x86-64 targets.
6770
6771 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
6772
6773 PR target/71241
6774 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
6775 New primitive type.
6776 (FLOAT128_FTYPE_CONST_STRING): New function type.
6777 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
6778 [IX86_BUILTIN_NANSQ]: Ditto.
6779 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
6780 (ix86_init_builtin_types): Declare const_string_type_node.
6781 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
6782 builtin functions.
6783 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
6784 * doc/extend.texi (x86 Built-in Functions): Document
6785 __builtin_nanq and __builtin_nansq.
6786
6787 2016-06-11 Jiong Wang <jiong.wang@arm.com>
6788
6789 PR target/71061
6790 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
6791 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
6792 length for pop patterns.
6793 (arm_attr_length_push_multi): Update comments.
6794 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
6795 attribute.
6796 (*pop_multiple_with_writeback_and_return): Likewise.
6797 (*pop_multiple_with_return): Likewise.
6798
6799 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
6800
6801 PR middle-end/71310
6802 * fold-const.c (optimize_bit_field_compare): Don't try to use
6803 word_mode unconditionally for reading the bit field, look at
6804 DECL_BIT_FIELD_REPRESENTATIVE instead.
6805
6806 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
6807
6808 PR middle-end/71478
6809 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
6810 vector integer type.
6811
6812 2016-06-10 Jakub Jelinek <jakub@redhat.com>
6813
6814 PR middle-end/71494
6815 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
6816 without LABEL_DECL, set *handled_ops_p to false instead of true.
6817
6818 2016-06-10 Martin Sebor <msebor@redhat.com>
6819
6820 PR c/71392
6821 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
6822 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
6823 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
6824 them.
6825 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
6826 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
6827 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
6828 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
6829 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
6830 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
6831 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
6832 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
6833
6834 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
6835
6836 * config/arm/arm.h (pool_vector_label,
6837 return_used_this_function): Remove.
6838
6839 2016-06-10 Jeff Law <law@redhat.com>
6840
6841 PR tree-optimization/71335
6842 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
6843 zero length paths here.
6844 (convert_and_register_jump_thread_path): Remove hacks related to
6845 duplicated blocks in the jump thread path.
6846 (fsm_find_control_statement_thread_paths): Avoid putting the same
6847 block on the thread path twice, but ensure the thread path is
6848 unchanged from the caller's point of view.
6849
6850 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
6851
6852 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
6853 * predict.def (PRED_LOOP_BRANCH): Remove.
6854
6855 2016-06-10 David Malcolm <dmalcolm@redhat.com>
6856
6857 * Makefile.in (OBJS): Add ggc-tests.o.
6858 (GTFILES): Add ggc-tests.c.
6859 * ggc-tests.c: New file.
6860 * selftest-run-tests.c (selftest::run_tests): Call
6861 selftest::ggc_tests_c_tests.
6862 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
6863
6864 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
6865
6866 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
6867
6868 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
6869
6870 PR sanitizer/71480
6871 * varasm.c (place_block_symbol): Adjust alignment for asan protected
6872 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
6873
6874 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
6875
6876 * profile.c: Include cfgloop.h.
6877 (branch_prob): Compute estimated number of iterations.
6878 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
6879 recompute estimate number of iterations from profile.
6880
6881 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
6882
6883 PR inline-asm/68843
6884 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
6885 must be grouped on top of stack. Don't force early clobber
6886 on ordinary reg outputs.
6887
6888 2016-06-10 Richard Biener <rguenther@suse.de>
6889
6890 * targhooks.c (default_builtin_vectorization_cost): Adjust
6891 vec_construct cost.
6892
6893 2016-06-10 Richard Biener <rguenther@suse.de>
6894
6895 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
6896 to fold the RHS to a constant if possible.
6897
6898 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
6899
6900 PR middle-end/71373
6901 * tree-nested.c (convert_nonlocal_omp_clauses)
6902 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
6903 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
6904 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
6905
6906 * gimplify.c (gimplify_adjust_omp_clauses): Discard
6907 OMP_CLAUSE_TILE.
6908 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
6909
6910 * omp-low.c (scan_sharing_clauses): Don't expect
6911 OMP_CLAUSE__CACHE_.
6912
6913 2016-06-10 Alan Hayward <alan.hayward@arm.com>
6914
6915 PR tree-optimization/71407
6916 PR tree-optimization/71416
6917 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
6918 BIT_FIELD_REF type.
6919
6920 2016-06-10 Richard Biener <rguenther@suse.de>
6921
6922 PR middle-end/71477
6923 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
6924
6925 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
6926
6927 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
6928
6929 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
6930 Jiong Wang <jiong.wang@arm.com>
6931
6932 PR rtl-optimization/70751
6933 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
6934 spilled into memory.
6935
6936 2016-06-09 Jonathan Yong <10walls@gmail.com>
6937
6938 Revert:
6939 2015-09-21 Jonathan Yong <10walls@gmail.com>
6940
6941 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
6942 sysroot/usr/lib/32api for additional win32 libraries,
6943 fixes failing Cygwin bootstrapping.
6944
6945 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
6946
6947 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
6948 Delete.
6949
6950 2016-06-09 David Malcolm <dmalcolm@redhat.com>
6951
6952 PR bootstrap/71471
6953 * pretty-print.c (pp_indent): Specify that %p is printed in a
6954 host-dependent manner.
6955 (test_pp_format): Remove the test for %p.
6956
6957 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
6958
6959 * config/mips/mips.c (mips_output_jump): Fix formatting.
6960
6961 2016-06-09 Richard Biener <rguenther@suse.de>
6962
6963 PR tree-optimization/71462
6964 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
6965 removed blocks.
6966
6967 2016-06-09 Martin Liska <mliska@suse.cz>
6968
6969 * predict.c (dump_prediction): Add new argument.
6970 (enum predictor_reason): New enum.
6971 (struct predictor_hash): New struct.
6972 (predictor_hash::hash): New function.
6973 (predictor_hash::equal): Likewise.
6974 (not_removed_prediction_p): New function.
6975 (prune_predictions_for_bb): Likewise.
6976 (combine_predictions_for_bb): Prune predictions.
6977
6978 2016-06-09 Martin Liska <mliska@suse.cz>
6979
6980 * predict.c (filter_predictions): New function.
6981 (remove_predictions_associated_with_edge): Use the filter
6982 function.
6983 (equal_edge_p): New function.
6984
6985 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
6986
6987 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
6988 Correct usage of @samp vs @option, add @samp where appropriate.
6989 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
6990 Add armv6s-m and document it, as it is no official ARM name.
6991
6992 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6993
6994 * ifcvt.c (struct noce_if_info): Add transform_name field.
6995 (noce_try_move): Set if_info->transform_name to the function name.
6996 (noce_try_ifelse_collapse): Likewise.
6997 (noce_try_store_flag): Likewise.
6998 (noce_try_inverse_constants): Likewise.
6999 (noce_try_store_flag_constants): Likewise.
7000 (noce_try_addcc): Likewise.
7001 (noce_try_store_flag_mask): Likewise.
7002 (noce_try_cmove): Likewise.
7003 (noce_try_cmove_arith): Likewise.
7004 (noce_try_minmax): Likewise.
7005 (noce_try_abs): Likewise.
7006 (noce_try_sign_mask): Likewise.
7007 (noce_try_bitop): Likewise.
7008 (noce_convert_multiple_sets): Likewise.
7009 (noce_process_if_block): Print if_info->transform_name to
7010 dump_file if transformation succeeded.
7011
7012 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7013
7014 * config/arm/cortex-a57.md (cortex_a57_alu):
7015 Handle csel type.
7016
7017 2016-06-08 Martin Sebor <msebor@redhat.com>
7018 Jakub Jelinek <jakub@redhat.com>
7019
7020 PR c++/70507
7021 PR c/68120
7022 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
7023 BUILT_IN_MUL_OVERFLOW_P): New builtins.
7024 * builtins.c: Include gimple-fold.h.
7025 (fold_builtin_arith_overflow): Handle
7026 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
7027 (fold_builtin_3): Likewise.
7028 * doc/extend.texi (Integer Overflow Builtins): Document
7029 __builtin_{add,sub,mul}_overflow_p.
7030
7031 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
7032
7033 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
7034 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
7035
7036 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
7037
7038 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
7039 Rewrite, looking one level down for records and arrays.
7040
7041 2016-06-08 David Malcolm <dmalcolm@redhat.com>
7042
7043 * pretty-print.c: Include "selftest.h".
7044 (pp_format): Fix comment.
7045 (identifier_to_locale): Likewise.
7046 (selftest::test_basic_printing): New function.
7047 (selftest::assert_pp_format): New function.
7048 (selftest::test_pp_format): New function.
7049 (selftest::pretty_print_c_tests): New function.
7050 * selftest-run-tests.c (selftest::run_tests): Call
7051 selftest::pretty_print_c_tests.
7052 * selftest.h (pretty_print_c_tests): New declaration.
7053
7054 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7055
7056 * invoke.texi (max-loop-headers-insns): Document.
7057 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
7058 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
7059 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
7060
7061 2016-06-08 Richard Biener <rguenther@suse.de>
7062
7063 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
7064 on strided SLP loads and fall back to scalar loads in case
7065 we can't chunk them.
7066
7067 2016-06-08 Richard Biener <rguenther@suse.de>
7068
7069 PR tree-optimization/71452
7070 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
7071 type used for the SSA rewrite has enough precision to cover
7072 the dynamic type of the location.
7073
7074 2016-06-08 Jakub Jelinek <jakub@redhat.com>
7075 Richard Biener <rguenther@suse.de>
7076
7077 PR c++/71448
7078 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
7079 the same as DECL_P (base0) for indirect_base0. Use equality_code
7080 in one further place.
7081
7082 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
7083
7084 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
7085 to one word if the field is known to overlap other words.
7086 (extract_bit_field_1): Likewise.
7087 (store_split_bit_field): Remove compensating code.
7088 (extract_split_bit_field): Likewise.
7089
7090 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
7091
7092 PR debug/71432
7093 PR ada/71413
7094 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
7095
7096 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7097
7098 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
7099 VDQF.
7100 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
7101 (arch64_addpv4sf): Delete.
7102 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
7103 "gen_aarch64_addpv4sf".
7104 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
7105 builtin.
7106 (vpadds_f32): Likewise.
7107 (vpaddq_f32): Likewise.
7108 (vpaddq_f64): Likewise.
7109
7110 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7111
7112 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
7113 VALLF.
7114 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
7115 to VALLF. Rename to "fabd<mode>3".
7116 "*fabd_scalar<mode>3): Delete.
7117 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
7118 Use builtin.
7119 (vabdd_f64): Likewise.
7120 (vabd_f32): Likewise.
7121 (vabd_f64): Likewise.
7122 (vabdq_f32): Likewise.
7123 (vabdq_f64): Likewise.
7124
7125 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7126
7127 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
7128 VALLF.
7129 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
7130 "aarch64_rsqrts<mode>".
7131 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
7132 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
7133 builtin.
7134 (vrsqrtsd_f64): Likewise.
7135 (vrsqrts_f32): Likewise.
7136 (vrsqrts_f64): Likewise.
7137 (vrsqrtsq_f32): Likewise.
7138 (vrsqrtsq_f64): Likewise.
7139
7140 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7141
7142 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
7143 VALLF.
7144 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
7145 "aarch64_rsqrte<mode>".
7146 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
7147 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
7148 builtin.
7149 (vrsqrted_f64): Likewise.
7150 (vrsqrte_f32): Likewise.
7151 (vrsqrte_f64): Likewise.
7152 (vrsqrteq_f32): Likewise.
7153 (vrsqrteq_f64): Likewise.
7154
7155 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7156
7157 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
7158 (ucvtf): Likewise.
7159 (fcvtzs): Likewise.
7160 (fcvtzu): Likewise.
7161 * config/aarch64/aarch64-simd.md
7162 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
7163 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
7164 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
7165 Use builtin.
7166 (vcvt_n_f32_u32): Likewise.
7167 (vcvt_n_s32_f32): Likewise.
7168 (vcvt_n_u32_f32): Likewise.
7169 (vcvtq_n_f32_s32): Likewise.
7170 (vcvtq_n_f32_u32): Likewise.
7171 (vcvtq_n_f64_s64): Likewise.
7172 (vcvtq_n_f64_u64): Likewise.
7173 (vcvtq_n_s32_f32): Likewise.
7174 (vcvtq_n_s64_f64): Likewise.
7175 (vcvtq_n_u32_f32): Likewise.
7176 (vcvtq_n_u64_f64): Likewise.
7177 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
7178 (VSDQ_SDI): Likewise.
7179 (fcvt_target): Support V4DI, V4SI and V2SI.
7180 (FCVT_TARGET): Likewise.
7181
7182 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7183
7184 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
7185 (TYPES_BINOP_SUS): Likewise.
7186 (aarch64_simd_builtin_data): Update include file name.
7187 (aarch64_builtins): Likewise.
7188 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
7189 for conversion between scalar float-point and fixed-point.
7190 (ucvtf): Likewise.
7191 (fcvtzs): Likewise.
7192 (fcvtzu): Likewise.
7193 * config/aarch64/aarch64.md
7194 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
7195 pattern for conversion between scalar float to fixed-pointer.
7196 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
7197 (UNSPEC_FCVTZS): New UNSPEC enumeration.
7198 (UNSPEC_FCVTZU): Likewise.
7199 (UNSPEC_SCVTF): Likewise.
7200 (UNSPEC_UCVTF): Likewise.
7201 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
7202 Use builtin.
7203 (vcvtd_n_f64_u64): Likewise.
7204 (vcvtd_n_s64_f64): Likewise.
7205 (vcvtd_n_u64_f64): Likewise.
7206 (vcvtd_n_f32_s32): Likewise.
7207 (vcvts_n_f32_u32): Likewise.
7208 (vcvtd_n_s32_f32): Likewise.
7209 (vcvts_n_u32_f32): Likewise.
7210 * config/aarch64/iterators.md (fcvt_target): Support integer to float
7211 mapping.
7212 (FCVT_TARGET): Likewise.
7213 (FCVT_FIXED2F): New iterator.
7214 (FCVT_F2FIXED): Likewise.
7215 (fcvt_fixed_insn): New define_int_attr.
7216
7217 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7218
7219 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
7220 some statements was removed.
7221
7222 2016-06-08 Alan Hayward <alan.hayward@arm.com>
7223
7224 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
7225 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
7226 (vect_can_advance_ivs_p): likewise.
7227 (vect_update_ivs_after_vectorizer): likewise.
7228 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
7229 (vect_analyze_scalar_cycles_1): likewise.
7230 (vect_analyze_loop_operations): likewise.
7231 (report_vect_op): likewise.
7232 (vect_is_slp_reduction): likewise.
7233 (vect_is_simple_reduction): likewise.
7234 (get_initial_def_for_induction): likewise.
7235 (vect_transform_loop): likewise.
7236 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
7237 (vect_recog_sad_pattern): likewise.
7238 (vect_recog_widen_sum_pattern): likewise.
7239 (vect_recog_widening_pattern): likewise.
7240 (vect_recog_divmod_pattern): likewise.
7241 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
7242 (vect_analyze_slp_instance): likewise.
7243 (vect_transform_slp_perm_load): likewise.
7244 (vect_schedule_slp_instance): likewise.
7245
7246 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7247
7248 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
7249 (return_prediction): PRED_CONST_RETURN predict return as not taken.
7250 * predict.def (PRED_CONTINUE): Change hitrate 50->67
7251 (PRED_LOOP_BRANCH): Document predictor as broken.
7252 (PRED_LOOP_EXIT): Change hitrate 91->92.
7253 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
7254 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
7255 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
7256 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
7257 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
7258 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
7259 (PRED_CALL): Chane hitrate 71->67.
7260 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
7261 (PRED_GOTO): Document as unused right now.
7262 (PRED_CONST_RETURN): Change hitrate 67->69
7263 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
7264 (PRED_NULL_RETURN): Change hitrate 91->90.
7265 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
7266 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
7267 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
7268
7269 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
7270
7271 * config/rs6000/altivec.h: Add __builtin_vec_mul.
7272 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
7273 special case Altivec builtin.
7274 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7275 VSX_BUILTIN_VEC_MUL (replaced with special case code).
7276 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7277 code for ALTIVEC_BUILTIN_VEC_MUL.
7278 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7279 for __builtin_vec_mul.
7280
7281 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
7282
7283 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
7284 -mno-htm.
7285
7286 2016-06-07 David Malcolm <dmalcolm@redhat.com>
7287
7288 * spellcheck.c (selftest::test_find_closest_string): New function.
7289 (spellcheck_c_tests): Call the above.
7290
7291 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7292
7293 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
7294
7295 2016-06-07 Jakub Jelinek <jakub@redhat.com>
7296
7297 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
7298 Yv=Yv,C alternatives.
7299
7300 2016-06-07 Richard Biener <rguenther@suse.de>
7301
7302 PR c/61564
7303 * common.opt (ffast-math): Make Optimization.
7304
7305 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
7306 Prachi Godbole <prachi.godbole@imgtec.com>
7307
7308 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
7309 `fabs' and `fneg' type attributes.
7310 (p5600_fpu_fabs): Add `fmove' to the comment.
7311
7312 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7313
7314 * gimple.c: Include builtins.h
7315 (gimple_inexpensive_call_p): New function.
7316 * gimple.h (gimple_inexpensive_call_p): Declare.
7317 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
7318 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
7319 fix formatting.
7320
7321 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
7322
7323 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
7324 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
7325 warning_at_rich_loc, warning_n, pedwarn, permerror,
7326 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
7327 sorry, fatal_error, internal_error, internal_error_no_backtrace):
7328 Use the above.
7329
7330 2016-06-07 Richard Biener <rguenther@suse.de>
7331
7332 PR tree-optimization/71428
7333 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
7334 BIT_FIELD_REF op vs. load.
7335
7336 2016-06-07 Richard Biener <rguenther@suse.de>
7337
7338 PR middle-end/71423
7339 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
7340 for signed ops.
7341
7342 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
7343
7344 * config/pa/pa.md (call): Generate indirect long calls to non-local
7345 functions on TARGET_64BIT.
7346 (call_value): Likewise.
7347
7348 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
7349
7350 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
7351 pattern and subsequent splitters.
7352 (call_val_reg_64bit_post_reload): Likewise.
7353
7354 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
7355
7356 PR middle-end/71408
7357 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
7358 propagate_op_to_single_use.
7359
7360 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
7361
7362 PR middle-end/71281
7363 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
7364
7365 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
7366
7367 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
7368 (enum x86_dirflag_state): New enum.
7369 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
7370 (machine_function): Remove needs_cld.
7371 (ix86_current_function_needs_cld): Remove.
7372 * config/i386/i386.c (ix86_set_func_type): Set
7373 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
7374 (ix86_expand_prologue): Do not emit CLD here.
7375 (ix86_dirflag_mode_needed): New function.
7376 (ix86_dirflag_mode_entry): Ditto.
7377 (ix86_mode_needed): Handle X86_DIRFLAG entity.
7378 (ix86_mode_after): Ditto.
7379 (ix86_mode_entry): Ditto.
7380 (ix86_mode_exit): Ditto.
7381 (ix86_emit_mode_set): Ditto.
7382 * config/i386/i386.md (strmov_singleop): Set
7383 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
7384 Do not set ix86_current_function_needs_cld.
7385 (rep_mov): Ditto.
7386 (strset_singleop): Ditto.
7387 (rep_stos): Ditto.
7388 (cmpstrnqi_nz_1): Ditto.
7389 (cmpstrnqi_1): Ditto.
7390 (strlenqi_1): Ditto.
7391
7392 2016-06-06 Jakub Jelinek <jakub@redhat.com>
7393
7394 PR tree-optimization/71259
7395 * tree-vect-slp.c (vect_get_constant_vectors): For
7396 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
7397 one for constant op, and use COND_EXPR for non-constant.
7398
7399 2016-06-06 David Malcolm <dmalcolm@redhat.com>
7400
7401 * Makefile.in (OBJS): Add function-tests.o,
7402 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
7403 selftest-run-tests.o.
7404 (OBJS-libcommon): Add selftest.o.
7405 (OBJS-libcommon-target): Add selftest.o.
7406 (all.internal): Add "selftest".
7407 (all.cross): Likewise.
7408 (selftest): New phony target.
7409 (s-selftest): New target.
7410 (selftest-gdb): New phony target.
7411 (COLLECT2_OBJS): Add selftest.o.
7412 * bitmap.c: Include "selftest.h".
7413 (selftest::test_gc_alloc): New function.
7414 (selftest::test_set_range): New function.
7415 (selftest::test_clear_bit_in_middle): New function.
7416 (selftest::test_copying): New function.
7417 (selftest::test_bitmap_single_bit_set_p): New function.
7418 (selftest::bitmap_c_tests): New function.
7419 * common.opt (fself-test): New.
7420 * diagnostic-show-locus.c: Include "selftest.h".
7421 (make_range): New function.
7422 (test_range_contains_point_for_single_point): New function.
7423 (test_range_contains_point_for_single_line): New function.
7424 (test_range_contains_point_for_multiple_lines): New function.
7425 (assert_eq): New function.
7426 (test_get_line_width_without_trailing_whitespace): New function.
7427 (selftest::diagnostic_show_locus_c_tests): New function.
7428 * et-forest.c: Include "selftest.h".
7429 (selftest::test_single_node): New function.
7430 (selftest::test_simple_tree): New function.
7431 (selftest::test_disconnected_nodes): New function.
7432 (selftest::et_forest_c_tests): New function.
7433 * fold-const.c: Include "selftest.h".
7434 (selftest::assert_binop_folds_to_const): New function.
7435 (selftest::assert_binop_folds_to_nonlvalue): New function.
7436 (selftest::test_arithmetic_folding): New function.
7437 (selftest::fold_const_c_tests): New function.
7438 * function-tests.c: New file.
7439 * gimple.c: Include "selftest.h".
7440 Include "gimple-pretty-print.h".
7441 (selftest::verify_gimple_pp): New function.
7442 (selftest::test_assign_single): New function.
7443 (selftest::test_assign_binop): New function.
7444 (selftest::test_nop_stmt): New function.
7445 (selftest::test_return_stmt): New function.
7446 (selftest::test_return_without_value): New function.
7447 (selftest::gimple_c_tests): New function.
7448 * hash-map-tests.c: New file.
7449 * hash-set-tests.c: New file.
7450 * input.c: Include "selftest.h".
7451 (selftest::assert_loceq): New function.
7452 (selftest::test_accessing_ordinary_linemaps): New function.
7453 (selftest::test_unknown_location): New function.
7454 (selftest::test_builtins): New function.
7455 (selftest::test_reading_source_line): New function.
7456 (selftest::input_c_tests): New function.
7457 * rtl-tests.c: New file.
7458 * selftest-run-tests.c: New file.
7459 * selftest.c: New file.
7460 * selftest.h: New file.
7461 * spellcheck.c: Include "selftest.h".
7462 (selftest::levenshtein_distance_unit_test_oneway): New function,
7463 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
7464 (selftest::levenshtein_distance_unit_test): Likewise.
7465 (selftest::spellcheck_c_tests): Likewise.
7466 * toplev.c: Include selftest.h.
7467 (toplev::run_self_tests): New.
7468 (toplev::main): Handle -fself-test.
7469 * toplev.h (toplev::run_self_tests): New.
7470 * tree.c: Include "selftest.h".
7471 (selftest::test_integer_constants): New function.
7472 (selftest::test_identifiers): New function.
7473 (selftest::test_labels): New function.
7474 (selftest::tree_c_tests): New function.
7475 * tree-cfg.c: Include "selftest.h".
7476 (selftest::push_fndecl): New function.
7477 (selftest::test_linear_chain): New function.
7478 (selftest::test_diamond): New function.
7479 (selftest::test_fully_connected): New function.
7480 (selftest::tree_cfg_c_tests): New function.
7481 * vec.c: Include "selftest.h".
7482 (selftest::safe_push_range): New function.
7483 (selftest::test_quick_push): New function.
7484 (selftest::test_safe_push): New function.
7485 (selftest::test_truncate): New function.
7486 (selftest::test_safe_grow_cleared): New function.
7487 (selftest::test_pop): New function.
7488 (selftest::test_safe_insert): New function.
7489 (selftest::test_ordered_remove): New function.
7490 (selftest::test_unordered_remove): New function.
7491 (selftest::test_block_remove): New function.
7492 (selftest::reverse_cmp): New function.
7493 (selftest::test_qsort): New function.
7494 (selftest::vec_c_tests): New function.c.
7495 * wide-int.cc: Include selftest.h and wide-int-print.h.
7496 (selftest::from_int <wide_int>): New function.
7497 (selftest::from_int <offset_int>): New function.
7498 (selftest::from_int <widest_int>): New function.
7499 (selftest::assert_deceq): New function.
7500 (selftest::assert_hexeq): New function.
7501 (selftest::test_printing <VALUE_TYPE>): New function template.
7502 (selftest::test_ops <VALUE_TYPE>): New function template.
7503 (selftest::test_comparisons <VALUE_TYPE>): New function template.
7504 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
7505 template.
7506 (selftest::wide_int_cc_tests): New function.
7507
7508 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7509
7510 PR middle-end/37780
7511 * ifcvt.c (noce_try_ifelse_collapse): New function.
7512 Declare prototype.
7513 (noce_process_if_block): Call noce_try_ifelse_collapse.
7514 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
7515 (simplify_ternary_operation): Use the above to simplify
7516 conditional CLZ/CTZ expressions.
7517
7518 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7519
7520 PR middle-end/37780
7521 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
7522 define_insn_and_split.
7523
7524 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7525
7526 PR middle-end/37780
7527 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
7528
7529 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
7530
7531 PR c/24414
7532 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
7533 Implicitly clobber memory for basic asm with non-empty assembler
7534 string. Use targetm.md_asm_adjust also here.
7535 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
7536 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
7537 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
7538 non-empty assembler string.
7539 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
7540 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
7541 (decode_asm_operands): Handle basic asm in PARALLEL block.
7542 (extract_insn): Handle basic asm in PARALLEL block.
7543 * doc/extend.texi: Mention new behavior of basic asm.
7544 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
7545 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
7546 branch_needs_nop_p): Use asm_noperands.
7547
7548 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
7549
7550 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
7551 Include the M7 SPARC DFA scheduler.
7552 New attribute v3pipe.
7553 Annotate insns with v3pipe where appropriate.
7554 Define cpu_feature vis4.
7555 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
7556 Add (V8QI "8") to vbits.
7557 Add insns {add,sub}v8qi3
7558 Add insns ss{add,sub}v8qi3
7559 Add insns us{add,sub}{v8qi,v4hi}3
7560 Add insns {min,max}{v8qi,v4hi,v2si}3
7561 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
7562 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
7563 * config/sparc/niagara4.md: Add a comment explaining the
7564 discrepancy between the documented latenty numbers and the
7565 implemented ones.
7566 * config/sparc/niagara7.md: New file.
7567 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
7568 supports SPARC5 and VIS 4.0 instructions.
7569 * configure: Regenerate.
7570 * config.in: Likewise.
7571 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
7572 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
7573 TARGET_CPU_niagara7.
7574 (ASM_CPU64_DEFAULT_SPEC): Likewise.
7575 (CPP_CPU_SPEC): Handle niagara7.
7576 (ASM_CPU_SPEC): Likewise.
7577 * config/sparc/sparc-opts.h (processor_type): Add
7578 PROCESSOR_NIAGARA7.
7579 (mvis4): New option.
7580 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
7581 (AS_NIAGARA7_FLAG): Define.
7582 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
7583 (CPP_CPU64_DEFAULT_SPEC): Likewise.
7584 (CPP_CPU_SPEC): Handle niagara7.
7585 (ASM_CPU_SPEC): Likewise.
7586 * config/sparc/sparc.c (niagara7_costs): Define.
7587 (sparc_option_override): Handle niagara7 and adjust cache-related
7588 parameters with better values for niagara cpus. Also support VIS4.
7589 (sparc32_initialize_trampoline): Likewise.
7590 (sparc_use_sched_lookahead): Likewise.
7591 (sparc_issue_rate): Likewise.
7592 (sparc_register_move_cost): Likewise.
7593 (dump_target_flag_bits): Support VIS4.
7594 (sparc_vis_init_builtins): Likewise.
7595 (sparc_builtins): Likewise.
7596 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
7597 VIS4 4.0.
7598 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
7599 UltraSparc M7.
7600 * config/sparc/sparc.opt (sparc_processor_type): New value
7601 niagara7.
7602 * config/sparc/visintrin.h (__attribute__): Prototypes for the
7603 VIS4 builtins.
7604 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
7605 -mvis4.
7606 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
7607 VIS4 builtins.
7608
7609 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
7610
7611 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
7612
7613 2016-06-06 Richard Biener <rguenther@suse.de>
7614
7615 PR tree-optimization/71398
7616 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
7617 remove edges.
7618
7619 2016-06-05 James Bowman <james.bowman@ftdichip.com>
7620
7621 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
7622 ft32_expand_prolog, ft32_expand_epilogue):
7623 Handle pretend_args.
7624 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
7625 * config/ft32/ft32.md: Add pretend_returner.
7626
7627 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
7628
7629 PR target/71389
7630 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
7631 Copy op1 RTX to avoid invalid sharing.
7632 (ix86_expand_vector_move_misalign): Ditto.
7633
7634 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
7635
7636 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
7637 ATTRIBUTE_UNUSED.
7638
7639 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
7640
7641 * predict.c (predicted_by_loop_heuristics_p): New function.
7642 (predict_iv_comparison): Use it.
7643 (predict_loops): Walk from innermost loops; do not predict edges
7644 leaving multiple loops multiple times; implement
7645 PRED_LOOP_ITERATIONS_MAX heuristics.
7646 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
7647
7648 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
7649
7650 * cfg.c (check_bb_profile): Do not report mismatched profiles when
7651 only edges out of BB are EH edges.
7652
7653 2016-06-04 Martin Sebor <msebor@redhat.com>
7654 Marcin Baczyński <marbacz@gmail.com>
7655
7656 PR c/48116
7657 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
7658 a void expression in a void function.
7659
7660 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
7661
7662 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
7663 aux; dump reasons of decisions.
7664 (should_duplicate_loop_header_p): Likewise.
7665 (do_while_loop_p): Likewise.
7666 (ch_base::copy_headers): Dump asi num insns duplicated.
7667
7668 2016-06-04 Jakub Jelinek <jakub@redhat.com>
7669
7670 PR tree-optimization/71405
7671 * tree-ssa.c (execute_update_addresses_taken): For clobber with
7672 incompatible type, build a new clobber with the right type instead
7673 of building a VIEW_CONVERT_EXPR around it.
7674
7675 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
7676
7677 PR tree-optimization/52171
7678 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
7679 by_pieces_ninsns instead of move_by_pieces_ninsns.
7680
7681 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
7682
7683 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
7684 for reg+reg addressing mode.
7685
7686 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7687
7688 * rs6000-c.c (c/c-tree.h): Add #include.
7689 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
7690 in C++ when found in the base position of vec_ld or vec_st.
7691
7692 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
7693
7694 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
7695 use of profile unless profile status is PROFILE_READ.
7696 * profile.c (compute_branch_probabilities): Set profile status
7697 only after reporting predictor hitrates.
7698
7699 2016-06-03 Joseph Myers <joseph@codesourcery.com>
7700
7701 PR target/71276
7702 PR target/71277
7703 * common.opt (ffp-int-builtin-inexact): New option.
7704 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
7705 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
7706 (ceil@var{m}2): Document dependence on this option.
7707 * ipa-inline-transform.c (inline_call): Handle
7708 flag_fp_int_builtin_inexact.
7709 * ipa-inline.c (can_inline_edge_p): Likewise.
7710 * config/i386/i386.md (rintxf2): Do not test
7711 flag_unsafe_math_optimizations.
7712 (rint<mode>2_frndint): New define_insn.
7713 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
7714 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
7715 for 387 instead of extending and truncating.
7716 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
7717 !flag_trapping_math instead of flag_unsafe_math_optimizations.
7718 Change to frndint<mode>2_<rounding>.
7719 (frndintxf2_<rounding>_i387): Likewise. Change to
7720 frndint<mode>2_<rounding>_i387.
7721 (<rounding_insn>xf2): Likewise.
7722 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
7723 !flag_trapping_math instead of flag_unsafe_math_optimizations for
7724 x87. Test TARGET_ROUND || !flag_trapping_math ||
7725 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
7726 SSE. Use ROUND_NO_EXC in constant operand of
7727 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
7728 for 387 instead of extending and truncating.
7729
7730 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
7731 Julia Koval <julia.koval@intel.com>
7732
7733 PR target/66960
7734 PR target/67630
7735 PR target/67634
7736 PR target/67841
7737 PR target/68037
7738 PR target/68618
7739 PR target/68661
7740 PR target/69575
7741 PR target/69596
7742 PR target/69734
7743 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
7744 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
7745 all registers, except for function return registers if there are
7746 no caller-saved registers.
7747 (ix86_set_func_type): New function.
7748 (ix86_set_current_function): Call ix86_set_func_type to set
7749 no_caller_saved_registers and func_type. Call reinit_regs if
7750 caller-saved registers are changed. Don't allow MPX, SSE, MMX
7751 nor x87 instructions in interrupt handler nor function with
7752 no_caller_saved_registers attribute.
7753 (ix86_function_ok_for_sibcall): Return false if there are no
7754 caller-saved registers.
7755 (type_natural_mode): Don't warn ABI change for MMX in interrupt
7756 handler.
7757 (ix86_function_arg_advance): Skip for callee in interrupt handler.
7758 (ix86_function_arg): Return special arguments in interrupt handler.
7759 (ix86_promote_function_mode): Promote pointer to word_mode only
7760 for normal functions.
7761 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
7762 interrupt handler.
7763 (ix86_epilogue_uses): New function.
7764 (ix86_hard_regno_scratch_ok): Likewise.
7765 (ix86_save_reg): Preserve all registers in interrupt handler
7766 after reload. Preserve all registers, except for function return
7767 registers, if there are no caller-saved registers after reload.
7768 (find_drap_reg): Always use callee-saved register if there are
7769 no caller-saved registers.
7770 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
7771 for interrupt handler.
7772 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
7773 Emit cld instruction if stringops are used in interrupt handler
7774 or interrupt handler isn't a leaf function.
7775 (ix86_expand_epilogue): Generate interrupt return for interrupt
7776 handler and pop the 'ERROR_CODE' off the stack before interrupt
7777 return in exception handler.
7778 (ix86_expand_call): Disallow calling interrupt handler directly.
7779 If there are no caller-saved registers, mark all registers that
7780 are clobbered by the call which returns as clobbered.
7781 (ix86_handle_no_caller_saved_registers_attribute): New function.
7782 (ix86_handle_interrupt_attribute): Likewise.
7783 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
7784 attributes.
7785 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
7786 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
7787 accumulation in interrupt function if stack may be realigned to
7788 avoid DRAP.
7789 (EPILOGUE_USES): New.
7790 (function_type): New enum.
7791 (machine_function): Add func_type and no_caller_saved_registers.
7792 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
7793 (interrupt_return): New pattern.
7794 * doc/extend.texi: Document x86 interrupt and
7795 no_caller_saved_registers attributes.
7796
7797 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
7798
7799 PR tree-optimization/52171
7800 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
7801 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
7802 Look for constant strings. Move some code to emit_block_cmp_hints
7803 and use it.
7804 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
7805 * defaults.h (COMPARE_MAX_PIECES): New macro.
7806 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
7807 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
7808 (clear_by_pieces_1): Don't declare. Move definition before use.
7809 (can_do_by_pieces): New static function.
7810 (can_move_by_pieces): Use it. Return bool.
7811 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
7812 OP. All callers changed. Handle COMPARE_BY_PIECES.
7813 (class pieces_addr); New.
7814 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
7815 pieces_addr::adjust, pieces_addr::increment_address,
7816 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
7817 functions for it.
7818 (class op_by_pieces_d): New.
7819 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
7820 functions for it.
7821 (class move_by_pieces_d, class compare_by_pieces_d,
7822 class store_by_pieces_d): New subclasses of op_by_pieces_d.
7823 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
7824 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
7825 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
7826 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
7827 compare_by_pieces_d::finish_mode): New member functions.
7828 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
7829 functions.
7830 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
7831 (emit_block_cmp_hints): New function.
7832 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
7833 use the newly defined classes.
7834 * expr.h (by_pieces_constfn): New typedef.
7835 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
7836 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
7837 (move_by_pieces_ninsns): Don't declare.
7838 (can_move_by_pieces): Change return value to bool.
7839 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
7840 (compare_by_pieces_branch_ratio): New hook.
7841 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
7842 (by_pieces_ninsns): Declare.
7843 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
7844 COMPARE_BY_PIECES.
7845 (default_compare_by_pieces_branch_ratio): New function.
7846 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
7847 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
7848 * doc/tm.texi: Regenerate.
7849 * tree-ssa-strlen.c: Include "builtins.h".
7850 (handle_builtin_memcmp): New static function.
7851 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
7852 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
7853
7854 2016-06-03 Alan Hayward <alan.hayward@arm.com>
7855
7856 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
7857 relevant stmts which are simple and invariant.
7858 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
7859 instead of simple and invariant
7860
7861 2016-06-03 Alan Hayward <alan.hayward@arm.com>
7862
7863 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
7864 (vectorizable_reduction): Check for new relevant state.
7865 (vectorizable_live_operation): vectorize live stmts using
7866 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
7867 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
7868 (vect_stmt_relevant_p): Check for stmts which are only used live.
7869 (process_use): Use of a stmt does not inherit it's live value.
7870 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
7871 (vect_analyze_stmt): Check for new relevant state.
7872 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
7873 outside the loop, but not inside it.
7874
7875 2016-06-03 Alan Hayward <alan.hayward@arm.com>
7876
7877 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
7878 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
7879 (vect_get_vec_def_for_operand): Split out code.
7880
7881 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
7882
7883 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
7884
7885 2016-06-03 Alan Hayward <alan.hayward@arm.com>
7886
7887 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
7888
7889 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7890
7891 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
7892
7893 2016-06-03 Jakub Jelinek <jakub@redhat.com>
7894
7895 PR middle-end/71387
7896 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
7897 to noreturn e->callee->decl that has void return type and void
7898 arguments, adjust gimple_call_fntype and remove lhs even if it had
7899 previously addressable type.
7900
7901 2016-06-02 Jeff Law <law@redhat.com>
7902
7903 PR tree-optimization/71328
7904 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
7905 error when checking for a jump back onto the copied path.
7906
7907 2016-06-02 David Malcolm <dmalcolm@redhat.com>
7908
7909 * config/microblaze/microblaze.c (get_branch_target): Add return
7910 NULL_RTX for the non-CALL_P case.
7911 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
7912 (insert_wic): Remove unused local "j".
7913
7914 2016-06-02 Martin Liska <mliska@suse.cz>
7915
7916 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
7917
7918 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
7919 Julia Koval <julia.koval@intel.com>
7920
7921 * function.c (assign_parm_setup_stack): Force source into a
7922 register if needed.
7923 * target.def (function_incoming_arg): Update documentation to
7924 allow arbitrary address computation based on hard register.
7925 * doc/tm.texi: Regenerated.
7926
7927 2016-06-02 Martin Liska <mliska@suse.cz>
7928
7929 * predict.c (combine_predictions_for_bb): Fix first match in
7930 cases where a first predictor contains more than one occurence
7931 in list of predictors. Take the best value in such case.
7932
7933 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7934
7935 PR rtl-optimization/71295
7936 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
7937 offset would go over the size of the inner mode reject it.
7938
7939 2016-06-02 Jakub Jelinek <jakub@redhat.com>
7940
7941 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
7942 x=x,x and v=v,m instead of x=x,m.
7943
7944 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
7945 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
7946 alternative to v=rm,C.
7947
7948 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
7949 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
7950 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
7951 instead of vex for the last two above mentioned alternatives.
7952
7953 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7954
7955 PR target/70830
7956 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
7957
7958 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
7959
7960 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
7961
7962 2016-06-01 David Malcolm <dmalcolm@redhat.com>
7963
7964 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
7965 from int to unsigned.
7966
7967 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
7968
7969 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
7970 alternatives, eliminating preferred register class. Add support
7971 for the MTVSRDD instruction in ISA 3.0.
7972 (vsx_splat_v4si_internal): Use splat_input_operand instead of
7973 reg_or_indexed_operand.
7974 (vsx_splat_v4sf_internal): Likewise.
7975
7976 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
7977
7978 PR target/71186
7979 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
7980 for loading up all 0's or all 1's.
7981
7982 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
7983
7984 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
7985
7986 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
7987
7988 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
7989 extension.
7990 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
7991 * gcc.c (set_source_date_epoch_envvar): New function, sets
7992 the SOURCE_DATE_EPOCH environment variable to the current time.
7993
7994 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
7995
7996 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
7997 the factor for live Phi nodes.
7998
7999 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8000
8001 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
8002 * tree-parloops.c (parallelize_loops): likewise.
8003 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
8004 tree_unswitch_outer_loop): likewise.
8005
8006 2016-06-01 Jakub Jelinek <jakub@redhat.com>
8007
8008 PR middle-end/71371
8009 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
8010 around creation of the temporary.
8011
8012 2016-06-01 Richard Biener <rguenther@suse.de>
8013
8014 PR tree-optimization/71366
8015 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
8016 (unloop_loops): Move removing edges here ...
8017 (try_unroll_loop_completely): ... from here.
8018 (try_peel_loop): ... and here.
8019 (tree_unroll_loops_completely_1): Track parent loops via
8020 bitmap of header BBs.
8021 (tree_unroll_loops_completely): Adjust for that.
8022
8023 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8024
8025 * config/rs6000/altivec.h (vec_slv): New macro.
8026 (vec_srv): New macro.
8027 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
8028 (UNSPEC_VSRV): New value.
8029 (vslv): New insn.
8030 (vsrv): New insn.
8031 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
8032 (vsrv): New builtin definition.
8033 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
8034 define argument types for new builtin.
8035 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
8036 new builtin.
8037 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
8038 functions.
8039
8040 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
8041 Jocelyn Mayer <l_indien@magic.fr>
8042
8043 PR target/67310
8044 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
8045 detect processor family for signature_CENTAUR_ebx.
8046 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
8047 signature_CENTAUR_ebx.
8048 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
8049 <default>: Pass x86-64 for has_longmode.
8050
8051 2016-06-01 Nathan Sidwell <nathan@acm.org>
8052
8053 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
8054 undefined weak.
8055
8056 2016-06-01 Richard Biener <rguenther@suse.de>
8057
8058 PR tree-optimization/71261
8059 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
8060 of stmts successfully put in the bool pattern. Remove
8061 single-use restriction.
8062 (adjust_bool_pattern_cast): Add cast at the use site via the
8063 pattern def sequence.
8064 (adjust_bool_pattern): Remove recursion, maintain a hash-map
8065 of patterned defs. Use the pattern def seqence instead of
8066 multiple independent patterns.
8067 (sort_after_uid): New qsort compare function.
8068 (adjust_bool_stmts): New function to process stmts in the bool
8069 pattern in IL order.
8070 (vect_recog_bool_pattern): Adjust.
8071 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
8072 (ifcvt_walk_pattern_tree): Likewise.
8073 (stmt_is_root_of_bool_pattern): Likewise.
8074 (ifcvt_repair_bool_pattern): Likewise.
8075 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
8076
8077 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8078
8079 * loop-unroll.c (decide_unroll_constant_iterations,
8080 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
8081 likely upper bounds.
8082 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
8083
8084 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
8085
8086 * tree-core.h (enum omp_clause_code): Remove
8087 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
8088
8089 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8090
8091 * config/arm/sync.md (arm_store_exclusive<mode>):
8092 Use 'H' output modifier on operands[2] rather than creating a new
8093 entry in out-of-bounds memory of the operands array.
8094 (arm_store_release_exclusivedi): Likewise.
8095
8096 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8097
8098 * config/arm/arm.c (arm_fusion_enabled_p): New function.
8099 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
8100 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
8101 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
8102
8103 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
8104
8105 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
8106 into account live statements for mask producers.
8107
8108 2016-06-01 Richard Biener <rguenther@suse.de>
8109
8110 PR tree-optimization/71311
8111 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
8112 restrict to non-INTEGER_CST @0.
8113
8114 2016-06-01 Richard Biener <rguenther@suse.de>
8115
8116 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
8117 (relational patterns): Use :c to avoid pattern duplications.
8118
8119 2016-06-01 Richard Biener <rguenther@suse.de>
8120
8121 * genmatch.c (comparison_code_p): New predicate.
8122 (swap_tree_comparison): New function.
8123 (commutate): Add for_vec parameter to append new for entries.
8124 Support commutating relational operators by swapping it alongside
8125 operands.
8126 (lower_commutative): Adjust.
8127 (dt_simplify::gen): Do not pass artificial operators to gen
8128 functions.
8129 (decision_tree::gen): Do not add artificial operators as parameters.
8130 (parser::parse_expr): Verify operator commutativity when :c is
8131 applied. Allow :C to override this.
8132 * match.pd: Adjust patterns to use :C instead of :c where required.
8133
8134 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
8135
8136 PR tree-optimization/71077
8137 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
8138 the combining step, use boolean_false_node and boolean_true_node
8139 as the designated false/true return values.
8140
8141 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8142
8143 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
8144 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
8145 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
8146 PRED_LOOP_EXIT.
8147
8148 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8149
8150 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
8151 of flags impliying the register renaming.
8152 * toplev.c (process_options): Do not imply flag_rename_registers with
8153 loop peeling.
8154
8155 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8156
8157 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
8158 default implementation.
8159
8160 2016-05-31 Nathan Sidwell <nathan@acm.org>
8161
8162 * dwarf2out.c (cur_line_info_table): Add GTY marker.
8163
8164 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8165
8166 * config/sh/constraints.md (b): Remove constraint.
8167 * config/sh/predicates.md (arith_reg_operand): Remove
8168 TARGET_REGISTER_P.
8169 * config/sh/sh-modes.def (PDI): Remove.
8170 * config/sh/sh.c (sh_target_reg_class,
8171 sh_optimize_target_register_callee_saved): Remove functions.
8172 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
8173 (sh_expand_epilogue): Update comment.
8174 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
8175 sh_secondary_reload): Remove TARGET_REGS related code.
8176 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
8177 TARGET_REGISTER_P): Remove macros.
8178 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
8179 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
8180 TR1_REG, TR2_REG): Remove constants.
8181 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
8182
8183 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8184
8185 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
8186 define_expand patterns.
8187 (adddi3_compact): Rename to adddi3.
8188 (subdi3_compact): Rename to subdi3.
8189 (*negdi2): Rename to negdi2.
8190 (*abs<mode>2): Rename to abs<mode>2.
8191
8192 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8193
8194 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
8195 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
8196 (atomic_sub_fetchsi): ... this new pattern.
8197 (mvtc): Add CC_REG clobber.
8198
8199 2016-05-31 Marek Polacek <polacek@redhat.com>
8200
8201 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
8202
8203 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8204
8205 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
8206 aarch64_fusion_enabled_p to check for fusion capabilities.
8207
8208 2016-05-31 Richard Biener <rguenther@suse.de>
8209
8210 PR tree-optimization/71352
8211 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
8212 minus one and a negate.
8213
8214 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8215
8216 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
8217 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
8218 Delete prototype.
8219 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
8220 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
8221 Remove use of aarch64_simd_attr_length_move, set length attribute
8222 directly.
8223 (*aarch64_be_movoi): Likewise.
8224 (*aarch64_be_movci): Likewise.
8225 (*aarch64_be_movxi): Likewise.
8226
8227 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8228
8229 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
8230 It no longer does that.
8231 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
8232
8233 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
8234
8235 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
8236 attribute __unused__.
8237
8238 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
8239
8240 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
8241 * config/arm/arm.c (arm_arch_thumb1): Define.
8242 (arm_option_override): Initialize arm_arch_thumb1.
8243 * config/arm/arm.h (arm_arch_thumb1): Declare.
8244 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
8245 support Thumb-1 ISA.
8246
8247 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
8248
8249 PR target/71346
8250 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
8251 `Yv' for scalar operand.
8252
8253 2016-05-31 Tom de Vries <tom@codesourcery.com>
8254
8255 PR tree-optimization/69068
8256 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
8257 phis with more than two args.
8258
8259 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
8260
8261 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
8262 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
8263 target.
8264
8265 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
8266
8267 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
8268 tune_64.
8269 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
8270 support on SPARC.
8271 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
8272 cpu_32, cpu_64, tune_32 and tune_64.
8273 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
8274
8275 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
8276
8277 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
8278
8279 2016-05-30 Andi Kleen <ak@linux.intel.com>
8280
8281 * auto-profile.c (read_profile): Replace asserts with errors
8282 when file does not exist.
8283 * gcov-io.c (gcov_read_words): Dito.
8284
8285 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8286
8287 * tree-cfg.c (print_loop): Print likely upper bounds.
8288
8289 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8290
8291 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
8292 * opts.c (default_options): Enable peel loops at -O3.
8293 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
8294 (try_peel_loop): Do not re-peel already peeled loops;
8295 use likely upper bounds; fix profile updating.
8296 (pass_complete_unroll::execute): Initialize peeled_loops.
8297
8298 2016-05-30 Martin Liska <mliska@suse.cz>
8299
8300 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
8301 computed costs by frequency of BB they belong to.
8302 (get_scaled_computation_cost_at): New function.
8303
8304 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
8305 Marc Glisse <marc.glisse@inria.fr>
8306
8307 PR tree-optimization/71289
8308 * match.pd (-1 / B < A, A > -1 / B): New transformations.
8309
8310 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8311
8312 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
8313
8314 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8315
8316 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
8317 for peeled copies; avoid underflow when updating estimates; correctly
8318 scale loop profile.
8319
8320 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
8321
8322 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
8323 r236875. Corrected oe3 to oe2 as obvious.
8324
8325 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
8326
8327 PR middle-end/71269
8328 PR middle-end/71252
8329 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
8330 that inserted stmt will not dominate stmts that defines its operand.
8331 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
8332 (rewrite_expr_tree_parallel): Likewise.
8333
8334 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
8335
8336 PR middle-end/71252
8337 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
8338 all fields including stmt_to_insert are swapped.
8339
8340 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8341
8342 * predict.h (force_edge_cold): Declare.
8343 * predict.c (force_edge_cold): New function.
8344 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
8345 updating.
8346 (canonicalize_loop_induction_variables): Fix formating.
8347
8348 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
8349
8350 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
8351 (visium_expand_copysign): Use gen_int_mode directly.
8352 (visium_compute_frame_size): Minor tweaks.
8353
8354 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8355
8356 * tree-vect-loop.c (vect_analyze_loop_2): Use
8357 likely_max_stmt_executions_int.
8358
8359 2016-05-30 Tom de Vries <tom@codesourcery.com>
8360
8361 PR tree-optimization/69067
8362 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
8363
8364 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
8365
8366 PR target/71245
8367 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
8368 New peepholes to remove unneeded fild/fistp pairs.
8369 (define_peephole2 atomic_loaddi_fpu): Ditto.
8370
8371 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8372
8373 * predict.c (maybe_hot_frequency_p): Avoid division.
8374
8375 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
8376
8377 * doc/install.texi: Use https for shop.fsf.org.
8378
8379 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8380
8381 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
8382 likely_max_stmt_executions_int.
8383
8384 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8385
8386 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
8387 likely_max_stmt_executions_int.
8388
8389 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8390
8391 * profile.c (compute_branch_probabilities): Do not report hitrates
8392 here.
8393 (branch_prob): Report hitrates here.
8394 * predict.c (gimple_predict_edge): Do not assert profile status;
8395 fix formatting issues.
8396
8397 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8398
8399 * predict.c (edge_predicted_by_p): New function.
8400 (predict_paths_for_bb): Do not put multiple predictions of the same type
8401 on one edge.
8402
8403 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8404
8405 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
8406 commit.
8407
8408 2016-05-28 Alan Modra <amodra@gmail.com>
8409
8410 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
8411
8412 2016-05-28 Alan Modra <amodra@gmail.com>
8413
8414 PR rtl-optimization/71275
8415 * ira.c (ira): Free dominance info.
8416
8417 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
8418
8419 * doc/sourcebuild.texi: New address for upstream Go repository.
8420
8421 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
8422
8423 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
8424 (TARGET_ARM_V7M): Likewise.
8425
8426 2016-05-26 Jeff Law <law@redhat.com>
8427
8428 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
8429 (thread_across_edge): Remove calls to find_jump_threads_backwards.
8430 * passes.def: Add jump threading passes before DOM/VRP.
8431 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
8432 argument to a basic block from an edge. Remove tests which are
8433 handled elsewhere.
8434 (pass_data_thread_jumps, class pass_thread_jumps): New.
8435 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
8436 (make_pass_thread_jumps): Likewise.
8437 * tree-pass.h (make_pass_thread_jumps): Declare.
8438
8439 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
8440
8441 * config/visium/visium-protos.h (split_double_move): Rename into...
8442 (visium_split_double_move): ...this.
8443 (visium_split_double_add): Declare.
8444 * config/visium/visium.c (split_double_move): Rename into...
8445 (visium_split_double_move): ...this.
8446 (visium_split_double_add): New function.
8447 (visium_expand_copysign): Renumber operands for consistency.
8448 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
8449 (DFmode move splitter): Likewise.
8450 (*addi3_insn): Split by means of visium_split_double_add.
8451 (*adddi3_insn_flags): Delete.
8452 (*plus_plus_sltu<subst_arith>): New insn.
8453 (*subdi3_insn): Split by means of visium_split_double_add.
8454 (subdi3_insn_flags): Delete.
8455 (*minus_minus_sltu<subst_arith>): New insn.
8456 (*negdi2_insn): Split by means of visium_split_double_add.
8457 (*negdi2_insn_flags): Delete.
8458
8459 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
8460
8461 * configure.ac: Treat a --with-headers option without argument
8462 the same as the default (i.e. consult sys-include directory).
8463 * configure: Regenerate.
8464
8465 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8466
8467 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
8468 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
8469 prototype.
8470 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
8471 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
8472
8473 2016-05-27 Jiong Wang <jiong.wang@arm.com>
8474
8475 PR target/63596
8476 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
8477 tree-stdarg analysis results.
8478 (aarch64_setup_incoming_varargs): Likewise.
8479
8480 2016-05-27 Jiong Wang <jiong.wang@arm.com>
8481
8482 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
8483 va_list_gpr_counter_field and va_list_fpr_counter_field.
8484
8485 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
8486
8487 PR67609
8488 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
8489 * config/aarch64/aarch64.c
8490 (aarch64_cannot_change_mode_class): Remove function.
8491 * config/aarch64/aarch64-protos.h
8492 (aarch64_cannot_change_mode_class): Remove.
8493
8494 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
8495
8496 * cfgloop.c (record_niter_bound): Record likely upper bounds.
8497 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
8498 get_likely_max_loop_iterations_int): New.
8499 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
8500 any_likely_upper_bound.
8501 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
8502 Declare.
8503 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
8504 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
8505 upper bound.
8506 (unroll_loop_constant_iterations): Likewise.
8507 (unroll_loop_runtime_iterations): Likewise.
8508 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
8509 * lto-streamer-out.c (output_cfg): Likewise.
8510 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
8511 bounds.
8512 (canonicalize_loop_induction_variables): Dump likely upper bounds.
8513 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
8514 (likely_max_loop_iterations): New.
8515 (likely_max_loop_iterations_int): New.
8516 (likely_max_stmt_executions): New.
8517 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
8518 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
8519 likely_max_stmt_executions): Declare.
8520
8521 2016-05-27 Marek Polacek <polacek@redhat.com>
8522
8523 PR middle-end/71308
8524 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
8525
8526 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8527
8528 * config/s390/s390.md (2x risbg splitters): Use
8529 reg_overlap_mentioned_p instead of rtx_equal_p.
8530
8531 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
8532
8533 * combine.c (make_compound_operation): Take known zero bits into
8534 account when checking for possible zero_extend.
8535
8536 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8537
8538 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
8539 Use const_int_operand for operand 2 predicate. Simplify expand code
8540 as a result.
8541
8542 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
8543
8544 PR middle-end/71279
8545 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
8546 into comparison.
8547
8548 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8549
8550 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
8551 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
8552 that returns CC_SESWPmode and CC_ZESWPmode.
8553 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
8554 and CC_SESWPmode.
8555 (aarch64_rtx_costs): Likewise.
8556
8557 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
8558
8559 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
8560 for ISA 3.0 min/max support.
8561 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
8562 conditional move support.
8563 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
8564 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
8565 available.
8566 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
8567 conditional moves where the comparison type is different from move
8568 type.
8569 (fp_minmax): New code iterator for smin/smax.
8570 (minmax): New code attributes for min/max.
8571 (SMINMAX): Likewise.
8572 (smax<mode>3): Combine min, max insns into one insn using the
8573 fp_minmax code iterator. Add support for ISA 3.0 min/max
8574 instructions that don't need -ffast-math.
8575 (s<minmax><mode>3): Likewise.
8576 (smax<mode>3_vsx): Likewise.
8577 (smin<mode>3): Likewise.
8578 (s<minmax><mode>3_vsx): Likewise.
8579 (smin<mode>3_vsx): Likewise.
8580 (pre-VSX min/max splitters): Likewise.
8581 (s<minmax><mode>3_fpr): Likewise.
8582 (movsfcc): Rewrite floating point conditional moves to combine
8583 SFmode/DFmode into a single insn.
8584 (mov<mode>cc): Likewise.
8585 (movdfcc): Likewise.
8586 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
8587 SFDF2 iterators to handle all combinations.
8588 (fseldfsf4): Likewise.
8589 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
8590 (fseldfdf4): Likewise.
8591 (fselsfdf4): Likewise.
8592 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
8593 comparison instructions that set a 0/-1 mask, and use it for
8594 floating point conditional move via XXSEL.
8595 (fpmask<mode>): Likewise.
8596 (xxsel<mode>): Likewise.
8597 * config/rs6000/predicates.md (min_max_operator): Delete, no
8598 longer used.
8599 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
8600 instructions that generate a 0/-1 mask for use with XXSEL.
8601 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
8602 say whether floating point min/max is available, either through
8603 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
8604 (TARGET_MINMAX_DF): Likewise.
8605
8606 2016-05-27 Alan Modra <amodra@gmail.com>
8607
8608 PR rtl-optimization/71275
8609 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
8610 for update_equiv_regs and combine_and_move_insns.
8611
8612 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
8613
8614 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
8615 if_then_else or cond RTXes to calculate attribute value.
8616 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
8617 <attr "length_immediate>: Ditto.
8618 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
8619 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
8620 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
8621 <attr "type">: Ditto.
8622 <attr "prefix_data16">: Ditto.
8623 <attr "prefix_extra">: Ditto.
8624 <attr "length_immediate">: Ditto.
8625 <attr "prefix">: Ditto.
8626 (vec_set<mode>_0) <attr "isa">: Ditto.
8627 <attr "prefix_extra">: Ditto.
8628 <attr "length_immediate">: Ditto.
8629 <attr "prefix">: Ditto.
8630 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
8631 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
8632 (sse2_storelpd) <attr "prefix_data16">: Ditto.
8633 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
8634 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
8635 <attr "length_immediate">: Ditto.
8636 <attr "prefix">: Ditto.
8637 (sse2_movsd) <attr "length_immediate">: Ditto.
8638 <attr "prefix">: Ditto.
8639 (vec_concatv2df) <attr "isa">: Ditto.
8640 <attr "prefix">: Ditto.
8641 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
8642 (*vec_extractv2di_1) <attr "isa">: Ditto.
8643 <attr "type">: Ditto.
8644 <attr "length_immediate">: Ditto.
8645 <attr "prefix_rex">: Ditto.
8646 <attr "prefix_extra">: Ditto.
8647 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
8648 <attr "prefix_extra">: Ditto.
8649 <attr "length_immediate">: Ditto.
8650 (vec_concatv2di) <attr "isa">: Ditto.
8651 <attr "prefix_extra">: Ditto.
8652 <attr "length_immediate">: Ditto.
8653 <attr "prefix">: Ditto.
8654
8655 2016-05-26 Martin Liska <mliska@suse.cz>
8656
8657 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
8658 function.
8659 (operator+): Likewise.
8660 (operator-): Likewise.
8661 (comp_cost::operator+=): Likewise.
8662 (comp_cost::operator-=): Likewise.
8663 (comp_cost::operator/=): Likewise.
8664 (comp_cost::operator*=): Likewise.
8665 (operator<): Likewise.
8666 (operator==): Likewise.
8667 (operator<=): Likewise.
8668 (new_cost): Remove.
8669 (infinite_cost_p): Likewise.
8670 (add_costs): Likewise.
8671 (sub_costs): Likewise.
8672 (compare_costs): Likewise.
8673 (set_group_iv_cost): Use the newly introduced functions.
8674 (get_address_cost): Likewise.
8675 (get_shiftadd_cost): Likewise.
8676 (force_expr_to_var_cost): Likewise.
8677 (split_address_cost): Likewise.
8678 (ptr_difference_cost): Likewise.
8679 (difference_cost): Likewise.
8680 (get_computation_cost_at): Likewise.
8681 (determine_group_iv_cost_generic): Likewise.
8682 (determine_group_iv_cost_address): Likewise.
8683 (determine_group_iv_cost_cond): Likewise.
8684 (autoinc_possible_for_pair): Likewise.
8685 (determine_group_iv_costs): Likewise.
8686 (cheaper_cost_pair): Likewise.
8687 (iv_ca_recount_cost): Likewise.
8688 (iv_ca_set_no_cp): Likewise.
8689 (iv_ca_set_cp): Likewise.
8690 (iv_ca_cost): Likewise.
8691 (iv_ca_new): Likewise.
8692 (iv_ca_dump): Likewise.
8693 (iv_ca_narrow): Likewise.
8694 (iv_ca_prune): Likewise.
8695 (iv_ca_replace): Likewise.
8696 (try_add_cand_for): Likewise.
8697 (try_improve_iv_set): Likewise.
8698 (find_optimal_iv_set): Likewise.
8699
8700 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
8701
8702 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
8703 that internal functions will clobber all caller-saved registers.
8704
8705 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
8706
8707 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
8708 Return a better case_values_threshold when optimizing.
8709
8710 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
8711
8712 * config/aarch64/aarch64-simd.md (aarch64_combinez):
8713 Add ? to integer variant.
8714 (aarch64_combinez_be): Likewise.
8715
8716 2016-05-26 Jakub Jelinek <jakub@redhat.com>
8717
8718 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
8719 instead of x constraint.
8720 (vcvtps2ph256<mask_name>): Likewise.
8721
8722 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
8723 alternative. Formatting fix.
8724
8725 * config/i386/sse.md
8726 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
8727 to ...
8728 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
8729 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
8730 maybe_evex prefix instead of vex.
8731 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
8732 EXT_REX_SSE_REG_P (op0) case in the splitter.
8733
8734 2016-05-25 Jeff Law <law@redhat.com>
8735
8736 PR tree-optimization/71272
8737 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
8738 Update comments. Add test for empty path.
8739
8740 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
8741
8742 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
8743 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
8744 special case builtin.
8745 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8746 code for ALTIVEC_BUILTIN_VEC_CMPNE.
8747 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8748 for __builtin_vec_cmpne.
8749
8750 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
8751
8752 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
8753 redundant test and bail out if the type of the new operand is not
8754 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
8755
8756 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
8757
8758 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
8759 (x_ix86_target_flags_explicit): Remove.
8760 * config/i386/i386.c (ix86_function_specific_save): Do not copy
8761 x_ix86_target_flags_explicit.
8762 (ix86_function_specific_restore): Ditto.
8763
8764 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
8765 H.J. Lu <hongjiu.lu@intel.com>
8766
8767 PR target/70738
8768 * common/config/i386/i386-common.c
8769 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
8770 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
8771 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
8772 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
8773 (-mgeneral-regs-only): Add new option.
8774 * config/i386/i386.c (ix86_option_override_internal): Don't enable
8775 x87 instructions if only general registers are allowed.
8776 (ix86_target_string): Add ix86_flags argument. Handle additional
8777 flags options through ix86_flags argument. Update all callers.
8778 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
8779
8780 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8781
8782 PR rtl-optimization/66940
8783 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
8784 decrementing desired_val will not overflow before performing these
8785 operations.
8786
8787 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
8788
8789 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
8790 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
8791 * config/i386/i386.c (enum ix86_builtins): Add
8792 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
8793 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
8794 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
8795 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
8796 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
8797 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
8798 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
8799 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
8800 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
8801 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
8802 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
8803 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
8804 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
8805 __builtin_ia32_cvtps2dq512_mask.
8806 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
8807 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
8808 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
8809 * config/i386/sse.md
8810 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
8811 Rename to ...
8812 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
8813 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
8814 to ...
8815 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
8816 (avx512f_vec_pack_sfix_v8df): New define_expand.
8817 (avx512f_roundpd512): Rename to ...
8818 (avx512f_round<castmode>512): ... this. Change iterator.
8819 (avx512f_roundps512_sfix): New define_expand.
8820 (round<mode>2_sfix): Change iterator.
8821
8822 2016-05-25 Nick Clifton <nickc@redhat.com>
8823
8824 * config/msp430/msp430.c (msp430_attr): Produce an error if a
8825 static interrupt handler is detected.
8826 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
8827 default linker script.
8828 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
8829 the low part of a symbolic pointer.
8830
8831 2016-05-25 Richard Biener <rguenther@suse.de>
8832
8833 PR tree-optimization/71261
8834 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
8835 interesting stmt instead of immediate uses when looking
8836 for the use operand to replace.
8837
8838 2016-05-25 Martin Liska <mliska@suse.cz>
8839
8840 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
8841
8842 2016-05-25 Richard Biener <rguenther@suse.de>
8843
8844 PR tree-optimization/71264
8845 * tree-vect-stmts.c (vect_init_vector): Properly deal with
8846 vector type val.
8847
8848 2016-05-25 Martin Liska <mliska@suse.cz>
8849
8850 PR tree-optimization/71239
8851 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
8852 if DECL_SIZE is NULL.
8853
8854 2016-05-25 Richard Biener <rguenther@suse.de>
8855
8856 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
8857 * tree-if-conv.c (pass_data_if_conversion): Use it.
8858
8859 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
8860
8861 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
8862 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
8863 * varpool.c (varpool_node::get_availability): Likewise.
8864
8865 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
8866
8867 * config/rs6000/altivec.md (VNEG iterator): New iterator for
8868 VNEGW/VNEGD instructions.
8869 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
8870 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
8871 support for ISA 3.0 VNEGW/VNEGD instructions.
8872
8873 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
8874
8875 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
8876 pointers inside OACC_DATA regions.
8877 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
8878 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
8879 (gimplify_adjust_omp_clauses): Fix typo in comment.
8880
8881 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
8882
8883 * config/rs6000/altivec.md (VParity): New mode iterator for vector
8884 parity built-in functions.
8885 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
8886 zeros.
8887 (p9v_parity<mode>2): Likewise.
8888 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
8889 parity.
8890 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
8891 (parity<mode>2): ISA 3.0 expander for vector parity.
8892 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
8893 power9 built-ins.
8894 (BU_P9_64BIT_MISC_0): Likewise.
8895 (BU_P9_MISC_0): Likewise.
8896 (BU_P9V_AV_1): Likewise.
8897 (BU_P9V_AV_2): Likewise.
8898 (BU_P9V_AV_3): Likewise.
8899 (BU_P9V_AV_P): Likewise.
8900 (BU_P9V_VSX_1): Likewise.
8901 (BU_P9V_OVERLOAD_1): Likewise.
8902 (BU_P9V_OVERLOAD_2): Likewise.
8903 (BU_P9V_OVERLOAD_3): Likewise.
8904 (VCTZB): Add vector count trailing zeros support.
8905 (VCTZH): Likewise.
8906 (VCTZW): Likewise.
8907 (VCTZD): Likewise.
8908 (VPRTYBD): Add vector parity support.
8909 (VPRTYBQ): Likewise.
8910 (VPRTYBW): Likewise.
8911 (VCTZ): Add overloaded vector count trailing zeros support.
8912 (VPRTYB): Add overloaded vector parity support.
8913 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8914 overloaded vector count trailing zeros and parity instructions.
8915 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
8916 vector parity support.
8917 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
8918 trailing zeros support.
8919 (vec_cntlz): Likewise.
8920 (vec_vctzb): Likewise.
8921 (vec_vctzd): Likewise.
8922 (vec_vctzh): Likewise.
8923 (vec_vctzw): Likewise.
8924 (vec_vprtyb): Add ISA 3.0 vector parity support.
8925 (vec_vprtybd): Likewise.
8926 (vec_vprtybw): Likewise.
8927 (vec_vprtybq): Likewise.
8928 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8929 the ISA 3.0 vector count trailing zeros and vector parity built-in
8930 functions.
8931
8932 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
8933
8934 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
8935 when there is stmt_to_insert.
8936
8937 2016-05-24 Martin Sebor <msebor@redhat.com>
8938
8939 PR c++/71147
8940 * tree.h (complete_or_array_type_p): New inline function.
8941
8942 2016-05-24 Jakub Jelinek <jakub@redhat.com>
8943
8944 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
8945 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
8946 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
8947
8948 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
8949 Limit 1st alternative to noavx isa, split 2nd alternative into one
8950 noavx and one avx alternative, use *x and Bm in the former and
8951 x and m in the latter.
8952
8953 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
8954 of sse4 for the first alternative, drop %v from the template
8955 and d operand modifier. Split second alternative into one sse4_noavx
8956 and one avx alternative, use *x instead of *v in the former and v
8957 instead of *v in the latter.
8958 (*sse4_1_extractps): Use noavx isa instead of * for the first
8959 alternative, drop %v from the template. Split second alternative into
8960 one noavx and one avx alternative, use *x instead of *v in the
8961 former and v instead of *v in the latter.
8962 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
8963 with noavx and the last one with avx.
8964 (sse4_1_phminposuw): Guard first alternative with noavx isa,
8965 split the second one into one noavx and one avx alternative,
8966 use *x and Bm in the former and x and m in the latter one.
8967 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
8968 alternatives.
8969
8970 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
8971 first two alternatives to noavx, use *x instead of *v in the second
8972 one, add avx alternative without *.
8973 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
8974 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
8975 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
8976
8977 2016-05-24 Jeff Law <law@redhat.com>
8978
8979 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
8980 New function, extracted from...
8981 (fsm_find_control_statement_thread_paths): Here. Use the new function.
8982 Allow simple copies and constant initializations in the SSA chain.
8983
8984 2016-05-24 Marek Polacek <polacek@redhat.com>
8985
8986 PR c/71249
8987 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
8988 scope.
8989
8990 2016-05-24 Jakub Jelinek <jakub@redhat.com>
8991
8992 PR c++/71257
8993 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
8994 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
8995 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
8996 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
8997 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
8998
8999 2016-05-24 Richard Biener <rguenther@suse.de>
9000
9001 PR tree-optimization/71240
9002 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
9003 has integral type.
9004
9005 2016-05-24 Richard Biener <rguenther@suse.de>
9006
9007 PR tree-optimization/71230
9008 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
9009
9010 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9011
9012 * tree-vectorizer.h (vectorizable_comparison): Delete.
9013 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
9014 PURE_SLP_STMT check.
9015 * tree-vect-stmts.c (vectorizable_call): Likewise.
9016 (vectorizable_simd_clone_call): Likewise.
9017 (vectorizable_conversion): Likewise.
9018 (vectorizable_assignment): Likewise.
9019 (vectorizable_shift): Likewise.
9020 (vectorizable_operation): Likewise.
9021 (vectorizable_load): Likewise.
9022 (vectorizable_condition): Likewise.
9023 (vectorizable_store): Likewise. Assert that we don't have
9024 hybrid SLP.
9025 (vectorizable_comparison): Make static. Remove redundant
9026 PURE_SLP_STMT check.
9027 (vect_transform_stmt): Assert that we always have an slp_node
9028 if PURE_SLP_STMT.
9029
9030 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9031
9032 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
9033 operands[2] against 1 with comparison against CONST1_RTX.
9034 (<shift>di3_neon): Likewise.
9035 * config/arm/predicates.md (const0_operand): Replace with comparison
9036 against CONST0_RTX.
9037
9038 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9039
9040 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
9041 operands[2] against 1 with comparison against CONST1_RTX.
9042 (ashrdi3): Likewise.
9043 (lshrdi3): Likewise.
9044 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
9045 UINTVAL.
9046 (ashrsi3): Likewise.
9047 (lshrsi3): Likewise.
9048 (rotrsi3): Likewise.
9049 (define_split above *compareqi_eq0): Likewise.
9050 (define_split above "prologue"): Likewise.
9051 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9052 * config/arm/predicates.md (shift_operator): Likewise.
9053 (shift_nomul_operator): Likewise.
9054 (sat_shift_operator): Likewise.
9055 (thumb1_cmp_operand): Likewise.
9056 (const_neon_scalar_shift_amount_operand): Replace manual range
9057 check with IN_RANGE.
9058 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
9059 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
9060
9061 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9062
9063 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
9064 with HOST_WIDE_INT_1.
9065 (insv): Likewise.
9066 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
9067 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
9068 (arm_canonicalize_comparison): Likewise.
9069 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
9070 HOST_WIDE_INT_1.
9071 (thumb1_size_rtx_costs): Likewise.
9072 (vfp_const_double_index): Replace cast of 1 to unsigned
9073 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9074 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
9075 HOST_WIDE_INT_1.
9076 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
9077 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9078 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
9079 HOST_WIDE_INT with HOST_WIDE_INT_1.
9080
9081 2016-05-24 Marek Polacek <polacek@redhat.com>
9082
9083 * tree-cfg.h (should_remove_lhs_p): New predicate.
9084 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
9085 * gimplify.c (gimplify_modify_expr): Likewise.
9086 * tree-cfg.c (verify_gimple_call): Likewise.
9087 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
9088 * gimple-fold.c: Include "tree-cfg.h".
9089 (gimple_fold_call): Use should_remove_lhs_p.
9090
9091 2016-05-24 Richard Biener <rguenther@suse.de>
9092
9093 PR tree-optimization/71253
9094 * cfganal.h (control_dependences): Make robust against edge
9095 and BB removal.
9096 (control_dependences::control_dependences): Remove edge_list argument.
9097 (control_dependences::get_edge): Remove.
9098 (control_dependences::get_edge_src): Add.
9099 (control_dependences::get_edge_dest): Likewise.
9100 (control_dependences::m_el): Make a vector of edge src/dest index.
9101 * cfganal.c (control_dependences::find_control_dependence): Adjust.
9102 (control_dependences::control_dependences): Likewise.
9103 (control_dependences::~control_dependence): Likewise.
9104 (control_dependences::get_edge): Remove.
9105 (control_dependences::get_edge_src): Add.
9106 (control_dependences::get_edge_dest): Likewise.
9107 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
9108 get_edge_src.
9109 (perform_tree_ssa_dce): Adjust.
9110 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
9111 get_edge_src.
9112 (pass_loop_distribution::execute): Adjust. Do loop destroying
9113 conditional on changed.
9114
9115 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9116
9117 PR target/69857
9118 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
9119 return. Reindent transformation comment and mention the ARM state
9120 behavior.
9121
9122 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9123
9124 PR middle-end/71252
9125 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
9126 after build_and_add_sum creates new use stmt.
9127
9128 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9129
9130 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
9131 load_lanes/grouped_load classification comes first. Don't check
9132 whether the vectorization factor is a multiple of the group size
9133 for load_lanes.
9134
9135 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9136
9137 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
9138 GROUP_GAP for single-element interleaving.
9139 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
9140 variable.
9141
9142 2016-05-24 Richard Biener <rguenther@suse.de>
9143
9144 PR middle-end/70434
9145 PR c/69504
9146 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
9147 bases which are accessed with non-invariant indices.
9148 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
9149 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
9150
9151 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9152
9153 PR middle-end/71170
9154 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
9155 (add_to_ops_vec): Add stmt_to_insert.
9156 (add_repeat_to_ops_vec): Init stmt_to_insert.
9157 (insert_stmt_before_use): New.
9158 (transform_add_to_multiply): Remove mult_stmt insertion and add it
9159 to ops vector.
9160 (get_ops): Init stmt_to_insert.
9161 (maybe_optimize_range_tests): Likewise.
9162 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
9163 (rewrite_expr_tree_parallel): Likewise.
9164 (reassociate_bb): Likewise.
9165
9166 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9167
9168 PR target/71201
9169 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
9170 ISA 3.0 xxperm fusion alternative.
9171 (altivec_vperm_v8hiv16qi): Likewise.
9172 (altivec_vperm_<mode>_uns_internal): Likewise.
9173 (vperm_v8hiv4si): Likewise.
9174 (vperm_v16qiv8hi): Likewise.
9175
9176 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9177 Kelvin Nilsen <kelvin@gcc.gnu.org>
9178
9179 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
9180 vpermr/xxpermr on ISA 3.0.
9181 (altivec_expand_vec_perm_le): Likewise.
9182 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
9183 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
9184 ISA 3.0.
9185
9186 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
9187
9188 * config/i386/i386.h (IS_STACK_MODE): Enable for
9189 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
9190 SSE_FLOAT_MODE_P macros.
9191 * config/i386/i386.c (ix86_preferred_reload_class): Use
9192 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
9193 Cleanup regclass processing for CONST_DOUBLE_P.
9194 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
9195 (ix86_rtx_costs): Remove redundant TARGET_80387 check
9196 with IS_STACK_MODE macro.
9197 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
9198 with TARGET_SSE2.
9199 (*movdf_internal): Use IS_STACK_MODE macro.
9200 (*movsf_internal): Ditto.
9201
9202 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
9203
9204 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
9205 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
9206
9207 2016-05-23 Jeff Law <law@redhat.com>
9208
9209 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
9210 extracted from ...
9211 (fsm_find_control_statement_thread_paths): Call it.
9212
9213 2016-05-23 Martin Jambor <mjambor@suse.cz>
9214
9215 PR ipa/71234
9216 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
9217 from_global_constant if t is not NULL.
9218
9219 2016-05-23 Marek Polacek <polacek@redhat.com>
9220
9221 PR c/49859
9222 * common.opt (Wswitch-unreachable): New option.
9223 * doc/invoke.texi: Document -Wswitch-unreachable.
9224 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
9225 warning.
9226
9227 2016-05-23 Bin Cheng <bin.cheng@arm.com>
9228
9229 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
9230 TMR_INDEX is non-NULL.
9231
9232 2016-05-23 Richard Biener <rguenther@suse.de>
9233
9234 PR tree-optimization/71230
9235 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
9236 (try_special_add_to_ops): ... here. Always test for single-use.
9237
9238 2016-05-23 Martin Jambor <mjambor@suse.cz>
9239
9240 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
9241 default block if a PHI node in the original one would be resized.
9242
9243 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9244
9245 PR tree-optimization/58135
9246 * tree-vect-slp.c: When group size is not multiple
9247 of vector size, allow splitting of store group at
9248 vector boundary.
9249
9250 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
9251
9252 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
9253
9254 2016-05-22 Jakub Jelinek <jakub@redhat.com>
9255
9256 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
9257 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
9258 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
9259 of 64x2.
9260
9261 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
9262 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
9263 v constraint instead of x and vinserti32x4 insn.
9264
9265 * config/i386/sse.md (i128vldq): New mode iterator.
9266 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
9267 avx512dq and avx512vl alternatives.
9268
9269 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
9270 constraint, use maybe_evex prefix instead of vex.
9271 (vec_dupv4sf): Use v constraint instead of x for output
9272 operand except for noavx alternative, use Yv constraint
9273 instead of x for input. Use maybe_evex prefix instead of vex.
9274 (*vec_dupv4si): Likewise.
9275 (*vec_dupv2di): Likewise.
9276
9277 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
9278
9279 PR middle-end/40921
9280 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
9281 (linearize_expr_tree): Call try_special_add_to_ops.
9282 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
9283
9284 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9285
9286 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
9287 to computed stack_usage.
9288
9289 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9290
9291 PR target/71103
9292 * config/avr/avr.md (define_expand "mov<mode>"): If the source
9293 operand is subreg (symbol_ref) then move the symbol ref to register.
9294
9295 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
9296
9297 * tree.c (array_at_struct_end_p): Look through MEM_REF.
9298
9299 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
9300
9301 PR middle-end/71179
9302 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
9303 VECTOR type.
9304
9305 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
9306
9307 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
9308 ranges by calling get_single_symbol and tidy up. Look more closely
9309 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
9310
9311 2016-05-20 Jeff Law <law@redhat.com>
9312
9313 * bitmap.c (bitmap_find_bit): Remove useless test.
9314
9315 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
9316
9317 * function.c (thread_prologue_and_epilogue_insns): Commit the
9318 insertion of the epilogue.
9319
9320 2016-05-20 Martin Jambor <mjambor@suse.cz>
9321
9322 PR tree-optimization/70884
9323 * tree-sra.c (initialize_constant_pool_replacements): Do not check
9324 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
9325 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
9326 of constant pool data as a reason for scalarization.
9327
9328 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
9329
9330 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
9331 for naked functions.
9332 (thumb1_expand_prologue): Likewise.
9333
9334 2016-05-20 Nathan Sidwell <nathan@acm.org>
9335
9336 * config/nvptx/nptx.c (nvptx_option_override): Only set
9337 flag_toplevel_reorder, if not explicitly specified. Set
9338 flag_no_common, unless explicitly specified.
9339
9340 2016-05-20 David Malcolm <dmalcolm@redhat.com>
9341
9342 * calls.c (can_implement_as_sibling_call_p): Mark param
9343 reg_parm_stack_space with ATTRIBUTE_UNUSED.
9344
9345 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
9346
9347 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
9348 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
9349 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
9350 constants.
9351 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
9352 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
9353 and CASE_CONST_ANY.
9354
9355 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
9356
9357 * config/nvptx/nvptx.md (sincossf3): New pattern.
9358
9359 2016-05-20 David Malcolm <dmalcolm@redhat.com>
9360
9361 * calls.c (maybe_complain_about_tail_call): New function.
9362 (initialize_argument_information): Call
9363 maybe_complain_about_tail_call when clearing *may_tailcall.
9364 (can_implement_as_sibling_call_p): Call
9365 maybe_complain_about_tail_call when returning false.
9366 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
9367 ensure try_tail_call is set. Call maybe_complain_about_tail_call
9368 if tail-call optimization fails.
9369 * cfgexpand.c (expand_call_stmt): Initialize
9370 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
9371 * gimple-pretty-print.c (dump_gimple_call): Dump
9372 gimple_call_must_tail_p.
9373 * gimple.c (gimple_build_call_from_tree): Call
9374 gimple_call_set_must_tail with the value of
9375 CALL_EXPR_MUST_TAIL_CALL.
9376 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
9377 (gimple_call_set_must_tail): New function.
9378 (gimple_call_must_tail_p): New function.
9379 * print-tree.c (print_node): Update printing of TREE_STATIC
9380 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
9381 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
9382 trailing comment listing applicable flags.
9383 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
9384
9385 2016-05-20 David Malcolm <dmalcolm@redhat.com>
9386
9387 * calls.c (expand_call): Move "Rest of purposes for tail call
9388 optimizations to fail" to...
9389 (can_implement_as_sibling_call_p): ...this new function, and
9390 split into multiple "if" statements.
9391
9392 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
9393
9394 * cfgloop.h (expected_loop_iterations_unbounded,
9395 expected_loop_iterations): Unconstify.
9396 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
9397 profile with known upper bound; return 3 when profile is absent.
9398 (expected_loop_iterations): Update.
9399
9400 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
9401
9402 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
9403 and get_max_loop_iterations_int.
9404
9405 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
9406
9407 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
9408 realistic upper bounds here.
9409
9410 2016-05-20 Jakub Jelinek <jakub@redhat.com>
9411
9412 PR c++/71210
9413 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
9414 calls if the LHS is variable length or has addressable type.
9415 If targets[0]->decl is a noreturn call with void return type and
9416 zero arguments, adjust fntype and remove lhs in that case.
9417
9418 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
9419
9420 PR tree-optimization/71079
9421 PR tree-optimization/71206
9422 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
9423
9424 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9425
9426 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
9427 (get_vec_alignment_for_array_decl): Likewise.
9428 (get_vec_alignment_for_record_decl): Likewise.
9429 (increase_alignment::execute): Move code to find alignment to
9430 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
9431 (type_align_map): New hash_map.
9432
9433 2016-05-20 Richard Guenther <rguenther@suse.de>
9434
9435 PR tree-optimization/29756
9436 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
9437 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
9438 * fold-const.c (operand_equal_p): Likewise.
9439 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
9440 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
9441 * tree-inline.c (estimate_operator_cost): Likewise.
9442 * tree-pretty-print.c (dump_generic_node): Likewise.
9443 * tree-ssa-operands.c (get_expr_operands): Likewise.
9444 * cfgexpand.c (expand_debug_expr): Likewise.
9445 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
9446 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
9447 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
9448 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
9449 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
9450 (execute_update_addresses_taken): Do it.
9451
9452 2016-05-20 Richard Biener <rguenther@suse.de>
9453
9454 PR tree-optimization/71185
9455 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
9456 register operations.
9457
9458 2016-05-20 Richard Biener <rguenther@suse.de>
9459
9460 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
9461 gimple_seq_add_seq_without_update.
9462 (release_bb_predicate): Assert we have no operands to free.
9463 (if_convertible_loop_p_1): Calculate post dominators later.
9464 Do not free BB predicates here.
9465 (combine_blocks): Do not recompute BB predicates.
9466 (version_loop_for_if_conversion): Save BB predicates around
9467 loop versioning.
9468
9469 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
9470
9471 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
9472 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
9473 code. Ignore sibcalls on EDGE_IGNORE edges.
9474 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
9475 on edges for sibcalls that run without prologue. The rest of the
9476 function is combined from...
9477 (fix_fake_fallthrough_edge): ... this, and ...
9478 (try_shrink_wrapping): ... a part of this. Remove the bb_with
9479 function argument, make it a local variable.
9480
9481 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
9482
9483 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
9484 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
9485 for 32-bit mode and SEH for 64-bit.
9486 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
9487 TARGET_64BIT_DEFAULT.
9488
9489 2016-05-19 Ryan Burn <contact@rnburn.com>
9490
9491 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
9492 * gengtype.c (open_base_files): Add cilk.h to ifiles.
9493
9494 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
9495
9496 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
9497 force pending loads from memory.
9498
9499 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
9500
9501 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
9502 (UNSPEC_DARN_32): New unspec constant.
9503 (UNSPEC_DARN_RAW): New unspec constant.
9504 (darn_32): New instruction.
9505 (darn_raw): New instruction.
9506 (darn): New instruction.
9507 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
9508 support and documentation for this macro.
9509 (BU_P9_MISC_1): New macro definition.
9510 (BU_P9_64BIT_MISC_0): New macro definition.
9511 (BU_P9_MISC_0): New macro definition.
9512 (darn_32): New builtin definition.
9513 (darn_raw): New builtin definition.
9514 (darn): New builtin definition.
9515 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
9516 RS6000_BUILTIN_0 directives to surround each occurrence of
9517 #include "rs6000-builtin.def".
9518 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
9519 RS6000_BTM_64BIT flags to the returned mask, depending on
9520 configuration.
9521 (def_builtin): Correct an error in the assignments made to the
9522 debugging variable attr_string.
9523 (rs6000_expand_builtin): Add support for no-operand built-in
9524 functions.
9525 (builtin_function_type): Remove fatal_error assertion that is no
9526 longer valid.
9527 (rs6000_common_init_builtins): Add support for no-operand built-in
9528 functions.
9529 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
9530 definition.
9531 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
9532 definition.
9533 (RS6000_BTM_64BIT): New macro definition.
9534 * doc/extend.texi: Document __builtin_darn (void),
9535 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
9536 functions.
9537
9538 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
9539
9540 * tree-vect-loop.c (vect_analyze_loop_2): Use also
9541 max_loop_iterations_int.
9542
9543 2016-05-19 Marek Polacek <polacek@redhat.com>
9544
9545 PR tree-optimization/71031
9546 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
9547 condition and adjust the code a bit.
9548
9549 2016-05-19 Martin Liska <mliska@suse.cz>
9550
9551 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
9552 auto_vec instead of vec.
9553
9554 2016-05-19 Martin Liska <mliska@suse.cz>
9555
9556 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
9557
9558 2016-05-19 Martin Liska <mliska@suse.cz>
9559
9560 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
9561
9562 2016-05-19 Martin Liska <mliska@suse.cz>
9563
9564 * ipa-pure-const.c (set_function_state): Remove an existing
9565 funct_state.
9566 (remove_node_data): Do not free it as it's released
9567 in set_function_state.
9568
9569 2016-05-19 Martin Liska <mliska@suse.cz>
9570
9571 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
9572 bitmap.
9573
9574 2016-05-19 Martin Liska <mliska@suse.cz>
9575
9576 * omp-simd-clone.c (simd_clone_adjust): Release vector.
9577
9578 2016-05-19 Martin Liska <mliska@suse.cz>
9579
9580 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
9581 an auto_vec instead of re-creating it.
9582
9583 2016-05-19 Martin Liska <mliska@suse.cz>
9584
9585 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
9586 auto_vec instead of vec.
9587
9588 2016-05-19 Martin Liska <mliska@suse.cz>
9589
9590 * lto-section-in.c (lto_get_section_data): Call
9591 lto_check_version with additional argument.
9592 * lto-streamer.c (lto_check_version): Add new argument.
9593 * lto-streamer.h (lto_check_version): Likewise.
9594
9595 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9596
9597 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
9598 Don't add cost of inner memory when handling sign-extended loads.
9599
9600 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
9601
9602 PR rtl-optimization/71148
9603 * cse.c (cse_main): Free dominance info.
9604 (rest_of_handle_cse): Don't free dominance info.
9605 (rest_of_handle_cse2): Likewise.
9606 (rest_of_handle_cse_after_global_opts): Likewise.
9607
9608 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9609
9610 PR target/71056
9611 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
9612 NULL_TREE early if NEON is not available. Remove now redundant check
9613 in ARM_CHECK_BUILTIN_MODE.
9614
9615 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
9616
9617 PR sanitizer/64354
9618 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
9619 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
9620 * doc/cpp.texi: Document new macros.
9621
9622 2016-05-19 Bin Cheng <bin.cheng@arm.com>
9623
9624 PR tree-optimization/69848
9625 * tree-vect-loop.c (vectorizable_reduction): Don't factor
9626 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
9627
9628 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
9629
9630 * function.c (thread_prologue_and_epilogue_insn): Move the
9631 "goto epilogue_done" one block later.
9632
9633 2016-05-19 Richard Biener <rguenther@suse.de>
9634
9635 PR tree-optimization/70729
9636 * passes.def: Move LIM pass before PRE. Remove no longer
9637 required copyprop and move first DCE out of the loop pipeline.
9638
9639 2016-05-18 David Malcolm <dmalcolm@redhat.com>
9640
9641 PR driver/69265
9642 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
9643 (OBJS-libcommon-target): ...here.
9644 * opts-common.c: Include spellcheck.h.
9645 (cmdline_handle_error): Build a vec of valid options and use it
9646 to suggest provide hints for misspelled arguments.
9647
9648 2016-05-18 Jakub Jelinek <jakub@redhat.com>
9649
9650 PR c++/71100
9651 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
9652 lhs if it has TREE_ADDRESSABLE type.
9653
9654 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
9655
9656 PR target/71145
9657 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
9658 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
9659
9660 2016-05-18 Martin Jambor <mjambor@suse.cz>
9661
9662 PR ipa/69708
9663 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
9664 input for NOP_EXPR pass-through functions.
9665 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
9666 aggregate global constant VAR_DECLs in constant jump functions.
9667
9668 2016-05-18 Martin Jambor <mjambor@suse.cz>
9669
9670 PR ipa/69708
9671 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
9672 from TREE_READONLY parameters.
9673
9674 2016-05-18 Martin Jambor <mjambor@suse.cz>
9675
9676 PR ipa/69708
9677 * cgraph.h (cgraph_indirect_call_info): New field
9678 guaranteed_unmodified.
9679 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
9680 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
9681 appropriate.
9682 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
9683 pass the parameter value to ipa_find_agg_cst_for_param.
9684 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
9685 guaranteed_unmodified, store AA results there instead of bailing out
9686 if present.
9687 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
9688 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
9689 (find_constructor_constant_at_offset): New function.
9690 (ipa_find_agg_cst_from_init): Likewise.
9691 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
9692 static initializers of contants, report back through a new paameter
9693 from_global_constant if that was the case.
9694 (try_make_edge_direct_simple_call): Also pass parameter value to
9695 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
9696 appropriate.
9697 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
9698 (ipa_read_indirect_edge_info): Likewise.
9699 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
9700 (ipa_load_from_parm_agg): Likewise.
9701
9702 2016-05-18 Jiong Wang <jiong.wang@arm.com>
9703
9704 PR rtl-optimization/71150
9705 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
9706 check.
9707
9708 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
9709
9710 PR target/70915
9711 * config/rs6000/constraints.md (wE constraint): New constraint
9712 for a vector constant that can be loaded with XXSPLTIB.
9713 (wM constraint): New constraint for a vector constant of a 1's.
9714 (wS constraint): New constraint for a vector constant that can be
9715 loaded with XXSPLTIB and a vector sign extend instruction.
9716 * config/rs6000/predicates.md (xxspltib_constant_split): New
9717 predicates for wE/wS constraints.
9718 (xxspltib_constant_nosplit): Likewise.
9719 (easy_vector_constant): Add support for constants that can be
9720 loaded via XXSPLTIB.
9721 (all_ones_constant): New predicate for vector constant with all
9722 1's set.
9723 (splat_input_operand): Add support for ISA 3.0 word splat operations.
9724 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
9725 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
9726 instruction and possibly with a sign extension.
9727 (output_vec_const_move): Add support for XXSPLTIB. If we are
9728 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
9729 instead of XXLXOR/XXLORC.
9730 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
9731 operations.
9732 (rs6000_legitimize_reload_address): Likewise.
9733 (rs6000_output_move_128bit): Use output_vec_const_move to emit
9734 constants.
9735 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
9736 combine VSX_M and VSX_M2 into one iterator.
9737 (VSX_M2): Likewise.
9738 (VSINT_84): New iterators for loading constants with XXSPLTIB.
9739 (VSINT_842): Likewise.
9740 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
9741 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
9742 XXSPLTIB instruction.
9743 (xxspltib_<mode>_nosplit): Likewise.
9744 (xxspltib_<mode>_split): New insn to load up constants with
9745 XXSPLTIB and a sign extend instruction.
9746 (vsx_mov<mode>): Replace single move that handled all vector types
9747 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
9748 moves (when -mvsx-timode is in effect) into the main vector
9749 moves. Eliminate separate moves for <VSr> <VSa>, where the
9750 preferred register class (<VSr>) is listed first, and the
9751 secondary register class (<VSa>) is listed second with a '?' to
9752 discourage use. Prefer loading 0/-1 in any VSX register for ISA
9753 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
9754 that if the register was involved in a slow operation, the
9755 clear/set operation does not wait for the slow operation to
9756 finish. Adjust the length attributes for 32-bit mode. Use
9757 rs6000_output_move_128bit and drop the use of the string
9758 instructions for 32-bit movti when -mvsx-timode is in effect. Use
9759 spacing so that the alternatives and attributes don't generate
9760 long lines, and put things in columns, so that it is easier to
9761 match up the operands and attributes with the insn alternatives.
9762 (vsx_mov<mode>_64bit): Likewise.
9763 (vsx_mov<mode>_32bit): Likewise.
9764 (vsx_movti_64bit): Fold movti into normal vector moves.
9765 (vsx_movti_32bit): Likewise.
9766 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
9767 splat instructions.
9768 (vsx_splat_v4si_internal): Likewise.
9769 (vsx_splat_v4sf_internal): Likewise.
9770 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
9771 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
9772 extend vector elements.
9773 (vsx_sign_extend_hi_<mode>): Likewise.
9774 (vsx_sign_extend_si_v2di): Likewise.
9775 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
9776 declaration.
9777 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
9778 constraints. Add trailing period to wL documentation.
9779
9780 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
9781
9782 PR middle-end/71020
9783 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
9784 * tree-dfa.c (replace_abnormal_ssa_names): New function.
9785 * tree-call-cdce.c: Include tree-dfa.h.
9786 (can_guard_call_p): New function, extracted from...
9787 (can_use_internal_fn): ...here.
9788 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
9789 and return void.
9790 (shrink_wrap_one_built_in_call): Likewise.
9791 (use_internal_fn): Likewise.
9792 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
9793 and return void. Call replace_abnormal_ssa_names.
9794 (pass_call_cdce::execute): Check can_guard_call_p during the
9795 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
9796 will always change something.
9797
9798 2016-05-18 Martin Jambor <mjambor@suse.cz>
9799
9800 PR ipa/70646
9801 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
9802 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
9803
9804 2016-05-18 Martin Jambor <mjambor@suse.cz>
9805
9806 PR ipa/70646
9807 * ipa-inline.h (condition): New field size.
9808 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
9809 for comaprison and store it into the new condition.
9810 (evaluate_conditions_for_known_args): Use condition size to check
9811 access sizes for all but CHANGED conditions.
9812 (unmodified_parm_1): New parameter size_p, store access size into it.
9813 (unmodified_parm): Likewise.
9814 (unmodified_parm_or_parm_agg_item): Likewise.
9815 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
9816 (set_cond_stmt_execution_predicate): Extract access sizes and store
9817 them to conditions.
9818 (set_switch_stmt_execution_predicate): Likewise.
9819 (will_be_nonconstant_expr_predicate): Likewise.
9820 (will_be_nonconstant_predicate): Likewise.
9821 (inline_read_section): Stream condition size.
9822 (inline_write_summary): Likewise.
9823
9824 2016-05-18 Richard Biener <rguenther@suse.de>
9825
9826 * tree-ssa-loop-im.c (determine_max_movement): Properly add
9827 condition cost to PHI cost instead of total_cost.
9828
9829 2016-05-18 Martin Liska <mliska@suse.cz>
9830
9831 PR fortran/70856
9832 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
9833 merged variables.
9834
9835 2016-05-18 Richard Biener <rguenther@suse.de>
9836
9837 * lto-streamer.h (LTO_major_version): Bump to 6.
9838
9839 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
9840
9841 * function.c (make_split_prologue_seq, make_prologue_seq,
9842 make_epilogue_seq): New functions, factored out from...
9843 (thread_prologue_and_epilogue_insns): Here.
9844
9845 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
9846
9847 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
9848 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
9849 of before. Add a comment.
9850
9851 2016-05-18 Bin Cheng <bin.cheng@arm.com>
9852
9853 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
9854 expression pointer, not pointer to the pointer.
9855
9856 2016-05-18 Jakub Jelinek <jakub@redhat.com>
9857
9858 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
9859 (avx2_pbroadcast<mode>): Add another alternative with v instead
9860 of x constraints in it, using <pbroadcast_evex_isa> isa.
9861 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
9862
9863 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
9864 constraint x instead of v in second alternative, add avx512bw
9865 alternative.
9866
9867 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
9868 constraint x instead of v in second alternative, add avx512bw
9869 alternative.
9870
9871 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
9872 constraint x instead of v in second alternative, add avx512bw
9873 alternative.
9874
9875 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
9876 avx512bw alternative.
9877
9878 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
9879
9880 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
9881 array to 128 chars.
9882 (define_insn "*andnottf3"): Ditto.
9883 (define_insn "*<code><mode>3"/any_logic): Ditto.
9884 (define_insn "*<code>tf3"/any_logic): Ditto.
9885 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
9886 operand to block AVX-512VL insn variant emit when it is not enabled.
9887
9888 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
9889
9890 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
9891 constraint fot SF mode.
9892
9893 2016-05-18 Petr Murzin <petr.murzin@intel.com>
9894 Kirill Yukhin <kirill.yukhin@intel.com>
9895
9896 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
9897 modifiers.
9898 (define_insn "rsqrt14<mode>"): Ditto.
9899 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9900 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
9901 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
9902 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
9903 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
9904 Ditto.
9905 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
9906 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
9907 * config/i386/i386.c (ix86_print_operand): Expand check for size
9908 override codes for Intel syntax.
9909
9910 2016-05-18 Richard Biener <rguenther@suse.de>
9911
9912 PR tree-optimization/71168
9913 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
9914 initialization earlier.
9915
9916 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
9917
9918 * config/aarch64/aarch64-simd.md
9919 (aarch64_reduc_plus_internal<mode>): Rename to...
9920 (reduc_plus_scal): ...This, and remove previous implementation.
9921
9922 2016-05-18 Richard Biener <rguenther@suse.de>
9923
9924 * passes.def: Put late dse and cd_dce in canonical order.
9925
9926 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
9927
9928 * ipa-inline-transform.c (preserve_function_body_p): Look for
9929 first non-thunk clone.
9930 (save_function_body): Save into first non-thunk.
9931 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
9932 up call stmt id.
9933 (lto_output_node): Inline thunks don't need body in every
9934 partition.
9935 * lto-streamer-in.c: Do not fixup thunk clones.
9936 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
9937 thunks.
9938 * tree-inline.c (copy_bb): Be prepared for target node to be new after
9939 folding suceeds.
9940
9941 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
9942
9943 PR middle-end/63586
9944 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
9945 (reassociate_bb): Call transform_add_to_multiply.
9946
9947 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
9948
9949 * config/aarch64/aarch64.c (all_extensions): Removed unused
9950 static variable.
9951
9952 2016-05-17 Nathan Sidwell <nathan@acm.org>
9953
9954 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
9955 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
9956
9957 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
9958
9959 PR tree-optimization/54579
9960 PR middle-end/55299
9961 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
9962
9963 2016-05-17 Marek Polacek <polacek@redhat.com>
9964
9965 PR ipa/71146
9966 * tree-inline.c (expand_call_inline): Call
9967 maybe_remove_unused_call_args.
9968
9969 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
9970
9971 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
9972 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
9973 * doc/md.texi (fmin@var{m}3): Likewise.
9974
9975 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
9976
9977 * match.pd (X & C): New transformation.
9978
9979 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
9980
9981 * match.pd (~X & Y): New transformation.
9982
9983 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
9984
9985 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
9986 information for new SSA_NAME.
9987 (simplify_conversion_using_ranges): Get range through get_range_info
9988 instead of get_value_range.
9989
9990 2016-05-17 Jiong Wang <jiong.wang@arm.com>
9991
9992 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
9993 Remove inline assembly.
9994 (vmvn_s16): Likewise.
9995 (vmvn_s32): Likewise.
9996 (vmvn_u8): Likewise.
9997 (vmvn_u16): Likewise.
9998 (vmvn_u32): Likewise.
9999 (vmvnq_s8): Likewise.
10000 (vmvnq_s16): Likewise.
10001 (vmvnq_s32): Likewise.
10002 (vmvnq_u8): Likewise.
10003 (vmvnq_u16): Likewise.
10004 (vmvnq_u32): Likewise.
10005 (vmvn_p8): Likewise.
10006 (vmvnq_p16): Likewise.
10007
10008 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10009
10010 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
10011 Use builtin.
10012 (vmul_n_s16): Likewise.
10013 (vmul_n_s32): Likewise.
10014 (vmul_n_u16): Likewise.
10015 (vmul_n_u32): Likewise.
10016 (vmulq_n_f32): Likewise.
10017 (vmulq_n_f64): Likewise.
10018 (vmulq_n_s16): Likewise.
10019 (vmulq_n_s32): Likewise.
10020 (vmulq_n_u16): Likewise.
10021 (vmulq_n_u32): Likewise.
10022
10023 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10024
10025 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
10026 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
10027
10028 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10029
10030 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
10031 to *aarch64_fma4_elt_from_dup<mode>.
10032 (*aarch64_fnma4_elt_to_128df): Rename to
10033 *aarch64_fnma4_elt_from_dup<mode>.
10034 * config/aarch64/arm_neon.h (vfma_n_f64): New.
10035 (vfms_n_f32): Likewise.
10036 (vfms_n_f64): Likewise.
10037 (vfmsq_n_f32): Likewise.
10038 (vfmsq_n_f64): Likewise.
10039
10040 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
10041
10042 * wide-int.h: Change fixed_wide_int_storage from class to struct.
10043
10044 2016-05-17 Richard Biener <rguenther@suse.de>
10045
10046 PR tree-optimization/71132
10047 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
10048 Only add control dependences for blocks in the loop.
10049 (build_rdg): Adjust.
10050 (generate_code_for_partition): Return whether loop should
10051 be destroyed and delay that.
10052 (distribute_loop): Likewise.
10053 (pass_loop_distribution::execute): Record loops to be destroyed
10054 and perform delayed destroying of loops.
10055
10056 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10057
10058 PR target/70809
10059 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
10060
10061 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10062
10063 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
10064
10065 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
10066
10067 PR target/71114
10068 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
10069 insertion point for instructions generated by validize_mem.
10070
10071 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10072
10073 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
10074 in brackets.
10075
10076 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10077
10078 * config/aarch64/aarch64.c
10079 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
10080 rather than a macro.
10081
10082 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10083
10084 * doc/invoke.texi (AArch64 Options): Various updates.
10085
10086 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10087
10088 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
10089 into instrumentation thunks.
10090 * cif-code.def (CIF_CHKP): New.
10091
10092 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
10093
10094 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
10095
10096 2016-05-16 Martin Jambor <mjambor@suse.cz>
10097
10098 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
10099 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
10100
10101 2016-05-16 Marek Polacek <polacek@redhat.com>
10102
10103 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
10104 commentary.
10105
10106 2016-05-16 Martin Jambor <mjambor@suse.cz>
10107
10108 PR hsa/70857
10109 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
10110 the outlined kernel function.
10111
10112 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
10113
10114 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
10115 (ISA_HAS_DLSA): Ditto.
10116
10117 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
10118
10119 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
10120
10121 2016-05-16 Nathan Sidwell <nathan@acm.org>
10122
10123 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
10124 (nvptx_name_replacement): Restore. Add comment.
10125 (write_fn_proto, write_fn_proto_from_insn,
10126 nvptx_output_call_insn): Restore
10127 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
10128
10129 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10130
10131 * config/aarch64/aarch64.md
10132 (add<mode>3_compareC_cconly_imm): Remove use of %w.
10133 (add<mode>3_compareC_imm): Likewise.
10134 (<optab>si3_uxtw): Split into register and immediate variants.
10135 (andsi3_compare0_uxtw): Likewise.
10136 (and<mode>3_compare0): Likewise.
10137 (and<mode>3nr_compare0): Likewise.
10138 (stack_protect_test_<mode>): Don't use %x for memory operands.
10139
10140 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
10141
10142 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
10143
10144 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10145
10146 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10147 Split integer shifts into shift_reg and bfm.
10148 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
10149 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10150 (ror<mode>3_insn): Likewise.
10151 (<optab>si3_insn_uxtw): Likewise.
10152 (<optab><mode>3_insn): Change to rotate_imm.
10153 (extr<mode>5_insn_alt): Likewise.
10154 (extrsi5_insn_uxtw): Likewise.
10155 (extrsi5_insn_uxtw_alt): Likewise.
10156
10157 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10158
10159 * doc/tm.texi: Regenerate.
10160 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
10161 (TARGET_INVALID_RETURN_TYPE): Remove.
10162 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
10163 TARGET_INVALID_RETURN_TYPE.
10164 * target.def (invalid_parameter_type): Remove.
10165 (invalid_return_type): Remove.
10166
10167 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10168
10169 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
10170 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
10171 calls from thunk.
10172 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
10173 gimple body.
10174 (preserve_function_body_p): No need to preserve function body
10175 * cif-codes.def (CIF_THUNK): Remove.
10176 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
10177
10178 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10179
10180 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
10181
10182 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10183
10184 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
10185 for thunks.
10186
10187 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10188
10189 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
10190 (inline_small_functions): Do not look for function symbol when
10191 resetting caches.
10192
10193 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10194
10195 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
10196 of inline thunks
10197
10198 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10199 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10200 Jiong Wang <jiong.wang@arm.com>
10201
10202 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
10203 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
10204 Define __ARM_FP16_ARGS when appropriate.
10205 * config/arm/arm.c (arm_invalid_parameter_type): Remove
10206 declaration.
10207 (arm_invalid_return_type): Likewise.
10208 (TARGET_INVALID_PARAMETER_TYPE): Remove.
10209 (TARGET_INVALID_RETURN_TYPE): Remove.
10210 (aapcs_vfp_sub_candidate): Allow HFmode.
10211 (aapcs_vfp_allocate): Add comment. Support HFmode.
10212 (aapcs_vfp_allocate_return_reg): Likewise.
10213 (struct aapcs_cp_arg_layout): Slightly reword comments for
10214 is_return_candidate and allocate_return_reg.
10215 (output_mov_vfp): Update assert.
10216 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
10217 condition.
10218 (arm_invalid_parameter_type): Remove.
10219 (amr_invalid_return_type): Remove.
10220 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
10221 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
10222 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
10223
10224 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10225
10226 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
10227 * config/aarch64/arch64-protos.h
10228 (aarch64_legitimize_reload_address): Remove.
10229 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
10230 Remove.
10231
10232 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
10233
10234 * configure.ac: Add ACX_NONCANONICAL_HOST.
10235 * configure: Regenerate.
10236 * Makefile.in: Set host_noncanonical.
10237
10238 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
10239
10240 PR target/71097
10241 * config/i386/i386.md (*movtf_internal): Before register allocation,
10242 do not allow FP constants for CM_MEDIUM memory model, allow only
10243 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
10244 (*movxf_internal): Ditto.
10245 (*movdf_internal): Ditto.
10246 (*movsf_internal): Ditto.
10247
10248 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
10249
10250 PR rtl-optimization/67483
10251 * combine.c (make_compound_operation): Don't call extract_left_shift
10252 with negative shift amounts.
10253
10254 2016-05-13 Jakub Jelinek <jakub@redhat.com>
10255
10256 PR bootstrap/71071
10257 * fold-const.c (fold_checksum_tree): Allow modification
10258 of TYPE_ALIAS_SET during folding.
10259
10260 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
10261 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
10262 (ix86_split_to_parts): Likewise. Fix up formatting.
10263
10264 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
10265
10266 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
10267 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
10268 printf format.
10269
10270 2016-05-13 Nathan Sidwell <nathan@acm.org>
10271
10272 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
10273 (nvptx_name_replacement): Delete.
10274 (write_fn_proto, write_fn_proto_from_insn,
10275 nvptx_output_call_insn): Remove nvptx_name_replacement call.
10276 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
10277 * langhooks.c (add_builtin_funcction_common): Call
10278 targetm.mangle_decl_assembler_name.
10279
10280 * config/nvptx/nvptx.c (write_fn_proto): Handle
10281 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
10282
10283 2016-05-13 Martin Liska <mliska@suse.cz>
10284
10285 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
10286 and PRIu64 in printf format.
10287
10288 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10289
10290 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
10291 comment.
10292
10293 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10294
10295 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
10296 Change --param max-completely-peeled-times to
10297 --param max-completely-peel-times in dump file printing.
10298
10299 2016-05-13 Richard Biener <rguenther@suse.de>
10300
10301 PR tree-optimization/42587
10302 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
10303 (find_bswap_or_nop_1): Likewise.
10304 (bswap_replace): Likewise.
10305
10306 2016-05-13 Martin Liska <mliska@suse.cz>
10307
10308 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
10309 Initialize a variable with default value.
10310
10311 2016-05-13 Martin Liska <mliska@suse.cz>
10312
10313 * doc/invoke.texi: Enhance explanation of error recovery
10314 of sanitizers.
10315
10316 2016-05-13 Martin Liska <mliska@suse.cz>
10317
10318 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
10319 (struct cost_pair): Change inv_expr_id (int) to inv_expr
10320 (iv_inv_expr_ent *).
10321 (struct iv_inv_expr_ent): Comment struct fields.
10322 (sort_iv_inv_expr_ent): New function.
10323 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
10324 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
10325 a hash_map between iv_inv_expr_ent and number of usages.
10326 (niter_for_exit): Fix coding style.
10327 (tree_ssa_iv_optimize_init): Use renamed variable.
10328 (determine_base_object): Fix coding style.
10329 (alloc_iv): Likewise.
10330 (find_interesting_uses_outside): Likewise.
10331 (add_candidate_1): Likewise.
10332 (add_standard_iv_candidates): Likewise.
10333 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
10334 (prepare_decl_rtl): Fix coding style.
10335 (get_address_cost): Likewise.
10336 (get_shiftadd_cost): Likewise.
10337 (force_expr_to_var_cost): Likewise.
10338 (compare_aff_trees): Likewise.
10339 (get_expr_id): Restructure the function.
10340 (get_loop_invariant_expr_id): Renamed to
10341 get_loop_invariant_expr.
10342 (get_computation_cost_at): Replace usage of inv_expr_id with
10343 inv_expr.
10344 (get_computation_cost): Likewise.
10345 (determine_group_iv_cost_generic): Likewise.
10346 (determine_group_iv_cost_address): Likewise.
10347 (iv_period): Fix coding style.
10348 (iv_elimination_compare_lt): Likewise.
10349 (may_eliminate_iv): Likewise.
10350 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
10351 inv_expr.
10352 (determine_group_iv_costs): Dump invariant expressions.
10353 (iv_ca_recount_cost): Use the newly added hash_map.
10354 (iv_ca_set_remove_invariants): Fix coding style.
10355 (iv_ca_set_add_invariants): Fix coding style.
10356 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
10357 invariants.
10358 (iv_ca_set_cp): Likewise.
10359 (iv_ca_new): Initialize the newly added hash_map and remove
10360 initialization of fields.
10361 (iv_ca_free): Delete the hash_map.
10362 (iv_ca_dump): Dump invariant expressions.
10363 (iv_ca_extend): Fix coding style.
10364 (try_add_cand_for): Likewise.
10365 (create_new_ivs): Dump information about # of avg iterations and
10366 # of used invariant expressions.
10367 (rewrite_use_compare): Fix coding style.
10368 (free_loop_data): Set default value for max_inv_expr_id.
10369
10370 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
10371
10372 * cse.c (rest_of_handle_cse): Use cleanup_cfg
10373 returned value cse_cfg_altered computation.
10374 (rest_of_handle_cse2): Likewise.
10375 (rest_of_handle_cse_after_global_opts): Likewise.
10376
10377 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10378
10379 PR target/53440
10380 * config/arm/arm.c (arm32_output_mi_thunk): New.
10381 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
10382 to split Thumb1 vs TARGET_32BIT functionality.
10383 (arm_thumb1_mi_thunk): New.
10384
10385 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10386
10387 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
10388 to true.
10389
10390 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10391
10392 PR target/71080
10393 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
10394
10395 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
10396
10397 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
10398 (expand_builtin_trap): Emit a regular call.
10399 (set_builtin_user_assembler_name): Remove obsolete cases.
10400 * dse.c (scan_insn): Adjust.
10401 * except.c: Include calls.h.
10402 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
10403 emit a regular call to setjmp.
10404 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
10405 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
10406 (emit_block_move_via_libcall): Delete.
10407 (block_move_fn): Delete.
10408 (init_block_move_fn): Likewise.
10409 (emit_block_move_libcall_fn): Likewise.
10410 (emit_block_op_via_libcall): New function.
10411 (set_storage_via_libcall): Tidy up and use memset builtin.
10412 (block_clear_fn): Delete.
10413 (init_block_clear_fn): Likewise.
10414 (clear_storage_libcall_fn): Likewise.
10415 (expand_assignment): Call emit_block_move_via_libcall.
10416 Do not include gt-expr.h.
10417 * expr.h (emit_block_op_via_libcall): Declare.
10418 (emit_block_copy_via_libcall): New inline function.
10419 (emit_block_move_via_libcall): Likewise.
10420 (emit_block_comp_via_libcall): Likewise.
10421 (block_clear_fn): Delete.
10422 (init_block_move_fn): Likewise.
10423 (init_block_clear_fn): Likewise.
10424 (emit_block_move_via_libcall): Likewise.
10425 (set_storage_via_libcall): Add default parameter value.
10426 * libfuncs.h (enum libfunc_index): Remove obsolete values.
10427 (abort_libfunc): Delete.
10428 (memcpy_libfunc): Likewise.
10429 (memmove_libfunc): Likewise.
10430 (memcmp_libfunc): Likewise.
10431 (memset_libfunc): Likewise.
10432 (setbits_libfunc): Likewise.
10433 (setjmp_libfunc): Likewise.
10434 (longjmp_libfunc): Likewise.
10435 (profile_function_entry_libfunc): Likewise.
10436 (profile_function_exit_libfunc): Likewise.
10437 (gcov_flush_libfunc): Likewise.
10438 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
10439 and DECL_VISIBILITY on the declaration.
10440 (init_optabs): Do not initialize obsolete libfuncs.
10441 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
10442 * tree-core.h (ECF_RET1): Define.
10443 (ECF_TM_PURE): Adjust.
10444 (ECF_TM_BUILTIN): Likewise.
10445 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
10446 (build_common_builtin_nodes): Initialize abort builtin.
10447 Add ECF_RET1 on memcpy, memmove and memset builtins.
10448 Pass final flags for alloca and alloca_with_align builtins.
10449 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
10450 obsolete builtins.
10451 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
10452 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
10453 set_storage_via_libcall and call emit_block_copy_via_libcall.
10454
10455 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
10456
10457 * config/i386/i386.md (*call_got_x32): Change operand 0 to
10458 DImode before it is passed to ix86_output_call_operand.
10459 (*call_value_got_x32): Ditto for operand 1.
10460
10461 2016-05-12 Jiong Wang <jiong.wang@arm.com>
10462
10463 PR rtl-optimization/70904
10464 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
10465 reload for wide mode.
10466
10467 2016-05-12 Marek Polacek <polacek@redhat.com>
10468
10469 PR c/70756
10470 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
10471 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
10472 * langhooks.h (incomplete_type_error): Likewise.
10473 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
10474 parameter, pass it down to incomplete_type_error.
10475 * tree.h (size_in_bytes): New inline overload.
10476 (size_in_bytes_loc): Renamed from size_in_bytes.
10477
10478 2016-05-12 Richard Biener <rguenther@suse.de>
10479
10480 PR tree-optimization/71059
10481 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
10482 nary before looking up or entering the expression into the VN
10483 hashes.
10484 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
10485 Make sure to re-use NARYs without result as inserted by
10486 phi-translation.
10487
10488 2016-05-12 Richard Biener <rguenther@suse.de>
10489
10490 PR tree-optimization/71062
10491 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
10492 field.
10493 * tree-ssa-structalias.c (set_uids_in_ptset): Set
10494 vars_contains_restrict if the var is a restrict tag.
10495 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
10496 do not disambiguate pointers against it.
10497 (dump_points_to_solution): Re-structure and adjust for new
10498 vars_contains_restrict flag.
10499 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
10500
10501 2016-05-12 Martin Liska <mliska@suse.cz>
10502
10503 * doc/invoke.texi: Explain connection between
10504 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
10505
10506 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
10507
10508 PR tree-optimization/71006
10509 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
10510 consider COND_EXPR as a mask producer.
10511
10512 2016-05-12 Marek Polacek <polacek@redhat.com>
10513
10514 PR driver/71063
10515 * opts.c (common_handle_option): Detect missing argument for --help^.
10516
10517 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10518
10519 PR target/70830
10520 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
10521 when popping the PC and within an interrupt handler routine.
10522 Add missing tab to output of "ldmfd".
10523 (output_return_instruction): Output LDMFD with SP update rather
10524 than POP when returning from interrupt handler.
10525
10526 2016-05-12 Jakub Jelinek <jakub@redhat.com>
10527
10528 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
10529 TARGET_64BIT && TARGET_AVX512DQ.
10530 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
10531 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
10532 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
10533 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
10534 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
10535 (*vec_extractv4si_zext): Add avx512dq alternative.
10536 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
10537 use v instead of x constraint in other alternatives where possible.
10538
10539 * config/i386/sse.md (sse2_loadld): Use v instead of x
10540 constraint in alternatives 0,1,4.
10541
10542 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
10543 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
10544 v constraints instead of x and <pinsr_evex_isa> isa attribute.
10545
10546 PR target/71019
10547 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
10548 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
10549 is not emitted unless TARGET_AVX512BW.
10550 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
10551 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
10552 for the result operand.
10553
10554 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
10555 constraint instead of x in avx alternatives. Use maybe_evex instead
10556 of vex prefix.
10557
10558 * config/i386/constraints.md (Yv): New constraint.
10559 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
10560 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
10561 * config/i386/i386.md (avx512fvecmode): New mode attr.
10562 (*pushtf): Use v constraint instead of x.
10563 (*movtf_internal): Likewise. For TARGET_AVX512VL and
10564 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
10565 (*absneg<mode>2): Use Yv constraint instead of x constraint.
10566 (*absnegtf2_sse): Likewise.
10567 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
10568 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
10569 avx512f alternatives.
10570 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
10571
10572 2016-05-12 Richard Biener <rguenther@suse.de>
10573
10574 PR tree-optimization/71060
10575 * tree-data-ref.c (initialize_data_dependence_relation): Do not
10576 require exact match of DR_BASE_OBJECT but only matching address and
10577 type.
10578
10579 2016-05-12 Richard Biener <rguenther@suse.de>
10580
10581 PR tree-optimization/70986
10582 * cfganal.c: Include cfgloop.h.
10583 (dfs_find_deadend): Prefer to take edges exiting loops.
10584
10585 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10586
10587 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
10588 compile and run time.
10589
10590 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
10591
10592 PR c/43651
10593 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
10594
10595 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
10596
10597 * config/i386/i386.c (legitimize_pic_address): Use
10598 copy_to_suggested_reg instead of gen_movsi.
10599
10600 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
10601
10602 * config/rs6000/predicates.md (quad_memory_operand): Move most of
10603 the code into quad_address_p and call it to share code with
10604 vsx_quad_dform_memory_operand.
10605 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
10606 d-form support.
10607 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
10608 bit instead of being a separate word. Split -mpower9-dform into
10609 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
10610 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
10611 for the register class supporting 128-bit quad word memory offsets.
10612 (mode_supports_vsx_dform_quad): Helper function to return if the
10613 register class uses quad word memory offsets.
10614 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
10615 (rs6000_debug_reg_global): Always print if we are using LRA or not.
10616 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
10617 instructions are enabled, set up the appropriate addr_masks for
10618 128-bit types.
10619 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
10620 -mpower9-dform-scalar, instead of -mpower9-dform.
10621 (rs6000_option_override_internal): Split -mpower9-dform into two
10622 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
10623 -mpower9-dform switch sets or clears both. If we are not using
10624 the LRA register allocator, do not enable -mpower9-dform-vector by
10625 default. If we are using LRA, enable -mpower9-dform-vector and
10626 -mvsx-timode if it is appropriate. Issue a warning if either
10627 -mpower9-dform-vector or -mvsx-timode are explicitly used without
10628 enabling LRA.
10629 (quad_address_offset_p): New helper function to return if the
10630 offset is legal for quad word memory instructions.
10631 (quad_address_p): New function to determin if GPR or vector
10632 register quad word memory addresses are legal.
10633 (mem_operand_gpr): Validate quad word address offsets.
10634 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
10635 d-form (register + offset) instructions.
10636 (offsettable_ok_by_alignment): Likewise.
10637 (rs6000_legitimate_offset_address_p): Likewise.
10638 (legitimate_lo_sum_address_p): Likewise.
10639 (rs6000_legitimize_address): Likewise.
10640 (rs6000_legitimize_reload_address): Add more debug statements for
10641 -mdebug=addr.
10642 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
10643 d-form instructions.
10644 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
10645 d-form instructions. Distinguish different cases in debug
10646 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
10647 d-form instructions.
10648 (rs6000_preferred_reload_class): Likewise.
10649 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
10650 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
10651 of the ISA 2.06 indexed memory instructions.
10652 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
10653 use them to save/restore the saved vector registers instead of
10654 using Altivec instructions.
10655 (rs6000_emit_epilogue): Likewise.
10656 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
10657 (rs6000_opt_masks): Split -mpower9-dform into
10658 -mpower9-dform-scalar and -mpower9-dform-vector.
10659 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
10660 was not selected.
10661 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
10662 ISA 3.0 vector indexed memory instructions, and fold the code into
10663 the normal mov<mode> patterns.
10664 (p9_vecstore_<mode>): Likewise.
10665 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
10666 instructions.
10667 (vsx_movti_64bit): Likewise.
10668 (vsx_movti_32bit): Likewise.
10669 * config/rs6000/constraints.md (wO constraint): New constraint for
10670 ISA 3.0 vector d-form support.
10671 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
10672 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
10673 include -mpower9-dform-vector until we switch over to LRA.
10674 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
10675 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
10676 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
10677 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
10678 for -mpower9-dform and -mlra.
10679 * doc/md.texi (wO constraint): Document wO constraint.
10680
10681 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
10682
10683 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
10684 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
10685 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
10686 Move handling of non-insn arguments inline into the sole user:
10687 (output_trans_func): ...here.
10688 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
10689 in emitted function prototype.
10690 (output_internal_insn_latency_func): Ditto. Simplify.
10691 (output_internal_maximal_insn_latency_func): Ditto. Delete
10692 always-unused argument.
10693 (output_insn_latency_func): Ditto.
10694 (output_maximal_insn_latency_func): Ditto.
10695
10696 2016-05-11 Richard Biener <rguenther@suse.de>
10697
10698 PR tree-optimization/71055
10699 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
10700 sth with precision not equal to access size verify we don't chop
10701 off bits.
10702
10703 2016-05-11 Richard Biener <rguenther@suse.de>
10704
10705 PR debug/71057
10706 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
10707 (dwarf2out_finish): Move retry_incomplete_types call ...
10708 (dwarf2out_early_finish): ... here.
10709
10710 2016-05-11 Richard Biener <rguenther@suse.de>
10711
10712 PR middle-end/71002
10713 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
10714 if the langhook insists on it.
10715 * fold-const.c (make_bit_field_ref): Add arg for the original
10716 reference and preserve its alias-set.
10717 (decode_field_reference): Take exp by reference and adjust it
10718 to the original memory reference.
10719 (optimize_bit_field_compare): Adjust callers.
10720 (fold_truth_andor_1): Likewise.
10721 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
10722
10723 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
10724
10725 PR middle-end/70807
10726 * cfgrtl.h (delete_insn_and_edges): Now return bool.
10727 * cfgrtl.c (delete_insn_and_edges): Likewise.
10728 * config/i386/i386.c (convert_scalars_to_vector): Remove
10729 redundant code.
10730 * cse.c (cse_insn): Compute cse_cfg_altered.
10731 (delete_trivially_dead_insns): Likewise.
10732 (cse_cc_succs): Likewise.
10733 (rest_of_handle_cse): Free dominance info if required.
10734 (rest_of_handle_cse2): Likewise.
10735 (rest_of_handle_cse_after_global_opts): Likewise.
10736
10737 2016-05-11 Alan Modra <amodra@gmail.com>
10738
10739 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
10740 abi_v4_pass_in_fpr): New functions.
10741 (rs6000_function_arg_boundary): Exclude complex IBM long double
10742 from 64-bit alignment when ABI_V4.
10743 (rs6000_function_arg, rs6000_function_arg_advance_1,
10744 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
10745
10746 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
10747
10748 PR rtl-optimization/71028
10749 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
10750 jump with just a return in the fallthrough block if the branch
10751 block contains just a return as well.
10752
10753 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
10754
10755 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
10756 * match.pd ((X & Y) ^ Y): ... this.
10757 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
10758 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
10759
10760 2016-05-10 David Malcolm <dmalcolm@redhat.com>
10761
10762 * read-md.c (require_char_ws): New function.
10763 (read_string): Simplify using require_char_ws.
10764 (handle_constants): Likewise.
10765 (handle_enum): Likewise.
10766 (handle_file): Likewise.
10767 * read-md.h (require_char_ws): New declaration.
10768 * read-rtl.c (read_conditions): Simplify using require_char_ws.
10769 (read_mapping): Likewise.
10770 (read_rtx_code): Likewise.
10771 (read_nested_rtx): Likewise.
10772
10773 2016-05-10 James Norris <jnorris@codesourcery.com>
10774
10775 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
10776 if offloading is enabled and -fopenacc or -fopenmp is specified.
10777 (CRTOFFLOADEND): Likewise.
10778 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
10779 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
10780
10781 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
10782
10783 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
10784 gotoff_operand code paths. Use copy_to_suggested_regs and
10785 expand_simple_binop where appropriate. Cleanup.
10786
10787 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
10788
10789 PR target/70799
10790 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
10791 integer constants.
10792 (dimode_scalar_chain::vector_const_cost): New.
10793 (dimode_scalar_chain::compute_convert_gain): Handle constants.
10794 (dimode_scalar_chain::convert_op): Likewise.
10795 (dimode_scalar_chain::convert_insn): Likewise.
10796
10797 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
10798
10799 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
10800 unary operation, not a binary one.
10801
10802 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
10803
10804 PR middle-end/70877
10805 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
10806 calls with type casted fndecl.
10807
10808 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
10809
10810 PR tree-optimization/70786
10811 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
10812 * calls.c (initialize_argument_information): Bind bounds
10813 with corresponding args passed by reference.
10814
10815 2016-05-10 Jakub Jelinek <jakub@redhat.com>
10816
10817 PR target/70927
10818 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
10819 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
10820 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
10821 accordingly.
10822
10823 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10824
10825 PR target/70963
10826 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
10827 code for a zero scale factor.
10828 (vsx_xvcvdpuxds_scale): Likewise.
10829
10830 2016-05-10 David Malcolm <dmalcolm@redhat.com>
10831
10832 * diagnostic-show-locus.c (layout::layout): Call show_ruler
10833 if show_ruler_p was set on the context.
10834 (layout::show_ruler): New method.
10835 * diagnostic.h (struct diagnostic_context): Add field
10836 "show_ruler_p".
10837
10838 2016-05-10 Richard Biener <rguenther@suse.de>
10839
10840 PR tree-optimization/71039
10841 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
10842 (chk_uses): New function.
10843 (propagate_with_phi): Verify we can safely replicate the lhs of an
10844 aggregate assignment on all incoming edges.
10845
10846 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
10847
10848 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
10849 Forward declare.
10850 (rx_atomic_sequence): New class.
10851 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
10852 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
10853 non-inline.
10854 (rx_atomic_sequence::rx_atomic_sequence,
10855 rx_atomic_sequence::~rx_atomic_sequence): New functions.
10856 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
10857 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
10858 CTRLREG_INTB): New constants.
10859 (FETCHOP): New code iterator.
10860 (fethcop_name, fetchop_name2): New iterator code attributes.
10861 (QIHI): New mode iterator.
10862 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
10863 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
10864 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
10865
10866 2016-05-10 Martin Liska <mliska@suse.cz>
10867
10868 * tree-inline.c (remap_dependence_clique): Do not remap
10869 debugging statements.
10870
10871 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10872
10873 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
10874 ("*fixuns_truncdfdi2_z13")
10875 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
10876 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
10877 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
10878
10879 2016-05-10 Richard Biener <rguenther@suse.de>
10880
10881 PR tree-optimization/70497
10882 PR tree-optimization/28367
10883 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
10884 split out from ...
10885 (visit_reference_op_load): ... here.
10886 (vn_reference_lookup_3): Use it to handle subreg-like accesses
10887 with simplified BIT_FIELD_REFs.
10888 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
10889 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
10890 correctly.
10891
10892 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
10893
10894 * dwarf2out.c (add_abstract_origin_attribute): Adjust
10895 documentation comment. For BLOCK nodes, add a
10896 DW_AT_abstract_origin attribute that points to the DIE generated
10897 for the origin BLOCK.
10898 (gen_lexical_block_die): Call add_abstract_origin_attribute for
10899 blocks from inlined functions.
10900
10901 2016-05-10 Alan Modra <amodra@gmail.com>
10902
10903 PR target/70947
10904 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
10905 regrename modifying insns saving lr before __morestack call.
10906 * config/rs6000/rs6000.md (split_stack_return): Similarly for
10907 insns restoring lr after __morestack call.
10908
10909 2016-05-09 Jakub Jelinek <jakub@redhat.com>
10910
10911 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
10912 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
10913 expanders.
10914 * config/i386/sse.md (vec_interleave_high<mode>,
10915 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
10916 <avx512>_vpermt2var<mode>3_maskz): Likewise.
10917
10918 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10919
10920 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
10921 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
10922 parallel reassociation for power8 and forward.
10923
10924 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
10925
10926 * config/i386/i386.md (absneg splitters with general regs): Use
10927 general_reg_operand predicate.
10928 (btsq peephole2): Use x86_64_immediate_operand to check if new
10929 value is suitable for immediate operand. Generate emitted insn
10930 using RTL expressions.
10931 (btcq peephole2): Ditto.
10932 (btrq peephole2): Ditto. Generate correct immediate operand
10933 for AND masking.
10934
10935 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
10936
10937 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
10938 bitpos.
10939
10940 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
10941
10942 * tree-affine.c (wide_int_constant_multiple_p): Add missing
10943 pointer dereference.
10944
10945 2016-05-09 Richard Biener <rguenther@suse.de>
10946
10947 PR tree-optimization/70985
10948 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
10949 op0 isn't a gimple register.
10950
10951 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
10952
10953 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
10954 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
10955 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
10956 (i6400_fpu_mult): New cpu units.
10957 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
10958 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
10959 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
10960 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
10961 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
10962 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
10963 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
10964 (i6400_msa_long_float4, i6400_msa_long_float5)
10965 (i6400_msa_long_float8, i6400_msa_fdiv_df)
10966 (i6400_msa_fdiv_sf): New reservations.
10967 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
10968 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
10969 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
10970 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
10971 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
10972 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
10973 (msa_short_cmp, msa_short_float2, msa_short_logic3)
10974 (msa_short_store4, msa_long_load, msa_short_store)
10975 (msa_long_logic, msa_long_float2, msa_long_float4)
10976 (msa_long_float5, msa_long_float8, msa_long_mult)
10977 (msa_long_fdiv, msa_long_div): New reservations.
10978
10979 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
10980 Sameera Deshpande <sameera.deshpande@imgtec.com>
10981 Matthew Fortune <matthew.fortune@imgtec.com>
10982 Graham Stott <graham.stott@imgtec.com>
10983 Chao-ying Fu <chao-ying.fu@imgtec.com>
10984
10985 * config.gcc: Add MSA header file for mips*-*-* target.
10986 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
10987 (Ubv8i, Urv8): New constraints.
10988 * config/mips/mips-ftypes.def: Add function types for MSA
10989 builtins.
10990 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
10991 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
10992 * config/mips/mips-msa.md: New file.
10993 * config/mips/mips-protos.h
10994 (mips_split_128bit_const_insns): New prototype.
10995 (mips_msa_idiv_insns): Likewise.
10996 (mips_split_128bit_move): Likewise.
10997 (mips_split_128bit_move_p): Likewise.
10998 (mips_split_msa_copy_d): Likewise.
10999 (mips_split_msa_insert_d): Likewise.
11000 (mips_split_msa_fill_d): Likewise.
11001 (mips_expand_msa_branch): Likewise.
11002 (mips_const_vector_same_val_p): Likewise.
11003 (mips_const_vector_same_bytes_p): Likewise.
11004 (mips_const_vector_same_int_p): Likewise.
11005 (mips_const_vector_shuffle_set_p): Likewise.
11006 (mips_const_vector_bitimm_set_p): Likewise.
11007 (mips_const_vector_bitimm_clr_p): Likewise.
11008 (mips_msa_vec_parallel_const_half): Likewise.
11009 (mips_msa_output_division): Likewise.
11010 (mips_ldst_scaled_shift): Likewise.
11011 (mips_expand_vec_cond_expr): Likewise.
11012 * config/mips/mips.c (enum mips_builtin_type): Add
11013 MIPS_BUILTIN_MSA_TEST_BRANCH.
11014 (mips_gen_const_int_vector_shuffle): New prototype.
11015 (mips_const_vector_bitimm_set_p): New function.
11016 (mips_const_vector_bitimm_clr_p): Likewise.
11017 (mips_const_vector_same_val_p): Likewise.
11018 (mips_const_vector_same_bytes_p): Likewise.
11019 (mips_const_vector_same_int_p): Likewise.
11020 (mips_const_vector_shuffle_set_p): Likewise.
11021 (mips_symbol_insns): Forbid loading symbols via immediate for
11022 MSA.
11023 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
11024 stores.
11025 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
11026 MSA.
11027 (mips_lx_address_p): Add support load indexed address for MSA.
11028 (mips_address_insns): Add calculation of instructions needed for
11029 stores and loads for MSA.
11030 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
11031 CONST_VECTOR for MSA and let it fall through.
11032 (mips_ldst_scaled_shift): New function.
11033 (mips_subword_at_byte): Likewise.
11034 (mips_msa_idiv_insns): Likewise.
11035 (mips_legitimize_move): Validate MSA moves.
11036 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
11037 calculation of costs for MSA division.
11038 (mips_split_move_p): Check if MSA moves need splitting.
11039 (mips_split_move): Split MSA moves if necessary.
11040 (mips_split_128bit_move_p): New function.
11041 (mips_split_128bit_move): Likewise.
11042 (mips_split_msa_copy_d): Likewise.
11043 (mips_split_msa_insert_d): Likewise.
11044 (mips_split_msa_fill_d): Likewise.
11045 (mips_output_move): Handle MSA moves.
11046 (mips_expand_msa_branch): New function.
11047 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
11048 Reinstate 'y' modifier.
11049 (mips_file_start): Add MSA .gnu_attribute.
11050 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
11051 FPRs.
11052 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
11053 (mips_class_max_nregs): Add register size for MSA supported mode.
11054 (mips_cannot_change_mode_class): Allow conversion between MSA
11055 vector modes and TImode.
11056 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
11057 instruction.
11058 (mips_secondary_reload_class): Force MSA loads/stores via memory.
11059 (mips_preferred_simd_mode): Add preffered modes for MSA.
11060 (mips_vector_mode_supported_p): Add MSA supported modes.
11061 (mips_autovectorize_vector_sizes): New function.
11062 (mips_msa_output_division): Likewise.
11063 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
11064 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
11065 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
11066 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
11067 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
11068 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
11069 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
11070 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
11071 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
11072 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
11073 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
11074 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
11075 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
11076 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
11077 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
11078 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
11079 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
11080 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
11081 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
11082 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
11083 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
11084 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
11085 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
11086 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
11087 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
11088 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
11089 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
11090 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
11091 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
11092 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
11093 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
11094 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
11095 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
11096 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
11097 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
11098 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
11099 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
11100 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
11101 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
11102 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
11103 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
11104 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
11105 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
11106 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
11107 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11108 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11109 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11110 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11111 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11112 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11113 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11114 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11115 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
11116 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
11117 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
11118 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
11119 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
11120 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
11121 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
11122 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
11123 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
11124 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
11125 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
11126 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
11127 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
11128 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
11129 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
11130 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
11131 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
11132 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
11133 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
11134 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
11135 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
11136 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
11137 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
11138 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
11139 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
11140 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
11141 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
11142 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
11143 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
11144 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
11145 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
11146 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
11147 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
11148 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
11149 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
11150 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
11151 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
11152 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
11153 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
11154 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
11155 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
11156 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
11157 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
11158 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
11159 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
11160 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
11161 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
11162 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
11163 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
11164 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
11165 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
11166 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
11167 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
11168 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
11169 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
11170 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
11171 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
11172 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
11173 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
11174 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
11175 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
11176 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
11177 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
11178 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
11179 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
11180 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
11181 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
11182 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
11183 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
11184 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
11185 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
11186 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
11187 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
11188 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
11189 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
11190 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
11191 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
11192 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
11193 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
11194 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
11195 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
11196 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
11197 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
11198 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
11199 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
11200 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
11201 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
11202 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
11203 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
11204 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
11205 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
11206 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
11207 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
11208 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
11209 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
11210 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
11211 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
11212 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
11213 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
11214 move_v builtins.
11215 (mips_get_builtin_decl_index): New array.
11216 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
11217 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
11218 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
11219 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
11220 (mips_init_builtins): Initialize mips_get_builtin_decl_index
11221 array.
11222 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
11223 hook.
11224 (mips_expand_builtin_insn): Prepare operands for
11225 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
11226 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
11227 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
11228 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
11229 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
11230 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
11231 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
11232 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
11233 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
11234 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
11235 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
11236 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
11237 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
11238 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
11239 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
11240 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
11241 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
11242 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
11243 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
11244 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
11245 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
11246 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
11247 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
11248 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
11249 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
11250 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
11251 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
11252 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
11253 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
11254 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
11255 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
11256 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
11257 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
11258 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
11259 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
11260 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
11261 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
11262 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
11263 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
11264 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
11265 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
11266 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
11267 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
11268 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
11269 These are set implicitly and an error is reported if overridden.
11270 (mips_expand_builtin_msa_test_branch): New function.
11271 (mips_expand_msa_shuffle): Likewise.
11272 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
11273 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
11274 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
11275 (mips_expand_vec_unpack): Add support for MSA.
11276 (mips_expand_vector_init): Likewise.
11277 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
11278 instead of const0_rtx.
11279 (mips_msa_vec_parallel_const_half): New function.
11280 (mips_gen_const_int_vector): Likewise.
11281 (mips_gen_const_int_vector_shuffle): Likewise.
11282 (mips_expand_msa_cmp): Likewise.
11283 (mips_expand_vec_cond_expr): Likewise.
11284 * config/mips/mips.h
11285 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
11286 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
11287 specified.
11288 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
11289 (ISA_HAS_MSA): New macro.
11290 (UNITS_PER_MSA_REG): Likewise.
11291 (BITS_PER_MSA_REG): Likewise.
11292 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
11293 (MSA_REG_FIRST): New macro.
11294 (MSA_REG_LAST): Likewise.
11295 (MSA_REG_NUM): Likewise.
11296 (MSA_REG_P): Likewise.
11297 (MSA_REG_RTX_P): Likewise.
11298 (MSA_SUPPORTED_MODE_P): Likewise.
11299 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
11300 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
11301 * config/mips/mips.md: Include mips-msa.md.
11302 (alu_type): Add simd_add.
11303 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
11304 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
11305 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
11306 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
11307 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
11308 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
11309 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
11310 simd_move, simd_load, simd_store. Choose "multi" for moves
11311 for "qword_mode".
11312 (qword_mode): New attribute.
11313 (insn_count): Add instruction count for quad moves.
11314 Increase the count for MIPS SIMD division.
11315 (UNITMODE): Add UNITMODEs for vector types.
11316 (addsub): New code iterator.
11317 * config/mips/mips.opt (mmsa): New option.
11318 * config/mips/msa.h: New file.
11319 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
11320 specified.
11321 * config/mips/mti-linux.h: Likewise.
11322 * config/mips/predicates.md
11323 (const_msa_branch_operand): New constraint.
11324 (const_uimm3_operand): Likewise.
11325 (const_uimm4_operand): Likewise.
11326 (const_uimm5_operand): Likewise.
11327 (const_uimm8_operand): Likewise.
11328 (const_imm5_operand): Likewise.
11329 (aq10b_operand): Likewise.
11330 (aq10h_operand): Likewise.
11331 (aq10w_operand): Likewise.
11332 (aq10d_operand): Likewise.
11333 (const_m1_operand): Likewise.
11334 (reg_or_m1_operand): Likewise.
11335 (const_exp_2_operand): Likewise.
11336 (const_exp_4_operand): Likewise.
11337 (const_exp_8_operand): Likewise.
11338 (const_exp_16_operand): Likewise.
11339 (const_vector_same_val_operand): Likewise.
11340 (const_vector_same_simm5_operand): Likewise.
11341 (const_vector_same_uimm5_operand): Likewise.
11342 (const_vector_same_uimm6_operand): Likewise.
11343 (const_vector_same_uimm8_operand): Likewise.
11344 (par_const_vector_shf_set_operand): Likewise.
11345 (reg_or_vector_same_val_operand): Likewise.
11346 (reg_or_vector_same_simm5_operand): Likewise.
11347 (reg_or_vector_same_uimm6_operand): Likewise.
11348 * doc/extend.texi (MIPS SIMD Architecture Functions): New
11349 section.
11350 * doc/invoke.texi (-mmsa): Document new option.
11351
11352 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11353
11354 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
11355 * configure: Regenerate.
11356 * config.in: Regenerate.
11357 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
11358 on -fvtable-verify.
11359 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
11360 (ENDFILE_VTV_SPEC): Define.
11361
11362 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
11363
11364 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
11365 registers in all interrupt handlers if necessary.
11366 (rl78_option_override): Add warning.
11367 (MUST_SAVE_MDUC_REGISTERS): New macro.
11368 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
11369 * config/rl78/rl78.c (check_mduc_usage): New function.
11370 (mduc_regs): New structure to hold MDUC register data.
11371 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
11372 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
11373 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
11374 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
11375 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
11376 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
11377
11378 2016-05-09 Bin Cheng <bin.cheng@arm.com>
11379
11380 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
11381 (tree-ssa-loop-niter.h): Ditto.
11382 (idx_within_array_bound, ref_within_array_bound): New functions.
11383 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
11384 Factor out check on writable base object to ...
11385 (base_object_writable): ... here.
11386
11387 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11388
11389 * config/arm/arm.md (probe_stack): Add modes to set source
11390 and destination.
11391
11392 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
11393
11394 * regrename.c (base_reg_class_for_rename): New static function.
11395 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
11396
11397 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
11398
11399 * cgraph.c (thunk_adjust): Export.
11400 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
11401 * cgraphunit.c (thunk_adjust): Export.
11402 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
11403 thunks.
11404 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
11405 inlinable.
11406 * tree-inline.c (expand_call_inline): Expand thunks inline.
11407
11408 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
11409
11410 PR target/70998
11411 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
11412 (*sse2_vd_cvtss2sd): Ditto.
11413 * config/i386/i386.md
11414 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
11415 Generate *sse2_vd_cvtsd2ss pattern.
11416 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
11417 Generate *sse2_vd_cvtss2sd pattern.
11418
11419 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
11420
11421 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
11422 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
11423 users.
11424
11425 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
11426
11427 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
11428 * config/sh/sh.c: Define and declare variables on first use throughout
11429 the file.
11430 (current_function_interrupt): Change to bool type.
11431 (frame_insn): Rename to emit_frame_insn and update users.
11432 (push_regs): Use bool for 'interrupt_handler' argument.
11433 (save_schedule_s): Remove.
11434 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
11435 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
11436 targetm.asm_out.unaligned_op.di.
11437 (gen_far_branch): Remove redundant forward declaration.
11438 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
11439 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
11440 (sh_set_return_address, sh_function_ok_for_sibcall,
11441 scavenge_reg): Update comments.
11442 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
11443 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
11444 (sh_attr_renesas_p): Remove unnecessary parentheses.
11445 (branch_dest): Simplify.
11446 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
11447 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
11448 (CUMULATIVE_ARGS): Change macro to typedef.
11449 (current_function_interrupt): Change to bool type.
11450 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
11451 Surround with __cplusplus ifdef.
11452 (sh_compare_op0, sh_compare_op1): Remove.
11453 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
11454
11455 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
11456
11457 * config/arm/arm.md: (arch): Add neon.
11458 (arch_enabled): Return yes for arch neon when TARGET_NEON.
11459 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
11460 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
11461 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
11462 attributes for alt renumbering. Mark alt 3 as non-predicable.
11463 (thumb2_movdf_vfp): Likewise.
11464
11465 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
11466
11467 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
11468 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
11469 (*andqi_1): Add preferred_for_speed attribute to disparage
11470 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
11471 (*<code>qi_1): Ditto.
11472 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
11473 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
11474 (*ashlqi3_1): Ditto.
11475 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
11476 Add preferred_for_size attribute to disparage alternative 0 and
11477 preferred_for_speed attribute to disparage alternative 1 for
11478 TARGET_PARTIAL_REG_STALL targets.
11479
11480 2016-05-07 Tom de Vries <tom@codesourcery.com>
11481
11482 PR tree-optimization/70956
11483 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
11484 def.
11485
11486 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
11487
11488 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
11489 * config/sh/sh.c (sh_cbranch_distance): Implement it.
11490 * config/sh/sh.md (branch_zero): Remove define_attr.
11491 (define_delay): Disable delay slot if branch distance is one insn.
11492
11493 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
11494
11495 * config/i386/i386.md (LEAMODE): New mode attribute.
11496 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
11497 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
11498 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
11499 operand 2 predicate.
11500 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
11501 (*lea<mode>_general_3): Ditto.
11502 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
11503
11504 2016-05-06 Jakub Jelinek <jakub@redhat.com>
11505
11506 * genmddump.c (main): Convert argv from char ** to const char **.
11507
11508 2016-05-06 David Malcolm <dmalcolm@redhat.com>
11509
11510 * coretypes.h (OVERRIDE): New macro.
11511 (FINAL): New macro.
11512
11513 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
11514
11515 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
11516 allow coalescing if the types are compatible.
11517
11518 2016-05-06 David Malcolm <dmalcolm@redhat.com>
11519
11520 * pass_manager.h (pass_manager::register_pass_name): New method.
11521 (pass_manager::get_pass_by_name): New method.
11522 (pass_manager::create_pass_tab): New method.
11523 (pass_manager::m_name_to_pass_map): New field.
11524 * passes.c (name_to_pass_map): Delete global in favor of field
11525 "m_name_to_pass_map" of pass_manager.
11526 (register_pass_name): Rename from a function to...
11527 (pass_manager::register_pass_name): ...this method, updating
11528 for renaming of global "name_to_pass_map" to field
11529 "m_name_to_pass_map".
11530 (create_pass_tab): Rename from a function to...
11531 (pass_manager::create_pass_tab): ...this method, updating
11532 for renaming of global "name_to_pass_map" to field.
11533 (get_pass_by_name): Rename from a function to...
11534 (pass_manager::get_pass_by_name): ...this method.
11535 (enable_disable_pass): Convert use of get_pass_by_name to
11536 a method call, locating the pass_manager singleton.
11537
11538 2016-05-06 David Malcolm <dmalcolm@redhat.com>
11539
11540 * genattr-common.c (main): Convert argv from char ** to const char **.
11541 * genattr.c (main): Likewise.
11542 * genattrtab.c (main): Likewise.
11543 * genautomata.c (initiate_automaton_gen): Likewise.
11544 (main): Likewise.
11545 * gencodes.c (main): Likewise.
11546 * genconditions.c (main): Likewise.
11547 * genconfig.c (main): Likewise.
11548 * genconstants.c (main): Likewise.
11549 * genemit.c (main): Likewise.
11550 * genenums.c (main): Likewise.
11551 * genextract.c (main): Likewise.
11552 * genflags.c (main): Likewise.
11553 * genmddeps.c (main): Likewise.
11554 * genopinit.c (main): Likewise.
11555 * genoutput.c (main): Likewise.
11556 * genpeep.c (main): Likewise.
11557 * genpreds.c (main): Likewise.
11558 * genrecog.c (main): Likewise.
11559 * gensupport.c (init_rtx_reader_args_cb): Likewise.
11560 (init_rtx_reader_args): Likewise.
11561 * gensupport.h (init_rtx_reader_args_cb): Likewise.
11562 (init_rtx_reader_args): Likewise.
11563 * gentarget-def.c (main): Likewise.
11564 * read-md.c (read_md_files): Likewise.
11565 * read-md.h (read_md_files): Likewise.
11566
11567 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
11568
11569 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
11570 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
11571 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
11572 Remove unused predicate.
11573 (register_and_not_fp_reg_operand): Ditto.
11574
11575 2016-05-06 Martin Liska <mliska@suse.cz>
11576
11577 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
11578 instead of vec as the vector is local to the function.
11579
11580 2016-05-06 Jakub Jelinek <jakub@redhat.com>
11581
11582 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
11583 avx512bw alternative.
11584
11585 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
11586 before the ashr<mode>3 pattern.
11587
11588 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
11589 v instead of x in vex or maybe_vex alternatives, use
11590 maybe_evex instead of vex in prefix.
11591
11592 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
11593 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
11594 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
11595 in vex or maybe_vex alternatives, use maybe_evex instead of vex
11596 in prefix.
11597
11598 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
11599 v instead of x in vex or maybe_vex alternatives, use
11600 maybe_evex instead of vex in prefix.
11601
11602 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
11603 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
11604 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
11605 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
11606 alternatives, use maybe_evex instead of vex in prefix.
11607
11608 * config/i386/sse.md (vec_interleave_lowv4sf,
11609 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
11610 v instead of x in vex or maybe_vex alternatives, use
11611 maybe_evex instead of vex in prefix.
11612
11613 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
11614 v instead of x in vex or maybe_vex alternatives, use
11615 maybe_evex instead of vex in prefix.
11616
11617 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
11618 v constraint instead of x.
11619
11620 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
11621
11622 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
11623 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
11624 equality first.
11625
11626 2016-05-06 Richard Biener <rguenther@suse.de>
11627
11628 PR tree-optimization/70948
11629 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11630 Properly clobber all fields of va_list for __builtin_va_start.
11631
11632 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
11633
11634 PR debug/70935
11635 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
11636 loop latch destination.
11637
11638 2016-05-06 Martin Liska <mliska@suse.cz>
11639
11640 * tree-ssa-uninit.c: Apply manual changes
11641 to the GNU coding style.
11642 (prune_uninit_phi_opnds): Rename from
11643 prune_uninit_phi_opnds_in_unrealizable_paths.
11644
11645 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11646
11647 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
11648 mspace): Remove deprecated options.
11649 * doc/invoke.texi (SH options): Remove -mspace.
11650
11651 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11652
11653 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
11654
11655 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11656
11657 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
11658 corresponding combine split pattern.
11659
11660 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11661
11662 PR target/58219
11663 * config/sh/predicates.md (long_displacement_mem_operand): New.
11664 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
11665 Add movi20, movi20s alternatives. Adjust length attribute for
11666 alternatives.
11667 (movsi_ie): Allow for any FPU. Adjust length attribute for
11668 alternatives.
11669 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
11670 attribute for alternatives.
11671 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
11672 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
11673 length attribute for alternatives.
11674
11675 2016-05-06 Richard Biener <rguenther@suse.de>
11676
11677 PR tree-optimization/70960
11678 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
11679
11680 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11681
11682 PR target/52933
11683 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
11684 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
11685
11686 2016-05-06 Marek Polacek <polacek@redhat.com>
11687
11688 PR sanitizer/70875
11689 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
11690
11691 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
11692
11693 PR target/54089
11694 * config/sh/sh.md (*rotcr): Add another variant.
11695
11696 2016-05-06 Richard Biener <rguenther@suse.de>
11697
11698 PR middle-end/70931
11699 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
11700
11701 2016-05-06 Richard Biener <rguenther@suse.de>
11702
11703 PR middle-end/70941
11704 * fold-const.c (split_tree): Always convert to the original type
11705 before negating.
11706
11707 2016-05-06 Richard Biener <rguenther@suse.de>
11708
11709 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
11710 (fwprop_addr): Likewise.
11711
11712 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
11713
11714 PR target/70873
11715 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
11716 New prototype.
11717 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
11718 * config/i386/i386.md (push mem splitter): Use find_constant_src in
11719 the splitter condition.
11720 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
11721 the splitter condition.
11722 (FP float_extend load splitter): Ditto.
11723
11724 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
11725
11726 * config/i386/i386.md (peehole2 patterns): Change true_regnum
11727 to REGNO in all peephole2 patterns.
11728 (post-reload splitters): Change true_regnum to REGNO in
11729 post-reload splitters.
11730 (zero_extend splitters): Use general_reg_operand and
11731 nonimmediate_gr_operand predicates.
11732
11733 2016-05-05 Jakub Jelinek <jakub@redhat.com>
11734
11735 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
11736 v constraint instead of x.
11737
11738 2016-05-05 Alan Modra <amodra@gmail.com>
11739
11740 PR target/68662
11741 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
11742 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
11743 TARGET_NO_FP_IN_TOC for -mrelocatable.
11744 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
11745 TARGET_RELOCATABLE test.
11746 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11747 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11748 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
11749 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11750 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11751 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
11752 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11753 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
11754 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
11755 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
11756 Likewise.
11757 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
11758 (rs6000_stack_info): Likewise.
11759 (rs6000_elf_asm_out_constructor): Likewise.
11760 (rs6000_elf_asm_out_destructor): Likewise.
11761 (rs6000_elf_declare_function_name): Likewise.
11762 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
11763 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
11764 Don't define.
11765
11766 2016-05-05 Alan Modra <amodra@gmail.com>
11767
11768 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
11769
11770 2016-05-05 Alan Modra <amodra@gmail.com>
11771
11772 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
11773 out-of-line gpr restore for one or two regs if that would add
11774 a save of lr.
11775
11776 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
11777
11778 PR target/70873
11779 * config/i386/i386.md
11780 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
11781 Change to post-epilogue_completed late splitter. Use sse_reg_operand
11782 as operand 0 predicate.
11783 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
11784 Ditto.
11785 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
11786 Ditto. Emit the pattern using RTX.
11787
11788 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
11789 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
11790 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
11791 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
11792 Ditto.
11793 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
11794 sse_reg_operand as operand 0 predicate.
11795
11796 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
11797 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
11798 instead of gen_rtx_REG.
11799 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
11800 Ditto.
11801
11802 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
11803
11804 * function.c (emit_use_return_register_into_block): Delete.
11805 (gen_return_pattern): Delete.
11806 (emit_return_into_block): Delete.
11807 (active_insn_between): Delete.
11808 (convert_jumps_to_returns): Delete.
11809 (emit_return_for_exit): Delete.
11810 (thread_prologue_and_epilogue_insns): Delete all code dealing with
11811 simple_return for shrink-wrapped blocks.
11812 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
11813 end of blocks that need one.
11814 (get_unconverted_simple_return): Delete.
11815 (convert_to_simple_return): Delete.
11816 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
11817 (convert_to_simple_return): Ditto.
11818
11819 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
11820
11821 * cfgcleanup.c (bb_is_just_return): New function.
11822 (try_optimize_cfg): Simplify jumps to return, branches to return,
11823 and branches around return.
11824
11825 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
11826
11827 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
11828 branch to a return.
11829
11830 2016-05-04 Jakub Jelinek <jakub@redhat.com>
11831
11832 PR c++/70906
11833 PR c++/70933
11834 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
11835 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
11836 assert flags & OEP_HASH_CHECK, instead of asserting it
11837 never happens. Handle TARGET_EXPR.
11838 * fold-const.c (operand_equal_p): For hash verification,
11839 or in OEP_HASH_CHECK into flags.
11840
11841 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
11842
11843 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
11844 comment.
11845 (compute_samebase_partition_bases): Fix typo.
11846
11847 2016-05-04 Jakub Jelinek <jakub@redhat.com>
11848
11849 * config/i386/sse.md (vec_interleave_highv8sf,
11850 vec_interleave_lowv8sf, vec_interleave_highv4df,
11851 vec_interleave_lowv4df): Remove constraints from expanders.
11852
11853 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
11854
11855 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
11856
11857 * tree-inline.c (expand_call_inline): Fix path dealing with
11858 making lhs of call statement undefined.
11859
11860 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
11861
11862 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
11863 Check availability on NODE, too.
11864 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
11865 (cgraph_node::call_for_symbol_and_aliases): Likewise.
11866 (varpool_node::call_for_symbol_and_aliase): Likewise.
11867 * ipa-pure-const.c (add_new_function): Analyze all bodies.
11868 (propagate_pure_const): Propagate across interposable functions, too.
11869 (skip_function_for_local_pure_const): Do not skip interposable bodies
11870 with aliases.
11871 (pass_local_pure_const::execute): Update.
11872
11873 2016-05-04 Marek Polacek <polacek@redhat.com>
11874
11875 * doc/invoke.texi: Document -Wdangling-else.
11876
11877 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
11878
11879 * config.gcc: Error out when conflicting multilib is detected. Do not
11880 loop over multilibs since no combination is legal.
11881
11882 2016-05-04 Alan Modra <amodra@gmail.com>
11883
11884 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
11885 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
11886 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
11887 Align .toc.
11888
11889 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
11890
11891 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
11892 Clean up p5600 comments.
11893
11894 2016-05-04 Richard Biener <rguenther@suse.de>
11895
11896 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
11897 constructor simplifications.
11898 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
11899
11900 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
11901
11902 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
11903 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
11904 result.set_rtx is null instead of aborting.
11905 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
11906 Always enable.
11907 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
11908 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
11909 *mov<mode>_store_postinc): New patterns.
11910
11911 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
11912
11913 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
11914 as commutative. Check both conversions are NOP.
11915 ((A & B) OP (C & B)): Remove.
11916
11917 2016-05-04 Alan Modra <amodra@gmail.com>
11918
11919 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
11920
11921 2016-05-04 Alan Modra <amodra@gmail.com>
11922
11923 PR target/70866
11924 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
11925 when cr2,3,4 are all fixed regs.
11926
11927 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
11928
11929 PR rtl-optimization/57193
11930 * opts.c (default_options_table): Revert OPT_frename_registers change.
11931 * doc/invoke.texi (-frename-registers, -O2): Likewise.
11932
11933 2016-05-03 Martin Sebor <msebor@redhat.com>
11934
11935 PR c++/66561
11936 * builtins.c (fold_builtin_FILE): New function.
11937 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
11938 (fold_builtin_0): Call them.
11939 * gimplify.c (gimplify_call_expr): Remove the handling of
11940 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
11941
11942 PR c++/66561
11943 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
11944 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
11945 constants.
11946
11947 PR c++/66639
11948 * doc/extend.texi (Function Names as Strings): Update __func__,
11949 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
11950 constants.
11951
11952 2016-05-03 Jakub Jelinek <jakub@redhat.com>
11953 Richard Biener <rguenther@suse.de>
11954
11955 PR tree-optimization/70916
11956 * tree-if-conv.c: Include cfganal.h.
11957 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
11958 and remove_fake_exit_edges around the optimization pass.
11959
11960 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
11961
11962 * cgraph.c (symbol_table::create_edge): Set inline_failed.
11963 (cgraph_edge::make_direct): Likewise.
11964 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
11965 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
11966 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
11967 (CIF_THUNK): New code.
11968 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
11969 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
11970 (compute_inline_parameters): Set inline_failed for thunks.
11971 (inline_analyze_function): Cleanup.
11972 * ipa-inline.c (can_inline_edge_p): Do not deal with
11973 call_stmt_cannot_inline_p.
11974 (can_early_inline_edge_p): Likewise.
11975 (early_inliner): Initialize inline_failed.
11976 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
11977
11978 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
11979
11980 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
11981 from nonimm_ssenomem_operand.
11982 (nonimm_ssenomem_operand): New predicate.
11983 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
11984 as operand 0 predicate.
11985 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
11986 Disable unsupported alternatives using "enabled" attribute.
11987 Use register_ssemem_operand as operand 0 predicate.
11988 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
11989
11990 2016-05-03 Marek Polacek <polacek@redhat.com>
11991
11992 PR c/70859
11993 * input.c (expansion_point_location): New function.
11994 * input.h (expansion_point_location): Declare.
11995
11996 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
11997
11998 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
11999 occurence with frame_offset_ ones.
12000
12001 2016-05-03 Alan Modra <amodra@gmail.com>
12002
12003 PR rtl-optimization/70890
12004 * ira.c (combine_and_move_insns): When moving def_insn, remove
12005 equivs on use_insn.
12006
12007 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
12008
12009 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
12010 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
12011 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
12012 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
12013
12014 2016-05-03 Alan Modra <amodra@gmail.com>
12015
12016 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
12017 for SAVE_MULTIPLE/STORE_MULTIPLE.
12018
12019 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12020
12021 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
12022 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
12023
12024 2016-05-03 Richard Biener <rguenther@suse.de>
12025
12026 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
12027 default true.
12028 (gimplify_arg): Likewise.
12029 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
12030 re-writing the result to a decl if required.
12031 (internal_get_tmp_var): Add allow_ssa parameter
12032 and override into_ssa with it.
12033 (get_formal_tmp_var): Adjust.
12034 (get_initialized_tmp_var): Add allow_ssa parameter.
12035 (gimplify_arg): Add allow_ssa parameter and avoid generating
12036 SSA names for the result false.
12037 (gimplify_call_expr): If the call may return twice do not
12038 gimplify parameters into SSA.
12039 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
12040 (gimplify_modify_expr): Adjust assert. For noreturn calls
12041 with a SSA name LHS adjust its def.
12042 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
12043 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
12044 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
12045 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
12046 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
12047 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
12048 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
12049 (optimize_target_teams): Do not allow SSA names for clause operands.
12050 (gimplify_expr): Likewise for where we mark the result addressable.
12051 * passes.def (pass_init_datastructures): Remove.
12052 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
12053 (rewrite_stmt): Likewise.
12054 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
12055 (replace_locals_op): Replace SSA names.
12056 (copy_gimple_seq_and_replace_locals): Init src_cfun.
12057 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
12058 * cgraph.c (release_function_body): Free CFG annotations only
12059 when we have a CFG. Simplify.
12060 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
12061 force_gimple_operand instead of get_initialized_tmp_var.
12062 * tree-pass.h (make_pass_init_datastructures): Remove.
12063 * tree-ssa.c (execute_init_datastructures): Remove.
12064 (pass_data_init_datastructures): Likewise.
12065 (class pass_init_datastructures): Likewise.
12066 (make_pass_init_datastructures): Likewise.
12067 * omp-low.c (create_omp_child_function): Init SSA data structures.
12068 (grid_expand_target_grid_body): Likewise.
12069 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
12070 name before adding it to names_to_release.
12071 (remove_bb): Always release SSA defs.
12072 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
12073 before dereferencing it.
12074 * cgraphunit.c (init_lowered_empty_function): Always
12075 int SSA data structures.
12076 * tree-ssanames.c (release_defs): Remove assert that we are in
12077 SSA form.
12078 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
12079
12080 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12081 Uros Bizjak <ubizjak@gmail.com>
12082
12083 PR rtl-optimization/70467
12084 * config/i386/predicates.md (x86_64_hilo_int_operand,
12085 x86_64_hilo_general_operand): New predicates.
12086 * config/i386/constraints.md (Wd): New constraint.
12087 * config/i386/i386.md (mode attr di): Use Wd instead of e.
12088 (general_hilo_operand): New mode attr.
12089 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
12090 instead of <general_operand>.
12091 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
12092 x86_64_hilo_general_operand instead of <general_operand>.
12093
12094 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12095
12096 PR tree-optimization/70916
12097 * tree-if-conv.c (constant_or_ssa_name): Removed.
12098 (fold_build_cond_expr): Use is_gimple_val instead of
12099 constant_or_ssa_name.
12100
12101 PR tree-optimization/70916
12102 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
12103 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
12104
12105 PR target/49244
12106 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
12107 (optimize_atomic_bit_test_and): New function.
12108 (pass_fold_builtins::execute): Use it.
12109 * optabs.def (atomic_bit_test_and_set_optab,
12110 atomic_bit_test_and_complement_optab,
12111 atomic_bit_test_and_reset_optab): New optabs.
12112 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
12113 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
12114 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
12115 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
12116 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
12117 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
12118 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
12119 * doc/md.texi (atomic_bit_test_and_set@var{mode},
12120 atomic_bit_test_and_complement@var{mode},
12121 atomic_bit_test_and_reset@var{mode}): Document.
12122 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
12123 atomic_bit_test_and_complement<mode>,
12124 atomic_bit_test_and_reset<mode>): New expanders.
12125 (atomic_bit_test_and_set<mode>_1,
12126 atomic_bit_test_and_complement<mode>_1,
12127 atomic_bit_test_and_reset<mode>_1): New insns.
12128
12129 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
12130
12131 PR rtl-optimization/70687
12132 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
12133 instead of unsigned HOST_WIDE_INT.
12134
12135 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
12136
12137 PR rtl-optimization/44281
12138 * hard-reg-set.h (struct target_hard_regs): New field
12139 x_fixed_nonglobal_reg_set.
12140 (fixed_nonglobal_reg_set): New macro.
12141 * reginfo.c (init_reg_sets_1): Initialize it.
12142 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
12143 of fixed_reg_set.
12144 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
12145
12146 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12147
12148 PR tree-optimization/56541
12149 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
12150 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
12151 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
12152 (any_complicated_phi): new static variable.
12153 (aggressive_if_conv): delete.
12154 (if_convertible_phi_p): support phis with more than two arguments.
12155 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
12156 critical pred edges.
12157 (ifcvt_split_critical_edges): support phis with more than two
12158 arguments by checking new parameter. only split critical edges
12159 if needed.
12160 (tree_if_conversion): handle simd pragma marked loop using new
12161 local variable aggressive_if_conv. check any_complicated_phi.
12162
12163 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12164
12165 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
12166 before using it.
12167
12168 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12169
12170 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
12171 cbase.
12172
12173 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
12174
12175 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
12176 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
12177 define_insn_and_split.
12178 (mulsi3_i): New define_insn_and_split.
12179 (mulsi3_call): Convert to define_insn.
12180 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
12181 Remove constraints.
12182
12183 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12184
12185 * machmode.h (mode_complex): Add support to give the complex mode
12186 for a given mode.
12187 (GET_MODE_COMPLEX_MODE): Likewise.
12188 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
12189 stored by build_complex_type and gfc_build_complex_type instead of
12190 trying to figure out the appropriate mode based on the size. Raise
12191 an assertion error, if the type was not set.
12192 * genmodes.c (struct mode_data): Add field for the complex type of
12193 the given type.
12194 (blank_mode): Likewise.
12195 (make_complex_modes): Remember the complex mode created in the
12196 base type.
12197 (emit_mode_complex): Write out the mode_complex array to map a
12198 type mode to the complex version.
12199 (emit_insn_modes_c): Likewise.
12200 * tree.c (build_complex_type): Set the complex type to use before
12201 calling layout_type.
12202 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
12203 support for __float128 complex datatypes.
12204 (rs6000_hard_regno_mode_ok): Likewise.
12205 (rs6000_setup_reg_addr_masks): Likewise.
12206 (rs6000_complex_function_value): Likewise.
12207 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
12208 __float128 and __ibm128 complex.
12209 (FLOAT128_IBM_P): Likewise.
12210 (ALTIVEC_ARG_MAX_RETURN): Likewise.
12211 * doc/extend.texi (Additional Floating Types): Document that
12212 -mfloat128 must be used to enable __float128. Document complex
12213 __float128 and __ibm128 support.
12214
12215 2016-05-02 Jakub Jelinek <jakub@redhat.com>
12216
12217 PR target/49244
12218 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
12219 char/short arguments promoted to int because of promote_prototypes.
12220
12221 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
12222
12223 * config/i386/predicates.md (register_ssemem_operand): New predicate.
12224 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
12225 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
12226 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
12227 alternatives using "enabled" attribute. Use register_ssemem_operand
12228 as operand 1 predicate.
12229 (*cmpi<unord>xf_i387): Split XFmode pattern from
12230 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
12231 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
12232 *absneg<mode>2_i387. Disable unsupported alternatives using
12233 "enabled" attribute.
12234 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
12235
12236 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
12237
12238 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
12239 marker.
12240 (oacc_loop_process): Check mask for loop termination.
12241
12242 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
12243
12244 * cif-code.def (CIF_THUNK): Add.
12245 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
12246 accidental change.
12247
12248 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
12249
12250 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
12251 (dump_inline_summary): Dump it.
12252 (fp_expression_p): New predicate.
12253 (estimate_function_body_sizes): Use it.
12254 (inline_merge_summary): Merge fp_expressions.
12255 (inline_read_section): Read fp_expressions.
12256 (inline_write_summary): Write fp_expressions.
12257 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
12258 codegen boundary if either caller or callee is !fp_expressions.
12259 * ipa-inline.h (inline_summary): Add fp_expressions.
12260 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
12261 to fp_expressions be sure the fp generation flags are updated.
12262
12263 2016-05-02 Jakub Jelinek <jakub@redhat.com>
12264
12265 PR rtl-optimization/70467
12266 * cse.c (cse_insn): Handle no-op MEM moves after folding.
12267
12268 PR rtl-optimization/70467
12269 * ipa-pure-const.c (check_call): Handle internal calls even in
12270 ipa mode like in local mode.
12271
12272 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
12273
12274 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
12275
12276 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
12277
12278 * match.pd (X u< X, X u> X): New transformations.
12279
12280 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
12281
12282 * flag-types.h (enum warn_strict_overflow_code): Move ...
12283 * coretypes.h: ... here.
12284 * fold-const.h (fold_overflow_warning): Declare.
12285 * fold-const.c (fold_overflow_warning): Make non-static.
12286 (fold_comparison): Move the transformation of X +- C1 CMP C2
12287 into X CMP C2 -+ C1 ...
12288 * match.pd: ... here.
12289 * gimple-fold.c (fold_stmt_1): Protect with
12290 fold_defer_overflow_warnings.
12291
12292 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
12293
12294 * omp-low.c (struct oacc_loop): Add 'inner' field.
12295 (new_oacc_loop_raw): Initialize it to zero.
12296 (oacc_loop_fixed_partitions): Initialize it.
12297 (oacc_loop_auto_partitions): Partition outermost loop to outermost
12298 available partitioning.
12299
12300 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
12301
12302 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
12303 register_operand.
12304 (umulsidi3): Likewise.
12305 (indirect_jump): Fix jump instruction assembly patterns.
12306
12307 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
12308
12309 PR target/70860
12310 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
12311 (nvptx_function_value): Assert non-NULL cfun.
12312
12313 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
12314
12315 PR rtl-optimization/70886
12316 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
12317
12318 * cselib.h (rtx_equal_for_cselib_1): Declare.
12319 (rtx_equal_for_cselib_p: New inline function.
12320 * cselib.c (rtx_equal_for_cselib_p): Delete.
12321 (rtx_equal_for_cselib_1): Make public.
12322
12323 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
12324
12325 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
12326 (register_mixssei387nonimm_operand): Remove predicate.
12327 * config/i386/i386.md (*fop_<mode>_comm): Merge from
12328 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
12329 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
12330 for TARGET_MIX_SSE_I387 alternatives.
12331 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
12332 Disable unsupported alternatives using "enabled" attribute. Use
12333 nonimm_ssenomem_operand as operand 1 predicate. Also check
12334 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
12335
12336 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
12337
12338 * tree.c (cst_and_fits_in_hwi): Simplify.
12339
12340 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
12341
12342 * tree.h (wi::to_wide): New function.
12343 * expr.c (expand_expr_real_1): Use wi::to_wide.
12344 * fold-const.c (int_const_binop_1): Likewise.
12345 (extract_muldiv_1): Likewise.
12346
12347 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
12348
12349 * wide-int.h: Update offset_int and widest_int documentation.
12350 (WI_SIGNED_SHIFT_RESULT): New macro.
12351 (wi::binary_shift): Define signed_shift_result_type for
12352 shifts on offset_int- and widest_int-like types.
12353 (generic_wide_int): Support <<= and >>= if << and >> are supported.
12354 * tree.h (int_bit_position): Use shift operators instead of wi::
12355 shifts.
12356 * alias.c (adjust_offset_for_component_ref): Likewise.
12357 * expr.c (get_inner_reference): Likewise.
12358 * fold-const.c (fold_comparison): Likewise.
12359 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
12360 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
12361 * tree-dfa.c (get_ref_base_and_extent): Likewise.
12362 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
12363 (stmt_kills_ref_p): Likewise.
12364 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
12365 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
12366 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12367 (ao_ref_init_from_vn_reference): Likewise.
12368
12369 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
12370
12371 * wide-int.h: Update offset_int and widest_int documentation.
12372 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
12373 (wi::binary_traits): Allow ordered comparisons between offset_int and
12374 offset_int, between widest_int and widest_int, and between either
12375 of these types and basic C types.
12376 (operator <, <=, >, >=): Define for the same combinations.
12377 * tree.h (tree_int_cst_lt): Use comparison operators instead
12378 of wi:: comparisons.
12379 (tree_int_cst_le): Likewise.
12380 * gimple-fold.c (fold_array_ctor_reference): Likewise.
12381 (fold_nonarray_ctor_reference): Likewise.
12382 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
12383 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
12384 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
12385 * tree-sra.c (completely_scalarize): Likewise.
12386 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
12387 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
12388 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
12389 (check_for_binary_op_overflow): Likewise.
12390 (search_for_addr_array): Likewise.
12391 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
12392
12393 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
12394
12395 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
12396 (arc_save_restore): Likewise.
12397 (arc_dwarf_register_span): Likewise.
12398 (arc_output_pic_addr_const): Initialize suffix variable.
12399
12400 2016-05-02 Martin Liska <mliska@suse.cz>
12401
12402 * symbol-summary.h (function_summary::function_summary):
12403 Remove checking assert for all cgraph nodes.
12404 (function_summary::get): Check summary_uid.
12405 (symtab_insertion): Check summary_uid.
12406
12407 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
12408
12409 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
12410 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
12411 bmaskn instruction.
12412 (arc_dwarf_register_span): Remove enum keyword.
12413 (compact_memory_operand_p): New function.
12414 * config/arc/arc.h (reg_class): Add code density register classes.
12415 (REG_CLASS_NAMES): Likewise.
12416 (REG_CLASS_CONTENTS): Likewise.
12417 * config/arc/arc.md (*movqi_insn): Add code density instructions.
12418 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
12419 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
12420 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
12421 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
12422 constraints.
12423 (h, Rcd, Rsd, Rzd): New register constraints.
12424 (T): Use compact_memory_operand_p function.
12425 * config/arc/predicates.md (compact_load_memory_operand): Remove.
12426
12427 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
12428
12429 * config/sh/sh.md (*negnegt, *movtt): Remove.
12430
12431 2016-05-02 Marek Polacek <polacek@redhat.com>
12432 Tom de Vries <tom@codesourcery.com>
12433
12434 PR tree-optimization/70700
12435 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
12436 bigger than FIRST_REF_NODE.
12437
12438 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
12439
12440 PR target/52898
12441 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
12442 TARGET_CMPEQDI_T.
12443 (prepare_cbranch_operands): Don't use scratch register. Assume that
12444 function is used when pseudos can be created.
12445 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
12446 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
12447 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
12448 define_expand. Allow it only when pseudos can be created.
12449 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
12450
12451 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
12452
12453 * config/i386/constraints.md (BC): Only allow -1 operands.
12454 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
12455 Add "enabled" attribute. Update XI mode attribute calculation.
12456 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
12457 (*movoi_internal_avx): Update XI mode attribute calculation.
12458 (*movti_internal): Ditto.
12459
12460 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
12461
12462 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
12463 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
12464
12465 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
12466
12467 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
12468 statement on instruction code. Remove trailing spaces.
12469 (altivec_expand_stv_builtin): Likewise.
12470
12471 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
12472
12473 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
12474 (TARGET_FPU_DOUBLE): Simplify.
12475 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
12476 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
12477 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
12478 with 'TARGET_FPU_DOUBLE'.
12479 * config/sh/sh.md: Likewise.
12480
12481 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
12482
12483 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
12484 SH_DIV_STR_FOR_SIZE): Remove.
12485 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
12486 SH_DIV_STR_FOR_SIZE): Remove.
12487
12488 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
12489
12490 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
12491 logical_reg_operand): Delete.
12492 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
12493 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
12494 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
12495 match_operand and match_test.
12496 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
12497 variables on their first use. Return bool values.
12498 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
12499 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
12500 arith_reg_operand for input operand. Remove empty constraints.
12501 (xorsi3): Delete.
12502 (*xorsi3_compact): Rename to xorsi3.
12503 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
12504 (*zero_extend<mode>si2_disp_mem): Update comment.
12505 (mov_nop): Delete.
12506
12507 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
12508
12509 * config/sh/t-sh: Remove SH5 support.
12510 * config.gcc: Likewise.
12511 * configure: Likewise.
12512
12513 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12514
12515 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
12516
12517 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
12518
12519 * config/sh/sh.c (register_sh_passes, sh_option_override,
12520 sh_print_operand, prepare_move_operands,
12521 sh_can_follow_jump): Remove TARGET_SH1 checks.
12522 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
12523 PROMOTE_MODE): Likewise.
12524 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
12525 movdi): Likewise.
12526
12527 2016-04-30 Alan Modra <amodra@gmail.com>
12528
12529 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
12530 restoring when fixed_reg_p, but allow out-of-line or stmw save.
12531 Check for user regs later to avoid unnecessary looping over regs.
12532 Merge user reg check with non-saved reg check. Don't force
12533 inline VR restore when static chain used.
12534 (rs6000_frame_related): Omit eh_frame info for user regs when
12535 saving.
12536 (fixed_regs_p): Delete.
12537
12538 2016-04-30 Alan Modra <amodra@gmail.com>
12539
12540 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
12541 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
12542 Update all uses.
12543
12544 2016-04-30 Alan Modra <amodra@gmail.com>
12545
12546 PR target/69645
12547 * config/rs6000/rs6000.c (fixed_reg_p): New function.
12548 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
12549 Update all uses.
12550
12551 2016-04-30 Alan Modra <amodra@gmail.com>
12552
12553 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
12554 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
12555 flag_pic test for Darwin.
12556
12557 2016-04-30 Alan Modra <amodra@gmail.com>
12558
12559 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
12560 throw_calls_crossed.
12561 (REG_FREQ_CALLS_CROSSED): Delete.
12562 (REG_N_THROWING_CALLS_CROSSED): Delete.
12563 * regstat.c (regstat_bb_compute_ri): Don't calculate
12564 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
12565 (dump_reg_info): Don't print call cross frequency.
12566 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
12567 and REG_N_THROWING_CALLS_CROSSED.
12568
12569 2016-04-30 Alan Modra <amodra@gmail.com>
12570
12571 * regs.h (struct reg_info_t): Delete live_length.
12572 (REG_LIVE_LENGTH): Delete macro.
12573 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
12574 local_live, local_processed and local_live_last_luid params.
12575 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
12576 Formatting fixes.
12577 (regstat_compute_ri): Adjust for above. Don't set
12578 REG_LIVE_LENGTH.
12579 (dump_reg_info): Don't print live length.
12580 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
12581 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
12582 Localize loop_depth var.
12583
12584 2016-04-30 Alan Modra <amodra@gmail.com>
12585
12586 * ira.c (enum valid_equiv): New.
12587 (validate_equiv_mem): Return enum.
12588 (update_equiv_mem): Create replacement in more cases.
12589 (add_store_equivs): Update validate_equiv_mem call.
12590
12591 2016-04-30 Alan Modra <amodra@gmail.com>
12592
12593 * ira.c (combine_and_move_insns): Rather than scanning insns,
12594 use DF infrastucture to find use and def insns.
12595
12596 2016-04-30 Alan Modra <amodra@gmail.com>
12597
12598 ira.c (combine_and_move_insns): Move invariant conditions..
12599 (ira.c): ..to here. Call combine_and_move_insns before
12600 add_store_equivs. Call grow_reg_equivs later. Allocate
12601 req_equiv later using max_reg_num() rather than global max_regno.
12602 (contains_replace_regs): Delete.
12603 (add_store_equivs): Remove contains_replace_regs test.
12604
12605 2016-04-30 Alan Modra <amodra@gmail.com>
12606
12607 * ira.c (struct equiv_mem_data): New.
12608 (equiv_mem, equiv_mem_modified): Delete static vars.
12609 (validate_equiv_mem_from_store): Use "data" param to communicate..
12610 (validate_equiv_mem): ..from here.
12611
12612 2016-04-30 Alan Modra <amodra@gmail.com>
12613
12614 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
12615 split out from..
12616 (update_reg_equivs): ..here. Move allocation and freeing of
12617 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
12618 end_alias_analysis to..
12619 (ira): ..here.
12620
12621 2016-04-30 Alan Modra <amodra@gmail.com>
12622
12623 * ira.c (pdx_subregs): Delete.
12624 (struct equivalence): Add pdx_subregs field.
12625 (set_paradoxical_subreg): Remove pdx_subregs param. Update
12626 pdx_subregs access.
12627 (update_equiv_regs): Don't create or free pdx_subregs. Update
12628 pdx_subregs access.
12629
12630 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12631
12632 * config/rs6000/altivec.h: Change definitions of vec_xl and
12633 vec_xst.
12634 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
12635 (LD_ELEMREV_V2DI): New.
12636 (LD_ELEMREV_V4SF): New.
12637 (LD_ELEMREV_V4SI): New.
12638 (LD_ELEMREV_V8HI): New.
12639 (LD_ELEMREV_V16QI): New.
12640 (ST_ELEMREV_V2DF): New.
12641 (ST_ELEMREV_V2DI): New.
12642 (ST_ELEMREV_V4SF): New.
12643 (ST_ELEMREV_V4SI): New.
12644 (ST_ELEMREV_V8HI): New.
12645 (ST_ELEMREV_V16QI): New.
12646 (XL): New.
12647 (XST): New.
12648 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12649 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
12650 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
12651 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
12652 (altivec_expand_builtin): Add handling for
12653 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
12654 (rs6000_invalid_builtin): Add error-checking for
12655 RS6000_BTM_P9_VECTOR.
12656 (altivec_init_builtins): Define builtins used to implement vec_xl
12657 and vec_xst.
12658 (rs6000_builtin_mask_names): Define power9-vector.
12659 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
12660 (RS6000_BTM_P9_VECTOR): Define.
12661 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
12662 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
12663 (vsx_ld_elemrev_v2df): Likewise.
12664 (vsx_ld_elemrev_v4sf): Likewise.
12665 (vsx_ld_elemrev_v4si): Likewise.
12666 (vsx_ld_elemrev_v8hi): Likewise.
12667 (vsx_ld_elemrev_v16qi): Likewise.
12668 (vsx_st_elemrev_v2df): Likewise.
12669 (vsx_st_elemrev_v2di): Likewise.
12670 (vsx_st_elemrev_v4sf): Likewise.
12671 (vsx_st_elemrev_v4si): Likewise.
12672 (vsx_st_elemrev_v8hi): Likewise.
12673 (vsx_st_elemrev_v16qi): Likewise.
12674 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
12675 grammar.
12676
12677 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
12678
12679 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
12680 out into ...
12681 (simplify_control_stmt_condition_1): ... here. Recurse into
12682 BIT_AND_EXPRs and BIT_IOR_EXPRs.
12683
12684 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
12685
12686 PR target/69810
12687 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
12688 (zero_extendqi<mode>2_dot): Revert earlier conversion from
12689 define_insn_and_split to define_insn.
12690 (zero_extendqi<mode>2_dot2): Same.
12691 (extendqi<mode>2_dot): Same.
12692 (extendqi<mode>2_dot2): Same.
12693
12694 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
12695
12696 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
12697 (probe_stack): New expander.
12698 (probe_stack_<mode>): New insn pattern.
12699
12700 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
12701
12702 * config/i386/i386.md
12703 (operations with memory inputs setting flags peephole2):
12704 Remove uneeded REG_P checks. Cleanup pattern generation.
12705
12706 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
12707
12708 * tree-vect-loop.c (vect_transform_loop): Fix
12709 nb_iterations_upper_bound computation for vectorized loop.
12710
12711 2016-04-29 Marek Polacek <polacek@redhat.com>
12712 Jakub Jelinek <jakub@redhat.com>
12713
12714 PR sanitizer/70342
12715 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
12716 TARGET_EXPR_SLOT as a base.
12717
12718 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
12719
12720 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
12721 with 'rCm2' constraints to limit possible immediate size.
12722 (*load_zeroextendqisi_update): Likewise.
12723 (*load_signextendqisi_update): Likewise.
12724 (*loadhi_update): Likewise.
12725 (*load_zeroextendhisi_update): Likewise.
12726 (*load_signextendhisi_update): Likewise.
12727 (*loadsi_update): Likewise.
12728 (*loadsf_update): Likewise.
12729
12730 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
12731
12732 * config/i386/predicates.md (constm1_operand): Fix comparison.
12733
12734 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
12735
12736 * testsuite/gcc.target/arc/ieee_eq.c: New test.
12737
12738 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
12739
12740 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
12741 remaining SH5 related settings.
12742 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
12743 shmedia_prepare_call_address): Delete.
12744 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
12745 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
12746 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
12747 UNSUPPORTED_SH2A): Remove m5 checks.
12748 (sh_divide_strategy_e): Remove SH5 division strategies.
12749 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
12750 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
12751
12752 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
12753
12754 * config/s390/s390.c (s390_rtx_costs): Update documentation.
12755
12756 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12757
12758 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
12759 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
12760 Change lder to ldr.
12761 * config/s390/vector.md ("mov<mode>"): Likewise.
12762
12763 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
12764
12765 * config/s390/constraints.md ("U", "W"): Invoke
12766 s390_mem_constraint with "ZR" and "ZT".
12767 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
12768 addresses when using LRA. Accept also short displacements for S
12769 and T constraints. Do not check for long displacement target for
12770 S and T constraints.
12771 (s390_mem_constraint): Remove handling of U and W constraints.
12772 * config/s390/s390.md (various patterns): Remove the short
12773 displacement constraints (Q and R) if a long displacement
12774 constraint is present. Add longdisp as required CPU capability.
12775 * config/s390/vector.md: Likewise.
12776 * config/s390/vx-builtins.md: Likewise.
12777
12778 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12779
12780 PR target/60040
12781 * reload1.c (reload): Call finish_spills before
12782 restarting reload loop. Skip select_reload_regs
12783 if update_eliminables_and_spill returns true.
12784
12785 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
12786
12787 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
12788 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
12789 (umulhisi3_imm): Update predicates and constraint letters.
12790 (umulhisi3_reg): Declare instruction as commutative.
12791 * config/arc/constraints.md (J12, J16): New constraints.
12792 * config/arc/predicates.md (short_unsigned_const_operand): New
12793 predicate.
12794 (arc_short_operand): Likewise.
12795 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
12796
12797 2016-04-29 Richard Biener <rguenther@suse.de>
12798
12799 PR tree-optimization/13962
12800 PR tree-optimization/65686
12801 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
12802 * tree-ssa-alias.c (ptrs_compare_unequal): New function
12803 using PTA to compare pointers.
12804 * match.pd: Add pattern for pointer equality compare simplification
12805 using ptrs_compare_unequal.
12806
12807 2016-04-29 Richard Biener <rguenther@suse.de>
12808
12809 * stor-layout.c (layout_type): Do not build a pointer-to-element
12810 type for arrays.
12811
12812 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
12813
12814 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
12815 Use SWI mode iterator. Use general_reg_operand predicate.
12816 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
12817 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
12818 predicates.
12819
12820 2016-04-29 Jakub Jelinek <jakub@redhat.com>
12821
12822 PR middle-end/70843
12823 * fold-const.c (operand_equal_p): Don't verify hash value equality
12824 if arg0 == arg1.
12825 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
12826 and OMP_CLAUSE.
12827
12828 2016-04-28 Jakub Jelinek <jakub@redhat.com>
12829
12830 PR target/70858
12831 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
12832 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
12833 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
12834 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
12835 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
12836
12837 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
12838
12839 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
12840 to info. Don't initialize separate fields to 0. Clean up
12841 formatting a bit.
12842
12843 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
12844
12845 * config/i386/i386.md (peephole2s for operations with memory inputs):
12846 Use SWI mode iterator.
12847 (peephole2s for operations with memory outputs): Ditto.
12848 Do not check for stack checking probe.
12849
12850 (probe_stack): Remove expander.
12851
12852 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
12853 Andrew Burgess <andrew.burgess@embecosm.com>
12854
12855 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
12856 operands as 32-bits.
12857
12858 2016-04-28 Jason Merrill <jason@redhat.com>
12859
12860 * gdbinit.in: Skip line-map.h.
12861
12862 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
12863 Andrew Burgess <andrew.burgess@embecosm.com>
12864
12865 * config/arc/arc.c (arc_conditional_register_usage): Take
12866 TARGET_RRQ_CLASS into account.
12867 (arc_print_operand): Support printing 'p' and 's' operands.
12868 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
12869 as 0.
12870 (TARGET_RRQ_CLASS): Define.
12871 (IS_POWEROF2_OR_0_P): Define.
12872 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
12873 alternatives.
12874 (*tst_movb): New define_insn.
12875 (*tst): Avoid recognition if it could prevent '*tst_movb'
12876 combination; replace c/CnL with c/Chs alternative.
12877 (*tst_bitfield_tst): New define_insn.
12878 (*tst_bitfield_asr): New define_insn.
12879 (*tst_bitfield): New define_insn.
12880 (andsi3_i): Add Rrq variant.
12881 (extzv): New define_expand.
12882 (insv): New define_expand.
12883 (*insv_i): New define_insn.
12884 (*movb): New define_insn.
12885 (*movb_signed): New define_insn.
12886 (*movb_high): New define_insn.
12887 (*movb_high_signed): New define_insn.
12888 (*movb_high_signed + 1): New define_split pattern.
12889 (*mrgb): New define_insn.
12890 (*mrgb + 1): New define_peephole2 pattern.
12891 (*mrgb + 2): New define_peephole2 pattern.
12892 * config/arc/arc.opt (mbitops): New option for nps400, uses
12893 TARGET_NPS_BITOPS_DEFAULT.
12894 * config/arc/constraints.md (q): Make register class conditional.
12895 (Rrq): New register constraint.
12896 (Chs): New constraint.
12897 (Clo): New constraint.
12898 (Chi): New constraint.
12899 (Cbf): New constraint.
12900 (Cbn): New constraint.
12901 (C18): New constraint.
12902 (Cbi): New constraint.
12903
12904 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
12905
12906 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
12907 dst->popcount.
12908 (bitmap_intersection_of_preds): Ditto.
12909 (bitmap_union_of_succs): Ditto.
12910 (bitmap_union_of_preds): Ditto.
12911 * sbitmap.c (do_popcount): Delete.
12912 (BITMAP_DEBUGGING): Delete.
12913 (sbitmap_verify_popcount): Delete.
12914 (sbitmap_alloc): Don't initialize the popcount field.
12915 (sbitmap_alloc_with_popcount): Delete.
12916 (sbitmap_resize): Don't resize the popcount array.
12917 (sbitmap_vector_alloc): Don't initialize the popcount field.
12918 (bitmap_copy): Don't copy the popcount array.
12919 (bitmap_clear): Don't clear the popcount array.
12920 (bitmap_clear): Delete the popcount array handling.
12921 (bitmap_ior_and_compl): Delete the popcount assert.
12922 (bitmap_not): Ditto.
12923 (bitmap_and_compl): Ditto.
12924 (bitmap_and): Delete the popcount array handling.
12925 (bitmap_xor): Ditto.
12926 (bitmap_ior): Ditto.
12927 (bitmap_or_and): Delete the popcount assert.
12928 (bitmap_and_or): Ditto.
12929 (popcount_table): Delete.
12930 (sbitmap_elt_popcount): Delete.
12931 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
12932 (bitmap_set_bit): Delete the popcount assert.
12933 (bitmap_clear_bit): Ditto.
12934 (sbitmap_free): Don't free the popcount array.
12935 (sbitmap_alloc_with_popcount): Delete declaration.
12936 (sbitmap_popcount): Ditto.
12937
12938 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
12939 Andrew Burgess <andrew.burgess@embecosm.com>
12940
12941 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
12942 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
12943 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
12944 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
12945 * config/arc/arc.opt (mcmem): New option.
12946 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
12947 supply length for r/m alternative.
12948 (*extendqisi2_ac): Likewise.
12949 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
12950 r/Uex alternative.
12951 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
12952 (movhi_insn): Likewise.
12953 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
12954 (*zero_extendqihi2_i): Add r/Ucm alternative.
12955 (*zero_extendqisi2_ac): Likewise.
12956 (*zero_extendhisi2_i): Likewise.
12957 * config/arc/constraints.md (Uex): New memory constraint.
12958 (Ucm): New define_constraint.
12959 * config/arc/predicates.md (long_immediate_loadstore_operand):
12960 Return 0 for MEM with cmem_address address.
12961 (cmem_address_0): New predicates.
12962 (cmem_address_1): Likewise.
12963 (cmem_address_2): Likewise.
12964 (cmem_address): Likewise.
12965
12966 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
12967
12968 * config/rs6000/rs6000.c (machine_function): Rename
12969 insn_chain_scanned_p to spe_insn_chain_scanned_p.
12970 (rs6000_stack_info): Adjust.
12971
12972 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
12973 Andrew Burgess <andrew.burgess@embecosm.com>
12974
12975 * config/arc/constraints.md (Usd): Convert to define_constraint.
12976 (Us<): Likewise.
12977 (Us>): Likewise.
12978
12979 2016-04-28 Jakub Jelinek <jakub@redhat.com>
12980
12981 PR target/70821
12982 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
12983 Add new peephole2 where the first insn is *mov<mode>_or instead of
12984 *mov<mode>_internal.
12985
12986 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
12987
12988 * tracer.c (bb_seen): Make static.
12989
12990 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
12991
12992 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
12993 support, setup defaults.
12994 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
12995 * config/arc/arc.c (arc_init): Add NPS400 support.
12996 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
12997 (TARGET_ARC700): NPS400 is also an ARC700.
12998 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
12999
13000 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13001
13002 PR target/70668
13003 * config/nds32/nds32.md (casesi): Don't access the operands array
13004 out of bounds.
13005
13006 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13007
13008 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
13009 (or $-1,reg peephole2): Ditto.
13010 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
13011
13012 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
13013
13014 * doc/extend.texi (Common Function Attributes) [optimize]:
13015 Discourage use of the optimize attribute.
13016
13017 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
13018
13019 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
13020 special case builtin.
13021 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
13022 ALTIVEC_BUILTIN_VEC_ADDE.
13023 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13024 support for ALTIVEC_BUILTIN_VEC_ADDE.
13025 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13026 for __builtin_vec_adde.
13027
13028 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13029
13030 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
13031 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
13032
13033 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13034
13035 PR testsuite/70595
13036 * doc/sourcebuild.texi (Effective-Target Keywords, Other
13037 attributes): Document cilkplus_runtime.
13038
13039 2016-04-28 Martin Jambor <mjambor@suse.cz>
13040
13041 * tree-cfg.c (verify_expr): Verify that local declarations belong to
13042 this function. Call verify_expr on MEM_REFs and bases of other
13043 handled_components.
13044
13045 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13046
13047 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
13048 for WORD_REGISTER_OPERATIONS to runtime check.
13049
13050 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13051
13052 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
13053
13054 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13055
13056 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
13057 big-endian compilation.
13058 * config/arc/arc.md (addf3): Likewise.
13059 (subdf3): Likewise.
13060 (muldf3): Likewise.
13061
13062 2016-04-28 Richard Biener <rguenther@suse.de>
13063
13064 PR tree-optimization/70840
13065 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
13066 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
13067 Mark x * pow(x,c) -> pow(x,c+1) commutative.
13068 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
13069
13070 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13071
13072 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
13073 and explain why in a comment.
13074
13075 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13076
13077 * config/arc/arc.md (cpu_facility): Add fpx variant.
13078 (subdf3): Prohibit use reverse sub when assist operations option
13079 is enabled.
13080 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
13081 instructions only when FPX is enabled.
13082 * testsuite/gcc.target/arc/trsub.c: New test.
13083
13084 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13085
13086 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
13087 mult_operator when calculating "type" attribute.
13088 (*fop_<mode>_1_i387): Ditto.
13089 (*fop_xf_1_i387): Ditto.
13090 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
13091 Use std::swap to swap operands. Use RTL expressions to generate
13092 converted pattern.
13093
13094 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13095 Joern Rennecke <joern.rennecke@embecosm.com>
13096
13097 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
13098 declaration.
13099 (emit_pic_move): Remove.
13100 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
13101 * config/arc/arc.c (emit_pic_move): Removed.
13102 (TARGET_HAVE_TLS): Define.
13103 (arc_conditional_register_usage): Test for arc_tp_regno.
13104 (arc_print_operand, arc_print_operand_address): Handle TLS
13105 unspecs.
13106 (arc_needs_pcl_p): New function.
13107 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
13108 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
13109 (arc_raw_symbolic_reference_mentioned_p): Likewise.
13110 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
13111 (arc_legitimize_tls_address): Likewise.
13112 (DTPOFF_ZERO_SYM): Define.
13113 (arc_legitimize_pic_address): Make it static, handle TLS cases.
13114 (arc_output_pic_addr_const): Print TLS unspecs.
13115 (prepare_pic_move): New function, replaces emit_pic_move.
13116 (arc_legitimate_constant_p): Handle TLS unspecs.
13117 (arc_legitimate_address_p): Likewise.
13118 (arc_rewrite_small_data_p): Use assert for TLS constants.
13119 (prepare_move_operands): Use prepare_pic_move.
13120 (arc_legitimize_address): Legitimize tls addresses.
13121 (arc_epilogue_uses): Check for arc_tp_regno.
13122 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
13123 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
13124 Define.
13125 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
13126 Likewise.
13127 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
13128 %(arc_tls_extra_start_spec).
13129 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
13130 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
13131 (EH_USES): Define.
13132 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
13133 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
13134 (UNSPEC_TLS_OFF): Add.
13135 (R10_REG): Define.
13136 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
13137 (get_thread_pointersi): New patterns.
13138 * config/arc/arc.opt (mtp-regno): New option.
13139 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
13140 (move_dest_operand): Likewise.
13141 * configure: Regenerate.
13142 * configure.ac: Add arc*-*-* case to test for tls.
13143 * doc/invoke.texi (ARC options): Document mtp-regno.
13144
13145 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13146
13147 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
13148 the new ARC HS SIMD instructions.
13149 (arc_preferred_simd_mode): New function.
13150 (arc_autovectorize_vector_sizes): Likewise.
13151 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
13152 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
13153 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
13154 (arc_init_builtins): Add new SIMD builtin types.
13155 (arc_split_move): Handle 64 bit vector moves.
13156 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
13157 (TARGET_PLUS_QMACW): Define.
13158 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
13159 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
13160 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
13161 (VSUBADD4H): New builtins.
13162 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
13163 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
13164
13165 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
13166 Matthias Klose <doko@debian.org>
13167
13168 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
13169
13170 2016-04-28 Richard Biener <rguenther@suse.de>
13171
13172 PR middle-end/70777
13173 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
13174 canonicalization.
13175
13176 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
13177
13178 * common/config/sh/sh-common.c: Remove SH5 support.
13179 * config/sh/constraints.md: Likewise.
13180 * config/sh/config/sh/elf.h: Likewise.
13181 * config/sh/linux.h: Likewise.
13182 * config/sh/netbsd-elf.h: Likewise.
13183 * config/sh/predicates.md: Likewise.
13184 * config/sh/sh-c.c: Likewise.
13185 * config/sh/sh-protos.h: Likewise.
13186 * config/sh/sh.c: Likewise.
13187 * config/sh/sh.h: Likewise.
13188 * config/sh/sh.md: Likewise.
13189 * config/sh/sh.opt: Likewise.
13190 * config/sh/sync.md: Likewise.
13191 * config/sh/sh64.h: Delete.
13192 * config/sh/shmedia.h: Likewise.
13193 * config/sh/shmedia.md: Likewise.
13194 * config/sh/sshmedia.h: Likewise.
13195 * config/sh/t-netbsd-sh5-64: Likewise.
13196 * config/sh/t-sh64: Likewise.
13197 * config/sh/ushmedia.h: Likewise.
13198
13199 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13200
13201 * config/i386/i386.md (sign_extend to memory peephole2s): Use
13202 general_reg_operand instead of register_operand predicate.
13203
13204 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13205
13206 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
13207
13208 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
13209
13210 * match.pd (A - B > A, A + B < A): New transformations.
13211
13212 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
13213
13214 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
13215 which defaults to true. Emit an outer pair of parentheses only if
13216 EMIT_PARENS. When continuing a chain of && or || (or & or |),
13217 don't emit parentheses for the right-hand operand.
13218
13219 2016-04-27 Jeff Law <law@redhat.com>
13220
13221 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
13222
13223 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13224
13225 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
13226 (altivec_lvx_<mode>_internal): Document.
13227 (altivec_lvx_<mode>_2op): New define_insn.
13228 (altivec_lvx_<mode>_1op): Likewise.
13229 (altivec_lvx_<mode>_2op_si): Likewise.
13230 (altivec_lvx_<mode>_1op_si): Likewise.
13231 (altivec_stvx_<mode>): Remove.
13232 (altivec_stvx_<mode>_internal): Document.
13233 (altivec_stvx_<mode>_2op): New define_insn.
13234 (altivec_stvx_<mode>_1op): Likewise.
13235 (altivec_stvx_<mode>_2op_si): Likewise.
13236 (altivec_stvx_<mode>_1op_si): Likewise.
13237 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13238 Expand vec_ld and vec_st during parsing.
13239 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
13240 changes.
13241 (altivec_expand_stvx_be): Likewise.
13242 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
13243 address-masking behavior in RTL.
13244 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
13245 address-masking behavior in RTL.
13246 (altivec_expand_builtin): Change builtin code arguments for calls
13247 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
13248 (insn_is_swappable_p): Avoid incorrect swap optimization in the
13249 presence of lvx/stvx patterns.
13250 (alignment_with_canonical_addr): New function.
13251 (alignment_mask): Likewise.
13252 (find_alignment_op): Likewise.
13253 (recombine_lvx_pattern): Likewise.
13254 (recombine_stvx_pattern): Likewise.
13255 (recombine_lvx_stvx_patterns): Likewise.
13256 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
13257 stvx patterns from expand.
13258 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
13259 expansions.
13260 (vector_altivec_store_<mode>): Likewise.
13261
13262 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
13263
13264 * config/aarch64/aarch64.md
13265 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
13266 remove the "fp" attributes.
13267 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
13268 add the "simd" attributes.
13269 (*movdf_aarch64): Likewise.
13270 (*movtf_aarch64): Remove the "fp" attributes.
13271 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
13272 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
13273
13274 2016-04-27 David Malcolm <dmalcolm@redhat.com>
13275
13276 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
13277 rtx to rtx_code_label *.
13278 * rtl.h (maybe_set_first_label_num): Likewise.
13279
13280 2016-04-27 David Malcolm <dmalcolm@redhat.com>
13281
13282 * df-core.c (df_add_problem): Make the problem param be const.
13283 (df_remove_problem): Make local "problem" be const.
13284 * df-problems.c (problem_RD): Make const.
13285 (problem_LR): Likewise.
13286 (problem_LIVE): Likewise.
13287 (problem_MIR): Likewise.
13288 (problem_CHAIN): Likewise.
13289 (problem_WORD_LR): Likewise.
13290 (problem_NOTE): Likewise.
13291 (problem_MD): Likewise.
13292 * df-scan.c (problem_SCAN): Likewise.
13293 * df.h (struct df_problem): Make field "dependent_problem" be
13294 const.
13295 (struct dataflow): Likewise for field "problem".
13296 (df_add_problem): Make param const.
13297
13298 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
13299
13300 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
13301 inter-unit moves to/from vector registers are enabled. Do not disable
13302 for TARGET_MMX.
13303
13304 2016-04-27 David Malcolm <dmalcolm@redhat.com>
13305
13306 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
13307 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
13308 #define to...
13309 (enum df_problem_id): ...this new enum.
13310 (struct df_problem): Convert field "id" from "int" to
13311 enum df_problem_id.
13312
13313 2016-04-27 David Malcolm <dmalcolm@redhat.com>
13314
13315 * rtl.def: Update comment for "things in the instruction chain" to
13316 reflect the removal of the leading "i" field for INSN_UID in
13317 r210360. Fix bogus apostrophe.
13318
13319 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
13320
13321 * config/i386/i386.md
13322 (lea arith with mem operand + setcc peephole2): Set operator mode.
13323
13324 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
13325
13326 PR target/70155
13327 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
13328 (dimode_scalar_to_vector_candidate_p): This.
13329 (timode_scalar_to_vector_candidate_p): New function.
13330 (scalar_to_vector_candidate_p): Likewise.
13331 (timode_check_non_convertible_regs): Likewise.
13332 (timode_remove_non_convertible_regs): Likewise.
13333 (remove_non_convertible_regs): Likewise.
13334 (remove_non_convertible_regs): Renamed to ...
13335 (dimode_remove_non_convertible_regs): This.
13336 (scalar_chain::~scalar_chain): Make it virtual.
13337 (scalar_chain::compute_convert_gain): Make it pure virtual.
13338 (scalar_chain::mark_dual_mode_def): Likewise.
13339 (scalar_chain::convert_insn): Likewise.
13340 (scalar_chain::convert_registers): Likewise.
13341 (scalar_chain::add_to_queue): Make it protected.
13342 (scalar_chain::emit_conversion_insns): Likewise.
13343 (scalar_chain::replace_with_subreg): Likewise.
13344 (scalar_chain::replace_with_subreg_in_insn): Likewise.
13345 (scalar_chain::convert_op): Likewise.
13346 (scalar_chain::convert_reg): Likewise.
13347 (scalar_chain::make_vector_copies): Likewise.
13348 (scalar_chain::convert_registers): New pure virtual function.
13349 (class dimode_scalar_chain): New class.
13350 (class timode_scalar_chain): Likewise.
13351 (scalar_chain::mark_dual_mode_def): Renamed to ...
13352 (dimode_scalar_chain::mark_dual_mode_def): This.
13353 (timode_scalar_chain::mark_dual_mode_def): New function.
13354 (timode_scalar_chain::convert_insn): Likewise.
13355 (dimode_scalar_chain::convert_registers): Likewise.
13356 (scalar_chain::compute_convert_gain): Renamed to ...
13357 (dimode_scalar_chain::compute_convert_gain): This.
13358 (scalar_chain::replace_with_subreg): Renamed to ...
13359 (dimode_scalar_chain::replace_with_subreg): This.
13360 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
13361 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
13362 (scalar_chain::make_vector_copies): Renamed to ...
13363 (dimode_scalar_chain::make_vector_copies): This.
13364 (scalar_chain::convert_reg): Renamed to ...
13365 (dimode_scalar_chain::convert_reg ): This.
13366 (scalar_chain::convert_op): Renamed to ...
13367 (dimode_scalar_chain::convert_op): This.
13368 (scalar_chain::convert_insn): Renamed to ...
13369 (dimode_scalar_chain::convert_insn): This.
13370 (scalar_chain::convert): Call convert_registers.
13371 (convert_scalars_to_vector): Change to scalar_chain pointer to
13372 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
13373 in 32-bit mode. Delete scalar_chain pointer. Call
13374 free_dominance_info in 64-bit mode.
13375 (pass_stv::gate): Remove TARGET_64BIT check.
13376 (ix86_option_override): Put the 64-bit STV pass before the CSE
13377 pass.
13378
13379 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
13380
13381 * dwarf2out.h (struct dw_loc_descr_node): Remove the
13382 dw_loc_frame_offset field.
13383 * dwarf2out.c (new_loc_descr): Likewise.
13384 (resolve_args_picking_1): Turn the VISITED hash set into a
13385 FRAME_OFFSET hash map. Use it to associate a frame offset to
13386 visited nodes. Remove uses of the CHECKING_P macro.
13387 (resolve_args_picking): Update call to resolve_args_picking_1.
13388
13389 2016-04-27 Martin Liska <mliska@suse.cz>
13390
13391 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
13392 (free_loop_data): Release vuses of groups.
13393
13394 2016-04-27 Bin Cheng <bin.cheng@arm.com>
13395
13396 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
13397 instead of redundant use_id and boolean have_use_for.
13398 (struct iv_use): Change sub_id into group_id. Remove field next.
13399 Move fields: related_cands, n_map_members, cost_map and selected
13400 to ...
13401 (struct iv_group): ... here. New structure.
13402 (struct iv_common_cand): Use structure declaration directly.
13403 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
13404 (MAX_CONSIDERED_USES): Rename macro to ...
13405 (MAX_CONSIDERED_GROUPS): ... here.
13406 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
13407 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
13408 (dump_uses): Rename to ...
13409 (dump_groups): ... here. Update all uses.
13410 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
13411 (find_induction_variables): Refactor format of dump information.
13412 (record_sub_use): Delete.
13413 (record_use): Update all uses.
13414 (record_group): New function.
13415 (record_group_use, find_interesting_uses_op): Call above functions.
13416 Update all uses.
13417 (find_interesting_uses_cond): Ditto.
13418 (group_compare_offset): New function.
13419 (split_all_small_groups): Rename to ...
13420 (split_small_address_groups_p): ... here. Update all uses.
13421 (split_address_groups): Update all uses.
13422 (find_interesting_uses): Refactor format of dump information.
13423 (add_candidate_1): Update all uses. Remove redundant check on iv,
13424 base and step.
13425 (add_candidate, record_common_cand): Remove redundant assert.
13426 (add_iv_candidate_for_biv): Update use.
13427 (add_iv_candidate_derived_from_uses): Update all uses.
13428 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
13429 (alloc_use_cost_map): Ditto.
13430 (set_use_iv_cost, get_use_iv_cost): Rename to ...
13431 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
13432 (determine_use_iv_cost_generic): Ditto.
13433 (determine_group_iv_cost_generic): Ditto.
13434 (determine_use_iv_cost_address): Ditto.
13435 (determine_group_iv_cost_address): Ditto.
13436 (determine_use_iv_cost_condition): Ditto.
13437 (determine_group_iv_cost_cond): Ditto.
13438 (determine_use_iv_cost): Ditto.
13439 (determine_group_iv_cost): Ditto.
13440 (set_autoinc_for_original_candidates): Update all uses.
13441 (find_iv_candidates): Update all uses. Refactor dump information.
13442 (determine_use_iv_costs): Ditto.
13443 (determine_iv_costs): Ditto.
13444 (iv_ca_cand_for_use): Rename to ...
13445 (iv_ca_cand_for_group): ... here. Update all uses.
13446 (iv_ca_add_use, iv_ca_add_group): Ditto.
13447 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
13448 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
13449 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
13450 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
13451 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
13452 (create_new_iv, adjust_iv_update_pos): Ditto.
13453 (rewrite_use_address): Delete.
13454 (rewrite_use_address_1): Rename to ...
13455 (rewrite_use_address): ... here.
13456 (rewrite_use_compare): Update all uses.
13457 (rewrite_use): Delete.
13458 (rewrite_uses): Rename to ...
13459 (rewrite_groups): ... here. Update all uses.
13460 (remove_unused_ivs, free_loop_data): Update all uses.
13461 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
13462
13463 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13464
13465 * rtlanal.c (nonzero_bits1): Convert preprocessor check
13466 for WORD_REGISTER_OPERATIONS to runtime check.
13467
13468 2016-04-27 Richard Biener <rguenther@suse.de>
13469
13470 PR ipa/70760
13471 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
13472 aggregate_value_p to determine if a function result is
13473 returned by reference.
13474 (ipa_pta_execute): Functions having their address taken are
13475 not automatically nonlocal.
13476
13477 2016-04-27 Jakub Jelinek <jakub@redhat.com>
13478
13479 PR sanitizer/70683
13480 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
13481 * fold-const.c (operand_equal_p): If flag_checking and
13482 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
13483 and if it returns non-zero, assert iterative_hash_expr on both
13484 args is the same.
13485
13486 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
13487
13488 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
13489
13490 2016-04-27 Nick Clifton <nickc@redhat.com>
13491
13492 PR middle-end/49889
13493 * varasm.c (merge_weak): Generate an error if an attempt is made
13494 to convert a non-weak static function into a weak, public function.
13495
13496 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13497
13498 * params.def (MAX_PARTITION_SIZE): New param.
13499 * doc/invoke.texi: Document lto-max-partition.
13500
13501 2016-04-27 Richard Biener <rguenther@suse.de>
13502
13503 PR ipa/70785
13504 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
13505 function cummulating used_from_other_partition, externally_visible
13506 and force_output from aliases.
13507 (refered_from_nonlocal_var): Likewise.
13508 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
13509 node flags properly.
13510
13511 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
13512
13513 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
13514 (-Wmemset-elt-size): New item.
13515
13516 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
13517
13518 PR ada/70759
13519 * stor-layout.h (internal_reference_types): Delete.
13520 * stor-layout.c (reference_types_internal): Likewise.
13521 (internal_reference_types): Likewise.
13522 (layout_type) <REFERENCE_TYPE>: Adjust.
13523
13524 2016-04-27 Jakub Jelinek <jakub@redhat.com>
13525
13526 PR sanitizer/70683
13527 * tree.h (inchash::add_expr): Add FLAGS argument.
13528 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
13529 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
13530 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
13531 Formatting fix. Adjust recursive calls. For tcc_comparison,
13532 if swap_tree_comparison (code) is smaller than code, hash that
13533 and arguments in the other order. Hash CONVERT_EXPR the same
13534 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
13535 of ADDR_EXPR of decl as the decl itself. Add or remove
13536 OEP_ADDRESS_OF from recursive flags as needed. For
13537 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
13538 operands commutatively and only the third one normally.
13539 For internal CALL_EXPR hash in CALL_EXPR_IFN.
13540
13541 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
13542
13543 * config/rtems.h (LIB_SPEC): Add -latomic.
13544
13545 2016-04-27 Joel Sherrill <joel@rtems.org>
13546
13547 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
13548 xilink.ld and flags not relevant to RTEMS.
13549
13550 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
13551
13552 * toplev.c (backend_init_target): Avoid calling init_reload when using
13553 LRA.
13554
13555 2016-04-26 Jakub Jelinek <jakub@redhat.com>
13556
13557 * reorg.c (try_merge_delay_insns): Declare i and j inside the
13558 for loops rather than one for the whole function.
13559
13560 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
13561
13562 * match.pd (X + CST CMP X): New transformation.
13563
13564 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
13565
13566 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
13567 * fold-const.c (fold_binary_loc): Remove 2 transformations
13568 superseded by match.pd.
13569 * match.pd (x+x -> x*2): Generalize to integers.
13570
13571 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
13572
13573 * config/i386/i386.md (operation on memory peephole): Duplicate an
13574 existing peephole and adapt it to match lea rather than an operation
13575 that clobbers CC.
13576
13577 PR rtl-optimization/57193
13578 * opts.c (default_options_table): Add OPT_frename_registers at -O2
13579 and above.
13580 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
13581
13582 2016-04-26 Bin Cheng <bin.cheng@arm.com>
13583
13584 * tree-if-conv.c (any_pred_load_store): New static variable.
13585 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
13586 any_pred_load_store instead of and_mask_load_store.
13587 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
13588 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
13589 (combine_blocks, tree_if_conversion): Ditto.
13590
13591 2016-04-26 Bin Cheng <bin.cheng@arm.com>
13592
13593 PR tree-optimization/70771
13594 PR tree-optimization/70775
13595 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
13596 virtual PHI nodes. Delete parameter.
13597 (if_convertible_loop_p_1): Delete argument to above function.
13598 (predicate_all_scalar_phis): Delete code handling single-argument
13599 PHIs.
13600 (tree_if_conversion): Mark and update virtual SSA.
13601
13602 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13603
13604 PR target/61821
13605 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
13606 (x86_elf_aligned_common): Rename to ...
13607 (x86_elf_aligned_decl_common): ... this.
13608 Add decl arg. Switch to .lbss for largecomm object. Use
13609 LARGECOMM_SECTION_ASM_OP.
13610 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
13611 renaming.
13612 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
13613 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
13614 Pass new decl arg.
13615 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13616 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
13617
13618 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13619
13620 PR target/59407
13621 * config/i386/i386.c (SECTION_LARGE): Define.
13622 (x86_64_elf_select_section): Set it for large data/bss sections.
13623 Only clear SECTION_WRITE for .lrodata.
13624 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
13625 data/bss sections.
13626 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
13627 * varasm.c (default_elf_asm_named_section): Grow flagchars.
13628 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
13629 SECTION_MACH_DEP.
13630 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
13631 * doc/tm.texi: Regenerate.
13632
13633 2016-04-26 Jakub Jelinek <jakub@redhat.com>
13634
13635 PR bootstrap/70704
13636 * configure.ac (--enable-checking): Document extra flag, for
13637 non-release builds default to --enable-checking=yes,extra.
13638 If misc checking and extra checking, define CHECKING_P to 2 instead
13639 of 1.
13640 * common.opt (fchecking=): Add.
13641 * doc/invoke.texi (-fchecking=): Document.
13642 * doc/install.texi: Document --enable-checking changes.
13643 * configure: Regenerated.
13644 * config.in: Regenerated.
13645
13646 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
13647
13648 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
13649 attribute instead of which_alternative.
13650 * config/i386/sse.md (*mov<mode>_internal): Ditto.
13651 Use EXT_REX_SSE_REG_P where appropriate.
13652
13653 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
13654
13655 * config/i386/predicates.md (const0_operand): Do not match
13656 const_wide_int code.
13657 (const1_operand): Ditto.
13658
13659 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
13660
13661 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
13662 for SSE constm1 operands and TARGET_AVX512VL.
13663 (*movti_internal): Ditto.
13664 (*mov<mode>_or): Use constm1_operand predicate.
13665 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
13666 for SSE vector_all_ones operands and TARGET_AVX512VL.
13667 * config/i386/predicates.md (constm1_operand): New predicate.
13668 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
13669 emission of constant -1 load.
13670
13671 2016-04-25 Jason Merrill <jason@redhat.com>
13672
13673 * gdbinit.in: Skip is-a.h.
13674
13675 * attribs.c (register_scoped_attributes): Fix logic.
13676 * attribs.h: Declare register_scoped_attributes.
13677
13678 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13679
13680 * config/rs6000/rs6000-builtin.def: Correct pasto error for
13681 stxvd2x and stxvw4x built-in functions.
13682
13683 2016-04-25 DJ Delorie <dj@redhat.com>
13684
13685 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
13686 (ashrhi3): Likewise.
13687 (lshrhi3): Likewise.
13688
13689 2016-04-25 Richard Biener <rguenther@suse.de>
13690
13691 PR tree-optimization/70780
13692 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
13693 wasn't visited yet.
13694 (compute_antic): Mark blocks with abnormal preds as visited as
13695 they have a final empty antic-in solution already.
13696
13697 2016-04-25 Michael Collison <michael.collison@linaro.org>
13698
13699 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
13700
13701 2016-04-25 Michael Collison <michael.collison@linaro.org>
13702
13703 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
13704 mode is VQI to improve mixed mode vectorization.
13705 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
13706 define_insn to match low half of signed vaddw.
13707 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
13708 define_insn to match high half of signed vaddw.
13709 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
13710 define_insn to match low half of unsigned vaddw.
13711 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
13712 define_insn to match high half of unsigned vaddw.
13713 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
13714 (arm_simd_check_vect_par_cnst_half_p): Likewise.
13715 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
13716 for new function.
13717 (arm_simd_check_vect_par_cnst_half_p): Likewise.
13718 * config/arm/predicates.md (vect_par_constant_high): Support
13719 big endian and simplify by calling
13720 arm_simd_check_vect_par_cnst_half
13721 (vect_par_constant_low): Likewise.
13722
13723 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
13724
13725 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
13726 predicate for operand 2.
13727
13728 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
13729 H.J. Lu <hongjiu.lu@intel.com>
13730
13731 * config/i386/i386-protos.h (standard_sse_constant_p): Add
13732 machine_mode argument.
13733 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
13734 constm1_rtx operands. For VOIDmode constants, get mode from
13735 pred_mode. Check mode size if the mode is supported by ABI.
13736 (standard_sse_constant_opcode): Do not use standard_constant_p.
13737 Strictly check ABI support for all-ones operands.
13738 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
13739 immediates. Update calls to standard_sse_constant_p.
13740 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
13741 (ix86_rtx_costs): Ditto.
13742 * config/i386/i386.md (*movxi_internal_avx512f): Use
13743 nonimmediate_or_sse_const_operand instead of vector_move_operand.
13744 Use (v,BC) alternative instead of (v,C). Use register_operand
13745 checks instead of MEM_P.
13746 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
13747 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
13748 isa attribute. Use register_operand checks instead of MEM_P.
13749 (*movti_internal): Use nonimmediate_or_sse_const_operand for
13750 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
13751 alternative and corresponding sse2 isa attribute.
13752 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
13753 to standard_sse_constant_p.
13754 (FP constant splitters): Ditto.
13755 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
13756 (C): Ditto.
13757 * config/i386/predicates.md (constm1_operand): Remove.
13758 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
13759 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
13760 vector_all_ones_operand instead of constm1_operand.
13761
13762 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13763
13764 * print-rtl.c (print_rtx_insn_vec): New function.
13765 * print-rtl.h: New prototype.
13766 * store-motion.c (struct st_expr): Make avail_stores a vector.
13767 (st_expr_entry): Adjust.
13768 (free_st_expr_entry): Likewise.
13769 (print_store_motion_mems): Likewise.
13770 (find_moveable_store): Likewise.
13771 (compute_store_table): Likewise.
13772 (delete_store): Likewise.
13773 (build_store_vectors): Likewise.
13774
13775 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13776
13777 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
13778
13779 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13780
13781 * vec.h (vec_safe_contains): New function.
13782 (vec::contains): Likewise.
13783 (vec::begin): Likewise.
13784 (vec::end): Likewise.
13785
13786 2016-04-23 Jakub Jelinek <jakub@redhat.com>
13787
13788 PR sanitizer/70712
13789 * cfgexpand.c (expand_stack_vars): Fix typo.
13790
13791 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
13792
13793 * system.h (list, map, set, vector): Include conditionally.
13794 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
13795 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
13796 * ipa-icf.c (INCLUDE_LIST): Define.
13797 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
13798 * config/sh/sh.c (INCLUDE_VECTOR): Define.
13799 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
13800 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
13801 * cp/logic.cc (INCLUDE_LIST): Define.
13802 * fortran/trans-common.c (INCLUDE_MAP): Define.
13803
13804 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
13805
13806 * auto-profile.c: Remove <string.h> include.
13807 * ipa-icf-gimple.c: Remove <list> include.
13808 * diagnostic.c: Remove <new> include.
13809 * genmatch.c: Likewise.
13810 * pretty-print.c: Likewise.
13811 * toplev.c: Likewise
13812 * c/c-objc-common.c: Likewise.
13813 * cp/error.c: Likewise.
13814 * fortran/error.c: Likewise.
13815
13816 2016-04-22 Richard Biener <rguenther@suse.de>
13817
13818 * lto-streamer-in.c (input_ssa_names): Do not allocate
13819 GIMPLE_NOP for all SSA names.
13820 * lto-streamer-out.c (output_ssa_names): Do not output
13821 SSA names that should have been released.
13822
13823 2016-04-22 Richard Biener <rguenther@suse.de>
13824
13825 PR tree-optimization/70740
13826 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
13827 VDEF.
13828
13829 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
13830
13831 PR target/70750
13832 * config/i386/predicates.md (call_insn_operand): Replace
13833 sibcall_memory_operand with memory_operand.
13834
13835 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
13836
13837 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
13838 has_single_use() tests.
13839 (register_edge_assert_for_1): Likewise.
13840 (find_assert_locations_1): Check the liveness bitmap instead of
13841 checking has_single_use().
13842
13843 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
13844
13845 PR target/70728
13846 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
13847 Extract AVX-512BW constraint from AVX.
13848
13849 2016-04-21 Richard Biener <rguenther@suse.de>
13850
13851 PR tree-optimization/70725
13852 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
13853 for phi_convertible_by_degenerating_args.
13854 (predicate_all_scalar_phis): Handle single-argument PHIs.
13855
13856 2016-04-21 Richard Biener <rguenther@suse.de>
13857
13858 PR middle-end/70747
13859 * fold-const.c (fold_comparison): Return properly typed
13860 constant boolean.
13861
13862 2016-04-21 Bin Cheng <bin.cheng@arm.com>
13863
13864 PR tree-optimization/70715
13865 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
13866 after expanding BASE using expand_simple_operations.
13867
13868 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
13869
13870 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
13871 New transformations.
13872
13873 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
13874
13875 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
13876
13877 2016-04-20 Jan Hubicka <jh@suse.cz>
13878
13879 * ipa-inline.c (can_inline_edge_p): Pass caller info to
13880 ultiimate_alias_target.
13881 (update_callee_keys): Likewise.
13882 (lookup_recursive_calls): Likewise.
13883 (speculation_useful_p): Likewise.
13884
13885 2016-04-20 Jan Hubicka <jh@suse.cz>
13886
13887 PR ipa/70018
13888 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
13889 (set_nothrow_flag_1): ... this; handle interposition correctly;
13890 recurse on aliases and thunks.
13891 (cgraph_node::set_nothrow_flag): New.
13892 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
13893 functions compiled with non-call exceptions that binds to current
13894 def.
13895 (propagate_nothrow): Be safe WRT interposition.
13896 * cgraph.h (set_nothrow_flag): Update prototype.
13897
13898 2016-04-18 Jan Hubicka <jh@suse.cz>
13899
13900 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
13901 max_loop_iterations_int.
13902 (tree_unswitch_outer_loop): Likewise.
13903
13904 2016-04-20 Bin Cheng <bin.cheng@arm.com>
13905
13906 PR tree-optimization/69489
13907 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
13908 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
13909 Revise dump message.
13910 (if_convertible_bb_p): Remove check on edge count of basic block's
13911 predecessors.
13912
13913 2016-04-20 Bin Cheng <bin.cheng@arm.com>
13914
13915 PR tree-optimization/56625
13916 PR tree-optimization/69489
13917 * tree-data-ref.h (DR_INNERMOST): New macro.
13918 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
13919 hashing struct innermost_loop_behavior.
13920 (ref_DR_map): Remove.
13921 (innermost_DR_map): New map.
13922 (baseref_DR_map): Revise comment.
13923 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
13924 to innermost_DR_map accroding to its innermost loop behavior.
13925 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
13926 to its innermost loop behavior.
13927 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
13928 Add initialization for innermost_DR_map. Record memory reference
13929 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
13930 have innermost loop behavior.
13931 (if_convertible_loop_p): Remove release for ref_DR_map. Release
13932 innermost_DR_map.
13933
13934 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
13935
13936 * config/i386/i386.md (*lea<mode>_general_1): Rename from
13937 *lea_general_1. Use explicit SWI12 mode interator.
13938 (*lea<mode>_general_2): Rename from *lea_general_2.
13939 Use explicit SWI12 mode interator.
13940 (*lea<mode>_general_3): Rename from *lea_general_3.
13941 Use explicit SWI12 mode interator.
13942 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
13943 Use explicit SWI12 mode interator.
13944 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
13945 Use explicit SWI48 mode interator.
13946
13947 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
13948
13949 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
13950 Short-cut unaligned load and store cases. Handle all integer
13951 vector modes.
13952 (ix86_expand_vector_move_misalign): Short-cut unaligned load
13953 and store cases. Call ix86_avx256_split_vector_move_misalign
13954 directly without checking mode class.
13955
13956 2016-04-20 Andrew Pinski <apinski@cavium.com>
13957 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13958
13959 PR target/64971
13960 * config/aarch64/aarch64.md (sibcall): Force call
13961 address to be DImode for ILP32.
13962 (sibcall_value): Likewise.
13963
13964 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
13965
13966 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
13967
13968 2016-04-20 Richard Biener <rguenther@suse.de>
13969
13970 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
13971 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
13972 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
13973 (maybe_push_res_to_seq): Adjust.
13974 * gimple-fold.c (maybe_build_generic_op): Likewise.
13975
13976 2016-04-20 Marek Polacek <polacek@redhat.com>
13977
13978 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
13979 rather than true.
13980
13981 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
13982
13983 * config/i386/sse.md (vec_unpacks_lo_hi): Always
13984 use kmovw to support AVX512F target.
13985
13986 2016-04-20 Bin Cheng <bin.cheng@arm.com>
13987
13988 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
13989
13990 2016-04-20 Marek Polacek <polacek@redhat.com>
13991
13992 PR tree-optimization/70725
13993 * tree-if-conv.c (is_false_predicate): New function.
13994 (predicate_mem_writes): Use it.
13995
13996 2016-04-20 Richard Biener <rguenther@suse.de>
13997
13998 PR tree-optimization/70726
13999 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
14000 shift amounts from a pattern stmt operand.
14001
14002 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14003
14004 PR target/70674
14005 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
14006 stack_restore_from_fpr pattern when restoring r15.
14007 (s390_optimize_prologue): Strip away the memory barrier in the
14008 parallel when trying to get rid of restore insns.
14009 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
14010 definition for loading the stack pointer from an FPR. Compared to
14011 the normal move insn this pattern includes a full memory barrier.
14012
14013 2016-04-19 Jakub Jelinek <jakub@redhat.com>
14014
14015 PR middle-end/70680
14016 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
14017 implicitly linear or lastprivate iterator on the outer context.
14018
14019 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14020
14021 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
14022 alignment check.
14023 * config/i386/i386.md (ssememalign): Removed.
14024 * config/i386/sse.md: Remove ssememalign attribute from patterns.
14025
14026 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14027
14028 PR target/69201
14029 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
14030 const short * to __builtin_ia32_loaddquhi512_mask.
14031 (_mm512_maskz_loadu_epi16): Likewise.
14032 (_mm512_mask_storeu_epi16): Pass short * to
14033 __builtin_ia32_storedquhi512_mask.
14034 (_mm512_mask_loadu_epi8): Pass const char * to
14035 __builtin_ia32_loaddquqi512_mask.
14036 (_mm512_maskz_loadu_epi8): Likewise.
14037 (_mm512_mask_storeu_epi8): Pass char * to
14038 __builtin_ia32_storedquqi512_mask.
14039 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
14040 const double * to __builtin_ia32_loadupd512_mask.
14041 (_mm512_mask_loadu_pd): Likewise.
14042 (_mm512_maskz_loadu_pd): Likewise.
14043 (_mm512_storeu_pd): Pass double * to
14044 __builtin_ia32_storeupd512_mask.
14045 (_mm512_mask_storeu_pd): Likewise.
14046 (_mm512_loadu_ps): Pass const float * to
14047 __builtin_ia32_loadups512_mask.
14048 (_mm512_mask_loadu_ps): Likewise.
14049 (_mm512_maskz_loadu_ps): Likewise.
14050 (_mm512_storeu_ps): Pass float * to
14051 __builtin_ia32_storeups512_mask.
14052 (_mm512_mask_storeu_ps): Likewise.
14053 (_mm512_mask_loadu_epi64): Pass const long long * to
14054 __builtin_ia32_loaddqudi512_mask.
14055 (_mm512_maskz_loadu_epi64): Likewise.
14056 (_mm512_mask_storeu_epi64): Pass long long *
14057 to __builtin_ia32_storedqudi512_mask.
14058 (_mm512_loadu_si512): Pass const int * to
14059 __builtin_ia32_loaddqusi512_mask.
14060 (_mm512_mask_loadu_epi32): Likewise.
14061 (_mm512_maskz_loadu_epi32): Likewise.
14062 (_mm512_storeu_si512): Pass int * to
14063 __builtin_ia32_storedqusi512_mask.
14064 (_mm512_mask_storeu_epi32): Likewise.
14065 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
14066 char * to __builtin_ia32_storedquqi256_mask.
14067 (_mm_mask_storeu_epi8): Likewise.
14068 (_mm256_mask_loadu_epi16): Pass const short * to
14069 __builtin_ia32_loaddquhi256_mask.
14070 (_mm256_maskz_loadu_epi16): Likewise.
14071 (_mm_mask_loadu_epi16): Pass const short * to
14072 __builtin_ia32_loaddquhi128_mask.
14073 (_mm_maskz_loadu_epi16): Likewise.
14074 (_mm256_mask_loadu_epi8): Pass const char * to
14075 __builtin_ia32_loaddquqi256_mask.
14076 (_mm256_maskz_loadu_epi8): Likewise.
14077 (_mm_mask_loadu_epi8): Pass const char * to
14078 __builtin_ia32_loaddquqi128_mask.
14079 (_mm_maskz_loadu_epi8): Likewise.
14080 (_mm256_mask_storeu_epi16): Pass short * to.
14081 __builtin_ia32_storedquhi256_mask.
14082 (_mm_mask_storeu_epi16): Pass short * to.
14083 __builtin_ia32_storedquhi128_mask.
14084 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
14085 const double * to __builtin_ia32_loadupd256_mask.
14086 (_mm256_maskz_loadu_pd): Likewise.
14087 (_mm_mask_loadu_pd): Pass onst double * to
14088 __builtin_ia32_loadupd128_mask.
14089 (_mm_maskz_loadu_pd): Likewise.
14090 (_mm256_mask_storeu_pd): Pass double * to
14091 __builtin_ia32_storeupd256_mask.
14092 (_mm_mask_storeu_pd): Pass double * to
14093 __builtin_ia32_storeupd128_mask.
14094 (_mm256_mask_loadu_ps): Pass const float * to
14095 __builtin_ia32_loadups256_mask.
14096 (_mm256_maskz_loadu_ps): Likewise.
14097 (_mm_mask_loadu_ps): Pass const float * to
14098 __builtin_ia32_loadups128_mask.
14099 (_mm_maskz_loadu_ps): Likewise.
14100 (_mm256_mask_storeu_ps): Pass float * to
14101 __builtin_ia32_storeups256_mask.
14102 (_mm_mask_storeu_ps): ass float * to
14103 __builtin_ia32_storeups128_mask.
14104 (_mm256_mask_loadu_epi64): Pass const long long * to
14105 __builtin_ia32_loaddqudi256_mask.
14106 (_mm256_maskz_loadu_epi64): Likewise.
14107 (_mm_mask_loadu_epi64): Pass const long long * to
14108 __builtin_ia32_loaddqudi128_mask.
14109 (_mm_maskz_loadu_epi64): Likewise.
14110 (_mm256_mask_storeu_epi64): Pass long long * to
14111 __builtin_ia32_storedqudi256_mask.
14112 (_mm_mask_storeu_epi64): Pass long long * to
14113 __builtin_ia32_storedqudi128_mask.
14114 (_mm256_mask_loadu_epi32): Pass const int * to
14115 __builtin_ia32_loaddqusi256_mask.
14116 (_mm256_maskz_loadu_epi32): Likewise.
14117 (_mm_mask_loadu_epi32): Pass const int * to
14118 __builtin_ia32_loaddqusi128_mask.
14119 (_mm_maskz_loadu_epi32): Likewise.
14120 (_mm256_mask_storeu_epi32): Pass int * to
14121 __builtin_ia32_storedqusi256_mask.
14122 (_mm_mask_storeu_epi32): Pass int * to
14123 __builtin_ia32_storedqusi128_mask.
14124 * config/i386/i386-builtin-types.def (PCSHORT): New.
14125 (PINT64): Likewise.
14126 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
14127 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
14128 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
14129 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
14130 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
14131 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
14132 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
14133 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
14134 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
14135 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
14136 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
14137 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
14138 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
14139 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
14140 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
14141 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
14142 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
14143 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
14144 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
14145 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
14146 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
14147 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
14148 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
14149 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
14150 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
14151 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
14152 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
14153 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
14154 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
14155 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
14156 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
14157 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
14158 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
14159 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
14160 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
14161 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
14162 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
14163 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
14164 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
14165 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
14166 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
14167 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
14168 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
14169 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
14170 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
14171 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
14172 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
14173 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
14174 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
14175 use UNSPEC_STOREU.
14176 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
14177 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
14178 load nor store.
14179 (ix86_expand_vector_move_misalign): Likewise.
14180 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
14181 to scalar function prototype for unaligned load/store builtins.
14182 (ix86_expand_special_args_builtin): Updated.
14183 * config/i386/sse.md (UNSPEC_LOADU): Removed.
14184 (UNSPEC_STOREU): Likewise.
14185 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
14186 (VI_ULOADSTORE_F_AVX512VL): Likewise.
14187 (ssescalarsize): Handle V4TI, V2TI and V1TI.
14188 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14189 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14190 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
14191 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
14192 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
14193 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
14194 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
14195 (<avx512>_storedqu<mode>_mask): Likewise.
14196 (*sse4_2_pcmpestr_unaligned): Likewise.
14197 (*sse4_2_pcmpistr_unaligned): Likewise.
14198 (*mov<mode>_internal): Renamed to ...
14199 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
14200 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
14201 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
14202 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
14203
14204 2016-04-19 Richard Biener <rguenther@suse.de>
14205
14206 PR tree-optimization/70171
14207 * tree-ssa-phiprop.c: Include stor-layout.h.
14208 (phiprop_insert_phi): Handle the aggregate copy case.
14209 (propagate_with_phi): Likewise.
14210
14211 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
14212
14213 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
14214 instead of simplify_gen_subreg (... , 0).
14215 (ix86_delegitimize_address): Ditto.
14216 (ix86_split_divmod): Ditto.
14217 (ix86_split_copysign_const): Ditto.
14218 (ix86_split_copysign_var): Ditto.
14219 (ix86_expand_args_builtin): Ditto.
14220 (ix86_expand_round_builtin): Ditto.
14221 (ix86_expand_special_args_builtin): Ditto.
14222 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
14223 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
14224 (udivmodqi4): Ditto.
14225 (absneg splitters): Ditto.
14226 (*jcc_bt<mode>_1): Ditto.
14227
14228 2016-04-19 Richard Biener <rguenther@suse.de>
14229
14230 PR tree-optimization/70724
14231 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
14232 restoring out from ...
14233 (free_scc_vn): ... here.
14234 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
14235 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
14236 tail merging.
14237 (pass_fre::execute): Restore SSA info.
14238
14239 2016-04-19 Richard Biener <rguenther@suse.de>
14240
14241 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
14242 * gimple-walk.c (walk_gimple_op): Initialize it.
14243 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
14244 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
14245 remapping SSA names of defs.
14246 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
14247 adjustment.
14248
14249 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
14250
14251 PR middle-end/70689
14252 * lra-constraints.c (equiv_substition_p): New.
14253 (process_alt_operands): Use it.
14254 (swap_operands): Swap it.
14255 (curr_insn_transform): Update it.
14256
14257 2016-04-18 Michael Matz <matz@suse.de>
14258
14259 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
14260 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
14261 * tree-core.h (tree_type_common.align): Use bit-field.
14262 (tree_type_common.spare): New.
14263 (tree_decl_common.off_align): Make smaller.
14264 (tree_decl_common.align): Use bit-field.
14265
14266 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
14267 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
14268 (scan_sharing_clauses): Ditto.
14269 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
14270 (omp_finish_file): Ditto.
14271 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
14272 (layout_decl): Ditto.
14273 (relayout_decl): Ditto.
14274 (finalize_record_size): Use SET_TYPE_ALIGN.
14275 (finalize_type_size): Ditto.
14276 (finish_builtin_struct): Ditto.
14277 (layout_type): Ditto.
14278 (initialize_sizetypes): Ditto.
14279 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
14280 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
14281 (lookup_field_for_decl): Use SET_DECL_ALIGN.
14282 (get_chain_field): Ditto.
14283 (get_trampoline_type): Ditto.
14284 (get_nl_goto_field): Ditto.
14285 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
14286 SET_DECL_ALIGN.
14287 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
14288 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
14289 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
14290 (build_qualified_type): Use SET_TYPE_ALIGN.
14291 (build_aligned_type, build_range_type_1): Ditto.
14292 (build_atomic_base): Ditto.
14293 (build_common_tree_nodes): Ditto.
14294 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
14295 (expand_one_stack_var_at): Ditto.
14296 * coverage.c (build_var): Use SET_DECL_ALIGN.
14297 * except.c (init_eh): Ditto.
14298 * function.c (assign_parm_setup_block): Ditto.
14299 * symtab.c (increase_alignment_1): Ditto.
14300 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
14301 * tree-vect-stmts.c (ensure_base_align): Ditto.
14302 * varasm.c (align_variable): Ditto.
14303 (assemble_variable): Ditto.
14304 (build_constant_desc): Ditto.
14305 (output_constant_def_contents): Ditto.
14306
14307 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
14308 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
14309 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
14310 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
14311 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
14312
14313 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
14314
14315 PR target/70708
14316 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
14317 replace %vmovsd with "%vmovq".
14318 (vec_concatv2df): Likewise.
14319
14320 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
14321
14322 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
14323 (*vec_extractv2si_0): Ditto.
14324 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
14325 (zero_extended_scalar_load_operand splitters): Ditto.
14326 (vec_extract splitters): Ditto.
14327 (*vec_extractv4si_0_zext): Ditto.
14328 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
14329 and lowpart_subreg.
14330 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
14331 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
14332 (*sse4_1_extractps): Use lowpart_subreg.
14333 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
14334
14335 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14336
14337 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
14338 gld requirements.
14339 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
14340 Mention Solaris 11 packaging changes.
14341 Update gas and gld requirements.
14342 Remove reference to pre-Solaris 10 bug.
14343 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
14344 systems and bugs.
14345 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
14346 with cc.
14347
14348 2016-04-17 Jan Hubicka <jh@suse.cz>
14349
14350 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
14351 max_loop_iterations_int.
14352
14353 2016-04-18 Richard Biener <rguenther@suse.de>
14354
14355 PR tree-optimization/43434
14356 * tree-ssa-structalias.c (struct vls_data): New.
14357 (visit_loadstore): Handle all pointer-based accesses.
14358 (compute_dependence_clique): Compute a bitmap of restrict tags
14359 assigned bases and pass it to visit_loadstore.
14360
14361 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
14362
14363 PR target/70711
14364 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
14365 armv8.1-a and armv8.1-a+crc.
14366
14367 2016-04-18 Richard Biener <rguenther@suse.de>
14368
14369 PR tree-optimization/70701
14370 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
14371 references after translating through a memcpy.
14372
14373 2016-04-18 Richard Biener <rguenther@suse.de>
14374
14375 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
14376 (compute_antic): ... here. For partial antic use regular
14377 postorder and scrap iteration.
14378 (compute_partial_antic_aux): Remove unused return value.
14379 (init_pre): Do not allocate postorder.
14380 (fini_pre): Do not free postorder.
14381
14382 2016-04-18 Richard Biener <rguenther@suse.de>
14383
14384 PR middle-end/37870
14385 * expmed.c (extract_bit_field_1): Remove broken case
14386 using a wider MODE_INT mode.
14387
14388 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
14389
14390 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
14391 unless compiling with at least GCC-4.8.
14392
14393 2016-04-17 Jan Hubicka <jh@suse.cz>
14394
14395 PR bootstrap/70706
14396 * graphite.c (graphite_finalize): Update call to
14397 tree_estimate_probability.
14398 * predict.h (tree_estimate_probability): Update prototype.
14399
14400 2016-04-17 Jan Hubicka <jh@suse.cz>
14401
14402 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
14403 (tree_estimate_probability): Likewise.
14404 (pass_profile::execute): Update.
14405 (report_predictor_hitrates): New function.
14406 * profile.c (compute_branch_probabilities): Use it.
14407 * predict.h (report_predictor_hitrates): Declare.
14408
14409 2016-04-17 Jan Hubicka <jh@suse.cz>
14410
14411 PR ipa/70018
14412 * cgraph.h (cgraph_node::set_const_flag,
14413 cgraph_node::set_pure_flag): Update prototype to return bool;
14414 update comment.
14415 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
14416 of interposable symbol are interposable, too.
14417 (cgraph_set_const_flag_1): Rename to ...
14418 (set_const_flag_1): ... this one; change to self recursive function
14419 instead of call_for_symbol_thunks_and_aliases. Handle correctly
14420 clearnig the flag in all variants and also virtual thunks of const
14421 functions are pure; track if any change was done.
14422 (cgraph_node::set_const_flag): Update.
14423 (struct set_pure_flag_info): New struct.
14424 (cgraph_set_pure_flag_1): Rename to ...
14425 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
14426 rather than pointer encoded flags; track if any changes was done;
14427 handle correctly clearning flag and setting flag of aliases already
14428 declared const.
14429 (cgraph_node::set_pure_flag): Update.
14430 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
14431
14432 2016-04-17 Tom de Vries <tom@codesourcery.com>
14433
14434 PR other/70433
14435 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
14436 backslash in label.
14437
14438 2016-04-17 Tom de Vries <tom@codesourcery.com>
14439
14440 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
14441 '{}<> ' as escape-for-record.
14442
14443 2016-04-17 Tom de Vries <tom@codesourcery.com>
14444
14445 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
14446 structure.
14447
14448 2016-04-17 Tom de Vries <tom@codesourcery.com>
14449
14450 PR other/70185
14451 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
14452 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
14453 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
14454 * passes.c (finish_optimization_passes): Only call
14455 finish_graph_dump_file if dfi->graph_dump_initialized.
14456 (execute_function_dump, pass_init_dump_file): Use
14457 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
14458
14459 2016-04-17 Tom de Vries <tom@codesourcery.com>
14460
14461 PR tree-optimization/70256
14462 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
14463 (debug_varmap): New function.
14464
14465 2016-04-17 Tom de Vries <tom@codesourcery.com>
14466
14467 PR other/70183
14468 * passes.c (pass_manager::register_pass): Propagate pflags.
14469
14470 2016-04-17 Tom de Vries <tom@codesourcery.com>
14471
14472 PR other/68875
14473 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
14474 * passes.c (pass_manager::pass_manager): Declare and init p_start in
14475 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
14476 check if it's equal to p_start.
14477 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
14478
14479 2016-04-15 Jan Hubicka <jh@suse.cz>
14480
14481 PR ipa/70018
14482 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
14483 function does not bind to current def.
14484 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
14485 handle conservatively calls to functions that does not need to bind
14486 to current def.
14487 (check_call): Update call of worse_state.
14488 (ignore_edge_for_nothrow): Update.
14489 (ignore_edge_for_pure_const): Likewise.
14490 (propagate_pure_const): Update calls to worse_state.
14491 (skip_function_for_local_pure_const): Reformat comments.
14492
14493 2016-04-15 Jan Hubicka <jh@suse.cz>
14494
14495 PR ipa/70018
14496 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
14497 (cgraph_node::function_symbol): Likewise.
14498 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
14499 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
14500 (symtab_node::ultimate_alias_target): Add REF parameter.
14501 (symtab_node::binds_to_current_def_p): Declare.
14502 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
14503 (cgraph_node::function_symbol): Likewise.
14504 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
14505 (cgraph_node::get_availability): Likewise.
14506 (cgraph_edge::binds_to_current_def_p): New inline function.
14507 (varpool_node::get_availability): Add REF parameter.
14508 (varpool_node::ultimate_alias_target): Likewise.
14509 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
14510 (symtab_node::binds_to_current_def_p): Likewise.
14511 * varpool.c (varpool_node::get_availability): Likewise.
14512
14513 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
14514
14515 PR target/70662
14516 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
14517 Fix mode size check.
14518
14519 2016-04-15 Jakub Jelinek <jakub@redhat.com>
14520
14521 * BASE-VER: Set to 7.0.0.
14522
14523 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
14524
14525 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
14526
14527 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14528
14529 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
14530 architecture revisions.
14531
14532 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
14533
14534 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
14535 * config/i386/i386.c (ix86_using_red_zone): No longer static.
14536 * config/i386/i386.md (stack decrement to push peepholes): Guard
14537 with !x86_using_red_zone ().
14538
14539 2016-04-15 Jakub Jelinek <jakub@redhat.com>
14540
14541 PR c++/70675
14542 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
14543 to dump_generic_node.
14544 (NIY): Pass also flags to do_niy.
14545
14546 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
14547
14548 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
14549 (simd_clone_vector_of_formal_parm_types)
14550 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
14551 (simd_clone_mangle, simd_clone_create)
14552 (simd_clone_adjust_return_type, create_tmp_simd_array)
14553 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
14554 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
14555 (ipa_simd_modify_function_body, simd_clone_linear_addend)
14556 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
14557 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
14558 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
14559 * omp-simd-clone.c: ... this new file.
14560 (simd_clone_vector_of_formal_parm_types): Make it static.
14561 * Makefile.in (OBJS): Add omp-simd-clone.o.
14562
14563 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
14564
14565 PR target/70662
14566 * config/i386/sse.md: Use proper memory operand modifiers.
14567
14568
14569 2016-04-15 Richard Biener <rguenther@suse.de>
14570 Alan Modra <amodra@gmail.com>
14571
14572 PR tree-optimization/70130
14573 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
14574 when alignment stays not the same and no not use the realign
14575 scheme then.
14576
14577 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14578
14579 PR target/70669
14580 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
14581 direct move handlers for KFmode. Change TFmode handlers test from
14582 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
14583
14584 2016-04-14 Jakub Jelinek <jakub@redhat.com>
14585
14586 PR c++/70594
14587 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
14588 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
14589 (inlined_polymorphic_ctor_dtor_block_p): Use it.
14590 * tree-ssa-live.c (remove_unused_scope_block_p): When
14591 in_ctor_dtor_block, avoid discarding not just BLOCKs with
14592 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
14593 block_ultimate_origin is FUNCTION_DECL.
14594 (remove_unused_locals): If current_function_decl is
14595 polymorphic_ctor_dtor_p, pass initial true to
14596 remove_unused_scope_block_p' is_ctor_dtor_block.
14597
14598 2016-04-14 Martin Sebor <msebor@redhat.com>
14599
14600 PR c++/69517
14601 PR c++/70019
14602 PR c++/70588
14603 * doc/extend.texi (Variable Length): Revert.
14604
14605 2016-04-14 Marek Polacek <polacek@redhat.com>
14606 Jan Hubicka <hubicka@ucw.cz>
14607
14608 PR c++/70029
14609 * tree.c (verify_type): Disable the canonical type of main variant
14610 check.
14611
14612 2016-04-14 Jason Merrill <jason@redhat.com>
14613
14614 * cfgexpand.c, expr.c: Revert previous change.
14615
14616 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
14617
14618 PR middle-end/70643
14619 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
14620 when building a mem ref for the incoming reduction variable.
14621
14622 2016-04-14 Richard Biener <rguenther@suse.de>
14623
14624 PR tree-optimization/70614
14625 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
14626 loop if the evolution dropped to chrec_dont_know.
14627 (interpret_condition_phi): Likewise.
14628
14629 2016-04-14 Richard Biener <rguenther@suse.de>
14630
14631 PR tree-optimization/70623
14632 * tree-ssa-pre.c (changed_blocks): Make global ...
14633 (compute_antic): ... local here. Move and fix worklist
14634 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
14635 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
14636 worklist handling, dump when ANTIC_IN changed.
14637 (compute_partial_antic_aux): Remove worklist handling.
14638 (init_pre): Do not compute post dominators. Add a comment about
14639 the CFG order chosen.
14640 (fini_pre): Do not free post dominators.
14641
14642 2016-04-13 Martin Sebor <msebor@redhat.com>
14643
14644 PR c++/69517
14645 PR c++/70019
14646 PR c++/70588
14647 * doc/extend.texi (Variable Length): Document C++ specifics.
14648
14649 2016-04-13 Jakub Jelinek <jakub@redhat.com>
14650
14651 PR c++/70641
14652 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
14653 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
14654 eh edges have been purged.
14655
14656 PR c++/70594
14657 * tree-sra.c (create_access_replacement,
14658 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
14659 gets fancy name.
14660 * tree-pretty-print.c (dump_fancy_name): New function.
14661 (dump_decl_name, dump_generic_node): Use it.
14662
14663 2016-04-13 Jason Merrill <jason@redhat.com>
14664
14665 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
14666 * expr.c (expand_expr_real_1): Likewise.
14667
14668 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
14669
14670 * config/i386/i386.md (kunpckhi): Swap operands.
14671 (kunpcksi): Likewise.
14672 (kunpckdi): Likewise.
14673 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
14674 (vec_pack_trunc_<mode>): Likewise.
14675
14676 2016-04-13 Jakub Jelinek <jakub@redhat.com>
14677
14678 PR debug/70628
14679 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
14680
14681 PR middle-end/70633
14682 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
14683 gimplification turns some element into non-constant.
14684
14685 PR debug/70628
14686 * rtl.h (convert_memory_address_addr_space_1): New prototype.
14687 * explow.c (convert_memory_address_addr_space_1): No longer static,
14688 add NO_EMIT argument and don't call convert_modes if true, pass
14689 it down recursively, remove break after return.
14690 (convert_memory_address_addr_space): Adjust caller.
14691 * simplify-rtx.c (simplify_unary_operation_1): Call
14692 convert_memory_address_addr_space_1 instead of convert_memory_address,
14693 if it returns NULL, don't simplify.
14694
14695 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
14696
14697 PR target/70630
14698 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
14699
14700 2016-04-12 Jakub Jelinek <jakub@redhat.com>
14701
14702 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
14703 Bump the upper SIMDLEN limits, so that if the return type or
14704 characteristic type if the return type is void can be passed in
14705 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
14706 allowed.
14707
14708 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
14709
14710 PR target/70640
14711 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
14712 Do not use "=" constraint on an input constraint.
14713 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
14714 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
14715 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
14716 generates (neg (abs ...)) instead of (abs ...).
14717
14718 2016-04-12 Jakub Jelinek <jakub@redhat.com>
14719
14720 PR rtl-optimization/70596
14721 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
14722 just invalidate LRA data and reset them. Adjust dump wording.
14723
14724 2016-04-12 Martin Liska <mliska@suse.cz>
14725
14726 Revert
14727 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
14728
14729 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
14730 estimates here.
14731 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
14732 max_loop_iterations_int.
14733 (tree_unswitch_outer_loop): Likewise.
14734 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
14735 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
14736
14737 2016-04-12 Tom de Vries <tom@codesourcery.com>
14738
14739 PR tree-optimization/68756
14740 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
14741 instead of new_name.
14742
14743 2016-04-12 Jakub Jelinek <jakub@redhat.com>
14744
14745 PR tree-optimization/70602
14746 * tree-sra.c (generate_subtree_copies): Don't write anything into
14747 constant pool decls.
14748
14749 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
14750 regardless whether there are depend clauses or not.
14751
14752 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
14753
14754 PR target/70381
14755 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
14756 target attribute and pragma from changing the -mfloat128
14757 and -mfloat128-hardware options.
14758
14759 * doc/extend.texi (Additional Floating Types): Document PowerPC
14760 __float128 restrictions.
14761
14762 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
14763
14764 PR target/70133
14765 * config/aarch64/driver-aarch64.c
14766 (aarch64_get_extension_string_for_isa_flags): New.
14767 (arch_extension): Rename to...
14768 (aarch64_arch_extension): ...This.
14769 (ext_to_feat_string): Rename to...
14770 (aarch64_extensions): ...This.
14771 (aarch64_core_data): Keep track of architecture extension flags.
14772 (cpu_data): Rename to...
14773 (aarch64_cpu_data): ...This.
14774 (aarch64_arch_driver_info): Keep track of architecture extension
14775 flags.
14776 (get_arch_name_from_id): Rename to...
14777 (get_arch_from_id): ...This, change return type.
14778 (host_detect_local_cpu): Update and reformat for renames, handle
14779 extensions through common infrastructure.
14780
14781 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
14782
14783 PR target/70133
14784 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
14785 track of a canonical flag name.
14786 (all_extensions): Likewise.
14787 (arch_to_arch_name): Also track extension flags enabled by the arch.
14788 (all_architectures): Likewise.
14789 (aarch64_parse_extension): Move to here.
14790 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
14791 rework.
14792 (aarch64_rewrite_selected_cpu): Update for above change.
14793 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
14794 are handled, such that the single explicit value enabled by an
14795 extension is kept seperate from the implicit values it also enables.
14796 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
14797 to here.
14798 (aarch64_parse_extension): New.
14799 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
14800 here to config/aarch64/aarch64-protos.h.
14801 (aarch64_parse_extension): Move from here to
14802 common/config/aarch64/aarch64-common.c.
14803 (aarch64_option_print): Update.
14804 (aarch64_declare_function_name): Likewise.
14805 (aarch64_start_file): Likewise.
14806 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
14807 the canonical flag for extensions.
14808 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
14809 flags.
14810
14811 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
14812
14813 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
14814 AARCH64_FL_CRC.
14815
14816 2016-04-09 Tom de Vries <tom@codesourcery.com>
14817
14818 PR tree-optimization/68953
14819 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
14820 first to last subscript.
14821
14822 2016-04-09 Jakub Jelinek <jakub@redhat.com>
14823
14824 PR tree-optimization/70586
14825 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
14826 for any calls.
14827
14828 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
14829
14830 PR lto/70289
14831 PR ipa/70348
14832 PR tree-optimization/70373
14833 PR middle-end/70533
14834 PR middle-end/70534
14835 PR middle-end/70535
14836 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
14837 clauses for acc parallel reductions as necessary. Error on those
14838 that are private.
14839 * omp-low.c (scan_sharing_clauses): Don't install variables which
14840 are used in acc parallel reductions.
14841 (lower_rec_input_clauses): Remove dead code.
14842 (lower_oacc_reductions): Add support for reference reductions.
14843 (lower_reduction_clauses): Remove dead code.
14844 (lower_omp_target): Don't remap variables appearing in acc parallel
14845 reductions.
14846 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
14847
14848 2016-04-08 Jakub Jelinek <jakub@redhat.com>
14849
14850 PR middle-end/70593
14851 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
14852 with multiple SSA_NAME defs, force the outputs other than first
14853 to be live before calling live_track_process_def on each output.
14854
14855 PR rtl-optimization/70574
14856 * fwprop.c (forward_propagate_and_simplify): Don't add
14857 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
14858 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
14859 paradoxical subregs within *loc.
14860
14861 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
14862
14863 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
14864 -ftree-parallelize-loops={0,1}.
14865 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
14866 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
14867 * config/ia64/hpux.h (LIB_SPEC): Likewise.
14868 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
14869 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
14870
14871 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
14872
14873 PR sanitizer/70541
14874 * asan.c (instrument_derefs): If we get unknown location, extract it
14875 with EXPR_LOCATION.
14876 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
14877
14878 2016-04-08 Tom de Vries <tom@codesourcery.com>
14879
14880 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
14881 implicit firstprivate clause.
14882
14883 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14884
14885 PR target/70566
14886 * config/arm/thumb2.md (tst + branch-> lsls + branch
14887 peephole below *orsi_not_shiftsi_si): Require that condition
14888 register is dead after the peephole.
14889 (second peephole after the above): Likewise.
14890
14891 2016-04-08 Alan Modra <amodra@gmail.com>
14892
14893 PR target/70117
14894 * builtins.c (fold_builtin_classify): For IBM extended precision,
14895 look at just the high-order double to test for NaN.
14896 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
14897 test just the high double for Inf but both doubles for subnormal
14898 limit.
14899
14900 2016-04-07 Jakub Jelinek <jakub@redhat.com>
14901
14902 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
14903 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
14904 node->simdclone->mask_mode != VOIDmode masks.
14905 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
14906 earlier, use it instead of node->simdclone.
14907 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
14908 Set clonei->mask_mode.
14909
14910 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
14911
14912 PR c/70436
14913 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
14914 Pass it through to cp_parser_already_scoped_statement.
14915 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
14916 it through to cp_parser_statement.
14917 (cp_parser_statement): Pass IF_P through to
14918 cp_parser_iteration_statement.
14919 (cp_parser_pragma): Adjust call to
14920 cp_parser_iteration_statement.
14921
14922 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
14923
14924 PR c/70436
14925 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
14926 resolve a future -Wparentheses warning.
14927 * omp-low.c (scan_sharing_clauses): Likewise.
14928 * tree-parloops.c (eliminate_local_variables): Likewise.
14929
14930 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
14931
14932 PR rtl-optimization/70398
14933 * lra-constraints.c (process_address_1): Check zero scale and code
14934 for reloading with zero scale.
14935
14936 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
14937
14938 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
14939 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
14940
14941 2016-04-06 Jakub Jelinek <jakub@redhat.com>
14942
14943 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
14944 Add support for AVX512F clones, include them by default for
14945 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
14946 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
14947 up to 128.
14948
14949 PR middle-end/70550
14950 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
14951 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
14952 firstprivate clauses.
14953 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
14954 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
14955 (lower_omp_target): Set TREE_NO_WARNING for
14956 non-addressable possibly uninitialized vars which are copied into
14957 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
14958
14959 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
14960
14961 * config/pa/predicates.md (integer_store_memory_operand): Accept
14962 REG+D operands with a large offset when reload_in_progress is true.
14963 (floating_point_store_memory_operand): Likewise.
14964
14965 2016-04-05 Jakub Jelinek <jakub@redhat.com>
14966
14967 PR c++/70336
14968 * match.pd (nested int casts): Limit to GIMPLE.
14969
14970 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
14971
14972 PR ipa/66223
14973 * ipa-devirt.c (maybe_record_node): Fix comment; use
14974 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
14975
14976 2016-04-05 Jakub Jelinek <jakub@redhat.com>
14977
14978 PR rtl-optimization/70542
14979 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
14980 if there are any uses other than insn or debug insns.
14981
14982 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
14983 Jakub Jelinek <jakub@redhat.com>
14984
14985 PR tree-optimization/70509
14986 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
14987 Shift HOST_WIDE_INT_1U instead of 1.
14988
14989 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
14990
14991 PR tree-optimization/70509
14992 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
14993 of the vector base type for index.
14994
14995 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
14996
14997 PR target/70510
14998 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
14999
15000 2016-04-05 Richard Biener <rguenther@suse.de>
15001
15002 PR tree-optimization/70526
15003 * tree-sra.c (build_ref_for_offset): Use prev_base to
15004 extract the alias pointer type.
15005
15006 2016-04-05 Richard Biener <rguenther@suse.de>
15007
15008 * dse.c (struct store_info): Remove alias_set member.
15009 (struct read_info_type): Likewise.
15010 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
15011 spill_deleted, clear_alias_set_lookup): Remove.
15012 (get_group_info): Remove dead base == NULL_RTX case.
15013 (dse_step0): Remove initialization of removed variables.
15014 (delete_dead_store_insn): Reomve alias set dumping.
15015 (free_read_records): Remove alias_set handling.
15016 (canon_address): Remove alias_set_out parameter.
15017 (record_store): Remove spill_alias_set, it's always zero.
15018 (check_mem_read_rtx): Likewise.
15019 (dse_step2): Rename from ...
15020 (dse_step2_nospill): ... this. Adjust.
15021 (scan_stores): Rename from ...
15022 (scan_stores_nospill): ... this.
15023 (scan_reads): Rename from ...
15024 (scan_reads_nospill): ... this.
15025 (scan_stores_spill, scan_reads_spill): Remove.
15026 (dse_step3_scan): Remove for_spills argument which is always false.
15027 (dse_step3): Likewise.
15028 (dse_step5): Rename from ...
15029 (dse_step5_nospill): ... this. Remove alias_set handling.
15030 (rest_of_handle_dse): Adjust.
15031
15032 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15033
15034 PR target/70525
15035 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
15036 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
15037 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
15038 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
15039
15040 2016-04-05 Richard Biener <rguenther@suse.de>
15041
15042 PR middle-end/70499
15043 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
15044 non-register type temporaries into SSA.
15045
15046 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
15047
15048 PR ipa/66223
15049 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
15050 calls when sanitizing.
15051 (possible_polymorphic_call_target_p): Fix formatting.
15052
15053 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15054 Jakub Jelinek <jakub@redhat.com>
15055
15056 PR middle-end/70457
15057 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
15058 to ensure a call statement is compatible with a built-in's
15059 prototype.
15060 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
15061 Likewise.
15062
15063 2016-04-04 Richard Biener <rguenther@suse.de>
15064
15065 PR rtl-optimization/70484
15066 * rtl.h (canon_output_dependence): Declare.
15067 * alias.c (canon_output_dependence): New function.
15068 * dse.c (record_store): Use canon_output_dependence rather
15069 than canon_true_dependence.
15070
15071 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15072
15073 PR ipa/68881
15074 * cgraph.h (symtab_node::copy_visibility_from): New function.
15075 * symtab.c (symtab_node::copy_visibility_from): New function.
15076 * ipa-visibility.c (optimize_weakref): New function.
15077 (function_and_variable_visibility): Use it.
15078
15079 2016-04-04 Martin Liska <mliska@suse.cz>
15080
15081 PR hsa/70402
15082 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
15083 value that is really in range handled by SBR instruction.
15084 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
15085 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
15086 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
15087
15088 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
15089
15090 PR target/70416
15091 PR target/67391
15092 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
15093 set, but not for SP_REG operands.
15094
15095 2016-04-02 Martin Sebor <msebor@redhat.com>
15096
15097 PR c++/67376
15098 * fold-const.c (maybe_nonzero_address): New function.
15099 (fold_comparison): Call it. Fold equality and relational
15100 expressions involving null pointers.
15101 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
15102
15103 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
15104
15105 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
15106 the "Y" constraint (scalar FP 0.0 immediate).
15107
15108 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
15109 Add the "const_double" to the list of operand constraints.
15110
15111 2016-04-01 Jakub Jelinek <jakub@redhat.com>
15112
15113 PR rtl-optimization/70467
15114 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
15115 If low word of the last operand is 0, just emit addition/subtraction
15116 for the high word.
15117
15118 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15119
15120 PR target/70404
15121 * config/s390/s390.c (s390_expand_insv): Check for everything
15122 constant instead of just VOIDmode stuff.
15123
15124 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15125
15126 PR target/70496
15127 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
15128
15129 2016-04-01 Nathan Sidwell <nathan@acm.org>
15130
15131 * tree.def (TRY_CATCH_EXPR): Correct documentation.
15132
15133 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
15134
15135 PR rtl-optimization/70461
15136 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
15137 is necessary.
15138
15139 2016-03-31 Martin Liska <mliska@suse.cz>
15140
15141 PR hsa/70399
15142 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
15143 a tree value or an immediate integer value to a buffer
15144 that is eventually copied to a BRIG section.
15145 (emit_immediate_operand): Call the function here.
15146 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
15147 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
15148 of class' fields that are removed.
15149 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
15150 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
15151 m_brig_repr_size fields.
15152
15153 2016-03-31 Martin Liska <mliska@suse.cz>
15154
15155 PR hsa/70391
15156 * hsa-gen.c (hsa_function_representation::update_dominance): New
15157 function.
15158 (convert_addr_to_flat_segment): Likewise.
15159 (gen_hsa_memory_set): New alignment argument.
15160 (gen_hsa_ctor_assignment): Likewise.
15161 (gen_hsa_insns_for_single_assignment): Provide alignment
15162 to gen_hsa_ctor_assignment.
15163 (gen_hsa_insns_for_direct_call): Add new argument.
15164 (expand_lhs_of_string_op): New function.
15165 (expand_string_operation_builtin): Likewise.
15166 (expand_memory_copy): New function.
15167 (expand_memory_set): New function.
15168 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
15169 (convert_switch_statements): Change signature.
15170 (generate_hsa): Use a return value of the function.
15171 (pass_gen_hsail::execute): Do not call
15172 convert_switch_statements here.
15173 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
15174 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
15175 (hsa_function_representation::update_dominance): New function.
15176
15177 2016-03-31 Martin Liska <mliska@suse.cz>
15178
15179 PR hsa/70391
15180 * hsa-brig.c (emit_directive_variable): Emit alignment
15181 according to hsa_symbol::m_align.
15182 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
15183 (dump_hsa_symbol): Dump alignment of HSA symbols.
15184 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
15185 (gen_hsa_addr_with_align): New function.
15186 (hsa_bitmemref_alignment): Use newly added function.
15187 (gen_hsa_insns_for_load): Likewise.
15188 (gen_hsa_insns_for_store): Likewise.
15189 (gen_hsa_memory_copy): New argument added.
15190 (gen_hsa_insns_for_single_assignment): Respect
15191 alignment for assignments processed via gen_hsa_memory_copy.
15192 (gen_hsa_insns_for_direct_call): Likewise.
15193 (gen_hsa_insns_for_return): Likewise.
15194 (gen_function_def_parameters): Set default alignment.
15195 * hsa.c (hsa_object_alignment): New function.
15196 (hsa_byte_alignment): Pasted function.
15197 * hsa.h (hsa_symbol::m_align): New field.
15198
15199 2016-03-31 Bin Cheng <bin.cheng@arm.com>
15200
15201 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
15202 scratch field for goto case.
15203
15204 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
15205
15206 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
15207
15208 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
15209
15210 PR target/70442
15211 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
15212 (scalar_chain::convert_insn): Call convert_op for reg
15213 moves to handle undefined registers.
15214
15215 2016-03-31 Nathan Sidwell <nathan@acm.org>
15216
15217 PR c++/70393
15218 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
15219 Assert we don't want to move backwards.
15220
15221 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
15222
15223 PR target/70453
15224 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
15225
15226 2016-03-31 Jakub Jelinek <jakub@redhat.com>
15227
15228 PR rtl-optimization/70460
15229 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
15230 with operand from REG_LABEL_OPERAND, instead substitute
15231 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
15232 Don't do anything for REG_NON_LOCAL_GOTO jumps.
15233
15234 2016-03-31 Martin Liska <mliska@suse.cz>
15235
15236 * passes.c (execute_one_pass): Do not call
15237 todo_after for a discarded function.
15238
15239 2016-03-31 Bin Cheng <bin.cheng@arm.com>
15240
15241 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
15242 (no_cost, infinite_cost): Initialize the new field.
15243 (get_computation_cost_at): Record setup cost.
15244 (determine_use_iv_cost_address): Skip cost computation for sub
15245 uses if we can estimate it without losing accuracy.
15246
15247 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15248
15249 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15250 estimates here.
15251 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15252 max_loop_iterations_int.
15253 (tree_unswitch_outer_loop): Likewise.
15254 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15255 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15256
15257 2016-03-30 Richard Biener <rguenther@suse.de>
15258
15259 PR middle-end/70450
15260 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
15261
15262 2016-03-30 Jakub Jelinek <jakub@redhat.com>
15263
15264 PR target/70421
15265 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
15266 in gen_blendm expander.
15267
15268 2016-03-30 Nick Clifton <nickc@redhat.com>
15269
15270 PR target/62254
15271 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
15272 case where we are already provided with an SImode SUBREG.
15273
15274 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
15275
15276 PR target/70439
15277 * config/i386/i386.c (ix86_expand_epilogue): Properly check
15278 conflict between DRAP register and __builtin_eh_return.
15279
15280 2016-03-30 Michael Matz <matz@suse.de>
15281 Richard Biener <rguenther@suse.de>
15282
15283 PR ipa/12392
15284 * ipa-polymorphic-call.c (struct type_change_info): Change
15285 speculative to an unsigned allowing to limit the work we do.
15286 (csftc_abort_walking_p): New inline function..
15287 (check_stmt_for_type_change): Limit the number of may-defs
15288 skipped for speculative devirtualization to
15289 max-speculative-devirt-maydefs.
15290 * params.def (max-speculative-devirt-maydefs): New param.
15291 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
15292
15293 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
15294
15295 PR target/63890
15296 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
15297 and TARGET_MACHO.
15298
15299 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
15300
15301 PR tree-optimization/59124
15302 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
15303 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
15304
15305 2016-03-29 Jeff Law <law@redhat.com>
15306
15307 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
15308
15309 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
15310
15311 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
15312 to HOST_WIDE_INT.
15313
15314 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
15315
15316 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
15317 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
15318 gcrt0.o if linking dynamically.
15319
15320 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
15321
15322 PR ipa/70283
15323 * ipa-devirt.c (methods_equal_p): New function.
15324 (compare_virtual_tables): Use it.
15325 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
15326 * cgraphclones.c (clone_function_name_1): Use
15327 symbol_table::symbol_suffix_separator.
15328 * coverage.c (build_var): Likewise.
15329 * symtab.c (symbol_table::symbol_suffix_separator): New.
15330
15331 2016-03-29 Jakub Jelinek <jakub@redhat.com>
15332
15333 PR rtl-optimization/70429
15334 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
15335 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
15336 mode != result_mode.
15337
15338 PR c++/70353
15339 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
15340
15341 PR tree-optimization/70405
15342 * ssa-iterators.h (num_imm_uses): Add missing braces.
15343
15344 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
15345
15346 PR rtl-optimization/68695
15347 * ira-color.c (allocno_copy_cost_saving): New.
15348 (improve_allocation): Use it.
15349
15350 2016-03-29 Richard Henderson <rth@redhat.com>
15351
15352 PR middle-end/70355
15353 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
15354
15355 2016-03-29 Richard Biener <rguenther@suse.de>
15356
15357 PR middle-end/70424
15358 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
15359 use alignment returned by get_pointer_alignment_1 if it is
15360 bigger than BITS_PER_UNIT.
15361 * builtins.c (get_pointer_alignment_1): Do not return true
15362 for alignment extracted from SSA info.
15363
15364 2016-03-28 James Bowman <james.bowman@ftdichip.com>
15365
15366 * config/ft32/ft32.opt (mnodiv): New.
15367 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
15368 * doc/invoke.texi (FT32 Options -mnodiv): New.
15369
15370 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
15371
15372 PR target/70406
15373 * config/i386/i386.md (define_split, andn): Fix modes.
15374
15375 2016-03-26 Richard Biener <rguenther@suse.de>
15376 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15377
15378 PR ipa/70366
15379 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
15380 instead of
15381 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
15382 as 2nd argument to cl_optimization_restore().
15383
15384 2016-03-25 Richard Henderson <rth@redhat.com>
15385
15386 PR target/70120
15387 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
15388 * config/aarch64/aarch64-protos.h: Declare it.
15389 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
15390
15391 2016-03-25 Alan Modra <amodra@gmail.com>
15392
15393 PR target/70052
15394 * config/rs6000/constraints.md (j): Simplify.
15395 * config/rs6000/predicates.md (easy_fp_constant): Exclude
15396 decimal float 0.D.
15397 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
15398 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
15399 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
15400 in all constraint alternatives.
15401 (movtd_64bit_nodm): Delete "j" constraint alternative.
15402
15403 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
15404
15405 * tree-ssa-propagate.c: Enhance docs for
15406 SSA_PROP_NOT_INTERESTING.
15407
15408 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
15409
15410 * doc/extend.texi: Fix typo in documentation to pure attribute.
15411
15412 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
15413
15414 PR target/70319
15415 * config/pa/pa.md (bswapdi2): Use a scratch register.
15416
15417 2016-03-24 Richard Henderson <rth@redhat.com>
15418
15419 PR middle-end/69845
15420 * fold-const.c (extract_muldiv_1): Correct test for multiplication
15421 overflow.
15422
15423 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
15424
15425 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
15426 using ix86_expand_binary_operator instead of gen_andsi3.
15427
15428 2016-03-24 Richard Biener <rguenther@suse.de>
15429
15430 PR tree-optimization/70396
15431 * tree-vect-stmts.c (vectorizable_comparison): Use
15432 get_vectype_for_scalar_type.
15433
15434 2016-03-24 Richard Biener <rguenther@suse.de>
15435
15436 PR middle-end/70370
15437 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
15438 with register bases.
15439
15440 2016-03-24 Richard Biener <rguenther@suse.de>
15441
15442 PR tree-optimization/70372
15443 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
15444 build_all_ones_cst to also handle vector types correctly.
15445
15446 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
15447
15448 PR target/70381
15449 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
15450 -mfloat128 here.
15451
15452 2016-03-23 Marek Polacek <polacek@redhat.com>
15453
15454 PR c++/69884
15455 * doc/invoke.texi: Document -Wignored-attributes.
15456
15457 2016-03-23 Bin Cheng <bin.cheng@arm.com>
15458
15459 PR tree-optimization/69042
15460 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
15461 parameter from 30 to 40.
15462
15463 2016-03-23 Bin Cheng <bin.cheng@arm.com>
15464
15465 PR tree-optimization/69042
15466 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
15467 for use with constant offset stripped in base.
15468
15469 2016-03-23 Richard Biener <rguenther@suse.de>
15470
15471 PR middle-end/70251
15472 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
15473 mode compatibility check.
15474 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
15475
15476 2016-03-23 Jeff Law <law@redhat.com>
15477
15478 PR tree-optimization/64058
15479 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
15480 CONFLICT_COUNT.
15481 (struct ssa_conflicts): Move up earlier in the file.
15482 (conflicts_, var_map_): New static variables.
15483 (initialize_conflict_count): New function to initialize the
15484 CONFLICT_COUNT field for each conflict pair.
15485 (compare_pairs): Lazily initialize the conflict count and use it
15486 as the first tie-breaker.
15487 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
15488 and wipe conflicts_ and map_ around the call to qsort. Remove
15489 special case for 2 coalesce pairs.
15490 * bitmap.c (bitmap_count_unique_bits): New function.
15491 (bitmap_count_bits_in_word): New function, extracted from
15492 bitmap_count_bits.
15493 (bitmap_count_bits): Use bitmap_count_bits_in_word.
15494 * bitmap.h (bitmap_count_unique_bits): Declare it.
15495
15496 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
15497
15498 PR target/69917
15499 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
15500 transparent alias chain for decl assembler name.
15501 * config/sol2.c (solaris_assemble_visibility): Likewise.
15502
15503 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15504
15505 * config/arm/arm1020e.md (1020call_op): Reduce reservation
15506 duration.
15507 (v10_fdivs): Likewise.
15508 (v10_fdivd): Likewise.
15509
15510 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15511
15512 PR driver/70132
15513 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
15514 to not call fclose twice on file.
15515
15516 2016-03-23 Jakub Jelinek <jakub@redhat.com>
15517
15518 PR tree-optimization/70354
15519 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
15520 oprnd0 is wider than oprnd1 and there is a cast from the wider
15521 type to oprnd1, mask it with the mask of the narrower type.
15522
15523 PR target/70321
15524 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
15525 Optimize TARGET_STV splitters, if high or low word of last argument
15526 is 0 or -1.
15527
15528 2016-03-22 Jeff Law <law@redhat.com>
15529
15530 PR target/70232
15531 tree-ssa-threadbackward.c
15532 (fsm_find_control_statement_thread_paths): Correctly distinguish
15533 between old style jump threads vs FSM jump threads.
15534
15535 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
15536
15537 PR target/70302
15538 * config/i386/i386.c (scalar_chain::convert_op): Support
15539 uninitialized register usage case.
15540
15541 2016-03-22 Richard Biener <rguenther@suse.de>
15542
15543 PR middle-end/70251
15544 * genmatch.c (gen_transform): Adjust last parameter to a three-state
15545 int...
15546 (capture::gen_transform): ... to change behavior when substituting
15547 a condition into cond or not-cond expr context.
15548 (dt_simplify::gen_1): Adjust.
15549 * gimple-match-head.c: Include gimplify.h for unshare_expr.
15550 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
15551 last change and instead change to
15552 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
15553 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
15554
15555 2016-03-22 Anthony Green <green@moxielogic.com>
15556
15557 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
15558 issue for moxiebox targets.
15559 (CC1PLUS_SPEC): Ditto.
15560
15561 2016-03-22 Richard Biener <rguenther@suse.de>
15562
15563 PR middle-end/70333
15564 * fold-const.c (extract_muldiv_1): Properly perform multiplication
15565 in the wide type.
15566
15567 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
15568
15569 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
15570
15571 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
15572
15573 PR target/70325
15574 * config/i386/i386.c (def_builtin): Handle
15575 OPTION_MASK_ISA_AVX512VL to be and-ed with other
15576 bits.
15577 (const struct builtin_description bdesc_special_args[]):
15578 Remove duplicate ISA bits.
15579
15580 2016-03-22 Jakub Jelinek <jakub@redhat.com>
15581
15582 PR target/70329
15583 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
15584 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
15585 in a way that works also for AVX512BW.
15586
15587 PR target/70300
15588 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
15589 instead of source if operands[1] is xmm16 and above and
15590 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
15591 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
15592
15593 PR c++/70295
15594 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
15595 on assign if (*from_p) is a comparison, set it to
15596 TREE_NO_WARNING (*from_p).
15597
15598 2016-03-21 Jakub Jelinek <jakub@redhat.com>
15599
15600 PR middle-end/70326
15601 * lra.c (restore_scratches): Ignore deleted insns.
15602
15603 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
15604 Jakub Jelinek <jakub@redhat.com>
15605
15606 PR tree-optimization/70317
15607 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
15608 to HONOR_NANS.
15609
15610 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
15611
15612 PR target/70327
15613 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
15614 of ix86_expand_move.
15615 (movoi): Ditto.
15616 (movti): Use general_operand for operand 1 predicate.
15617
15618 2016-03-21 Martin Liska <mliska@suse.cz>
15619
15620 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
15621 insns.
15622 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
15623
15624 2016-03-21 Martin Liska <mliska@suse.cz>
15625
15626 PR ipa/70306
15627 * ipa-icf.c (sem_function::parse): Skip static
15628 constructors and destructors.
15629
15630 2016-03-21 Jakub Jelinek <jakub@redhat.com>
15631
15632 PR target/70296
15633 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
15634 function-like macro, peek following token(s) if it is followed
15635 by CPP_OPEN_PAREN token with optional padding in between, and
15636 if not, don't treat it like a macro.
15637
15638 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
15639 Alexander Monakov <amonakov@ispras.ru>
15640
15641 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
15642 for the stabs debug format.
15643
15644 2016-03-21 Richard Biener <rguenther@suse.de>
15645
15646 PR tree-optimization/70310
15647 * tree-vect-generic.c (expand_vector_condition): Fold the built
15648 condition.
15649
15650 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
15651
15652 PR target/70293
15653 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
15654 Block third alternative for AVX-512VL target,
15655
15656 2016-03-21 Martin Liska <mliska@suse.cz>
15657
15658 PR hsa/70234
15659 * hsa-brig.c (emit_function_directives): Mark unemitted
15660 global variables for emission.
15661 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
15662 (get_symbol_for_decl): Likewise.
15663 * hsa.h (struct hsa_symbol): New flag.
15664
15665 2016-03-21 Richard Biener <rguenther@suse.de>
15666
15667 PR tree-optimization/70288
15668 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
15669 we do not estimate unsimplified all-constant conditionals or
15670 switches as optimized away.
15671
15672 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
15673
15674 PR rtl-optimization/69102
15675 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
15676 when we have a readonly dependency context.
15677
15678 2016-03-18 Jeff Law <law@redhat.com>
15679
15680 PR rtl-optimization/70263
15681 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
15682 (update_equiv_regs): When trying to move a store to after the insn
15683 that sets the source of the store, make sure the store occurs after
15684 the insn that sets the source of the store. When successful note
15685 the REG_EQUIV note created in the dump file.
15686
15687 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
15688 Bernd Schmidt <bschmidt@redhat.com>
15689
15690 * doc/extend.texi: Document more potential problems with basic asms.
15691
15692 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
15693
15694 PR rtl-optimization/70278
15695 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
15696 VOIDmode.
15697
15698 2016-03-18 Jason Merrill <jason@redhat.com>
15699
15700 * calls.c (load_register_parameters): Fix zero size sibcall logic.
15701
15702 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
15703
15704 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
15705 values to 128b regs.
15706
15707 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
15708
15709 PR tree-optimization/70252
15710 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
15711 boolean vector has a proper number of elements.
15712 (supportable_narrowing_operation): Likewise.
15713
15714 2016-03-18 Tom de Vries <tom@codesourcery.com>
15715
15716 PR ipa/70269
15717 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
15718
15719 2016-03-18 Jakub Jelinek <jakub@redhat.com>
15720
15721 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
15722 instead of replace_rtx for DEBUG_INSNs.
15723
15724 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
15725
15726 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
15727 load type reservations.
15728
15729 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
15730
15731 PR target/70188
15732 * config/pa/constraints.md: Revert 2015-02-13 change. Use
15733 define_constraint for "Q" and "T" constraints.
15734
15735 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
15736
15737 Tweak the pipeline model for Exynos M1
15738
15739 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
15740 model.
15741
15742 2016-03-17 David Malcolm <dmalcolm@redhat.com>
15743
15744 PR c/70264
15745 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
15746 where one or both locations aren't within a line_map.
15747
15748 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
15749
15750 PR driver/70192
15751 * opts.c (finish_options): Don't set flag_pie to the default if
15752 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
15753 if it is -1.
15754
15755 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
15756
15757 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
15758 true as ALL_REGS argument to replace_rtx.
15759
15760 2016-03-17 Richard Biener <rguenther@suse.de>
15761
15762 PR debug/70271
15763 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
15764 last.
15765
15766 2016-03-17 Jakub Jelinek <jakub@redhat.com>
15767
15768 PR target/70245
15769 * rtl.h (replace_rtx): Add ALL_REGS argument.
15770 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
15771 equality and assert mode is the same, instead of just rtx pointer
15772 equality.
15773 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
15774 true as ALL_REGS argument to replace_rtx.
15775
15776 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
15777
15778 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
15779 for boolean vector with vector mode only.
15780 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
15781
15782 2016-03-17 Nick Clifton <nickc@redhat.com>
15783
15784 PR target/70162
15785 * config/rx/rx.c (rx_print_integer): Print negative constants in
15786 decimal.
15787
15788 2016-03-17 Jakub Jelinek <jakub@redhat.com>
15789
15790 PR target/70261
15791 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
15792
15793 2016-03-16 Richard Henderson <rth@redhat.com>
15794 Richard Biener <rguenth@suse.de>
15795
15796 PR middle-end/70240
15797 PR middle-end/68215
15798 PR tree-opt/68714
15799 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
15800 first operand as is_gimple_condexpr.
15801
15802 PR middle-end/70240
15803 PR middle-end/68215
15804 Revert r231575
15805 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
15806 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
15807 Do not gimplify the result.
15808 (do_unop): Adjust call to tree_vec_extract.
15809 (do_binop): Likewise.
15810 (do_compare): Likewise.
15811 (do_plus_minus): Likewise.
15812 (do_negate): Likewise.
15813 (expand_vector_condition): Likewise.
15814 (do_cond): Likewise.
15815
15816 2016-03-16 Richard Henderson <rth@redhat.com>
15817
15818 PR target/70048
15819 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
15820 (aarch64_classify_address): Use it.
15821 (aarch64_legitimize_address): Force all subexpressions of PLUS
15822 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
15823
15824 2016-03-16 Jakub Jelinek <jakub@redhat.com>
15825 Richard Biener <rguenth@suse.de>
15826
15827 PR target/70245
15828 * rtlanal.c (replace_rtx): For REG, if from is a REG,
15829 return to even if only REGNO is equal, and assert
15830 mode is the same.
15831
15832 2016-03-11 Jeff Law <law@redhat.com>
15833
15834 PR rtl-optimization/70224
15835 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
15836
15837 2016-03-16 Richard Henderson <rth@redhat.com>
15838
15839 PR middle-end/70199
15840 * function.h (struct function): Add has_forced_label_in_static.
15841 * gimplify.c (force_labels_r): Set it.
15842 * lto-streamer-in.c (input_struct_function_base): Read it.
15843 * lto-streamer-out.c (output_struct_function_base): Write it.
15844 * tree-inline.c (has_label_address_in_static_1): Remove.
15845 (copy_forbidden): Remove fndecl parameter; test
15846 has_forced_label_in_static.
15847 (inline_forbidden_p): Update call to copy_forbidden.
15848 (tree_versionable_function_p): Likewise.
15849 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
15850 (chkp_versioning): Likewise.
15851 * tree-inline.h (copy_forbidden): Update decl.
15852
15853 2016-03-16 Marek Polacek <polacek@redhat.com>
15854
15855 PR c/70093
15856 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
15857 function being thunked if the result type doesn't have fixed size.
15858 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
15859 doesn't have fixed size.
15860
15861 2016-03-16 Bin Cheng <bin.cheng@arm.com>
15862
15863 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
15864 reporting malformed loop nest.
15865
15866 2016-03-16 Tom de Vries <tom@codesourcery.com>
15867
15868 PR lto/70187
15869 * ipa-devirt.c (possible_polymorphic_call_targets): Move
15870 nodes.length () == 1 test to before first nodes[0] access.
15871
15872 2016-03-16 Tom de Vries <tom@codesourcery.com>
15873
15874 PR tree-optimization/68715
15875 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
15876 single_pred_p test.
15877
15878 2016-03-16 Tom de Vries <tom@codesourcery.com>
15879
15880 PR tree-optimization/68809
15881 * graphite-scop-detection.c (same_close_phi_node): Test if result types
15882 are the same.
15883
15884 2016-03-16 Carlos O'Donell <carlos@redhat.com>
15885 Sandra Loosemore <sandra@codesourcery.com>
15886
15887 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
15888 on leaf attribute. Mention ELF interposition problems.
15889
15890 2016-03-16 Alan Modra <amodra@gmail.com>
15891
15892 PR rtl-optimization/69195
15893 PR rtl-optimization/47992
15894 * ira.c (indirect_jump_optimize): Ignore artificial defs.
15895 Add comments.
15896
15897 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
15898
15899 PR bootstrap/69513
15900 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
15901
15902 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15903
15904 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
15905
15906 2016-03-15 Jakub Jelinek <jakub@redhat.com>
15907
15908 PR rtl-optimization/70222
15909 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
15910 optimization if mode is different from result_mode, queue up masking
15911 of the result in outer_op. Formatting fix.
15912
15913 PR middle-end/70239
15914 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
15915 of safe_grow.
15916
15917 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
15918
15919 PR rtl-optimization/69032
15920 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
15921 looping backwards over basic block insns.
15922
15923 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
15924
15925 PR target/66660
15926 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
15927 to non-speculative when propagating trap bits.
15928
15929 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
15930
15931 PR rtl-optimization/63384
15932 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
15933 DEBUG_INSN_P insns.
15934
15935 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
15936
15937 PR target/64411
15938 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
15939 factored out from ...
15940 (sched_analyze_insn): ... here.
15941 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
15942 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
15943 get_implicit_reg_pending_clobbers in it.
15944 (setup_id_reg_sets): Use setup_id_implicit_regs.
15945 (deps_init_id): Ditto.
15946
15947 2016-03-15 Tom de Vries <tom@codesourcery.com>
15948
15949 PR ipa/70161
15950 * cgraph.c (cgraph_node::get_body): Save, reset and restore
15951 dump_file_name.
15952 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
15953 execute_function_dump.
15954 (execute_one_pass): Don't dump function if it will be dumped after ipa
15955 transform.
15956
15957 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
15958
15959 * genrecog.c (match_pattern_2): If pred is NULL don't call
15960 safe_predicate_mode on it.
15961
15962 2016-03-14 Jakub Jelinek <jakub@redhat.com>
15963
15964 PR middle-end/70219
15965 * lra-constraints.c (delete_move_and_clobber): Change assertion
15966 to also allow dregno == 0.
15967
15968 2016-03-14 Richard Henderson <rth@redhat.com>
15969
15970 PR tree-opt/68714
15971 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
15972 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
15973 (reassociate_bb): Use optimize_vec_cond_expr; avoid
15974 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
15975 on vectors.
15976
15977 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
15978
15979 PR target/70083
15980 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
15981 regs.
15982 (lra_create_live_ranges_1): initialize hard register biggest_mode to
15983 VOIDmode.
15984 * lra-constraints.c (split_reg): For hard regs, try to find the
15985 biggest single-register mode used in the function.
15986
15987 2016-03-14 Richard Biener <rguenther@suse.de>
15988
15989 PR tree-optimization/56365
15990 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
15991 constants to compare against.
15992
15993 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
15994
15995 PR target/70098
15996 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
15997 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
15998 (define_split for the GPR case): Use int_reg_operand instead of
15999 gpc_reg_operand for the output.
16000
16001 2016-03-14 Tom de Vries <tom@codesourcery.com>
16002
16003 PR tree-optimization/70045
16004 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
16005 create_empty_if_region_on_edge argument.
16006
16007 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
16008
16009 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
16010 (STACK_CHECK_PROTECT): Likewise.
16011 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16012 (STACK_CHECK_PROTECT): Likewise.
16013 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16014 (STACK_CHECK_PROTECT): Likewise.
16015 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
16016 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16017 (STACK_CHECK_PROTECT): Likewise.
16018
16019 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
16020
16021 PR rtl-optimization/69307
16022 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
16023 registers in modes that span more than one register.
16024
16025 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
16026
16027 PR target/69614
16028 * lra-constraints.c (delete_move_and_clobber): New.
16029 (remove_inheritance_pseudos): Use it.
16030
16031 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
16032
16033 PR ada/70017
16034 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
16035 the libcall is LCT_THROW.
16036 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
16037 for the checking routine.
16038
16039 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16040
16041 PR target/70131
16042 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
16043 optimization if we have direct move.
16044 (roundu32<mode>2_fprs): Likewise.
16045
16046 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
16047
16048 PR target/70123
16049 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
16050 be rematerialized.
16051 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
16052 Arguments swapped. All callers changed. Take reg_renumber into
16053 account, and Calculate and compare register ranges for hard regs.
16054
16055 2016-03-11 Jeff Law <law@redhat.com>
16056
16057 PR tree-optimization/70190
16058 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16059 Handle cases where we can not extract the taken edge, even though we
16060 found a constant value.
16061
16062 PR tree-optimization/64058
16063 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
16064 (num_coalesce_pairs): Move up earlier in file.
16065 (find_coalesce_pair): Initialize the INDEX field for each pair
16066 discovered.
16067 (compare_pairs): No longer sort on the elements in each pair.
16068 Instead break ties with the index of the coalesce pair.
16069
16070 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16071
16072 PR target/70002
16073 * config/aarch64/aarch64-protos.h
16074 (aarch64_save_restore_target_globals): New prototype.
16075 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
16076 Call the above when popping pragma.
16077 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
16078 New function.
16079 (aarch64_set_current_function): Rewrite using the above.
16080
16081 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16082
16083 PR tree-optimization/70177
16084 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
16085 (extract_ops_from_tree): ... this. In the 2 argument
16086 overload remove _1 suffix.
16087 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
16088 (extract_ops_from_tree): ... this.
16089 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
16090 Adjust callers.
16091 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16092 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
16093 extract_ops_from_tree instead of 2 operand one.
16094
16095 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
16096
16097 PR tree-optimization/70013
16098 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
16099 for constant-pool entries.
16100
16101 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16102
16103 PR rtl-optimization/70174
16104 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
16105 followed by gen_lowpart on force_reg instead of just gen_lowpart.
16106
16107 PR tree-optimization/70169
16108 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
16109 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
16110 for unknown codes.
16111
16112 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
16113 Jakub Jelinek <jakub@redhat.com>
16114
16115 PR target/70160
16116 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
16117 of uninitialized values.
16118
16119 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16120
16121 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
16122 define_expand.
16123 ("*trunctddd2"): New pattern definition.
16124 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
16125 TD->DD truncation.
16126
16127 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16128
16129 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
16130 definitions for BFP and DFP rounding modes.
16131 ("fixuns_truncdddi2", "fixuns_trunctddi2")
16132 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
16133 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
16134 ("fix_trunctf<mode>2"): Use the new constants instead of magic
16135 numbers.
16136
16137 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16138
16139 * config/s390/constraints.md: Adjust comment.
16140 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
16141 s390_decompose_addrstyle_without_index.
16142 * config/s390/predicates.md (shift_count_or_setmem_operand):
16143 Rename to setmem_operand.
16144 * config/s390/s390-protos.h
16145 (s390_decompose_shift_count): Rename to
16146 s390_decompose_addrstyle_without_index.
16147 * config/s390/s390.c (s390_decompose_shift_count)
16148 (s390_mem_constraint, print_shift_count_operand)
16149 (print_operand_address, print_operand): Rename
16150 s390_decompose_shift_count to
16151 s390_decompose_addrstyle_without_index and rename
16152 print_shift_count_operand to print_addrstyle_operand troughout the
16153 file.
16154 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
16155 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
16156 Rename shift_count_or_setmem_operand to setmem_operand.
16157 * config/s390/vx-builtins.md ("vec_insert<mode>")
16158 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
16159 nonmemory_operand.
16160
16161 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16162
16163 PR target/70168
16164 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
16165 Handle overlapping retval and newval.
16166
16167 2016-03-10 Nick Clifton <nickc@redhat.com>
16168
16169 PR target/7044
16170 * config/aarch64/aarch64.c
16171 (aarch64_override_options_after_change_1): When forcing
16172 flag_omit_frame_pointer to be true, use a special value that can
16173 be detected if this function is called again, thus preventing
16174 flag_omit_leaf_frame_pointer from being forced to be false.
16175
16176 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16177
16178 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16179 Set x_flag_omit_leaf_frame_pointer when handling
16180 -momit-leaf-frame-pointer.
16181
16182 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16183
16184 PR lto/69589
16185 * cgraph.c (cgraph_node::dump): Dump split_part and
16186 indirect_call_target.
16187 * cgraph.h (cgraph_node): Add indirect_call_target flag.
16188 * ipa.c (has_addr_references_p): Cleanup.
16189 (is_indirect_call_target_p): New.
16190 (walk_polymorphic_call_targets): Do not mark virtuals that may be
16191 called indirectly as local.
16192 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
16193
16194 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16195
16196 PR ipa/69630
16197 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
16198 on cxa_pure_virtual.
16199
16200 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16201
16202 PR lto/69589
16203 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
16204
16205 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16206
16207 PR lto/69589
16208 * tree.c (need_assembler_name_p): Only record main variant type names.
16209
16210 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
16211
16212 PR target/70113.
16213 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
16214 Always define to 0 or 1.
16215 (TARGET_FIX_ERR_A53_843419): New macro.
16216 * config/aarch64/aarch64-elf-raw.h
16217 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
16218 * config/aarch64/aarch64-linux.h: Likewise.
16219 * config/aarch64/aarch64.c
16220 (aarch64_override_options_after_change_1): Do not default
16221 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
16222 843419 is on.
16223 (aarch64_attributes): Handle fix-cortex-a53-843419.
16224 (aarch64_can_inline_p): Likewise.
16225 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
16226
16227 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
16228 Jakub Jelinek <jakub@redhat.com>
16229
16230 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
16231 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
16232 DECL_COMMONS if flag_unconstrained_commons is set.
16233 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16234 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
16235 (funconstrained-commons): Document.
16236
16237 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
16238
16239 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
16240 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
16241
16242 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
16243
16244 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
16245 has a proper number of elements.
16246
16247 2016-03-10 Alan Modra <amodra@gmail.com>
16248
16249 PR rtl-optimization/69195
16250 PR rtl-optimization/47992
16251 * ira.c (recorded_label_ref): Delete.
16252 (update_equiv_regs): Return void.
16253 (indirect_jump_optimize): New function.
16254 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
16255 before regstat_compute_ri. Don't rebuild_jump_labels here.
16256 Delete update_regstat.
16257
16258 2016-03-10 Richard Biener <rguenther@suse.de>
16259
16260 PR tree-optimization/70128
16261 * tree-ssa-structalias.c (set_uids_in_ptset): Set
16262 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
16263
16264 2016-03-09 Jakub Jelinek <jakub@redhat.com>
16265
16266 PR tree-optimization/70152
16267 * tree-sra.c (replace_removed_params_ssa_names): Copy over
16268 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
16269
16270 PR target/70086
16271 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
16272 instead of gen_sse2_loadlpd.
16273 * config/i386/sse.md (*vec_concatv2df): Rename to...
16274 (vec_concatv2df): ... this.
16275
16276 PR tree-optimization/70127
16277 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
16278
16279 2016-03-09 David Malcolm <dmalcolm@redhat.com>
16280
16281 PR c/68473
16282 PR c++/70105
16283 * diagnostic-show-locus.c (compatible_locations_p): New function.
16284 (layout::layout): Sanitize ranges using compatible_locations_p.
16285
16286 2016-03-09 David Malcolm <dmalcolm@redhat.com>
16287
16288 PR c/68473
16289 PR c++/70105
16290 * diagnostic-show-locus.c (layout_range::layout_range): Replace
16291 location_range param with three const expanded_locations * and a
16292 bool.
16293 (layout::layout): Replace call to
16294 rich_location::lazily_expand_location with get_expanded_location.
16295 Extract the range and perform location expansion here, passing
16296 the results to the layout_range ctor.
16297 * diagnostic.c (source_range::debug): Delete.
16298 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
16299 of rich_location::get_expanded_location.
16300 * gcc-rich-location.c (get_range_for_expr): Delete.
16301 (gcc_rich_location::add_expr): Reimplement to avoid the
16302 rich_location::add_range overload that took a location_range,
16303 passing a location_t instead.
16304
16305 2016-03-09 Richard Biener <rguenther@suse.de>
16306 Jakub Jelinek <jakub@redhat.com>
16307
16308 PR tree-optimization/70138
16309 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
16310 Also skip vect_double_reduction_def.
16311
16312 2016-03-09 Jakub Jelinek <jakub@redhat.com>
16313
16314 PR target/70049
16315 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
16316 if the operand is "m".
16317
16318 2016-03-09 Nathan Sidwell <nathan@acm.org>
16319
16320 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
16321
16322 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
16323
16324 * config/i386/i386.c (processor_target_table): Fix cost table
16325 intialization order for znver1.
16326
16327 2016-03-08 Jakub Jelinek <jakub@redhat.com>
16328
16329 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
16330 - becuase -> because.
16331 * ipa-reference.c (ignore_module_statics): Likewise.
16332 * cgraph.c (cgraph_node::get_body): Likewise.
16333 * ipa-inline.c (early_inliner): Likewise.
16334 * ipa-devirt.c (types_same_for_odr): Likewise.
16335 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
16336 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
16337
16338 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16339
16340 * tree-ssa-math-opts.c: Fix typo in comment.
16341
16342 2016-03-08 Jakub Jelinek <jakub@redhat.com>
16343
16344 PR target/70110
16345 * config/i386/i386.c (scalar_chain::make_vector_copies,
16346 scalar_chain::convert_reg): Call end_sequence in between
16347 get_insns and emit_conversion_insns rather than after both
16348 calls.
16349
16350 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
16351
16352 PR target/70064
16353 * config/i386/i386.h (machine_function): Add
16354 pc_thunk_call_expanded flag.
16355 (ix86_pc_thunk_call_expanded): New define.
16356 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
16357 (*set_got): Rename insn pattern from set_got.
16358 (*set_got_labelled): Rename inst pattern from set_got_labelled.
16359 * config/i386/i386.c (ix86_compute_frame_layout): Use
16360 ix86_pc_thunk_call_expanded to prevent red-zone.
16361
16362 2016-03-07 Martin Jambor <mjambor@suse.cz>
16363
16364 * hsa.h (hsa_get_ctor_statements): Declare.
16365 (hsa_get_dtor_statements): Likewise.
16366 (hsa_get_kernel_dispatch_type): Likewise.
16367 * hsa.c (hsa_get_ctor_statements): New function.
16368 (hsa_get_dtor_statements): Likewise.
16369 (hsa_get_kernel_dispatch_type): Likewise.
16370 * hsa-brig.c (hsa_cdtor_statements): Removed.
16371 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
16372 hsa_get_dtor_statements.
16373 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
16374 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
16375
16376 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
16377
16378 * config/arm/arm-cores.def (cortex-r8): New.
16379 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
16380 * config/arm/arm-tune.md: Likewise.
16381 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
16382
16383 2016-03-07 Martin Sebor <msebor@redhat.com>
16384
16385 PR rtl-optimization/19705
16386 * doc/invoke.texi (Options That Control Optimization): Clarify
16387 -fno-branch-count-reg.
16388
16389 2016-02-26 Richard Biener <rguenther@suse.de>
16390 Jeff Law <law@redhat.com>
16391
16392 PR tree-optimization/69740
16393 * cfghooks.c (remove_edge): Request loop fixups if we delete
16394 an edge that might turn an irreducible loop into a natural
16395 loop.
16396 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
16397 Move after definition of loops_state_clear.
16398
16399 2016-03-07 Bin Cheng <bin.cheng@arm.com>
16400
16401 PR rtl-optimization/69052
16402 * rtlanal.c (commutative_operand_precedence): Set higher precedence
16403 to CONST_WIDE_INT.
16404
16405 2016-03-07 Tom de Vries <tom@codesourcery.com>
16406
16407 PR tree-optimization/70116
16408 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
16409 is_tm_ending stmts and ubsan/asan internal functions.
16410 (find_duplicate): Use it. Don't test is_tm_ending here.
16411
16412 2016-03-07 Richard Biener <rguenther@suse.de>
16413
16414 PR tree-optimization/70115
16415 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
16416 (propagate_constants_for_unrolling): Use replace_uses_by.
16417
16418 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
16419
16420 PR middle-end/69916
16421 * omp-low.c (struct oacc_loop): Add ifns.
16422 (new_oacc_loop_raw): Initialize it.
16423 (finish_oacc_loop): Clear mask & flags if no ifns.
16424 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
16425 (oacc_loop_xform_loop): Add ifns arg & adjust.
16426 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
16427
16428 2016-03-07 Richard Henderson <rth@redhat.com>
16429
16430 PR rtl-opt/70061
16431 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
16432 (insert_value_copy_on_edge): Likewise.
16433
16434 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16435
16436 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
16437
16438 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16439
16440 PR target/62281
16441 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
16442
16443 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
16444
16445 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
16446
16447 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
16448
16449 Fix sseimul type attribute.
16450 * config/i386/znver1.md
16451 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
16452 znver1_sseimul_avx256_load) : Fix the type attribute.
16453 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
16454 pipe usage and latency.
16455
16456 2016-03-05 Jakub Jelinek <jakub@redhat.com>
16457
16458 PR c++/70084
16459 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
16460 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
16461 to the right type.
16462
16463 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
16464
16465 PR c/69973
16466 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
16467
16468 PR rtl-optimization/69941
16469 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
16470 the reg share its mode.
16471
16472 2016-03-04 Jeff Law <law@redhat.com>
16473
16474 PR tree-optimization/69196
16475 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16476 If the both SSA_NAMEs are anonymous, then consider them unassociated
16477 and include the PHI in the statement count.
16478
16479 2016-03-05 Tom de Vries <tom@codesourcery.com>
16480
16481 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
16482 construct in oacc routine. Check for oacc region in oacc routine.
16483
16484 2016-03-04 Jakub Jelinek <jakub@redhat.com>
16485
16486 PR target/70062
16487 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
16488 2016-02-22 changes, instead don't recurse if RECUR is already true.
16489 Don't change *dynamic_check if RECUR. Adjust recursive caller
16490 to pass true to the new argument.
16491 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
16492
16493 PR target/70059
16494 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
16495 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
16496 fixes.
16497 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
16498
16499 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
16500
16501 PR rtl-optimization/57676
16502 * lra-assigns.c (lra_assign): Guard test for maximum iterations
16503 with flag_checking.
16504
16505 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
16506
16507 * tree-vect-patterns.c (search_type_for_mask): Handle
16508 comparison of booleans.
16509
16510 2016-03-04 Jakub Jelinek <jakub@redhat.com>
16511
16512 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
16513 Fix @xref usage.
16514
16515 PR debug/69947
16516 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
16517 all other ops that have dw_val_class_die_ref operands,
16518 and DW_OP_GNU_entry_value.
16519
16520 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16521
16522 PR rtl-optimization/69904
16523 * config/arm/arm.c (arm_cannot_copy_insn_p):
16524 Return true for load-exclusive instructions.
16525
16526 2016-03-03 Jakub Jelinek <jakub@redhat.com>
16527
16528 PR target/70021
16529 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
16530 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
16531 the pattern no matter if it is used just by non-pattern, pattern
16532 or mix thereof.
16533 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
16534 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
16535 oprnd1 def_stmt is in pattern, don't look through it.
16536
16537 2016-03-03 Marek Polacek <polacek@redhat.com>
16538
16539 PR middle-end/70050
16540 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
16541
16542 2016-03-03 Martin Liska <mliska@suse.cz>
16543
16544 PR tree-optimization/70043
16545 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
16546 previous statement if we see a debug statement.
16547
16548 2016-03-03 Richard Biener <rguenther@suse.de>
16549
16550 PR tree-optimization/55936
16551 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
16552 parameter and guard unsafe equivalence use.
16553 (vrp_evaluate_conditional_warnv_with_ops): Always use
16554 safe equivalences but not via the quadratic compare_names
16555 helper.
16556
16557 2016-03-03 Michael Collison <michael.collison@linaro.org>
16558
16559 PR target/70014
16560 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
16561 for operand 1 to s_register_operand. Change predicate for operand
16562 2 to arm_not_immediate_operand.
16563
16564 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
16565
16566 * doc/tm.texi: Regenerated.
16567
16568 2016-03-02 Richard Henderson <rth@redhat.com>
16569
16570 PR rtl-opt/67145
16571 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
16572 simplification when all args are positive non-fixed registers.
16573
16574 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
16575
16576 * target.def (lra_p): Specify that new ports should use LRA.
16577
16578 2016-03-02 Jakub Jelinek <jakub@redhat.com>
16579
16580 PR libgomp/69555
16581 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
16582 gimplify_type_sizes the type they refer to.
16583 (omp_notice_variable): Handle reference vars to VLAs.
16584 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
16585 reference to VLA decls in the second pass instead of first pass.
16586
16587 2016-03-02 Tom de Vries <tom@codesourcery.com>
16588
16589 PR tree-optimization/68659
16590 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
16591 new_expr == NULL_TREE.
16592 (get_new_name): Handle ADDR_EXPR.
16593
16594 2016-03-02 Bin Cheng <bin.cheng@arm.com>
16595
16596 PR rtl-optimization/69052
16597 * loop-invariant.c (canonicalize_address): New function.
16598 (inv_can_prop_to_addr_use): Check validity of address expression
16599 which is canonicalized by above function.
16600
16601 2016-03-02 Alan Modra <amodra@gmail.com>
16602
16603 PR ipa/69990
16604 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
16605 larger alignment.
16606
16607 2016-03-02 Jakub Jelinek <jakub@redhat.com>
16608
16609 PR target/70028
16610 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
16611 (*movhi_internal): Put mask moves from and to memory separately
16612 from moves from/to GPRs.
16613
16614 2016-03-02 Richard Biener <rguenther@suse.de>
16615
16616 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
16617 GENERIC expressions in GIMPLE.
16618
16619 2016-03-02 Richard Biener <rguenther@suse.de>
16620
16621 * config/i386/i386.c (type_natural_mode): Fix typo.
16622
16623 2016-03-02 Nick Clifton <nickc@redhat.com>
16624
16625 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
16626
16627 2016-03-02 Richard Biener <rguenther@suse.de>
16628 Uros Bizjak <ubizjak@gmail.com>
16629
16630 PR target/67278
16631 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
16632
16633 2016-03-02 Richard Biener <rguenther@suse.de>
16634
16635 PR middle-end/67278
16636 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
16637
16638 2016-03-02 Marek Polacek <polacek@redhat.com>
16639
16640 PR c/67854
16641 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
16642 "is promoted to" warning.
16643
16644 2016-03-01 DJ Delorie <dj@redhat.com>
16645
16646 * config.gcc: Deprecate mep-*.
16647
16648 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
16649
16650 PR middle-end/70025
16651 * lra-constraints.c (regno_val_use_in): New.
16652 (match_reload): Use it instead of regno_use_in.
16653
16654 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
16655
16656 PR rtl-optimization/70007
16657 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
16658 references present in REG_EQUAL notes attached to non-SET patterns.
16659
16660 2016-03-01 Jeff Law <law@redhat.com>
16661
16662 PR tree-optimization/69196
16663 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16664 Appropriately clamp the number of statements to copy when the
16665 thread path does not traverse a loop backedge.
16666
16667 PR tree-optimization/69196
16668 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16669 Do count some PHIs in the thread path against the insn count. Decrease
16670 final statement count by one as the control statement in the last
16671 block will get removed. Remove special cased code for handling PHIs
16672 in the last block.
16673
16674 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
16675
16676 PR target/70027
16677 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
16678 asm dialect alternatives to explicit GOTPCREL calls.
16679
16680 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
16681
16682 PR ada/70017
16683 * ira.c (do_reload): Issue warning for generic stack checking here...
16684 * reload1.c (reload): ...instead of here and streamline it.
16685
16686 2016-03-01 Nick Clifton <nickc@redhat.com>
16687
16688 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
16689
16690 2016-03-01 Richard Biener <rguenther@suse.de>
16691
16692 PR tree-optimization/69983
16693 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
16694 types and fall back to operand_equal_p.
16695
16696 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16697
16698 Revert
16699 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16700
16701 * config/s390/constraints.md ("jm8"): New constraint.
16702 * config/s390/predicates.md ("const_int_8bitset_operand"): New
16703 predicate.
16704 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
16705 into ...
16706 ("*setmem_long<setmem_and>"): New pattern.
16707 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
16708 into ...
16709 ("*setmem_long_31z<setmem_and>"): New pattern.
16710 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
16711 New substitution rules with the required attributes.
16712
16713
16714 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16715
16716 Revert
16717 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16718
16719 * gensupport.c (process_substs_on_one_elem): Split loop to
16720 complete mark_operands_used_in_match_dup on all expressions in the
16721 vector first.
16722 (adjust_operands_numbers): Inline into process_substs_on_one_elem
16723 and remove function.
16724
16725 2016-03-01 Richard Biener <rguenther@suse.de>
16726
16727 PR middle-end/70022
16728 * fold-const.c (fold_indirect_ref_1): Fix range checking for
16729 vector BIT_FIELD_REF extract.
16730
16731 2016-03-01 Richard Biener <rguenther@suse.de>
16732
16733 PR tree-optimization/69994
16734 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
16735
16736 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
16737
16738 PR tree-optimization/69956
16739 * tree-vect-stmts.c (supportable_widening_operation): Support
16740 multi-step conversion of boolean vectors.
16741 (supportable_narrowing_operation): Likewise.
16742
16743 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16744
16745 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
16746 anymore.
16747
16748 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16749
16750 * config/s390/subst.md (DSI_VI): New mode iterator.
16751 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
16752 * config/s390/vector.md ("vec_set<mode>"): Move expander before
16753 the insn definition.
16754 ("*vec_set<mode>"): Change predicate and add alternative to
16755 support only either register or const_int operands as element
16756 selector.
16757 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
16758 operands.
16759 ("vec_extract<mode>"): New expander.
16760 ("*vec_extract<mode>"): New insn definition supporting reg and
16761 const_int element selectors.
16762 ("*vec_extract<mode>_plus"): New insn definition supporting
16763 reg+const_int element selectors.
16764 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
16765 following expander+insn definition.
16766 ("<vec_shifts_name><mode>3"): New expander.
16767 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
16768
16769 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16770
16771 * config/s390/s390.md ("*tabort_1"): Change predicate to
16772 nonmemory_operand. Add a second alternative to cover
16773 register as well as const int operands.
16774 ("*tabort_1_plus"): New pattern definition.
16775
16776 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16777
16778 * config/s390/s390.md ("*ashrdi3_cc_31")
16779 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
16780 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
16781 Merge insn definitions into ...
16782 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
16783 New pattern definition.
16784 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
16785 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
16786 ("*ashr<mode>3_and"): Merge insn definitions into ...
16787 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
16788 New pattern definition.
16789 * config/s390/subst.md ("addr_style_op_cc_subst")
16790 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
16791 substitutions patterns plus attributes.
16792 Add ashiftrt to SUBST iterator.
16793
16794 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16795
16796 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
16797 op2 to nonmemory_operand.
16798 ("*<shift>di3_31", "*<shift>di3_31_and"):
16799 Merge into single pattern definition ...
16800 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
16801 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
16802 pattern definition ...
16803 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
16804 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
16805 iterator.
16806
16807 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16808
16809 * config/s390/predicates.md (const_int_6bitset_operand): New
16810 predicate.
16811 * config/s390/s390.md: Include subst.md.
16812 ("rotl<mode>3"): New expander.
16813 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
16814 ...
16815 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
16816 * config/s390/subst.md: New file.
16817
16818 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16819
16820 * config/s390/s390.md ("op_type", "atype", "length" attributes):
16821 Remove RRR type. It doesn't really exist.
16822 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
16823 attributes.
16824 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
16825 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
16826 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
16827 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
16828 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
16829 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
16830 `enabled' attribute.
16831
16832 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16833
16834 * gensupport.c (process_substs_on_one_elem): Split loop to
16835 complete mark_operands_used_in_match_dup on all expressions in the
16836 vector first.
16837 (adjust_operands_numbers): Inline into process_substs_on_one_elem
16838 and remove function.
16839
16840 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
16841
16842 PR target/69706
16843 * config/sparc/sparc.c (NWORDS_UP): Rename to...
16844 (CEIL_NWORDS): ...this. Use CEIL macro.
16845 (compute_fp_layout): Adjust to above renaming.
16846 (function_arg_union_value): Likewise.
16847 (sparc_arg_partial_bytes): Likewise.
16848 (sparc_function_arg_advance): Likewise.
16849
16850 2016-02-29 Jeff Law <law@redhat.com>
16851
16852 PR tree-optimization/70005
16853 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
16854 where an object with a boolean range is compared against a value
16855 outside [0..1].
16856
16857 PR tree-optimization/69999
16858 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
16859 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
16860 loop cleanups.
16861
16862 2016-02-29 Richard Biener <rguenther@suse.de>
16863
16864 PR tree-optimization/69994
16865 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
16866 (get_unary_op): Look through nop conversions.
16867 (ops_equal_values_p): New function, look for equality diregarding
16868 nop conversions.
16869 (eliminate_plus_minus_pair): Use ops_equal_values_p
16870 (repropagate_negates): Do not use get_unary_op here.
16871
16872 2016-02-29 Martin Liska <mliska@suse.cz>
16873
16874 * system.h: Poison ENABLE_CHECKING macro.
16875
16876 2016-02-29 Martin Liska <mliska@suse.cz>
16877
16878 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
16879 is presented in dump flags.
16880 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
16881 (hsa_regalloc): Likewise.
16882
16883 2016-02-19 Richard Biener <rguenther@suse.de>
16884
16885 PR tree-optimization/69980
16886 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
16887 permutation of those we need to keep.
16888
16889 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
16890
16891 PR target/69706
16892 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
16893 (NWORDS_UP): ...this
16894 (init_cumulative_args): Minor tweaks.
16895 (sparc_promote_function_mode): Likewise.
16896 (scan_record_type): Delete.
16897 (traverse_record_type): New function template.
16898 (classify_data_t): New structure type.
16899 (classify_registers): New inline function.
16900 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
16901 exhausted. Instantiate traverse_record_type on classify_registers and
16902 deal with the case of a structure passed in slot #15 with no FP field
16903 in the first word.
16904 (assign_data_t): New structure type.
16905 (compute_int_layout): New static function.
16906 (compute_fp_layout): Likewise.
16907 (count_registers): New inline function.
16908 (assign_int_registers): New static function.
16909 (assign_fp_registers): Likewise.
16910 (assign_registers): New inline function.
16911 (function_arg_record_value_1): Delete.
16912 (function_arg_record_value_2): Likewise.
16913 (function_arg_record_value_3): Likewise.
16914 (function_arg_record_value): Adjust to above changes. Instantiate
16915 traverse_record_type on count_registers to first count the number of
16916 registers to be used and then on assign_registers to assign them.
16917 (function_arg_union_value): Adjust to above renaming.
16918 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
16919 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
16920 case of a structure passed in slot #15
16921 (sparc_function_arg_advance): Likewise.
16922 (function_arg_padding): Minor tweak.
16923
16924 2016-02-29 Richard Biener <rguenther@suse.de>
16925
16926 PR tree-optimization/69720
16927 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
16928 the adjustment_def path for possibly vectorized defs.
16929 (vect_create_epilog_for_reduction): Handle vectorized initial
16930 defs properly.
16931
16932 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
16933
16934 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
16935
16936 2016-02-27 Jeff Law <law@redhat.com>
16937
16938 Revert
16939 2016-02-26 Richard Biener <rguenther@suse.de>
16940 Jeff Law <law@redhat.com>
16941
16942 PR tree-optimization/69740
16943 * cfghooks.c (remove_edge): Request loop fixups if we delete
16944 an edge that might turn an irreducible loop into a natural
16945 loop.
16946
16947 2016-02-27 Jakub Jelinek <jakub@redhat.com>
16948
16949 PR rtl-optimization/69896
16950 * tree-vect-generic.c (get_compute_type): Avoid single element
16951 vector types.
16952
16953 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
16954
16955 Rename the AArch64 tuning option and related functions to enable the
16956 Newton series for the reciprocal square root to reflect its
16957 approximative characteristic.
16958
16959 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
16960 function to "aarch64_emit_approx_rsqrt".
16961 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
16962 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
16963 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
16964 (xgene1_tunings): Likewise.
16965 (use_rsqrt_p): Likewise.
16966 (aarch64_emit_swrsqrt): Use new function name.
16967 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
16968 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
16969 text explaining this option.
16970 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
16971
16972 2016-02-26 Jakub Jelinek <jakub@redhat.com>
16973
16974 PR target/69969
16975 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
16976 complain about -mallow-movmisalign without -mvsx if
16977 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
16978
16979 2016-02-26 Joel Sherrill <joel@rtems.org>
16980
16981 * config.gcc: Add x86_64-*-rtems*.
16982 * config/i386/rtems-64.h: New file.
16983
16984 2016-02-26 Joel Sherrill <joel@rtems.org>
16985
16986 * config.gcc: Add aarch64-*-rtems*.
16987 * config/aarch64/rtems.h: New file.
16988
16989 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
16990
16991 PR target/69946
16992 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
16993 shift amount using %h. Add comment.
16994
16995 2016-02-26 Richard Biener <rguenther@suse.de>
16996 Jeff Law <law@redhat.com>
16997
16998 PR tree-optimization/69740
16999 * cfghooks.c (remove_edge): Request loop fixups if we delete
17000 an edge that might turn an irreducible loop into a natural
17001 loop.
17002
17003 2016-02-26 Martin Jambor <mjambor@suse.cz>
17004
17005 PR middle-end/69920
17006 * tree-sra.c (sra_modify_assign): Do not remove loads of
17007 uninitialized aggregates to SSA_NAMEs.
17008
17009 2016-02-26 Richard Henderson <rth@redhat.com>
17010
17011 PR target/69709
17012 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
17013 pseudo in case the target rtx matches the source of the left
17014 shift.
17015
17016 2016-02-26 Martin Jambor <mjambor@suse.cz>
17017
17018 PR hsa/69568
17019 * hsa.h (hsa_type_packed_p): Declare.
17020 * hsa.c (hsa_type_packed_p): New function.
17021 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
17022 loads.
17023 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
17024 * hsa-brig.c (emit_basic_insn): Likewise.
17025
17026 2016-02-26 Martin Jambor <mjambor@suse.cz>
17027
17028 pr hsa/69674
17029 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
17030 pointers.
17031 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
17032
17033 2016-02-26 Martin Jambor <mjambor@suse.cz>
17034
17035 * hsa.h (is_a_helper): New overload for hsa_op_immed for
17036 hsa_op_with_type operands.
17037 (hsa_unsigned_type_for_type): Declare.
17038 * hsa.c (hsa_unsigned_type_for_type): New function.
17039 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
17040 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
17041 the finalizer. Do not emit extra move.
17042
17043 2016-02-26 Martin Jambor <mjambor@suse.cz>
17044
17045 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
17046 atomic operations in private segment.
17047
17048 2016-02-26 Martin Jambor <mjambor@suse.cz>
17049
17050 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
17051 statements to wi->info. Also disallow omp simd constructs.
17052 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
17053 for not gridifying. Dump special string for omp_for.
17054
17055 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17056
17057 PR target/69245
17058 * config/aarch64/aarch64.c (aarch64_set_current_function):
17059 Save/restore target globals when switching to
17060 target_option_default_node.
17061
17062 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17063
17064 PR target/69613
17065 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
17066 Return 0 if !SHIFT_COUNT_TRUNCATED.
17067
17068 2016-02-26 Jakub Jelinek <jakub@redhat.com>
17069 Eric Botcazou <ebotcazou@adacore.com>
17070
17071 PR rtl-optimization/69891
17072 * dse.c (scan_insn): If we can't figure out memset arguments
17073 or they are non-constant, call clear_rhs_from_active_local_stores.
17074
17075 2016-02-26 Martin Liska <mliska@suse.cz>
17076
17077 * doc/extend.texi: Mention clog10, clog10f an clog10l
17078 in Builtins section.
17079
17080 2016-02-26 Martin Liska <mliska@suse.cz>
17081
17082 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
17083 CHECKING_P.
17084 (resolve_args_picking_1): Likewise.
17085 * dwarf2out.h (struct GTY): Likewise.
17086
17087 2016-02-26 Martin Liska <mliska@suse.cz>
17088
17089 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
17090 with flag_checking.
17091 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17092
17093 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
17094 Martin Liska <mliska@suse.cz>
17095
17096 * doc/install.texi: Mention --enable-valgrind-annotations.
17097
17098 2016-02-26 Richard Biener <rguenther@suse.de>
17099
17100 PR tree-optimization/69551
17101 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
17102 looking through aliases adjust DECL_PT_UID to refer to the
17103 ultimate alias target.
17104
17105 2016-02-25 Martin Liska <mliska@suse.cz>
17106
17107 PR middle-end/69919
17108 * alloc-pool.c (after_memory_report): New variable.
17109 * alloc-pool.h (base_pool_allocator ::release): Do not use
17110 the infrastructure if after_memory_report.
17111 * toplev.c (toplev::main): Mark after memory report.
17112
17113 2016-02-25 Richard Biener <rguenther@suse.de>
17114
17115 PR tree-optimization/48795
17116 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
17117
17118 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
17119
17120 PR driver/68463
17121 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
17122 offloading is enabled and -fopenacc or -fopenmp is specified.
17123 (CRTOFFLOADEND): Likewise.
17124 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
17125 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
17126 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
17127 (offload_objects_file_name): New static var.
17128 (tool_cleanup): Remove offload_objects_file_name file.
17129 (find_offloadbeginend): Replace with ...
17130 (find_crtoffloadtable): ... this.
17131 (run_gcc): Remove offload_argc and offload_argv.
17132 Get offload_objects_file_name from -foffload-objects=... option.
17133 Read names of object files with offload from this file, pass them to
17134 compile_images_for_offload_targets. Don't call find_offloadbeginend and
17135 don't pass offloadbegin and offloadend to the linker. Don't pass
17136 offload non-LTO files to the linker, because now they're not claimed.
17137
17138 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
17139
17140 PR ipa/69630
17141 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
17142 on builtin_unreachable.
17143
17144 2016-02-25 Jakub Jelinek <jakub@redhat.com>
17145
17146 PR rtl-optimization/69896
17147 * regcprop.c: Include cfgrtl.h.
17148 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
17149 than remembered mode, either delete it (if noop_move_p), or
17150 treat like copy_p but not noop_p instruction.
17151
17152 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17153
17154 PR debug/69705
17155 * dwarf2out.c (gen_variable_die): Work around buggy LTO
17156 - allow NULL decl for Fortran DW_TAG_common_block variables.
17157
17158 2016-02-24 Jason Merrill <jason@redhat.com>
17159
17160 * common.opt (flifetime-dse): Add -flifetime-dse=1.
17161
17162 2016-02-24 Richard Biener <rguenther@suse.de>
17163 Jakub Jelinek <jakub@redhat.com>
17164
17165 PR middle-end/69760
17166 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
17167 conditionally executed ops to well-defined overflow behavior.
17168
17169 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17170
17171 PR middle-end/69915
17172 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
17173 elements.
17174
17175 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17176
17177 PR rtl-optimization/69886
17178 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
17179 argument. Use it when checking validity of set instructions.
17180 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
17181 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
17182 callsite.
17183 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
17184 * store-motion.c (find_moveable_store): Update
17185 can_assign_to_reg_without_clobbers_p callsite.
17186
17187 2016-02-24 Richard Biener <rguenther@suse.de>
17188
17189 PR middle-end/68963
17190 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
17191 bogus check.
17192 (record_nonwrapping_iv): Do not fall back to the low/high bound
17193 for non-constant IV bases if the stmt is not always executed.
17194
17195 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17196
17197 * config/arm/arm-cores.def (cortex-a32): New entry.
17198 * config/arm/arm-tables.opt: Regenerate.
17199 * config/arm/arm-tune.md: Regenerate.
17200 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
17201 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
17202 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
17203 for -mcpu and -mtune.
17204
17205 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17206
17207 PR target/69875
17208 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
17209 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
17210 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
17211 (atomic_loaddi_1): Delete.
17212 (atomic_loaddi): Rewrite expander using the above changes.
17213
17214 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17215
17216 PR c/69918
17217 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
17218 2 to 3.
17219
17220 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17221 Richard Biener <rguenth@suse.de>
17222
17223 PR middle-end/69909
17224 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
17225 set_mem_attributes if tem is SSA_NAME which got expanded
17226 as a MEM.
17227
17228 2016-02-24 Richard Biener <rguenther@suse.de>
17229
17230 PR tree-optimization/69907
17231 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
17232 end of permutations for BB vectorization.
17233
17234 2016-02-24 Christian Bruel <christian.bruel@st.com>
17235
17236 * config/arm/arm-c.c (arm_option_override): Initialize
17237 target_option_current_node.
17238 * config/arm/arm.c (arm_pragma_target_parse): Replace
17239 build_target_option_node call by target_option_current_node.
17240 Set target_option_current_node.
17241 Fix comments.
17242
17243 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
17244
17245 PR target/69810
17246 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
17247 define_insn_and_split to define_insn.
17248 (zero_extendqi<mode>2_dot2): Same.
17249 (extendqi<mode>2_dot): Same.
17250 (extendqi<mode>2_dot2): Same.
17251
17252 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
17253
17254 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
17255 and add bypass for AES{D,E} and AESMC pairs.
17256 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
17257 and AESMC pairs.
17258
17259 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
17260
17261 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
17262 series for reciprocal square root in Exynos M1.
17263
17264 2016-02-23 Martin Sebor <msebor@redhat.com>
17265
17266 PR c/69759
17267 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
17268 __builtin_alloca_with_align.
17269
17270 2016-02-23 Richard Henderson <rth@redhat.com>
17271
17272 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
17273 (ix86_register_pragmas): Remove __seg_tls.
17274 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
17275 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
17276 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
17277 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
17278 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
17279 * doc/extend.texi (__seg_tls): Remove item.
17280
17281 2016-02-23 Richard Biener <rguenther@suse.de>
17282
17283 * alloc-pool.h (struct allocation_object): Make id member
17284 conditional on CHECKING_P again.
17285 (get_instance): Adjust.
17286 (base_pool_allocator): Likewise.
17287
17288 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
17289
17290 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
17291 (parallelize_loops): In OpenACC kernels mode, set n_threads to
17292 zero.
17293 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
17294 flag_openacc.
17295 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
17296
17297 2016-02-23 Richard Biener <rguenther@suse.de>
17298
17299 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
17300 * bitmap.h (struct bitmap_usage): Likewise.
17301 (bitmap_move): Declare.
17302 * bitmap.c (register_overhead): Take size_t argument.
17303 (bitmap_move): New function.
17304 * df-problems.c (df_rd_transfer_function): Use bitmap_move
17305 to properly account overhead.
17306 * tree.c (free_node): Use tree_size.
17307
17308 2016-02-23 Jakub Jelinek <jakub@redhat.com>
17309
17310 PR c++/69902
17311 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
17312 when inverting comparison.
17313
17314 PR c/69900
17315 * common.opt (Wunreachable-code): Add Warning flag.
17316
17317 2016-02-23 Mark Wielaard <mjw@redhat.com>
17318 Jakub Jelinek <jakub@redhat.com>
17319
17320 PR c/69911
17321 * cgraphunit.c (check_global_declaration): Check main_input_filename
17322 and DECL_SOURCE_FILE are not NULL.
17323
17324 2016-02-23 Martin Jambor <mjambor@suse.cz>
17325
17326 PR tree-optimization/69666
17327 * tree-sra.c (sra_modify_assign): Do not attempt to create
17328 default_def replacements for unscalarizable regions.
17329
17330 2016-02-20 Mark Wielaard <mjw@redhat.com>
17331
17332 PR c/28901
17333 * cgraphunit.c (check_global_declaration): Check level of
17334 warn_unused_const_variable and main_input_filename.
17335 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
17336 (-Wunused-variable): For C implies -Wunused-const-variable=1.
17337 (-Wunused-const-variable): Explain levels 1 and 2.
17338
17339 2016-02-22 Jakub Jelinek <jakub@redhat.com>
17340
17341 PR target/69888
17342 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
17343 identical arguments. Formatting and spelling fixes.
17344
17345 PR target/69885
17346 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
17347 be specified.
17348
17349 PR target/69894
17350 PR target/69895
17351 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
17352 and m68k-devices.def.
17353 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
17354 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
17355
17356 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
17357
17358 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
17359 and HImode registers.
17360
17361 2016-02-22 Richard Biener <rguenther@suse.de>
17362
17363 PR tree-optimization/69882
17364 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
17365 preserve permutations present because of gaps.
17366 (vect_supported_load_permutation_p): Always continue checking
17367 permutations after vect_attempt_slp_rearrange_stmts.
17368
17369 2016-02-22 Bin Cheng <bin.cheng@arm.com>
17370
17371 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
17372 min_profitable_estimate, rather than min_profitable_iters.
17373
17374 2016-02-22 Jakub Jelinek <jakub@redhat.com>
17375
17376 PR target/69885
17377 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
17378 SImode for last match_operand.
17379
17380 2016-02-22 Martin Liska <mliska@suse.cz>
17381
17382 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
17383 return bitsize - 1 as the return value.
17384
17385 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
17386
17387 PR target/69806
17388 PR target/54089
17389 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
17390 Handle negative shift counts.
17391 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
17392 force_reg on the shift constant.
17393 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
17394 (lshrsi3_d): Handle negative shift counts.
17395
17396 2016-02-22 Richard Biener <rguenther@suse.de>
17397 Tom de Vries <tom@codesourcery.com>
17398
17399 * graph.c: Include dumpfile.h.
17400 (print_graph_cfg): Split into three overloads.
17401 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
17402
17403 2016-02-22 Tom de Vries <tom@codesourcery.com>
17404
17405 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
17406 dump-fn.
17407
17408 2016-02-22 Richard Biener <rguenther@suse.de>
17409
17410 PR ipa/37448
17411 * ipa-inline-transform.c (inline_call): When not updating
17412 overall summaries adjust self size by the growth estimate.
17413 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
17414 hash-set, do not update overall summaries here. Renamed from ...
17415 (inline_to_all_callers): ... this which is now wrapping the
17416 above and performing delayed overall summary update.
17417 (early_inline_small_functions): Delay updating of the overall
17418 summary.
17419
17420 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
17421
17422 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
17423 variable.
17424
17425 2016-02-19 Jakub Jelinek <jakub@redhat.com>
17426
17427 PR driver/69805
17428 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
17429 :%* in %:gt() argument.
17430 (greater_than_spec_func): Adjust for expecting only numbers,
17431 if there are more than two numbers, compare the last two.
17432
17433 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
17434
17435 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
17436 -Wnarrowing with -std.
17437
17438 2016-02-19 Jakub Jelinek <jakub@redhat.com>
17439
17440 PR c++/69851
17441 * expr.c (store_field): Don't use bit-field path if exp is
17442 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
17443 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
17444 and the assignment can be performed by bitwise copy. Formatting
17445 fix.
17446
17447 PR middle-end/69838
17448 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
17449 call copy_reg_eh_region_note_forward on before and/or after sequences
17450 and remove note from insn if it no longer can throw.
17451
17452 PR target/69820
17453 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
17454 if TARGET_AVX512BW.
17455
17456 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17457
17458 * config/s390/vector.md: Add missing commutative operand markers
17459 to the patterns which qualify for one.
17460 * config/s390/vx-builtins.md: Likewise.
17461
17462 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17463
17464 * config/s390/vector.md (VI, VI_QHS): Add single element vector
17465 types to mode iterators.
17466 (vec_double): ... and mode attribute.
17467 * config/s390/vx-builtins.md (non_vec_int): Likewise.
17468
17469 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17470
17471 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
17472 Change the predicate of op2 from nonimmediate to general and let
17473 reload fix it if necessary.
17474
17475 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17476
17477 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
17478
17479 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17480
17481 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
17482 mode.
17483
17484 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17485
17486 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
17487 * config/s390/s390.c (s390_expand_vec_movstr): New function.
17488 * config/s390/s390.md ("movstr<P:mode>"): Call
17489 s390_expand_vec_movstr.
17490
17491 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17492
17493 * config/s390/s390.md: Add missing output modifier for operand 1
17494 to print it as address properly.
17495
17496 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17497
17498 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
17499 * config/s390/2964.md: New file.
17500 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
17501 of insn grouping attributes depending on the CPU level.
17502 (s390_get_unit_mask): New function.
17503 (s390_sched_score): Remove the OOO from the scheduling macros.
17504 Add loop to calculate a score for the instruction mix.
17505 (s390_sched_reorder): Likewise plus improve debug output.
17506 (s390_sched_variable_issue): Rename macros as above. Calculate
17507 the unit distances after actually scheduling an insn. Improve
17508 debug output.
17509 (s390_sched_init): Clear last_scheduled_unit_distance array.
17510 * config/s390/s390.md: Include 2964.md.
17511
17512 2016-02-18 Jakub Jelinek <jakub@redhat.com>
17513
17514 PR target/69671
17515 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
17516 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
17517 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
17518 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
17519 *avx512f_<code>v8div16qi2_mask_1): New insns.
17520
17521 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
17522
17523 PR target/68404
17524 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
17525 2016-02-09 change.
17526
17527 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
17528 earlyclobber from target. Use wF constraint for fused memory
17529 address.
17530 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
17531
17532 2016-02-18 Jakub Jelinek <jakub@redhat.com>
17533 Martin Liska <mliska@suse.cz>
17534
17535 PR sanitizer/69863
17536 * cfgexpand.c (asan_sanitize_stack_p): New function.
17537 (partition_stack_vars): Use the function.
17538 (expand_stack_vars): Likewise.
17539 (defer_stack_allocation): Likewise.
17540 (expand_used_vars): Likewise.
17541
17542 2016-02-18 Richard Biener <rguenther@suse.de>
17543
17544 PR middle-end/69553
17545 * fold-const.c (operand_equal_p): Properly compare offsets for
17546 IMAGPART_EXPR and ARRAY_REF.
17547
17548 2016-02-18 Nick Clifton <nickc@redhat.com>
17549
17550 PR target/62254
17551 PR target/69610
17552 * config/arm/arm.c (arm_option_override_internal): Disable
17553 interworking if the target does not support thumb instructions.
17554 (arm_reload_in_hi): Handle the case where a register to register
17555 move needs reloading because there is no simple pattern to handle
17556 it.
17557 (arm_reload_out_hi): Likewise.
17558
17559 2016-02-18 Richard Biener <rguenther@suse.de>
17560
17561 PR middle-end/69854
17562 * match.pd: Don't use fold_binary or fold_unary for folding
17563 constants.
17564
17565 2016-02-17 Jakub Jelinek <jakub@redhat.com>
17566
17567 PR c++/69850
17568 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
17569 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
17570 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
17571 warn on gimple_no_warning_p statements.
17572
17573 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
17574
17575 * doc/extend.texi (C++ Attributes): Correct description of
17576 warn_unused type attribute.
17577
17578 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17579
17580 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
17581 correct instruction.
17582
17583 2016-02-17 Richard Biener <rguenther@suse.de>
17584
17585 PR rtl-optimization/69609
17586 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
17587 (find_traces_1_round): When ending a trace update cached priority
17588 of successors.
17589 (bb_to_key): Use cached priority when available.
17590 (copy_bb): Initialize cached priority.
17591 (reorder_basic_blocks_software_trace_cache): Likewise.
17592
17593 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17594
17595 PR target/69161
17596 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
17597 New predicate.
17598 (aarch64_comparison_operator): Break overly long line into two.
17599 (aarch64_comparison_operation): Likewise.
17600 * config/aarch64/aarch64.md (cstorecc4): Use
17601 aarch64_comparison_operator_mode instead of
17602 aarch64_comparison_operator.
17603 (cstore<mode>4): Likewise.
17604 (aarch64_cstore<mode>): Likewise.
17605 (*cstoresi_insn_uxtw): Likewise.
17606 (cstore<mode>_neg): Likewise.
17607 (*cstoresi_neg_uxtw): Likewise.
17608
17609 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17610
17611 PR target/69161
17612 * config/arm/predicates.md (arm_comparison_operator_mode):
17613 New predicate.
17614 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
17615 instead of arm_comparison_operator.
17616 (*mov_negscc): Likewise.
17617 (*mov_notscc): Likewise.
17618 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
17619 (*thumb2_mov_negscc): Likewise.
17620 (*thumb2_mov_negscc_strict_it): Likewise.
17621 (*thumb2_mov_notscc): Likewise.
17622 (*thumb2_mov_notscc_strict_it): Likewise.
17623
17624 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
17625
17626 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
17627 Add missing return.
17628
17629 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
17630
17631 * config/visium/visium.c (machine_libfunc_index): New enum.
17632 (machine_libfuncs): New structure.
17633 (visium_libfuncs): New static variable.
17634 (TARGET_INIT_LIBFUNCS): Define to...
17635 (visium_init_libfuncs): ...this. New function.
17636 (expand_block_move_4): Use the appropriate libfunc.
17637 (expand_block_move_2): Likewise.
17638 (expand_block_move_1): Likewise.
17639 (expand_block_set_4): Likewise.
17640 (expand_block_set_2): Likewise.
17641 (expand_block_set_1): Likewise.
17642 (visium_trampoline_init): Likewise.
17643
17644 2016-02-17 Nick Clifton <nickc@redhat.com>
17645
17646 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
17647 TI's devices.csv file as of March 2016.
17648
17649 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
17650
17651 PR Target/48344
17652 * opts-global.c (handle_common_deferred_options): Introduce and
17653 initialize two global variables to remember command-line options
17654 specifying a stack-limiting register.
17655 * opts.h: Add extern declarations of the two new global variables.
17656 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
17657 variable based on the values of the two new global variables.
17658
17659 2016-02-16 Jakub Jelinek <jakub@redhat.com>
17660
17661 PR c/69835
17662 * common.opt (Wnonnull-compare): New warning.
17663 * doc/invoke.texi (-Wnonnull): Remove text about comparison
17664 of arguments against NULL.
17665 (-Wnonnull-compare): Document.
17666 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
17667 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
17668 * passes.def (pass_warn_nonnull_compare): Add.
17669 * gimple-ssa-nonnull-compare.c: New file.
17670
17671 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
17672
17673 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
17674 AARCH64_EXTRA_TUNE_RECIP_SQRT.
17675
17676 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
17677
17678 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
17679 reciprocal sqrt for -mlow-precision-recip-sqrt.
17680
17681 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
17682 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17683
17684 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
17685 always use lane loads to construct non-constant vectors.
17686
17687 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
17688
17689 * config/aarch64/aarch64.md
17690 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
17691 constraints for operand 3.
17692 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
17693
17694 2016-02-16 Jakub Jelinek <jakub@redhat.com>
17695 Richard Biener <rguenther@suse.de>
17696
17697 PR tree-optimization/69820
17698 * tree-vect-patterns.c (type_conversion_p): Return false if
17699 *orig_type is unsigned single precision or boolean.
17700 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
17701 Formatting fix.
17702
17703 2016-02-16 Jakub Jelinek <jakub@redhat.com>
17704
17705 PR rtl-optimization/69764
17706 PR rtl-optimization/69771
17707 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
17708 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
17709
17710 2016-02-16 Richard Biener <rguenther@suse.de>
17711
17712 PR tree-optimization/69776
17713 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
17714 sets from caller.
17715 (indirect_refs_may_alias_p): Likewise.
17716 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
17717 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
17718 according to tbaa_p.
17719 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
17720 (optimize_stmt): For redundant store discovery do not allow tbaa.
17721
17722 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
17723
17724 PR tree-optimization/69714
17725 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
17726 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
17727
17728 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
17729
17730 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
17731 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
17732 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
17733 * config/arc/arc.c (arc_init): Check FPU options.
17734 (get_arc_condition_code): Handle new CC_FPU* modes.
17735 (arc_select_cc_mode): Likewise.
17736 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
17737 register pair only. Allow access for ARCv2 accumulator.
17738 (gen_compare_reg): Whenever we have FPU support use FPU compare
17739 instructions.
17740 (arc_reorg): Don't generate brcc insns when FPU compare
17741 instructions are involved.
17742 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
17743 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
17744 floating point emulation.
17745 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
17746 (REVERSE_CONDITION): Add new CC_FPU* modes.
17747 (TARGET_FP_SP_BASE): Define.
17748 (TARGET_FP_DP_BASE): Likewise.
17749 (TARGET_FP_SP_FUSED): Likewise.
17750 (TARGET_FP_DP_FUSED): Likewise.
17751 (TARGET_FP_SP_CONV): Likewise.
17752 (TARGET_FP_DP_CONV): Likewise.
17753 (TARGET_FP_SP_SQRT): Likewise.
17754 (TARGET_FP_DP_SQRT): Likewise.
17755 (TARGET_FP_DP_AX): Likewise.
17756 * config/arc/arc.md (ARCV2_ACC): New constant.
17757 (type): New fpu type attribute.
17758 (SDF): Conditional iterator.
17759 (cstore<mode>, cbranch<mode>): Change expand condition.
17760 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
17761 handles FPU/FPX cases as well.
17762 * config/arc/arc.opt (mfpu): New option.
17763 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
17764 Renamed.
17765 (adddf3, muldf3, subdf3): Removed.
17766 * config/arc/predicates.md (proper_comparison_operator): Recognize
17767 CC_FPU* modes.
17768 * config/arc/fpu.md: New file.
17769 * doc/invoke.texi (ARC Options): Document mfpu option.
17770
17771 2016-02-16 Richard Biener <rguenther@suse.de>
17772
17773 PR rtl-optimization/69291
17774 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
17775 noce_operand_ok check.
17776
17777 2016-02-16 Tom de Vries <tom@codesourcery.com>
17778
17779 PR lto/67709
17780 * omp-low.c (simd_clone_create): Remove call to
17781 symtab->call_cgraph_insertion_hooks.
17782
17783 2016-02-16 Jakub Jelinek <jakub@redhat.com>
17784
17785 PR tree-optimization/69802
17786 * tree-ssa-reassoc.c (update_range_test): If op is
17787 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
17788 op == 1 test of precision 1 integral op, otherwise handle
17789 that case as op itself. Fix up formatting.
17790 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
17791 up formatting.
17792
17793 2016-02-16 Richard Biener <rguenther@suse.de>
17794
17795 PR tree-optimization/69586
17796 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
17797 types for conversion sources.
17798
17799 2016-02-16 Richard Biener <rguenther@suse.de>
17800
17801 PR middle-end/69801
17802 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
17803 mask OEP_ADDRESS_OF.
17804
17805 2016-02-16 Alan Modra <amodra@gmail.com>
17806
17807 PR target/68973
17808 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
17809 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
17810 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
17811 (p8_mtvsrwz): New.
17812 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
17813 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
17814 (p8_fmrgow_<mode>): Likewise.
17815 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
17816 changes.
17817 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
17818 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
17819 to use movdi_internal64. Remove op0_di.
17820 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
17821
17822 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
17823
17824 Add support for the FCCMP insn types
17825
17826 * config/aarch64/aarch64.md (fccmp): Change insn type.
17827 (fccmpe): Likewise.
17828 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
17829 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
17830 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
17831 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
17832 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
17833 * config/arm/types.md (fccmps): Add new insn type.
17834 (fccmpd): Likewise.
17835
17836 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
17837
17838 * alias.c (get_alias_set): Fix a typo in comment.
17839
17840 2016-02-15 Richard Biener <rguenther@suse.de>
17841
17842 PR tree-optimization/69595
17843 * match.pd: Complete range test simplification to true.
17844
17845 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
17846
17847 PR rtl-optimization/69648
17848 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
17849 pic_offset_table_rtx.
17850
17851 PR rtl-optimization/69752
17852 * ira.c (update_equiv_regs): When looking for more than a single SET,
17853 also take other side effects into account.
17854
17855 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
17856
17857 * config/s390/s390.c (s390_function_profiler): Add a new sequence
17858 for z900+ CPUs in 31-bit mode.
17859
17860 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
17861
17862 * common/config/s390/s390-common.c (s390_supports_split_stack):
17863 New function.
17864 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
17865 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
17866 * config/s390/s390.c (struct machine_function): New field
17867 split_stack_varargs_pointer.
17868 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
17869 in s390_emit_prologue.
17870 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
17871 vararg pointer.
17872 (morestack_ref): New global.
17873 (SPLIT_STACK_AVAILABLE): New macro.
17874 (s390_expand_split_stack_prologue): New function.
17875 (s390_live_on_entry): New function.
17876 (s390_va_start): Use split-stack vararg pointer if appropriate.
17877 (s390_asm_file_end): Emit the split-stack note sections.
17878 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
17879 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
17880 (UNSPECV_SPLIT_STACK_CALL): New unspec.
17881 (UNSPECV_SPLIT_STACK_DATA): New unspec.
17882 (split_stack_prologue): New expand.
17883 (split_stack_space_check): New expand.
17884 (split_stack_data): New insn.
17885 (split_stack_call): New expand.
17886 (split_stack_call_*): New insn.
17887 (split_stack_cond_call): New expand.
17888 (split_stack_cond_call_*): New insn.
17889
17890 2016-02-15 Richard Biener <rguenther@suse.de>
17891
17892 PR tree-optimization/69783
17893 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
17894 Add trivially correct cases.
17895
17896 2016-02-15 Tom de Vries <tom@codesourcery.com>
17897
17898 PR lto/69655
17899 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
17900 do_force_output.
17901 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
17902
17903 2016-02-15 Richard Biener <rguenther@suse.de>
17904
17905 PR tree-optimization/69776
17906 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
17907 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
17908 indicate whether we can use TBAA to disambiguate against stores.
17909 Use alias-set zero if not.
17910 (visit_reference_op_store): Do not use TBAA when looking up
17911 redundant stores.
17912 * tree-ssa-pre.c (compute_avail): Use TBAA here.
17913 (eliminate_dom_walker::before_dom_children): But not when looking
17914 up redundant stores.
17915
17916 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
17917
17918 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
17919
17920 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
17921
17922 * config/i386/znver1.md
17923 (znver1_pop, znver1_pop_mem,
17924 znver1_load_imov_double_store,
17925 znver1_load_imov_direct_store,
17926 znver1_load_imov_direct_load,
17927 znver1_load_imov_double_load): Add new.
17928 (znver1_insn, znver1_insn_load): Add icmov type.
17929 (znver1_sseavx_fma,
17930 znver1_sseavx_fma_load,
17931 znver1_avx256_fma,
17932 znver1_avx256_fma_load): Fix pipe usage.
17933
17934 2016-02-14 Alan Modra <amodra@gmail.com>
17935
17936 PR target/68973
17937 * reload.c (find_reloads_address_1): For pre/post-inc/dec
17938 with an invalid hard reg, reload just the reg not the entire
17939 pre/post-inc/dec address expression.
17940
17941 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
17942
17943 PR target/67260
17944 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
17945 fixed R1_REG scratch reg.
17946 (sibcall_value_pcrel_fdpic): Likewise.
17947
17948 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
17949
17950 PR target/67636
17951 PR target/64345
17952 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
17953
17954 2016-02-12 Walter Lee <walt@tilera.com>
17955
17956 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
17957 * config/tilegx/t-tilegx: Likewise.
17958
17959 2016-02-12 David Malcolm <dmalcolm@redhat.com>
17960
17961 PR other/69554
17962 * diagnostic-show-locus.c (struct line_span): New struct.
17963 (layout::get_first_line): Delete.
17964 (layout::get_last_line): Delete.
17965 (layout::get_num_line_spans): New member function.
17966 (layout::get_line_span): Likewise.
17967 (layout::print_heading_for_line_span_index_p): Likewise.
17968 (layout::get_expanded_location): Likewise.
17969 (layout::calculate_line_spans): Likewise.
17970 (layout::m_first_line): Delete.
17971 (layout::m_last_line): Delete.
17972 (layout::m_line_spans): New field.
17973 (layout::layout): Update comment. Replace m_first_line and
17974 m_last_line with m_line_spans, replacing their initialization
17975 with a call to calculate_line_spans.
17976 (diagnostic_show_locus): When printing source lines and
17977 annotations, rather than looping over a single span
17978 of lines, instead loop over each line_span within
17979 the layout, with an inner loop over the lines within them.
17980 Call the context's start_span callback when changing line spans.
17981 * diagnostic.c (diagnostic_initialize): Initialize start_span.
17982 (diagnostic_build_prefix): Break out the building of the location
17983 part of the string into...
17984 (diagnostic_get_location_text): ...this new function, rewriting
17985 it from nested ternary expressions to a sequence of "if"
17986 statements.
17987 (default_diagnostic_start_span_fn): New function.
17988 * diagnostic.h (diagnostic_start_span_fn): New typedef.
17989 (diagnostic_context::start_span): New field.
17990 (default_diagnostic_start_span_fn): New prototype.
17991
17992 2016-02-12 David Malcolm <dmalcolm@redhat.com>
17993
17994 PR driver/69779
17995 * gcc.c (driver::finalize): Fix cleanup of "specs".
17996
17997 2016-02-12 David Malcolm <dmalcolm@redhat.com>
17998
17999 PR driver/69265
18000 PR driver/69453
18001 * gcc.c (driver::driver): Initialize m_option_suggestions.
18002 (driver::~driver): Clean up m_option_suggestions.
18003 (suggest_option): Convert to...
18004 (driver::suggest_option): ...this, and split out into
18005 driver::build_option_suggestions and find_closest_string.
18006 (driver::build_option_suggestions): New function, from
18007 first half of suggest_option. Special-case
18008 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
18009 the sanitizer_opts array. For options of enum types, add the
18010 various enum values to the candidate strings.
18011 (driver::handle_unrecognized_options): Remove "const".
18012 * gcc.h (driver::handle_unrecognized_options): Likewise.
18013 (driver::build_option_suggestions): New decl.
18014 (driver::suggest_option): New decl.
18015 (driver::m_option_suggestions): New field.
18016 * opts-common.c (add_misspelling_candidates): New function.
18017 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
18018 and make non-static.
18019 * opts.h (sanitizer_opts): New array decl.
18020 (add_misspelling_candidates): New function decl.
18021 * spellcheck.c (find_closest_string): New function.
18022 * spellcheck.h (find_closest_string): New function decl.
18023
18024 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18025
18026 PR rtl-optimization/69764
18027 PR rtl-optimization/69771
18028 * optabs.c (expand_binop_directly): For shift_optab_p, force
18029 convert_modes with VOIDmode if xop1 has VOIDmode.
18030
18031 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
18032
18033 PR target/69729
18034 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
18035 to correctly determine instrumentation thunks.
18036
18037 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18038
18039 PR ipa/69241
18040 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
18041 type by reference, force lhs on the call.
18042
18043 PR ipa/68672
18044 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
18045 Compute retval and retbnd early in all cases if split_part_return_p
18046 and return_bb is not EXIT. Remove all clobber stmts and reset
18047 all debug stmts that refer to SSA_NAMEs defined in split part,
18048 except if it is retval, in that case replace the old retval with the
18049 lhs of the call to the split part.
18050
18051 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18052
18053 revert:
18054 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18055
18056 PR middle-end/66726
18057 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18058 whose result is used in PHI.
18059 (maybe_optimize_range_tests): Likewise.
18060 (final_range_test_p): Likweise.
18061
18062 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18063
18064 PR middle-end/66726
18065 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18066 whose result is used in PHI.
18067 (maybe_optimize_range_tests): Likewise.
18068 (final_range_test_p): Likweise.
18069
18070 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18071
18072 * cgraph.c: Spelling fixes - behaviour -> behavior and
18073 neighbour -> neighbor.
18074 * target.def: Likewise.
18075 * sel-sched.c: Likewise.
18076 * config/mips/mips.c: Likewise.
18077 * config/arc/arc.md: Likewise.
18078 * config/arm/cortex-a57.md: Likewise.
18079 * config/arm/arm.c: Likewise.
18080 * config/arm/neon.md: Likewise.
18081 * config/arm/arm-c.c: Likewise.
18082 * config/vms/vms-c.c: Likewise.
18083 * config/s390/s390.c: Likewise.
18084 * config/i386/znver1.md: Likewise.
18085 * config/i386/i386.c: Likewise.
18086 * config/ia64/hpux-unix2003.h: Likewise.
18087 * config/msp430/msp430.md: Likewise.
18088 * config/rx/rx.c: Likewise.
18089 * config/rx/rx.md: Likewise.
18090 * config/aarch64/aarch64-simd.md: Likewise.
18091 * config/aarch64/aarch64.c: Likewise.
18092 * config/nvptx/nvptx.c: Likewise.
18093 * config/bfin/bfin.c: Likewise.
18094 * config/cris/cris.opt: Likewise.
18095 * config/rs6000/rs6000.c: Likewise.
18096 * target.h: Likewise.
18097 * spellcheck.c: Likewise.
18098 * ira-build.c: Likewise.
18099 * tree-inline.c: Likewise.
18100 * builtins.c: Likewise.
18101 * lra-constraints.c: Likewise.
18102 * explow.c: Likewise.
18103 * hwint.h: Likewise.
18104 * targhooks.c: Likewise.
18105 * tree-vect-data-refs.c: Likewise.
18106 * expr.c: Likewise.
18107 * doc/tm.texi: Likewise.
18108 * doc/extend.texi: Likewise.
18109 * doc/install.texi: Likewise.
18110 * doc/md.texi: Likewise.
18111 * tree-ssa-tail-merge.c: Likewise.
18112 * sched-int.h: Likewise.
18113 * match.pd: Likewise.
18114 * sched-ebb.c: Likewise.
18115 * target.def (omit_struct_return_reg): Likewise.
18116 * gimple-ssa-isolate-paths.c: Likewise.
18117 (find_implicit_erroneous_behaviour): Renamed to...
18118 (find_implicit_erroneous_behavior): ... this.
18119 (find_explicit_erroneous_behaviour): Renamed to...
18120 (find_explicit_erroneous_behavior): ... this.
18121 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
18122
18123 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
18124
18125 PR rtl-optimization/64682
18126 PR rtl-optimization/69567
18127 PR rtl-optimization/69737
18128 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
18129 in I2 as well, just lose it.
18130
18131 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18132
18133 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
18134 New variable.
18135 (aarch64_last_printed_tune_string): Likewise.
18136 (aarch64_declare_function_name): Only output .arch assembler
18137 directive if it will be different from the previously output
18138 directive. Same for .tune comment but only if -dA is set.
18139 (aarch64_start_file): New function.
18140 (TARGET_ASM_FILE_START): Define.
18141
18142 2016-02-11 David Malcolm <dmalcolm@redhat.com>
18143
18144 PR plugins/69758
18145 * Makefile.in (PLUGIN_HEADERS): Add params.list.
18146
18147 2016-02-11 Jakub Jelinek <jakub@redhat.com>
18148
18149 PR target/65313
18150 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
18151 -Wmaybe-uninitialized warning.
18152
18153 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
18154
18155 PR target/69713
18156 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
18157
18158 2016-02-11 Richard Biener <rguenther@suse.de>
18159
18160 PR rtl-optimization/69291
18161 * ifcvt.c (noce_try_store_flag_constants): Do not allow
18162 subexpressions affected by changing the result.
18163
18164 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
18165
18166 PR target/69148
18167 * lra-constraints.c (curr_insn_transform): Find in/out operands
18168 for secondary memory moves. Update dups.
18169
18170 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
18171
18172 PR tree-optimization/69652
18173 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
18174 to nested loop, did source re-formatting, skip debug statements,
18175 add check on statement with volatile operand, remove dead scalar
18176 statements.
18177
18178 2016-02-10 Jakub Jelinek <jakub@redhat.com>
18179 Patrick Palka <ppalka@gcc.gnu.org>
18180
18181 PR ipa/69241
18182 PR c++/69649
18183 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
18184 calls if the return type is TREE_ADDRESSABLE.
18185 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
18186 * ipa-split.c (split_function): Fix doubled "we" in comment.
18187 Use void return type for the split part even if
18188 !split_point->split_part_set_retval.
18189
18190 2016-02-10 Bin Cheng <bin.cheng@arm.com>
18191
18192 PR tree-optimization/68021
18193 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
18194 when computing the value of biv cand by itself.
18195
18196 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
18197
18198 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
18199 (cortexa57_tunings): Likewise.
18200 (cortexa72_tunings): Likewise.
18201 (arch_macro_fusion_pair_p): Add support for AES fusion.
18202 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
18203 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18204 Allow virtual registers before reload so early scheduling works.
18205 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
18206 correct latency and pipeline.
18207 (cortex_a57_crypto_complex): Likewise.
18208 (cortex_a57_crypto_xor): Likewise.
18209 (define_bypass): Add AES bypass.
18210
18211 2016-02-10 Richard Biener <rguenther@suse.de>
18212
18213 PR tree-optimization/69726
18214 * passes.def: Add DCE pass before late uninit.
18215 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
18216 really fixup if-conversions job.
18217
18218 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
18219
18220 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
18221 (arm_cortex_a57_tune): Likewise.
18222 (aarch_macro_fusion_pair_p): Add support for AES fusion.
18223 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
18224
18225 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
18226
18227 * timevar.def (TV_PHASE_DBGINFO): Delete.
18228 (TV_PHASE_CHECK_DBGINFO): Likewise.
18229 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
18230
18231 2016-02-10 Richard Biener <rguenther@suse.de>
18232
18233 PR tree-optimization/69719
18234 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18235 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
18236
18237 2016-02-09 Andrew Pinski <apinski@cavium.com>
18238
18239 PR tree-opt/69282
18240 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
18241 get_vcond_mask_icode returns false.
18242
18243 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
18244
18245 PR target/68404
18246 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
18247 an ADDIS that adds a pointer to a large constant that sets the
18248 upper16 bits with a load operation.
18249
18250 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
18251
18252 PR target/68532
18253 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
18254 order.
18255 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
18256 endian.
18257 (vzipq_s16): Likewise.
18258 (vzipq_s32): Likewise.
18259 (vzipq_f32): Likewise.
18260 (vzipq_u8): Likewise.
18261 (vzipq_u16): Likewise.
18262 (vzipq_u32): Likewise.
18263 (vzipq_p8): Likewise.
18264 (vzipq_p16): Likewise.
18265
18266 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
18267
18268 PR target/68532
18269 * config/arm/arm.c (neon_endian_lane_map): New function.
18270 (neon_vector_pair_endian_lane_map): New function.
18271 (arm_evpc_neon_vuzp): Allow for big endian lane order.
18272 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
18273 endian.
18274 (vuzpq_s16): Likewise.
18275 (vuzpq_s32): Likewise.
18276 (vuzpq_f32): Likewise.
18277 (vuzpq_u8): Likewise.
18278 (vuzpq_u16): Likewise.
18279 (vuzpq_u32): Likewise.
18280 (vuzpq_p8): Likewise.
18281 (vuzpq_p16): Likewise.
18282
18283 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
18284
18285 PR target/69634
18286 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
18287 debug insns.
18288
18289 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
18290
18291 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
18292 truncate const_int operand 1 to QImode.
18293
18294 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
18295
18296 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
18297 corresponding to an abnormal edge.
18298
18299 2016-02-09 Tom de Vries <tom@codesourcery.com>
18300
18301 PR tree-optimization/69599
18302 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
18303 function.
18304 (find_func_aliases_for_builtin_call, find_func_clobbers)
18305 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
18306 partition.
18307
18308 2016-02-09 Richard Biener <rguenther@suse.de>
18309
18310 PR tree-optimization/69715
18311 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
18312 LHS on calls as non-rewritable.
18313
18314 2016-02-09 Tom de Vries <tom@codesourcery.com>
18315
18316 PR lto/69707
18317 * lto-wrapper.c (append_diag_options): New function.
18318 (compile_offload_image): Call append_diag_options.
18319
18320 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
18321
18322 PR other/69722
18323 * doc/extend.texi (Flag Output Operands): Correct sectioning.
18324 Minor copy-edit to fix verb tenses.
18325
18326 2016-02-08 Jakub Jelinek <jakub@redhat.com>
18327
18328 PR tree-optimization/69209
18329 * ipa-split.c (split_function): If split part is not
18330 returning retval, retval has gimple type but is not
18331 gimple value, force it into a SSA_NAME first.
18332
18333 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
18334
18335 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
18336 outdated section.
18337
18338 2016-02-08 Jason Merrill <jason@redhat.com>
18339
18340 PR c++/69631
18341 * convert.c (convert_to_integer_1): Check dofold on truncation
18342 distribution.
18343 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
18344 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
18345 Rename from *_nofold.
18346 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
18347 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
18348
18349 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
18350
18351 PR target/60410
18352 * tree.c (build_common_tree_nodes): Remove short_double argument.
18353 All callers changed.
18354 * tree.h (build_common_tree_nodes): Adjust declaration.
18355 * doc/invoke.texi (-fshort-double): Remove documentation.
18356 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
18357 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
18358 * lto-wrapper.c (merge_and_complain, append_compiler_options)
18359 (append_linker_options): Don't handle OPT_fshort_double.
18360
18361 PR rtl-optimization/68730
18362 * lra-remat.c (insn_to_cand_activation): New static variable.
18363 (lra_remat): Allocate and free it.
18364 (create_cand): New arg activation. Initialize a field in
18365 insn_to_cand_activation if it is nonnull.
18366 (create_cands): Pass the activation insn to create_cand when making
18367 a candidate involving an output reload. Reorganize code a little.
18368 (do_remat): Keep track of active status of candidates in a separate
18369 bitmap.
18370
18371 2016-02-08 Richard Biener <rguenther@suse.de>
18372
18373 PR tree-optimization/69719
18374 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18375 Properly use absolute of the difference of the two offsets to
18376 compare or adjust the segment length.
18377
18378 2016-02-08 Richard Biener <rguenther@suse.de>
18379 Jeff Law <law@redhat.com>
18380
18381 PR target/68273
18382 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
18383 types for anonymous SSA names.
18384
18385 2016-02-08 Richard Biener <rguenther@suse.de>
18386
18387 PR rtl-optimization/69274
18388 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
18389
18390 2016-02-08 Jeff Law <law@redhat.com>
18391
18392 PR tree-optimization/65917
18393 * tree-ssa-dom.c (record_temporary_equivalences): Record both
18394 equivalences from if (x == y) style conditionals.
18395 (loop_depth_of_name): Remove.
18396 (record_equality): Remove loop depth check.
18397 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
18398 (const_and_copies::record_const_or_copy_raw): New member function.
18399 * tree-ssa-scopedtables.c
18400 (const_and_copies::record_const_or_copy_raw): New, factored out of
18401 (const_and_copies::record_const_or_copy): Call new member function.
18402
18403 2016-02-05 Jeff Law <law@redhat.com>
18404
18405 PR tree-optimization/68541
18406 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
18407 (count_stmts_in_block): New function.
18408 (poor_ifcvt_candidate_code): Likewise.
18409 (is_feasible_trace): Add some heuristics to determine when path
18410 splitting is profitable.
18411 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
18412 is a diamond with a single exit.
18413
18414 2016-02-05 Martin Sebor <msebor@redhat.com>
18415
18416 PR c++/69662
18417 * doc/invoke.texi: Update -Wplacement-new to take an optional
18418 argument.
18419
18420 2016-02-06 Richard Henderson <rth@redhat.com>
18421
18422 PR c/69643
18423 * tree.c (tree_nop_conversion_p): Do not strip casts into or
18424 out of non-standard address spaces.
18425
18426 2016-02-05 Jakub Jelinek <jakub@redhat.com>
18427
18428 PR rtl-optimization/69691
18429 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
18430
18431 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
18432
18433 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
18434 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
18435 (*ieee128_mfvsrd_64bit): Likewise.
18436 (*ieee128_mfvsrd_32bit): Likewise.
18437
18438 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
18439
18440 PR target/69369
18441 Revert r232560:
18442 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
18443
18444 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
18445 instrumented_version.
18446
18447 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
18448
18449 * doc/invoke.texi (Optimize Options): In table of --param options
18450 rename second occurrence of tracer-min-branch-ratio to
18451 tracer-min-branch-probability, rename
18452 tracer-min-branch-ratio-feedback to
18453 tracer-min-branch-probability-feedback and clarify description,
18454 rename sched-spec-state-edge-prob-cutoff to
18455 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
18456 to selsched-insns-to-rename, rename lto-minpartition to
18457 lto-min-partition, delete reorder-blocks-duplicate and
18458 reorder-blocks-duplicate-feedback.
18459
18460 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18461
18462 * config/s390/s390.c (s390_register_info_set_ranges): Remove
18463 superfluous loops.
18464
18465 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
18466
18467 * doc/extend.texi: S/390: Correct some typos.
18468
18469 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18470
18471 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
18472
18473 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18474
18475 PR target/69625
18476 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
18477 (s390_register_info_gprtofpr): Use new macros above.
18478 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
18479 its name.
18480 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
18481 its name. Adjust restore and save gpr ranges.
18482 (s390_register_info_set_ranges): New function.
18483 (s390_register_info): Use new macros above. Call
18484 s390_register_info_set_ranges.
18485 (s390_optimize_register_info): Likewise.
18486 (s390_hard_regno_rename_ok): Use new macros.
18487 (s390_hard_regno_scratch_ok): Likewise.
18488 (s390_emit_epilogue): Likewise.
18489 (s390_can_use_return_insn): Likewise.
18490 (s390_optimize_prologue): Likewise.
18491 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
18492
18493 2016-02-05 Jakub Jelinek <jakub@redhat.com>
18494
18495 PR bootstrap/69677
18496 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
18497 alignment fixes.
18498 (ix86_option_override_internal): Disable TARGET_STV even for
18499 -m{incoming,preferred}-stack-boundary=3.
18500
18501 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18502
18503 * config.gcc: Mark deprecated rtems targets as obsolete.
18504
18505 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
18506
18507 PR rtl-optimization/64682
18508 PR rtl-optimization/69567
18509 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
18510 before I2 only if the register is both used and set in I2.
18511
18512 2016-02-04 DJ Delorie <dj@redhat.com>
18513
18514 * config/msp430/msp430.c (msp430_start_function): Add function type.
18515
18516 2016-02-04 Jakub Jelinek <jakub@redhat.com>
18517
18518 PR fortran/69368
18519 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
18520
18521 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
18522
18523 PR rtl-optimization/69577
18524 Revert:
18525 2015-10-29 Richard Henderson <rth@redhat.com>
18526
18527 PR target/68124
18528 PR rtl-opt/67609
18529 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
18530 sse check to the exact conditions of PR 67609.
18531
18532 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
18533
18534 PR target/69667
18535 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
18536 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
18537 not allowed into the traditional Altivec registers.
18538 (movtd_64bit_nodm): Likewise.
18539 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
18540
18541 2016-02-04 David Malcolm <dmalcolm@redhat.com>
18542
18543 * config/aarch64/cortex-a57-fma-steering.c
18544 (aarch64_register_fma_steering): Remove "static" from arguments
18545 to register_pass.
18546
18547 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
18548
18549 PR target/69619
18550 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
18551 twice when complex.
18552
18553 2016-02-04 Mike Frysinger <vapier@gentoo.org>
18554
18555 * doc/invoke.texi: Delete -mno-fma4.
18556
18557 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
18558
18559 PR rtl-optimization/69577
18560 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
18561 (find_subregs_of_mode): Update accordingly. Iterate over partial
18562 definitions.
18563
18564 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
18565
18566 * config/arm/arm-protos.h (neon_reinterpret): Remove.
18567 * config/arm/arm.c (neon_reinterpret): Remove.
18568 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
18569 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
18570 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
18571 vreinterpretti): Remove.
18572 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
18573 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
18574 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
18575 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
18576 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
18577 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
18578 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
18579 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
18580 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
18581 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
18582 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
18583 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
18584 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
18585 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
18586 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
18587 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
18588 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
18589 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
18590 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
18591 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
18592 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
18593 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
18594 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
18595 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
18596 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
18597 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
18598 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
18599 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
18600 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
18601 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
18602 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
18603 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
18604 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
18605 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
18606 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
18607 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
18608 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
18609 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
18610 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
18611 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
18612 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
18613 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
18614 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
18615 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
18616 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
18617 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
18618 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
18619 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
18620 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
18621 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
18622 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
18623 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
18624 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
18625 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
18626 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
18627 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
18628 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
18629 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
18630 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
18631 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
18632 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
18633 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
18634 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
18635 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
18636 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
18637 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
18638 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
18639 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
18640 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
18641 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
18642 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
18643 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
18644 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
18645 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
18646 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
18647 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
18648 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
18649 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
18650 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
18651 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
18652 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
18653 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
18654 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
18655 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
18656 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
18657 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
18658 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
18659 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
18660 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
18661 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
18662 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
18663 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
18664 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
18665 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
18666 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
18667 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
18668 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
18669 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
18670 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
18671 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
18672 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
18673 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
18674 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
18675
18676 2016-02-04 Martin Liska <mliska@suse.cz>
18677
18678 PR sanitizer/69276
18679 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
18680 that are gimple_store_p.
18681 (maybe_instrument_call): Likewise.
18682
18683 2016-02-04 Bin Cheng <bin.cheng@arm.com>
18684
18685 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
18686 register scaling out of memory reference and comment why.
18687
18688 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18689
18690 PR target/65932
18691 PR target/67714
18692 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
18693 folding the source of a SET.
18694
18695 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18696
18697 PR target/65932
18698 PR target/67714
18699 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
18700 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
18701
18702 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
18703
18704 PR target/65932
18705 PR target/67714
18706 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
18707 HImode.
18708
18709 2016-02-04 Christian Bruel <christian.bruel@st.com>
18710
18711 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
18712 * config/arm/arm.c (arm_set_current_function): Likewise.
18713
18714 2016-02-04 Jakub Jelinek <jakub@redhat.com>
18715 Ilya Enkovich <enkovich.gnu@gmail.com>
18716 H.J. Lu <hongjiu.lu@intel.com>
18717
18718 PR target/69454
18719 * config/i386/i386.c (convert_scalars_to_vector): Remove
18720 stack alignment fixes.
18721 (ix86_option_override_internal): Disable TARGET_STV if stack
18722 might not be aligned enough.
18723 (ix86_minimum_alignment): Assert that TARGET_STV is false.
18724
18725 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
18726
18727 * config/i386/x86-tune.def: Disable default prefetching
18728 for -march=znver1.
18729
18730 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
18731 Vladimir Makarov <vmakarov@redhat.com>
18732
18733 PR target/69461
18734 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
18735 in validating fused toc addresses.
18736
18737 2016-02-03 Jakub Jelinek <jakub@redhat.com>
18738
18739 PR c/69627
18740 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
18741 range->m_caret fields if range->m_show_caret_p is false.
18742
18743 PR target/69644
18744 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
18745 Force oldval into register if it does not satisfy reg_or_short_operand
18746 predicate. Fix up formatting.
18747
18748 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
18749 Alexandre Oliva <aoliva@redhat.com>
18750
18751 PR target/69461
18752 * lra-constraints.c (simplify_operand_subreg): Check additionally
18753 address validity after potential reloading.
18754 (process_address_1): Check insns validity. In case of failure do
18755 nothing.
18756
18757 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
18758
18759 PR target/69118
18760 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
18761 Fix target.
18762
18763 2016-02-02 Jakub Jelinek <jakub@redhat.com>
18764
18765 * wide-int.cc (canonize_uhwi): New function.
18766 (wi::divmod_internal): Use it.
18767
18768 2016-02-02 James Norris <jnorris@codesourcery.com
18769
18770 * gimplify.c (omp_notice_variable): Add usage check.
18771
18772 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
18773
18774 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
18775 like LE, GE, LT, GT when emitting relational operator.
18776
18777 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
18778
18779 * ira-costs.c (find_costs_and_classes): Add extra argument.
18780 * target.def (ira_change_pseudo_allocno_class): Add parameter.
18781 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
18782 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
18783 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
18784 Add best_class parameter, and return it if not ALL_REGS.
18785 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
18786 Add parameter.
18787 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
18788 Update target hook.
18789
18790 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
18791
18792 * config/aarch64/aarch64.c
18793 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
18794 (aarch64_ira_change_pseudo_allocno_class): New function.
18795
18796 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
18797
18798 PR target/67032
18799 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
18800
18801 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18802
18803 * config/avr/avr.c (avr_option_override): Set
18804 PARAM_ALLOW_STORE_DATA_RACES to 1.
18805
18806 2016-02-02 Richard Biener <rguenther@suse.de>
18807
18808 PR tree-optimization/69595
18809 * match.pd: Add range test simplifications to true/false.
18810
18811 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
18812
18813 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
18814 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
18815 instead.
18816
18817 2016-02-02 Richard Biener <rguenther@suse.de>
18818
18819 PR tree-optimization/69606
18820 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
18821 info on the result before moving a stmt.
18822
18823 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
18824
18825 PR middle-end/68542
18826 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
18827 branch with vector comparison.
18828 * config/i386/sse.md (VI48_AVX): New mode iterator.
18829 (define_expand "cbranch<mode>4): Add support for conditional branch
18830 with vector comparison.
18831 * tree-vect-loop.c (optimize_mask_stores): New function.
18832 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
18833 has_mask_store field of vect_info.
18834 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
18835 vectorized loops having masked stores after vec_info destroy.
18836 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
18837 correspondent macros.
18838 (optimize_mask_stores): Add prototype.
18839
18840 2016-02-02 Alan Modra <amodra@gmail.com>
18841
18842 PR target/69548
18843 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
18844 allow subregs.
18845
18846 2016-02-02 Alan Modra <amodra@gmail.com>
18847
18848 PR target/68662
18849 * config/rs6000/rs6000.c (need_toc_init): New var, set it
18850 whenever toc_label_name used.
18851 (rs6000_file_start): Don't set up toc section here,
18852 (rs6000_output_function_epilogue): do so here instead,
18853 (rs6000_xcoff_file_start): and here.
18854 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
18855 (load_toc_aix_di): Likewise.
18856
18857 2016-02-01 Jakub Jelinek <jakub@redhat.com>
18858
18859 PR rtl-optimization/69592
18860 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
18861 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
18862 (num_sign_bit_copies_binary_arith_p): New inline function.
18863 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
18864
18865 2016-02-01 Jeff Law <law@redhat.com>
18866
18867 PR tree-optimization/69580
18868 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
18869 * tree-ssa-threadbackward.c
18870 (fsm_find_control_statement_thread_paths): Do not try to walk
18871 through large PHI nodes.
18872
18873 2016-02-01 Jakub Jelinek <jakub@redhat.com>
18874
18875 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
18876 when count is incremented above limit, don't analyze further
18877 insns afterwards.
18878
18879 * omp-low.c (oacc_parse_default_dims): Avoid
18880 -Wsign-compare warning, make sure value fits into int
18881 rather than just unsigned int.
18882
18883 2016-02-01 Bin Cheng <bin.cheng@arm.com>
18884
18885 PR tree-optimization/67921
18886 * fold-const.c (split_tree): New parameters. Convert pointer
18887 type variable part to proper type before negating.
18888 (fold_binary_loc): Pass new arguments to split_tree.
18889
18890 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
18891
18892 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
18893 (nvptx_goacc_validate_dims): Extend to handle global defaults.
18894 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
18895 * doc/tm.texti: Rebuilt.
18896 * doc/invoke.texi (fopenacc-dim): Document.
18897 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
18898 (append_compiler_options): Likewise.
18899 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
18900 (oacc_parse_default_dims): New.
18901 (oacc_validate_dims): Add USED arg. Select non-unity default when
18902 possible.
18903 (oacc_loop_fixed_partitions): Return mask of used partitions.
18904 (oacc_loop_auto_partitions): Emit dump info.
18905 (oacc_loop_partition): Return mask of used partitions.
18906 (execute_oacc_device_lower): Parse default dimension arg. Adjust
18907 loop partitioning and validation calls.
18908
18909 2016-02-01 Richard Biener <rguenther@suse.de>
18910
18911 PR middle-end/69556
18912 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
18913
18914 2016-02-01 Richard Biener <rguenther@suse.de>
18915
18916 PR tree-optimization/69574
18917 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
18918 of asserting return chrec_dont_know.
18919
18920 2016-02-01 Martin Liska <mliska@suse.cz>
18921
18922 * mem-stats-traits.h: Add copyright header.
18923 * mem-stats.h: Likewise.
18924
18925 2016-02-01 Richard Biener <rguenther@suse.de>
18926
18927 PR tree-optimization/69579
18928 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
18929 Do not propagate through abnormal PHI results.
18930
18931 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
18932
18933 * postreload.c (reload_cse_simplify): Remove dead code.
18934
18935 2016-02-01 Jakub Jelinek <jakub@redhat.com>
18936
18937 PR rtl-optimization/69570
18938 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
18939 if there is more than one set, not if there is a single set.
18940
18941 2016-02-01 Richard Henderson <rth@redhat.com>
18942
18943 PR rtl-opt/69535
18944 * combine.c (make_compound_operation): When looking through a
18945 subreg, make sure to re-extend to the width of the outer mode.
18946
18947 2016-01-30 Jakub Jelinek <jakub@redhat.com>
18948
18949 PR tree-optimization/69546
18950 * wide-int.cc (wi::divmod_internal): For unsigned division
18951 where both operands fit into uhwi, if o1 is 1 and o0 has
18952 msb set, if divident_prec is larger than bits per hwi,
18953 clear another quotient word and return 2 instead of 1.
18954 Similarly for remainder with msb in HWI set, if dividend_prec
18955 is larger than bits per hwi.
18956
18957 2016-01-29 Martin Jambor <mjambor@suse.cz>
18958
18959 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
18960 Use short lowercase names.
18961 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
18962 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
18963 acq_rel one. Protect warning agains segfaults if
18964 get_memory_order_name returns NULL.
18965 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
18966 with release semantics. Do not warn if get_memory_order already did.
18967 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
18968 semantics. Fix check for relaxed or acquire semantics. Do not warn
18969 if get_memory_order already did.
18970
18971 2016-01-29 Sebastian Pop <s.pop@samsung.com>
18972
18973 * doc/install.texi: Document that isl-0.16 is supported.
18974
18975 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
18976
18977 PR target/69299
18978 * config/i386/constraints.md (Bm): Describe as special memory
18979 constraint.
18980 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
18981 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
18982 * genpreds.c (struct constraint_data): Add is_special_memory.
18983 (have_special_memory_constraints, special_memory_start): New
18984 static vars.
18985 (special_memory_end): Ditto.
18986 (add_constraint): Add new arg is_special_memory. Add code to
18987 process its true value. Update have_special_memory_constraints.
18988 (process_define_constraint): Pass the new arg.
18989 (process_define_register_constraint): Ditto.
18990 (choose_enum_order): Process special memory.
18991 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
18992 function insn_extra_special_memory_constraint.
18993 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
18994 * gensupport.c (process_rtx): Process
18995 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
18996 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
18997 * ira-lives.c (single_reg_class): Use
18998 insn_extra_special_memory_constraint.
18999 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
19000 * lra-constraints.c (process_alt_operands): Ditto.
19001 (curr_insn_transform): Use insn_extra_special_memory_constraint.
19002 * recog.c (asm_operand_ok, preprocess_constraints): Process
19003 CT_SPECIAL_MEMORY.
19004 * reload.c (find_reloads): Ditto.
19005 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
19006 * stmt.c (parse_input_constraint): Use
19007 insn_extra_special_memory_constraint.
19008
19009 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19010
19011 PR target/69530
19012 * lra-splill.c (lra_final_code_change): Revert r229087 by
19013 removing all sub-registers.
19014
19015 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
19016
19017 PR target/65604
19018 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
19019
19020 2016-01-29 Jakub Jelinek <jakub@redhat.com>
19021
19022 PR target/69551
19023 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
19024 SSE1, copy target into the temporary reg first before recursing
19025 on it.
19026
19027 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19028
19029 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
19030 with vm.
19031
19032 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19033
19034 * ginclude/stdarg.h: Test __cplusplus instead of
19035 __GXX_EXPERIMENTAL_CXX0X__.
19036
19037 2016-01-29 Richard Biener <rguenther@suse.de>
19038
19039 PR tree-optimization/69547
19040 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
19041 Do not mark clobbers necessary.
19042 (mark_all_reaching_defs_necessary_1): Likewise.
19043
19044 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19045
19046 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
19047 declaration name with %qs and print it in both error messages.
19048 Also fix indentation.
19049
19050 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19051
19052 PR other/69006
19053 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
19054 trailing blank line from error message.
19055
19056 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19057
19058 PR c++/69462
19059 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
19060 for C++-11.
19061
19062 2016-01-29 Richard Biener <rguenther@suse.de>
19063
19064 PR middle-end/69537
19065 * match.pd: Allow all integral types when simplifying a
19066 widening or sign-changing conversion.
19067
19068 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19069
19070 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
19071 back to setting codegen_error to fail codegen.
19072
19073 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
19074
19075 PR target/69459
19076 * config/i386/constraints.md (C): Only accept constant zero operand.
19077 (BC): New constraint.
19078 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
19079 instead of C constraint.
19080 * doc/md.texi (Machine Constraints): Update description
19081 of C constraint.
19082
19083 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
19084
19085 PR target/68400
19086 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
19087
19088 2016-01-28 Jakub Jelinek <jakub@redhat.com>
19089
19090 PR middle-end/69542
19091 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
19092 non-debug insns.
19093
19094 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
19095
19096 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
19097 branches if using guessed profile.
19098
19099 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
19100
19101 * graphite-optimize-isl.c (optimize_isl): Fix dump.
19102
19103 2016-01-28 Richard Henderson <rth@redhat.com>
19104
19105 PR target/69305
19106 * config/aarch64/aarch64-modes.def (CC_Cmode): New
19107 * config/aarch64/aarch64-protos.h: Update.
19108 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
19109 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
19110 (aarch64_get_condition_code_1): Handle CC_Cmode.
19111 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
19112 (*add<mode>3_compareC_cconly_imm): New.
19113 (*add<mode>3_compareC_cconly): New.
19114 (*add<mode>3_compareC_imm): New.
19115 (add<mode>3_compareC): New.
19116 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
19117 to be first. Use aarch64_carry_operation.
19118 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
19119 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
19120 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
19121 (subti3): Use subdi3_compare1.
19122 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
19123 (sub<mode>3_compare1): New.
19124 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
19125 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
19126 (*subsi3_carryin_uxtw): Likewise.
19127 (*ngc<mode>, *ngcsi_uxtw): Likewise.
19128 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
19129 * config/aarch64/iterators.md (DWI): New.
19130 * config/aarch64/predicates.md (aarch64_carry_operation): New.
19131 (aarch64_borrow_operation): New.
19132
19133 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
19134
19135 * graphite-optimize-isl.c (optimize_isl): Print a different debug
19136 message when isl does not return a valid schedule.
19137
19138 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19139
19140 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
19141 Remove comments from class declarations: they are already in the code
19142 close by the defs.
19143
19144 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19145
19146 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
19147 codegen_error_p.
19148 (ternary_op_to_tree): Same.
19149 (unary_op_to_tree): Same.
19150 (nary_op_to_tree): Same.
19151 (gcc_expression_from_isl_expr_op): Same.
19152 (gcc_expression_from_isl_expression): Same.
19153 (graphite_create_new_loop): Same.
19154 (graphite_create_new_loop_guard): Same.
19155 (build_iv_mapping): Same.
19156 (graphite_create_new_guard): Same.
19157 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
19158 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
19159
19160 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19161
19162 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
19163 instead of setting codegen_error to fail codegen.
19164
19165 2016-01-28 Jason Merrill <jason@redhat.com>
19166
19167 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
19168
19169 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19170
19171 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
19172 Remove CONST_INT_P check in CCMP cost calculation.
19173
19174 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19175
19176 * config/aarch64/aarch64.c (generic_vector_cost):
19177 Set vec_permute_cost.
19178 (cortexa57_vector_cost): Likewise.
19179 (exynosm1_vector_cost): Likewise.
19180 (xgene1_vector_cost): Likewise.
19181 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
19182 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
19183 Add vec_permute_cost entry.
19184
19185 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19186
19187 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
19188 immediate as %1.
19189 (add<mode>3_compare0): Likewise.
19190 (addsi3_compare0_uxtw): Likewise.
19191 (add<mode>3nr_compare0): Likewise.
19192 (compare_neg<mode>): Likewise.
19193 (<optab><mode>3): Likewise.
19194
19195 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
19196
19197 * tree-vect-stmts.c (vectorizable_comparison): Add
19198 NULL check for vectype.
19199
19200 2016-01-28 Richard Biener <rguenther@suse.de>
19201
19202 PR tree-optimization/69466
19203 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
19204 Account for PHIs we couldn't duplicate.
19205
19206 2016-01-28 Martin Liska <mliska@suse.cz>
19207
19208 PR pch/68758
19209 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
19210 instead of ENABLE_VALGRIND_CHECKING.
19211
19212 2016-01-27 Richard Henderson <rth@redhat.com>
19213
19214 PR rtl-opt/69447
19215 * lra-remat.c (subreg_regs): New.
19216 (dump_candidates_and_remat_bb_data): Dump it.
19217 (operand_to_remat): Reject if operand in subreg_regs.
19218 (set_bb_regs): Collect subreg_regs.
19219 (lra_remat): Init and free subreg_regs. Compute
19220 calculate_local_reg_remat_bb_data before create_cands.
19221
19222 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
19223
19224 PR target/68986
19225 * config/i386/i386.c (ix86_update_stack_boundary): Don't
19226 change stack_alignment_needed for __tls_get_addr call.
19227
19228 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
19229
19230 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
19231
19232 2016-01-27 Jeff Law <law@redhat.com>
19233
19234 PR tree-optimization/68398
19235 PR tree-optimization/69196
19236 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
19237 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
19238 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19239 Only count PHIs in the last block in the path. The others will
19240 const/copy propagate away. Add heuristic to allow more irreducible
19241 subloops to be created when it is likely profitable to do so.
19242
19243 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19244 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
19245 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
19246
19247 2016-01-27 Jakub Jelinek <jakub@redhat.com>
19248
19249 PR lto/69254
19250 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
19251 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
19252 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
19253 * tree-streamer-in.c: Include asan.h.
19254 (streamer_get_builtin_tree): For builtins in sanitizer
19255 range call initialize_sanitizer_builtins and retry.
19256
19257 2016-01-27 Ian Lance Taylor <iant@google.com>
19258
19259 * common.opt (fkeep-gc-roots-live): New undocumented option.
19260 * tree-ssa-loop-ivopts.c (add_candidate_1): If
19261 -fkeep-gc-roots-live, skip pointers.
19262 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
19263 NULL.
19264
19265 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
19266
19267 PR target/69512
19268 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
19269 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
19270
19271 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
19272
19273 PR target/68380
19274 * configure.ac: NetBSD provides SSP in its C library.
19275 * configure: Updated.
19276
19277 2016-01-27 Richard Biener <rguenther@suse.de>
19278
19279 PR tree-optimization/69166
19280 * tree-vect-loop.c (vect_is_simple_reduction): Always check
19281 reduction code for commutativity / associativity.
19282
19283 2016-01-27 Martin Jambor <mjambor@suse.cz>
19284
19285 PR tree-optimization/69355
19286 * tree-sra.c (analyze_access_subtree): Correct hole detection when
19287 total_scalarization fails.
19288
19289 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
19290
19291 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
19292 power9.
19293
19294 2016-01-27 Christian Bruel <christian.bruel@st.com>
19295
19296 PR target/69245
19297 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
19298 Move arm_reset_previous_fndecl and set_target_option_current_node in
19299 the conditional part. Call save_restore_target_globals.
19300 * config/arm/arm.c (arm_set_current_function):
19301 Refactor to better support #pragma target and attribute mix.
19302 Call save_restore_target_globals.
19303 * config/arm/arm-protos.h (save_restore_target_globals): New function.
19304
19305 2016-01-27 Martin Liska <mliska@suse.cz>
19306
19307 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
19308 reference for an HSA kernel and its host function.
19309
19310 2016-01-27 Jakub Jelinek <jakub@redhat.com>
19311
19312 PR tree-optimization/69399
19313 * wide-int.h (wi::lrshift): For larger precisions, only
19314 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
19315
19316 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
19317
19318 * config/arc/predicates.md (proper_comparison_operator): Reject
19319 constant-constant comparison.
19320
19321 2016-01-26 Tom de Vries <tom@codesourcery.com>
19322
19323 PR tree-optimization/69110
19324 * tree-data-ref.c (initialize_data_dependence_relation): Handle
19325 DR_NUM_DIMENSIONS == 0.
19326
19327 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
19328 Sebastian Pop <s.pop@samsung.com>
19329
19330 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
19331 isl_ast_op_cond and isl_ast_op_select.
19332 (gcc_expression_from_isl_expr_op): Same.
19333
19334 2016-01-26 Jason Merrill <jason@redhat.com>
19335
19336 PR c++/68782
19337 * tree.c (recompute_constructor_flags): Split out from
19338 build_constructor.
19339 (verify_constructor_flags): New.
19340 * tree.h: Declare them.
19341
19342 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
19343
19344 PR rtl-optimization/69217
19345 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
19346 are no TYPE_FIELDS set for the record type.
19347
19348 2016-01-26 Jakub Jelinek <jakub@redhat.com>
19349
19350 PR target/68662
19351 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
19352 toc_label_name unconditionally.
19353 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
19354 SYMBOL_REF string. Use toc_label_name instead of constructing
19355 LCTOC1.
19356 (rs6000_elf_declare_function_name): Use toc_label_name instead of
19357 constructing LCTOC1.
19358
19359 2016-01-26 Martin Sebor <msebor@redhat.com>
19360
19361 PR other/69477
19362 * doc/extend.texi (Common Type Attributes): Move text that talks about
19363 attribute packed from attribute aligned to the section discussing
19364 the former attribute for clarity.
19365
19366 2016-01-26 Richard Henderson <rth@redhat.com>
19367
19368 PR middle-end/60908
19369 * trans-mem.c (tm_region_init): Mark entry block as visited.
19370
19371 2016-01-26 David Malcolm <dmalcolm@redhat.com>
19372
19373 PR other/69006
19374 * diagnostic-show-locus.c (layout::print_source_line): Replace
19375 call to pp_newline with call to layout::print_newline.
19376 (layout::print_annotation_line): Likewise.
19377 (layout::move_to_column): Likewise.
19378 (layout::print_any_fixits): After printing any fixits, print a
19379 trailing newline, if necessary.
19380 (layout::print_newline): New method, resetting any colorization
19381 before a newline.
19382 (diagnostic_show_locus): Move the pp_newline to before the
19383 early bailout. Remove dummy block enclosing the layout instance.
19384 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
19385 of pp_newline_and_flush with pp_flush.
19386 (diagnostic_append_note): Delete use of pp_newline.
19387 (diagnostic_append_note_at_rich_loc): Delete.
19388 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
19389 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
19390 when newline characters are added to the buffer.
19391
19392 2016-01-26 Michael Matz <matz@suse.de>
19393
19394 * configure.ac (ac_cv_std_swap_in_utility): New test.
19395 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
19396 * configure: Regenerate.
19397 * config.in: Regenerate.
19398
19399 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
19400
19401 * config/arc/arc.md (cstoresi4): Force operand into register.
19402 (arcset<code>): Fix predicate.
19403 (arcsetltu): Likewise.
19404 (arcsetgeu): Likewise.
19405 (arcsethi): Likewise.
19406 (arcsetls): Likewise.
19407
19408 2016-01-26 Jakub Jelinek <jakub@redhat.com>
19409
19410 PR tree-optimization/69483
19411 * gimple-fold.c (canonicalize_constructor_val): Return NULL
19412 if base has error_mark_node type.
19413
19414 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
19415
19416 PR target/68620
19417 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
19418 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
19419 New helper macros.
19420 (vget_lane_f16): Handle big-endian.
19421 (vgetq_lane_f16): Likewise.
19422 (vset_lane_f16): Likewise.
19423 (vsetq_lane_f16): Likewise.
19424 * config/arm/iterators.md (VQXMOV): Add V8HF.
19425 (VDQ): Add V4HF and V8HF.
19426 (V_reg): Handle V4HF and V8HF.
19427 (Is_float_mode): Likewise.
19428 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
19429 neon_vdup_nv8hf): New patterns.
19430 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
19431 Use VD_LANE iterator.
19432 (neon_vld1_dup<mode>): Use VQ2 iterator.
19433
19434 2016-01-26 Nathan Sidwell <nathan@acm.org>
19435
19436 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
19437 (set_oacc_fn_attrib): Add IS_KERNEL arg.
19438 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
19439 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
19440 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
19441 (oacc_validate_dims): Add LEVEL arg, don't return level.
19442 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
19443 oacc_validate_dims.
19444 (execute_oacc_device_lower): Adjust, add more dump output.
19445 * tree-ssa-loop.c (gate_oacc_kernels): Use
19446 oacc_fn_attrib_kernels_p.
19447 * tree-parloops.c (create_parallel_loop): Adjust
19448 set_oacc_fn_attrib call.
19449
19450 2016-01-26 Jakub Jelinek <jakub@redhat.com>
19451
19452 PR lto/69254
19453 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
19454 (append_compiler_options): Handle -fcilkplus.
19455 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
19456
19457 2016-01-26 Nick Clifton <nickc@redhat.com>
19458
19459 PR target/66655
19460 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
19461 been marked as DECL_ONE_ONLY but we do not the means to make it
19462 so, then do not allow it to bind locally.
19463
19464 2016-01-26 Jakub Jelinek <jakub@redhat.com>
19465
19466 PR lto/69254
19467 * opts.h (parse_sanitizer_options): New prototype.
19468 * opts.c (sanitizer_opts): New array.
19469 (parse_sanitizer_options): New function.
19470 (common_handle_option): Use parse_sanitizer_options.
19471
19472 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
19473
19474 PR target/68986
19475 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
19476 alignment adjustment to ...
19477 (ix86_update_stack_boundary): Here. Don't over-align stack for
19478 __tls_get_addr.
19479 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
19480 if __tls_get_addr is called.
19481
19482 2016-01-26 Christian Bruel <christian.bruel@st.com>
19483
19484 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
19485
19486 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
19487
19488 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
19489
19490 2016-01-26 Richard Biener <rguenther@suse.de>
19491
19492 PR middle-end/69467
19493 * match.pd: Guard X * CST CMP 0 pattern with single_use.
19494
19495 2016-01-26 Richard Biener <rguenther@suse.de>
19496
19497 PR tree-optimization/69452
19498 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
19499 (move_computations_dom_walker::before_dom_children): Rename
19500 to ...
19501 (move_computations_worker): This.
19502 (move_computations): Perform an RPO rather than a DOM walk.
19503
19504 2016-01-26 Jakub Jelinek <jakub@redhat.com>
19505
19506 PR target/69442
19507 * combine.c (combine_instructions): For REG_EQUAL note with
19508 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
19509 to the underlying register.
19510 * doc/rtl.texi (REG_EQUAL): Document the behavior of
19511 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
19512
19513 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
19514
19515 PR target/67896
19516 * config/aarch64/aarch64-builtins.c
19517 (aarch64_init_simd_builtin_types): Do not set structural
19518 equality to __Poly{8,16,64,128}_t types.
19519
19520 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
19521
19522 PR tree-optimization/69400
19523 * wide-int.cc (wi_pack): Take the precision as argument and
19524 perform canonicalization here rather than in the callers.
19525 Use the main loop to handle all full-width HWIs. Add a
19526 zero HWI if in_len isn't a full result.
19527 (wi::divmod_internal): Update accordingly.
19528 (wi::mul_internal): Likewise. Simplify.
19529
19530 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
19531 Sebastian Pop <s.pop@samsung.com>
19532
19533 * graphite-poly.c (apply_poly_transforms): Simplify.
19534 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
19535 (print_isl_map): Same.
19536 (print_isl_union_map): Same.
19537 (print_isl_schedule): New.
19538 (debug_isl_schedule): New.
19539 * graphite-dependences.c (scop_get_reads): Do not call
19540 isl_union_map_add_map that is undocumented isl functionality.
19541 (scop_get_must_writes): Same.
19542 (scop_get_may_writes): Same.
19543 (scop_get_original_schedule): Remove.
19544 (scop_get_dependences): Do not call isl_union_map_compute_flow that
19545 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
19546 (compute_deps): Remove.
19547 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
19548 (debug_schedule_ast): New.
19549 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
19550 set_separate_option.
19551 (graphite_regenerate_ast_isl): Add dump.
19552 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
19553 from scop->transformed_schedule.
19554 (graphite_regenerate_ast_isl): Add more dump.
19555 * graphite-optimize-isl.c (optimize_isl): Set
19556 scop->transformed_schedule. Check whether schedules are equal.
19557 (apply_poly_transforms): Move here.
19558 * graphite-poly.c (apply_poly_transforms): ... from here.
19559 (free_poly_bb): Static.
19560 (free_scop): Static.
19561 (pbb_number_of_iterations_at_time): Remove.
19562 (print_isl_ast): New.
19563 (debug_isl_ast): New.
19564 (debug_scop_pbb): New.
19565 * graphite-scop-detection.c (print_edge): Move.
19566 (print_sese): Move.
19567 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
19568 (build_scop_scattering): Remove.
19569 (create_pw_aff_from_tree): Assert instead of bailing out.
19570 (add_condition_to_pbb): Remove unused code, do not fail.
19571 (add_conditions_to_domain): Same.
19572 (add_conditions_to_constraints): Remove.
19573 (build_scop_context): New.
19574 (add_iter_domain_dimension): New.
19575 (build_iteration_domains): Initialize pbb->iterators.
19576 Call add_conditions_to_domain.
19577 (nested_in): New.
19578 (loop_at): New.
19579 (index_outermost_in_loop): New.
19580 (index_pbb_in_loop): New.
19581 (outermost_pbb_in): New.
19582 (add_in_sequence): New.
19583 (add_outer_projection): New.
19584 (outer_projection_mupa): New.
19585 (add_loop_schedule): New.
19586 (build_schedule_pbb): New.
19587 (build_schedule_loop): New.
19588 (embed_in_surrounding_loops): New.
19589 (build_schedule_loop_nest): New.
19590 (build_original_schedule): New.
19591 (build_poly_scop): Call build_original_schedule.
19592 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
19593 (free_poly_dr): Remove.
19594 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
19595 (free_poly_bb): Remove.
19596 (debug_loop_vec): Remove.
19597 (print_isl_ast): Declare.
19598 (debug_isl_ast): Declare.
19599 (scop_do_interchange): Remove.
19600 (scop_do_strip_mine): Remove.
19601 (scop_do_block): Remove.
19602 (flatten_all_loops): Remove.
19603 (optimize_isl): Remove.
19604 (pbb_number_of_iterations_at_time): Remove.
19605 (debug_scop_pbb): Declare.
19606 (print_schedule_ast): Declare.
19607 (debug_schedule_ast): Declare.
19608 (struct scop): Remove schedule. Add original_schedule,
19609 transformed_schedule.
19610 (free_gimple_poly_bb): Remove.
19611 (print_generated_program): Remove.
19612 (debug_generated_program): Remove.
19613 (unify_scattering_dimensions): Remove.
19614 * sese.c (print_edge): ... here.
19615 (print_sese): ... here.
19616 (debug_edge): ... here.
19617 (debug_sese): ... here.
19618 * sese.h (print_edge): Declare.
19619 (print_sese): Declare.
19620 (dump_edge): Declare.
19621 (dump_sese): Declare.
19622
19623 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
19624 Sebastian Pop <s.pop@samsung.com>
19625
19626 * Makefile.in: Set ISLVER in site.exp.
19627
19628 2016-01-25 Jakub Jelinek <jakub@redhat.com>
19629
19630 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
19631 DECL_VALUE_EXPR of new_var even for the non-array case. Look
19632 through DECL_VALUE_EXPR for expansion.
19633
19634 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
19635
19636 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
19637 the frame info after reload completed.
19638
19639 2016-01-25 Jeff Law <law@redhat.com>
19640
19641 PR tree-optimization/69196
19642 PR tree-optimization/68398
19643 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
19644 tree-ssa-threadupdate.c.
19645 (determine_bb_domination_status): Prototype
19646 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
19647 (determine_bb_domination_status): No longer static.
19648 (valid_jump_thread_path): Remove code to detect characteristics
19649 of the jump thread path not associated with correctness.
19650 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
19651 Correct test for thread path length. Count PHIs for real operands as
19652 statements that need to be copied. Do not count ASSERT_EXPRs.
19653 Look at all the blocks in the thread path. Compute and selectively
19654 filter thread paths based on threading through the latch, threading
19655 a multiway branch or crossing a multiway branch.
19656
19657 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19658
19659 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
19660 decl with __attribute__ ((unused)) annotation.
19661
19662 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
19663
19664 PR target/69421
19665 * tree-vect-stmts.c (vectorizable_condition): Check vectype
19666 of operands is compatible with a statement vectype.
19667
19668 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
19669
19670 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
19671 improve wording for mixed storage order support.
19672
19673 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
19674
19675 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
19676 (vcvt_u64_f64): Likewise.
19677 (vcvta_s64_f64): Likewise.
19678 (vcvta_u64_f64): Likewise.
19679 (vcvtm_s64_f64): Likewise.
19680 (vcvtm_u64_f64): Likewise.
19681 (vcvtn_s64_f64): Likewise.
19682 (vcvtn_u64_f64): Likewise.
19683 (vcvtp_s64_f64): Likewise.
19684 (vcvtp_u64_f64): Likewise.
19685
19686 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
19687
19688 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
19689 (arc_init): Check validity mll64 option.
19690 (arc_save_restore): Use double load/store instruction.
19691 (arc_expand_movmem): Likewise.
19692 (arc_split_move): Don't split if we have double load/store
19693 instructions. Returns a boolean.
19694 (arc_process_double_reg_moves): Change function to return boolean
19695 instead of a sequence of instructions.
19696 (arc_dwarf_register_span): New function.
19697 * config/arc/arc-protos.h (arc_split_move): Change prototype.
19698 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
19699 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
19700 (*movdf_insn): Likewise.
19701 * config/arc/arc.opt (mll64): New option.
19702 * config/arc/predicates.md (even_register_operand): New predicate.
19703 * doc/invoke.texi (ARC Options): Add mll64 documentation.
19704
19705 2016-01-25 Richard Biener <rguenther@suse.de>
19706
19707 PR lto/69393
19708 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
19709 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
19710 DECL_NAMELESS.
19711 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
19712
19713 2016-01-25 Richard Biener <rguenther@suse.de>
19714
19715 PR tree-optimization/69376
19716 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
19717 flag.
19718 (VN_INFO_ANTI_RANGE_P): New inline.
19719 (VN_INFO_RANGE_TYPE): Likewise.
19720 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
19721 SSA_NAME_ANTI_RANGE_P.
19722 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
19723 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
19724 Properly query VN_INFO_RANGE_TYPE.
19725
19726 2016-01-25 Nick Clifton <nickc@redhat.com>
19727
19728 PR target/66655
19729 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
19730
19731 2016-01-23 Tom de Vries <tom@codesourcery.com>
19732
19733 PR tree-optimization/69426
19734 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
19735 removed clobber.
19736
19737 2016-01-23 Jakub Jelinek <jakub@redhat.com>
19738
19739 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
19740 "the the" with "the" in the comments.
19741 * ipa-devirt.c (build_type_inheritance_graph,
19742 update_type_inheritance_graph): Likewise.
19743 * tree.c (build_function_type_list_1): Likewise.
19744 * cfgloopmanip.c (scale_loop_profile): Likewise.
19745 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
19746 * gimple-ssa-split-paths.c
19747 (find_block_to_duplicate_for_splitting_paths): Likewise.
19748 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
19749 * expr.c (convert_move): Likewise.
19750 * var-tracking.c (vt_stack_adjustments): Likewise.
19751 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
19752 * tree-vrp.c (test_for_singularity): Likewise.
19753
19754 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
19755 directly instead of building a temporary tree.
19756
19757 PR bootstrap/69434
19758 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
19759 remove <algorithm> include.
19760
19761 2016-01-22 Jakub Jelinek <jakub@redhat.com>
19762
19763 PR target/69432
19764 * config/i386/i386.c: Include dojump.h.
19765 (expand_small_movmem_or_setmem,
19766 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
19767 fixes.
19768 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
19769 if dynamic_check != -1.
19770
19771 2016-01-21 Jeff Law <law@redhat.com>
19772
19773 PR middle-end/69347
19774 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
19775 record_temporary_equivalences. Rewritten to avoid unnecessary calls
19776 into dominated_by_p.
19777 (cprop_into_successor_phis): Avoid unnecessary tests.
19778
19779 2016-01-22 Richard Henderson <rth@redhat.com>
19780
19781 PR target/69416
19782 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
19783 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
19784
19785 2016-01-22 Michael Matz <matz@suse.de>
19786
19787 * system.h (string, algorithm): Include only conditionally.
19788 (new): Include always under C++.
19789 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
19790 * final.c (toplevel): Ditto.
19791 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
19792 * genconditions.c (write_header): Make gencondmd.c define
19793 INCLUDE_STRING.
19794 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
19795
19796 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
19797 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
19798
19799 2016-01-22 Christian Bruel <christian.bruel@st.com>
19800
19801 PR target/68674
19802 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
19803
19804 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19805
19806 PR target/69403
19807 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
19808 define_insn_and_split. Ensure operands[1] and operands[0] do not
19809 get assigned the same register.
19810
19811 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
19812
19813 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
19814
19815 2016-01-22 Christian Bruel <christian.bruel@st.com>
19816
19817 * config/arm/arm-c.c (arm_pragma_target_parse):
19818 Remove warn_builtin_macro_redefined overwrite.
19819
19820 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
19821
19822 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
19823 flag_non_call_exceptions compatibility.
19824
19825 2016-01-22 Jakub Jelinek <jakub@redhat.com>
19826
19827 PR debug/66668
19828 * dwarf2out.c (add_child_die_after): New function.
19829 (dwarf_qual_info_t): New type.
19830 (dwarf_qual_info): New variable.
19831 (qualified_die_p): New function.
19832 (modified_type_die): For -fdebug-types-section, ensure
19833 canonical order of qualifiers. Put qualified DIEs adjacent
19834 to the corresponding non-qualified type DIE and search there
19835 for existing qualified DIEs.
19836
19837 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
19838
19839 * doc/extend.texi (scalar_storage_order type attribute): Document
19840 restriction on type punning and aliasing, and remove future tense.
19841
19842 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
19843
19844 PR target/69252
19845 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
19846 first stage.
19847
19848 2016-01-21 Jeff Law <law@redhat.com>
19849
19850 PR middle-end/69347
19851 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
19852 useless call to record_temporary_equivalences.
19853 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
19854 allocate 10 slots in the bb_path vector and let it grow as needed.
19855 (fsm_find_control_statement_thread_paths): Similarly for the next_path
19856 vector.
19857
19858 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
19859
19860 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
19861 Detangle.
19862 * configure: Regenerate.
19863
19864 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
19865
19866 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
19867 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
19868
19869 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
19870
19871 PR middle-end/66178
19872 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
19873 drop EXPAND_INITIALIZER.
19874 * rtl.h (contains_symbolic_reference_p): Declare.
19875 * rtlanal.c (contains_symbolic_reference_p): New function.
19876 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
19877 a subtraction into a NOT if symbolic constants are involved.
19878
19879 2016-01-21 Anton Blanchard <anton@samba.org>
19880 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19881
19882 PR target/63354
19883 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
19884 #define.
19885 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
19886 function.
19887
19888 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
19889
19890 * config/microblaze/microblaze.c
19891 (get_branch_target): New.
19892 (insert_wic_for_ilb_runout): New.
19893 (insert_wic): New.
19894 (microblaze_machine_dependent_reorg): New.
19895 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
19896 * config/microblaze/microblaze.md
19897 (UNSPEC_IPREFETCH): Define.
19898 (iprefetch): New pattern
19899 * config/microblaze/microblaze.opt
19900 (mxl-prefetch): New flag.
19901
19902 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
19903
19904 * config/microblaze/microblaze.h
19905 (FIXED_REGISTERS): Update in macro.
19906 (CALL_USED_REGISTERS): Update in macro.
19907
19908 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
19909
19910 PR rtl-optimization/68920
19911 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
19912 moves.
19913
19914 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
19915
19916 PR rtl-optimization/68990
19917 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
19918 pseudo instead of inheritance ones.
19919
19920 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
19921 Nick Clifton <nickc@redhat.com>
19922
19923 PR target/69129
19924 PR target/69012
19925 * config/mips/mips.c (mips_compute_frame_info): Initialise
19926 args_size and hard_frame_pointer_offset fields of the frame
19927 structure before calling mips_global_pointer.
19928
19929 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
19930
19931 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
19932 label reference.
19933 * configure: Regenerate.
19934
19935 2016-01-21 Richard Biener <rguenther@suse.de>
19936
19937 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
19938
19939 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
19940
19941 * config/s390/s390.c (s390_asm_declare_function_size): Add code
19942 to actually emit the .size directive.
19943
19944 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
19945 Jakub Jelinek <jakub@redhat.com>
19946
19947 PR target/69187
19948 PR target/65624
19949 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
19950 args array size by one to avoid buffer overflow.
19951
19952 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
19953
19954 * config/s390/s390.md (pool_section_start): Use switch_to_section
19955 to select proper read-only data section instead of hardcoding
19956 .rodata.
19957 (pool_section_end): Use switch_to_section to match the above.
19958
19959 2016-01-21 Richard Biener <rguenther@suse.de>
19960
19961 PR tree-optimization/69378
19962 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
19963 (set_ssa_val_to): Use it for dominance checks taking into
19964 account not executable edges.
19965
19966 2016-01-21 Jakub Jelinek <jakub@redhat.com>
19967
19968 PR c++/69355
19969 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
19970 for bitsize instead of GET_MODE_PRECISION (mode).
19971
19972 2016-01-20 Martin Sebor <msebor@redhat.com>
19973
19974 PR c/52291
19975 * extend.texi (__sync Builtins): Clarify the semantics of
19976 __sync_fetch_and_OP built-ins on pointers.
19977 (__atomic Builtins): Same.
19978
19979 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
19980 Sebastian Pop <s.pop@samsung.com>
19981
19982 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
19983 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
19984 (is_valid_rename): Same.
19985 (translate_isl_ast_to_gimple::get_rename): Same.
19986 (translate_isl_ast_to_gimple::rename_all_uses): Same.
19987 (translate_isl_ast_to_gimple::rename_uses): Same.
19988 (get_new_name): Check for close_phi nodes.
19989 (copy_loop_phi_args): Use phi_node_kind.
19990 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
19991 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
19992
19993 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
19994 Sebastian Pop <s.pop@samsung.com>
19995
19996 Revert commit r229783.
19997 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
19998 Remove use of parameter_rename_map.
19999 (copy_def): Remove.
20000 (copy_internal_parameters): Remove.
20001 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
20002 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
20003 (free_sese_info): Do not free parameter_rename_map.
20004 (set_rename): Do not use parameter_rename_map.
20005 (rename_uses): Update call to set_rename.
20006 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
20007 * sese.h (parameter_rename_map_t): Remove.
20008 (struct sese_info_t): Remove field parameter_rename_map.
20009
20010 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20011 Sebastian Pop <s.pop@samsung.com>
20012
20013 * graphite-isl-ast-to-gimple.c: Fix comment.
20014 * graphite-scop-detection.c (defined_in_loop_p): New.
20015 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
20016 names defined in loop.
20017
20018 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20019 Sebastian Pop <s.pop@samsung.com>
20020
20021 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
20022 Discard unstructured if-then-else regions.
20023
20024 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20025 Sebastian Pop <s.pop@samsung.com>
20026
20027 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
20028 (cleanup_loop_iter_dom): Remove.
20029 (build_loop_iteration_domains): Remove.
20030 (build_scop_context): Remove.
20031 (build_scop_iteration_domain): Remove.
20032 (add_loop_constraints): New.
20033 (build_iteration_domains): New.
20034 (build_poly_scop): Call build_iteration_domains.
20035
20036 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20037 Sebastian Pop <s.pop@samsung.com>
20038
20039 * graphite-scop-detection.c
20040 (scop_detection::harmful_loop_in_region): Free dom and loops.
20041 (scop_detection::loop_body_is_valid_scop): Free bbs.
20042
20043 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20044 Sebastian Pop <s.pop@samsung.com>
20045
20046 * graphite-scop-detection.c (record_loop_in_sese): New.
20047 (gather_bbs::before_dom_children): Call record_loop_in_sese.
20048 (build_scops): Remove call to build_sese_loop_nests.
20049 * sese.c (sese_record_loop): Remove.
20050 (build_sese_loop_nests): Remove.
20051 (new_sese_info): Remove region->loops.
20052 (free_sese_info): Same.
20053 * sese.h (sese_contains_loop): Same.
20054 (build_sese_loop_nests): Remove.
20055 (sese_contains_loop): Remove.
20056
20057 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20058 Sebastian Pop <s.pop@samsung.com>
20059
20060 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
20061 loop_is_valid_in_scop.
20062 (scop_detection::harmful_stmt_in_region): Renamed
20063 harmful_loop_in_region.
20064 Call loop_is_valid_in_scop.
20065
20066 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20067 Sebastian Pop <s.pop@samsung.com>
20068
20069 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
20070 isl_ast_node_mark.
20071
20072 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20073 Sebastian Pop <s.pop@samsung.com>
20074
20075 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
20076 * graphite.h (struct poly_bb): Remove field is_reduction.
20077 (PBB_IS_REDUCTION): Remove.
20078
20079 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20080 Sebastian Pop <s.pop@samsung.com>
20081
20082 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
20083 (add_pdr_constraints): Same.
20084 (scop_get_reads): Same.
20085 (scop_get_must_writes): Same.
20086 (scop_get_may_writes): Same.
20087 (scop_get_original_schedule): Same.
20088 (extend_schedule): Same.
20089 (apply_schedule_on_deps): Same.
20090 (carries_deps): Same.
20091 (compute_deps): Same.
20092 (scop_get_dependences): Same.
20093 * graphite-isl-ast-to-gimple.c
20094 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
20095 * graphite-optimize-isl.c (get_schedule_for_band): Same.
20096 (get_schedule_for_band_list): Same.
20097 (get_schedule_map): Same.
20098 (apply_schedule_map_to_scop): Same.
20099 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20100 (build_loop_iteration_domains): Same.
20101 (add_condition_to_pbb): Same.
20102 (add_param_constraints): Same.
20103 (pdr_add_memory_accesses): Same.
20104 (pdr_add_data_dimensions): Same.
20105
20106 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20107
20108 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
20109 requirements.
20110
20111 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20112
20113 * common.opt (feliminate-dwarf2-dups): Replace references to
20114 "DWARF 2" with just "DWARF".
20115 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
20116 * doc/extend.texi: Likewise.
20117 * doc/cpp.texi: Likewise.
20118 * doc/invoke.texi: Likewise.
20119 (Option Summary): Add -gdwarf to list of Debugging Options.
20120 (Debugging Options): Document -gdwarf.
20121 * doc/contrib.texi: Spell "DWARF" like that.
20122
20123 2016-01-21 Jakub Jelinek <jakub@redhat.com>
20124
20125 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
20126 warning. Fix up formatting.
20127
20128 PR middle-end/67653
20129 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
20130 attempt to mark memory input operand addressable and
20131 call prepare_gimple_addressable in that case. Don't adjust
20132 input_location for diagnostics, use error_at instead.
20133
20134 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
20135
20136 * config/rs6000/ppc-auxv.h: New file.
20137 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
20138 (cpu_is): Likewise.
20139 (cpu_supports): Likewise.
20140 * config/rs6000/rs6000.c: include "ppc-auxv.h".
20141 (cpu_is_info): New variable.
20142 (cpu_supports_info): Likewise.
20143 (tcb_verification_symbol): Likewise.
20144 (cpu_builtin_p): Likewise.
20145 (cpu_expand_builtin): New function.
20146 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
20147 (rs6000_init_builtins): Likewise.
20148 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
20149 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
20150 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
20151 * configure: Regenerate.
20152 * config.in: Likewise.
20153 * doc/extend.texi (PowerPC Built-in Functions): Document
20154 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
20155
20156 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
20157
20158 PR target/68609
20159 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
20160 domain check.
20161 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
20162 for V4SFmode.
20163
20164 2016-01-20 Richard Henderson <rth@redhat.com>
20165
20166 PR bootstrap/69343
20167 PR bootstrap/69339
20168 PR tree-opt/68964
20169 Revert:
20170 * tree.c (tm_define_builtin): New.
20171 (find_tm_vector_type): New.
20172 (build_tm_vector_builtins): New.
20173 (build_common_builtin_nodes): Call it.
20174
20175 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
20176
20177 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
20178 (arm_fp_ok): Likewise.
20179 (arm_fp): Likewise.
20180 (arm_crypto): Likewise.
20181
20182 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
20183 Richard Biener <rguenther@suse.de>
20184
20185 PR tree-optimization/69328
20186 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
20187 vectors have same number of elements.
20188 (vectorizable_condition): Fix masked version recognition.
20189
20190 2016-01-20 Richard Biener <rguenther@suse.de>
20191
20192 PR tree-optimization/69345
20193 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
20194 (VN_INFO_PTR_INFO): Likewise.
20195 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
20196 info when it is equal between non-dominating SSA names.
20197 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20198 Make sure to look at original SSA infos.
20199
20200 2016-01-20 Jeff Law <law@redhat.com>
20201
20202 PR target/25114
20203 * config/m68k/predicates.md (pow2_m1_operand): New predicate
20204 extracted from ...
20205 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
20206 (pc_or_label_operand): New predicate.
20207 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
20208 tests for small integers that are 2^n - 1.
20209
20210 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
20211
20212 * doc/invoke.texi (Options Summary): Add '.' after @xref.
20213
20214 2016-01-19 Jeff Law <law@redhat.com>
20215
20216 PR middle-end/69347
20217 * tree-ssa-threadbackwards.c
20218 (fsm_find_control_statement_thread_paths): Do not try to lookup
20219 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
20220
20221 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
20222
20223 * doc/lto.texi: Remove text that says only Gold has linker plugin
20224 support.
20225
20226 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
20227
20228 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
20229 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
20230 the DIE accordingly.
20231 (modified_type_die): Add REVERSE parameter and pass it recursively,
20232 as well as to base_type_die. Adjust presence check accordingly.
20233 (base_type_for_mode): Adjust call to modified_type_die.
20234 (add_type_attribute): Add REVERSE parameter and pass it to
20235 modified_type_die.
20236 (generic_parameter_die): Adjust call to add_type_attribute.
20237 (add_scalar_info): Likewise.
20238 (add_subscript_info): Likewise.
20239 (gen_array_type_die): Likewise.
20240 (gen_descr_array_type_die): Likewise.
20241 (gen_entry_point_die): Likewise.
20242 (gen_enumeration_type_die): Likewise.
20243 (gen_formal_parameter_die): Likewise.
20244 (gen_subprogram_die): Likewise.
20245 (gen_variable_die ): Likewise.
20246 (gen_const_die): Likewise.
20247 (gen_field_die): Likewise.
20248 (gen_pointer_type_die): Likewise.
20249 (gen_reference_type_die): Likewise.
20250 (gen_ptr_to_mbr_type_die): Likewise.
20251 (gen_inheritance_die): Likewise.
20252 (gen_subroutine_type_die): Likewise.
20253 (gen_typedef_die): Likewise.
20254 (force_type_die): Adjust call to modified_type_die.
20255
20256 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
20257
20258 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
20259 flow throughout the file. Fix broken link to Objective-C 2.0
20260 documentation.
20261 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
20262 errors.
20263
20264 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20265
20266 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
20267
20268 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
20269
20270 PR ipa/66223
20271 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
20272 (maybe_record_node): Record cxa_pure_virtual as the only possible
20273 target if there are not ohter candidates.
20274 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
20275
20276 2016-01-19 Richard Biener <rguenther@suse.de>
20277
20278 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
20279 (get_memory_order): Likewise.
20280
20281 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
20282
20283 * tree-vect-stmts.c (vectorizable_store): Check
20284 rhs vectype.
20285
20286 2016-01-19 David Malcolm <dmalcolm@redhat.com>
20287
20288 PR jit/68446
20289 * gcc.c (driver::decode_argv): Add call to
20290 init_opts_obstack before init_options_struct.
20291 * opts.c (init_opts_obstack): Remove idempotency.
20292 (init_options_struct): Replace call to init_opts_obstack
20293 with a gcc_assert to verify that it has already been called.
20294 * toplev.c (toplev::main): Add call to init_opts_obstack before
20295 calls to init_options_struct.
20296 (toplev::finalize): Move cleanup of opts_obstack next to
20297 cleanup of save_decoded_options, clearing the latter, and
20298 save_decoded_options_count.
20299
20300 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20301
20302 PR target/69135
20303 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
20304 attribute to unconditional. Remove %? from output template.
20305
20306 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20307 Jiong Wang <jiong.wang@arm.com>
20308
20309 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
20310 generated from different expand order.
20311
20312 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20313
20314 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
20315 Add support for CCMP costing.
20316
20317 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20318
20319 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
20320 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
20321 (fccmpe<mode>): Likewise.
20322 (fcmp): Rename to fcmp and globalize pattern.
20323 (fcmpe): Likewise.
20324 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
20325 (aarch64_gen_ccmp_next): Add FP support.
20326
20327 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20328
20329 * target.def (gen_ccmp_first): Update documentation.
20330 (gen_ccmp_next): Likewise.
20331 * doc/tm.texi (gen_ccmp_first): Update documentation.
20332 (gen_ccmp_next): Likewise.
20333 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
20334 expand_ccmp_expr_1. Improve comments.
20335 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
20336 (ccmp_ior<mode>): Remove pattern.
20337 (cmp<mode>): Remove expand.
20338 (cmp): Globalize pattern.
20339 (cstorecc4): Use cc_register.
20340 (mov<mode>cc): Remove ccmp_cc_register check.
20341 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
20342 Simplify after removal of CC_DNE/* modes.
20343 (aarch64_ccmp_mode_to_code): Remove.
20344 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
20345 In 'k' case use integer as condition.
20346 (aarch64_nzcv_codes): Remove inverted cases.
20347 (aarch64_code_to_ccmode): Remove.
20348 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
20349 comparison with CC register to be used in folowing CCMP/branch/CSEL.
20350 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
20351 pattern. Return the comparison with CC register. Invert conditions
20352 when bitcode is OR.
20353 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
20354 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
20355
20356 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
20357
20358 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
20359 instrumented_version.
20360
20361 2016-01-19 Richard Biener <rguenther@suse.de>
20362
20363 PR tree-optimization/69336
20364 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
20365 handled components with get_ref_base_and_extent.
20366 (equal_mem_array_ref_p): Adjust.
20367
20368 2016-01-19 Jakub Jelinek <jakub@redhat.com>
20369
20370 PR debug/65779
20371 * shrink-wrap.c: Include valtrack.h.
20372 (move_insn_for_shrink_wrap): Add DEBUG argument. If
20373 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
20374 in between insn and where it will be moved to. Call
20375 dead_debug_insert_temp.
20376 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
20377 first and dead_debug_local_finish at the end.
20378 For uses and defs bitmap, handle all regs in between REGNO and
20379 END_REGNO, not just the first one.
20380
20381 2016-01-19 Richard Biener <rguenther@suse.de>
20382
20383 PR tree-optimization/69352
20384 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
20385 (equal_mem_array_ref_p): Constrain size and max size properly.
20386 Compare the reverse flag.
20387
20388 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
20389
20390 * ira.c (ira): Update regstat data if we deleted insns.
20391
20392 2016-01-19 Jakub Jelinek <jakub@redhat.com>
20393
20394 PR rtl-optimization/68955
20395 PR rtl-optimization/64557
20396 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
20397 here. Fix up formatting.
20398 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
20399
20400 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
20401
20402 PR lto/69133
20403 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
20404 assume that the node has body.
20405 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
20406 check.
20407
20408 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
20409
20410 * lto-streamer-out.c (lto_output): Do not stream instrumentation
20411 thunks.
20412
20413 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
20414
20415 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
20416 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
20417
20418 2016-01-19 Martin Jambor <mjambor@suse.cz>
20419 Martin Liska <mliska@suse.cz>
20420 Michael Matz <matz@suse.de>
20421
20422 * Makefile.in (OBJS): Add new source files.
20423 (GTFILES): Add hsa.c.
20424 * common.opt (disable_hsa): New variable.
20425 (-Whsa): New warning.
20426 * config.in (ENABLE_HSA): New.
20427 * configure.ac: Treat hsa differently from other accelerators.
20428 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
20429 $enable_offloading.
20430 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
20431 * doc/install.texi (Configuration): Document --with-hsa-runtime,
20432 --with-hsa-runtime-include, --with-hsa-runtime-lib and
20433 --with-hsa-kmt-lib.
20434 * doc/invoke.texi (-Whsa): Document.
20435 (hsa-gen-debug-stores): Likewise.
20436 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
20437 to invoke offload compiler for hsa acclerator.
20438 * opts.c (common_handle_option): Determine whether HSA offloading
20439 should be performed.
20440 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
20441 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
20442 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
20443 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
20444 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
20445 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
20446 GF_OMP_FOR_KIND_GRID_LOOP.
20447 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
20448 (pp_gimple_stmt_1): Likewise.
20449 * gimple-walk.c (walk_gimple_stmt): Likewise.
20450 * gimple.c (gimple_build_omp_grid_body): New function.
20451 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
20452 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
20453 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
20454 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
20455 GF_OMP_TEAMS_GRID_PHONY.
20456 (gimple_statement_omp_single_layout): Updated comments.
20457 (gimple_build_omp_grid_body): New function.
20458 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
20459 (gimple_omp_for_grid_phony): New function.
20460 (gimple_omp_for_set_grid_phony): Likewise.
20461 (gimple_omp_parallel_grid_phony): Likewise.
20462 (gimple_omp_parallel_set_grid_phony): Likewise.
20463 (gimple_omp_teams_grid_phony): Likewise.
20464 (gimple_omp_teams_set_grid_phony): Likewise.
20465 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
20466 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
20467 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
20468 (BUILT_IN_GOMP_TARGET): Updated type.
20469 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
20470 (adjust_for_condition): New function.
20471 (get_omp_for_step_from_incr): Likewise.
20472 (extract_omp_for_data): Moved parts to adjust_for_condition and
20473 get_omp_for_step_from_incr.
20474 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
20475 (fixup_child_record_type): Bail out if receiver_decl is NULL.
20476 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
20477 (scan_omp_parallel): Do not create child functions for phony
20478 constructs.
20479 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
20480 (scan_omp_1_op): Checking assert we are not remapping to
20481 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
20482 (parallel_needs_hsa_kernel_p): New function.
20483 (expand_parallel_call): Register apprpriate parallel child
20484 functions as HSA kernels.
20485 (grid_launch_attributes_trees): New type.
20486 (grid_attr_trees): New variable.
20487 (grid_create_kernel_launch_attr_types): New function.
20488 (grid_insert_store_range_dim): Likewise.
20489 (grid_get_kernel_launch_attributes): Likewise.
20490 (get_target_argument_identifier_1): Likewise.
20491 (get_target_argument_identifier): Likewise.
20492 (get_target_argument_value): Likewise.
20493 (push_target_argument_according_to_value): Likewise.
20494 (get_target_arguments): Likewise.
20495 (expand_omp_target): Call get_target_arguments instead of looking
20496 up for teams and thread limit.
20497 (grid_expand_omp_for_loop): New function.
20498 (grid_arg_decl_map): New type.
20499 (grid_remap_kernel_arg_accesses): New function.
20500 (grid_expand_target_kernel_body): New function.
20501 (expand_omp): Call it.
20502 (lower_omp_for): Do not emit phony constructs.
20503 (lower_omp_taskreg): Do not emit phony constructs but create for them
20504 a temporary variable receiver_decl.
20505 (lower_omp_taskreg): Do not emit phony constructs.
20506 (lower_omp_teams): Likewise.
20507 (lower_omp_grid_body): New function.
20508 (lower_omp_1): Call it.
20509 (grid_reg_assignment_to_local_var_p): New function.
20510 (grid_seq_only_contains_local_assignments): Likewise.
20511 (grid_find_single_omp_among_assignments_1): Likewise.
20512 (grid_find_single_omp_among_assignments): Likewise.
20513 (grid_find_ungridifiable_statement): Likewise.
20514 (grid_target_follows_gridifiable_pattern): Likewise.
20515 (grid_remap_prebody_decls): Likewise.
20516 (grid_copy_leading_local_assignments): Likewise.
20517 (grid_process_kernel_body_copy): Likewise.
20518 (grid_attempt_target_gridification): Likewise.
20519 (grid_gridify_all_targets_stmt): Likewise.
20520 (grid_gridify_all_targets): Likewise.
20521 (execute_lower_omp): Call grid_gridify_all_targets.
20522 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
20523 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
20524 (tree_omp_clause): Added union field dimension.
20525 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
20526 * tree.c (omp_clause_num_ops): Added number of arguments of
20527 OMP_CLAUSE__GRIDDIM_.
20528 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
20529 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
20530 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
20531 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
20532 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
20533 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
20534 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
20535 * tree-pass.h (make_pass_gen_hsail): Declare.
20536 (make_pass_ipa_hsa): Likewise.
20537 * ipa-hsa.c: New file.
20538 * lto-section-in.c (lto_section_name): Add hsa section name.
20539 * lto-streamer.h (lto_section_type): Add hsa section.
20540 * timevar.def (TV_IPA_HSA): New.
20541 * hsa-brig-format.h: New file.
20542 * hsa-brig.c: New file.
20543 * hsa-dump.c: Likewise.
20544 * hsa-gen.c: Likewise.
20545 * hsa.c: Likewise.
20546 * hsa.h: Likewise.
20547 * toplev.c (compile_file): Call hsa_output_brig.
20548 * hsa-regalloc.c: New file.
20549
20550 2016-01-18 Jeff Law <law@redhat.com>
20551
20552 PR tree-optimization/69320
20553 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
20554 ranged object, do nothing if the RHS constant is not [0..1].
20555 (optimize_stmt): Comparing a boolean ranged object against a
20556 constant outside [0..1] results in a compile-time constant.
20557
20558 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
20559 test.
20560
20561 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
20562
20563 * doc/invoke.texi (Invoking GCC): Add new section to menu.
20564 (Option Summary): Update to reflect new section and moved options.
20565 (C++ Dialect Options): Move -fstats to new section.
20566 (Debugging Options): Move all dump, statistics, and other GCC
20567 developer options to new section. Rewrite section introduction
20568 and re-order remaining options to put the more basic ones first.
20569 (Optimization Options): Move -fira-verbose and -flto-report* to
20570 new section.
20571 (Developer Options): New section incorporating moved options.
20572 * doc/cppopts.texi (-dM): Update cross-reference.
20573
20574 2016-01-18 Richard Henderson <rth@redhat.com>
20575
20576 PR target/69176
20577 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
20578 operands to pseudo only if CSE is expected. Split long immediate
20579 operands only after reload, and for the stack pointer.
20580 (*add<GPI>3_pluslong): Remove.
20581 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
20582 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
20583 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
20584 (*add<GPI>3 peepholes): New.
20585 (*add<GPI>3 splitters): New.
20586 * config/aarch64/constraints.md (Upl): New.
20587 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
20588
20589 2016-01-18 Richard Biener <rguenther@suse.de>
20590
20591 PR tree-optimization/69297
20592 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
20593 stmt at most once.
20594 (vect_bb_vectorization_profitable_p): Clear visited flag again.
20595
20596 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
20597
20598 PR middle-end/68542
20599 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
20600 of mixind vector and scalar types.
20601 (fold_relational_const): Add handling of vector
20602 comparison with boolean result.
20603 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
20604 comparison of vector operands with boolean result for EQ/NE only.
20605 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
20606 (verify_gimple_cond): Likewise.
20607 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
20608 valid type of VAL.
20609
20610 2016-01-18 Joseph Myers <joseph@codesourcery.com>
20611
20612 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
20613 !TARGET_OCTEON.
20614
20615 2016-01-18 Richard Biener <rguenther@suse.de>
20616
20617 PR middle-end/69308
20618 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
20619
20620 2016-01-18 Tom de Vries <tom@codesourcery.com>
20621
20622 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
20623
20624 2016-01-18 Tom de Vries <tom@codesourcery.com>
20625
20626 * omp-low.c (set_oacc_fn_attrib): Make extern.
20627 * omp-low.h (set_oacc_fn_attrib): Declare.
20628 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
20629 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
20630 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
20631 Add and handle function parameter oacc_kernels_p.
20632 (find_reduc_addr, get_omp_data_i_param): New function.
20633 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
20634 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
20635 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
20636 Calculate dominance info. Skip loops that are not in a kernels region
20637 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
20638 (pass_parallelize_loops::execute): Call parallelize_loops with
20639 oacc_kernels_p argument.
20640 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
20641 New member function.
20642 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
20643 * passes.def: Add argument to pass_parallelize_loops instantation.
20644
20645 2016-01-18 Tom de Vries <tom@codesourcery.com>
20646
20647 * tree-parloops.c (pass_parallelize_loops::execute): Allow
20648 pass_parallelize_loops to be run outside the loop pipeline.
20649
20650 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
20651
20652 * tree-scalar-evolution.c (follow_copies_to_constant): New.
20653 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
20654
20655 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
20656
20657 PR target/63679
20658 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
20659 using get_ref_base_and_extent.
20660 (equal_mem_array_ref_p): New.
20661 (hashable_expr_equal_p): Add call to previous.
20662
20663 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
20664
20665 PR target/63679
20666 * tree-sra.c (disqualified_constants, constant_decl_p): New.
20667 (sra_initialize): Allocate disqualified_constants.
20668 (sra_deinitialize): Free disqualified_constants.
20669 (disqualify_candidate): Update disqualified_constants when appropriate.
20670 (create_access): Scan for constant-pool entries as we go along.
20671 (scalarizable_type_p): Add check against type_contains_placeholder_p.
20672 (maybe_add_sra_candidate): Allow constant-pool entries.
20673 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
20674 (initialize_constant_pool_replacements): New.
20675 (sra_modify_assign): Avoid mangling assignments created by previous,
20676 and don't generate writes into constant pool.
20677 (sra_modify_function_body): Call initialize_constant_pool_replacements.
20678
20679 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
20680
20681 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
20682 andnot instruction.
20683 (scalar_chain::convert_op): Likewise.
20684 * config/i386/i386.md (*andndi3_doubleword): New.
20685
20686 2016-01-18 Richard Biener <rguenther@suse.de>
20687
20688 PR tree-optimization/69170
20689 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
20690 building a vector from scalar results of a pattern stmt.
20691
20692 2016-01-18 Jakub Jelinek <jakub@redhat.com>
20693
20694 * haifa-sched.c (autopref_multipass_init): Work around
20695 -Wmaybe-uninitialized warning.
20696
20697 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
20698
20699 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
20700 against the constant 0.
20701
20702 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20703
20704 PR tree-optimization/68799
20705 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
20706 look up phi candidates in the statement-candidate map.
20707 (phi_add_costs): Likewise.
20708 (record_phi_increments): Likewise.
20709 (phi_incr_cost): Likewise.
20710 (ncd_with_phi): Likewise.
20711 (all_phi_incrs_profitable): Likewise.
20712
20713 2016-01-17 Jakub Jelinek <jakub@redhat.com>
20714
20715 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
20716 -Wmaybe-uninitialized warning.
20717
20718 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
20719
20720 * doc/invoke.texi (Invoking GCC): Add new section to menu.
20721 (Option Summary): Update to reflect new section and moved options.
20722 (C++ Dialect Options): Move -fvtable-verify and related options.
20723 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
20724 and profiling-related options.
20725 (Optimization Options): Move profile generation options and
20726 -fstack-protector and related options.
20727 (Instrumentation Options): New section incorporating moved options.
20728 (Code Generation Options): Move -finstrument-functions and
20729 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
20730
20731 2016-01-16 Tom de Vries <tom@codesourcery.com>
20732
20733 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
20734
20735 2016-01-16 Tom de Vries <tom@codesourcery.com>
20736
20737 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
20738
20739 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
20740
20741 * hash-table.h (hash_table::empty): Turn into an inline wrapper
20742 that checks whether the table is already empty. Rename the
20743 original implementation to...
20744 (hash_table::empty_slot): ...this new private function.
20745
20746 2016-01-15 David Malcolm <dmalcolm@redhat.com>
20747
20748 PR diagnostic/68899
20749 * diagnostic-show-locus.c (layout::print_source_line): Move x
20750 offset of line until after call to
20751 get_line_width_without_trailing_whitespace.
20752
20753 2016-01-15 Jeff Law <law@redhat.com>
20754
20755 PR tree-optimization/69270
20756 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
20757 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
20758 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
20759 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
20760 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
20761 ssa_name_has_boolean_range and constant_boolean_node.
20762
20763 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
20764
20765 PR rtl-optimization/69030
20766 * lra-spills.c (remove_pseudos): Check nrefs and make the function
20767 returning bool.
20768 (spill_pseudos): Delete debug insn for dead pseudo.
20769 (lra_spill): Initiate spill_hard_reg and slots memory separately.
20770
20771 2016-01-15 Jiong Wang <jiong.wang@arm.com>
20772
20773 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
20774 New.
20775 (TYPES_UNOPUS): Likewise.
20776 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
20777 builtin type, from UNOP to UNOPUS.
20778 (lbtruncuv4sf): Likewise.
20779 (lbtruncuv2df): Likewise.
20780 (lrounduv2sf): Likewise.
20781 (lrounduv4sf): Likewise.
20782 (lrounduv2df): Likewise.
20783 (lroundusf): Likewise.
20784 (lroundusf): Likewise.
20785 (lceiluv2sf): Likewise.
20786 (lceiluv4sf): Likewise.
20787 (lceiluv2df): Likewise.
20788 (lceilusf): Likewise.
20789 (lceiludf): Likewise.
20790 (lflooruv2sf): Likewise.
20791 (lflooruv4sf): Likewise.
20792 (lflooruv2df): Likewise.
20793 (lfloorusf): Likewise.
20794 (lfloorudf): Likewise.
20795 (lfrintnuv2sf): Likewise.
20796 (lfrintnuv4sf): Likewise.
20797 (lfrintnuv2df): Likewise.
20798 (lfrintnusf): Likewise.
20799 (lfrintnudf): Likewise.
20800 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
20801 conversion.
20802 (vcvtq_u32_f32): Likewise.
20803 (vcvtq_u64_f64): Likewise.
20804 (vcvta_u32_f32): Likewise.
20805 (vcvtaq_u32_f32): Likewise.
20806 (vcvtaq_u64_f64): Likewise.
20807 (vcvtm_u32_f32): Likewise.
20808 (vcvtmq_u32_f32): Likewise.
20809 (vcvtmq_u64_f64): Likewise.
20810 (vcvtn_u32_f32): Likwise.
20811 (vcvtnq_u32_f32): Likewise.
20812 (vcvtnq_u64_f64): Likewise.
20813 (vcvtp_u32_f32): Likewise.
20814 (vcvtpq_u32_f32): Likewise.
20815 (vcvtpq_u64_f64): Likewise.
20816 (vcvtmd_u64_f64): Likewise.
20817 (vcvtms_u32_f32): Likewise.
20818 (vcvtad_u64_f64): Likewise.
20819 (vcvtas_u32_f32): Likewise.
20820 (vcvtnd_u64_f64): Likewise.
20821 (vcvtns_u32_f32): Likewise.
20822 (vcvtpd_u64_f64): Likewise.
20823 (vcvtps_u32_f32): Likewise.
20824
20825 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20826
20827 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
20828 CSEL of zero_extended registers.
20829
20830 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20831
20832 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
20833 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
20834
20835 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20836
20837 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
20838 false when argument string is not found in the attributes table
20839 at all.
20840
20841 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
20842
20843 PR target/68609
20844 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
20845 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
20846 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
20847 precision estimate.
20848
20849 2016-01-15 Richard Biener <rguenther@suse.de>
20850
20851 PR tree-optimization/66856
20852 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
20853 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
20854 (vect_create_new_slp_node): Increment stmt reference count.
20855 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
20856 an SLP tree before swapping operands.
20857 (vect_build_slp_tree): Likewise.
20858 (destroy_bb_vec_info): Free stmt info after SLP instances.
20859 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
20860 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
20861 (STMT_VINFO_NUM_SLP_USES): New macro.
20862
20863 2016-01-15 Richard Biener <rguenther@suse.de>
20864
20865 PR debug/69137
20866 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
20867 (add_linkage_name): ... here.
20868 (gen_typedef_die): Use add_linkage_name_raw instead of
20869 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
20870 if necessary.
20871
20872 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
20873
20874 * gimplify.c (oacc_default_clause): Decode reference and pointer
20875 types for both kernels and parallel regions.
20876
20877 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
20878
20879 PR middle-end/69246
20880 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
20881
20882 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
20883
20884 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
20885 (convert_scalars_to_vector): Likewise.
20886
20887 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
20888
20889 * doc/extend.texi (Type Traits): Fix grammar.
20890
20891 2016-01-15 Martin Jambor <mjambor@suse.cz>
20892
20893 * tree-inline.c (remap_decl): Use existing dclarations if
20894 remapping a type and prevent_decl_creation_for_types.
20895 (replace_locals_stmt): Do an initial remapping of non-VLA typed
20896 decls first. Do real remapping with
20897 prevent_decl_creation_for_types set.
20898 * tree-inline.h (copy_body_data): New field
20899 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
20900 padding.
20901
20902 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
20903
20904 * config/s390/s390.opt (mmvcle): More verbose help text.
20905
20906 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
20907
20908 * config/s390/s390.opt: Add period to -mzvector option text.
20909
20910 2016-01-15 Richard Biener <rguenther@suse.de>
20911
20912 PR tree-optimization/68961
20913 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
20914 of invariants in stores again.
20915
20916 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
20917
20918 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
20919
20920 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
20921
20922 * config/i386/i386.c (ix86_expand_branch): Don't split
20923 DI mode xor instruction to SI mode.
20924
20925 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
20926
20927 PR ipa/68148
20928 * ipa-icf.c (sem_function::merge): Virtual functions may become
20929 reachable even if they address is not taken and there are no
20930 idrect calls.
20931
20932 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
20933
20934 * lto-streamer-out.c (subtract_estimated_size): New function.
20935 (get_symbol_initial_value): Use it.
20936
20937 2016-01-15 Christian Bruel <christian.bruel@st.com>
20938
20939 PR target/65837
20940 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
20941 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
20942 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
20943 use add_builtin_function_ext_scope instead of add_builtin_function.
20944 (neon_set_p, neon_crypto_set_p): Remove.
20945 (arm_init_builtins): Always call arm_init_neon_builtins and
20946 arm_init_crypto_builtins.
20947 (arm_expand_builtin): Check that builtins are allowed for the arch.
20948 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
20949 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
20950 arm_init_neon_builtins call.
20951
20952 2016-01-15 Richard Biener <rguenther@suse.de>
20953
20954 PR tree-optimization/69117
20955 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
20956 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
20957 of the leader conservatively.
20958 (free_scc_vn): Restore original SSA name infos.
20959
20960 2016-01-14 Jeff Law <law@redhat.com>
20961
20962 PR tree-optimization/69270
20963 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
20964 single bit of precision, verify it's also unsigned.
20965 (record_edge_info): Use constant_boolean_node rather than fold_convert
20966 to convert boolean_true/boolean_false to the right type.
20967
20968 2016-01-14 Richard Henderson <rth@redhat.com>
20969
20970 PR rtl-opt/69014
20971 * loop-doloop.c (record_reg_sets): New.
20972 (doloop_optimize): Reject the transform if the sequence
20973 clobbers registers live at the end of the loop block.
20974 (doloop_optimize_loops): Enable df_live if needed.
20975
20976 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
20977
20978 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
20979 * config/rs6000/rs6000.c: Likewise.
20980 * config/rs6000/rs6000.h: Likewise.
20981 * config/rs6000/rs6000.md: Likewise.
20982 * doc/extend.texi: Likewsie.
20983
20984 2016-01-14 Jeff Law <law@redhat.com>
20985
20986 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
20987 typo.
20988
20989 2016-01-14 Richard Henderson <rth@redhat.com>
20990
20991 PR c/69272
20992 PR tree-opt/68964
20993 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
20994 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
20995 instead of builtin_decl_declared_p to test for declaration.
20996
20997 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
20998
20999 * doc/loop.texi (Loop Analysis and Representation): Document
21000 loop_depth function.
21001
21002 2016-01-14 Tom de Vries <tom@codesourcery.com>
21003
21004 PR tree-optimization/68773
21005 * omp-low.c (expand_omp_target): Don't set force_output.
21006 * varpool.c (varpool_node::get_create): Same.
21007 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
21008 offload_funcs with force_output.
21009
21010 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21011
21012 PR debug/69244
21013 * lra-eliminations.c (move_plus_up): Don't change anything if either
21014 the outer or inner subreg mode is not MODE_INT.
21015 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
21016 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
21017
21018 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21019
21020 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
21021 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
21022 reduc_uplus_@var{m}): Remove.
21023 * expr.c (expand_expr_real_2): Remove expansion path for
21024 reduc_[us](min|max|plus) optabs.
21025 * optabs-tree.c (scalar_reduc_to_vector): Remove.
21026 * optabs-tree.h (scalar_reduc_to_vector): Remove.
21027 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
21028 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
21029 * tree-vect-loop.c (vectorizable_reduction): Remove test for
21030 reduc_[us](min|max|plus) optabs.
21031
21032 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21033
21034 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
21035 (reduc_plus_scal_v2sf): New.
21036 (reduc_smax_v2sf): Rename to...
21037 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
21038 (reduc_smin_v2sf): Rename to...
21039 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
21040
21041 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
21042
21043 * alias.c (compare_base_symbol_refs): New function.
21044 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
21045 it.
21046
21047 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21048
21049 PR middle-end/68146
21050 PR tree-optimization/69155
21051 * tree-complex.c: Include cfganal.h.
21052 (phis_to_revisit): New variable.
21053 (extract_component): Add phiarg_p argument. Assert that returned
21054 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
21055 (update_phi_components): Partly rewrite to use loop over real/imag
21056 components instead of code duplication. If extract_component returns
21057 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
21058 create_tmp_reg into the PHI node instead, and mention the phi triplet
21059 in phis_to_revisit.
21060 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
21061 in phis_to_revisit at the end.
21062
21063 2016-01-14 Richard Biener <rguenther@suse.de>
21064
21065 PR tree-optimization/68060
21066 * tree-vect-loop.c (vect_is_simple_reduction): Check the
21067 outer loop reduction is only used in the inner loop before
21068 detecting a double reduction.
21069
21070 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21071
21072 PR target/68269
21073 * combine.c (expand_field_assignment): Punt if compute_mode is
21074 unsupported scalar mode.
21075
21076 2016-01-14 Richard Biener <rguenther@suse.de>
21077
21078 PR tree-optimization/66856
21079 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
21080 SLP node only if it built successfully.
21081 (vect_analyze_slp_instance): Adjust.
21082
21083 2016-01-14 Jeff Law <law@redhat.com>
21084
21085 PR tree-optimization/69270
21086 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
21087 (record_edge_info): Use it. Convert boolean_{true,false}_node
21088 to the type of op0.
21089
21090 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
21091
21092 PR ipa/66487
21093 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
21094 use block_ultimate_origin
21095 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
21096
21097 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21098
21099 * doc/invoke.texi (Submodel Options): Rename section to
21100 "Machine-Dependent Options" to better reflect its content.
21101 Rewrite introductory text to remove archaic CPU names.
21102 Update references.
21103
21104 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21105
21106 * doc/invoke.texi (Code Gen Options): Move section up in file,
21107 before target-specific options. Update menu and option summary
21108 to reflect the new section ordering.
21109
21110 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
21111
21112 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
21113 (C++ Dialect Options): Add cross-reference to -std option.
21114 * doc/standards.texi (C++ Language): Document C++14 support.
21115
21116 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
21117
21118 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
21119 for pack/unpack functions for __ibm128.
21120 (PACK_IF): Likewise.
21121 (UNPACK_IF): Likewise.
21122
21123 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21124 support for __ibm128 pack/unpack functions.
21125 (rs6000_invalid_builtin): Likewise.
21126 (rs6000_init_builtins): Likewise.
21127 (rs6000_opt_masks): Likewise.
21128
21129 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
21130 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
21131 functions
21132 (RS6000_BTM_COMMON): Likewise.
21133
21134 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
21135 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
21136 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
21137 128-bit floating point. Add support for the double values to be
21138 in Altivec registers for TF/IF packing and unpacking, but restrict
21139 TD packing sub-fields to be FPR registers. Don't allow overlapped
21140 register support for packing. Allow pack inputs to be memory
21141 locations. Don't build generator functions for unpack<mode>_dm
21142 and unpack<mode>_nodm.
21143 (unpack<mode>_dm): Likewise.
21144 (unpack<mode>_nodm): Likewise.
21145 (pack<mode>): Likewise.
21146
21147 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
21148 built-in functions to pack/unpack explicit __ibm128 values.
21149 (__builtin_unpack_ibm128): Likewise.
21150
21151 * doc/extend.texi (PowerPC Built-in Functions): Document
21152 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
21153
21154 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
21155
21156 PR c/66208
21157 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
21158 Add new arg loc and pass it down as context.
21159 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
21160 to the location to use for the warning.
21161 (check_function_arguments): New arg loc. All callers changed. Pass
21162 it to check_function_nonnull.
21163 * c-common.h (check_function_arguments): Adjust declaration.
21164
21165 2016-01-13 Jakub Jelinek <jakub@redhat.com>
21166
21167 PR tree-optimization/69156
21168 * gimple.c (validate_type): Removed.
21169 (gimple_builtin_call_types_compatible_p): Use
21170 useless_type_conversion_p instead of validate_type.
21171 * value-prof.c (gimple_stringop_fixed_value): Fold
21172 icall_size to correct type.
21173
21174 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
21175
21176 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
21177 effects.
21178
21179 2016-01-13 Richard Henderson <rth@redhat.com>
21180
21181 PR tree-opt/68964
21182 * target.def (builtin_tm_load, builtin_tm_store): Remove.
21183 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
21184 (ix86_builtin_tm_store): Remove.
21185 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21186 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21187 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21188 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21189 * doc/tm.texi: Rebuild.
21190
21191 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
21192 (BUILT_IN_TM_MEMCPY_RTWN): New.
21193 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
21194 fallback from vector to integer helpers.
21195 (build_tm_load): Handle vector types directly, instead of
21196 via target hook.
21197 (build_tm_store): Likewise.
21198 (expand_assign_tm): Prepare for register types not handled by
21199 the above. Copy them to memory and use memcpy.
21200 * tree.c (tm_define_builtin): New.
21201 (find_tm_vector_type): New.
21202 (build_tm_vector_builtins): New.
21203 (build_common_builtin_nodes): Call it.
21204
21205 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
21206
21207 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
21208 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
21209
21210 2016-01-13 Tom de Vries <tom@codesourcery.com>
21211
21212 PR tree-optimization/69169
21213 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
21214 handled_struct_type param.
21215 (create_variable_info_for, intra_create_variable_infos): Call
21216 create_variable_info_for_1 with extra arg.
21217
21218 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
21219
21220 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
21221 and "armv8.1-a+crc" entries.
21222
21223 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
21224
21225 PR target/69228
21226 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
21227 Change first operand predicate from register_or_constm1_operand
21228 to register_operand.
21229 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
21230 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
21231 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
21232 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
21233 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
21234 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
21235 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
21236 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
21237 comparison with constm1_rtx from vec_prefetch_gen part.
21238
21239 2016-01-13 Richard Biener <rguenther@suse.de>
21240
21241 PR tree-optimization/69013
21242 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
21243 Exchange assert for a test.
21244
21245 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21246
21247 PR target/69247
21248 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
21249
21250 2016-01-13 Richard Biener <rguenther@suse.de>
21251
21252 PR tree-optimization/69242
21253 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
21254 assert with a check.
21255
21256 2016-01-13 Richard Biener <rguenther@suse.de>
21257
21258 PR tree-optimization/69186
21259 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21260 Properly guard vect_update_misalignment_for_peel call.
21261
21262 2016-01-12 Jeff Law <law@redhat.com>
21263
21264 PR tree-optimization/pr67755
21265 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
21266 "need_profile_correction".
21267 (thread_block_1): Initialize new field to false by default. If we
21268 have multiple thread paths through a common joiner to different
21269 final targets, then set new field to true.
21270 (compute_path_counts): Only do count adjustment when it's really
21271 needed.
21272
21273 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
21274
21275 * doc/invoke.texi (Spec Files): Move section down in file, past
21276 all command-line option descriptions.
21277
21278 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21279
21280 PR middle-end/54809
21281 * doc/gty.texi: Remove documentation of mark_hook.
21282 * gengtype.c (struct write_types_data): Remove code to support
21283 mark_hook attribute.
21284 (walk_type): Likewise.
21285 (write_func_for_structure): Likewise.
21286
21287 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
21288
21289 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
21290 Directory Options, and -specs= to Overall Options.
21291 (Overall Options): Adjust similarly. Reorder to group related
21292 options together. Make -specs= cross-reference the spec file details.
21293 (Directory Options): Adjust similarly.
21294
21295 2016-01-12 Jeff Law <law@redhat.com>
21296
21297 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
21298
21299 2016-01-12 Olivier Hainque <hainque@adacore.com>
21300
21301 * gcc.c (spec_undefvar_allowed): New global.
21302 (process_command): Set to true when running for --version or --help,
21303 alone or together.
21304 (getenv_spec_function): When the variable is not defined, use the
21305 variable name as the variable value if we're allowed not to issue
21306 a fatal error.
21307
21308 2016-01-12 Bin Cheng <bin.cheng@arm.com>
21309
21310 PR tree-optimization/68911
21311 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
21312 information computed for expression "init + nit * step".
21313
21314 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
21315
21316 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
21317 about name of GCC executable. Remove deleted node from menu.
21318 (Directory Options) <-B>: Remove cross-reference to deleted node.
21319 (Target Options): Delete section.
21320
21321 2016-01-12 Christian Bruel <christian.bruel@st.com>
21322
21323 PR target/69180
21324 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
21325 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
21326
21327 2016-01-12 Jakub Jelinek <jakub@redhat.com>
21328
21329 PR target/69198
21330 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
21331 aligned_mem is properly set for AVX512-VL floating point masked
21332 stores.
21333
21334 PR target/69175
21335 * ifcvt.c (cond_exec_process_if_block): When removing the last
21336 insn from then_bb, remove also any possible barriers that follow it.
21337
21338 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
21339
21340 PR target/68456
21341 PR target/69226
21342 * config/i386/iamcu.h (SIZE_TYPE): New macro.
21343 (PTRDIFF_TYPE): Likewise.
21344 (WCHAR_TYPE): Likewise.
21345 (WCHAR_TYPE_SIZE): Likewise.
21346 (STDINT_LONG32): Likewise.
21347
21348 2016-01-12 Richard Biener <rguenther@suse.de>
21349
21350 PR tree-optimization/69053
21351 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
21352 convert initial value for cond reductions.
21353
21354 2016-01-12 Richard Biener <rguenther@suse.de>
21355
21356 PR tree-optimization/69007
21357 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
21358 widen_sum after dot_prod and sad.
21359
21360 2016-01-12 Richard Biener <rguenther@suse.de>
21361
21362 PR tree-optimization/69168
21363 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
21364 pattern stmt SLP type.
21365 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
21366 end up unused so cope with that case.
21367
21368 2016-01-12 Richard Biener <rguenther@suse.de>
21369
21370 PR tree-optimization/69157
21371 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
21372 stmts def type only during analyze phase.
21373 (vectorizable_call): Likewise.
21374 (vectorizable_simd_clone_call): Likewise.
21375 (vectorizable_conversion): Likewise.
21376 (vectorizable_assignment): Likewise.
21377 (vectorizable_shift): Likewise.
21378 (vectorizable_operation): Likewise.
21379 (vectorizable_store): Likewise.
21380 (vectorizable_load): Likewise.
21381
21382 2016-01-12 Richard Biener <rguenther@suse.de>
21383
21384 PR tree-optimization/69174
21385 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
21386 space.
21387 (vectorizable_load): Properly compute the number of loads needed
21388 for permuted strided SLP loads and do not spuriously assign
21389 to SLP_TREE_VEC_STMTS.
21390
21391 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
21392
21393 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
21394 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
21395 (MD_EXEC_PREFIX): Remove.
21396 (MD_STARTFILE_PREFIX) Removee.
21397 (FILE_NAME_ABSOLUTE_P): Remove.
21398 (CPP_SPEC): Do not read macros from sys/version.h.
21399 (LINK_COMMAND_SPEC): Remove.
21400 (LOCAL_INCLUDE_DIR): Remove.
21401 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
21402 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
21403 (POST_LINK_SPEC): Define to invoke stubify after linker
21404 (LIBSTDCXX): Remove define
21405 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
21406 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
21407 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
21408 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
21409 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
21410 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
21411 (i386_djgpp_asm_named_section): Add propotype of new procedure
21412
21413 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
21414 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
21415 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
21416 in config/i386/djgpp.h).
21417 (STANDARD_STARTFILE_PREFIX_2): Define identical to
21418 STANDARD_STARTFILE_PREFIX_1.
21419 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
21420 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
21421 installation errors.
21422 (MAX_OFILE_ALIGNMENT): Define to 128.
21423 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
21424
21425 * config/i386/djgpp.c: New file. Add implementation of
21426 i386_djgpp_asm_named_section.
21427
21428 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
21429
21430 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
21431 Add rule for building djgpp.o.
21432
21433 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21434
21435 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
21436 (rtx_is_swappable_p): Reductions are swappable.
21437 (insn_is_swappable_p): V2DF reductions are swappable.
21438
21439 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
21440
21441 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
21442 reloads for other unsupported memory operands.
21443
21444 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21445 Jim Wilson <jim.wilson@linaro.org>
21446
21447 PR target/69194
21448 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
21449 copy_to_mode_reg instead of force_reg.
21450
21451 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
21452
21453 PR target/69225
21454 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
21455 TARGET_80387 is true.
21456
21457 2016-01-11 Jakub Jelinek <jakub@redhat.com>
21458
21459 PR target/69071
21460 * lra-eliminations.c (move_plus_up): Only move plus up
21461 if subreg of the constant can be simplified into constant
21462 and use the simplified subreg of the constant instead of
21463 the original constant.
21464
21465 * fold-const.c (fold_convertible_p): Don't return true
21466 for conversion of VECTOR_TYPE to same sized integral type.
21467 (fold_convert_loc): Fix up formatting. Fold conversion of
21468 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
21469 instead of NOP_EXPR.
21470
21471 PR tree-optimization/69214
21472 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
21473 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
21474 Formatting fix.
21475
21476 PR tree-optimization/69207
21477 * tree-vect-slp.c (vect_get_constant_vectors): For
21478 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
21479 fold_convertible_p to vector_type's element type, and always
21480 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
21481
21482 2016-01-11 Richard Biener <rguenther@suse.de>
21483
21484 PR tree-optimization/69173
21485 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
21486 fixup the cycle if all stmts are in a pattern.
21487
21488 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
21489
21490 PR middle-end/68999
21491 * alias.c (base_alias_check): Move check for addresses with
21492 alignment ANDs before the call for compare_base_decls.
21493 (memrefs_conflict_p): Return -1 for different decls
21494 that went through alignment adjustments.
21495
21496 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21497
21498 PR rtl-optimization/68796
21499 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
21500 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
21501 and QImode comparisons against zero with CC_NZmode.
21502 * config/aarch64/iterators.md (short_mask): New mode_attr.
21503
21504 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
21505
21506 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
21507 (<avx512>_store<mode>_mask): Likewise.
21508
21509 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
21510 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21511
21512 PR rtl-optimization/68841
21513 * ifcvt.c (struct noce_if_info): Add orig_x field.
21514 (bbs_ok_for_cmove_arith): Add to_rename parameter.
21515 Don't record conflicts on to_rename if it's present.
21516 Allow memory destinations in sets.
21517 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
21518 blocks, passing orig_x to the checks.
21519 (noce_process_if_block): Set if_info->orig_x appropriately.
21520
21521 2016-01-11 Tom de Vries <tom@codesourcery.com>
21522
21523 PR tree-optimization/69069
21524 * tree-parloops.c (create_parallel_loop): Add missing phi args.
21525
21526 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
21527
21528 PR rtl-optimization/68920
21529 * config/i386/i386.c (ix86_option_override_internal): Restrict number
21530 of conditional moves for RTL if-conversion to 1 for
21531 TARGET_ONE_IF_CONV_INSN.
21532 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
21533 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
21534 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
21535 parameter to restirct number of conditional moves for
21536 RTL if-conversion.
21537 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
21538 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
21539 conditionl moves.
21540
21541 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
21542
21543 PR bootstrap/69123
21544 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
21545 onepart vars. Fix typo in comment. Fix reversed condition in
21546 unshare test.
21547 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
21548
21549 PR bootstrap/69123
21550 * var-tracking.c (dump_onepart_variable_differences): New.
21551 (dataflow_set_different): If a detailed dump is requested,
21552 delay early returns and dump differences between onepart
21553 variables present before and after, and added variables.
21554
21555 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
21556
21557 PR target/69010
21558 * expr.c (expand_expr_real_1): For boolean vector constants
21559 with a scalar mode use const_scalar_mask_from_tree.
21560 (const_scalar_mask_from_tree): New.
21561 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
21562 assigned to a mask type to handle constants.
21563
21564 2016-01-11 Martin Jambor <mjambor@suse.cz>
21565
21566 PR ipa/69044
21567 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
21568 useless parameters if we cannot change function signature.
21569
21570 2016-01-11 Martin Jambor <mjambor@suse.cz>
21571
21572 PR ipa/66616
21573 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
21574 flag.
21575
21576 2016-01-11 Tom de Vries <tom@codesourcery.com>
21577
21578 PR tree-optimization/69109
21579 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
21580 latch with phi.
21581
21582 2016-01-11 Tom de Vries <tom@codesourcery.com>
21583
21584 PR tree-optimization/69108
21585 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
21586 res is not used in a phi.
21587
21588 2016-01-11 Yury Gribov <y.gribov@samsung.com>
21589
21590 PR 67425
21591 * common.opt (frandom-seed): Fix parameter name.
21592 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
21593
21594 2016-01-11 Tom de Vries <tom@codesourcery.com>
21595
21596 PR tree-optimization/69058
21597 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
21598 not supported.
21599
21600 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
21601
21602 * config/arc/arc.opt (mdiv-rem): Add period to the end.
21603 (mcode-density): Likewise.
21604
21605 2016-01-10 Tom de Vries <tom@codesourcery.com>
21606
21607 PR tree-optimization/69062
21608 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
21609 (parallelize_loops): Don't paralelize loop that has phi with address
21610 arg.
21611
21612 2016-01-10 Tom de Vries <tom@codesourcery.com>
21613
21614 PR tree-optimization/69039
21615 * tree-parloops.c (try_create_reduction_list): Only allow single exit
21616 phi for reduction.
21617
21618 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
21619
21620 PR middle-end/68743
21621 * match.pd: Require target has function_c99_misc before doing
21622 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
21623
21624 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
21625
21626 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
21627 use GMPINC.
21628 * configure: Regenerate.
21629
21630 2016-01-09 Jakub Jelinek <jakub@redhat.com>
21631
21632 PR middle-end/50865
21633 PR tree-optimization/69097
21634 * fold-const.h (expr_not_equal_to): New prototype.
21635 * fold-const.c: Include stringpool.h and tree-ssanames.h.
21636 (expr_not_equal_to): New function.
21637 * match.pd (X % -Y is the same as X % Y): Don't optimize
21638 unless X is known not to be equal to minimum or Y is known
21639 not to be equal to -1.
21640 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
21641 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
21642 (simplify_stmt_using_ranges): Adjust caller.
21643 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
21644 substitute_and_fold.
21645
21646 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
21647
21648 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
21649 w/o DECL_NAME.
21650
21651 2016-01-08 Jakub Jelinek <jakub@redhat.com>
21652
21653 PR tree-optimization/69167
21654 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
21655 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
21656 ops[0] comparison.
21657 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
21658
21659 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
21660 Richard Biener <rguenther@suse.de>
21661
21662 PR tree-optimization/68707
21663 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
21664 instances that can be handled via vect_load_lanes.
21665
21666 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
21667
21668 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
21669 if we can't determine address equivalence.
21670 * alias.c (compare_base_decl): Update for changed return value of
21671 symtab_node::equal_address_to.
21672
21673 2016-01-08 Jason Merrill <jason@redhat.com>
21674
21675 PR c++/68983
21676 PR c++/67557
21677 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
21678 * expr.c (store_field): Not here.
21679 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
21680 call with TREE_ADDRESSABLE type.
21681 * tree-cfg.c (verify_gimple_call): Adjust.
21682
21683 2016-01-08 Olivier Hainque <hainque@adacore.com>
21684
21685 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
21686 libc_internal.
21687
21688 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
21689
21690 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
21691 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
21692 (reduc_smin_v2sf): Rename to...
21693 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
21694 (reduc_splus_v2sf): Rename to...
21695 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
21696
21697 2016-01-08 Jakub Jelinek <jakub@redhat.com>
21698
21699 PR tree-optimization/69162
21700 * gimplify.c (gimplify_va_arg_expr): Encode original type of
21701 valist argument in another argument.
21702 (gimplify_modify_expr): Adjust for the above change. Cleanup.
21703 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
21704 to determine the va_list type, build a MEM_REF instead of
21705 build_fold_indirect_ref.
21706
21707 PR tree-optimization/69172
21708 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
21709 gimple_build.
21710
21711 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
21712
21713 PR tree-optimization/67781
21714 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
21715 and cmpnop in two steps: first the ones not accessed in original
21716 gimple expression in a endian independent way and then the ones not
21717 accessed in the final result in an endian-specific way.
21718
21719 2016-01-08 Jakub Jelinek <jakub@redhat.com>
21720
21721 PR tree-optimization/69083
21722 * tree-vect-slp.c (vect_get_constant_vectors): For
21723 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
21724 element type. If op is fold_convertible_p to vector_type's element
21725 type, use NOP_EXPR instead of VCE.
21726
21727 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
21728
21729 PR rtl-optimization/67778
21730 PR rtl-optimization/68634
21731 PR rtl-optimization/68909
21732 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
21733 block from the stack until done with it. Remove a superfluous
21734 bitmap set. Remove a superfluous bitmap test.
21735
21736 2016-01-07 Martin Sebor <msebor@redhat.com>
21737
21738 PR c/68966
21739 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
21740 constraint on the type of arguments.
21741
21742 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
21743
21744 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
21745 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
21746 unaligned_access on the gcc_options set.
21747 * config/arm/arm.c (arm_option_override_internal): Use
21748 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
21749
21750 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
21751
21752 PR target/69140
21753 * config/i386/i386.c (ix86_frame_pointer_required): Enable
21754 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
21755
21756 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
21757
21758 Revert
21759 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
21760
21761 PR target/69140
21762 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
21763 depending on frame_pointer_needed before remaining integer and SSE
21764 registers are saved.
21765
21766 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
21767
21768 PR 1078
21769 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
21770
21771 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
21772
21773 PR target/69171
21774 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
21775 Use the "xBm" constraint.
21776 (float<sseintvecmodelower><mode>2<mask_name><round_name):
21777 Likewise.
21778 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
21779 (sse_cvtsi2ssq<round_name>): Likewise.
21780 (sse_cvtss2si<round_name>): Likewise.
21781 (sse_cvtss2siq<round_name>): Likewise.
21782 (sse2_cvtsi2sdq<round_name>): Likewise.
21783 (sse2_cvtsd2si<round_name>): Likewise.
21784 (sse2_cvtsd2siq<round_name>): Likewise.
21785 * config/i386/subst.md (round_nimm_scalar_predicate): New
21786 predicate.
21787
21788 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
21789
21790 PR middle-end/67639
21791 * varasm.c (make_decl_rtl): Mark invalid register vars as
21792 DECL_EXTERNAL.
21793
21794 PR rtl-optimization/66206
21795 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
21796 All callers changed.
21797
21798 2016-01-07 Jakub Jelinek <jakub@redhat.com>
21799
21800 PR tree-optimization/69141
21801 * tree-ssa-pre.c: Include langhooks.h.
21802 (eliminate_dom_walker::before_dom_children): Use
21803 lang_hooks.decl_printable_name instead of
21804 cgraph_node::get ()->name ().
21805
21806 PR middle-end/68960
21807 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
21808 it and DECL_ALIGN too.
21809
21810 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
21811
21812 * config/mips/mips-ftypes.def: Sort to lexicographical order.
21813
21814 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
21815
21816 PR target/69140
21817 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
21818 depending on frame_pointer_needed before remaining integer and SSE
21819 registers are saved.
21820
21821 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21822
21823 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
21824 mode iterator with VSX_M2.
21825 (*p9_vecstore_<mode>): Likewise.
21826 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
21827 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
21828 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
21829 (define_split for VSX_LE128 stores): Likewise.
21830 (define_peephole2 for TImode LE swaps): Likewise.
21831 (define_split for VSX_LE128 post-reload stores): Likewise.
21832
21833 2016-01-06 Marek Polacek <polacek@redhat.com>
21834
21835 PR sanitizer/69099
21836 * convert.c (convert_to_integer_1): Adjust call to
21837 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
21838 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
21839 EXPR instead of ARG.
21840 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
21841
21842 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
21843
21844 PR 1078
21845 * doc/extend.texi (RL78 Variable Attributes): New section.
21846
21847 2016-01-05 Marek Polacek <polacek@redhat.com>
21848
21849 PR c/69104
21850 * builtins.c (get_memmodel): Use expansion point location rather than
21851 the input location. Call warning_at rather than warning.
21852 (expand_builtin_atomic_compare_exchange): Likewise.
21853 (expand_builtin_atomic_load): Likewise.
21854 (expand_builtin_atomic_store): Likewise.
21855 (expand_builtin_atomic_clear): Likewise.
21856
21857 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
21858
21859 PR target/68991
21860 * config/i386/i386.c (ix86_expand_vector_logical_operator):
21861 Replace nonimmediate_operand with vector_operand.
21862 * config/i386/predicates.md (vector_operand): New predicate.
21863 (general_vector_operand): Replace nonimmediate_operand with
21864 vector_operand.
21865 * config/i386/sse.md: Replace nonimmediate_operand with
21866 vector_operand and m constraint with Bm constraint on SSE
21867 patterns with 16-byte memory operand.
21868 * config/i386/subst.md (round_nimm_predicate): Replace
21869 nonimmediate_operand with vector_operand.
21870 (round_saeonly_nimm_predicate): Likewise.
21871 (round_saeonly_nimm_scalar_predicate): New.
21872
21873 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
21874
21875 PR target/68991
21876 * config/i386/constraints.md (Bm): New constraint.
21877 * config/i386/predicates.md (vector_memory_operand): New
21878 predicate.
21879 * config/i386/sse.md: Replace xm with xBm in plusminus and
21880 any_logic patterns.
21881
21882 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
21883
21884 PR 1078
21885 * doc/extend.texi (V850 Function Attributes): New section.
21886 (V850 Variable Attributes): New section.
21887
21888 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
21889
21890 PR 1078
21891 * doc/extend.texi (MicroBlaze Function Attributes): Document
21892 interrupt_handler and fast_interrupt attributes.
21893
21894 2016-01-05 Sergei Trofimovich <siarheit@google.com>
21895
21896 PR other/60465
21897 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
21898 for local symbolic operands.
21899 * config/ia64/predicates.md (local_symbolic_operand64): New
21900 predicate.
21901
21902 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21903
21904 PR rtl-optimization/68651
21905 * combine.c (combine_simplify_rtx): Canonicalize x + x into
21906 x << 1.
21907
21908 2016-01-05 Nathan Sidwell <nathan@acm.org>
21909
21910 * alias.c (compare_base_decls): Use symtab_node::get.
21911
21912 2016-01-05 Nick Clifton <nickc@redhat.com>
21913
21914 PR target/68770
21915 * ira-costs.c (copy_cost): Initialise the t_icode field of the
21916 secondary_reload_info structure.
21917
21918 PR target/66655
21919 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
21920 decls if weak support is available.
21921
21922 2016-01-04 Martin Sebor <msebor@redhat.com>
21923
21924 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
21925
21926 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
21927
21928 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
21929 OPTION_MASK_P9_DFORM.
21930
21931 * config/rs6000/constraints.md (wo constraint): New constraint for
21932 ISA 3.0 (power9).
21933
21934 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
21935 for wo constraint.
21936 (rs6000_init_hard_regno_mode_ok): Likewise.
21937
21938 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
21939 wo constraint.
21940
21941 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
21942 expanders not to have constraints. Add support for ISA 3.0 xxperm
21943 instruction. Add support for fusing xxlor with xxperm.
21944 (altivec_vperm_<mode>_internal): Likewise.
21945 (altivec_vperm_v8hiv16qi): Likewise.
21946 (altivec_vperm_<mode>v16q): Likewise.
21947 (altivec_vperm_<mode>_uns): Likewise.
21948 (vperm_v8hiv4si): Likewise.
21949 (vperm_v16qiv8hi): Likewise.
21950
21951 * doc/md.texi (RS/6000 constraints): Document wo constraint.
21952
21953 2016-01-04 Jakub Jelinek <jakub@redhat.com>
21954
21955 Update copyright years.
21956
21957 * gcc.c (process_command): Update copyright notice dates.
21958 * gcov-dump.c (print_version): Ditto.
21959 * gcov.c (print_version): Ditto.
21960 * gcov-tool.c (print_version): Ditto.
21961 * gengtype.c (create_file): Ditto.
21962 * doc/cpp.texi: Bump @copying's copyright year.
21963 * doc/cppinternals.texi: Ditto.
21964 * doc/gcc.texi: Ditto.
21965 * doc/gccint.texi: Ditto.
21966 * doc/gcov.texi: Ditto.
21967 * doc/install.texi: Ditto.
21968 * doc/invoke.texi: Ditto.
21969
21970 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
21971
21972 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
21973 modes larger than TImode as TImode if NEON is not enabled.
21974
21975 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
21976
21977 PR target/69100
21978 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
21979 mode for %f0-%f31 only if TARGET_FPU.
21980
21981 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
21982
21983 PR target/69072
21984 * config/sparc/sparc.c (scan_record_type): Take into account subfields
21985 to compute the PACKED_P predicate.
21986 (function_arg_record_value): Minor tweaks.
21987
21988 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
21989
21990 * doc/install.texi (--with-multilib-list): Describe the meaning of the
21991 option for arm*-*-* targets.
21992
21993 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
21994
21995 * doc/extend.texi (Common Function Attributes): Move docs for
21996 MSP430-specific attributes to....
21997 (MSP430 Function Attributes): ...here. Delete the redundant
21998 entries and copy-edit the remaining text.
21999 (MSP430 Variable Attributes): Use uniform format for index
22000 entries and add a cross-reference to the corresponding function
22001 attribute docs.
22002
22003 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
22004
22005 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
22006 -finite-math typo.
22007 (x86 Options): Likewise.
22008
22009 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22010
22011 PR 1078
22012
22013 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
22014 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
22015 to corresponding attribute.
22016
22017 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22018
22019 * doc/extend.texi (Common Function Attributes) <noplt>: Move
22020 to correct alphabetization of table. Copy-edit and correct
22021 markup.
22022 <stack_protect>: Likewise.
22023 <target_clones>: Likewise.
22024 <simd>: Likewise.
22025 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
22026 Correct punctuation.
22027 (Code Gen Options) <-fno-plt>: Copy-edit.
22028
22029 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
22030
22031 PR target/68917
22032 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
22033 SI values. Explicitly convert SI to DI and vice-versa.
22034
22035 2016-01-01 Jakub Jelinek <jakub@redhat.com>
22036
22037 PR tree-optimization/69070
22038 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
22039 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
22040
22041 PR sanitizer/69055
22042 * ubsan.c (ubsan_instrument_float_cast): Call
22043 initialize_sanitizer_builtins.
22044
22045 PR target/69015
22046 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
22047 \f
22048 Copyright (C) 2016 Free Software Foundation, Inc.
22049
22050 Copying and distribution of this file, with or without modification,
22051 are permitted in any medium without royalty provided the copyright
22052 notice and this notice are preserved.